diff --git a/artTools/vector_revamp_layer_split.py b/artTools/vector_revamp_layer_split.py index 51c4dcfff12034146a10a396dddb501ef574da40..d495f0bad3923c7939a900c8e1b3b22c6e943da6 100644 --- a/artTools/vector_revamp_layer_split.py +++ b/artTools/vector_revamp_layer_split.py @@ -11,6 +11,8 @@ python3 vector_layer_split.py vector_source.svg tw ../src/art/vector/layers/ ''' import lxml.etree as etree +from lxml.etree import XMLParser, parse + import sys import os import copy @@ -20,16 +22,19 @@ import inkscape_svg_fixup input_file = sys.argv[1] output_format = sys.argv[2] output_directory = sys.argv[3] + if not os.path.exists(output_directory): os.makedirs(output_directory) ns = { - 'svg' : 'http://www.w3.org/2000/svg', - 'inkscape' : 'http://www.inkscape.org/namespaces/inkscape', - 'sodipodi':"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd", + 'svg': 'http://www.w3.org/2000/svg', + 'inkscape': 'http://www.inkscape.org/namespaces/inkscape', + 'sodipodi': "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd", } -tree = etree.parse(input_file) +p = XMLParser(huge_tree=True) +tree = parse(input_file, parser=p) +#tree = etree.parse(input_file) inkscape_svg_fixup.fix(tree) # prepare output template @@ -38,82 +43,98 @@ root = template.getroot() # remove all svg root attributes except document size for a in root.attrib: - if (a != "viewBox"): - del root.attrib[a] + if (a != "viewBox"): + del root.attrib[a] # add placeholder for CSS class (needed for workaround for non HTML 5.1 compliant browser) if output_format == 'tw': - root.attrib["class"] = "'+_art_display_class+'" + root.attrib["class"] = "'+_art_display_class+'" # remove all content, including metadata # for twine output, style definitions are removed, too defs = None for e in root: - if (e.tag == etree.QName(ns['svg'], 'defs')): - defs = e - if (e.tag == etree.QName(ns['svg'], 'g') or - e.tag == etree.QName(ns['svg'], 'metadata') or - e.tag == etree.QName(ns['svg'], 'defs') or - e.tag == etree.QName(ns['sodipodi'], 'namedview') or - (output_format == 'tw' and e.tag == etree.QName(ns['svg'], 'style')) - ): - root.remove(e) + if (e.tag == etree.QName(ns['svg'], 'defs')): + defs = e + if (e.tag == etree.QName(ns['svg'], 'g') or + e.tag == etree.QName(ns['svg'], 'metadata') or + e.tag == etree.QName(ns['svg'], 'defs') or + e.tag == etree.QName(ns['sodipodi'], 'namedview') or + (output_format == 'tw' and e.tag == etree.QName(ns['svg'], 'style')) + ): + root.remove(e) # template preparation finished # prepare regex for later use -regex_xmlns = re.compile(' xmlns[^ ]+',) -regex_space = re.compile('[>][ ]+[<]',) - +regex_xmlns = re.compile(' xmlns[^ ]+', ) +regex_space = re.compile('[>][ ]+[<]', ) +regex_transformValue = re.compile('(?<=transformVariableName=")[^"]*', ) +regex_transformVar = re.compile('transformVariableName="[^"]*"', ) +regex_transformAttr = re.compile('transform="[^"]*"', ) # find all groups -layers = tree.xpath('//svg:g',namespaces=ns) +layers = tree.xpath('//svg:g', namespaces=ns) for layer in layers: - i = layer.get('id') - if ( # disregard non-content groups - i.endswith("_") or # manually suppressed with underscore - i.startswith("XMLID") or # Illustrator generated group - i.startswith("g") # Inkscape generated group - ): - continue - # create new canvas - output = copy.deepcopy(template) - # copy all shapes into template - canvas = output.getroot() - for e in layer: - canvas.append(e) - # represent template as SVG (binary string) - svg = etree.tostring(output, pretty_print=False) - # poor man's conditional defs insertion - # TODO: extract only referenced defs (filters, gradients, ...) - # TODO: detect necessity by traversing the elements. do not stupidly search in the string representation - if ("filter:" in svg.decode('utf-8')): - # it seems there is a filter referenced in the generated SVG, re-insert defs from main document - canvas.insert(0,defs) - # re-generate output + i = layer.get('id') + if ( # disregard non-content groups + i.endswith("_") or # manually suppressed with underscore + i.startswith("XMLID") or # Illustrator generated group + i.startswith("g") # Inkscape generated group + ): + continue + # create new canvas + output = copy.deepcopy(template) + # copy all shapes into template + canvas = output.getroot() + for e in layer: + canvas.append(e) + # represent template as SVG (binary string) svg = etree.tostring(output, pretty_print=False) - - if (output_format == 'tw'): - # remove unnecessary attributes - # TODO: never generate unnecessary attributes in the first place - svg = svg.decode('utf-8') - svg = regex_xmlns.sub('',svg) - svg = svg.replace(' inkscape:connector-curvature="0"','') # this just saves space - svg = svg.replace('\n','').replace('\r','') # print cannot be multi-line - svg = regex_space.sub('><',svg) # remove indentaion - svg = svg.replace('svg:','') # svg namespace was removed - svg = svg.replace('<g ','<g transform="\'+_art_transform+\'"') # internal groups are used for scaling - svg = svg.encode('utf-8') - - # save SVG string to file - i = layer.get('id') - output_path = os.path.join(output_directory,i+'.'+output_format) - with open(output_path, 'wb') as f: - if (output_format == 'svg'): - # Header for normal SVG (XML) - f.write('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'.encode("utf-8")) - f.write(svg) - elif (output_format == 'tw'): - # Header for SVG in Twine file (SugarCube print statement) - f.write((':: Art_Vector_Revamp_%s [nobr]\n\n'%(i)).encode("utf-8")) - f.write("<<print '<html>".encode("utf-8")) - f.write(svg) - f.write("</html>' >>".encode("utf-8")) + # poor man's conditional defs insertion + # TODO: extract only referenced defs (filters, gradients, ...) + # TODO: detect necessity by traversing the elements. do not stupidly search in the string representation + if ("filter:" in svg.decode('utf-8')): + # it seems there is a filter referenced in the generated SVG, re-insert defs from main document + canvas.insert(0, defs) + # re-generate output + svg = etree.tostring(output, pretty_print=False) + elif ("clip-path=" in svg.decode('utf-8')): + # it seems there is a clip path referenced in the generated SVG, re-insert defs from main document + canvas.insert(0, defs) + # re-generate output + svg = etree.tostring(output, pretty_print=False) + + if (output_format == 'tw'): + # remove unnecessary attributes + # TODO: never generate unnecessary attributes in the first place + svg = svg.decode('utf-8') + svg = regex_xmlns.sub('', svg) + svg = svg.replace(' inkscape:connector-curvature="0"', '') # this just saves space + svg = svg.replace('\n', '').replace('\r', '') # print cannot be multi-line + svg = regex_space.sub('><', svg) # remove indentaion + svg = svg.replace('svg:', '') # svg namespace was removed + + transformGroups = regex_transformVar.findall(svg) + + if (len(transformGroups) > 0): + svg = regex_transformAttr.sub('', svg) + for transformGroup in transformGroups: + transformValue = regex_transformValue.search(transformGroup) + if (transformValue is not None): + svg = svg.replace(transformGroup, ' transform="\'+' + transformValue.group() + '+\'" ') # internal groups are used for scaling + + svg = svg.encode('utf-8') + + # save SVG string to file + i = layer.get('id') + output_path = os.path.join(output_directory, i + '.' + output_format) + with open(output_path, 'wb') as f: + if (output_format == 'svg'): + # Header for normal SVG (XML) + f.write('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'.encode("utf-8")) + f.write(svg) + elif (output_format == 'tw'): + # Header for SVG in Twine file (SugarCube print statement) + f.write((':: Art_Vector_Revamp_%s [nobr]\n\n' % (i)).encode("utf-8")) + f.write("<<print '<html>".encode("utf-8")) + f.write(svg) + f.write("</html>' >>".encode("utf-8")) diff --git a/artTools/vector_revamp_source.svg b/artTools/vector_revamp_source.svg index ea06b1c41211aaa408285a451808f0efee509e9d..fee0794d5a1f478b0f2caad92a7555be87c004b7 100644 --- a/artTools/vector_revamp_source.svg +++ b/artTools/vector_revamp_source.svg @@ -13,8 +13,11 @@ <filter style="color-interpolation-filters:sRGB" inkscape:label="Filter_Shine_Blur" id="Filter_Shine_Blur" width="4" x="-2" height="4" y="-2"> <feGaussianBlur stdDeviation="1.5 1.5" result="blur" id="feGaussianBlur4091-3"/> </filter> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2523"> + <path style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:1" d="m 274.57189,189.42903 15.50314,-3.68772 7.17414,5.6607 18.78855,-0.15563 22.89606,-10.20457 4.18325,-5.70166 12.47654,1.89159 300.60628,-20.29169 -9.82055,549.03095 -688.642378,1.7251 29.38501,-463.4512 z" id="path2525" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccc"/> + </clipPath> </defs> - <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="2482" inkscape:window-height="1411" id="namedview4358" showgrid="false" inkscape:zoom="0.99999995" inkscape:cx="153.24461" inkscape:cy="421.87223" inkscape:window-x="69" inkscape:window-y="-9" inkscape:window-maximized="1" inkscape:current-layer="Notes_" inkscape:object-nodes="true" inkscape:object-paths="true" inkscape:snap-smooth-nodes="false" inkscape:snap-object-midpoints="true" inkscape:snap-global="false" inkscape:snap-nodes="true" inkscape:snap-intersection-paths="false" inkscape:snap-bbox="true" inkscape:snap-others="false" showguides="false" inkscape:lockguides="true"/> + <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="2482" inkscape:window-height="1411" id="namedview4358" showgrid="false" inkscape:zoom="0.99999996" inkscape:cx="360.42883" inkscape:cy="363.29092" inkscape:window-x="69" inkscape:window-y="-9" inkscape:window-maximized="1" inkscape:current-layer="Notes_" inkscape:object-nodes="true" inkscape:object-paths="true" inkscape:snap-smooth-nodes="false" inkscape:snap-object-midpoints="true" inkscape:snap-global="false" inkscape:snap-nodes="true" inkscape:snap-intersection-paths="false" inkscape:snap-bbox="true" inkscape:snap-others="false" showguides="false" inkscape:lockguides="true"/> <style type="text/css" id="style"> /* please maintain these definitions manually */ .white{fill:#FFFFFF;} @@ -54,9 +57,9 @@ .belly{fill:#F6E0E8;} .belly_upper{fill:#F6E0E8;} .head{fill:#F6E0E8;}</style> - <g inkscape:groupmode="layer" id="Original_Canvas_" inkscape:label="Original_Canvas_" style="display:inline;opacity:1"> + <g inkscape:groupmode="layer" id="Original_Canvas_" inkscape:label="Original_Canvas_" style="display:inline;opacity:1" sodipodi:insensitive="true"> <g inkscape:groupmode="layer" id="background_" inkscape:label="background_" style="display:inline;opacity:1"> - <rect style="display:inline;opacity:0.40400002;fill:#ff0000" id="rect4823" width="1000" height="1000" x="-220" y="0.25"/> + <rect style="display:inline;opacity:1;fill:#505050;fill-opacity:1" id="rect4823" width="1000" height="1000" x="-220" y="0.25"/> </g> </g> <g inkscape:groupmode="layer" id="Hair_Back_" style="display:inline;opacity:1" inkscape:label="Hair_Back_"> @@ -289,7 +292,7 @@ <g inkscape:groupmode="layer" id="Arm_" style="display:inline;opacity:1" inkscape:label="Arm_"> <g inkscape:groupmode="layer" id="Arm_Right_High" style="display:inline" inkscape:label="Arm_Right_High"> <path sodipodi:nodetypes="ccccsccccccccccccccccccscsscc" inkscape:connector-curvature="0" id="path3267" d="m 259.39085,219.99261 c 0,0 -11.4994,-9.89625 -19.3512,-17.30477 -13.55495,-10.6354 -16.5421,-12.96229 -23.61491,-19.05855 -7.84581,-5.48263 -11.33539,-8.77242 -14.18124,-11.27461 -1.59426,-0.41862 -14.57996,-10.23511 -15.50675,-17.99531 -0.30105,-2.52075 7.13378,-13.12186 10.18104,-16.29746 10.0981,-12.66515 14.28981,-11.39852 26.56588,-18.49891 20.9156,-10.12621 37.2882,-17.70528 37.28061,-17.28893 1.94149,-0.87834 15.65824,-4.611687 14.74106,-3.976477 2.64756,-0.166485 9.27182,1.396148 9.11158,1.835007 15.92104,-4.527759 22.02179,-3.105036 29.56893,-2.843117 0.53511,0.818414 1.47862,0.628049 1.41733,3.025847 3.51257,1.2406 4.50117,3.47693 4.64203,6.36438 2.11132,1.72264 3.93959,3.50445 3.36111,6.55914 2.5318,1.96802 2.44818,4.26321 1.92693,6.80088 -0.30855,3.98719 -1.98153,6.77689 -4.21016,9.07522 -2.10065,0.1102 -4.15584,0.4605 -6.38828,0.70975 -0.0238,1.09284 -0.29881,2.0174 -0.90926,2.5303 -3.51244,4.3944 -6.24262,0.87047 -9.13633,-0.21053 -1.64333,0.0894 -4.13515,0.43539 -5.76534,-0.89566 -4.8078,-1.15706 -13.18021,-10.80666 -13.15481,-10.96256 -2.13384,0.12843 -4.26201,0.27444 -6.59247,-0.21243 -6.9898,0.45253 -14.36983,2.47734 -17.85002,2.73673 -11.11904,3.05074 -35.45572,28.98109 -46.09657,27.81755 -0.80241,-0.0877 0.70344,1.51406 1.18795,2.30615 8.10171,5.03261 22.54551,16.19148 35.37619,25.48062 6.28262,4.54849 12.39945,5.64348 16.97459,8.35665 1.99185,1.18121 7.93634,5.85615 7.93634,5.85615 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.94240636"/> - <path d="m 259.39085,219.99261 c 0,0 -11.09917,-10.27939 -19.3512,-17.30477 -12.8911,-10.97488 -15.50869,-12.98224 -22.86491,-18.93355 -7.35622,-5.95133 -12.41012,-9.56779 -15.40224,-11.92994 -0.51549,-0.40696 -14.10708,-9.74715 -14.99488,-17.28574 -0.36683,-3.11486 7.78548,-13.45707 10.63018,-17.00703 7.42929,-9.27118 14.77475,-11.67837 27.41038,-18.23375 17.64518,-9.15434 35.9461,-17.02376 35.9461,-17.02376 0,0 13.0177,-3.417078 14.74106,-3.976477 1.26304,0.05577 8.3248,1.548142 9.11158,1.835007 13.99391,-3.008292 21.8199,-2.945865 29.56893,-2.843117 0.50937,0.842338 1.19497,0.891556 1.41733,3.025847 3.39454,1.3705 4.22052,3.78576 4.64203,6.36438 2.02196,1.78044 3.41759,3.84218 3.36111,6.55914 2.26855,2.08814 2.03529,4.45164 1.92693,6.80088 -0.46156,3.85176 -2.32676,6.4713 -4.21016,9.07522 -2.14619,-0.002 -4.28171,0.14977 -6.38828,0.70975 -0.23338,0.93759 -0.43868,1.91379 -0.90926,2.5303 -3.70065,3.95156 -6.25201,0.84837 -9.13633,-0.21053 -1.58528,-0.13117 -4.04804,0.10436 -5.76534,-0.89566 -4.73466,-1.60596 -13.15481,-10.96256 -13.15481,-10.96256 l -6.59247,-0.21243 c -7.35428,-0.284 -11.09037,1.70346 -16.764,2.56724 l -1.67401,0.29449 c -12.76702,3.05181 -20.62907,14.16069 -31.02434,21.168 -4.3974,2.96423 -13.29629,8.8307 -13.29629,8.8307 0,0 18.92983,14.51195 35.0083,25.85293 6.67662,4.70936 13.08253,5.86673 17.21619,8.21637 1.41226,0.80275 8.86431,5.54352 8.86431,5.54352" id="path3269" inkscape:connector-curvature="0" sodipodi:nodetypes="csscssscccccccccccccccccccssc" class="skin arm"/> + <path d="m 259.39085,219.99261 c 0,0 -11.09917,-10.27939 -19.3512,-17.30477 -12.8911,-10.97488 -15.50869,-12.98224 -22.86491,-18.93355 -7.35622,-5.95133 -12.41012,-9.56779 -15.40224,-11.92994 -0.51549,-0.40696 -14.10708,-9.74715 -14.99488,-17.28574 -0.36683,-3.11486 7.78548,-13.45707 10.63018,-17.00703 7.42929,-9.27118 14.77475,-11.67837 27.41038,-18.23375 17.64518,-9.15434 35.9461,-17.02376 35.9461,-17.02376 0,0 13.0177,-3.417078 14.74106,-3.976477 1.26304,0.05577 8.3248,1.548142 9.11158,1.835007 13.99391,-3.008292 21.8199,-2.945865 29.56893,-2.843117 0.50937,0.842338 1.19497,0.891556 1.41733,3.025847 3.39454,1.3705 4.22052,3.78576 4.64203,6.36438 2.02196,1.78044 3.41759,3.84218 3.36111,6.55914 2.26855,2.08814 2.03529,4.45164 1.92693,6.80088 -0.46156,3.85176 -2.32676,6.4713 -4.21016,9.07522 -2.14619,-0.002 -4.28171,0.14977 -6.38828,0.70975 -0.23338,0.93759 -0.43868,1.91379 -0.90926,2.5303 -3.70065,3.95156 -6.25201,0.84837 -9.13633,-0.21053 -1.58528,-0.13117 -4.04804,0.10436 -5.76534,-0.89566 -4.73466,-1.60596 -13.15481,-10.96256 -13.15481,-10.96256 l -6.59247,-0.21243 c -7.35428,-0.284 -11.09037,1.70346 -16.764,2.56724 l -1.67401,0.29449 c -12.76702,3.05181 -20.62907,14.16069 -31.02434,21.168 -4.3974,2.96423 -13.29629,8.8307 -13.29629,8.8307 0,0 20.43423,16.49245 31.69374,23.15708 5.38017,3.18458 11.66317,4.67429 16.98633,7.95327 2.97349,1.83162 8.23627,6.47548 8.23627,6.47548" id="path3269" inkscape:connector-curvature="0" sodipodi:nodetypes="csscssscccccccccccccccccccaac" class="skin arm"/> <path inkscape:connector-curvature="0" d="m 314.8035,130.10722 c -4.91505,-2.78303 -4.69322,-5.15544 -5.10067,-6.66314 0.97688,2.53491 1.35543,2.94959 5.10067,6.66314 z" class="shadow" id="path3271" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 309.82448,123.59658 c 4.27234,-1.20558 4.02571,-0.74304 5.73079,-0.32343 -1.60792,-0.16837 -1.40724,-0.30207 -5.73079,0.32343 z" class="shadow" id="path3273" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 314.80546,130.07947 c -0.098,-3.36849 0.14746,-3.03453 0.87734,-5.19396 -0.55565,2.12164 -0.46563,2.39281 -0.87734,5.19396 z" class="shadow" id="path3275" sodipodi:nodetypes="ccc"/> @@ -334,8 +337,8 @@ <path sodipodi:nodetypes="ccc" id="path3212" class="shadow" d="m 232.75946,324.12197 c 6.44272,2.56904 8.97124,6.42201 15.31369,1.22631 -5.23343,2.95476 -7.65007,0.91512 -15.31369,-1.22631 z" inkscape:connector-curvature="0"/> </g> <g inkscape:groupmode="layer" id="Arm_Left_High" inkscape:label="Arm_Left_High" style="display:inline"> - <path sodipodi:nodetypes="cccccccccccccccccccccscccccccc" id="path3228" class="shadow" d="m 416.96515,136.81346 c 32.11702,-0.95542 12.44417,5.83226 -8.86061,-0.84231 -13.17517,-3.55885 -22.10975,-11.35491 -32.16663,-14.92538 -26.00796,-7.28693 -35.18199,-5.36422 -35.15592,-5.52718 -5.7001,-0.621 -8.60045,-1.23038 -8.1843,-1.25056 -2.1832,0.69779 -4.14081,1.89142 -6.17593,2.9871 -4.21706,4.76934 -8.18639,10.39866 -13.57388,12.35835 -1.92294,1.53597 -4.68187,1.38752 -6.42427,1.56556 -3.17523,1.49929 -6.0303,5.71999 -10.25413,1.05927 -0.71753,-0.67242 -1.08803,-1.79537 -1.17931,-2.88952 -2.44492,-0.27198 -4.8582,-0.24109 -7.22331,-0.265 -2.49592,-2.52948 -4.91084,-5.18137 -5.29842,-10.2787 -0.57251,-2.93616 -1.19034,-5.8172 1.73934,-8.15351 -0.63334,-3.27898 0.8596,-5.81144 3.36731,-7.9988 0.0414,-3.142308 0.47692,-6.148001 4.81868,-7.881954 -0.35575,-2.53162 0.83749,-2.644437 1.40361,-3.677788 8.67897,-0.933389 17.44184,-1.860384 33.40821,0.707292 0.76908,-0.432375 1.18909,-0.984061 2.97187,-1.064521 2.02588,0.323394 2.29331,2.593018 4.17997,2.916577 0.017,-0.122533 11.07469,-0.519229 28.23967,2.846153 22.33718,4.993821 38.1414,6.556701 50.90227,11.342701 15.98778,2.32201 35.44598,17.35468 35.9125,31.34547 0.25313,7.59105 -9.11293,16.51703 -12.98971,17.78179 -6.90871,5.56547 -40.15715,34.83106 -68.08145,53.02535 -12.76935,11.09792 1.0322,34.94142 -18.21974,33.80336 -11.42113,-1.91438 -15.90619,-47.50408 -15.80696,-47.55692 8.12889,-3.15008 13.68165,-10.49055 19.97602,-16.62467 6.29362,-1.56423 11.88648,-5.46072 17.60239,-8.94768 24.72621,-14.49206 27.79345,-19.88621 45.07272,-33.85449 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 416.34015,137.87596 c 27.19781,0.73794 6.76862,2.55782 -8.23561,-1.90481 -12.93847,-3.90325 -22.17008,-11.8098 -32.16663,-14.92538 -27.21775,-8.48286 -35.15592,-5.52718 -35.15592,-5.52718 -4.43404,-0.99709 -8.59402,-1.23228 -8.1843,-1.25056 -2.51009,0.47312 -4.29552,1.78509 -6.17593,2.9871 -4.50142,4.17994 -8.35339,10.0525 -13.57388,12.35835 -1.86742,1.32643 -4.6509,1.27068 -6.42427,1.56556 -3.17523,1.49929 -5.84837,5.36864 -10.25413,1.05927 -0.56736,-0.68182 -0.85844,-1.80974 -1.17931,-2.88952 -2.40238,-0.47006 -4.81155,-0.45831 -7.22331,-0.265 -2.2793,-2.88904 -4.539,-5.79859 -5.29842,-10.2787 -0.26857,-2.7479 -0.67956,-5.50083 1.73934,-8.15351 -0.23326,-3.18411 1.20628,-5.72923 3.36731,-7.9988 0.31255,-3.064215 1.08954,-5.971585 4.81868,-7.881954 0.11652,-2.52493 0.88382,-2.643795 1.40361,-3.677788 8.70196,-0.809319 17.4938,-1.580034 33.40821,0.707292 0.86624,-0.406652 1.55594,-0.886827 2.97187,-1.064521 1.97166,0.503435 2.26133,2.699256 4.17997,2.916577 0,0 11.28571,-1.354883 28.23967,2.846153 21.50866,5.329651 36.63325,6.513511 50.90227,11.342701 15.63351,5.29098 29.05276,12.30963 35.49429,28.83661 3.29595,8.45637 -8.6973,18.99285 -12.5715,20.29065 -7.2367,5.35747 -42.11286,34.38128 -68.08145,53.02535 -12.79099,11.05725 0.8543,34.6073 -18.21974,33.80336 -11.12304,-2.0731 -15.80696,-47.55692 -15.80696,-47.55692 3.13687,-5.26914 2.81848,-10.8608 20.30706,-17.24004 6.29362,-1.56423 11.55545,-4.84533 17.27136,-8.33229 18.03877,-8.34635 27.48335,-18.28231 44.44772,-32.792 z" class="skin arm" id="path3230" sodipodi:nodetypes="ccsccccccccccccccccsssccccccc"/> + <path sodipodi:nodetypes="cccccccccccccccccccccscccccccc" id="path3228" class="shadow" d="m 416.96515,136.81346 c 32.11702,-0.95542 12.44417,5.83226 -8.86061,-0.84231 -13.17517,-3.55885 -22.10975,-11.35491 -32.16663,-14.92538 -26.00796,-7.28693 -35.18199,-5.36422 -35.15592,-5.52718 -5.7001,-0.621 -8.60045,-1.23038 -8.1843,-1.25056 -2.1832,0.69779 -4.14081,1.89142 -6.17593,2.9871 -4.21706,4.76934 -8.18639,10.39866 -13.57388,12.35835 -1.92294,1.53597 -4.68187,1.38752 -6.42427,1.56556 -3.17523,1.49929 -6.0303,5.71999 -10.25413,1.05927 -0.71753,-0.67242 -1.08803,-1.79537 -1.17931,-2.88952 -2.44492,-0.27198 -4.8582,-0.24109 -7.22331,-0.265 -2.49592,-2.52948 -4.91084,-5.18137 -5.29842,-10.2787 -0.57251,-2.93616 -1.19034,-5.8172 1.73934,-8.15351 -0.63334,-3.27898 0.8596,-5.81144 3.36731,-7.9988 0.0414,-3.142308 0.47692,-6.148001 4.81868,-7.881954 -0.35575,-2.53162 0.83749,-2.644437 1.40361,-3.677788 8.67897,-0.933389 17.44184,-1.860384 33.40821,0.707292 0.76908,-0.432375 1.18909,-0.984061 2.97187,-1.064521 2.02588,0.323394 2.29331,2.593018 4.17997,2.916577 0.017,-0.122533 11.07469,-0.519229 28.23967,2.846153 22.33718,4.993821 38.1414,6.556701 50.90227,11.342701 15.98778,2.32201 35.44598,17.35468 35.9125,31.34547 0.25313,7.59105 -9.11293,16.51703 -12.98971,17.78179 -6.90871,5.56547 -44.3556,39.86919 -72.2799,58.06348 -0.7002,9.13287 -0.10078,10.74565 -2.89629,20.82773 -11.42113,-1.91438 -27.03119,-39.56658 -26.93196,-39.61942 8.12889,-3.15008 13.68165,-10.49055 19.97602,-16.62467 6.29362,-1.56423 11.88648,-5.46072 17.60239,-8.94768 24.72621,-14.49206 27.79345,-19.88621 45.07272,-33.85449 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 416.34015,137.87596 c 27.19781,0.73794 6.76862,2.55782 -8.23561,-1.90481 -12.93847,-3.90325 -22.17008,-11.8098 -32.16663,-14.92538 -27.21775,-8.48286 -35.15592,-5.52718 -35.15592,-5.52718 -4.43404,-0.99709 -8.59402,-1.23228 -8.1843,-1.25056 -2.51009,0.47312 -4.29552,1.78509 -6.17593,2.9871 -4.50142,4.17994 -8.35339,10.0525 -13.57388,12.35835 -1.86742,1.32643 -4.6509,1.27068 -6.42427,1.56556 -3.17523,1.49929 -5.84837,5.36864 -10.25413,1.05927 -0.56736,-0.68182 -0.85844,-1.80974 -1.17931,-2.88952 -2.40238,-0.47006 -4.81155,-0.45831 -7.22331,-0.265 -2.2793,-2.88904 -4.539,-5.79859 -5.29842,-10.2787 -0.26857,-2.7479 -0.67956,-5.50083 1.73934,-8.15351 -0.23326,-3.18411 1.20628,-5.72923 3.36731,-7.9988 0.31255,-3.064215 1.08954,-5.971585 4.81868,-7.881954 0.11652,-2.52493 0.88382,-2.643795 1.40361,-3.677788 8.70196,-0.809319 17.4938,-1.580034 33.40821,0.707292 0.86624,-0.406652 1.55594,-0.886827 2.97187,-1.064521 1.97166,0.503435 2.26133,2.699256 4.17997,2.916577 0,0 11.28571,-1.354883 28.23967,2.846153 21.50866,5.329651 36.63325,6.513511 50.90227,11.342701 15.63351,5.29098 29.05276,12.30963 35.49429,28.83661 3.29595,8.45637 -8.6973,18.99285 -12.5715,20.29065 -7.2367,5.35747 -46.31131,39.41941 -72.2799,58.06348 -0.96906,8.75577 -0.54078,11.07961 -3.36964,21.87094 -11.12304,-2.0731 -20.03076,-45.4356 -20.03076,-45.4356 3.13687,-5.26914 14.04976,-13.48866 22.24901,-18.61451 6.35608,-3.97357 14.1103,-5.30921 20.52656,-9.18485 11.91046,-7.19433 15.85835,-11.28231 32.82272,-25.792 z" class="skin arm" id="path3230" sodipodi:nodetypes="ccsccccccccccccccccsssccccaac"/> <path inkscape:connector-curvature="0" d="m 295.18882,129.21753 c 5.34665,-3.49364 4.94695,-6.10534 5.3092,-7.81066 -0.937,2.89145 -1.33607,3.38261 -5.3092,7.81066 z" class="shadow" id="path3234" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 300.37099,121.58603 c -4.87738,-0.98168 -4.57091,-0.48934 -6.46034,0.11744 1.79618,-0.32021 1.5622,-0.45178 6.46034,-0.11744 z" class="shadow" id="path3236" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 304.25086,124.04729 c -3.73519,-3.29389 -7.7306,-6.63208 -10.0306,-6.82802 2.14005,0.77849 6.26034,4.08751 10.0306,6.82802 z" class="shadow" id="path3242" sodipodi:nodetypes="ccc"/> @@ -345,6 +348,7 @@ <path inkscape:connector-curvature="0" d="m 296.36587,104.19814 c -3.97505,-2.90663 -6.59037,-1.31213 -8.89036,-1.50807 2.2402,0.3267 5.12011,-1.23244 8.89036,1.50807 z" class="shadow" id="path3250" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 299.03763,96.545358 c -4.03843,-2.845022 -4.24231,-1.560849 -6.5423,-1.756785 2.22279,0.451523 2.77205,-0.983725 6.5423,1.756785 z" class="shadow" id="path3252" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 415.57013,138.34367 c 4.33424,-2.83585 8.46725,1.10257 16.32437,-3.88923 -8.00202,4.48396 -11.55736,0.31819 -16.32437,3.88923 z" class="shadow" id="path3232" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 374.39025,194.40581 c -7.5496,4.35876 -14.05597,12.18841 -16.98547,15.11791 2.93435,-2.93435 11.90692,-12.18581 16.98547,-15.11791 z" class="shadow" id="path3232-3" sodipodi:nodetypes="ccc"/> </g> <g inkscape:groupmode="layer" id="Arm_Left_Low" inkscape:label="Arm_Left_Low" style="display:inline;opacity:1"> <path sodipodi:nodetypes="ccccccccccccccccccccccccccccc" id="path6856" class="shadow" d="m 376.26653,307.61106 c -2.14507,6.09632 0.95143,14.58239 5.2492,26.09205 1.87591,8.39384 1.26226,16.44062 3.6408,24.0503 3.37217,13.22418 9.98815,25.21016 12.07785,36.18157 4.14241,28.63267 6.86059,41.11676 7.02391,41.093 0.54035,5.7083 1.10863,8.61698 1.13471,8.20116 -0.72861,2.17311 -1.94979,4.11365 -3.07415,6.13307 -4.82849,4.1492 -10.51338,8.03853 -12.54906,13.39776 -1.56301,1.90103 -1.45359,4.66179 -1.65625,6.40149 -1.54405,3.15371 -5.8047,5.94881 -1.20417,10.23813 0.6622,0.72696 1.77977,1.11335 2.87256,1.22005 0.23741,2.44851 0.17236,4.86112 0.16282,7.22633 2.49394,2.53144 5.1114,4.98363 10.20275,5.44325 2.92776,0.61397 5.79979,1.27248 8.17729,-1.62387 3.26969,0.67965 5.82302,-0.77733 8.04562,-3.25386 3.14258,0.003 6.15413,-0.38994 7.94931,-4.70674 2.52633,0.39151 2.65601,-0.8 3.69726,-1.35146 1.05602,-8.6649 2.10684,-17.41379 -0.23479,-33.41487 0.44323,-0.76288 1.00078,-1.17506 1.10644,-2.95652 -0.2947,-2.03025 -0.53754,-3.92631 -0.8344,-5.81736 0.12272,-0.0153 -0.91142,-10.19582 -4.03375,-27.40667 -2.39433,-20.31058 -0.58347,-46.56592 -3.56145,-61.93369 -4.11097,-24.76433 -12.78003,-33.88061 -16.17665,-44.92823 -0.74024,-9.33448 -6.11497,-43.94368 -10.48131,-76.21312 1.72012,-16.83036 4.13085,-26.81911 -7.88563,-41.90342 -8.14189,-8.2351 -27.22056,-9.16634 -27.20662,-9.05478 2.10557,8.45982 -0.69822,17.22648 -2.08866,25.9048 2.34527,6.04617 2.38024,12.86244 2.82089,19.54348 2.09144,28.37203 6.68148,62.46708 16.82548,83.43815 z" inkscape:connector-curvature="0"/> @@ -377,8 +381,8 @@ <path sodipodi:nodetypes="ccc" id="path3171" class="shadow" d="m 262.90878,421.66979 c -2.2006,4.42272 -2.99042,3.38983 -4.92079,4.65552 1.74097,-1.45386 2.90645,-0.45223 4.92079,-4.65552 z" inkscape:connector-curvature="0"/> </g> <g inkscape:groupmode="layer" id="Arm_Stump" inkscape:label="Arm_Stump" style="display:inline"> - <path sodipodi:nodetypes="scsas" id="path1420" inkscape:connector-curvature="0" d="m 358.5887,178.95455 c 14.62279,-1.68069 26.43944,8.01522 27.2351,21.9566 -0.56595,12.09082 -14.60862,20.72368 -26.56495,23.43702 -7.62636,1.73071 -15.19855,5.71989 -18.80847,0.59021 -9.48283,-13.47506 1.76879,-44.10237 18.13832,-45.98383 z" class="shadow"/> - <path class="skin arm" d="m 358.5887,178.95455 c 11.27433,-2.97859 26.97612,10.29832 27.2351,21.9566 0.26225,11.80571 -15.58625,19.08828 -26.56495,23.43702 -5.83173,2.31 -15.19855,5.71989 -18.80847,0.59021 -9.48283,-13.47506 2.20761,-41.77507 18.13832,-45.98383 z" inkscape:connector-curvature="0" id="path62-3" sodipodi:nodetypes="aaaaa"/> + <path sodipodi:nodetypes="cccccc" id="path2735" inkscape:connector-curvature="0" d="m 358.5887,178.95455 c 11.59151,-3.04656 27.91436,10.04694 27.2351,21.9566 0.50082,10.83419 -11.72906,18.24361 -23.26882,22.09442 -0.60666,0.46821 -1.40053,13.57923 -1.6395,13.54509 0,0 -17.85326,-4.21656 -20.4651,-11.61228 -5.48693,-15.53689 2.20761,-41.77507 18.13832,-45.98383 z" class="shadow"/> + <path class="skin arm" d="m 358.5887,178.95455 c 11.27433,-2.97859 26.97612,10.29832 27.2351,21.9566 0.23694,10.66626 -12.67703,17.64036 -23.26882,22.09442 -1.1315,0.47581 -1.6395,13.54509 -1.6395,13.54509 0,0 -17.85326,-4.21656 -20.4651,-11.61228 -5.48693,-15.53689 2.20761,-41.77507 18.13832,-45.98383 z" inkscape:connector-curvature="0" id="path62-3" sodipodi:nodetypes="asscaa"/> <path sodipodi:nodetypes="ccccc" id="path1429" inkscape:connector-curvature="0" d="m 266.62049,190.96644 c 14.7851,-4.44494 28.94581,4.9963 30.24031,16.38814 1.33327,11.7331 -14.82389,22.17579 -26.56495,23.43702 -7.77555,0.83525 -18.48928,-3.87003 -20.48786,-11.43061 -2.96217,-11.75747 1.80873,-22.72825 16.8125,-28.39455 z" class="shadow"/> <path class="skin arm" d="m 266.62049,190.96644 c 11.05043,-3.05578 28.94581,4.9963 30.24031,16.38814 1.33327,11.7331 -14.82389,22.17579 -26.56495,23.43702 -7.77555,0.83525 -18.44985,-3.88056 -20.48786,-11.43061 -2.86655,-10.61946 6.21083,-25.46287 16.8125,-28.39455 z" inkscape:connector-curvature="0" id="path62-3-9" sodipodi:nodetypes="aaaaa"/> </g> @@ -540,7 +544,7 @@ </g> <g inkscape:groupmode="layer" id="Torso_" style="display:inline;opacity:1" inkscape:label="Torso_"> <g inkscape:groupmode="layer" id="Torso_Normal" style="display:inline;opacity:1" inkscape:label="Torso_Normal"> - <path sodipodi:nodetypes="ccccccccccsccccsccccccc" id="path4124" class="shadow torso" d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 1.09074,1.42828 6.14846,2.05805 7.03175,-0.25046 l 1.13543,-0.062 c 0.0539,0.0333 5.91812,4.25115 11.3257,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -21.65173,-54.37031 -7.45593,-62.61558 1.67566,-114.84838 -0.50349,-3.50775 -1.32308,-10.70751 -1.45375,-13.44272 -4.53544,-10.77188 -2.3443,-15.76194 -4.6441,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccccccccccsccccsccccccc" id="path4124" class="shadow torso" d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 1.09074,1.42828 6.14846,2.05805 7.03175,-0.25046 l 1.13543,-0.062 c 0.0539,0.0333 5.91812,4.25115 11.3257,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -21.65173,-54.37031 -7.45593,-62.61558 1.67566,-114.84838 -1.67464,-1.5853 -2.26058,-10.45751 -2.39125,-13.19272 -4.53544,-10.77188 -1.4068,-16.01194 -3.7066,-26.54186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z" inkscape:connector-curvature="0"/> <path d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z" id="path1544" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" class="skin neck"/> <path d="m 286.20117,187.34375 c -4.00254,0.89821 -7.97398,1.70521 -15.05469,3.49023 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 0.78119,0.55861 4.78693,1.49428 7.05664,-0.26758 l 1.14258,-0.0781 c 1.51181,1.59807 9.57688,1.45961 11.29101,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -23.58113,-57.47054 -9.98057,-57.2743 1.61523,-114.68555 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.46119,-1.08058 -8.63009,-1.32686 -12.38867,-1.86914 -20.45084,30.32024 -80.12449,19.33623 -60.1836,10.46094 z" id="path1566" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccccc" class="skin torso"/> <path style="fill:#ff0000" d="m 296.58398,149.81836 -0.0684,0.008 c -0.004,0.0796 0.0172,0.15299 0.0137,0.23242 0.007,-0.0902 0.0493,-0.14839 0.0547,-0.24023 z" id="path1564" inkscape:connector-curvature="0"/> @@ -557,15 +561,15 @@ <path inkscape:connector-curvature="0" d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" class="muscle_tone" id="XMLID_590_-04-8-5-87-5-2" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 331.83474,309.96831 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" class="muscle_tone" id="XMLID_590_-04-8-5-2" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 250.08235,322.46839 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" class="muscle_tone" id="XMLID_590_-04-8-5-2-4" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 361.02638,237.18777 c -0.94326,-8.05772 -0.78056,-23.30289 -4.75812,-32.08391 2.09688,6.60791 3.01744,21.31058 4.75812,32.08391 z" class="shadow" id="XMLID_590_-04-8-9-4" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" class="shadow belly_details" id="path1444" sodipodi:nodetypes="ccccc"/> <path sodipodi:nodetypes="cccccc" id="path1446" class="muscle_tone belly_details" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 334.35262,257.79054 c 18.3821,-10.6129 18.87632,-45.89411 23.20514,-48.39336 -5.22768,3.0182 -6.34343,38.65826 -23.20514,48.39336 z" class="shadow" id="path2549" sodipodi:nodetypes="ccc"/> </g> <g inkscape:groupmode="layer" id="Torso_Hourglass" style="display:inline;opacity:1" inkscape:label="Torso_Hourglass"> <path style="display:inline;opacity:1;fill:#ff0000" d="m 330.46094,146.33008 -33.94532,3.49609 c -0.60023,11.74644 4.71069,22.2221 4.14063,32.15625 -3.38126,2.62022 -7.80518,3.85567 -13.92187,5.23828 -2.12717,0.53863 -3.90301,1.14812 -5.31836,1.8125 -1.44243,0.67709 -2.53172,1.40659 -3.29883,2.16797 -0.76711,0.76138 -1.21275,1.5546 -1.36914,2.35352 -0.1564,0.79891 -0.0225,1.60483 0.36718,2.39453 0.38973,0.78969 1.035,1.56315 1.90625,2.29687 0.87126,0.73373 1.96768,1.42761 3.25586,2.0586 1.28819,0.63099 2.76769,1.19818 4.40821,1.67969 1.64051,0.4815 3.44284,0.87684 5.37109,1.1621 1.92825,0.28527 3.98337,0.46164 6.13477,0.50391 2.15139,0.0423 4.39904,-0.0494 6.70898,-0.29687 2.30994,-0.24748 4.68205,-0.65235 7.08594,-1.23633 2.40388,-0.58398 4.83825,-1.34721 7.27148,-2.31446 2.43324,-0.96724 4.86569,-2.13789 7.26367,-3.53515 2.39799,-1.39726 4.76241,-3.02051 7.06055,-4.89453 2.29815,-1.87403 4.53036,-3.99893 6.66406,-6.39649 2.13371,-2.39755 4.1676,-5.06732 6.07227,-8.03515 -0.0465,-0.0259 -0.0648,-0.0634 -0.10938,-0.0898 -9.4165,-1.39251 -15.92222,-5.03012 -15.74804,-30.52148 z" id="path1104" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 0.89599,1.18481 5.48384,2.32551 7.03956,-0.25046 l 1.10418,-0.062 c 0.0578,0.0417 5.51012,4.26247 11.34914,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -6.8269,-13.62863 -7.45206,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 14.92551,-15.90852 19.20209,-32.18261 21.62975,-41.33057 -0.50349,-3.50775 -1.32308,-10.70751 -1.45375,-13.44272 -4.53544,-10.77188 -2.3443,-15.76194 -4.6441,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z" class="shadow torso" id="path1102" sodipodi:nodetypes="ccccccccccscccccccsccccccc"/> + <path inkscape:connector-curvature="0" d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 0.89599,1.18481 5.48384,2.32551 7.03956,-0.25046 l 1.10418,-0.062 c 0.0578,0.0417 5.51012,4.26247 11.34914,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -6.8269,-13.62863 -7.45206,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 14.92551,-15.90852 19.20209,-32.18261 21.62975,-41.33057 -1.58625,-1.51901 -2.19808,-10.70751 -2.32875,-13.44272 -4.53544,-10.77188 -1.4693,-15.76194 -3.7691,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.20009,-4.26672 -28.06149,3.10873 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.01907,3.61343 -17.66525,5.91567 -29.51965,8.86728 -8.36905,13.10912 -16.38873,17.64107 -24.82836,40.21314 z" class="shadow torso" id="path1102" sodipodi:nodetypes="ccccccccccscccccccsccccccc"/> <path class="skin neck" sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path1541" d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z"/> - <path d="m 346.20898,176.85156 c 0.0446,0.0265 0.0629,0.064 0.10938,0.0898 -29.49173,35.69478 -78.90476,13.79456 -59.58398,10.27929 -4.05962,0.91764 -8.25647,1.76506 -15.5879,3.61328 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 1.37693,0.26708 4.09368,1.61095 7.06445,-0.26758 l 1.11133,-0.0781 c 1.17404,1.57274 8.90177,1.53055 11.31445,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -3.8841,-8.49646 -20.35167,-24.94928 -20.57812,-24.78321 0.17394,-0.53763 -7.38366,-13.70783 -7.45118,-15.85937 2.56898,-6.32141 6.52259,-31.00027 8.07422,-32.87695 13.06864,-15.80638 16.79573,-26.30873 21.57031,-41.16602 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.53269,-1.09789 -8.76087,-1.33791 -12.56446,-1.90039 z" id="path1557" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccscccccc" class="skin torso"/> + <path d="m 346.20898,176.85156 c 0.0446,0.0265 0.0629,0.064 0.10938,0.0898 -29.49173,35.69478 -78.90476,13.79456 -59.58398,10.27929 -4.05962,0.91764 -8.25647,1.76506 -15.5879,3.61328 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 1.37693,0.26708 4.09368,1.61095 7.06445,-0.26758 l 1.11133,-0.0781 c 1.17404,1.57274 8.90177,1.53055 11.31445,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -3.8841,-8.49646 -20.35167,-24.94928 -20.57812,-24.78321 0.17394,-0.53763 -7.38366,-13.70783 -7.45118,-15.85937 2.56898,-6.32141 6.52259,-31.00027 8.07422,-32.87695 3.11188,-3.76379 5.6941,-7.22684 7.88691,-10.51955 7.0161,-10.53536 10.04573,-19.32697 13.6834,-30.64647 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.53269,-1.09789 -8.76087,-1.33791 -12.56446,-1.90039 z" id="path1557" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccsscccccc" class="skin torso"/> <path sodipodi:nodetypes="ccccc" id="path1106" class="shadow belly_details" d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" inkscape:connector-curvature="0"/> <path sodipodi:nodetypes="ccc" id="path1108" class="muscle_tone" d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z" inkscape:connector-curvature="0"/> <path sodipodi:nodetypes="ccc" id="path1110" class="muscle_tone" d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z" inkscape:connector-curvature="0"/> @@ -579,11 +583,11 @@ <path sodipodi:nodetypes="ccc" id="path1126" class="muscle_tone" d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" inkscape:connector-curvature="0"/> <path sodipodi:nodetypes="ccc" id="path1128" class="muscle_tone" d="m 331.83474,309.96831 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" inkscape:connector-curvature="0"/> <path sodipodi:nodetypes="ccc" id="path1130" class="muscle_tone" d="m 250.08235,322.46839 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="path1132" class="shadow" d="m 361.02638,237.18777 c -0.94326,-8.05772 -0.78056,-23.30289 -4.75812,-32.08391 2.09688,6.60791 3.01744,21.31058 4.75812,32.08391 z" inkscape:connector-curvature="0"/> <path inkscape:connector-curvature="0" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z" class="muscle_tone belly_details" id="path1440" sodipodi:nodetypes="cccccc"/> + <path inkscape:connector-curvature="0" d="m 334.35262,257.79054 c 18.3821,-10.6129 18.87632,-45.89411 23.20514,-48.39336 -5.22768,3.0182 -6.34343,38.65826 -23.20514,48.39336 z" class="shadow" id="path3232-0" sodipodi:nodetypes="ccc"/> </g> - <g inkscape:groupmode="layer" id="Torso_Unnatural" style="display:inline" inkscape:label="Torso_Unnatural"> - <path sodipodi:nodetypes="ccccccccccscccccccsccccccc" id="path1150" class="shadow torso" d="m 246.30911,231.06259 c -8.99453,20.02062 -2.7168,39.82817 6.59033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -15.97966,23.47896 -17.84706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 3.60245,2.72059 6.88662,0.53559 7.11408,-0.30205 l 1.02256,-0.0126 c 0.0456,0.48907 6.30075,4.01813 11.35624,0.16606 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -12.21859,-13.62863 -12.84375,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 19.23508,-11.98202 24.99543,-31.81666 27.02144,-41.33057 -0.50349,-3.50775 -1.32308,-10.70751 -1.45375,-13.44272 -4.53544,-10.77188 -2.3443,-15.76194 -4.6441,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z" inkscape:connector-curvature="0"/> + <g inkscape:groupmode="layer" id="Torso_Unnatural" style="display:inline;opacity:1" inkscape:label="Torso_Unnatural"> + <path sodipodi:nodetypes="ccccccccccscccccccsccccccc" id="path1150" class="shadow torso" d="m 246.30911,231.06259 c -8.99453,20.02062 -2.7168,39.82817 6.59033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -15.97966,23.47896 -17.84706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 3.60245,2.72059 6.88662,0.53559 7.11408,-0.30205 l 1.02256,-0.0126 c 0.0456,0.48907 6.30075,4.01813 11.35624,0.16606 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -12.21859,-13.62863 -12.84375,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 19.23508,-11.98202 24.99543,-31.81666 27.02144,-41.33057 -2.30037,-2.67962 -2.96371,-10.70751 -3.09438,-13.44272 -4.53544,-10.77188 -0.70367,-15.76194 -3.00347,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z" inkscape:connector-curvature="0"/> <path d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z" id="path1510" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" class="skin neck"/> <path d="m 286.83636,187.18633 c -3.66048,0.80645 -9.84112,2.17312 -15.69027,3.64767 -8.65971,10.94361 -15.77697,17.65654 -24.83698,40.22861 v -2e-5 c -7.97663,19.22419 -2.76769,39.20032 6.84033,56.00881 -1.06764,11.32585 -1.52536,26.55789 1.00056,35.50213 C 242.77941,344.09706 238.25294,346.1 236.05294,366.2 c -1.1,10.1 -2.23235,20.37059 -6.00882,40.87059 1.79918,21.68192 24.06603,28.08577 33.55443,33.19683 14.43169,10.04215 15.75456,13.80608 22.99302,21.72969 2.40278,1.2769 6.48126,0.50828 7.11501,-0.33224 l 1.04511,-0.0119 c 1.31243,1.17872 7.86774,1.71281 11.33041,0.17649 1.25908,-5.51105 3.06465,-22.40272 25.53259,-37.02845 9.99479,-6.9207 28.66527,-25.38509 47.28163,-34.05687 -9.1,-20.7 -12.62279,-28.06765 -19.58456,-39.49706 -3.8841,-8.49646 -20.35009,-24.94863 -20.57655,-24.78256 0.17394,-0.53763 -12.86462,-13.70829 -12.93214,-15.85983 2.56898,-6.32141 6.07307,-31.48845 8.07452,-32.87542 17.10876,-11.85604 23.08362,-25.52016 27.05018,-41.16751 -0.3269,-2.17434 -0.47207,-3.26685 -0.65846,-5.74844 -1.66961,-10.3676 -2.47994,-23.531 -5.32957,-34.10874 0.025,-10.96207 3.83428,-17.95261 3.83428,-17.95261 -3.26688,-0.7913 -9.53184,-1.48469 -12.45487,-1.8114 -33.85358,35.49387 -77.52547,14.10408 -59.48279,10.24576 z" id="path1152" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccc" class="skin torso"/> <path inkscape:connector-curvature="0" d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z" class="muscle_tone" id="path1156" sodipodi:nodetypes="ccc"/> @@ -598,11 +602,17 @@ <path inkscape:connector-curvature="0" d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" class="muscle_tone" id="path1174" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 325.9149,310.57121 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" class="muscle_tone" id="path1176" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 254.14485,322.53089 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" class="muscle_tone" id="path1178" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 361.02638,237.18777 c -0.94326,-8.05772 -0.78056,-23.30289 -4.75812,-32.08391 2.09688,6.60791 3.01744,21.31058 4.75812,32.08391 z" class="shadow" id="path1180" sodipodi:nodetypes="ccc"/> <path inkscape:connector-curvature="0" d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" class="shadow belly_details" id="path1454" sodipodi:nodetypes="ccccc"/> <path sodipodi:nodetypes="cccccc" id="path1459" class="muscle_tone belly_details" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="path2543" class="shadow" d="m 334.35262,257.79054 c 18.3821,-10.6129 18.87632,-45.89411 23.20514,-48.39336 -5.22768,3.0182 -6.34343,38.65826 -23.20514,48.39336 z" inkscape:connector-curvature="0"/> </g> </g> + <g inkscape:groupmode="layer" id="Clavicle" style="display:inline" inkscape:label="Clavicle" sodipodi:insensitive="true"> + <path inkscape:connector-curvature="0" d="m 309.9875,184.0875 c 14.75,-2.5125 17.4,-1.9875 45.45,-5.375 -27.27187,3.9625 -35,4.3375 -45.45,5.375 z" class="shadow" id="XMLID_511_" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 297.39343,185.90351 c -10.35625,0.46563 -15.06859,3.45066 -23.39359,4.91628 7.69063,-2.24062 15.15922,-4.91628 23.39359,-4.91628 z" class="shadow" id="XMLID_546_" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 313.8375,183.4375 c 10.06542,-14.75429 4.91406,-12.50942 11.3875,-27.5625 -4.64445,12.75714 -1.92662,15.28512 -11.3875,27.5625 z" class="shadow" id="XMLID_511_-1" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 302.62124,184.29159 c -0.67705,-3.9108 -0.64175,-6.21768 -2.35616,-8.91389 1.38684,2.4846 1.37673,4.45479 2.35616,8.91389 z" class="shadow" id="XMLID_511_-1-8" sodipodi:nodetypes="ccc"/> + </g> <g inkscape:groupmode="layer" id="Torso_Highlights_" inkscape:label="Torso_Highlights_" style="display:inline"> <g inkscape:groupmode="layer" id="Torso_Highlights2" inkscape:label="Torso_Highlights2" style="display:inline"> <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-7-7-9-0-4-2-3-9-9-9-7-5-8" class="highlight2" d="m 290.78031,289.8987 c 1.16217,7.94032 -1.53798,16.12237 -2.63519,17.25859 -0.1441,-1.51113 -0.50096,-11.78223 2.63519,-17.25859 z" inkscape:connector-curvature="0"/> @@ -671,47 +681,53 @@ </g> </g> <g inkscape:groupmode="layer" id="Torso_Outfit_Maid_" inkscape:label="Torso_Outfit_Maid_" style="display:inline;opacity:1"> - <g inkscape:groupmode="layer" id="Torso_Outfit_Maid_Hourglass" inkscape:label="Torso_Outfit_Maid_Hourglass" style="display:inline;opacity:1"> - <path inkscape:connector-curvature="0" d="m 359.85539,224.47865 c 0,0 0.28252,2.9195 1.13622,14.01358 0.60333,0.24133 -4.66387,31.43722 -21.44276,39.64844 -2.60991,13.16972 -4.10758,40.46738 -4.54391,40.39466 0,0 2.60164,5.12801 3.8029,7.55426 25.41094,14.16919 46.24345,42.44329 56.43292,71.31194 19.15995,38.96952 18.59152,124.9406 17.21147,125.13775 -69.91487,-25.57972 -163.41142,29.15618 -232.75934,-4.27387 -0.6629,0 4.43678,-75.76419 20.06445,-110.96586 8.85721,-31.27651 35.22168,-60.19855 50.2411,-84.26 -5.31056,-13.48953 -3.00269,-25.08718 -1.37108,-35.87779 -10.20434,-15.27731 -9.37658,-29.5504 -6.26329,-44.46892 1.91023,-12.81128 7.57872,-19.40372 7.03791,-19.59657 44.12648,12.49268 110.45341,1.38238 110.45341,1.38238 z" id="path1322" sodipodi:nodetypes="cccccccccccccc" class="shadow"/> - <path style="display:inline;opacity:1;fill:#333333" sodipodi:nodetypes="cccccaccaccacc" id="path1108-7" d="m 359.85539,224.47865 c 0,0 0.28252,2.9195 1.13622,14.01358 0,0 -5.70201,31.02196 -21.44276,39.64844 -4.05461,12.92894 -4.54391,40.39466 -4.54391,40.39466 0,0 2.60164,5.12801 3.8029,7.55426 23.94861,15.0158 44.54286,43.42784 56.43292,71.31194 16.51533,38.7311 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -9.41353,-15.3492 -7.79397,-29.57811 -6.26329,-44.46892 0.70972,-6.9043 7.03791,-19.59657 7.03791,-19.59657 44.12648,12.49268 110.45341,1.38238 110.45341,1.38238 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" id="path1251" class="shadow" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" id="path1249" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" style="display:inline;opacity:1;fill:#ffffff"/> - <path inkscape:connector-curvature="0" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" class="shadow" id="path1244" sodipodi:nodetypes="ccssccc"/> - <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="caaaacc" id="path1108-7-2" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1282" class="shadow" d="m 318.00391,325.73755 c 0.1662,-0.0684 8.0406,-11.7618 5.42961,-17.15483 -0.9984,-4.15898 -9.59497,-7.10148 -9.61975,-7.06183 0.0569,0.0797 10.47717,-4.52675 10.06153,-9.41841 -0.0685,-4.77393 -10.54117,-8.39289 -10.58006,-8.30214 -0.0526,0.16819 10.25564,-4.52608 11.12513,-10.21762 1.02638,-5.3714 -8.5072,-13.50589 -8.61202,-13.47969 -0.0119,0.17826 11.09595,-3.22828 11.88153,-8.72903 1.155,-4.5223 -7.71736,-10.81305 -7.91075,-10.7647 -0.18835,0.18835 9.25517,-0.42186 11.47755,-4.98693 1.84787,-4.00611 -4.81901,-11.58557 -4.96824,-11.52961 -0.01,0.12732 7.55069,-1.24244 9.10324,-4.91711 1.82315,-3.08035 -1.62605,-9.99671 -1.71582,-9.98549 0.0825,0.0367 5.16407,-1.94852 5.15369,-4.3377 0.60501,-1.54914 -2.18836,-3.99091 -2.28908,-3.97832 0.0908,0.10897 4.0678,-0.15226 4.79507,-1.82593 1.06341,-1.36941 -0.21991,-4.6138 -0.31935,-4.58065 0,0.11423 4.17524,-0.0769 5.19792,-1.9502 0.99558,-1.00322 -0.0412,-3.85994 -0.15909,-3.89362 0.0263,0.10519 4.18456,0.34981 5.20584,-1.40388 1.11122,-1.15275 0.14014,-4.38532 0.077,-4.38532 0.0633,0.0633 4.12591,-0.0432 4.83864,-1.69189 0.81726,-0.94694 -0.16572,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c -0.0716,-0.0398 -3.52027,0.54293 -4.22866,1.88506 -0.85877,0.77377 -0.79145,2.93259 -0.6882,2.93259 0.0551,-0.16527 -3.13346,0.0301 -4.19674,1.3135 -0.99275,0.92921 -0.83191,3.5722 -0.81211,3.56824 -0.2917,-0.11219 -3.72836,0.0448 -4.59896,1.27221 -1.38692,1.22213 -1.40211,4.98076 -1.29971,4.98076 0,-0.0543 -3.63043,0.28826 -4.68112,1.63345 -1.39037,1.63663 -0.95682,5.95733 -0.84379,5.86314 -0.0714,-0.0572 -3.50997,1.34812 -4.13281,2.97367 -0.99363,1.8097 0.0827,5.8256 0.1485,5.78611 0.0286,-0.0107 -3.47409,-2.58144 -5.81788,-2.29945 -2.03561,0.078 -5.00819,3.04217 -4.98536,3.065 0.0894,-0.0383 -3.77398,-2.28548 -6.07463,-1.93646 -2.19936,0.16817 -5.28843,3.26531 -5.24625,3.29062 0.0577,-0.0247 -3.6596,-2.98608 -6.11743,-2.8254 -2.62706,-0.17114 -6.42609,3.37458 -6.37214,3.43623 0.0764,-0.0305 -2.5983,-3.62398 -4.74516,-3.86523 -2.3968,-0.5135 -6.56096,2.67213 -6.54041,2.73377 0.0278,0 -1.86631,-3.79743 -3.84319,-4.39294 -2.1406,-0.8914 -7.08051,1.65543 -7.08312,1.65775 0,0 4.17132,-0.88265 4.32598,-2.62631 0.28337,-1.00061 -1.78574,-2.2873 -1.82858,-2.27124 0.021,0.0349 5.21539,-1.03939 5.23366,-3.24468 0.28059,-1.11065 -2.28712,-1.83524 -2.3211,-1.81583 0.0194,0.0427 4.09634,-0.0764 4.41853,-1.78242 0.37085,-0.98469 -1.73184,-2.21574 -1.77223,-2.1933 0.008,0.0219 2.8764,-0.90334 3.31722,-2.28129 0.32598,-0.62431 -0.37809,-1.9308 -0.43513,-1.92265 l -4.69222,0.72413 c 0.0237,-0.0426 -1.79765,0.46492 -2.63183,1.51492 -0.69936,0.46779 -0.96174,2.2027 -0.94371,2.21712 0.007,-0.0358 -1.88989,0.10067 -2.44519,0.95669 -0.61207,0.66093 -0.26769,2.37608 -0.20536,2.36361 0.012,-0.0419 -2.55183,0.42329 -3.2251,1.69596 -0.77861,1.04606 0.0592,3.62639 0.12616,3.62639 0.0513,-0.094 -2.12186,0.38382 -2.86561,1.6675 -0.82026,1.16209 -0.31411,3.83168 -0.0897,3.71947 -0.2087,-0.14907 -4.50311,2.782 -5.0707,5.30267 -1.45304,2.7823 -0.4393,8.68853 -0.14431,8.57791 -0.11184,-0.19573 -5.61323,4.13251 -6.54891,7.662 -2.01339,4.22462 -0.20242,12.80349 0.12218,12.65594 -0.27988,-0.19992 -6.69779,4.93798 -6.78396,8.84863 -0.72683,3.97856 4.74341,10.55407 4.9951,10.4462 -0.19084,-0.12723 -4.51715,7.94817 -3.68091,12.43969 0.0674,4.53539 6.50495,11.45785 6.7561,11.37413 -0.19797,0.054 -3.09154,6.28983 -2.56163,9.33402 -0.61864,3.0265 1.44599,8.78728 1.66753,8.76266 -0.22155,-0.0738 -2.26451,6.97373 -1.5863,10.76219 -0.2869,2.90595 3.05181,8.88695 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 318.00391,325.73755 c 0,0 7.29076,-11.45304 5.42961,-17.15483 -1.23433,-3.78149 -9.61975,-7.06183 -9.61975,-7.06183 0,0 10.26143,-4.82879 10.06153,-9.41841 -0.19507,-4.4786 -10.58006,-8.30214 -10.58006,-8.30214 0,0 10.47399,-5.22482 11.12513,-10.21762 0.68954,-5.28719 -8.61202,-13.47969 -8.61202,-13.47969 0,0 11.1388,-3.87102 11.88153,-8.72903 0.67298,-4.4018 -7.91075,-10.7647 -7.91075,-10.7647 0,0 9.94184,-1.10853 11.47755,-4.98693 1.54066,-3.89091 -4.96824,-11.52961 -4.96824,-11.52961 0,0 7.59479,-1.81571 9.10324,-4.91711 1.47717,-3.0371 -1.71582,-9.98549 -1.71582,-9.98549 0,0 4.76382,-2.12641 5.15369,-4.3377 0.26565,-1.50672 -2.28908,-3.97832 -2.28908,-3.97832 0,0 3.87403,-0.38479 4.79507,-1.82593 0.82425,-1.28969 -0.31935,-4.58065 -0.31935,-4.58065 0,0 4.17524,-0.40787 5.19792,-1.9502 0.71783,-1.08258 -0.15909,-3.89362 -0.15909,-3.89362 0,0 4.10041,0.0132 5.20584,-1.40388 0.89923,-1.15275 0.077,-4.38532 0.077,-4.38532 0,0 3.91403,-0.25505 4.83864,-1.69189 0.60936,-0.94694 -0.30643,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c 0,0 -3.24515,0.69578 -4.22866,1.88506 -0.6399,0.77377 -0.6882,2.93259 -0.6882,2.93259 0,0 -3.20228,0.23661 -4.19674,1.3135 -0.82757,0.89617 -0.81211,3.56824 -0.81211,3.56824 0,0 -3.48252,0.13932 -4.59896,1.27221 -1.20438,1.22213 -1.29971,4.98076 -1.29971,4.98076 0,0 -3.63043,0.3578 -4.68112,1.63345 -1.25533,1.5241 -0.84379,5.86314 -0.84379,5.86314 0,0 -3.37828,1.45347 -4.13281,2.97367 -0.85776,1.72818 0.1485,5.78611 0.1485,5.78611 0,0 -3.74057,-2.48151 -5.81788,-2.29945 -1.94328,0.17031 -4.98536,3.065 -4.98536,3.065 0,0 -3.96616,-2.20312 -6.07463,-1.93646 -2.04797,0.25901 -5.24625,3.29062 -5.24625,3.29062 0,0 -3.87237,-2.89489 -6.11743,-2.8254 -2.41204,0.0746 -6.37214,3.43623 -6.37214,3.43623 0,0 -2.72617,-3.57283 -4.74516,-3.86523 -2.33852,-0.33867 -6.54041,2.73377 -6.54041,2.73377 0,0 -1.99097,-3.79743 -3.84319,-4.39294 -2.30846,-0.74219 -7.08312,1.65775 -7.08312,1.65775 0,0 4.03449,-0.96475 4.32598,-2.62631 0.16794,-0.95733 -1.82858,-2.27124 -1.82858,-2.27124 0,0 5.12196,-1.19511 5.23366,-3.24468 0.0535,-0.98088 -2.3211,-1.81583 -2.3211,-1.81583 0,0 4.01965,-0.24516 4.41853,-1.78242 0.23607,-0.90981 -1.77223,-2.1933 -1.77223,-2.1933 0,0 2.82832,-1.03154 3.31722,-2.28129 0.23939,-0.61194 -0.43513,-1.92265 -0.43513,-1.92265 l -4.69222,0.72413 c 0,0 -1.96023,0.75757 -2.63183,1.51492 -0.53291,0.60095 -0.94371,2.21712 -0.94371,2.21712 0,0 -1.92093,0.25586 -2.44519,0.95669 -0.47372,0.63326 -0.20536,2.36361 -0.20536,2.36361 0,0 -2.61532,0.6455 -3.2251,1.69596 -0.60723,1.04606 0.12616,3.62639 0.12616,3.62639 0,0 -2.30315,0.71618 -2.86561,1.6675 -0.63118,1.06755 -0.0897,3.71947 -0.0897,3.71947 0,0 -4.14105,3.04061 -5.0707,5.30267 -1.08704,2.64505 -0.14431,8.57791 -0.14431,8.57791 0,0 -5.40066,4.5045 -6.54891,7.662 -1.44183,3.96482 0.12218,12.65594 0.12218,12.65594 0,0 -6.39804,5.15209 -6.78396,8.84863 -0.40078,3.83882 4.9951,10.4462 4.9951,10.4462 0,0 -4.21638,8.14869 -3.68091,12.43969 0.54606,4.37584 6.7561,11.37413 6.7561,11.37413 0,0 -2.43294,6.11021 -2.56163,9.33402 -0.1186,2.97094 1.66753,8.76266 1.66753,8.76266 0,0 -1.76447,7.14041 -1.5863,10.76219 0.13408,2.72553 3.17474,8.83426 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z" id="path1280" sodipodi:nodetypes="cacacacacacacacacacacaccacacacacacacacacacacacacacaccacacacacacacacacacscccc" style="display:inline;opacity:1;fill:#ffffff;stroke-width:1.05999994"/> - <path inkscape:connector-curvature="0" d="m 315.90803,320.84344 c -2.49311,-12.85797 -3.70847,-24.16935 -4.44214,-39.5634 4.29028,-30.83464 3.35841,-41.06705 21.27809,-72.37945 1.06744,-9.14922 11.65832,-19.70221 22.34434,-31.15738 -2.13976,-0.51067 -4.28423,-0.96012 -6.46482,-0.94005 -11.40402,9.3964 -21.91679,21.41172 -24.91403,32.79713 -21.89276,0.52722 -32.81714,6.37507 -58.48416,-1.54946 3.84727,-8.39874 5.10763,-9.47909 10.78801,-18.40031 -1.05734,0.0265 -2.02266,-0.0784 -3.63549,0.74174 -6.9411,6.67026 -8.04042,9.50969 -12.35955,17.95063 -2.80066,6.10293 -4.61886,11.91112 -5.76436,17.5175 -10.39962,25.33864 -5.9915,43.15772 -3.53361,61.61413 -1.4792,13.13023 -0.30041,25.062 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z" class="shadow" id="path1268" sodipodi:nodetypes="ccccccccccccccc"/> - <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccccccccccccc" id="path1108-7-2-2" d="m 315.90803,320.84344 c -2.81213,-13.35423 -5.31598,-26.66992 -4.44214,-39.5634 3.50974,-30.99075 1.84762,-41.36921 21.27809,-72.37945 0.93083,-9.35414 10.94077,-20.77854 22.34434,-31.15738 l -6.46482,-0.94005 c -9.53791,9.58301 -21.68892,21.43451 -24.91403,32.79713 -21.76753,0.94464 -32.29254,8.12373 -58.48416,-1.54946 3.69598,-8.48126 4.421,-9.85362 10.78801,-18.40031 l -3.63549,0.74174 c -6.53986,6.87088 -7.78622,9.63679 -12.35955,17.95063 l -5.76436,17.5175 c -8.96086,25.20784 -5.79542,43.13989 -3.53361,61.61413 -0.5132,12.61008 0.22818,24.77737 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 335.13308,318.51346 3.76755,7.52419 c -34.68921,1.29057 -70.68419,18.30652 -92.67015,3.82289 l 3.86668,-6.97285 c 33.13895,8.49273 52.33122,-5.8368 85.03592,-4.37423 z" class="shadow" id="path1246" sodipodi:nodetypes="ccccc"/> - <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1108-7-2-7" d="m 335.13308,318.51346 3.76755,7.52419 c -35.36449,0.47083 -72.09797,17.70061 -92.67015,3.82289 l 3.86668,-6.97285 c 30.76253,9.95515 51.75714,-4.70842 85.03592,-4.37423 z" inkscape:connector-curvature="0"/> - </g> - <g style="display:inline;opacity:1" inkscape:label="Torso_Outfit_Maid_Unnatural" id="Torso_Outfit_Maid_Unnatural" inkscape:groupmode="layer"> - <path class="shadow" sodipodi:nodetypes="cccccccccccccc" id="path1396" d="m 359.32506,223.68315 c 0,0 0.81285,3.715 1.66655,14.80908 0.60333,0.24133 -10.14395,31.21625 -26.92284,39.42747 -2.60991,13.16972 -1.19,40.93835 -1.62633,40.86563 0,0 5.16414,4.87801 6.3654,7.30426 25.41094,14.16919 46.24345,42.44329 56.43292,71.31194 19.15995,38.96952 18.59152,124.9406 17.21147,125.13775 -69.91487,-25.57972 -163.41142,29.15618 -232.75934,-4.27387 -0.6629,0 4.43678,-75.76419 20.06445,-110.96586 8.85721,-31.27651 38.93399,-60.37533 53.95341,-84.43678 -5.31056,-13.48953 -3.26785,-24.95459 -1.63624,-35.7452 -10.20434,-15.27731 -12.82373,-29.50621 -9.71044,-44.42473 1.68036,-12.73855 7.18619,-19.52847 7.03163,-19.62506 44.12648,12.49268 109.92936,0.61537 109.92936,0.61537 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 359.32506,223.68315 c 0,0 0.81285,3.715 1.66655,14.80908 0,0 -11.18209,30.80099 -26.92284,39.42747 -4.05461,12.92894 -1.62633,40.86563 -1.62633,40.86563 0,0 5.16414,4.87801 6.3654,7.30426 23.94861,15.0158 44.54286,43.42784 56.43292,71.31194 16.51533,38.7311 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.34105,-75.97218 20.06445,-110.96586 12.19453,-31.09516 40.22618,-60.05228 53.95341,-84.43678 -4.38752,-13.39723 -2.52851,-24.88066 -1.63624,-35.7452 -9.41353,-15.3492 -10.68632,-29.29831 -9.71044,-44.42473 0.44738,-6.9345 7.03163,-19.62506 7.03163,-19.62506 44.12648,12.49268 109.92936,0.61537 109.92936,0.61537 z" id="path1398" sodipodi:nodetypes="cccccaccaccacc" style="display:inline;opacity:1;fill:#333333"/> - <path inkscape:connector-curvature="0" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" class="shadow" id="path1400" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc"/> - <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" id="path1402" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccssccc" id="path1404" class="shadow" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" id="path1415" sodipodi:nodetypes="caaaacc" style="display:inline;opacity:1;fill:#ffffff"/> - <path inkscape:connector-curvature="0" d="m 318.00391,325.73755 c 0.1662,-0.0684 8.0406,-11.7618 5.42961,-17.15483 -0.9984,-4.15898 -9.59497,-7.10148 -9.61975,-7.06183 0.0569,0.0797 10.47717,-4.52675 10.06153,-9.41841 -0.0685,-4.77393 -10.54117,-8.39289 -10.58006,-8.30214 -0.0526,0.16819 10.25564,-4.52608 11.12513,-10.21762 1.02638,-5.3714 -8.5072,-13.50589 -8.61202,-13.47969 -0.0119,0.17826 11.09595,-3.22828 11.88153,-8.72903 1.155,-4.5223 -7.71736,-10.81305 -7.91075,-10.7647 -0.18835,0.18835 9.25517,-0.42186 11.47755,-4.98693 1.84787,-4.00611 -4.81901,-11.58557 -4.96824,-11.52961 -0.01,0.12732 7.55069,-1.24244 9.10324,-4.91711 1.82315,-3.08035 -1.62605,-9.99671 -1.71582,-9.98549 0.0825,0.0367 5.16407,-1.94852 5.15369,-4.3377 0.60501,-1.54914 -2.18836,-3.99091 -2.28908,-3.97832 0.0908,0.10897 4.0678,-0.15226 4.79507,-1.82593 1.06341,-1.36941 -0.21991,-4.6138 -0.31935,-4.58065 0,0.11423 4.17524,-0.0769 5.19792,-1.9502 0.99558,-1.00322 -0.0412,-3.85994 -0.15909,-3.89362 0.0263,0.10519 4.18456,0.34981 5.20584,-1.40388 1.11122,-1.15275 0.14014,-4.38532 0.077,-4.38532 0.0633,0.0633 4.12591,-0.0432 4.83864,-1.69189 0.81726,-0.94694 -0.16572,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c -0.0716,-0.0398 -3.52027,0.54293 -4.22866,1.88506 -0.85877,0.77377 -0.79145,2.93259 -0.6882,2.93259 0.0551,-0.16527 -3.13346,0.0301 -4.19674,1.3135 -0.99275,0.92921 -0.83191,3.5722 -0.81211,3.56824 -0.2917,-0.11219 -3.72836,0.0448 -4.59896,1.27221 -1.38692,1.22213 -1.40211,4.98076 -1.29971,4.98076 0,-0.0543 -3.63043,0.28826 -4.68112,1.63345 -1.39037,1.63663 -0.95682,5.95733 -0.84379,5.86314 -0.0714,-0.0572 -3.50997,1.34812 -4.13281,2.97367 -0.99363,1.8097 0.0827,5.8256 0.1485,5.78611 0.0286,-0.0107 -3.47409,-2.58144 -5.81788,-2.29945 -2.03561,0.078 -5.00819,3.04217 -4.98536,3.065 0.0894,-0.0383 -3.77398,-2.28548 -6.07463,-1.93646 -2.19936,0.16817 -5.28843,3.26531 -5.24625,3.29062 0.0577,-0.0247 -3.6596,-2.98608 -6.11743,-2.8254 -2.62706,-0.17114 -6.42609,3.37458 -6.37214,3.43623 0.0764,-0.0305 -2.5983,-3.62398 -4.74516,-3.86523 -2.3968,-0.5135 -6.56096,2.67213 -6.54041,2.73377 0.0278,0 -1.86631,-3.79743 -3.84319,-4.39294 -2.1406,-0.8914 -7.08051,1.65543 -7.08312,1.65775 0,0 4.17132,-0.88265 4.32598,-2.62631 0.28337,-1.00061 -1.78574,-2.2873 -1.82858,-2.27124 0.021,0.0349 5.21539,-1.03939 5.23366,-3.24468 0.28059,-1.11065 -2.28712,-1.83524 -2.3211,-1.81583 0.0194,0.0427 4.09634,-0.0764 4.41853,-1.78242 0.37085,-0.98469 -1.73184,-2.21574 -1.77223,-2.1933 0.008,0.0219 2.8764,-0.90334 3.31722,-2.28129 0.32598,-0.62431 -0.37809,-1.9308 -0.43513,-1.92265 l -4.69222,0.72413 c 0.0237,-0.0426 -1.79765,0.46492 -2.63183,1.51492 -0.69936,0.46779 -0.96174,2.2027 -0.94371,2.21712 0.007,-0.0358 -1.88989,0.10067 -2.44519,0.95669 -0.61207,0.66093 -0.26769,2.37608 -0.20536,2.36361 0.012,-0.0419 -2.55183,0.42329 -3.2251,1.69596 -0.77861,1.04606 0.0592,3.62639 0.12616,3.62639 0.0513,-0.094 -2.12186,0.38382 -2.86561,1.6675 -0.82026,1.16209 -0.31411,3.83168 -0.0897,3.71947 -0.2087,-0.14907 -4.50311,2.782 -5.0707,5.30267 -1.45304,2.7823 -0.4393,8.68853 -0.14431,8.57791 -0.11184,-0.19573 -5.61323,4.13251 -6.54891,7.662 -2.01339,4.22462 -0.20242,12.80349 0.12218,12.65594 -0.27988,-0.19992 -6.69779,4.93798 -6.78396,8.84863 -0.72683,3.97856 4.74341,10.55407 4.9951,10.4462 -0.19084,-0.12723 -4.51715,7.94817 -3.68091,12.43969 0.0674,4.53539 6.50495,11.45785 6.7561,11.37413 -0.19797,0.054 -3.09154,6.28983 -2.56163,9.33402 -0.61864,3.0265 1.44599,8.78728 1.66753,8.76266 -0.22155,-0.0738 -2.26451,6.97373 -1.5863,10.76219 -0.2869,2.90595 6.58734,8.62178 6.71027,8.56909 l -2.93224,6.56412 67.29376,-3.51585 z" class="shadow" id="path1417" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> - <path style="display:inline;opacity:1;fill:#ffffff;stroke-width:1.05999994" sodipodi:nodetypes="cacacacacacacacacacacaccacacacacacacacacacacacacacaccacacacacacacacacacscccc" id="path1419" d="m 318.00391,325.73755 c 0,0 7.29076,-11.45304 5.42961,-17.15483 -1.23433,-3.78149 -9.61975,-7.06183 -9.61975,-7.06183 0,0 10.26143,-4.82879 10.06153,-9.41841 -0.19507,-4.4786 -10.58006,-8.30214 -10.58006,-8.30214 0,0 10.47399,-5.22482 11.12513,-10.21762 0.68954,-5.28719 -8.61202,-13.47969 -8.61202,-13.47969 0,0 11.1388,-3.87102 11.88153,-8.72903 0.67298,-4.4018 -7.91075,-10.7647 -7.91075,-10.7647 0,0 9.94184,-1.10853 11.47755,-4.98693 1.54066,-3.89091 -4.96824,-11.52961 -4.96824,-11.52961 0,0 7.59479,-1.81571 9.10324,-4.91711 1.47717,-3.0371 -1.71582,-9.98549 -1.71582,-9.98549 0,0 4.76382,-2.12641 5.15369,-4.3377 0.26565,-1.50672 -2.28908,-3.97832 -2.28908,-3.97832 0,0 3.87403,-0.38479 4.79507,-1.82593 0.82425,-1.28969 -0.31935,-4.58065 -0.31935,-4.58065 0,0 4.17524,-0.40787 5.19792,-1.9502 0.71783,-1.08258 -0.15909,-3.89362 -0.15909,-3.89362 0,0 4.10041,0.0132 5.20584,-1.40388 0.89923,-1.15275 0.077,-4.38532 0.077,-4.38532 0,0 3.91403,-0.25505 4.83864,-1.69189 0.60936,-0.94694 -0.30643,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c 0,0 -3.24515,0.69578 -4.22866,1.88506 -0.6399,0.77377 -0.6882,2.93259 -0.6882,2.93259 0,0 -3.20228,0.23661 -4.19674,1.3135 -0.82757,0.89617 -0.81211,3.56824 -0.81211,3.56824 0,0 -3.48252,0.13932 -4.59896,1.27221 -1.20438,1.22213 -1.29971,4.98076 -1.29971,4.98076 0,0 -3.63043,0.3578 -4.68112,1.63345 -1.25533,1.5241 -0.84379,5.86314 -0.84379,5.86314 0,0 -3.37828,1.45347 -4.13281,2.97367 -0.85776,1.72818 0.1485,5.78611 0.1485,5.78611 0,0 -3.74057,-2.48151 -5.81788,-2.29945 -1.94328,0.17031 -4.98536,3.065 -4.98536,3.065 0,0 -3.96616,-2.20312 -6.07463,-1.93646 -2.04797,0.25901 -5.24625,3.29062 -5.24625,3.29062 0,0 -3.87237,-2.89489 -6.11743,-2.8254 -2.41204,0.0746 -6.37214,3.43623 -6.37214,3.43623 0,0 -2.72617,-3.57283 -4.74516,-3.86523 -2.33852,-0.33867 -6.54041,2.73377 -6.54041,2.73377 0,0 -1.99097,-3.79743 -3.84319,-4.39294 -2.30846,-0.74219 -7.08312,1.65775 -7.08312,1.65775 0,0 4.03449,-0.96475 4.32598,-2.62631 0.16794,-0.95733 -1.82858,-2.27124 -1.82858,-2.27124 0,0 5.12196,-1.19511 5.23366,-3.24468 0.0535,-0.98088 -2.3211,-1.81583 -2.3211,-1.81583 0,0 4.01965,-0.24516 4.41853,-1.78242 0.23607,-0.90981 -1.77223,-2.1933 -1.77223,-2.1933 0,0 2.82832,-1.03154 3.31722,-2.28129 0.23939,-0.61194 -0.43513,-1.92265 -0.43513,-1.92265 l -4.69222,0.72413 c 0,0 -1.96023,0.75757 -2.63183,1.51492 -0.53291,0.60095 -0.94371,2.21712 -0.94371,2.21712 0,0 -1.92093,0.25586 -2.44519,0.95669 -0.47372,0.63326 -0.20536,2.36361 -0.20536,2.36361 0,0 -2.61532,0.6455 -3.2251,1.69596 -0.60723,1.04606 0.12616,3.62639 0.12616,3.62639 0,0 -2.30315,0.71618 -2.86561,1.6675 -0.63118,1.06755 -0.0897,3.71947 -0.0897,3.71947 0,0 -4.14105,3.04061 -5.0707,5.30267 -1.08704,2.64505 -0.14431,8.57791 -0.14431,8.57791 0,0 -5.40066,4.5045 -6.54891,7.662 -1.44183,3.96482 0.12218,12.65594 0.12218,12.65594 0,0 -6.39804,5.15209 -6.78396,8.84863 -0.40078,3.83882 4.9951,10.4462 4.9951,10.4462 0,0 -4.21638,8.14869 -3.68091,12.43969 0.54606,4.37584 6.7561,11.37413 6.7561,11.37413 0,0 -2.43294,6.11021 -2.56163,9.33402 -0.1186,2.97094 1.66753,8.76266 1.66753,8.76266 0,0 -1.76447,7.14041 -1.5863,10.76219 0.13408,2.72553 6.71027,8.56909 6.71027,8.56909 l -2.93224,6.56412 67.29376,-3.51585 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccccccccccccccc" id="path1421" class="shadow" d="m 315.90803,320.84344 c -2.49311,-12.85797 -3.70847,-24.16935 -4.44214,-39.5634 4.29028,-30.83464 3.35841,-41.06705 21.27809,-72.37945 1.06744,-9.14922 11.65832,-19.70221 22.34434,-31.15738 -2.13976,-0.51067 -4.28423,-0.96012 -6.46482,-0.94005 -11.40402,9.3964 -21.91679,21.41172 -24.91403,32.79713 -21.89276,0.52722 -32.81714,6.37507 -58.48416,-1.54946 3.84727,-8.39874 5.10763,-9.47909 10.78801,-18.40031 -1.05734,0.0265 -2.02266,-0.0784 -3.63549,0.74174 -6.9411,6.67026 -8.04042,9.50969 -12.35955,17.95063 -2.80066,6.10293 -4.61886,11.91112 -5.76436,17.5175 -10.39962,25.33864 -5.9915,43.15772 -3.53361,61.61413 -1.4792,13.13023 1.06961,23.82456 3.07306,35.44835 18.49356,5.86562 40.23513,0.90221 62.11466,-2.0794 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 315.90803,320.84344 c -2.81213,-13.35423 -5.31598,-26.66992 -4.44214,-39.5634 3.50974,-30.99075 1.84762,-41.36921 21.27809,-72.37945 0.93083,-9.35414 10.94077,-20.77854 22.34434,-31.15738 l -6.46482,-0.94005 c -9.53791,9.58301 -21.68892,21.43451 -24.91403,32.79713 -21.76753,0.94464 -32.29254,8.12373 -58.48416,-1.54946 3.69598,-8.48126 4.421,-9.85362 10.78801,-18.40031 l -3.63549,0.74174 c -6.53986,6.87088 -7.78622,9.63679 -12.35955,17.95063 l -5.76436,17.5175 c -8.96086,25.20784 -5.79542,43.13989 -3.53361,61.61413 -0.5132,12.61008 1.5982,23.53993 3.07306,35.44835 18.49356,5.86562 40.23513,0.90221 62.11466,-2.0794 z" id="path1423" sodipodi:nodetypes="ccccccccccccccc" style="display:inline;opacity:1;fill:#ffffff"/> - <path sodipodi:nodetypes="ccccc" id="path1425" class="shadow" d="m 332.57058,318.76346 6.33005,7.27419 c -34.68921,1.29057 -66.97188,18.12974 -88.95784,3.64611 l 3.86668,-6.97285 c 33.13895,8.49273 46.05641,-5.41002 78.76111,-3.94745 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 332.57058,318.76346 6.33005,7.27419 c -35.36449,0.47083 -68.38566,17.52383 -88.95784,3.64611 l 3.86668,-6.97285 c 30.76253,9.95515 45.48233,-4.28164 78.76111,-3.94745 z" id="path1427" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> - </g> <g inkscape:groupmode="layer" id="Torso_Outfit_Maid_Normal" inkscape:label="Torso_Outfit_Maid_Normal" style="display:inline;opacity:1"> - <path inkscape:connector-curvature="0" d="m 359.59022,223.85993 c 0,0 0.54769,3.53822 1.40139,14.6323 0.60333,0.24133 1.08137,17.47186 -9.95227,42.07912 -2.60991,13.16972 -1.59807,36.6617 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.41094,14.16919 34.43095,43.81829 44.62042,72.68694 19.15995,38.96952 18.59152,124.9406 17.21147,125.13775 -69.91487,-25.57972 -163.41142,29.15618 -232.75934,-4.27387 -0.6629,0 4.43678,-75.76419 20.06445,-110.96586 8.85721,-31.27651 35.22168,-60.19855 50.2411,-84.26 -5.31056,-13.48953 -3.00269,-25.08718 -1.37108,-35.87779 -10.20434,-15.27731 -9.37658,-29.5504 -6.26329,-44.46892 2.33144,-13.21932 7.5209,-19.83366 7.32405,-19.71802 44.12648,12.49268 109.9021,0.88511 109.9021,0.88511 z" id="path1435" sodipodi:nodetypes="cccccccccccccc" class="shadow"/> - <path style="display:inline;opacity:1;fill:#333333" sodipodi:nodetypes="cccccaccaccacc" id="path1437" d="m 359.59022,223.85993 c 0,0 0.54769,3.53822 1.40139,14.6323 0,0 -0.31032,17.18918 -9.95227,42.07912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 35.04244,45.91894 44.62042,72.68694 14.18515,39.64386 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -9.41353,-15.3492 -7.87474,-29.58663 -6.26329,-44.46892 0.75479,-6.97069 7.32405,-19.71802 7.32405,-19.71802 44.12648,12.49268 109.9021,0.88511 109.9021,0.88511 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 360.49161,241.99223 c 0.15713,0.0673 1.09091,14.07542 -9.45227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.42564,15.0158 37.30125,45.91894 44.62042,72.68694 18.09394,39.28852 18.07129,125.05958 17.21147,125.13775 -70.8552,-22.32954 -164.13155,30.03525 -232.75934,-4.27387 -0.19735,-0.0197 4.1265,-76.03991 20.06445,-110.96586 9.2798,-30.93655 35.4953,-60.02101 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -5.47524,-7.9954 -6.36742,-21.28882 -5.88641,-30.59601 -4.05722,-36.73329 30.65665,-66.66209 31.00076,-66.66209 -0.008,-0.0706 2.55382,-1.8267 8.72305,-2.20036 -36.01659,24.46625 -42.13809,58.83696 -39.24643,69.07094 12.14629,3.82492 34.25776,3.67112 87.23879,-1.85132 1.92836,0 6.15865,-6.88279 6.15865,-10.00465 2.71491,-24.25648 8.03999,-35.96111 9.4316,-68.9692 4.553,0.39299 4.95014,-0.2397 9.68823,1.7253 -1.04791,6.23371 0.31824,53.97628 4.75601,64.31785 z" id="path2461" sodipodi:nodetypes="cccccccccccccccccccc" style="display:inline;opacity:1;fill:#000000"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1445-0" d="m 348.47508,176.56688 c 6.23488,24.59751 4.25162,51.07322 4.99933,76.19448 -42.11798,9.03479 -85.37513,19.71113 -110.63496,3.91432 -1.95782,-18.39591 8.20167,-47.39868 32.21961,-67.27394 42.97585,-9.32822 52.0825,-17.54406 73.41602,-12.83486 z" inkscape:connector-curvature="0"/> + <path style="display:inline;opacity:1;fill:#333333" sodipodi:nodetypes="ccccaccaccccccccccc" id="path1437" d="m 360.49161,241.99223 c 0,0 0.18968,13.68918 -9.45227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 35.04244,45.91894 44.62042,72.68694 14.18515,39.64386 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -4.94422,-8.06178 -5.57616,-21.38773 -5.88641,-30.59601 -3.92817,-36.49728 30.67927,-66.58172 31.00076,-66.66209 0,0 2.59939,-1.41654 8.72305,-2.20036 -36.76659,20.96625 -42.13809,58.83696 -39.24643,69.07094 24.85388,-0.61208 66.61629,9.56619 108.02244,-11.10597 1.4423,-26.38913 0.15792,-38.14578 -5.1934,-69.7192 4.57973,0.53998 5.03464,0.22507 9.68823,1.7253 -1.36935,6.31407 -0.62585,54.2123 4.75601,64.31785 z" inkscape:connector-curvature="0"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cccc" id="path1445-1-7" d="m 306.1115,174.72723 3.10935,13.7728 c -3.58883,0.28907 -4.19632,0.25785 -6.36265,-0.32791 1.00219,-12.04918 3.2533,-13.44489 3.2533,-13.44489 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 300.08667,172.57237 c -2.03237,3.63344 -2.40946,7.63281 -3.39194,11.16176 -0.11097,2.48059 4.02564,5.20338 6.30994,6.62117 -0.11352,-4.35414 2.20104,-11.31333 2.96606,-15.5101 -2.0837,-0.64114 -4.38743,-1.29276 -5.88406,-2.27283 z" id="path2554" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#000000"/> + <path inkscape:connector-curvature="0" d="m 333.1721,164.81697 c 3.12234,3.33135 7.8525,6.78145 9.92028,10.58149 -7.93754,9.36149 -23.35479,13.30607 -33.9727,15.90151 -0.57861,-4.86704 -2.13199,-11.9051 -3.13395,-16.71185 8.60186,-2.43964 22.03678,-4.58024 27.18637,-9.77115 z" id="path2552" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#000000"/> <path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" id="path1439" class="shadow" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" inkscape:connector-curvature="0"/> <path inkscape:connector-curvature="0" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" id="path1441" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" style="display:inline;opacity:1;fill:#ffffff"/> <path inkscape:connector-curvature="0" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" class="shadow" id="path1443" sodipodi:nodetypes="ccssccc"/> <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="caaaacc" id="path1445" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1447" class="shadow" d="m 318.00391,325.73755 c 0.1662,-0.0684 8.0406,-11.7618 5.42961,-17.15483 -0.9984,-4.15898 -9.59497,-7.10148 -9.61975,-7.06183 0.0569,0.0797 10.47717,-4.52675 10.06153,-9.41841 -0.0685,-4.77393 -10.54117,-8.39289 -10.58006,-8.30214 -0.0526,0.16819 10.25564,-4.52608 11.12513,-10.21762 1.02638,-5.3714 -8.5072,-13.50589 -8.61202,-13.47969 -0.0119,0.17826 11.09595,-3.22828 11.88153,-8.72903 1.155,-4.5223 -7.71736,-10.81305 -7.91075,-10.7647 -0.18835,0.18835 9.25517,-0.42186 11.47755,-4.98693 1.84787,-4.00611 -4.81901,-11.58557 -4.96824,-11.52961 -0.01,0.12732 7.55069,-1.24244 9.10324,-4.91711 1.82315,-3.08035 -1.62605,-9.99671 -1.71582,-9.98549 0.0825,0.0367 5.16407,-1.94852 5.15369,-4.3377 0.60501,-1.54914 -2.18836,-3.99091 -2.28908,-3.97832 0.0908,0.10897 4.0678,-0.15226 4.79507,-1.82593 1.06341,-1.36941 -0.21991,-4.6138 -0.31935,-4.58065 0,0.11423 4.17524,-0.0769 5.19792,-1.9502 0.99558,-1.00322 -0.0412,-3.85994 -0.15909,-3.89362 0.0263,0.10519 4.18456,0.34981 5.20584,-1.40388 1.11122,-1.15275 0.14014,-4.38532 0.077,-4.38532 0.0633,0.0633 4.12591,-0.0432 4.83864,-1.69189 0.81726,-0.94694 -0.16572,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c -0.0716,-0.0398 -3.52027,0.54293 -4.22866,1.88506 -0.85877,0.77377 -0.79145,2.93259 -0.6882,2.93259 0.0551,-0.16527 -3.13346,0.0301 -4.19674,1.3135 -0.99275,0.92921 -0.83191,3.5722 -0.81211,3.56824 -0.2917,-0.11219 -3.72836,0.0448 -4.59896,1.27221 -1.38692,1.22213 -1.40211,4.98076 -1.29971,4.98076 0,-0.0543 -3.63043,0.28826 -4.68112,1.63345 -1.39037,1.63663 -0.95682,5.95733 -0.84379,5.86314 -0.0714,-0.0572 -3.50997,1.34812 -4.13281,2.97367 -0.99363,1.8097 0.0827,5.8256 0.1485,5.78611 0.0286,-0.0107 -3.47409,-2.58144 -5.81788,-2.29945 -2.03561,0.078 -5.00819,3.04217 -4.98536,3.065 0.0894,-0.0383 -3.77398,-2.28548 -6.07463,-1.93646 -2.19936,0.16817 -5.28843,3.26531 -5.24625,3.29062 0.0577,-0.0247 -3.6596,-2.98608 -6.11743,-2.8254 -2.62706,-0.17114 -6.42609,3.37458 -6.37214,3.43623 0.0764,-0.0305 -2.5983,-3.62398 -4.74516,-3.86523 -2.3968,-0.5135 -6.56096,2.67213 -6.54041,2.73377 0.0278,0 -1.86631,-3.79743 -3.84319,-4.39294 -2.1406,-0.8914 -7.08051,1.65543 -7.08312,1.65775 0,0 4.17132,-0.88265 4.32598,-2.62631 0.28337,-1.00061 -1.78574,-2.2873 -1.82858,-2.27124 0.021,0.0349 5.21539,-1.03939 5.23366,-3.24468 0.28059,-1.11065 -2.28712,-1.83524 -2.3211,-1.81583 0.0194,0.0427 4.09634,-0.0764 4.41853,-1.78242 0.37085,-0.98469 -1.73184,-2.21574 -1.77223,-2.1933 0.008,0.0219 2.8764,-0.90334 3.31722,-2.28129 0.32598,-0.62431 -0.37809,-1.9308 -0.43513,-1.92265 l -4.69222,0.72413 c 0.0237,-0.0426 -1.79765,0.46492 -2.63183,1.51492 -0.69936,0.46779 -0.96174,2.2027 -0.94371,2.21712 0.007,-0.0358 -1.88989,0.10067 -2.44519,0.95669 -0.61207,0.66093 -0.26769,2.37608 -0.20536,2.36361 0.012,-0.0419 -2.55183,0.42329 -3.2251,1.69596 -0.77861,1.04606 0.0592,3.62639 0.12616,3.62639 0.0513,-0.094 -2.12186,0.38382 -2.86561,1.6675 -0.82026,1.16209 -0.31411,3.83168 -0.0897,3.71947 -0.2087,-0.14907 -4.50311,2.782 -5.0707,5.30267 -1.45304,2.7823 -0.4393,8.68853 -0.14431,8.57791 -0.11184,-0.19573 -5.61323,4.13251 -6.54891,7.662 -2.01339,4.22462 -0.20242,12.80349 0.12218,12.65594 -0.27988,-0.19992 -6.69779,4.93798 -6.78396,8.84863 -0.72683,3.97856 4.74341,10.55407 4.9951,10.4462 -0.19084,-0.12723 -4.51715,7.94817 -3.68091,12.43969 0.0674,4.53539 6.50495,11.45785 6.7561,11.37413 -0.19797,0.054 -3.09154,6.28983 -2.56163,9.33402 -0.61864,3.0265 1.44599,8.78728 1.66753,8.76266 -0.22155,-0.0738 -2.26451,6.97373 -1.5863,10.76219 -0.2869,2.90595 3.05181,8.88695 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 318.00391,325.73755 c 0,0 7.29076,-11.45304 5.42961,-17.15483 -1.23433,-3.78149 -9.61975,-7.06183 -9.61975,-7.06183 0,0 10.26143,-4.82879 10.06153,-9.41841 -0.19507,-4.4786 -10.58006,-8.30214 -10.58006,-8.30214 0,0 10.47399,-5.22482 11.12513,-10.21762 0.68954,-5.28719 -8.61202,-13.47969 -8.61202,-13.47969 0,0 11.1388,-3.87102 11.88153,-8.72903 0.67298,-4.4018 -7.91075,-10.7647 -7.91075,-10.7647 0,0 9.94184,-1.10853 11.47755,-4.98693 1.54066,-3.89091 -4.96824,-11.52961 -4.96824,-11.52961 0,0 7.59479,-1.81571 9.10324,-4.91711 1.47717,-3.0371 -1.71582,-9.98549 -1.71582,-9.98549 0,0 4.76382,-2.12641 5.15369,-4.3377 0.26565,-1.50672 -2.28908,-3.97832 -2.28908,-3.97832 0,0 3.87403,-0.38479 4.79507,-1.82593 0.82425,-1.28969 -0.31935,-4.58065 -0.31935,-4.58065 0,0 4.17524,-0.40787 5.19792,-1.9502 0.71783,-1.08258 -0.15909,-3.89362 -0.15909,-3.89362 0,0 4.10041,0.0132 5.20584,-1.40388 0.89923,-1.15275 0.077,-4.38532 0.077,-4.38532 0,0 3.91403,-0.25505 4.83864,-1.69189 0.60936,-0.94694 -0.30643,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c 0,0 -3.24515,0.69578 -4.22866,1.88506 -0.6399,0.77377 -0.6882,2.93259 -0.6882,2.93259 0,0 -3.20228,0.23661 -4.19674,1.3135 -0.82757,0.89617 -0.81211,3.56824 -0.81211,3.56824 0,0 -3.48252,0.13932 -4.59896,1.27221 -1.20438,1.22213 -1.29971,4.98076 -1.29971,4.98076 0,0 -3.63043,0.3578 -4.68112,1.63345 -1.25533,1.5241 -0.84379,5.86314 -0.84379,5.86314 0,0 -3.37828,1.45347 -4.13281,2.97367 -0.85776,1.72818 0.1485,5.78611 0.1485,5.78611 0,0 -3.74057,-2.48151 -5.81788,-2.29945 -1.94328,0.17031 -4.98536,3.065 -4.98536,3.065 0,0 -3.96616,-2.20312 -6.07463,-1.93646 -2.04797,0.25901 -5.24625,3.29062 -5.24625,3.29062 0,0 -3.87237,-2.89489 -6.11743,-2.8254 -2.41204,0.0746 -6.37214,3.43623 -6.37214,3.43623 0,0 -2.72617,-3.57283 -4.74516,-3.86523 -2.33852,-0.33867 -6.54041,2.73377 -6.54041,2.73377 0,0 -1.99097,-3.79743 -3.84319,-4.39294 -2.30846,-0.74219 -7.08312,1.65775 -7.08312,1.65775 0,0 4.03449,-0.96475 4.32598,-2.62631 0.16794,-0.95733 -1.82858,-2.27124 -1.82858,-2.27124 0,0 5.12196,-1.19511 5.23366,-3.24468 0.0535,-0.98088 -2.3211,-1.81583 -2.3211,-1.81583 0,0 4.01965,-0.24516 4.41853,-1.78242 0.23607,-0.90981 -1.77223,-2.1933 -1.77223,-2.1933 0,0 2.82832,-1.03154 3.31722,-2.28129 0.23939,-0.61194 -0.43513,-1.92265 -0.43513,-1.92265 l -4.69222,0.72413 c 0,0 -1.96023,0.75757 -2.63183,1.51492 -0.53291,0.60095 -0.94371,2.21712 -0.94371,2.21712 0,0 -1.92093,0.25586 -2.44519,0.95669 -0.47372,0.63326 -0.20536,2.36361 -0.20536,2.36361 0,0 -2.61532,0.6455 -3.2251,1.69596 -0.60723,1.04606 0.12616,3.62639 0.12616,3.62639 0,0 -2.30315,0.71618 -2.86561,1.6675 -0.63118,1.06755 -0.0897,3.71947 -0.0897,3.71947 0,0 -4.14105,3.04061 -5.0707,5.30267 -1.08704,2.64505 -0.14431,8.57791 -0.14431,8.57791 0,0 -5.40066,4.5045 -6.54891,7.662 -1.44183,3.96482 0.12218,12.65594 0.12218,12.65594 0,0 -6.39804,5.15209 -6.78396,8.84863 -0.40078,3.83882 4.9951,10.4462 4.9951,10.4462 0,0 -4.21638,8.14869 -3.68091,12.43969 0.54606,4.37584 6.7561,11.37413 6.7561,11.37413 0,0 -2.43294,6.11021 -2.56163,9.33402 -0.1186,2.97094 1.66753,8.76266 1.66753,8.76266 0,0 -1.76447,7.14041 -1.5863,10.76219 0.13408,2.72553 3.17474,8.83426 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z" id="path1449" sodipodi:nodetypes="cacacacacacacacacacacaccacacacacacacacacacacacacacaccacacacacacacacacacscccc" style="display:inline;opacity:1;fill:#ffffff;stroke-width:1.05999994"/> - <path inkscape:connector-curvature="0" d="m 315.90803,320.84344 c -2.49311,-12.85797 -3.70847,-24.16935 -4.44214,-39.5634 4.29028,-30.83464 3.35841,-41.06705 21.27809,-72.37945 1.06744,-9.14922 11.65832,-19.70221 22.34434,-31.15738 -2.13976,-0.51067 -4.28423,-0.96012 -6.46482,-0.94005 -11.40402,9.3964 -21.91679,21.41172 -24.91403,32.79713 -21.89276,0.52722 -32.81714,6.37507 -58.48416,-1.54946 3.84727,-8.39874 5.10763,-9.47909 10.78801,-18.40031 -1.05734,0.0265 -2.02266,-0.0784 -3.63549,0.74174 -6.9411,6.67026 -8.04042,9.50969 -12.35955,17.95063 -2.80066,6.10293 -4.61886,11.91112 -5.76436,17.5175 -10.39962,25.33864 -5.9915,43.15772 -3.53361,61.61413 -1.4792,13.13023 -0.30041,25.062 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z" class="shadow" id="path1451" sodipodi:nodetypes="ccccccccccccccc"/> - <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccccccccccccc" id="path1453" d="m 315.90803,320.84344 c -2.81213,-13.35423 -5.31598,-26.66992 -4.44214,-39.5634 3.50974,-30.99075 1.84762,-41.36921 21.27809,-72.37945 0.93083,-9.35414 10.94077,-20.77854 22.34434,-31.15738 l -6.46482,-0.94005 c -9.53791,9.58301 -21.68892,21.43451 -24.91403,32.79713 -21.76753,0.94464 -32.29254,8.12373 -58.48416,-1.54946 3.69598,-8.48126 4.421,-9.85362 10.78801,-18.40031 l -3.63549,0.74174 c -6.53986,6.87088 -7.78622,9.63679 -12.35955,17.95063 l -5.76436,17.5175 c -8.96086,25.20784 -5.79542,43.13989 -3.53361,61.61413 -0.5132,12.61008 0.22818,24.77737 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 349.13308,317.13846 1.58005,7.52419 c -34.68921,1.29057 -82.49669,19.68152 -104.48265,5.19789 l 3.86668,-6.97285 c 33.13895,8.49273 66.33122,-7.2118 99.03592,-5.74923 z" class="shadow" id="path1455" sodipodi:nodetypes="ccccc"/> - <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1457" d="m 349.13308,317.13846 1.58005,7.52419 c -35.36449,0.47083 -83.91047,19.07561 -104.48265,5.19789 l 3.86668,-6.97285 c 30.76253,9.95515 65.75714,-6.08342 99.03592,-5.74923 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 351.38308,281.76346 c -2.00111,14.61346 -1.45571,28.77753 -0.66995,42.89919 -34.68921,1.29057 -82.49669,19.68152 -104.48265,5.19789 0.75356,-14.0727 1.75763,-29.9734 1.30418,-44.34785 33.13895,8.49273 71.14372,-5.2118 103.84842,-3.74923 z" class="shadow" id="path1455" sodipodi:nodetypes="ccccc"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1457" d="m 351.38308,281.76346 c -2.7968,14.29973 -1.98265,28.59946 -0.66995,42.89919 -35.36449,0.47083 -83.91047,19.07561 -104.48265,5.19789 1.05318,-14.11595 2.82363,-30.2319 1.30418,-44.34785 30.76253,9.95515 70.56964,-4.08342 103.84842,-3.74923 z" inkscape:connector-curvature="0"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1445-1" d="m 333.1721,164.81697 9.92028,10.58149 c -8.50147,8.95868 -23.58459,13.14193 -33.9727,15.90151 -0.35332,-4.82062 -1.60248,-11.89123 -3.13395,-16.71185 8.60186,-1.844 22.03678,-4.11883 27.18637,-9.77115 z" inkscape:connector-curvature="0"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1445-1-4" d="m 300.08667,172.57237 -3.39194,11.16176 c 0.27347,2.33273 4.1548,5.1537 6.30994,6.62117 -0.5339,-4.37642 1.60936,-11.42013 2.96606,-15.5101 -2.28233,-0.52764 -4.46978,-1.2457 -5.88406,-2.27283 z" inkscape:connector-curvature="0"/> + </g> + <g style="display:inline;opacity:1" inkscape:label="Torso_Outfit_Maid_Hourglass" id="Torso_Outfit_Maid_Hourglass" inkscape:groupmode="layer"> + <path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="cccccccccccccccccccc" id="path2834" d="m 360.49161,241.99223 c 0.15713,0.0673 -4.72159,19.01292 -21.51477,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.42564,15.0158 49.36375,45.91894 56.68292,72.68694 18.09394,39.28852 18.07129,125.05958 17.21147,125.13775 -70.8552,-22.32954 -164.13155,30.03525 -232.75934,-4.27387 -0.19735,-0.0197 4.1265,-76.03991 20.06445,-110.96586 9.2798,-30.93655 35.4953,-60.02101 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -5.47524,-7.9954 -6.36742,-21.28882 -5.88641,-30.59601 -4.05722,-36.73329 30.65665,-66.66209 31.00076,-66.66209 -0.008,-0.0706 2.55382,-1.8267 8.72305,-2.20036 -36.01659,24.46625 -42.13809,58.83696 -39.24643,69.07094 12.14629,3.82492 34.25776,3.67112 87.23879,-1.85132 1.92836,0 6.15865,-6.88279 6.15865,-10.00465 2.71491,-24.25648 8.03999,-35.96111 9.4316,-68.9692 4.553,0.39299 4.95014,-0.2397 9.68823,1.7253 -1.04791,6.23371 0.31824,53.97628 4.75601,64.31785 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 348.47508,176.56688 c 6.23488,24.59751 4.25162,51.07322 4.99933,76.19448 -42.11798,9.03479 -85.37513,19.71113 -110.63496,3.91432 -1.95782,-18.39591 8.20167,-47.39868 32.21961,-67.27394 42.97585,-9.32822 52.0825,-17.54406 73.41602,-12.83486 z" id="path2836" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path inkscape:connector-curvature="0" d="m 360.49161,241.99223 c 0,0 -6.37282,19.56418 -21.51477,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 44.73213,44.38116 56.68292,72.68694 16.37715,38.78974 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -4.94422,-8.06178 -5.57616,-21.38773 -5.88641,-30.59601 -3.92817,-36.49728 30.67927,-66.58172 31.00076,-66.66209 0,0 2.59939,-1.41654 8.72305,-2.20036 -36.76659,20.96625 -42.13809,58.83696 -39.24643,69.07094 24.85388,-0.61208 66.61629,9.56619 108.02244,-11.10597 1.4423,-26.38913 0.15792,-38.14578 -5.1934,-69.7192 4.57973,0.53998 5.03464,0.22507 9.68823,1.7253 -1.36935,6.31407 -0.62585,54.2123 4.75601,64.31785 z" id="path2838" sodipodi:nodetypes="ccccaccaccccccccccc" style="display:inline;opacity:1;fill:#333333"/> + <path inkscape:connector-curvature="0" d="m 306.1115,174.72723 3.10935,13.7728 c -3.58883,0.28907 -4.19632,0.25785 -6.36265,-0.32791 1.00219,-12.04918 3.2533,-13.44489 3.2533,-13.44489 z" id="path2840" sodipodi:nodetypes="cccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2842" d="m 300.08667,172.57237 c -2.03237,3.63344 -2.40946,7.63281 -3.39194,11.16176 -0.11097,2.48059 4.02564,5.20338 6.30994,6.62117 -0.11352,-4.35414 2.20104,-11.31333 2.96606,-15.5101 -2.0837,-0.64114 -4.38743,-1.29276 -5.88406,-2.27283 z" inkscape:connector-curvature="0"/> + <path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2844" d="m 333.1721,164.81697 c 3.12234,3.33135 7.8525,6.78145 9.92028,10.58149 -7.93754,9.36149 -23.35479,13.30607 -33.9727,15.90151 -0.57861,-4.86704 -2.13199,-11.9051 -3.13395,-16.71185 8.60186,-2.43964 22.03678,-4.58024 27.18637,-9.77115 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" class="shadow" id="path2846" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" id="path2848" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccssccc" id="path2850" class="shadow" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" id="path2852" sodipodi:nodetypes="caaaacc" style="display:inline;opacity:1;fill:#ffffff"/> + <path sodipodi:nodetypes="ccccc" id="path2854" class="shadow" d="m 339.32058,281.76346 c -2.00111,14.61346 -1.45571,28.77753 -0.66995,42.89919 -34.68921,1.29057 -70.43419,19.68152 -92.42015,5.19789 0.75356,-14.0727 1.75763,-29.9734 1.30418,-44.34785 33.13895,8.49273 59.08122,-5.2118 91.78592,-3.74923 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 339.32058,281.76346 c -2.7968,14.29973 -1.98265,28.59946 -0.66995,42.89919 -35.36449,0.47083 -71.84797,19.07561 -92.42015,5.19789 1.05318,-14.11595 2.82363,-30.2319 1.30418,-44.34785 30.76253,9.95515 58.50714,-4.08342 91.78592,-3.74923 z" id="path2856" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path inkscape:connector-curvature="0" d="m 333.1721,164.81697 9.92028,10.58149 c -8.50147,8.95868 -23.58459,13.14193 -33.9727,15.90151 -0.35332,-4.82062 -1.60248,-11.89123 -3.13395,-16.71185 8.60186,-1.844 22.03678,-4.11883 27.18637,-9.77115 z" id="path2858" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path inkscape:connector-curvature="0" d="m 300.08667,172.57237 -3.39194,11.16176 c 0.27347,2.33273 4.1548,5.1537 6.30994,6.62117 -0.5339,-4.37642 1.60936,-11.42013 2.96606,-15.5101 -2.28233,-0.52764 -4.46978,-1.2457 -5.88406,-2.27283 z" id="path2860" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + </g> + <g style="display:inline;opacity:1" inkscape:label="Torso_Outfit_Maid_Unnatural" id="Torso_Outfit_Maid_Unnatural" inkscape:groupmode="layer"> + <path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="cccccccccccccccccccc" id="path2798" d="m 360.49161,241.99223 c 0.15713,0.0673 -5.97159,18.38792 -21.70227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.42564,15.0158 49.55125,45.91894 56.87042,72.68694 18.09394,39.28852 18.07129,125.05958 17.21147,125.13775 -70.8552,-22.32954 -164.13155,30.03525 -232.75934,-4.27387 -0.19735,-0.0197 4.1265,-76.03991 20.06445,-110.96586 9.2798,-30.93655 38.3703,-60.02101 53.1161,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -5.47524,-7.9954 -9.24242,-21.28882 -8.76141,-30.59601 -4.05722,-36.73329 30.65665,-66.66209 31.00076,-66.66209 -0.008,-0.0706 2.55382,-1.8267 8.72305,-2.20036 -36.01659,24.46625 -42.13809,58.83696 -39.24643,69.07094 12.14629,3.82492 34.25776,3.67112 87.23879,-1.85132 1.92836,0 6.15865,-6.88279 6.15865,-10.00465 2.71491,-24.25648 8.03999,-35.96111 9.4316,-68.9692 4.553,0.39299 4.95014,-0.2397 9.68823,1.7253 -1.04791,6.23371 0.31824,53.97628 4.75601,64.31785 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 348.47508,176.56688 c 6.23488,24.59751 4.25162,51.07322 4.99933,76.19448 -42.11798,9.03479 -85.37513,19.71113 -110.63496,3.91432 -1.95782,-18.39591 8.20167,-47.39868 32.21961,-67.27394 42.97585,-9.32822 52.0825,-17.54406 73.41602,-12.83486 z" id="path2800" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path inkscape:connector-curvature="0" d="m 360.49161,241.99223 c 0,0 -7.49782,19.06418 -21.70227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 44.88197,44.35531 56.87042,72.68694 16.40822,38.7766 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.44834,-75.93029 20.06445,-110.96586 12.02699,-30.9466 39.38887,-59.8755 53.1161,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -4.94422,-8.06178 -8.45116,-21.38773 -8.76141,-30.59601 -3.92817,-36.49728 30.67927,-66.58172 31.00076,-66.66209 0,0 2.59939,-1.41654 8.72305,-2.20036 -36.76659,20.96625 -42.13809,58.83696 -39.24643,69.07094 24.85388,-0.61208 66.61629,9.56619 108.02244,-11.10597 1.4423,-26.38913 0.15792,-38.14578 -5.1934,-69.7192 4.57973,0.53998 5.03464,0.22507 9.68823,1.7253 -1.36935,6.31407 -0.62585,54.2123 4.75601,64.31785 z" id="path2803" sodipodi:nodetypes="ccccaccaccccccccccc" style="display:inline;opacity:1;fill:#333333"/> + <path inkscape:connector-curvature="0" d="m 306.1115,174.72723 3.10935,13.7728 c -3.58883,0.28907 -4.19632,0.25785 -6.36265,-0.32791 1.00219,-12.04918 3.2533,-13.44489 3.2533,-13.44489 z" id="path2805" sodipodi:nodetypes="cccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2807" d="m 300.08667,172.57237 c -2.03237,3.63344 -2.40946,7.63281 -3.39194,11.16176 -0.11097,2.48059 4.02564,5.20338 6.30994,6.62117 -0.11352,-4.35414 2.20104,-11.31333 2.96606,-15.5101 -2.0837,-0.64114 -4.38743,-1.29276 -5.88406,-2.27283 z" inkscape:connector-curvature="0"/> + <path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2810" d="m 333.1721,164.81697 c 3.12234,3.33135 7.8525,6.78145 9.92028,10.58149 -7.93754,9.36149 -23.35479,13.30607 -33.9727,15.90151 -0.57861,-4.86704 -2.13199,-11.9051 -3.13395,-16.71185 8.60186,-2.43964 22.03678,-4.58024 27.18637,-9.77115 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" class="shadow" id="path2812" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc"/> + <path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" id="path2814" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccssccc" id="path2816" class="shadow" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" id="path2818" sodipodi:nodetypes="caaaacc" style="display:inline;opacity:1;fill:#ffffff"/> + <path sodipodi:nodetypes="ccccc" id="path2820" class="shadow" d="m 339.13308,281.76346 c -2.00111,14.61346 -1.45571,28.77753 -0.66995,42.89919 -34.68921,1.29057 -67.37169,19.68152 -89.35765,5.19789 0.75356,-14.0727 1.75763,-29.9734 1.30418,-44.34785 33.13895,8.49273 56.01872,-5.2118 88.72342,-3.74923 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 339.13308,281.76346 c -2.7968,14.29973 -1.98265,28.59946 -0.66995,42.89919 -35.36449,0.47083 -68.78547,19.07561 -89.35765,5.19789 1.05318,-14.11595 2.82363,-30.2319 1.30418,-44.34785 30.76253,9.95515 55.44464,-4.08342 88.72342,-3.74923 z" id="path2822" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path inkscape:connector-curvature="0" d="m 333.1721,164.81697 9.92028,10.58149 c -8.50147,8.95868 -23.58459,13.14193 -33.9727,15.90151 -0.35332,-4.82062 -1.60248,-11.89123 -3.13395,-16.71185 8.60186,-1.844 22.03678,-4.11883 27.18637,-9.77115 z" id="path2824" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> + <path inkscape:connector-curvature="0" d="m 300.08667,172.57237 -3.39194,11.16176 c 0.27347,2.33273 4.1548,5.1537 6.30994,6.62117 -0.5339,-4.37642 1.60936,-11.42013 2.96606,-15.5101 -2.28233,-0.52764 -4.46978,-1.2457 -5.88406,-2.27283 z" id="path2827" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/> </g> <g style="display:inline;opacity:1" inkscape:label="Torso_Outfit_Maid_Lewd_Hourglass" id="Torso_Outfit_Maid_Lewd_Hourglass" inkscape:groupmode="layer"> <path sodipodi:nodetypes="cccccccc" id="path1324" d="m 335.00494,318.53533 c 0,0 2.60164,5.12801 3.8029,7.55426 25.71294,14.33721 27.05663,26.64309 35.62962,42.89594 17.04103,22.01109 30.69729,67.66847 30.59015,67.64028 -69.47194,-27.02108 -141.01271,33.62811 -211.75934,0.10113 -0.31621,0.0288 6.12371,-40.57469 17.18577,-59.21839 7.74975,-20.12879 34.51048,-43.442 39.5444,-54.469 20.08971,8.80583 55.63969,-1.71367 85.0065,-4.50422 z" inkscape:connector-curvature="0" class="shadow"/> @@ -749,16 +765,16 @@ </g> <g inkscape:groupmode="layer" id="Arm_Hair" inkscape:label="Arm_Hair" style="display:inline"> <g style="display:inline" inkscape:label="Arm_Down_Hair_Neat" id="Arm_Down_Hair_Neat" inkscape:groupmode="layer"> - <path sodipodi:nodetypes="ccc" id="path3325" class="armpit_hair" d="m 360.64122,234.43118 c -1.78847,-3.72504 -3.61047,-12.89756 -3.19383,-24.4475 1.19043,6.54449 2.6192,20.32885 3.19383,24.4475 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 354.05629,228.07423 c 1.39185,-4.39624 2.09719,-9.60653 4.00065,-14.414 0.54189,4.42694 0.7503,4.99021 0.86324,6.92685 -1.39276,2.16548 -2.43234,4.46572 -4.86389,7.48715 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9-6" sodipodi:nodetypes="cccc"/> </g> <g inkscape:label="Arm_Down_Hair_Bushy" id="Arm_Down_Hair_Bushy" inkscape:groupmode="layer" style="display:inline"> <path sodipodi:nodetypes="cccccccccccccccccccccc" id="path1099" class="armpit_hair" d="m 360.24347,231.86792 0.62233,4.65711 c 0.55578,0.2551 -7.99816,5.95284 -3.27038,-0.65737 -3.09359,5.37627 2.92909,-0.003 2.17022,-2.14111 -1.53423,0.28812 -5.71284,3.52639 -5.25133,8.12415 -0.98363,-3.5058 2.9824,-9.77272 4.83736,-11.83806 -0.18244,1.45667 -8.26869,-0.51242 -3.88775,5.73641 -5.3105,-5.44303 2.41392,-7.14507 3.39202,-9.43961 0.45356,1.56568 -1.24519,3.2832 -7.4966,4.08414 3.46772,-0.44603 7.11012,-4.45071 7.06734,-6.77892 -2.40629,-0.74554 -6.1703,2.17421 -5.81219,4.21371 -0.25259,-2.66244 3.06309,-5.85365 5.67489,-7.08339 -0.9377,1.02012 -4.71933,0.89387 -3.06732,-2.07507 -0.83642,1.71326 1.4865,2.34105 2.34002,-0.14383 -1.70746,-1.70745 -3.52581,-1.63585 -3.89757,0.0658 0.97561,-3.83828 3.37716,-1.67017 4.2302,-1.64816 -0.32331,-0.41565 -0.17879,-0.76893 -0.0751,-1.12765 -2.01181,0.29687 -4.33853,-2.08468 -4.3297,-2.13619 1.72132,0.72587 4.20901,1.47818 4.21081,0.17288 0,0 -0.11184,-2.03629 -0.16497,-3.11735 1.19043,6.54449 2.70769,21.13294 2.70769,21.13294 z" inkscape:connector-curvature="0"/> </g> <g inkscape:groupmode="layer" id="Arm_Up_Hair_Neat" inkscape:label="Arm_Up_Hair_Neat" style="display:inline"> - <path inkscape:connector-curvature="0" d="m 361.07872,235.74368 c -0.94878,-8.80737 -2.85473,-24.59569 2.37908,-28.8536 2.1627,9.19615 -2.2466,10.90217 -2.37908,28.8536 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 353.82758,228.26371 c 2.63427,-8.3205 2.8094,-19.55701 13.30247,-25.45963 -2.25337,1.88046 -2.3103,2.56478 -2.3103,2.56478 0,0 3.92159,-2.74342 6.0617,-3.75361 -2.13734,1.00888 -7.90174,6.73287 -7.90174,6.73287 0,0 5.25855,-3.57777 7.96714,-4.85629 -2.65821,1.36333 -7.78621,6.57323 -7.78621,6.57323 0,0 5.96459,-4.60503 10.05437,-5.34594 -4.10883,0.74436 -10.03306,6.87998 -10.03306,6.87998 0,0 6.35061,-4.58166 9.43389,-4.32646 -3.08434,-0.25529 -10.12328,6.20939 -10.12328,6.20939 0,0 6.98773,-5.58977 9.97576,-4.51804 -2.94589,-1.05661 -10.71107,6.34907 -10.71107,6.34907 0,0 6.61595,-4.68536 9.63061,-3.60408 -3.02656,-1.08555 -10.21842,5.09377 -10.21842,5.09377 0,0 0.60053,-0.37366 1.37241,-0.41639 -4.47366,3.77416 -4.63821,6.81245 -8.71427,11.87735 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9" sodipodi:nodetypes="ccccccccccccccccc"/> </g> <g style="display:inline" inkscape:groupmode="layer" id="Arm_Up_Hair_Bushy" inkscape:label="Arm_Up_Hair_Bushy"> - <path inkscape:connector-curvature="0" d="m 360.53365,236.48083 c -0.55578,0.2551 1.01548,-0.63209 3.04941,3.3643 -0.97228,-3.1532 -2.70812,-4.02467 -1.94925,-6.16278 1.53423,0.28812 5.80123,-1.42335 5.33972,3.17441 0.98363,-3.5058 -3.07079,-4.82298 -4.92575,-6.88832 0.18244,1.45667 11.2297,-1.04275 6.84876,5.20608 5.3105,-5.44303 -2.41392,-7.14507 -3.39202,-9.43961 -0.45356,1.56568 -1.45066,-1.04783 4.80075,-0.24689 -3.46772,-0.44603 -8.11396,-3.23134 -7.33132,-5.42448 2.51841,0.0603 4.53675,2.08298 3.54725,3.90196 1.08804,-2.44307 -0.41883,-4.58012 -2.50244,-6.5782 0.56364,1.26579 4.18828,2.35147 3.56874,-0.98917 0.24672,1.8905 -2.15515,1.74514 -2.17213,-0.88218 2.16264,-1.07417 3.58587,0.37498 2.70189,1.87578 1.89339,-3.4784 -1.34178,-3.52056 -1.98242,-4.08425 0.51967,-0.0851 0.6538,-0.44246 0.82158,-0.77605 1.2738,1.58522 4.59918,1.41997 4.62772,1.37618 -1.75593,-0.63763 -4.09192,-1.77678 -3.206,-2.73539 0,0 -0.30162,-0.93139 0.47217,-1.6882 -1.17562,0.12647 -1.50552,0.39685 -2.29732,1.39659 0.43889,-0.74403 0.22952,-1.36458 0.27651,-2.03396 -0.19789,1.53736 -0.94588,2.69608 -2.74427,3.1318 0.29183,-1.13068 -0.21459,-1.42216 -0.71523,-1.71972 0.596,1.32079 -0.14863,1.44588 -1.07278,1.41086 -0.87655,-1.71928 0.22738,-2.55256 0.83323,-3.60866 -1.93061,0.6298 -3.38367,1.69073 -3.81887,3.67055 -0.70564,-0.81459 -0.56273,-1.73524 -0.459,-2.651 -0.65736,0.85385 -1.14327,1.8183 -1.15811,3.08668 l 1.88893,15.25586 c 0,0 1.15763,7.50544 0.95025,9.05781 z" class="armpit_hair" id="path3321" sodipodi:nodetypes="cccccccccccccccccccccccccccccc"/> + <path inkscape:connector-curvature="0" d="m 354.20431,225.28332 c -0.61112,0.0223 1.18028,-0.1941 1.52525,4.27681 0.31193,-3.28492 -0.95671,-4.75569 0.56442,-6.43901 1.30627,0.85471 5.90336,0.91135 3.71313,4.98017 2.25343,-2.86011 -0.98533,-5.63205 -1.90592,-8.25103 -0.39041,1.41519 10.77036,3.34558 4.32719,7.43534 8.5248,-4.57088 -5.60608,-14.3046 5.01736,-8.4047 -3.0312,-1.74236 -3.14502,-4.92117 -0.87788,-5.45267 1.31482,2.14877 0.7096,4.94138 -1.3553,5.0962 2.64273,-0.41036 3.62136,-2.83526 4.1705,-5.66937 -0.75797,1.1599 0.29507,4.79417 2.76613,2.46231 -1.45473,1.23233 -2.63489,-0.86465 -0.43645,-2.30346 2.07516,1.23475 1.62919,3.21634 -0.11115,3.28731 3.94931,-0.29507 2.23064,-3.03628 2.35691,-3.88021 0.67358,1.25061 0.49749,1.49403 1.53676,2.24415 -1.02483,-1.3448 0.3076,-2.81529 0.72915,-3.20865 0.86312,-0.0346 1.27103,-0.54702 1.85896,-0.87047 -0.6731,0.32102 -1.5432,-0.54456 -2.31305,-1.72962 -0.2374,-0.36546 0.98951,-1.49356 1.11803,-2.66756 -0.68914,1.5688 -2.21073,0.66309 -2.37984,0.26276 -0.23543,-0.55727 -0.41307,-1.06893 -0.50614,-1.45692 1.13002,0.29438 1.42264,-0.21138 1.72133,-0.71135 -1.32214,0.59302 -1.44554,-0.15189 -1.40844,-1.07596 1.72125,-0.87267 2.55204,0.23313 3.60677,0.84136 -0.62544,-1.93202 -1.6831,-3.38747 -3.66192,-3.82713 0.81617,-0.7038 1.73649,-0.55881 2.65202,-0.45302 -0.85236,-0.65929 -1.81572,-1.14737 -3.08406,-1.16507 -3.6659,0.85993 -12.95933,3.61857 -17.02603,17.95061 0,0 -1.8106,7.37519 -2.59771,8.72919 z" class="armpit_hair" id="path3321" sodipodi:nodetypes="cccccccccccccccccscscccccccccc"/> </g> </g> <g inkscape:groupmode="layer" id="Navel_Addons_" inkscape:label="Navel_Addons_" style="display:inline"> @@ -1595,49 +1611,516 @@ </g> </g> <g inkscape:groupmode="layer" id="Boob_" style="display:inline" inkscape:label="Boob_"> - <g inkscape:groupmode="layer" id="Boob_Scaled_" style="display:inline" inkscape:label="Boob_Scaled_"> - <g inkscape:groupmode="layer" id="Boob" style="display:inline;opacity:1" inkscape:label="Boob"> - <g id="g1065"> - <path d="m 270.34578,196.55707 c -12.11058,4.47607 -21.33353,10.38476 -27.42519,17.04587 -12.80622,2.09756 -20.32972,7.4459 -28.75481,12.23956 -3.26563,12.08634 -5.14611,24.17711 3.20444,36.14887 5.15461,10.33009 14.73224,11.95658 25.07247,9.77599" id="path1520" class="shadow" inkscape:connector-curvature="0"/> - <path d="m 242.44269,271.76736 c 12.30515,-2.59845 22.51491,-12.16054 31.77186,-26.40779 l -3.86877,-48.8025" id="path1515" class="shadow boob_inner_lower_shadow" inkscape:connector-curvature="0"/> - <path d="m 274.21455,245.35957 c 2.55546,-15.31136 11.88781,-30.84621 8.29579,-40.31411 -1.93843,-3.02612 -7.62333,-5.27685 -12.16456,-8.48839" id="path1056" class="shadow boob_inner_upper_shadow" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 270.34578,196.55707 c -10.88689,5.21029 -20.86401,10.66647 -27.42519,17.04587 -11.65071,2.84039 -19.91205,7.7144 -28.75481,12.23956 -2.67807,12.04962 -3.90036,24.09925 3.20444,36.14887 6.4429,9.38534 15.09934,11.68738 25.07247,9.77599 11.51523,-3.31656 22.0236,-12.60719 31.77186,-26.40779 0.22345,-1.05729 4.92073,-9.04451 4.92073,-9.04451 0,0 -0.41676,-3.88071 1.50778,-14.12355 1.3857,-6.23043 2.34993,-12.6411 1.86728,-17.14605 -0.96883,-4.15211 -3.23773,-9.62848 -12.16456,-8.48839 z" class="skin boob" id="XMLID_588_" sodipodi:nodetypes="cccccccccc"/> - </g> - <g id="g1069"> - <path d="m 279.17149,241.98615 c 6.27955,31.26499 54.26517,32.7166 68.84808,6.56488" id="path1518" class="shadow boob_inner_lower_shadow" inkscape:connector-curvature="0"/> - <path d="m 348.02257,248.51893 c 8.65355,-12.30579 11.43144,-30.88254 -0.97284,-43.4189 l -67.88132,36.91816" id="path1524" class="shadow" inkscape:connector-curvature="0"/> - <path d="m 347.04977,205.10006 c -14.67089,-12.96908 -28.30339,-7.92276 -38.99561,-8.00176 -24.21445,12.16832 -31.98806,25.58323 -28.88571,44.91992" id="path1050" class="shadow boob_inner_upper_shadow" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="csccc" id="path1042" class="skin boob" d="m 348.02261,248.51896 c 7.65465,-13.28462 11.02267,-29.82946 -0.97284,-43.4189 -13.16154,-14.9104 -25.83696,-10.05 -38.46528,-8.66467 -23.32793,11.82921 -31.64375,27.39415 -29.41604,45.58283 9.02747,30.88382 54.47239,31.60541 68.85416,6.50074 z" inkscape:connector-curvature="0"/> - </g> - </g> - <g inkscape:label="Boob_back_" style="display:inline;opacity:1" id="Boob_back_" inkscape:groupmode="layer"> - <g id="g1031"> - <path inkscape:connector-curvature="0" d="m 242.92059,213.60294 c -14.19794,4.82368 -20.00019,6.39194 -25.92638,13.38861 -9.04477,10.67857 -6.37031,27.70524 0.37601,34.99982 2.47829,3.55327 12.05265,13.5715 25.07247,9.77599 14.78911,-4.31129 28.08275,-19.04793 35.66095,-29.76655 8.85355,27.42583 51.12087,37.51696 69.91897,6.51815 9.4955,-12.56066 7.58029,-37.75952 -4.20721,-46.93452 -15.35794,-6.9613 -35.81658,-4.80431 -35.81658,-4.80431 -5.54048,0.45878 -20.56861,4.16469 -24.93467,4.67913 -23.35197,2.7515 -29.55361,1.28089 -40.14356,12.14368 z" class="shadow boob" id="path1027" sodipodi:nodetypes="cscsccccsc"/> - <path sodipodi:nodetypes="ccscsccsc" id="path1029" class="skin boob" d="m 283.0737,200.8881 c -26.58529,0.48823 -32.05311,6.01484 -40.15311,12.71484 -17.2121,6.55172 -20.13904,6.41341 -25.92638,13.38861 -8.91343,10.74292 -5.74857,27.56708 0.37601,34.99982 2.9713,3.61127 12.0841,13.18009 25.07247,9.77599 14.53688,-3.80995 28.67981,-20.84961 35.66095,-29.76655 8.5,26.1 51.78378,36.4563 69.91897,6.51815 8.7,-11.5 7.9089,-38.6903 -5.22284,-47.6064 -14.13669,-9.59844 -34.74263,-4.4546 -34.74263,-4.4546" inkscape:connector-curvature="0"/> - </g> - <path inkscape:connector-curvature="0" d="m 281.11239,224.03216 c 4.25,-12.71324 13.0603,-19.40588 27.18824,-27.60147 -14.45735,8.97059 -21.28677,14.51617 -27.18824,27.60147 z" class="shadow" id="path1033" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 281.02323,224.48521 c 1.2,-3.4 5.25883,-10.72353 1.95883,-23.52353 1.3,10.7 -0.65883,18.02353 -1.95883,23.52353 z" class="shadow" id="path1035" sodipodi:nodetypes="ccc"/> - </g> - <g inkscape:groupmode="layer" id="Boob_Areola" style="display:inline;opacity:1" inkscape:label="Boob_Areola"> - <g id="g1027" transform="matrix(1.0036748,0,0,1.0036748,-0.82340761,-0.81073623)"> - <path id="XMLID_592_" class="areola" d="m 224.06836,220.86839 c 0,0 -0.39131,3.31112 -2.35082,6.67438 -1.9595,3.36326 -9.06529,7.55149 -9.06529,7.55149 0,0 -0.24448,-6.64388 0.46015,-8.06326 0.70464,-1.41938 1.13831,-2.19079 3.06684,-3.56226 2.42539,-1.72481 7.88912,-2.60035 7.88912,-2.60035 z" inkscape:connector-curvature="0" sodipodi:nodetypes="czczsc"/> - <path id="path3138" class="shadow" d="m 213.5671,226.66466 c 0,0 -1.9262,-1.30979 -1.44901,-2.97247 0.72632,-2.03671 3.90583,-3.99822 5.40947,-2.60058 0.64103,0.66345 0.91915,1.64032 0.91915,1.64032 -0.84654,2.52287 -2.28501,3.51024 -4.87961,3.93273 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> - <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" d="m 213.5671,226.66466 c 0,0 -1.91057,-1.4426 -1.44901,-2.97247 0.64038,-1.86093 4.03474,-3.95134 5.40947,-2.60058 0.55119,0.59704 0.91915,1.64032 0.91915,1.64032 -0.80357,2.35099 -2.35142,3.51024 -4.87961,3.93273 z" class="areola" id="XMLID_592_-5"/> - <path id="path3138-3" class="shadow" d="m 213.01263,222.46595 c 0.75085,-0.36944 1.35215,-0.13684 2.65343,0.43025 -1.21381,-0.3264 -1.67129,-0.78189 -2.65343,-0.43025 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> - <path id="path3138-3-7" class="shadow" d="m 214.0315,222.35507 c 0.054,-0.31278 0.30778,-0.85942 1.02206,-0.7758 -0.84623,0.0699 -0.82527,0.44046 -1.02206,0.7758 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> - <path id="path3138-3-7-4" class="shadow" d="m 214.73116,227.20469 c 2.09105,-0.65605 3.58115,-2.24941 3.44394,-3.80315 0.0522,0.95271 -0.13777,2.92874 -3.44394,3.80315 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> - </g> - <g id="g1036" transform="matrix(1.0212835,0,0,1.0212835,-6.4679552,-4.3556102)"> - <path inkscape:connector-curvature="0" id="XMLID_593_" d="m 314.17289,222.1657 c -5.09999,-0.56255 -10.25389,-4.32121 -10.27808,-7.69008 -0.0309,-4.29936 6.47452,-8.78659 12.1893,-8.53652 5.37398,0.23516 10.98206,3.74015 9.88043,8.95113 -1.10163,5.21098 -5.6937,7.9481 -11.79165,7.27547 z" class="areola" sodipodi:nodetypes="sssss"/> - <path inkscape:connector-curvature="0" id="path989" d="m 310.66882,210.47597 c -0.72765,-0.9361 -0.60753,-2.39965 -0.40684,-3.08293 0.48386,-1.83702 2.61601,-2.7715 4.4734,-2.74561 1.62871,0.0227 2.55147,0.26096 3.28224,1.71217 0.79333,0.61754 0.84585,1.67252 0.80454,1.72014 -0.21669,1.5267 -1.22761,3.71824 -4.19389,3.59586 -2.37989,0.11991 -3.19283,-0.0317 -3.95945,-1.19963 z" class="shadow" sodipodi:nodetypes="ccscccc"/> - <path sodipodi:nodetypes="csscccc" class="areola" d="m 310.66882,210.47597 c -0.49696,-0.95917 -0.60188,-2.41088 -0.40684,-3.08293 0.51036,-1.75854 2.81349,-2.72569 4.4734,-2.74561 1.63641,-0.0196 2.56087,0.48653 3.28224,1.71217 0.66484,0.73435 0.82922,1.68764 0.80454,1.72014 -0.28461,1.4286 -1.29226,3.62486 -4.19389,3.59586 -2.24349,0.003 -3.12877,-0.0866 -3.95945,-1.19963 z" id="XMLID_593_-8" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" id="path3990-3" d="m 311.71553,206.60898 c 1.5946,-0.62 3.11448,0.2184 4.10335,1.04883 -1.18741,-0.57935 -2.70593,-1.37335 -4.10335,-1.04883 z" class="shadow" sodipodi:nodetypes="ccc"/> - <path sodipodi:nodetypes="ccc" class="shadow" d="m 313.5577,206.59854 c 0.90959,-0.79125 1.45758,-1.00189 2.8221,-0.87304 -1.2758,0.0449 -1.85557,0.27784 -2.8221,0.87304 z" id="path3990-3-1" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" id="path3990-3-0" d="m 311.13963,210.57541 c 7.68349,1.59713 7.01758,-3.72676 6.8783,-4.2566 0.46399,3.23262 -1.47339,5.97095 -6.8783,4.2566 z" class="shadow" sodipodi:nodetypes="ccc"/> - <path id="path3138-3-7-4-8" class="shadow" d="m 312.99355,212.30782 c 4.05401,-0.41435 5.26872,-1.30083 5.69395,-3.68596 -0.0494,2.76521 -2.25496,3.48343 -5.69395,3.68596 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> - </g> - </g> - <g inkscape:label="Boob_Areola_NoBoob" style="display:inline;opacity:1" id="Boob_Areola_NoBoob" inkscape:groupmode="layer"> + <g style="display:inline" inkscape:label="Boob_Huge_" id="Boob_Huge_" inkscape:groupmode="layer"> + <g inkscape:groupmode="layer" id="Boob_Huge" style="display:inline;opacity:1" inkscape:label="Boob_Huge"> + <g id="g2276" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path sodipodi:nodetypes="cccccccc" id="path2272" class="shadow" d="m 251.94799,202.06126 c -5.48922,8.60644 -14.21655,16.55553 -29.5132,24.802 -2.66627,10.79115 -4.57141,18.93814 5.09449,27.8494 6.92439,7.7255 14.82723,9.34865 24.00444,4.54068 9.9758,-4.87332 -2.88363,-0.91055 5.62068,-13.48656 0.51484,-8.64963 4.02743,-15.80582 5.08765,-21.2787 1.24098,-5.57972 1.78028,-10.00392 -5.51886,-16.34477 -5.28827,-4.59399 1.66486,-7.34429 -4.7752,-6.08205 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 251.94799,202.06126 c -4.58269,8.82904 -14.93008,17.30782 -29.5132,24.802 -2.39837,10.79115 -3.45193,18.69011 5.09449,27.8494 7.45154,6.95799 15.65465,8.14394 24.00444,4.54068 9.42591,-5.13062 -3.89307,-1.68704 5.62068,-13.48656 3.23278,-7.85413 5.17648,-15.27549 6.2367,-20.74837 1.24098,-5.57972 -0.87916,-14.57204 -5.2095,-19.8803 -1.46475,-1.79553 -0.006,-6.28363 -6.23361,-3.07685 z" class="skin boob" id="path2274" sodipodi:nodetypes="ccccccac"/> + </g> + <g id="g2282" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path inkscape:connector-curvature="0" d="m 322.52175,198.05651 c -4.11529,-0.17415 -4.6911,0.99135 -11.14734,1.40095 -6.05493,6.21998 -12.33211,13.08022 -17.97286,20.11452 -8.89026,9.35249 -11.15253,21.87785 -4.29471,30.50069 8.26604,12.77039 34.79999,12.67441 44.46576,0.60856 6.73235,-7.12225 6.42177,-20.48446 -1.27924,-30.36173 -5.66858,-9.77024 -9.11055,-18.938 -9.77161,-22.26299 z" class="shadow" id="path2307" sodipodi:nodetypes="ccccccc"/> + <path sodipodi:nodetypes="ccssssc" id="path2280" class="skin boob" d="m 322.52175,198.05651 c -4.11529,-1.2502 -4.6911,-1.40468 -11.14734,1.40095 -5.76044,6.21998 -11.66471,13.08022 -17.97286,20.11452 -8.22932,9.17663 -10.424,21.68399 -4.29471,30.50069 8.32079,11.96907 34.87117,11.63286 44.46576,0.60856 6.19858,-7.12225 5.94519,-20.48446 -1.27924,-30.36173 -6.92244,-9.4644 -9.19482,-18.91693 -9.77161,-22.26299 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_Huge_Areolae_Normal" style="display:inline;opacity:1" id="Boob_Huge_Areolae_Normal" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2568" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path sodipodi:nodetypes="czczsc" inkscape:connector-curvature="0" d="m 227.14891,224.34464 c 0,0 0.24231,2.57487 -0.69623,5.44459 -0.93851,2.86971 -5.64569,7.20295 -5.64569,7.20295 0,0 -1.26707,-4.99893 -0.96376,-6.1901 0.30329,-1.19118 0.50662,-1.84681 1.74593,-3.20091 1.5586,-1.70299 5.55975,-3.25653 5.55975,-3.25653 z" class="areola" id="path2566"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2572" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 309.93277,231.30328 c -3.40637,-0.37574 -6.84874,-2.88621 -6.8649,-5.13633 -0.0207,-2.87162 4.32444,-5.86871 8.14144,-5.70169 3.58937,0.15706 7.3351,2.49811 6.5993,5.97861 -0.7358,3.4805 -3.80292,5.30866 -7.87584,4.85941 z" id="path2570" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Areolae_Large" style="display:inline;opacity:1" inkscape:label="Boob_Huge_Areolae_Large"> + <g id="g2578" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path id="path2576" class="areola" d="m 228.60733,223.47737 c 0,0 0.30094,3.19792 -0.8647,6.76203 -1.16561,3.5641 -7.01179,8.94586 -7.01179,8.94586 0,0 -1.57367,-6.20853 -1.19696,-7.68793 0.37668,-1.47941 0.62921,-2.29369 2.16839,-3.97544 1.93574,-2.11507 6.90506,-4.04452 6.90506,-4.04452 z" inkscape:connector-curvature="0" sodipodi:nodetypes="czczsc"/> + </g> + <g id="g2582" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path inkscape:connector-curvature="0" id="path2580" d="m 310.0179,234.96812 c -4.61957,-0.50956 -9.28796,-3.91415 -9.30987,-6.96566 -0.028,-3.89437 5.86461,-7.95889 11.04106,-7.73238 4.86774,0.213 9.94754,3.38782 8.94968,8.10792 -0.99786,4.72011 -5.15735,7.19938 -10.68087,6.59012 z" class="areola" sodipodi:nodetypes="sssss"/> + </g> + </g> + <g inkscape:label="Boob_Huge_Areolae_Wide" style="display:inline;opacity:1" id="Boob_Huge_Areolae_Wide" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2588" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path sodipodi:nodetypes="czczsc" inkscape:connector-curvature="0" d="m 232.7832,220.84618 c 0,0 0.4464,4.52494 -1.28267,9.81182 -1.72902,5.28687 -10.19793,13.26999 -10.19793,13.26999 0,0 -2.53745,-9.20953 -1.97865,-11.40402 0.55875,-2.19451 0.93334,-3.40238 3.21651,-5.89704 2.87142,-3.13742 10.24274,-5.78075 10.24274,-5.78075 z" class="areola" id="path2586"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2592" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 310.12038,239.65916 c -6.9072,-0.76189 -13.8874,-5.85245 -13.92016,-10.41508 -0.0419,-5.82288 8.76879,-11.90016 16.50864,-11.56148 7.27826,0.31847 14.8736,5.06548 13.3816,12.12299 -1.49201,7.05753 -7.71129,10.76454 -15.97008,9.85357 z" id="path2590" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Areolae_Huge" style="display:inline;opacity:1" inkscape:label="Boob_Huge_Areolae_Huge"> + <g id="g2598" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path id="path2596" class="areola" d="m 236.62959,218.29317 c 0,0 1.7243,6.58569 -0.67504,13.922 -2.39927,7.33629 -12.70181,16.77885 -12.70181,16.77885 -2.04899,-3.31055 -4.6839,-13.22984 -3.74138,-17.39573 0.94253,-4.16588 0.57641,-2.75255 3.74464,-6.21424 3.9845,-4.35363 13.37359,-7.09088 13.37359,-7.09088 z" inkscape:connector-curvature="0" sodipodi:nodetypes="czczsc"/> + </g> + <g id="g2602" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path inkscape:connector-curvature="0" id="path2600" d="m 310.21331,242.70695 c -8.66357,-0.95563 -17.41869,-7.34062 -17.45978,-13.06343 -0.0525,-7.30353 10.99852,-14.92615 20.70646,-14.50135 9.12899,0.39946 18.65567,6.35353 16.78428,15.20563 -1.87139,8.85212 -9.67212,13.50176 -20.03096,12.35915 z" class="areola" sodipodi:nodetypes="sssss"/> + </g> + </g> + <g inkscape:label="Boob_Huge_Areolae_Star" style="display:inline;opacity:1" id="Boob_Huge_Areolae_Star" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2608" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path sodipodi:nodetypes="cccccccssc" inkscape:connector-curvature="0" d="m 234.36369,221.2914 c -5.83495,3.07543 -6.41117,3.88752 -8.98865,6.65172 3.10943,0.0163 3.09282,-0.28462 8.16273,1.84366 -7.00102,0.23835 -9.44665,2.25868 -9.44665,2.25868 0,0 -0.69998,1.91384 1.81583,11.39761 -3.75631,-5.09859 -4.6232,-9.07753 -4.6232,-9.07753 0,0 -0.7342,1.92505 -0.23957,8.04149 -1.78578,-3.48555 -1.6116,-7.85334 -1.6116,-9.31051 0,-2.16436 0.62706,-3.42478 3.74464,-6.54236 4.17315,-4.17315 11.18647,-5.26276 11.18647,-5.26276 z" class="areola" id="path2606"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2612" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path sodipodi:nodetypes="ccccccccccc" class="areola" d="m 309.21943,229.27224 c -3.76567,1.79157 -6.84161,5.28921 -10.10232,7.39152 1.44885,-3.26388 2.80438,-7.85021 4.89355,-10.83394 -2.31674,-1.93975 -5.18388,-2.96451 -8.37065,-3.68536 3.56307,-1.07962 7.79205,-1.81135 11.55083,-1.25273 1.41528,-1.99803 2.88366,-2.69755 5.19852,-4.40935 0.47133,1.75669 1.08677,2.27498 2.38302,4.27914 4.40924,-0.57094 8.75671,0.34013 13.32809,1.37553 -4.74363,0.78623 -8.39968,1.78672 -11.63843,3.96162 1.36056,2.93262 2.11025,7.4758 2.95271,10.6874 -2.99455,-2.42622 -6.28672,-5.87702 -10.19532,-7.51383 z" id="path2610" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_Huge_Areolae_Heart" style="display:inline;opacity:1" id="Boob_Huge_Areolae_Heart" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2618" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path sodipodi:nodetypes="cczcac" inkscape:connector-curvature="0" d="m 232.52122,225.53565 c 4.39417,7.66356 -5.99208,11.98476 -10.60277,20.32639 -1.91692,-2.41158 -3.13082,-10.98168 -2.2593,-14.47377 0.87152,-3.49209 1.27608,-4.34257 4.50054,-6.25453 4.9477,-1.91122 6.43637,-1.61802 8.36153,0.4019 0,0 0,1e-5 0,1e-5 z" class="areola" id="path2616"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2623" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path sodipodi:nodetypes="czczcc" class="areola" d="m 308.00692,240.95895 c -4.20528,-2.9951 -12.71977,-16.79856 -6.01226,-22.33579 6.70751,-5.53723 9.65531,-0.0103 9.65531,-0.0103 0,0 5.61579,-5.19127 10.77973,1.06406 5.16394,6.25533 -9.37618,18.97767 -14.42277,21.28185 z" id="path2621" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Nipples" style="display:inline;opacity:1" inkscape:label="Boob_Huge_Nipples"> + <g id="g2307" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path id="path2297" class="shadow" d="m 219.66711,231.32551 c 0,0 -2.07916,-0.84424 -1.96587,-2.50683 0.27229,-2.06527 2.87049,-4.55573 4.56939,-3.54333 0.73795,0.4953 1.19745,1.3592 1.19745,1.3592 -0.28724,2.54749 -1.44251,3.76835 -3.80097,4.69096 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" d="m 219.66711,231.32551 c 0,0 -2.09128,-0.97248 -1.96587,-2.50683 0.22689,-1.88232 3.0014,-4.53764 4.56939,-3.54333 0.6399,0.45092 1.19745,1.3592 1.19745,1.3592 -0.28152,2.37691 -1.50508,3.78179 -3.80097,4.69096 z" class="areola" id="path2299"/> + <path id="path2301" class="shadow" d="m 218.29586,227.4828 c 0.63254,-0.49981 1.24594,-0.4023 2.58629,-0.13128 -1.20929,-0.062 -1.73229,-0.39852 -2.58629,0.13128 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + <path id="path2303" class="shadow" d="m 219.23311,227.17234 c -0.0126,-0.30553 0.11607,-0.87173 0.80585,-0.93739 -0.78295,0.23692 -0.68828,0.58174 -0.80585,0.93739 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + <path id="path2305" class="shadow" d="m 220.87274,231.59877 c 1.83694,-1.04074 2.9183,-2.84285 2.47489,-4.27858 0.24179,0.88681 0.46243,2.78645 -2.47489,4.27858 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + </g> + <g id="g2321" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path inkscape:connector-curvature="0" id="path2309" d="m 307.02662,225.35792 c -0.65912,-0.84792 -0.55031,-2.1736 -0.36852,-2.79251 0.43828,-1.66398 2.36958,-2.51043 4.05199,-2.48698 1.47529,0.0205 2.31113,0.23638 2.97306,1.55088 0.7186,0.55937 0.76617,1.51497 0.72875,1.55811 -0.19628,1.38288 -1.11197,3.36797 -3.79882,3.25712 -2.15571,0.10863 -2.89207,-0.0288 -3.58646,-1.08662 z" class="shadow" sodipodi:nodetypes="ccscccc"/> + <path sodipodi:nodetypes="csscccc" class="areola" d="m 307.02662,225.35792 c -0.45016,-0.86882 -0.5452,-2.18377 -0.36852,-2.79251 0.46228,-1.59289 2.54845,-2.46893 4.05199,-2.48698 1.48227,-0.0177 2.31964,0.4407 2.97306,1.55088 0.60221,0.66517 0.7511,1.52867 0.72875,1.55811 -0.2578,1.29402 -1.17053,3.2834 -3.79882,3.25712 -2.03215,0.002 -2.83404,-0.0784 -3.58646,-1.08662 z" id="path2311" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path2313" d="m 307.97472,221.8552 c 1.44439,-0.5616 2.8211,0.19783 3.71681,0.95003 -1.07555,-0.52478 -2.45102,-1.24397 -3.71681,-0.95003 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 309.64335,221.84575 c 0.82391,-0.71672 1.32028,-0.90751 2.55627,-0.79081 -1.15563,0.0407 -1.68078,0.25167 -2.55627,0.79081 z" id="path2315" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path2317" d="m 307.45307,225.44799 c 6.9597,1.44668 6.35651,-3.37569 6.23036,-3.85562 0.42028,2.9281 -1.33459,5.40848 -6.23036,3.85562 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path id="path2319" class="shadow" d="m 309.13235,227.01721 c 3.67212,-0.37532 4.7724,-1.1783 5.15758,-3.33875 -0.0448,2.50473 -2.04255,3.15529 -5.15758,3.33875 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Piercings_" inkscape:label="Boob_Huge_Piercings_" style="display:inline"> + <g inkscape:groupmode="layer" id="Boob_Huge_Areola_Piercing" style="display:inline" inkscape:label="Boob_Huge_Areola_Piercing"> + <g id="g2929" transform="matrix(1.0263785,0,0,1.0263785,-8.6733354,-5.3910578)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> + <g id="g2931" transform="matrix(1.0228023,0,0,1.0228023,-5.1326497,-5.0109358)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> + <g id="g3099" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path class="shadow" sodipodi:nodetypes="accaa" id="path2933" d="m 315.07024,219.70277 c 0.0554,0.71485 -0.77245,1.51654 -1.52538,1.51654 -0.5209,-0.31622 -0.77768,-0.63239 -1.81752,-1.1162 0,-0.74876 0.67951,-1.68337 1.43634,-1.78429 0.77841,-0.1038 1.84592,0.60099 1.90656,1.38395 z" inkscape:connector-curvature="0"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path2935" d="m 311.29057,230.82984 c 0,0.75085 -0.84636,1.58836 -1.5972,1.58836 -0.75085,0 -1.59721,-0.83751 -1.5972,-1.58836 0,-0.75084 0.84635,-1.58835 1.5972,-1.58835 0.75084,0 1.59719,0.83751 1.5972,1.58835 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 314.92621,219.70277 c 0.0577,0.68014 -0.76752,1.44396 -1.452,1.44396 -0.47354,-0.28747 -0.72935,-0.52731 -1.67466,-0.96714 0,-0.68069 0.64168,-1.61234 1.3653,-1.71638 0.71063,-0.10217 1.70063,0.5242 1.76136,1.23956 z" id="path2937" sodipodi:nodetypes="accaa" class="steel_piercing"/> + <path inkscape:connector-curvature="0" d="m 311.14537,230.82984 c 0,0.68259 -0.76942,1.44396 -1.452,1.44396 -0.68259,0 -1.45201,-0.76137 -1.452,-1.44396 0,-0.68258 0.76941,-1.44395 1.452,-1.44395 0.68258,0 1.45199,0.76137 1.452,1.44395 z" id="path2941" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + </g> + <g id="g3105" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path2939" d="m 227.38819,224.56136 c 0,0.75085 -0.84635,1.58836 -1.5972,1.58836 -0.75085,0 -1.5972,-0.83751 -1.5972,-1.58836 0,-0.75084 0.84636,-1.58835 1.5972,-1.58835 0.75084,0 1.5972,0.83751 1.5972,1.58835 z" inkscape:connector-curvature="0"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path2943" d="m 221.66565,235.14913 c 0,0.75084 -0.84636,1.58835 -1.5972,1.58835 -0.75084,0 -1.5972,-0.83751 -1.5972,-1.58835 0,-0.75084 0.84636,-1.58835 1.5972,-1.58835 0.75084,0 1.5972,0.83751 1.5972,1.58835 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 227.24299,224.56136 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68258 0.76941,-1.44395 1.452,-1.44395 0.68258,0 1.452,0.76137 1.452,1.44395 z" id="path2945" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path inkscape:connector-curvature="0" d="m 221.52045,235.14913 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68259 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76137 1.452,1.44396 z" id="path2947" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + </g> + </g> + <g inkscape:label="Boob_Huge_Areola_Piercing_Heavy" style="display:inline" id="Boob_Huge_Areola_Piercing_Heavy" inkscape:groupmode="layer"> + <g id="g3085" transform="matrix(4,0,0,4,-941.71671,-583.58668)" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" d="m 315.68416,222.90053 c 0,0 -0.13465,-4.47036 1.43,-5.58749 1.85611,-1.32523 5.3301,-1.17894 6.82,0.54779 1.43465,1.66269 0.96517,4.88584 -0.44,6.57352 -1.13778,1.36653 -5.17,1.3147 -5.17,1.3147 0,0 3.53534,-0.86423 4.29,-2.30073 0.61522,-1.17109 0.47784,-2.99147 -0.44,-3.94411 -1.02891,-1.06792 -3.08003,-1.33322 -4.4,-0.65735 -1.35317,0.69287 -2.09,4.05367 -2.09,4.05367 z" class="shadow" id="path2953" sodipodi:nodetypes="caaacaaac"/> + <path inkscape:connector-curvature="0" d="m 305.90661,222.83383 c 0,0 0.13465,-4.47036 -1.43,-5.58749 -1.85611,-1.32523 -5.3301,-1.17893 -6.82,0.5478 -1.43464,1.66269 -0.96516,4.88583 0.44,6.57351 1.13777,1.36653 5.17,1.31471 5.17,1.31471 0,0 -3.53534,-0.86423 -4.29,-2.30073 -0.61522,-1.17109 -0.47784,-2.99147 0.44,-3.94411 1.02891,-1.06792 3.08003,-1.33323 4.4,-0.65736 1.35317,0.69287 2.09,4.05367 2.09,4.05367 z" class="shadow" id="path2955" sodipodi:nodetypes="caaacaaac"/> + <path sodipodi:nodetypes="caaacaaac" id="path2959" class="steel_piercing" d="m 316.09881,222.73598 c 0,0 -0.12241,-4.06397 1.3,-5.07954 1.68738,-1.20475 4.84555,-1.07175 6.2,0.498 1.30422,1.51153 0.87742,4.44167 -0.4,5.97592 -1.03434,1.2423 -4.7,1.19519 -4.7,1.19519 0,0 3.21395,-0.78567 3.9,-2.09158 0.55929,-1.06463 0.4344,-2.71952 -0.4,-3.58555 -0.93538,-0.97084 -2.80003,-1.21202 -4,-0.59759 -1.23016,0.62988 -1.9,3.68515 -1.9,3.68515 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caaacaaac" id="path2961" class="steel_piercing" d="m 305.49196,222.66929 c 0,0 0.12241,-4.06397 -1.3,-5.07954 -1.68737,-1.20475 -4.84554,-1.07176 -6.2,0.49799 -1.30423,1.51154 -0.87743,4.44168 0.4,5.97593 1.03434,1.2423 4.7,1.19518 4.7,1.19518 0,0 -3.21395,-0.78566 -3.9,-2.09157 -0.5593,-1.06463 -0.4344,-2.71952 0.4,-3.58556 0.93538,-0.97084 2.80003,-1.21202 4,-0.59759 1.23016,0.62989 1.9,3.68516 1.9,3.68516 z" inkscape:connector-curvature="0"/> + </g> + <g id="g3109" transform="matrix(4,0,0,4,-750.12304,-598.08667)" transformVariableName="_boob_right_art_transform"> + <path inkscape:connector-curvature="0" d="m 225.06547,228.29066 c 0,0 0.60967,-2.29861 1.54375,-2.82952 2.13513,-1.21356 5.78848,-1.60777 7.36253,0.27741 0.71838,0.86037 0.32663,2.54546 -0.475,3.32885 -1.34,1.30951 -5.58127,0.66576 -5.58127,0.66576 0,0 3.80544,0.19579 4.63127,-1.1651 0.35502,-0.58505 0.0468,-1.55455 -0.47501,-1.99731 -1.21025,-1.02692 -3.25057,-0.85339 -4.75002,-0.33287 -0.96055,0.33345 -2.25625,2.05278 -2.25625,2.05278 z" class="shadow" id="path2957" sodipodi:nodetypes="caaacaaac"/> + <path sodipodi:nodetypes="caaacaaac" id="path2963" class="steel_piercing" d="m 225.48753,228.18839 c 0,0 0.55425,-2.08964 1.40341,-2.57229 1.94103,-1.10324 5.26225,-1.46162 6.69321,0.25218 0.65308,0.78216 0.29694,2.31405 -0.43182,3.02623 -1.21818,1.19047 -5.07388,0.60524 -5.07388,0.60524 0,0 3.45949,0.17799 4.21024,-1.05918 0.32275,-0.53186 0.0425,-1.41322 -0.43182,-1.81573 -1.10022,-0.93357 -2.95507,-0.77582 -4.3182,-0.30262 -0.87323,0.30313 -2.05114,1.86617 -2.05114,1.86617 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Piercing_Heavy" style="display:inline" inkscape:label="Boob_Huge_Piercing_Heavy"> + <g id="g2981" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path inkscape:connector-curvature="0" d="m 305.79149,218.84986 c 0,0 -2.49411,9.18373 -0.98325,13.39981 1.04425,2.91398 3.31774,6.91285 6.40728,6.7218 3.05706,-0.18905 4.59484,-4.44702 5.47216,-7.38158 1.23461,-4.12965 -0.7356,-12.9098 -0.7356,-12.9098 0,0 0.11352,1.8255 0.16679,3.66985 -0.16929,0.006 -2.35051,-4.1e-4 -2.35051,-4.1e-4 0.0559,0.37078 -0.0172,0.52908 -0.0182,0.90408 0,0 2.10319,-0.01 2.38726,-0.0165 0.0394,2.95347 -0.12672,6.29356 -1.09131,8.44744 -0.78349,1.74932 -2.10939,3.66042 -3.89433,3.67566 -1.987,0.017 -3.50956,-2.07688 -4.40441,-4.01713 -0.94479,-2.04857 -1.13062,-5.2179 -1.1115,-8.05448 0.44876,0 0.89492,-0.0536 0.89492,-0.0536 l 0.20179,-0.91124 c 0,0 -0.63009,-0.0132 -1.08238,-0.0132 0.0399,-1.72733 0.14124,-3.46134 0.14124,-3.46134 z" class="shadow" id="path2969" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 311.22782,235.59907 c 0,0 -1.85221,9.4952 -1.92044,14.30624 -0.078,5.49738 1.72993,16.40283 1.72993,16.40283 0,0 -0.37012,-9.79442 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path2971" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 310.97362,264.29827 c 0,0 -1.08607,3.59047 -0.98853,5.42648 0.0928,1.74744 1.48279,5.03598 1.48279,5.03598 0,0 1.05088,-3.32643 0.98853,-5.03598 -0.0683,-1.8739 -1.48279,-5.42648 -1.48279,-5.42648 z" class="shadow" id="path2973" sodipodi:nodetypes="cacac"/> + <path sodipodi:nodetypes="caaacccccsascccccc" id="path2975" class="steel_piercing" d="m 306.23848,219.75707 c 0,0 -2.26737,8.34884 -0.89386,12.18164 0.94932,2.64907 3.01613,6.2844 5.8248,6.11072 2.77915,-0.17186 4.17713,-4.04275 4.97469,-6.71053 1.12237,-3.75423 -0.66873,-11.73618 -0.66873,-11.73618 0,0 0.1032,1.19752 0.15163,2.87419 -0.1539,0.005 -1.857,-3.7e-4 -1.857,-3.7e-4 -0.01,0.4056 -0.009,0.4963 -0.0851,0.81799 0,0 1.70069,-0.005 1.95894,-0.0111 0.0358,2.68498 -0.1152,6.18346 -0.9921,8.14152 -0.71227,1.59029 -1.91762,3.32765 -3.5403,3.34151 -1.80636,0.0154 -3.19051,-1.88807 -4.00401,-3.65193 -0.8589,-1.86234 -1.02784,-5.20558 -1.01046,-7.78429 0.40797,0 0.46484,-0.0487 0.46484,-0.0487 l 0.16073,-0.8284 c 0,0 -0.20131,-0.012 -0.61253,-0.012 0.0363,-1.5703 0.1284,-2.68465 0.1284,-2.68465 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="path2977" class="steel_piercing" d="m 311.1816,236.99494 c 0,0 -1.68382,8.632 -1.74585,13.00567 -0.0709,4.99761 1.57266,14.91166 1.57266,14.91166 0,0 -0.33647,-8.90402 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="path2979" class="steel_piercing" d="m 310.99593,264.77383 c 0,0 -0.98734,3.26407 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57815 1.34799,4.57815 0,0 0.95535,-3.02401 0.89867,-4.57815 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z" inkscape:connector-curvature="0"/> + </g> + <g id="g2995" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path inkscape:connector-curvature="0" d="m 224.04177,224.35984 c 0,0 1.84875,9.08379 0.67687,13.39983 -0.70222,2.58629 -1.73488,6.86756 -4.41084,6.72179 -2.75834,-0.15026 -3.17412,-4.68357 -3.76709,-7.3816 -0.92442,-4.20618 0.5064,-12.90978 0.5064,-12.90978 0,0 -0.0782,1.73915 -0.11483,3.58349 0.11654,0.006 1.05275,-4.1e-4 1.05275,-4.1e-4 l -0.54866,0.90407 c 0,0 -0.32127,-0.01 -0.51683,-0.0165 -0.0271,2.95346 0.0873,6.37993 0.75126,8.5338 0.53937,1.74933 1.16447,3.66321 2.68091,3.67564 1.67758,0.0137 2.41602,-2.07685 3.03204,-4.01709 0.65041,-2.04858 0.77834,-5.30427 0.76517,-8.14084 -0.30893,0 -1.87642,-0.0536 -1.87642,-0.0536 0.0596,-0.36182 0.0683,-0.46339 0.2179,-0.91125 0,0 1.33728,-0.0132 1.64865,-0.0132 -0.0275,-1.72732 -0.0972,-3.37499 -0.0972,-3.37499 z" class="shadow" id="path2983" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 220.68861,241.98705 c 0,0 -1.85221,9.4952 -1.92044,14.30623 -0.078,5.49738 1.72993,16.40284 1.72993,16.40284 0,0 -0.37012,-9.79444 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path2985" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 220.43441,270.68624 c 0,0 -1.08608,3.59049 -0.98853,5.4265 0.0928,1.74744 1.48279,5.03595 1.48279,5.03595 0,0 1.05088,-3.3264 0.98853,-5.03595 -0.0683,-1.8739 -1.48279,-5.4265 -1.48279,-5.4265 z" class="shadow" id="path2987" sodipodi:nodetypes="cacac"/> + <path sodipodi:nodetypes="caaacccccsascccccc" id="path2989" class="steel_piercing" d="m 223.73465,225.26696 c 0,0 1.68069,8.25799 0.61534,12.18167 -0.63838,2.35117 -1.57717,6.24324 -4.00986,6.11072 -2.50758,-0.1366 -2.88557,-4.25779 -3.42463,-6.71055 -0.84039,-3.8238 0.46036,-11.73616 0.46036,-11.73616 0,0 -0.071,1.19752 -0.10438,2.87419 0.10594,0.005 0.62785,-3.7e-4 0.62785,-3.7e-4 l -0.33933,0.82187 c 0,0 -0.12233,-0.009 -0.30011,-0.015 -0.0247,2.68496 0.0793,6.18345 0.68297,8.14152 0.49034,1.5903 1.05861,3.3302 2.43719,3.3415 1.52508,0.0125 2.19638,-1.88805 2.7564,-3.65191 0.59128,-1.86235 0.70758,-5.20558 0.69561,-7.78429 -0.28085,0 -1.70584,-0.0487 -1.70584,-0.0487 0.0541,-0.32893 0.16478,-0.53596 0.16187,-0.82841 0,0 1.25193,-0.012 1.535,-0.012 -0.025,-1.57029 -0.0884,-2.68465 -0.0884,-2.68465 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="path2991" class="steel_piercing" d="m 220.64239,243.38292 c 0,0 -1.68382,8.63199 -1.74585,13.00566 -0.0709,4.99762 1.57266,14.91167 1.57266,14.91167 0,0 -0.33647,-8.90403 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="path2993" class="steel_piercing" d="m 220.45672,271.16181 c 0,0 -0.98735,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57813 1.34799,4.57813 0,0 0.95535,-3.024 0.89867,-4.57813 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_Huge_Piercing" style="display:inline" id="Boob_Huge_Piercing" inkscape:groupmode="layer"> + <g id="g2999" transform="matrix(1.0081159,0,0,1.0081159,-2.6203467,-1.6676415)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> + <g id="g3009" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path3001" d="m 316.48783,223.10304 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path class="shadow" sodipodi:nodetypes="saccs" id="path3003" d="m 306.77276,224.82581 c -0.75293,0 -1.6385,-0.84541 -1.5972,-1.5972 0.046,-0.83836 1.21255,-1.57531 1.96548,-1.57531 -0.68775,1.21129 -0.7805,1.82947 -0.3682,3.17251 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 316.34263,223.10304 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path3005" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path inkscape:connector-curvature="0" d="m 306.77164,224.68061 c -0.68448,0 -1.48757,-0.76845 -1.452,-1.452 0.0399,-0.76733 1.10584,-1.452 1.79032,-1.452 -0.71906,1.10285 -0.73484,1.67672 -0.33828,2.904 z" id="path3007" sodipodi:nodetypes="saccs" class="steel_piercing"/> + </g> + <g style="display:inline" id="g3019" transformVariableName="_boob_right_art_transform" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path inkscape:connector-curvature="0" d="m 224.07961,228.33118 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z" id="path3011" sodipodi:nodetypes="aaaaa" class="shadow" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + <path inkscape:connector-curvature="0" d="m 217.66199,229.81105 c -0.34466,-0.31248 -0.8444,-0.64473 -0.8444,-1.05102 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -0.83246,1.20611 -0.7528,2.64822 z" id="path3013" sodipodi:nodetypes="cscc" class="shadow" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + <path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path3015" d="m 223.93441,228.33118 c 0,0.68134 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77066 -1.452,-1.452 0,-0.68133 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77067 1.452,1.452 z" inkscape:connector-curvature="0" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + <path class="steel_piercing" sodipodi:nodetypes="cscc" id="path3017" d="m 217.65747,229.74416 c -0.31333,-0.28407 -0.76728,-0.63503 -0.76728,-1.00438 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.5497,0.90956 -0.83533,1.21423 -0.68472,2.45638 z" inkscape:connector-curvature="0" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + </g> + </g> + </g> + <g inkscape:label="Boob_Huge_Highlights" id="Boob_Huge_Highlights" inkscape:groupmode="layer" style="display:inline"> + <g style="display:inline" inkscape:label="Boob_Huge_Highlights2" id="Boob_Huge_Highlights2" inkscape:groupmode="layer"> + <g transformVariableName="_boob_left_art_transform" id="g2663" transform="matrix(4,0,0,4,-941.71671,-583.58668)"> + <path inkscape:connector-curvature="0" d="m 311.28344,209.85996 c -1.23695,2.22881 -4.15391,7.30116 -0.41757,9.282 3.52221,-2.35637 1.8912,-8.00731 0.41757,-9.282 z" class="highlight2" id="path2651" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 309.0008,230.89923 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" class="highlight2" id="path2653" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 309.2774,227.50265 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" class="highlight2" id="path2655" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 311.46483,206.71736 c -0.47728,0.55739 -1.52133,1.16622 -0.15966,1.94836 1.70767,-1.34349 0.63887,-1.68624 0.15966,-1.94836 z" class="highlight2" id="path2657" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 310.91707,222.96501 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" class="highlight2" id="path2659" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 310.79064,220.21043 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" class="highlight2" id="path2661" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 287.14784,234.24423 c -1.78019,22.27634 16.62413,23.78154 22.90192,24.02193 -23.56642,-3.77459 -22.37712,-21.24928 -22.90192,-24.02193 z" class="highlight2" id="path2673-6" sodipodi:nodetypes="ccc"/> + </g> + <g transformVariableName="_boob_right_art_transform" id="g2681" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path inkscape:connector-curvature="0" d="m 245.56304,211.91401 c -4.11836,2.60208 -12.2636,9.19756 -15.16804,10.99308 3.27443,0.0574 14.42513,-1.08898 15.16804,-10.99308 z" class="highlight2" id="path2665" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 250.43036,208.01772 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" class="highlight2" id="path2667" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 229.41707,228.57127 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" class="highlight2" id="path2671" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 221.11077,236.97002 c -0.77873,7.49629 6.53371,18.21895 9.15131,19.6622 -2.16944,-2.6361 -8.34445,-14.0271 -9.15131,-19.6622 z" class="highlight2" id="path2673" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 221.12181,234.39974 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" class="highlight2" id="path2675" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 219.83124,227.63948 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" class="highlight2" id="path2677" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 220.10898,225.8855 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" class="highlight2" id="path2679" sodipodi:nodetypes="ccc"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Highlights1" inkscape:label="Boob_Huge_Highlights1" style="display:inline"> + <g transformVariableName="_boob_left_art_transform" transform="matrix(4,0,0,4,-941.71671,-583.58668)" id="g2690"> + <path sodipodi:nodetypes="ccc" id="path2686" class="highlight1" d="m 310.7455,213.61878 c -1.23889,2.23231 -0.62951,4.2542 0.10734,5.49919 0.8331,-1.29133 1.36861,-4.22251 -0.10734,-5.49919 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="path2688" class="highlight1" d="m 308.98735,230.89949 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" inkscape:connector-curvature="0"/> + </g> + <g transformVariableName="_boob_right_art_transform" id="g2694" transform="matrix(4,0,0,4,-750.12304,-598.08667)"> + <path sodipodi:nodetypes="ccc" id="path2692" class="highlight1" d="m 242.78118,215.8836 c -3.18058,2.31902 -9.28242,4.77744 -11.34656,6.90425 3.63554,0.19592 9.94008,-1.84828 11.34656,-6.90425 z" inkscape:connector-curvature="0" transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)"/> + </g> + </g> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_" inkscape:label="Boob_Medium_" style="display:inline"> + <g inkscape:label="Boob_Medium" style="display:inline;opacity:1" id="Boob_Medium" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2687"> + <path inkscape:connector-curvature="0" d="m 265.5598,202.06126 c -6.98215,3.2564 -12.1459,7.91148 -17.37338,13.84075 -11.32184,2.01098 -18.71223,6.38082 -25.75163,10.96125 -2.66627,10.79115 -4.63964,20.79074 2.86977,31.58189 5.0893,9.04044 12.45392,12.33466 22.45388,9.6257 10.79378,-2.60002 19.01126,-9.33031 21.77033,-22.30407 0.51484,-8.64963 10.03784,-15.80582 11.09806,-21.2787 1.24098,-5.57972 10.98028,-18.85392 3.68114,-25.19477 -5.28827,-4.59399 -12.52024,-0.43883 -18.74817,2.76795 z" class="shadow" id="path2247" sodipodi:nodetypes="ccccccccc"/> + <path sodipodi:nodetypes="accccccaa" id="path2685" class="skin boob" d="m 265.5598,202.06126 c -6.58282,3.38951 -11.49746,8.12763 -17.37338,13.84075 -10.4339,2.54375 -17.83242,6.90871 -25.75163,10.96125 -2.39837,10.79115 -3.49301,20.79074 2.86977,31.58189 5.76999,8.40513 13.52235,11.33746 22.45388,9.6257 10.31257,-2.97018 18.31118,-9.79744 21.77033,-22.30407 3.23278,-7.85413 11.18689,-15.27549 12.24711,-20.74837 1.24098,-5.57972 11.28964,-22.38945 3.9905,-28.7303 -5.28827,-4.59399 -13.97865,2.56637 -20.20658,5.77315 z" inkscape:connector-curvature="0"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2693"> + <path sodipodi:nodetypes="ccccc" id="path2689" class="shadow" d="m 344.93513,247.17137 c 11.50556,-18.72777 -0.99403,-25.03554 -7.30197,-37.88762 -11.45706,-9.02941 -12.82017,-9.43754 -25.94622,-9.76379 -26.26694,13.83475 -31.50169,24.95266 -28.41478,41.82961 5.19532,26.99402 48.12646,31.37297 61.66297,5.8218 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 344.93513,247.17137 c 6.85519,-11.89716 4.44093,-22.30576 -0.0687,-31.95616 -3.75098,-8.02695 -11.87524,-14.52078 -20.3528,-17.0962 -4.11529,-1.2502 -6.37048,-1.40468 -12.82672,1.40095 -25.4253,14.28793 -30.40982,25.54058 -28.41478,41.82961 5.56587,26.14704 48.78325,29.87175 61.66297,5.8218 z" class="skin boob" id="path2691" sodipodi:nodetypes="caaccc"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Areolae_Normal" style="display:inline;opacity:1" inkscape:label="Boob_Medium_Areolae_Normal"> + <g id="g1027" transformVariableName="_boob_right_art_transform"> + <path id="XMLID_592_" class="areola" d="m 227.06053,224.47722 c 0,0 0.24231,2.57487 -0.69623,5.44459 -0.93851,2.86971 -5.64569,7.20295 -5.64569,7.20295 0,0 -1.26707,-4.99893 -0.96376,-6.1901 0.30329,-1.19118 0.50662,-1.84681 1.74593,-3.20091 1.5586,-1.70299 5.55975,-3.25653 5.55975,-3.25653 z" inkscape:connector-curvature="0" sodipodi:nodetypes="czczsc"/> + </g> + <g id="g1036" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="XMLID_593_" d="m 313.4683,223.17155 c -3.40637,-0.37574 -6.84874,-2.88621 -6.8649,-5.13633 -0.0207,-2.87162 4.32444,-5.86871 8.14144,-5.70169 3.58937,0.15706 7.3351,2.49811 6.5993,5.97861 -0.7358,3.4805 -3.80292,5.30866 -7.87584,4.85941 z" class="areola" sodipodi:nodetypes="sssss"/> + </g> + </g> + <g inkscape:label="Boob_Medium_Areolae_Large" style="display:inline;opacity:1" id="Boob_Medium_Areolae_Large" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2296"> + <path sodipodi:nodetypes="czczsc" inkscape:connector-curvature="0" d="m 228.38636,223.74254 c 0,0 0.30094,3.19792 -0.8647,6.76203 -1.16561,3.5641 -7.01179,8.94586 -7.01179,8.94586 0,0 -1.57367,-6.20853 -1.19696,-7.68793 0.37668,-1.47941 0.62921,-2.29369 2.16839,-3.97544 1.93574,-2.11507 6.90506,-4.04452 6.90506,-4.04452 z" class="areola" id="path2293"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2313"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 313.28827,227.10156 c -4.61957,-0.50956 -9.28796,-3.91415 -9.30987,-6.96566 -0.028,-3.89437 5.86461,-7.95889 11.04106,-7.73238 4.86774,0.213 9.94754,3.38782 8.94968,8.10792 -0.99786,4.72011 -5.15735,7.19938 -10.68087,6.59012 z" id="path2310" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Areolae_Wide" style="display:inline;opacity:1" inkscape:label="Boob_Medium_Areolae_Wide"> + <g id="g2320" transformVariableName="_boob_right_art_transform"> + <path id="path2318" class="areola" d="m 232.41861,221.42292 c 0,0 0.4464,4.74369 -1.28267,10.03057 -1.72902,5.28687 -10.40105,13.26999 -10.40105,13.26999 0,0 -2.33433,-9.20953 -1.77553,-11.40402 0.55875,-2.19451 0.93334,-3.40238 3.21651,-5.89704 2.87142,-3.13742 10.24274,-5.9995 10.24274,-5.9995 z" inkscape:connector-curvature="0" sodipodi:nodetypes="czczsc"/> + </g> + <g id="g2324" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="path2322" d="m 312.94881,231.61582 c -6.9072,-0.76189 -13.8874,-5.85245 -13.92016,-10.41508 -0.0419,-5.82288 8.76879,-11.90016 16.50864,-11.56148 7.27826,0.31847 14.8736,5.06548 13.3816,12.12299 -1.49201,7.05753 -7.71129,10.76454 -15.97008,9.85357 z" class="areola" sodipodi:nodetypes="sssss"/> + </g> + </g> + <g inkscape:label="Boob_Medium_Areolae_Huge" style="display:inline;opacity:1" id="Boob_Medium_Areolae_Huge" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2330"> + <path sodipodi:nodetypes="czczsc" inkscape:connector-curvature="0" d="m 237.61457,219.3019 c 0,0 0.61945,6.27319 -1.77989,13.6095 -2.39927,7.33629 -14.30039,16.46948 -14.30039,16.46948 -2.73835,-3.80069 -2.90352,-12.97462 -2.1428,-17.08636 0.76072,-4.11174 0.57641,-2.75255 3.74464,-6.21424 3.9845,-4.35363 14.47844,-6.77838 14.47844,-6.77838 z" class="areola" id="path2328"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2334"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 312.68818,236.78493 c -8.66357,-0.95563 -17.41869,-7.34062 -17.45978,-13.06343 -0.0525,-7.30353 10.99852,-14.92615 20.70646,-14.50135 9.12899,0.39946 18.65567,6.35353 16.78428,15.20563 -1.87139,8.85212 -9.67212,13.50176 -20.03096,12.35915 z" id="path2332" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Areolae_Star" style="display:inline;opacity:1" inkscape:label="Boob_Medium_Areolae_Star"> + <g id="g2371" transformVariableName="_boob_right_art_transform"> + <path id="path2369" class="areola" d="m 233.02542,221.55986 c -4.6859,2.14736 -5.25182,2.38871 -7.8293,5.15291 3.10943,0.0163 4.6369,0.11248 9.70681,2.24076 -8.13452,-0.21458 -10.34402,4.13038 -10.34402,4.13038 0,0 0.7366,4.80558 1.8382,10.77591 -2.3421,-2.93308 -5.27409,-9.80651 -5.27409,-9.80651 0,0 -0.57065,4.73684 -0.39999,8.20797 -1.03447,-2.46908 -1.33154,-8.50959 -1.33154,-9.96676 0,-2.16436 0.62706,-3.09666 3.74464,-6.21424 4.17315,-4.17315 9.88929,-4.52042 9.88929,-4.52042 z" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccssc"/> + </g> + <g id="g2375" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="path2373" d="m 311.96943,221.02224 c -3.76567,1.79157 -6.84161,5.28921 -10.10232,7.39152 1.44885,-3.26388 2.80438,-7.85021 4.89355,-10.83394 -2.31674,-1.93975 -5.18388,-2.96451 -8.37065,-3.68536 3.56307,-1.07962 7.79205,-1.81135 11.55083,-1.25273 1.41528,-1.99803 2.88366,-2.69755 5.19852,-4.40935 0.47133,1.75669 1.08677,2.27498 2.38302,4.27914 4.40924,-0.57094 8.75671,0.34013 13.32809,1.37553 -4.74363,0.78623 -8.39968,1.78672 -11.63843,3.96162 1.36056,2.93262 2.11025,7.4758 2.95271,10.6874 -2.99455,-2.42622 -6.28672,-5.87702 -10.19532,-7.51383 z" class="areola" sodipodi:nodetypes="ccccccccccc"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Areolae_Heart" style="display:inline;opacity:1" inkscape:label="Boob_Medium_Areolae_Heart"> + <g id="g2361" transformVariableName="_boob_right_art_transform"> + <path id="path2359" class="areola" d="m 232.25356,226.4419 c 4.39417,7.66356 -6.67958,11.98476 -11.29027,20.32639 0,0 -2.32901,-10.92453 -1.5718,-14.47377 0.75721,-3.54924 1.27608,-4.34257 4.50054,-6.25453 4.9477,-1.91122 6.43637,-1.61802 8.36153,0.4019 0,0 0,1e-5 0,1e-5 z" inkscape:connector-curvature="0" sodipodi:nodetypes="cczcac"/> + </g> + <g id="g2365" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="path2363" d="m 310.81942,233.08395 c -4.20528,-2.9951 -12.71977,-16.79856 -6.01226,-22.33579 6.70751,-5.53723 9.65531,-0.0103 9.65531,-0.0103 0,0 5.61579,-5.19127 10.77973,1.06406 5.16394,6.25533 -9.37618,18.97767 -14.42277,21.28185 z" class="areola" sodipodi:nodetypes="czczcc"/> + </g> + </g> + <g inkscape:label="Boob_Medium_Nipples" style="display:inline;opacity:1" id="Boob_Medium_Nipples" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2294"> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" d="m 219.66711,231.32551 c 0,0 -2.07916,-0.84424 -1.96587,-2.50683 0.27229,-2.06527 2.87049,-4.55573 4.56939,-3.54333 0.73795,0.4953 1.19745,1.3592 1.19745,1.3592 -0.28724,2.54749 -1.44251,3.76835 -3.80097,4.69096 z" class="shadow" id="path2283"/> + <path id="path2285" class="areola" d="m 219.66711,231.32551 c 0,0 -2.09128,-0.97248 -1.96587,-2.50683 0.22689,-1.88232 3.0014,-4.53764 4.56939,-3.54333 0.6399,0.45092 1.19745,1.3592 1.19745,1.3592 -0.28152,2.37691 -1.50508,3.78179 -3.80097,4.69096 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" d="m 218.29586,227.4828 c 0.63254,-0.49981 1.24594,-0.4023 2.58629,-0.13128 -1.20929,-0.062 -1.73229,-0.39852 -2.58629,0.13128 z" class="shadow" id="path2288"/> + <path sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" d="m 219.23311,227.17234 c -0.0126,-0.30553 0.11607,-0.87173 0.80585,-0.93739 -0.78295,0.23692 -0.68828,0.58174 -0.80585,0.93739 z" class="shadow" id="path2290"/> + <path sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" d="m 220.87274,231.59877 c 1.83694,-1.04074 2.9183,-2.84285 2.47489,-4.27858 0.24179,0.88681 0.46243,2.78645 -2.47489,4.27858 z" class="shadow" id="path2292"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2310"> + <path sodipodi:nodetypes="ccscccc" class="shadow" d="m 309.81086,216.32021 c -0.65912,-0.84792 -0.55031,-2.1736 -0.36852,-2.79251 0.43828,-1.66398 2.36958,-2.51043 4.05199,-2.48698 1.47529,0.0205 2.31113,0.23638 2.97306,1.55088 0.7186,0.55937 0.76617,1.51497 0.72875,1.55811 -0.19628,1.38288 -1.11197,3.36797 -3.79882,3.25712 -2.15571,0.10863 -2.89207,-0.0288 -3.58646,-1.08662 z" id="path2298" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path2300" d="m 309.81086,216.32021 c -0.45016,-0.86882 -0.5452,-2.18377 -0.36852,-2.79251 0.46228,-1.59289 2.54845,-2.46893 4.05199,-2.48698 1.48227,-0.0177 2.31964,0.4407 2.97306,1.55088 0.60221,0.66517 0.7511,1.52867 0.72875,1.55811 -0.2578,1.29402 -1.17053,3.2834 -3.79882,3.25712 -2.03215,0.002 -2.83404,-0.0784 -3.58646,-1.08662 z" class="areola" sodipodi:nodetypes="csscccc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 310.75896,212.81749 c 1.44439,-0.5616 2.8211,0.19783 3.71681,0.95003 -1.07555,-0.52478 -2.45102,-1.24397 -3.71681,-0.95003 z" id="path2302" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path2304" d="m 312.42759,212.80804 c 0.82391,-0.71672 1.32028,-0.90751 2.55627,-0.79081 -1.15563,0.0407 -1.68078,0.25167 -2.55627,0.79081 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 310.23731,216.41028 c 6.9597,1.44668 6.35651,-3.37569 6.23036,-3.85562 0.42028,2.9281 -1.33459,5.40848 -6.23036,3.85562 z" id="path2306" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" d="m 311.91659,217.9795 c 3.67212,-0.37532 4.7724,-1.1783 5.15758,-3.33875 -0.0448,2.50473 -2.04255,3.15529 -5.15758,3.33875 z" class="shadow" id="path2308"/> + </g> + </g> + <g style="display:inline" inkscape:label="Boob_Medium_Piercings_" id="Boob_Medium_Piercings_" inkscape:groupmode="layer"> + <g inkscape:label="Boob_Medium_Areola_Piercing" style="display:inline" id="Boob_Medium_Areola_Piercing" inkscape:groupmode="layer"> + <g id="g2527" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" d="m 318.02336,210.86274 c -5e-5,0.72098 -0.77245,1.52498 -1.52538,1.52498 -0.5209,-0.31798 -0.64486,-0.93444 -1.6847,-1.42095 0,-0.75293 0.8338,-1.69079 1.61288,-1.70123 0.75078,-0.0101 1.59725,0.84217 1.5972,1.5972 z" id="path2736" sodipodi:nodetypes="accaa" class="shadow"/> + <path inkscape:connector-curvature="0" d="m 312.43119,221.98893 c 0,0.75503 -0.84635,1.5972 -1.5972,1.5972 -0.75085,0 -1.5972,-0.84217 -1.5972,-1.5972 0,-0.75502 0.84635,-1.5972 1.5972,-1.5972 0.75085,0 1.5972,0.84218 1.5972,1.5972 z" id="path2738" sodipodi:nodetypes="aaaaa" class="shadow"/> + <path class="steel_piercing" sodipodi:nodetypes="accaa" id="path2740" d="m 317.87933,210.86274 c 0,0.68639 -0.76752,1.452 -1.452,1.452 -0.47354,-0.28907 -0.59653,-0.82878 -1.54184,-1.27106 0,-0.68448 0.79549,-1.62217 1.54184,-1.63294 0.68251,-0.01 1.452,0.76561 1.452,1.452 z" inkscape:connector-curvature="0"/> + <path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2744" d="m 312.28599,221.98893 c 0,0.68639 -0.76941,1.452 -1.452,1.452 -0.68259,0 -1.452,-0.76561 -1.452,-1.452 0,-0.68639 0.76941,-1.452 1.452,-1.452 0.68259,0 1.452,0.76561 1.452,1.452 z" inkscape:connector-curvature="0"/> + </g> + <g id="g2533" transformVariableName="_boob_right_art_transform"> + <path inkscape:connector-curvature="0" d="m 227.48194,224.84564 c 0,0.75503 -0.84635,1.5972 -1.5972,1.5972 -0.75084,0 -1.5972,-0.84217 -1.5972,-1.5972 0,-0.75503 0.84636,-1.5972 1.5972,-1.5972 0.75085,0 1.5972,0.84217 1.5972,1.5972 z" id="path2742" sodipodi:nodetypes="aaaaa" class="shadow"/> + <path inkscape:connector-curvature="0" d="m 221.3219,235.74376 c 0,0.75502 -0.84635,1.5972 -1.5972,1.5972 -0.75084,0 -1.5972,-0.84218 -1.5972,-1.5972 0,-0.75503 0.84636,-1.5972 1.5972,-1.5972 0.75085,0 1.5972,0.84217 1.5972,1.5972 z" id="path2746" sodipodi:nodetypes="aaaaa" class="shadow"/> + <path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2748" d="m 227.33674,224.84564 c 0,0.68639 -0.76941,1.452 -1.452,1.452 -0.68258,0 -1.452,-0.76561 -1.452,-1.452 0,-0.68639 0.76942,-1.452 1.452,-1.452 0.68259,0 1.452,0.76561 1.452,1.452 z" inkscape:connector-curvature="0"/> + <path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2751" d="m 221.1767,235.74376 c 0,0.68638 -0.76941,1.452 -1.452,1.452 -0.68258,0 -1.452,-0.76562 -1.452,-1.452 0,-0.68639 0.76942,-1.452 1.452,-1.452 0.68259,0 1.452,0.76561 1.452,1.452 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Areola_Piercing_Heavy" style="display:inline" inkscape:label="Boob_Medium_Areola_Piercing_Heavy"> + <g id="g2507" transformVariableName="_boob_left_art_transform"> + <path sodipodi:nodetypes="caaacaaac" id="path2757" class="shadow" d="m 318.90291,214.58803 c 0,0 -0.13465,-4.47036 1.43,-5.58749 1.85611,-1.32523 5.3301,-1.17893 6.82,0.54779 1.43464,1.66269 0.96516,4.88585 -0.44,6.57352 -1.13778,1.36653 -5.17,1.3147 -5.17,1.3147 0,0 3.53534,-0.86423 4.29,-2.30073 0.61522,-1.17109 0.47784,-2.99147 -0.44,-3.94411 -1.02892,-1.06792 -3.08003,-1.33322 -4.4,-0.65735 -1.35318,0.69288 -2.09,4.05367 -2.09,4.05367 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caaacaaac" id="path2761" class="shadow" d="m 308.90661,215.70883 c 0,0 0.13465,-4.47036 -1.43,-5.58749 -1.85611,-1.32523 -5.3301,-1.17893 -6.82,0.5478 -1.43465,1.66269 -0.96516,4.88583 0.44,6.57351 1.13778,1.36653 5.17,1.31471 5.17,1.31471 0,0 -3.53534,-0.86423 -4.29,-2.30073 -0.61522,-1.1711 -0.47784,-2.99148 0.44,-3.94411 1.02892,-1.06793 3.08003,-1.33323 4.4,-0.65736 1.35317,0.69287 2.09,4.05367 2.09,4.05367 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 319.31756,214.42348 c 0,0 -0.12241,-4.06396 1.3,-5.07954 1.68737,-1.20474 4.84554,-1.07175 6.2,0.498 1.30422,1.51154 0.87742,4.44167 -0.4,5.97592 -1.03434,1.24231 -4.7,1.19519 -4.7,1.19519 0,0 3.21394,-0.78566 3.9,-2.09158 0.55929,-1.06462 0.4344,-2.71951 -0.4,-3.58555 -0.93538,-0.97084 -2.80003,-1.21202 -4,-0.59759 -1.23016,0.62989 -1.9,3.68515 -1.9,3.68515 z" class="steel_piercing" id="path2767" sodipodi:nodetypes="caaacaaac"/> + <path inkscape:connector-curvature="0" d="m 308.49196,215.54429 c 0,0 0.12241,-4.06397 -1.3,-5.07954 -1.68737,-1.20476 -4.84554,-1.07176 -6.2,0.49799 -1.30422,1.51153 -0.87742,4.44167 0.4,5.97593 1.03434,1.24229 4.7,1.19518 4.7,1.19518 0,0 -3.21395,-0.78566 -3.9,-2.09157 -0.55929,-1.06463 -0.4344,-2.71952 0.4,-3.58556 0.93538,-0.97083 2.80003,-1.21202 4,-0.59759 1.23016,0.62988 1.9,3.68516 1.9,3.68516 z" class="steel_piercing" id="path2769" sodipodi:nodetypes="caaacaaac"/> + </g> + <g id="g2512" transformVariableName="_boob_right_art_transform"> + <path sodipodi:nodetypes="caaacaaac" id="path2764" class="shadow" d="m 224.55987,227.39942 c 0,0 0.60967,-2.2986 1.54375,-2.82952 2.13513,-1.21356 5.78847,-1.60777 7.36253,0.27741 0.71838,0.86037 0.32663,2.54545 -0.475,3.32885 -1.34,1.30951 -5.58127,0.66576 -5.58127,0.66576 0,0 3.80544,0.19579 4.63127,-1.1651 0.35502,-0.58505 0.0468,-1.55454 -0.47501,-1.99731 -1.21025,-1.02692 -3.25058,-0.85339 -4.75002,-0.33287 -0.96055,0.33344 -2.25625,2.05278 -2.25625,2.05278 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 224.98193,227.29715 c 0,0 0.55424,-2.08964 1.40341,-2.57229 1.94103,-1.10324 5.26225,-1.46161 6.69321,0.25218 0.65307,0.78216 0.29693,2.31406 -0.43182,3.02623 -1.21818,1.19048 -5.07388,0.60524 -5.07388,0.60524 0,0 3.45948,0.178 4.21024,-1.05918 0.32274,-0.53186 0.0425,-1.41322 -0.43182,-1.81573 -1.10023,-0.93357 -2.95507,-0.77582 -4.3182,-0.30262 -0.87323,0.30313 -2.05114,1.86617 -2.05114,1.86617 z" class="steel_piercing" id="path2771" sodipodi:nodetypes="caaacaaac"/> + </g> + </g> + <g inkscape:label="Boob_Medium_Piercing_Heavy" style="display:inline" id="Boob_Medium_Piercing_Heavy" inkscape:groupmode="layer"> + <g transformVariableName="_boob_left_art_transform" id="g2789"> + <path sodipodi:nodetypes="caaacccccsascccccc" id="path2777" class="shadow" d="m 308.53153,209.94473 c 0,0 -2.49411,9.18374 -0.98325,13.39981 1.04425,2.91398 3.31774,6.91285 6.40728,6.7218 3.05706,-0.18904 4.59484,-4.44702 5.47216,-7.38158 1.23461,-4.12965 -0.7356,-12.9098 -0.7356,-12.9098 0,0 0.11352,1.8255 0.16679,3.66985 -0.16929,0.006 -2.35051,-4.1e-4 -2.35051,-4.1e-4 0.0559,0.37078 -0.0172,0.52908 -0.0182,0.90408 0,0 2.10319,-0.01 2.38726,-0.0165 0.0394,2.95347 -0.12672,6.29356 -1.09131,8.44744 -0.78349,1.74932 -2.10939,3.66042 -3.89433,3.67566 -1.987,0.017 -3.50956,-2.07688 -4.40441,-4.01713 -0.94479,-2.04857 -1.13062,-5.2179 -1.1115,-8.05448 0.44876,0 0.89492,-0.0536 0.89492,-0.0536 l 0.20179,-0.91124 c 0,0 -0.63009,-0.0132 -1.08238,-0.0132 0.0399,-1.72733 0.14124,-3.46134 0.14124,-3.46134 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="path2779" class="shadow" d="m 313.96786,226.69394 c 0,0 -1.85221,9.4952 -1.92044,14.30624 -0.078,5.49738 1.72993,16.40283 1.72993,16.40283 0,0 -0.37012,-9.79442 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="path2781" class="shadow" d="m 313.71366,255.39314 c 0,0 -1.08607,3.59047 -0.98853,5.42648 0.0928,1.74745 1.48279,5.03598 1.48279,5.03598 0,0 1.05088,-3.32642 0.98853,-5.03598 -0.0683,-1.87389 -1.48279,-5.42648 -1.48279,-5.42648 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 308.97852,210.85194 c 0,0 -2.26737,8.34885 -0.89386,12.18164 0.94932,2.64907 3.01613,6.28441 5.8248,6.11072 2.77915,-0.17186 4.17713,-4.04274 4.97469,-6.71053 1.12237,-3.75422 -0.66873,-11.73618 -0.66873,-11.73618 0,0 0.1032,1.19752 0.15163,2.87419 -0.1539,0.005 -1.857,-3.7e-4 -1.857,-3.7e-4 -0.01,0.4056 -0.009,0.4963 -0.0851,0.81799 0,0 1.70069,-0.005 1.95894,-0.0111 0.0358,2.68498 -0.1152,6.18346 -0.9921,8.14152 -0.71227,1.59029 -1.91762,3.32765 -3.5403,3.34151 -1.80636,0.0154 -3.19051,-1.88807 -4.00401,-3.65193 -0.8589,-1.86234 -1.02784,-5.20558 -1.01046,-7.78429 0.40797,0 0.46484,-0.0487 0.46484,-0.0487 l 0.16073,-0.8284 c 0,0 -0.20131,-0.012 -0.61253,-0.012 0.0363,-1.5703 0.1284,-2.68465 0.1284,-2.68465 z" class="steel_piercing" id="path2783" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 313.92164,228.08981 c 0,0 -1.68382,8.632 -1.74585,13.00567 -0.0709,4.99762 1.57266,14.91166 1.57266,14.91166 0,0 -0.33647,-8.90402 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" class="steel_piercing" id="path2785" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 313.73597,255.8687 c 0,0 -0.98734,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57815 1.34799,4.57815 0,0 0.95535,-3.02401 0.89867,-4.57815 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z" class="steel_piercing" id="path2787" sodipodi:nodetypes="cacac"/> + </g> + <g transformVariableName="_boob_right_art_transform" id="g2803"> + <path sodipodi:nodetypes="caaacccccsascccccc" id="path2791" class="shadow" d="m 224.22146,224.11765 c 0,0 1.84875,9.08379 0.67687,13.39983 -0.70222,2.58629 -1.73488,6.86756 -4.41084,6.72179 -2.75834,-0.15025 -3.17412,-4.68356 -3.76709,-7.3816 -0.92442,-4.20618 0.5064,-12.90978 0.5064,-12.90978 0,0 -0.0782,1.73915 -0.11483,3.58349 0.11654,0.006 1.05275,-4.1e-4 1.05275,-4.1e-4 l -0.54866,0.90407 c 0,0 -0.32127,-0.01 -0.51683,-0.0165 -0.0271,2.95346 0.0873,6.37993 0.75126,8.5338 0.53937,1.74933 1.16447,3.66322 2.68091,3.67564 1.67758,0.0137 2.41602,-2.07685 3.03204,-4.01709 0.65041,-2.04858 0.77834,-5.30427 0.76517,-8.14084 -0.30893,0 -1.87642,-0.0536 -1.87642,-0.0536 0.0596,-0.36182 0.0683,-0.46339 0.2179,-0.91125 0,0 1.33728,-0.0132 1.64865,-0.0132 -0.0275,-1.72732 -0.0972,-3.37499 -0.0972,-3.37499 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="path2793" class="shadow" d="m 220.8683,241.74486 c 0,0 -1.85221,9.4952 -1.92044,14.30623 -0.078,5.49739 1.72993,16.40284 1.72993,16.40284 0,0 -0.37012,-9.79444 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="path2795" class="shadow" d="m 220.6141,270.44405 c 0,0 -1.08607,3.59049 -0.98853,5.4265 0.0928,1.74744 1.48279,5.03595 1.48279,5.03595 0,0 1.05088,-3.3264 0.98853,-5.03595 -0.0683,-1.8739 -1.48279,-5.4265 -1.48279,-5.4265 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 223.91434,225.02477 c 0,0 1.68069,8.258 0.61534,12.18167 -0.63838,2.35118 -1.57717,6.24324 -4.00986,6.11072 -2.50758,-0.13659 -2.88557,-4.25779 -3.42463,-6.71055 -0.84038,-3.8238 0.46036,-11.73616 0.46036,-11.73616 0,0 -0.071,1.19752 -0.10438,2.87419 0.10594,0.005 0.62785,-3.7e-4 0.62785,-3.7e-4 l -0.33933,0.82187 c 0,0 -0.12233,-0.009 -0.30011,-0.015 -0.0247,2.68496 0.0793,6.18345 0.68297,8.14152 0.49034,1.5903 1.05861,3.33021 2.43719,3.3415 1.52508,0.0125 2.19638,-1.88805 2.7564,-3.65191 0.59128,-1.86235 0.70758,-5.20558 0.69561,-7.78429 -0.28085,0 -1.70584,-0.0487 -1.70584,-0.0487 0.0541,-0.32893 0.16478,-0.53596 0.16187,-0.82841 0,0 1.25193,-0.012 1.535,-0.012 -0.025,-1.57029 -0.0884,-2.68465 -0.0884,-2.68465 z" class="steel_piercing" id="path2797" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 220.82208,243.14073 c 0,0 -1.68382,8.632 -1.74585,13.00566 -0.0709,4.99762 1.57266,14.91167 1.57266,14.91167 0,0 -0.33647,-8.90403 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" class="steel_piercing" id="path2799" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 220.63641,270.91962 c 0,0 -0.98735,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57813 1.34799,4.57813 0,0 0.95535,-3.02399 0.89867,-4.57813 -0.0621,-1.70354 -1.34799,-4.93318 -1.34799,-4.93318 z" class="steel_piercing" id="path2801" sodipodi:nodetypes="cacac"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Piercing" style="display:inline" inkscape:label="Boob_Medium_Piercing"> + <g style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" transform="matrix(1.0081159,0,0,1.0081159,-2.6203467,-1.6676415)" id="g2807"/> + <g transformVariableName="_boob_left_art_transform" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" id="g2817"> + <path inkscape:connector-curvature="0" d="m 319.36283,214.04054 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z" id="path2809" sodipodi:nodetypes="aaaaa" class="shadow"/> + <path inkscape:connector-curvature="0" d="m 309.64776,215.76331 c -0.75293,0 -1.63873,-0.84886 -1.5972,-1.5972 0.0463,-0.83366 1.21255,-1.57531 1.96548,-1.57531 -0.68775,1.21129 -0.7805,1.82947 -0.3682,3.17251 z" id="path2811" sodipodi:nodetypes="saccs" class="shadow"/> + <path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2813" d="m 319.21763,214.04054 c 0,0.68133 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77067 -1.452,-1.452 0,-0.68134 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77066 1.452,1.452 z" inkscape:connector-curvature="0"/> + <path class="steel_piercing" sodipodi:nodetypes="saccs" id="path2815" d="m 309.64664,215.61811 c -0.68448,0 -1.48776,-0.77158 -1.452,-1.452 0.0401,-0.76308 1.10584,-1.452 1.79032,-1.452 -0.71906,1.10285 -0.73484,1.67672 -0.33828,2.904 z" inkscape:connector-curvature="0"/> + </g> + <g transformVariableName="_boob_right_art_transform" id="g2827" style="display:inline"> + <path transform="matrix(1,0,0,1.0092899,0,-2.0984812)" class="shadow" sodipodi:nodetypes="aaaaa" id="path2819" d="m 224.20461,228.08348 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path transform="matrix(1,0,0,1.0092899,0,-2.0984812)" class="shadow" sodipodi:nodetypes="cscc" id="path2821" d="m 217.78699,229.56335 c -0.34466,-0.31248 -0.8444,-0.64473 -0.8444,-1.05102 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -0.83246,1.20611 -0.7528,2.64822 z" inkscape:connector-curvature="0"/> + <path transform="matrix(1,0,0,1.0092899,0,-2.0984812)" inkscape:connector-curvature="0" d="m 224.05941,228.08348 c 0,0.68133 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77067 -1.452,-1.452 0,-0.68134 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77066 1.452,1.452 z" id="path2823" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path transform="matrix(1,0,0,1.0092899,0,-2.0984812)" inkscape:connector-curvature="0" d="m 217.78247,229.49646 c -0.31333,-0.28407 -0.76728,-0.63503 -0.76728,-1.00438 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.5497,0.90956 -0.83533,1.21423 -0.68472,2.45638 z" id="path2825" sodipodi:nodetypes="cscc" class="steel_piercing"/> + </g> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Medium_Highlights" inkscape:label="Boob_Medium_Highlights" style="display:inline"> + <g inkscape:groupmode="layer" id="Boob_Medium_Highlights2" inkscape:label="Boob_Medium_Highlights2" style="display:inline"> + <g id="g3014" transformVariableName="_boob_left_art_transform"> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9" class="highlight2" d="m 321.76732,202.98942 c -2.24758,1.20251 -7.44827,3.88396 -5.38213,7.57381 4.23715,-0.071 5.92957,-5.70386 5.38213,-7.57381 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7" class="highlight2" d="m 312.09439,222.06039 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4" class="highlight2" d="m 312.37099,218.66381 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-70" class="highlight2" d="m 323.62317,200.44685 c -0.70321,0.2097 -1.91059,0.15541 -1.19026,1.55076 2.16327,-0.20337 1.45089,-1.07074 1.19026,-1.55076 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2" class="highlight2" d="m 314.01066,214.12617 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2-1" class="highlight2" d="m 313.88423,211.37159 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" inkscape:connector-curvature="0"/> + </g> + <g id="g3024" transformVariableName="_boob_right_art_transform"> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7" class="highlight2" d="m 247.9062,221.14042 c -7.62159,-1.9871 -15.09403,5.90489 -17.77314,7.66238 4.07679,1.14519 17.22608,2.90775 17.77314,-7.66238 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5" class="highlight2" d="m 255.78198,212.79897 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9" class="highlight2" d="m 229.41707,228.57127 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-6" class="highlight2" d="m 219.51702,235.37627 c -0.0284,5.33194 2.23939,13.97727 3.65131,15.5372 0.17258,-0.32513 -3.39485,-14.58806 -3.65131,-15.5372 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-4" class="highlight2" d="m 219.52806,232.80599 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3" class="highlight2" d="m 219.83124,227.63948 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3-9" class="highlight2" d="m 219.85898,225.8855 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g style="display:inline" inkscape:label="Boob_Medium_Highlights1" id="Boob_Medium_Highlights1" inkscape:groupmode="layer"> + <g id="g2210" transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" d="m 319.27783,205.85656 c -2.25111,1.2044 -2.83496,3.23381 -2.89058,4.67945 1.40005,-0.6336 3.43888,-2.80656 2.89058,-4.67945 z" class="highlight1" id="path1139" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 312.08094,222.06065 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" class="highlight1" id="path1141" sodipodi:nodetypes="ccc"/> + </g> + <g id="g2992" transformVariableName="_boob_right_art_transform"> + <path transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)" inkscape:connector-curvature="0" d="m 241.75459,224.35338 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" class="highlight1" id="path1143" sodipodi:nodetypes="ccc"/> + </g> + </g> + </g> + </g> + <g style="display:inline" inkscape:label="Boob_Small_" id="Boob_Small_" inkscape:groupmode="layer"> + <g inkscape:groupmode="layer" id="Boob_Small" style="display:inline;opacity:1" inkscape:label="Boob_Small"> + <g id="g2754" transformVariableName="_boob_right_art_transform"> + <path sodipodi:nodetypes="ccccccc" id="path2750" class="shadow" d="m 258.4635,206.70525 c -2.43693,2.43693 -11.69974,10.96496 -13.78161,16.78224 -7.98808,4.18336 -12.04016,9.22946 -16.46667,14.18272 0.43705,8.71501 1.70553,16.51029 9.57142,22.68835 5.76096,5.49343 12.38835,5.57452 18.88215,1.82583 5.22936,-5.97715 7.46563,-9.46914 13.85527,-23.053 -9.9785,-11.21563 7.18836,-22.98696 -12.06056,-32.42614 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 258.4635,206.70525 c -2.51112,2.51112 -10.78183,11.16972 -13.78161,16.78224 -7.11937,4.34266 -11.56357,9.31685 -16.46667,14.18272 0.77061,8.54923 2.31908,16.20536 9.57142,22.68835 6.25108,4.85755 12.67805,5.19866 18.88215,1.82583 6.92903,-4.62954 11.03703,-12.07965 15.29277,-23.053 -0.9345,-14.31756 6.59712,-27.64388 -13.49806,-32.42614 z" class="skin boob" id="path2752" sodipodi:nodetypes="ccccccc"/> + </g> + <g id="g2762" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" d="m 343.18566,248.84738 c 6.61502,-9.96293 1.24605,-23.02347 -3.51192,-32.52403 -4.32357,-4.32357 -19.56457,-7.69007 -30.17045,-7.95661 -8.8142,9.37784 -15.40168,21.99318 -18.70132,35.53493 4.9837,22.57548 41.64172,26.17839 52.38369,4.94571 z" class="shadow" id="path2756" sodipodi:nodetypes="ccccc"/> + <path sodipodi:nodetypes="ccccc" id="path2760" class="skin boob" d="m 343.18566,248.84738 c 5.82359,-10.10683 3.21095,-23.94463 -2.82442,-32.52403 -2.73692,-4.74049 -22.03284,-11.71831 -31.42045,-7.95661 -9.28671,7.38783 -19.83364,21.69713 -18.13882,35.53493 4.7283,22.21233 41.44215,25.37653 52.38369,4.94571 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_Small_Areolae_Normal" style="display:inline;opacity:1" id="Boob_Small_Areolae_Normal" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2430"> + <path sodipodi:nodetypes="czczsc" inkscape:connector-curvature="0" d="m 235.30274,231.17264 c 0,0 0.24231,2.57487 -0.69623,5.44459 -0.93851,2.86971 -5.64569,7.20295 -5.64569,7.20295 0,0 -1.26707,-4.99893 -0.96376,-6.1901 0.30329,-1.19118 0.50662,-1.84681 1.74593,-3.20091 1.5586,-1.70299 5.55975,-3.25653 5.55975,-3.25653 z" class="areola" id="path2428"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2434"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 316.0933,235.60905 c -3.40637,-0.37574 -6.84874,-2.88621 -6.8649,-5.13633 -0.0207,-2.87162 4.32444,-5.86871 8.14144,-5.70169 3.58937,0.15706 7.3351,2.49811 6.5993,5.97861 -0.7358,3.4805 -3.80292,5.30866 -7.87584,4.85941 z" id="path2432" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Small_Areolae_Large" style="display:inline;opacity:1" inkscape:label="Boob_Small_Areolae_Large"> + <g id="g2440" transformVariableName="_boob_right_art_transform"> + <path id="path2438" class="areola" d="m 237.2031,229.73085 c 0,0 0.30094,3.19792 -0.8647,6.76203 -1.16561,3.5641 -7.01179,8.94586 -7.01179,8.94586 0,0 -1.57367,-6.20853 -1.19696,-7.68793 0.37668,-1.47941 0.62921,-2.29369 2.16839,-3.97544 1.93574,-2.11507 6.90506,-4.04452 6.90506,-4.04452 z" inkscape:connector-curvature="0" sodipodi:nodetypes="czczsc"/> + </g> + <g id="g2444" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="path2442" d="m 315.47577,238.97656 c -4.61957,-0.50956 -9.28796,-3.91415 -9.30987,-6.96566 -0.028,-3.89437 5.86461,-7.95889 11.04106,-7.73238 4.86774,0.213 9.94754,3.38782 8.94968,8.10792 -0.99786,4.72011 -5.15735,7.19938 -10.68087,6.59012 z" class="areola" sodipodi:nodetypes="sssss"/> + </g> + </g> + <g inkscape:label="Boob_Small_Areolae_Wide" style="display:inline;opacity:1" id="Boob_Small_Areolae_Wide" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2450"> + <path sodipodi:nodetypes="caczsc" inkscape:connector-curvature="0" d="m 239.36986,227.39833 c 0,0 0.71277,8.23923 -0.67494,11.99618 -1.54558,4.18436 -8.11406,10.64147 -8.11406,10.64147 0,0 -3.24031,-8.7013 -2.48264,-11.5808 0.75767,-2.8795 0.64608,-3.04882 2.92925,-5.54348 2.87142,-3.13742 8.34239,-5.51337 8.34239,-5.51337 z" class="areola" id="path2448"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2454"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 315.07013,243.9018 c -6.9072,-0.76189 -13.8874,-5.85245 -13.92016,-10.41508 -0.0419,-5.82288 8.76879,-11.90016 16.50864,-11.56148 7.27826,0.31847 14.8736,5.06548 13.3816,12.12299 -1.49201,7.05753 -7.71129,10.76454 -15.97008,9.85357 z" id="path2452" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Small_Areolae_Huge" style="display:inline;opacity:1" inkscape:label="Boob_Small_Areolae_Huge"> + <g id="g2460" transformVariableName="_boob_right_art_transform"> + <path id="path2458" class="areola" d="m 243.17821,224.74093 c 0,0 2.45622,9.86999 1.16254,14.56572 -1.70998,6.20677 -11.17982,15.74941 -11.17982,15.74941 0,0 -5.05432,-6.17604 -5.24261,-14.13117 -0.18828,-7.95513 0.0149,-2.81221 2.42761,-6.83709 3.03435,-5.06192 12.83228,-9.34687 12.83228,-9.34687 z" inkscape:connector-curvature="0" sodipodi:nodetypes="caczsc"/> + </g> + <g id="g2464" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="path2462" d="m 315.06318,249.00368 c -8.66357,-0.95563 -17.41869,-7.34062 -17.45978,-13.06343 -0.0525,-7.30353 10.99852,-14.92615 20.70646,-14.50135 9.12899,0.39946 18.65567,6.35353 16.78428,15.20563 -1.87139,8.85212 -9.67212,13.50176 -20.03096,12.35915 z" class="areola" sodipodi:nodetypes="sssss"/> + </g> + </g> + <g inkscape:label="Boob_Small_Areolae_Star" style="display:inline;opacity:1" id="Boob_Small_Areolae_Star" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2470"> + <path sodipodi:nodetypes="cccccccssc" inkscape:connector-curvature="0" d="m 240.29933,227.09802 c -5.18428,3.30051 -7.99474,6.86395 -7.99474,6.86395 0,0 5.67867,-0.38365 11.0749,1.50681 -6.37633,0.70776 -10.4201,3.2349 -10.4201,3.2349 0,0 0.13997,6.94247 1.84947,12.07033 -2.42771,-2.29651 -5.33947,-9.68006 -5.33947,-9.68006 0,0 -0.3282,3.79742 1.03998,8.23505 -1.98466,-2.89505 -2.17172,-7.40591 -2.3519,-9.33994 -0.17874,-1.91868 0.16998,-2.80786 2.53329,-5.94212 3.16348,-4.19549 9.60857,-6.94892 9.60857,-6.94892 z" class="areola" id="path2468"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2474"> + <path sodipodi:nodetypes="ccccccccccc" class="areola" d="m 314.46943,234.27224 c -3.76567,1.79157 -6.84161,5.28921 -10.10232,7.39152 1.44885,-3.26388 2.80438,-7.85021 4.89355,-10.83394 -2.31674,-1.93975 -5.18388,-2.96451 -8.37065,-3.68536 3.56307,-1.07962 7.79205,-1.81135 11.55083,-1.25273 1.41528,-1.99803 2.88366,-2.69755 5.19852,-4.40935 0.47133,1.75669 1.08677,2.27498 2.38302,4.27914 4.40924,-0.57094 8.75671,0.34013 13.32809,1.37553 -4.74363,0.78623 -8.39968,1.78672 -11.63843,3.96162 1.36056,2.93262 2.11025,7.4758 2.95271,10.6874 -2.99455,-2.42622 -6.28672,-5.87702 -10.19532,-7.51383 z" id="path2472" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_Small_Areolae_Heart" style="display:inline;opacity:1" id="Boob_Small_Areolae_Heart" inkscape:groupmode="layer"> + <g transformVariableName="_boob_right_art_transform" id="g2480"> + <path sodipodi:nodetypes="czcac" inkscape:connector-curvature="0" d="m 231.56989,252.42514 c -1.22195,-2.10852 -4.20293,-10.7371 -3.39892,-14.26628 0.80401,-3.52918 1.44795,-3.28007 4.67241,-5.19203 1.07003,-1.07003 5.21528,-2.42178 6.54597,-0.67782 4.36779,5.72431 -3.67752,10.857 -7.81946,20.13613 z" class="areola" id="path2478"/> + </g> + <g transformVariableName="_boob_left_art_transform" id="g2484"> + <path sodipodi:nodetypes="czczcc" class="areola" d="m 313.44442,246.20895 c -4.20528,-2.9951 -12.71977,-16.79856 -6.01226,-22.33579 6.70751,-5.53723 9.65531,-0.0103 9.65531,-0.0103 0,0 5.61579,-5.19127 10.77973,1.06406 5.16394,6.25533 -9.37618,18.97767 -14.42277,21.28185 z" id="path2482" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Small_Nipples" style="display:inline;opacity:1" inkscape:label="Boob_Small_Nipples"> + <g id="g2261" transformVariableName="_boob_right_art_transform"> + <path id="path2251" class="shadow" d="m 228.15788,238.27703 c 0,0 -1.69507,-0.53274 -1.71244,-1.85211 0.0822,-1.64738 1.97278,-3.7797 3.37857,-3.08983 0.61419,0.34349 1.0323,0.99576 1.0323,0.99576 -0.0631,2.02891 -0.89639,3.0666 -2.69843,3.94618 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" d="m 228.15788,238.27703 c 0,0 -1.71287,-0.63317 -1.71244,-1.85211 0.0582,-1.50008 2.07725,-3.77384 3.37857,-3.08983 0.53396,0.31477 1.0323,0.99576 1.0323,0.99576 -0.0695,1.89392 -0.94491,3.08122 -2.69843,3.94618 z" class="areola" id="path2253"/> + <path id="path2255" class="shadow" d="m 226.82891,235.33246 c 0.4671,-0.43506 0.95746,-0.39751 2.03265,-0.2697 -0.95835,0.0287 -1.3927,-0.20327 -2.03265,0.2697 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + <path id="path2257" class="shadow" d="m 227.54865,235.02726 c -0.0294,-0.24033 0.0356,-0.69542 0.57576,-0.79154 -0.60268,0.23726 -0.50582,0.5033 -0.57576,0.79154 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + <path id="path2259" class="shadow" d="m 229.12691,238.41526 c 1.38286,-0.93932 2.12052,-2.43098 1.67838,-3.53558 0.24777,0.68434 0.5439,2.16936 -1.67838,3.53558 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + </g> + <g id="g2277" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" id="path2265" d="m 313.17342,229.48817 c -0.54304,-0.69859 -0.45339,-1.79081 -0.30362,-2.30073 0.3611,-1.37094 1.95228,-2.06832 3.33841,-2.049 1.21548,0.0169 1.90412,0.19475 2.44948,1.27776 0.59205,0.46086 0.63124,1.24817 0.60041,1.28371 -0.16171,1.13935 -0.91614,2.77485 -3.12982,2.68352 -1.77607,0.0895 -2.38275,-0.0237 -2.95486,-0.89526 z" class="shadow" sodipodi:nodetypes="ccscccc"/> + <path sodipodi:nodetypes="csscccc" class="areola" d="m 313.17342,229.48817 c -0.37088,-0.71581 -0.44918,-1.79919 -0.30362,-2.30073 0.38087,-1.31237 2.09965,-2.03413 3.33841,-2.049 1.22123,-0.0146 1.91113,0.36309 2.44948,1.27776 0.49616,0.54803 0.61883,1.25946 0.60041,1.28371 -0.2124,1.06614 -0.96439,2.70517 -3.12982,2.68352 -1.67427,0.002 -2.33494,-0.0646 -2.95486,-0.89526 z" id="path2267" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path2269" d="m 313.95456,226.60231 c 1.19002,-0.4627 2.32428,0.16299 3.06225,0.78272 -0.88614,-0.43236 -2.01938,-1.0249 -3.06225,-0.78272 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 315.32933,226.59452 c 0.67881,-0.5905 1.08777,-0.74769 2.10609,-0.65154 -0.95211,0.0335 -1.38478,0.20735 -2.10609,0.65154 z" id="path2271" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path2273" d="m 313.52477,229.56238 c 5.73405,1.19191 5.23709,-2.78121 5.13315,-3.17662 0.34627,2.41244 -1.09956,4.45601 -5.13315,3.17662 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path id="path2275" class="shadow" d="m 314.90832,230.85525 c 3.02543,-0.30922 3.93195,-0.97079 4.24929,-2.75077 -0.0369,2.06363 -1.68284,2.59962 -4.24929,2.75077 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Small_Piercings_" inkscape:label="Boob_Small_Piercings_" style="display:inline"> + <g inkscape:groupmode="layer" id="Boob_Small_Areola_Piercing" style="display:inline" inkscape:label="Boob_Small_Areola_Piercing"> + <g id="g2489" transformVariableName="_boob_left_art_transform"> + <path class="shadow" sodipodi:nodetypes="accaa" id="path5169" d="m 320.43194,225.09759 c -5e-5,0.717 -0.77245,1.51654 -1.52538,1.51654 -0.5209,-0.31622 -0.64486,-0.92927 -1.6847,-1.41308 0,-0.74876 0.8338,-1.68143 1.61288,-1.69181 0.75078,-0.0101 1.59725,0.83751 1.5972,1.58835 z" inkscape:connector-curvature="0"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5171" d="m 315.94907,234.83564 c 0,0.75084 -0.84635,1.58836 -1.5972,1.58836 -0.75085,0 -1.5972,-0.83752 -1.5972,-1.58836 0,-0.75085 0.84635,-1.58835 1.5972,-1.58835 0.75085,0 1.5972,0.8375 1.5972,1.58835 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 320.28791,225.09759 c 0,0.68259 -0.76752,1.44396 -1.452,1.44396 -0.47354,-0.28747 -0.59653,-0.82419 -1.54184,-1.26402 0,-0.68069 0.79549,-1.61319 1.54184,-1.6239 0.68252,-0.01 1.452,0.76138 1.452,1.44396 z" id="path2749-8-39" sodipodi:nodetypes="accaa" class="steel_piercing"/> + <path inkscape:connector-curvature="0" d="m 315.80387,234.83564 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68259 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76137 1.452,1.44396 z" id="path2749-8-42" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + </g> + <g id="g2495" transformVariableName="_boob_right_art_transform"> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5173" d="m 236.01142,231.24698 c 0,0.75084 -0.84635,1.58835 -1.5972,1.58835 -0.75085,0 -1.5972,-0.83751 -1.5972,-1.58835 0,-0.75085 0.84635,-1.58836 1.5972,-1.58836 0.75085,0 1.5972,0.83751 1.5972,1.58836 z" inkscape:connector-curvature="0"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5175" d="m 229.91767,242.70346 c 0,0.75085 -0.84635,1.58835 -1.5972,1.58835 -0.75085,0 -1.5972,-0.8375 -1.5972,-1.58835 0,-0.75084 0.84635,-1.58836 1.5972,-1.58836 0.75085,0 1.5972,0.83752 1.5972,1.58836 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 235.86622,231.24698 c 0,0.68258 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76138 -1.452,-1.44396 0,-0.68259 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76137 1.452,1.44396 z" id="path2749-8-40" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path inkscape:connector-curvature="0" d="m 229.77247,242.70346 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68258 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76138 1.452,1.44396 z" id="path2749-8-2" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + </g> + </g> + <g inkscape:label="Boob_Small_Areola_Piercing_Heavy" style="display:inline" id="Boob_Small_Areola_Piercing_Heavy" inkscape:groupmode="layer"> + <g id="g2471" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" d="m 321.68714,227.27176 c 0,0 -0.13465,-4.47036 1.43,-5.58749 1.85611,-1.32523 5.3301,-1.17893 6.82,0.54779 1.43465,1.66269 0.96516,4.88585 -0.44,6.57352 -1.13778,1.36653 -5.17,1.3147 -5.17,1.3147 0,0 3.53534,-0.86422 4.29,-2.30073 0.61522,-1.17109 0.47784,-2.99147 -0.44,-3.94411 -1.02892,-1.06792 -3.08003,-1.33322 -4.4,-0.65735 -1.35317,0.69288 -2.09,4.05367 -2.09,4.05367 z" class="shadow" id="path5163" sodipodi:nodetypes="caaacaaac"/> + <path inkscape:connector-curvature="0" d="m 311.95601,227.50867 c 0,0 0.13465,-4.47036 -1.43,-5.58748 -1.85611,-1.32524 -5.3301,-1.17894 -6.82,0.54779 -1.43465,1.66269 -0.96517,4.88583 0.44,6.57352 1.13778,1.36652 5.17,1.3147 5.17,1.3147 0,0 -3.53534,-0.86423 -4.29,-2.30073 -0.61522,-1.17109 -0.47784,-2.99147 0.44,-3.94411 1.02891,-1.06792 3.08003,-1.33322 4.4,-0.65735 1.35317,0.69286 2.09,4.05366 2.09,4.05366 z" class="shadow" id="path5165" sodipodi:nodetypes="caaacaaac"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4" class="steel_piercing" d="m 322.10179,227.10721 c 0,0 -0.12241,-4.06396 1.3,-5.07953 1.68737,-1.20475 4.84554,-1.07176 6.2,0.49799 1.30422,1.51154 0.87742,4.44168 -0.4,5.97592 -1.03434,1.2423 -4.7,1.19519 -4.7,1.19519 0,0 3.21395,-0.78566 3.9,-2.09157 0.55929,-1.06462 0.4344,-2.71952 -0.4,-3.58556 -0.93538,-0.97084 -2.80003,-1.21202 -4,-0.59759 -1.23016,0.62989 -1.9,3.68515 -1.9,3.68515 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-7" class="steel_piercing" d="m 311.54136,227.34413 c 0,0 0.12241,-4.06397 -1.3,-5.07954 -1.68737,-1.20475 -4.84554,-1.07175 -6.2,0.498 -1.30422,1.51154 -0.87742,4.44167 0.4,5.97592 1.03434,1.2423 4.7,1.19519 4.7,1.19519 0,0 -3.21395,-0.78567 -3.9,-2.09158 -0.5593,-1.06463 -0.4344,-2.71951 0.4,-3.58555 0.93538,-0.97084 2.80003,-1.21202 4,-0.5976 1.23016,0.62989 1.9,3.68516 1.9,3.68516 z" inkscape:connector-curvature="0"/> + </g> + <g id="g2475" transformVariableName="_boob_right_art_transform"> + <path inkscape:connector-curvature="0" d="m 232.11707,235.48695 c 0,0 0.60967,-2.2986 1.54375,-2.82951 2.13513,-1.21356 5.78847,-1.60777 7.36253,0.2774 0.71838,0.86038 0.32663,2.54546 -0.475,3.32885 -1.34,1.30952 -5.58127,0.66577 -5.58127,0.66577 0,0 3.80544,0.19579 4.63127,-1.1651 0.35502,-0.58505 0.0468,-1.55454 -0.47501,-1.99731 -1.21025,-1.02692 -3.25057,-0.85339 -4.75002,-0.33288 -0.96055,0.33345 -2.25625,2.05278 -2.25625,2.05278 z" class="shadow" id="path5167" sodipodi:nodetypes="caaacaaac"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-3" class="steel_piercing" d="m 232.53913,235.38469 c 0,0 0.55425,-2.08965 1.40341,-2.57229 1.94103,-1.10324 5.26225,-1.46161 6.69321,0.25218 0.65308,0.78216 0.29694,2.31406 -0.43182,3.02623 -1.21818,1.19046 -5.07388,0.60524 -5.07388,0.60524 0,0 3.45949,0.17799 4.21024,-1.05918 0.32275,-0.53186 0.0425,-1.41322 -0.43182,-1.81574 -1.10022,-0.93356 -2.95507,-0.77581 -4.3182,-0.30262 -0.87323,0.30314 -2.05114,1.86618 -2.05114,1.86618 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Small_Piercing_Heavy" style="display:inline" inkscape:label="Boob_Small_Piercing_Heavy"> + <g id="g3131" transformVariableName="_boob_left_art_transform"> + <path inkscape:connector-curvature="0" d="m 310.74124,223.29137 c 0,0 -2.49411,9.18373 -0.98325,13.39981 1.04424,2.91398 3.31774,6.91285 6.40728,6.7218 3.05706,-0.18905 4.59483,-4.44702 5.47216,-7.38158 1.2346,-4.12965 -0.7356,-12.9098 -0.7356,-12.9098 0,0 0.11352,1.8255 0.16679,3.66985 -0.16929,0.006 -2.35051,-4.1e-4 -2.35051,-4.1e-4 0.0559,0.37078 -0.0172,0.52908 -0.0182,0.90408 0,0 2.10319,-0.01 2.38726,-0.0165 0.0394,2.95347 -0.12672,6.29356 -1.09131,8.44744 -0.78349,1.74932 -2.10939,3.66042 -3.89433,3.67566 -1.987,0.017 -3.50956,-2.07688 -4.40441,-4.01713 -0.94479,-2.04857 -1.13062,-5.2179 -1.1115,-8.05448 0.44876,0 2.16836,-0.0536 2.16836,-0.0536 l 0.0221,-0.91124 c 0,0 -1.72384,-0.0132 -2.17613,-0.0132 0.0399,-1.72733 0.14124,-3.46134 0.14124,-3.46134 z" class="shadow" id="path5090" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 316.17757,240.04058 c 0,0 -1.85221,9.4952 -1.92044,14.30624 -0.078,5.49738 1.72993,16.40283 1.72993,16.40283 0,0 -0.37012,-9.79442 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path5094" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 315.92337,268.73978 c 0,0 -1.08608,3.59047 -0.98853,5.42648 0.0928,1.74745 1.48279,5.03598 1.48279,5.03598 0,0 1.05088,-3.32642 0.98853,-5.03598 -0.0684,-1.8739 -1.48279,-5.42648 -1.48279,-5.42648 z" class="shadow" id="path5096" sodipodi:nodetypes="cacac"/> + <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-2" class="steel_piercing" d="m 311.18823,224.19858 c 0,0 -2.26737,8.34885 -0.89386,12.18164 0.94931,2.64907 3.01613,6.2844 5.8248,6.11072 2.77914,-0.17186 4.17712,-4.04275 4.97469,-6.71053 1.12237,-3.75423 -0.66873,-11.73618 -0.66873,-11.73618 0,0 0.1032,1.19752 0.15163,2.87419 -0.1539,0.005 -1.857,-3.7e-4 -1.857,-3.7e-4 -0.01,0.4056 -0.009,0.4963 -0.0851,0.81799 0,0 1.70069,-0.005 1.95894,-0.0111 0.0358,2.68498 -0.1152,6.18346 -0.9921,8.14152 -0.71227,1.59029 -1.91763,3.32765 -3.5403,3.34151 -1.80637,0.0154 -3.19051,-1.88807 -4.00401,-3.65193 -0.8589,-1.86234 -1.02784,-5.20558 -1.01046,-7.78429 0.40797,0 1.73828,-0.0487 1.73828,-0.0487 l 0.16073,-0.8284 c 0,0 -1.47475,-0.012 -1.88597,-0.012 0.0363,-1.5703 0.1284,-2.68465 0.1284,-2.68465 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-8" class="steel_piercing" d="m 316.13135,241.43645 c 0,0 -1.68382,8.632 -1.74585,13.00567 -0.0709,4.99762 1.57266,14.91166 1.57266,14.91166 0,0 -0.33647,-8.90402 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-8" class="steel_piercing" d="m 315.94568,269.21534 c 0,0 -0.98735,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57815 1.34799,4.57815 0,0 0.95535,-3.02401 0.89867,-4.57815 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z" inkscape:connector-curvature="0"/> + </g> + <g id="g3139" transformVariableName="_boob_right_art_transform"> + <path inkscape:connector-curvature="0" d="m 232.41948,231.80744 c 0,0 1.84875,9.08379 0.67687,13.39983 -0.70222,2.58629 -1.73488,6.86756 -4.41084,6.72179 -2.75834,-0.15026 -3.17412,-4.68357 -3.76709,-7.3816 -0.92442,-4.20618 0.5064,-12.90978 0.5064,-12.90978 0,0 -0.0782,1.73915 -0.11483,3.58349 0.11654,0.006 1.459,-4.1e-4 1.459,-4.1e-4 l -0.43147,0.90407 c 0,0 -0.84471,-0.01 -1.04027,-0.0165 -0.0271,2.95346 0.0873,6.37993 0.75126,8.5338 0.53937,1.74933 1.16447,3.66321 2.68091,3.67564 1.67758,0.0138 2.41602,-2.07685 3.03204,-4.01709 0.65041,-2.04858 0.77834,-5.30427 0.76517,-8.14084 -0.30893,0 -1.87642,-0.0536 -1.87642,-0.0536 0.0596,-0.36182 0.0683,-0.46339 0.2179,-0.91125 0,0 1.33728,-0.0132 1.64865,-0.0132 -0.0275,-1.72732 -0.0972,-3.37499 -0.0972,-3.37499 z" class="shadow" id="path5092" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 229.06632,249.43465 c 0,0 -1.8522,9.4952 -1.92044,14.30623 -0.078,5.49738 1.72993,16.40284 1.72993,16.40284 0,0 -0.37012,-9.79444 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path5098" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 228.81212,278.13384 c 0,0 -1.08607,3.59049 -0.98853,5.4265 0.0928,1.74744 1.48279,5.03595 1.48279,5.03595 0,0 1.05088,-3.3264 0.98853,-5.03595 -0.0683,-1.8739 -1.48279,-5.4265 -1.48279,-5.4265 z" class="shadow" id="path5100" sodipodi:nodetypes="cacac"/> + <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0-8" class="steel_piercing" d="m 232.11236,232.71456 c 0,0 1.68068,8.25799 0.61534,12.18167 -0.63839,2.35117 -1.57717,6.24324 -4.00986,6.11072 -2.50758,-0.1366 -2.88557,-4.25779 -3.42463,-6.71055 -0.84038,-3.8238 0.46036,-11.73616 0.46036,-11.73616 0,0 -0.071,1.19752 -0.10438,2.87419 0.10594,0.005 1.0341,-3.7e-4 1.0341,-3.7e-4 l -0.22214,0.82187 c 0,0 -0.64577,-0.009 -0.82355,-0.015 -0.0247,2.68496 0.0793,6.18345 0.68297,8.14152 0.49034,1.5903 1.05861,3.3302 2.43719,3.3415 1.52507,0.0125 2.19638,-1.88805 2.7564,-3.65191 0.59128,-1.86235 0.70758,-5.20558 0.69561,-7.78429 -0.28085,0 -1.70584,-0.0487 -1.70584,-0.0487 0.0541,-0.32893 0.16478,-0.53596 0.16187,-0.82841 0,0 1.25193,-0.012 1.535,-0.012 -0.025,-1.57029 -0.0884,-2.68465 -0.0884,-2.68465 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5-7" class="steel_piercing" d="m 229.0201,250.83052 c 0,0 -1.68382,8.63199 -1.74585,13.00566 -0.0709,4.99762 1.57266,14.91167 1.57266,14.91167 0,0 -0.33647,-8.90403 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4-0" class="steel_piercing" d="m 228.83443,278.60941 c 0,0 -0.98734,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57813 1.34799,4.57813 0,0 0.95535,-3.024 0.89867,-4.57813 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_Small_Piercing" style="display:inline" id="Boob_Small_Piercing" inkscape:groupmode="layer"> + <g id="g1366" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> + <g id="g4019" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" transformVariableName="_boob_left_art_transform"> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5080" d="m 321.89408,227.57109 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path class="shadow" sodipodi:nodetypes="saccs" id="path5082" d="m 313.02276,229.35579 c -0.75293,0 -1.63873,-0.84886 -1.5972,-1.5972 0.0463,-0.83367 1.21255,-1.57531 1.96548,-1.57531 -0.68775,1.21129 -0.7805,1.82947 -0.3682,3.17251 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 321.74888,227.57109 c 0,0.68134 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77066 -1.452,-1.452 0,-0.68134 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77066 1.452,1.452 z" id="path2749-8-1" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path inkscape:connector-curvature="0" d="m 313.02164,229.21059 c -0.68448,0 -1.48776,-0.77159 -1.452,-1.452 0.0401,-0.76308 1.10584,-1.452 1.79032,-1.452 -0.71906,1.10285 -0.73484,1.67672 -0.33828,2.904 z" id="path2749-8-37" sodipodi:nodetypes="saccs" class="steel_piercing"/> + </g> + <g style="display:inline" id="g3034" transformVariableName="_boob_right_art_transform"> + <path inkscape:connector-curvature="0" d="m 231.70657,235.61491 c 0,0.74947 -0.84076,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75644,0 1.5972,0.84773 1.5972,1.5972 z" id="path5084" sodipodi:nodetypes="aaaaa" class="shadow" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + <path inkscape:connector-curvature="0" d="m 226.57248,236.96752 c -0.34466,-0.31248 -0.76627,-0.64473 -0.76627,-1.05102 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -0.91059,1.20611 -0.83093,2.64822 z" id="path5086" sodipodi:nodetypes="cscc" class="shadow" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + <path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2749-8-1-1" d="m 231.56137,235.61491 c 0,0.68134 -0.76433,1.452 -1.452,1.452 -0.68766,0 -1.452,-0.77066 -1.452,-1.452 0,-0.68133 0.76434,-1.452 1.452,-1.452 0.68767,0 1.452,0.77067 1.452,1.452 z" inkscape:connector-curvature="0" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + <path class="steel_piercing" sodipodi:nodetypes="cscc" id="path2749-8-1-5" d="m 226.56796,236.90063 c -0.31333,-0.28407 -0.68915,-0.63503 -0.68915,-1.00438 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.71276,0.81234 -0.83527,1.14537 -0.76285,2.45638 z" inkscape:connector-curvature="0" transform="matrix(1,0,0,1.0092899,0,-2.0984812)"/> + </g> + </g> + </g> + <g inkscape:label="Boob_Small_Highlights" id="Boob_Small_Highlights" inkscape:groupmode="layer" style="display:inline"> + <g style="display:inline" inkscape:label="Boob_Small_Highlights2" id="Boob_Small_Highlights2" inkscape:groupmode="layer"> + <g transformVariableName="_boob_left_art_transform" id="g2519"> + <path inkscape:connector-curvature="0" d="m 321.85975,215.92692 c -1.89715,1.20251 -6.31642,3.88396 -3.175,7.57381 4.21646,-0.071 4.26738,-5.70386 3.175,-7.57381 z" class="highlight2" id="path2507" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 314.90689,235.99789 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" class="highlight2" id="path2509" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 315.18349,232.60131 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" class="highlight2" id="path2511" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 322.97466,213.38435 c -0.6421,0.2097 -1.8653,0.15541 -0.73834,1.55076 2.104,-0.20337 1.13886,-1.07074 0.73834,-1.55076 z" class="highlight2" id="path2513" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 316.82316,228.06367 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" class="highlight2" id="path2515" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 316.69673,225.30909 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" class="highlight2" id="path2517" sodipodi:nodetypes="ccc"/> + </g> + <g transformVariableName="_boob_right_art_transform" id="g2560"> + <path inkscape:connector-curvature="0" d="m 259.03954,222.95658 c -7.62159,-1.9871 -15.09403,5.90489 -17.77314,7.66238 4.07679,1.14519 17.22608,2.90775 17.77314,-7.66238 z" class="highlight2" id="path2522" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 265.10282,214.91201 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" class="highlight2" id="path2526" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 240.11624,228.02619 c -0.88548,-0.39214 -2.12833,0.0778 -2.24268,0.85503 0.6073,0.25848 1.86652,0.75577 2.24268,-0.85503 z" class="highlight2" id="path2531" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 237.99074,236.34944 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" class="highlight2" id="path2534" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 229.28393,243.15444 c -0.0284,5.33194 5.46557,13.27016 6.87749,14.83009 0.17258,-0.32513 -6.62103,-13.88095 -6.87749,-14.83009 z" class="highlight2" id="path2536" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 229.074,240.58416 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" class="highlight2" id="path2545" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 228.40491,235.41765 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" class="highlight2" id="path2556" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 228.43265,233.66367 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" class="highlight2" id="path2558" sodipodi:nodetypes="ccc"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Small_Highlights1" inkscape:label="Boob_Small_Highlights1" style="display:inline"> + <g transformVariableName="_boob_left_art_transform" transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)" id="g2569"> + <path sodipodi:nodetypes="ccc" id="path2564" class="highlight1" d="m 320.21266,218.71568 c -1.90013,1.2044 -1.89258,3.23381 -1.52692,4.67945 1.21541,-0.6336 2.621,-2.80656 1.52692,-4.67945 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccc" id="path2567" class="highlight1" d="m 314.8764,235.91371 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" inkscape:connector-curvature="0"/> + </g> + <g transformVariableName="_boob_right_art_transform" id="g2573"> + <path sodipodi:nodetypes="ccc" id="path2571" class="highlight1" d="m 252.94473,226.59339 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" inkscape:connector-curvature="0" transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)"/> + </g> + </g> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_None_" inkscape:label="Boob_None_" style="display:inline"> + <g inkscape:label="Boob_None_Areola_Normal" style="display:inline;opacity:1" id="Boob_None_Areola_Normal" inkscape:groupmode="layer"> <path inkscape:connector-curvature="0" id="path1074" d="m 312.6125,241.81215 c -2.0933,-0.29336 -4.20874,-2.25346 -4.21867,-4.01028 -0.0126,-2.24206 2.65749,-4.58209 5.00314,-4.45169 2.20577,0.12263 4.50762,1.95044 4.05546,4.6679 -0.45217,2.71747 -2.337,4.14484 -4.83993,3.79407 z" class="areola" sodipodi:nodetypes="sssss"/> <path inkscape:connector-curvature="0" id="path1082" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" class="shadow" sodipodi:nodetypes="ccsscsc"/> <path sodipodi:nodetypes="ccsscsc" class="areola" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" id="path1084" inkscape:connector-curvature="0"/> @@ -1649,147 +2132,121 @@ <path inkscape:connector-curvature="0" id="path1086-5" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" class="shadow" sodipodi:nodetypes="ccc"/> <path sodipodi:nodetypes="ccc" class="shadow" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" id="path1088-1" inkscape:connector-curvature="0"/> </g> - <g inkscape:groupmode="layer" id="Boob_Areola_Piercing" style="display:inline" inkscape:label="Boob_Areola_Piercing"> - <g id="g1412" transform="matrix(1.0263785,0,0,1.0263785,-8.6733354,-5.3910578)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> - <g id="g1417" transform="matrix(1.0228023,0,0,1.0228023,-5.1326497,-5.0109358)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> - <g id="g3985" transform="matrix(1,0,0,0.99446198,0,1.3046736)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path class="shadow" sodipodi:nodetypes="accaa" id="path5169" d="m 320.11944,205.11636 c -5e-5,0.72098 -0.77245,1.52498 -1.52538,1.52498 -0.5209,-0.31798 -0.53158,-1.16226 -1.57142,-1.64877 0,-0.75293 0.80074,-1.47651 1.4996,-1.47341 0.75084,0.003 1.59725,0.84217 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5171" d="m 314.10532,222.82749 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 319.97541,205.11636 c 0,0.68447 -0.76752,1.452 -1.452,1.452 -0.47354,-0.28907 -0.48325,-1.0566 -1.42856,-1.49888 0,-0.68448 0.76064,-1.40789 1.42856,-1.40512 0.68448,0.003 1.452,0.76752 1.452,1.452 z" id="path2749-8-39" sodipodi:nodetypes="accaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5173" d="m 225.29267,220.63292 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 313.96012,222.82749 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-42" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5175" d="m 214.29267,234.13292 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 225.14747,220.63292 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-40" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path inkscape:connector-curvature="0" d="m 214.14747,234.13292 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-2" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - </g> - </g> - <g inkscape:label="Boob_Areola_Piercing_Heavy" style="display:inline" id="Boob_Areola_Piercing_Heavy" inkscape:groupmode="layer"> - <g id="g3979" transform="matrix(1,0,0,0.99598748,0,0.91583618)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path inkscape:connector-curvature="0" d="m 323.72007,212.66938 c 0,0 -0.14021,-4.48814 1.43,-5.61 1.85573,-1.32586 5.3301,-1.17681 6.82,0.55 1.44035,1.66939 0.96976,4.90469 -0.44,6.6 -1.13722,1.36756 -5.17,1.32 -5.17,1.32 0,0 3.53555,-0.87174 4.29,-2.31 0.61694,-1.17613 0.48099,-3.0031 -0.44,-3.96 -1.02846,-1.06855 -3.08027,-1.33662 -4.4,-0.66 -1.35712,0.69579 -2.09,4.07 -2.09,4.07 z" class="shadow" id="path5163" sodipodi:nodetypes="caaacaaac"/> - <path inkscape:connector-curvature="0" d="m 306.87368,212.28604 c 0,0 0.14021,-4.48814 -1.43,-5.61 -1.85573,-1.32586 -5.3301,-1.17681 -6.82,0.55 -1.44035,1.66939 -0.96976,4.90469 0.44,6.6 1.13722,1.36756 5.17,1.32 5.17,1.32 0,0 -3.53555,-0.87174 -4.29,-2.31 -0.61694,-1.17613 -0.48099,-3.0031 0.44,-3.96 1.02846,-1.06855 3.08027,-1.33662 4.4,-0.66 1.35712,0.69579 2.09,4.07 2.09,4.07 z" class="shadow" id="path5165" sodipodi:nodetypes="caaacaaac"/> - <path inkscape:connector-curvature="0" d="m 218.55457,226.88776 c 0,0 0.60718,-2.30763 1.54375,-2.84091 2.13422,-1.21521 5.78808,-1.60634 7.36253,0.27852 0.7214,0.86362 0.32939,2.55535 -0.475,3.34226 -1.33939,1.31028 -5.58127,0.66845 -5.58127,0.66845 0,0 3.80528,0.19144 4.63127,-1.1698 0.35636,-0.58727 0.0485,-1.56058 -0.47501,-2.00535 -1.20965,-1.02766 -3.25098,-0.85604 -4.75002,-0.33422 -0.96201,0.33488 -2.25625,2.06105 -2.25625,2.06105 z" class="shadow" id="path5167" sodipodi:nodetypes="caaacaaac"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4" class="steel_piercing" d="m 324.13472,212.50417 c 0,0 -0.12746,-4.08013 1.3,-5.1 1.68703,-1.20533 4.84555,-1.06983 6.2,0.5 1.30941,1.51763 0.8816,4.45881 -0.4,6 -1.03383,1.24324 -4.7,1.2 -4.7,1.2 0,0 3.21414,-0.79249 3.9,-2.1 0.56086,-1.06921 0.43727,-2.73009 -0.4,-3.6 -0.93496,-0.97141 -2.80024,-1.21511 -4,-0.6 -1.23374,0.63254 -1.9,3.7 -1.9,3.7 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-7" class="steel_piercing" d="m 306.45903,212.12083 c 0,0 0.12746,-4.08013 -1.3,-5.1 -1.68703,-1.20533 -4.84555,-1.06983 -6.2,0.5 -1.30941,1.51763 -0.8816,4.45881 0.4,6 1.03383,1.24324 4.7,1.2 4.7,1.2 0,0 -3.21414,-0.79249 -3.9,-2.1 -0.56086,-1.06921 -0.43727,-2.73009 0.4,-3.6 0.93496,-0.97141 2.80024,-1.21511 4,-0.6 1.23374,0.63254 1.9,3.7 1.9,3.7 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-3" class="steel_piercing" d="m 218.97663,226.78508 c 0,0 0.55198,-2.09785 1.40341,-2.58265 1.9402,-1.10474 5.26189,-1.46031 6.69321,0.2532 0.65582,0.78511 0.29944,2.32305 -0.43182,3.03842 -1.21763,1.19116 -5.07388,0.60768 -5.07388,0.60768 0,0 3.45934,0.17404 4.21024,-1.06345 0.32397,-0.53389 0.0441,-1.41871 -0.43182,-1.82305 -1.09969,-0.93424 -2.95544,-0.77822 -4.3182,-0.30384 -0.87456,0.30444 -2.05114,1.87369 -2.05114,1.87369 z" inkscape:connector-curvature="0"/> - </g> - </g> - <g inkscape:groupmode="layer" id="Boob_Areola_Piercing_NoBoob_Heavy" style="display:inline" inkscape:label="Boob_Areola_Piercing_NoBoob_Heavy"> - <g transform="matrix(1.0049807,0,0,1.0049807,-1.6578337,-0.99661844)" id="g1669" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> - <g transform="matrix(1.0106254,0,0,1.0106254,-2.44532,-2.2864495)" id="g1677" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> - <g id="g3991" transform="matrix(1,0,0,1.0072234,0,-1.7672168)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path inkscape:connector-curvature="0" d="m 316.39389,239.90478 c 0,0 3.2247,3.12482 5.1113,2.71879 2.22965,-0.47988 4.45815,-3.14958 4.18403,-5.41376 -0.265,-2.18891 -2.97434,-4.01868 -5.17703,-4.1173 -1.77684,-0.0795 -4.45626,2.93478 -4.45626,2.93478 0,0 3.02457,-2.02781 4.59604,-1.6176 1.28507,0.33544 2.54463,1.66577 2.63232,2.991 0.0979,1.47984 -1.08496,3.17766 -2.4737,3.69817 -1.42807,0.53526 -4.4167,-1.19408 -4.4167,-1.19408 z" class="shadow" id="path5154" sodipodi:nodetypes="caaacaaac"/> - <path inkscape:connector-curvature="0" d="m 309.09912,239.33692 c 0,0 -3.63548,2.6356 -5.44536,1.96596 -2.13901,-0.79141 -3.96612,-3.75032 -3.37348,-5.95269 0.57293,-2.12915 3.51451,-3.55595 5.7089,-3.34101 1.77014,0.17338 3.99471,3.53744 3.99471,3.53744 0,0 -2.70621,-2.43649 -4.31999,-2.25342 -1.31966,0.1497 -2.75526,1.28782 -3.03012,2.5872 -0.30692,1.45096 0.62309,3.29946 1.9239,4.01176 1.33767,0.73248 4.54144,-0.55524 4.54144,-0.55524 z" class="shadow" id="path5156" sodipodi:nodetypes="caaacaaac"/> - <path inkscape:connector-curvature="0" d="m 250.11413,242.34048 c 0,0 2.50391,3.06938 4.10816,2.71878 2.07541,-0.45357 3.61174,-3.30398 3.36288,-5.41376 -0.22858,-1.9378 -2.21189,-4.02594 -4.161,-4.1173 -1.5418,-0.0723 -3.58167,2.93479 -3.58167,2.93479 0,0 2.39892,-1.97771 3.69402,-1.61761 1.17658,0.32716 2.04104,1.77207 2.1157,2.991 0.0856,1.39697 -0.68667,3.18357 -1.98821,3.69817 -1.161,0.45903 -3.54988,-1.19407 -3.54988,-1.19407 z" class="shadow" id="path5159" sodipodi:nodetypes="caaacaaac"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6" class="steel_piercing" d="m 316.80209,239.7203 c 0,0 2.93154,2.84074 4.64663,2.47162 2.02696,-0.43625 4.05287,-2.86325 3.80367,-4.9216 -0.24091,-1.98991 -2.70395,-3.65334 -4.70639,-3.743 -1.61531,-0.0723 -4.05115,2.66799 -4.05115,2.66799 0,0 2.74961,-1.84347 4.17822,-1.47055 1.16824,0.30495 2.3133,1.51434 2.39302,2.71909 0.089,1.34531 -0.98633,2.88878 -2.24882,3.36197 -1.29825,0.4866 -4.01518,-1.08552 -4.01518,-1.08552 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 244.44613,241.71183 c 0,0 -2.00072,2.39045 -3.16913,1.96596 -1.96379,-0.71346 -2.44375,-3.91931 -1.96331,-5.95269 0.36115,-1.52853 1.75982,-3.49874 3.32249,-3.34101 1.40388,0.1417 2.32487,3.53744 2.32487,3.53744 0,0 -1.39697,-2.38913 -2.51418,-2.25342 -1.03607,0.12585 -1.59405,1.55735 -1.76347,2.5872 -0.22538,1.36995 -0.067,3.29109 1.11967,4.01176 0.76947,0.4673 2.64306,-0.55524 2.64306,-0.55524 z" class="shadow" id="path5161" sodipodi:nodetypes="caaacaaac"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4" class="steel_piercing" d="m 308.73334,239.09718 c 0,0 -3.30498,2.396 -4.95033,1.78724 -1.94455,-0.71946 -3.60556,-3.40938 -3.0668,-5.41154 0.52085,-1.93559 3.19501,-3.23268 5.18991,-3.03728 1.60922,0.15762 3.63156,3.21586 3.63156,3.21586 0,0 -2.46019,-2.21499 -3.92727,-2.04857 -1.19969,0.13609 -2.50478,1.17075 -2.75465,2.352 -0.27902,1.31906 0.56644,2.99951 1.749,3.64706 1.21606,0.66589 4.12858,-0.50477 4.12858,-0.50477 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-7" class="steel_piercing" d="m 250.44258,242.15562 c 0,0 2.27628,2.79035 3.73469,2.47162 1.88674,-0.41234 3.2834,-3.00362 3.05716,-4.9216 -0.2078,-1.76164 -2.01081,-3.65995 -3.78272,-3.743 -1.40164,-0.0657 -3.25607,2.66799 -3.25607,2.66799 0,0 2.18084,-1.79792 3.3582,-1.47055 1.06962,0.29741 1.85549,1.61097 1.92337,2.71909 0.0778,1.26997 -0.62425,2.89415 -1.80747,3.36197 -1.05545,0.4173 -3.22716,-1.08552 -3.22716,-1.08552 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4-1" class="steel_piercing" d="m 244.22839,241.47 c 0,0 -1.81884,2.17314 -2.88103,1.78724 -1.78526,-0.6486 -2.22159,-3.56301 -1.78483,-5.41154 0.32832,-1.38957 1.59984,-3.18067 3.02045,-3.03728 1.27625,0.12882 2.11352,3.21586 2.11352,3.21586 0,0 -1.26998,-2.17194 -2.28562,-2.04857 -0.94188,0.11441 -1.44914,1.41578 -1.60316,2.352 -0.20489,1.24541 -0.0609,2.9919 1.01789,3.64706 0.69951,0.42482 2.40278,-0.50477 2.40278,-0.50477 z" inkscape:connector-curvature="0"/> - </g> - </g> - <g inkscape:label="Boob_Areola_Piercing_NoBoob" style="display:inline" id="Boob_Areola_Piercing_NoBoob" inkscape:groupmode="layer"> - <g id="g3997" transform="matrix(1,0,0,1.0288842,0,-7.1288108)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5146" d="m 249.37141,236.16209 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 249.22621,236.16209 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5148" d="m 248.77479,245.35448 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 248.62959,245.35448 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-5" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5150" d="m 315.53009,232.95802 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 315.38489,232.95802 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-76" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5152" d="m 314.20427,242.60621 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 314.05907,242.60621 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-4" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - </g> - </g> - <g inkscape:label="Boob_Piercing_NoBoob_Heavy" style="display:inline" id="Boob_Piercing_NoBoob_Heavy" inkscape:groupmode="layer"> - <g id="g3755" transform="matrix(1,0,0,0.99551445,0,1.0543705)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path inkscape:connector-curvature="0" d="m 309.14219,234.55641 c 0,0 -1.66351,6.13387 -0.6555,8.95038 0.69607,1.9449 2.20975,4.61726 4.27152,4.4898 2.04057,-0.12615 3.06329,-2.97147 3.6481,-4.93052 0.82353,-2.7587 -0.4904,-8.62306 -0.4904,-8.62306 0,0 0.0757,0.87987 0.1112,2.11179 -0.11286,0.003 -0.5941,-2.8e-4 -0.5941,-2.8e-4 l 0.18681,0.60388 c 0,0 0.23025,-0.007 0.41963,-0.011 0.0263,1.97276 -0.0845,4.54326 -0.72754,5.98192 -0.52233,1.16847 -1.40518,2.44497 -2.59622,2.45515 -1.32582,0.0113 -2.33971,-1.38723 -2.93627,-2.68322 -0.62986,-1.36835 -0.75375,-3.82476 -0.74101,-5.71945 0.29918,0 1.29193,-0.0359 1.29193,-0.0359 l 0.0835,-0.60866 c 0,0 -1.06431,-0.009 -1.36586,-0.009 0.0266,-1.15377 0.0942,-1.97253 0.0942,-1.97253 z" class="shadow" id="path5128" sodipodi:nodetypes="caaacccccsascccccc"/> - <path inkscape:connector-curvature="0" d="m 249.30676,237.70242 c 0,0 1.66352,6.13388 0.6555,8.95038 -0.69607,1.9449 -2.20974,4.61726 -4.27152,4.4898 -2.04056,-0.12615 -3.06329,-2.97147 -3.6481,-4.93052 -0.82353,-2.7587 0.4904,-8.62306 0.4904,-8.62306 0,0 -0.0757,0.87987 -0.1112,2.11179 0.11286,0.003 1.62535,-2.8e-4 1.62535,-2.8e-4 l -0.0321,0.60388 c 0,0 -1.41619,-0.007 -1.60557,-0.011 -0.0263,1.97276 0.0845,4.54326 0.72754,5.98192 0.52233,1.16847 1.40518,2.44498 2.59622,2.45515 1.32583,0.0113 2.33971,-1.38723 2.93627,-2.68322 0.62986,-1.36835 0.75375,-3.82476 0.74101,-5.71945 -0.29918,0 -1.29193,-0.0359 -1.29193,-0.0359 l -0.0835,-0.60866 c 0,0 1.06431,-0.009 1.36586,-0.009 -0.0266,-1.15377 -0.0942,-1.97253 -0.0942,-1.97253 z" class="shadow" id="path5130" sodipodi:nodetypes="caaacccccsascccccc"/> - <path inkscape:connector-curvature="0" d="m 312.76639,245.60534 c 0,0 -1.2348,6.34214 -1.28029,9.55581 -0.052,3.67206 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5132" sodipodi:nodetypes="caccc"/> - <path sodipodi:nodetypes="cacac" id="path5142" class="shadow" d="m 245.62844,250.23975 c 0,0 17.16757,16.91723 28.15752,17.25901 14.6901,0.45685 38.98635,-20.68692 38.98635,-20.68692 0,0 -23.85532,24.26227 -39.04231,23.65915 -11.51555,-0.45732 -28.10156,-20.23124 -28.10156,-20.23124 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 312.59693,264.7749 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5134" sodipodi:nodetypes="cacac"/> - <path inkscape:connector-curvature="0" d="m 245.51135,250.05572 c 0,0 16.43426,21.15463 28.27461,21.64865 15.44025,0.64421 39.07474,-25.06195 39.07474,-25.06195 0,0 -23.11514,28.87249 -39.1307,28.10077 -12.45924,-0.60036 -28.21865,-24.68747 -28.21865,-24.68747 z" class="shadow" id="path5144" sodipodi:nodetypes="cacac"/> - <path inkscape:connector-curvature="0" d="m 245.62844,250.23975 c 0,0 17.10777,17.17402 28.15752,17.52537 14.74599,0.46888 38.98635,-20.95328 38.98635,-20.95328 0,0 -23.88248,23.98358 -39.04231,23.39279 -11.48183,-0.44746 -28.10156,-19.96488 -28.10156,-19.96488 z" class="steel_piercing" id="path1115" sodipodi:nodetypes="cacac"/> - <path inkscape:connector-curvature="0" d="m 245.85647,248.53096 c 0,0 -1.2348,6.34215 -1.28029,9.55581 -0.052,3.67207 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5136" sodipodi:nodetypes="caccc"/> - <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9" class="steel_piercing" d="m 309.44017,235.16237 c 0,0 -1.51228,5.57625 -0.59591,8.13671 0.63279,1.76809 2.00887,4.19751 3.8832,4.08164 1.85507,-0.11468 2.78481,-2.70134 3.31646,-4.48229 0.74866,-2.50791 -0.44582,-7.83915 -0.44582,-7.83915 0,0 0.0688,0.79988 0.10109,1.91981 -0.1026,0.003 -0.54009,-2.5e-4 -0.54009,-2.5e-4 l 0.16983,0.54898 c 0,0 0.20931,-0.006 0.38148,-0.01 0.0239,1.79342 -0.0768,4.13023 -0.6614,5.43811 -0.47485,1.06224 -1.27744,2.2227 -2.3602,2.23195 -1.20529,0.0103 -2.12701,-1.26112 -2.66934,-2.43929 -0.5726,-1.24395 -0.68523,-3.47705 -0.67364,-5.1995 0.27198,0 1.17448,-0.0326 1.17448,-0.0326 l 0.0759,-0.55333 c 0,0 -0.96756,-0.008 -1.24169,-0.008 0.0242,-1.04888 0.0856,-1.79321 0.0856,-1.79321 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 245.68701,267.70052 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5138" sodipodi:nodetypes="cacac"/> - <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0" class="steel_piercing" d="m 249.00878,238.30838 c 0,0 1.51229,5.57626 0.59591,8.13671 -0.63279,1.76809 -2.00886,4.19751 -3.8832,4.08164 -1.85506,-0.11468 -2.78481,-2.70134 -3.31646,-4.48229 -0.74866,-2.50791 0.44582,-7.83915 0.44582,-7.83915 0,0 -0.0688,0.79988 -0.10109,1.91981 0.1026,0.003 1.47759,-2.5e-4 1.47759,-2.5e-4 l -0.0292,0.54898 c 0,0 -1.28744,-0.006 -1.45961,-0.01 -0.0239,1.79342 0.0768,4.13023 0.6614,5.43811 0.47485,1.06224 1.27744,2.22271 2.3602,2.23195 1.2053,0.0103 2.12701,-1.26112 2.66934,-2.43929 0.5726,-1.24395 0.68523,-3.47705 0.67364,-5.1995 -0.27198,0 -1.17448,-0.0326 -1.17448,-0.0326 l -0.0759,-0.55333 c 0,0 0.96756,-0.008 1.24169,-0.008 -0.0242,-1.04888 -0.0856,-1.79321 -0.0856,-1.79321 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0" class="steel_piercing" d="m 312.73558,246.53771 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0473,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7" class="steel_piercing" d="m 312.6118,265.09255 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5" class="steel_piercing" d="m 245.82566,249.46333 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0472,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4" class="steel_piercing" d="m 245.70188,268.01817 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cacac" id="path3697" class="steel_piercing" d="m 245.51135,250.05572 c 0,0 16.35177,21.45578 28.27461,21.9594 15.5161,0.65539 39.07474,-25.3727 39.07474,-25.3727 0,0 -23.14622,28.57225 -39.1307,27.81221 -12.42068,-0.59059 -28.21865,-24.39891 -28.21865,-24.39891 z" inkscape:connector-curvature="0"/> - </g> - </g> - <g inkscape:groupmode="layer" id="Boob_Piercing_NoBoob" style="display:inline" inkscape:label="Boob_Piercing_NoBoob"> - <g id="g4003" transform="matrix(1,0,0,1.0291768,0,-7.0593321)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5118" d="m 317.55033,237.51562 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 317.40513,237.51562 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5120" d="m 311.06595,237.34375 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75292,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84428,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 310.92075,237.34375 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68447,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76753,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-3" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5122" d="m 250.31593,240.49857 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 250.17073,240.49857 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="csasccc" id="path5124" d="m 244.73869,241.83277 c -0.14826,0.0584 -0.30012,0.0911 -0.44845,0.0911 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.20146,0 0.40944,0.0605 0.60606,0.16339 -0.83243,0.65113 -1.08254,2.0678 -0.15761,2.93988 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 244.65287,241.69585 c -0.13478,0.0531 -0.27284,0.0828 -0.40768,0.0828 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.18314,0 0.37222,0.055 0.55096,0.14854 -0.68459,0.57919 -0.90899,1.86654 -0.14328,2.67261 z" id="path2749-8-3-4" sodipodi:nodetypes="csascc" class="steel_piercing"/> - </g> - </g> - <g inkscape:groupmode="layer" id="Boob_Piercing_Heavy" style="display:inline" inkscape:label="Boob_Piercing_Heavy"> - <g id="g4013" transform="matrix(1,0,0,1.0025792,0,-0.70652376)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path inkscape:connector-curvature="0" d="m 309.5038,204.64336 c 0,0 -2.49255,9.16089 -0.98325,13.36534 1.04444,2.90949 3.32191,6.89539 6.40728,6.7045 3.05198,-0.18881 4.5947,-4.43337 5.47216,-7.36259 1.23367,-4.11839 -0.7356,-12.87659 -0.7356,-12.87659 0,0 0.11352,1.82081 0.16679,3.66041 -0.16929,0.006 -1.17473,-4.1e-4 -1.17473,-4.1e-4 -0.19795,0.25684 -0.34925,0.53162 -0.25261,0.90176 0,0 1.16178,-0.01 1.44585,-0.0165 0.0394,2.94587 -0.12672,6.27737 -1.09131,8.42571 -0.78349,1.74482 -2.11155,3.65097 -3.89433,3.6662 -1.98467,0.0169 -3.50956,-2.07153 -4.40441,-4.00679 -0.94479,-2.0433 -1.13062,-5.20448 -1.1115,-8.03376 0.44876,0 0.51992,-0.0535 0.51992,-0.0535 l 0.0221,-0.9089 c 0,0 -0.0754,-0.0132 -0.52769,-0.0132 0.0399,-1.72289 0.14124,-3.45244 0.14124,-3.45244 z" class="shadow" id="path5090" sodipodi:nodetypes="caaacccccsascccccc"/> - <path inkscape:connector-curvature="0" d="m 219.3839,220.57007 c 0,0 2.13457,9.1044 0.8062,13.36536 -0.84502,2.71056 -2.41925,6.87099 -5.25359,6.7045 -2.86907,-0.16853 -3.7751,-4.57812 -4.48684,-7.36262 -1.06412,-4.16305 0.60315,-12.87656 0.60315,-12.87656 0,0 -0.0931,1.73467 -0.13676,3.57427 0.1388,0.006 0.75606,-4.1e-4 0.75606,-4.1e-4 l 0.17468,0.90174 c 0,0 -0.713,-0.01 -0.94592,-0.0165 -0.0323,2.94586 0.10395,6.36351 0.8948,8.51184 0.64242,1.74483 1.57258,3.65242 3.19313,3.66619 1.79796,0.0153 2.87763,-2.07151 3.61135,-4.00676 0.77468,-2.04331 0.92705,-5.29062 0.91137,-8.1199 -0.36796,0 -2.23494,-0.0535 -2.23494,-0.0535 0.071,-0.36089 0.0674,-0.74662 0.7341,-0.90891 0,0 1.11822,-0.0132 1.48908,-0.0132 -0.0328,-1.72288 -0.1158,-3.36631 -0.1158,-3.36631 z" class="shadow" id="path5092" sodipodi:nodetypes="caaacccccsascccccc"/> - <path inkscape:connector-curvature="0" d="m 314.94013,221.34948 c 0,0 -1.85221,9.47078 -1.92044,14.26944 -0.078,5.48324 1.72993,16.36063 1.72993,16.36063 0,0 -0.37012,-9.76923 1.09665,-19.55896 -0.97824,-3.24886 -0.90614,-11.07111 -0.90614,-11.07111 z" class="shadow" id="path5094" sodipodi:nodetypes="caccc"/> - <path inkscape:connector-curvature="0" d="m 314.68593,249.97485 c 0,0 -1.08607,3.58124 -0.98853,5.41252 0.0928,1.74295 1.48279,5.02302 1.48279,5.02302 0,0 1.05088,-3.31786 0.98853,-5.02302 -0.0683,-1.86907 -1.48279,-5.41252 -1.48279,-5.41252 z" class="shadow" id="path5096" sodipodi:nodetypes="cacac"/> - <path inkscape:connector-curvature="0" d="m 214.8358,236.62617 c 0,0 -1.85221,9.47077 -1.92044,14.26942 -0.078,5.48325 1.72993,16.36065 1.72993,16.36065 0,0 -0.37012,-9.76925 1.09665,-19.55896 -0.97824,-3.24886 -0.90614,-11.07111 -0.90614,-11.07111 z" class="shadow" id="path5098" sodipodi:nodetypes="caccc"/> - <path sodipodi:nodetypes="cacac" id="path5114" class="shadow" d="m 214.31901,239.32032 c 0,0 25.68032,21.60317 41.03252,20.95432 23.64619,-0.9994 60.23635,-37.49186 60.23635,-37.49186 0,0 -36.08773,39.66777 -60.29231,40.42734 -15.81322,0.49624 -40.97656,-23.8898 -40.97656,-23.8898 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 214.5816,265.25153 c 0,0 -1.08608,3.58126 -0.98853,5.41254 0.0928,1.74295 1.48279,5.02299 1.48279,5.02299 0,0 1.05088,-3.31784 0.98853,-5.02299 -0.0683,-1.86908 -1.48279,-5.41254 -1.48279,-5.41254 z" class="shadow" id="path5100" sodipodi:nodetypes="cacac"/> - <path inkscape:connector-curvature="0" d="m 214.20192,239.13711 c 0,0 25.0305,25.8073 41.14961,25.36846 24.49265,-0.66681 60.32474,-41.89145 60.32474,-41.89145 0,0 -35.29445,44.3827 -60.3807,44.82694 -16.64383,0.29474 -41.09365,-28.30395 -41.09365,-28.30395 z" class="shadow" id="path5116" sodipodi:nodetypes="cacac"/> - <path inkscape:connector-curvature="0" d="m 214.31901,239.32032 c 0,0 25.65102,21.83396 41.03252,21.19676 23.67286,-0.98068 60.23635,-37.7343 60.23635,-37.7343 0,0 -36.15672,39.38263 -60.29231,40.16286 -15.75824,0.50942 -40.97656,-23.62532 -40.97656,-23.62532 z" class="steel_piercing" id="path1115-5" sodipodi:nodetypes="cacac"/> - <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-2" class="steel_piercing" d="m 309.95079,205.54823 c 0,0 -2.26595,8.32808 -0.89386,12.15031 0.94949,2.64499 3.01992,6.26853 5.8248,6.095 2.77453,-0.17165 4.177,-4.03034 4.97469,-6.69327 1.12152,-3.74399 -0.66873,-11.70599 -0.66873,-11.70599 0,0 0.1032,1.19444 0.15163,2.8668 -0.1539,0.005 -1.06794,-3.7e-4 -1.06794,-3.7e-4 -0.17995,0.23349 -0.3175,0.48329 -0.22964,0.81978 0,0 1.05616,-0.009 1.31441,-0.015 0.0358,2.67807 -0.1152,6.16755 -0.9921,8.12058 -0.71227,1.5862 -1.91959,3.31907 -3.5403,3.33291 -1.80425,0.0154 -3.19051,-1.88321 -4.00401,-3.64253 -0.8589,-1.85755 -1.02784,-5.19219 -1.01046,-7.76427 0.40797,0 0.47266,-0.0486 0.47266,-0.0486 l 0.0201,-0.82627 c 0,0 -0.0685,-0.012 -0.47972,-0.012 0.0363,-1.56626 0.1284,-2.67774 0.1284,-2.67774 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0-8" class="steel_piercing" d="m 219.0181,221.47486 c 0,0 1.94052,8.27673 0.73291,12.15033 -0.7682,2.46414 -2.19932,6.24635 -4.77599,6.095 -2.60825,-0.15321 -3.43191,-4.16193 -4.07895,-6.69329 -0.96738,-3.78459 0.54832,-11.70597 0.54832,-11.70597 0,0 -0.0846,1.19444 -0.12433,2.8668 0.12619,0.005 0.68733,-3.7e-4 0.68733,-3.7e-4 l 0.1588,0.81976 c 0,0 -0.64818,-0.009 -0.85993,-0.015 -0.0294,2.67806 0.0945,6.16755 0.81346,8.12058 0.58402,1.58621 1.42962,3.32038 2.90284,3.3329 1.63451,0.0139 2.61603,-1.88319 3.28305,-3.64251 0.70425,-1.85756 0.84277,-5.19219 0.82852,-7.76427 -0.33451,0 -2.03177,-0.0486 -2.03177,-0.0486 0.0645,-0.32808 0.0613,-0.67874 0.66737,-0.82628 0,0 1.01656,-0.012 1.35371,-0.012 -0.0298,-1.56625 -0.10528,-2.67774 -0.10528,-2.67774 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-8" class="steel_piercing" d="m 314.89391,222.74176 c 0,0 -1.68382,8.60979 -1.74585,12.97221 -0.0709,4.98476 1.57266,14.8733 1.57266,14.8733 0,0 -0.33647,-8.88111 0.99696,-17.78087 -0.88931,-2.95351 -0.82377,-10.06464 -0.82377,-10.06464 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-8" class="steel_piercing" d="m 314.70824,250.44919 c 0,0 -0.98734,3.25568 -0.89867,4.92048 0.0844,1.5845 1.34799,4.56638 1.34799,4.56638 0,0 0.95535,-3.01623 0.89867,-4.56638 -0.0621,-1.69916 -1.34799,-4.92048 -1.34799,-4.92048 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5-7" class="steel_piercing" d="m 214.78958,238.01845 c 0,0 -1.68382,8.60979 -1.74585,12.9722 -0.0709,4.98477 1.57266,14.87331 1.57266,14.87331 0,0 -0.33647,-8.88113 0.99696,-17.78087 -0.88931,-2.95351 -0.82377,-10.06464 -0.82377,-10.06464 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4-0" class="steel_piercing" d="m 214.60391,265.72587 c 0,0 -0.98735,3.25569 -0.89867,4.92049 0.0844,1.5845 1.34799,4.56636 1.34799,4.56636 0,0 0.95535,-3.01622 0.89867,-4.56636 -0.0621,-1.69916 -1.34799,-4.92049 -1.34799,-4.92049 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="cacac" id="path3697-9" class="steel_piercing" d="m 214.20192,239.13711 c 0,0 24.99906,26.03874 41.14961,25.6109 24.5188,-0.64952 60.32474,-42.13389 60.32474,-42.13389 0,0 -35.37023,44.09941 -60.3807,44.56246 -16.57995,0.30696 -41.09365,-28.03947 -41.09365,-28.03947 z" inkscape:connector-curvature="0"/> - </g> - </g> - <g inkscape:label="Boob_Piercing" style="display:inline" id="Boob_Piercing" inkscape:groupmode="layer"> - <g id="g1366" transform="matrix(1.0081159,0,0,1.0081159,-2.6203467,-1.6676415)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> - <g id="g4019" transform="matrix(1,0,0,1.0092899,0,-2.0984812)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5080" d="m 320.92533,208.3125 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path class="shadow" sodipodi:nodetypes="saccs" id="path5082" d="m 310.52276,210.0972 c -0.75293,0 -1.60023,-0.84774 -1.5972,-1.5972 0.003,-0.75548 0.87005,-1.5972 1.62298,-1.5972 -0.36443,1.33139 -0.34478,1.89959 -0.0257,3.1944 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 320.78013,208.3125 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-1" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5084" d="m 219.00345,224.4375 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 310.52164,209.952 c -0.68448,0 -1.45474,-0.76753 -1.452,-1.452 0.003,-0.69002 0.79096,-1.452 1.47544,-1.452 -0.3313,1.21035 -0.31344,1.7269 -0.0234,2.904 z" id="path2749-8-37" sodipodi:nodetypes="cacc" class="steel_piercing"/> - <path class="shadow" sodipodi:nodetypes="cscc" id="path5086" d="m 212.05295,224.91542 c -0.34466,-0.31248 -0.59049,-0.74536 -0.59049,-1.15165 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -1.08637,1.30674 -1.00671,2.74885 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 218.85825,224.4375 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-1-1" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> - <path inkscape:connector-curvature="0" d="m 212.07187,224.79047 c -0.31333,-0.28407 -0.53681,-0.6776 -0.53681,-1.04695 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.71276,0.81234 -0.98761,1.18794 -0.91519,2.49895 z" id="path2749-8-1-5" sodipodi:nodetypes="cscc" class="steel_piercing"/> + <g inkscape:groupmode="layer" id="Boob_None_Areola_Large" style="display:inline;opacity:1" inkscape:label="Boob_None_Areola_Large"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 312.54464,242.65363 c -2.51196,-0.35203 -5.05049,-2.70415 -5.0624,-4.81234 -0.0151,-2.69047 3.18899,-5.4985 6.00377,-5.34202 2.64692,0.14715 5.40914,2.34052 4.86655,5.60148 -0.54261,3.26096 -2.8044,4.9738 -5.80792,4.55288 z" id="path3540" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3542" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3544" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3546" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3548" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="sssss" class="areola" d="m 247.17149,245.59069 c -1.85435,-0.35203 -3.72832,-2.70415 -3.73712,-4.81234 -0.0108,-2.69047 2.35414,-5.4985 4.43204,-5.34202 1.95398,0.14715 3.99308,2.34052 3.59253,5.60148 -0.40055,3.26096 -2.07023,4.9738 -4.28745,4.55288 z" id="path3550" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3552" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3554" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3556" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3558" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + </g> + <g inkscape:groupmode="layer" id="Boob_None_Areola_Wide" style="display:inline;opacity:1" inkscape:label="Boob_None_Areola_Wide"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 312.46321,243.66341 c -3.01435,-0.42244 -6.06059,-3.24498 -6.07488,-5.77481 -0.0181,-3.22857 3.82679,-6.5982 7.20452,-6.41043 3.17631,0.17658 6.49097,2.80863 5.83986,6.72178 -0.65113,3.91315 -3.36528,5.96856 -6.9695,5.46346 z" id="path3518" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3520" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3522" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3524" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3526" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="sccsss" class="areola" d="m 247.11138,246.60047 c -1.68167,-0.31925 -3.377,-2.00927 -4.10929,-3.90778 -0.21043,-2.33888 0.48566,-4.99206 1.49412,-6.5277 0.99819,-1.12304 2.26263,-1.8391 3.44907,-1.74976 2.34478,0.17657 4.7917,2.80863 4.31104,6.72178 -0.48066,3.91315 -2.48428,5.96856 -5.14494,5.46346 z" id="path3528" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3530" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3532" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3534" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3536" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + </g> + <g inkscape:groupmode="layer" id="Boob_None_Areola_Huge" style="display:inline;opacity:1" inkscape:label="Boob_None_Areola_Huge"> + <path sodipodi:nodetypes="sssss" class="areola" d="m 312.36549,244.87514 c -3.61722,-0.50693 -7.2727,-3.89397 -7.28985,-6.92977 -0.0217,-3.87428 4.59215,-7.91784 8.64542,-7.69252 3.81157,0.2119 7.78917,3.37036 7.00783,8.06614 -0.78135,4.69578 -4.03833,7.16227 -8.3634,6.55615 z" id="path3496" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3498" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3500" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3502" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3504" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="sccsss" class="areola" d="m 246.55371,247.8122 c -1.42904,-0.30609 -2.86721,-1.66227 -3.78493,-3.35714 -0.13062,-3.67239 0.5558,-7.15081 2.2875,-10.24949 0.83401,-0.69815 1.50768,-1.09014 2.38433,-1.01566 2.49382,0.21188 5.09628,3.37036 4.58507,8.06614 -0.51122,4.69578 -2.64219,7.16228 -5.47197,6.55615 z" id="path3506" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3508" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3510" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3512" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3514" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + </g> + <g inkscape:groupmode="layer" id="Boob_None_Areola_Star" style="display:inline;opacity:1" inkscape:label="Boob_None_Areola_Star"> + <path sodipodi:nodetypes="ccccccccccccc" class="areola" d="m 245.94542,243.7292 c -1.59722,1.06191 -2.35083,2.49876 -3.47795,3.76961 l 0.32113,-3.98865 c 0.0553,-0.7947 0.40279,-1.51228 0.75202,-2.1894 l -0.31673,-0.21132 c 0.14076,-1.07326 0.28806,-2.14356 0.74577,-3.07275 0.37871,-0.20231 0.7193,-0.2331 1.0392,-0.17079 1.01956,-2.12609 3.72149,-6.1021 3.72149,-6.1021 0,0 -0.79365,4.08678 -0.92235,6.011 1.85312,0.24383 5.32849,0.96237 5.32849,0.96237 0,0 -3.2575,1.66352 -4.54841,2.77169 0.4372,2.531 2.06436,7.47727 2.06436,7.47727 0,0 -3.66477,-3.07349 -4.70702,-5.25693 z" id="path2472-3-6" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccccccccccc" class="areola" d="m 312.50785,241.03136 -7.06793,5.17136 3.4237,-7.5798 -5.8564,-2.5784 8.08136,-0.87646 2.8937,-6.1021 1.34811,6.011 8.07479,0.96237 -6.89265,2.77169 3.12832,7.47727 z" id="path2472-3" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3476" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3478" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3480" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3482" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3486" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3488" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3490" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3492" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + </g> + <g inkscape:groupmode="layer" id="Boob_None_Areola_Heart" style="display:inline;opacity:1" inkscape:label="Boob_None_Areola_Heart"> + <path sodipodi:nodetypes="cccczcc" class="areola" d="m 245.56185,251.55642 c -0.86254,-0.78552 -2.03098,-2.55215 -3.02546,-4.70061 -0.10805,-2.51234 0.0677,-9.261 3.10818,-14.05758 1.421,0.25373 2.07623,1.82455 2.07623,1.82455 0,0 3.32805,-3.93385 6.38833,0.80632 3.06028,4.74018 -5.55654,14.38093 -8.54728,16.12699 z" id="path2482-8-7" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="czczcc" class="areola" d="m 311.20178,248.40454 c -3.18669,-2.26963 -9.63881,-12.72964 -4.55598,-16.92564 5.08282,-4.19601 7.31661,-0.008 7.31661,-0.008 0,0 4.25554,-3.93385 8.16868,0.80632 3.91314,4.74018 -7.10509,14.38093 -10.92931,16.12699 z" id="path2482-8" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3454" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3456" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3458" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3460" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + <path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3464" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3466" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/> + <path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3468" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" id="path3470" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/> + </g> + <g inkscape:groupmode="layer" id="Boob_None_Piercings_" inkscape:label="Boob_None_Piercings_" style="display:inline"> + <g inkscape:groupmode="layer" id="Boob_None_Areola_Piercing_Heavy" style="display:inline" inkscape:label="Boob_None_Areola_Piercing_Heavy"> + <g transform="matrix(1.0049807,0,0,1.0049807,-1.6578337,-0.99661844)" id="g1669" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> + <g transform="matrix(1.0106254,0,0,1.0106254,-2.44532,-2.2864495)" id="g1677" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/> + <g id="g3991" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> + <path inkscape:connector-curvature="0" d="m 316.39389,239.90478 c 0,0 3.2247,3.12482 5.1113,2.71879 2.22965,-0.47988 4.45815,-3.14958 4.18403,-5.41376 -0.265,-2.18891 -2.97434,-4.01868 -5.17703,-4.1173 -1.77684,-0.0795 -4.45626,2.93478 -4.45626,2.93478 0,0 3.02457,-2.02781 4.59604,-1.6176 1.28507,0.33544 2.54463,1.66577 2.63232,2.991 0.0979,1.47984 -1.08496,3.17766 -2.4737,3.69817 -1.42807,0.53526 -4.4167,-1.19408 -4.4167,-1.19408 z" class="shadow" id="path5154" sodipodi:nodetypes="caaacaaac"/> + <path inkscape:connector-curvature="0" d="m 309.09912,239.33692 c 0,0 -3.63548,2.6356 -5.44536,1.96596 -2.13901,-0.79141 -3.96612,-3.75032 -3.37348,-5.95269 0.57293,-2.12915 3.51451,-3.55595 5.7089,-3.34101 1.77014,0.17338 3.99471,3.53744 3.99471,3.53744 0,0 -2.70621,-2.43649 -4.31999,-2.25342 -1.31966,0.1497 -2.75526,1.28782 -3.03012,2.5872 -0.30692,1.45096 0.62309,3.29946 1.9239,4.01176 1.33767,0.73248 4.54144,-0.55524 4.54144,-0.55524 z" class="shadow" id="path5156" sodipodi:nodetypes="caaacaaac"/> + <path inkscape:connector-curvature="0" d="m 250.11413,242.34048 c 0,0 2.50391,3.06938 4.10816,2.71878 2.07541,-0.45357 3.61174,-3.30398 3.36288,-5.41376 -0.22858,-1.9378 -2.21189,-4.02594 -4.161,-4.1173 -1.5418,-0.0723 -3.58167,2.93479 -3.58167,2.93479 0,0 2.39892,-1.97771 3.69402,-1.61761 1.17658,0.32716 2.04104,1.77207 2.1157,2.991 0.0856,1.39697 -0.68667,3.18357 -1.98821,3.69817 -1.161,0.45903 -3.54988,-1.19407 -3.54988,-1.19407 z" class="shadow" id="path5159" sodipodi:nodetypes="caaacaaac"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6" class="steel_piercing" d="m 316.80209,239.7203 c 0,0 2.93154,2.84074 4.64663,2.47162 2.02696,-0.43625 4.05287,-2.86325 3.80367,-4.9216 -0.24091,-1.98991 -2.70395,-3.65334 -4.70639,-3.743 -1.61531,-0.0723 -4.05115,2.66799 -4.05115,2.66799 0,0 2.74961,-1.84347 4.17822,-1.47055 1.16824,0.30495 2.3133,1.51434 2.39302,2.71909 0.089,1.34531 -0.98633,2.88878 -2.24882,3.36197 -1.29825,0.4866 -4.01518,-1.08552 -4.01518,-1.08552 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 244.44613,241.71183 c 0,0 -2.00072,2.39045 -3.16913,1.96596 -1.96379,-0.71346 -2.44375,-3.91931 -1.96331,-5.95269 0.36115,-1.52853 1.75982,-3.49874 3.32249,-3.34101 1.40388,0.1417 2.32487,3.53744 2.32487,3.53744 0,0 -1.39697,-2.38913 -2.51418,-2.25342 -1.03607,0.12585 -1.59405,1.55735 -1.76347,2.5872 -0.22538,1.36995 -0.067,3.29109 1.11967,4.01176 0.76947,0.4673 2.64306,-0.55524 2.64306,-0.55524 z" class="shadow" id="path5161" sodipodi:nodetypes="caaacaaac"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4" class="steel_piercing" d="m 308.73334,239.09718 c 0,0 -3.30498,2.396 -4.95033,1.78724 -1.94455,-0.71946 -3.60556,-3.40938 -3.0668,-5.41154 0.52085,-1.93559 3.19501,-3.23268 5.18991,-3.03728 1.60922,0.15762 3.63156,3.21586 3.63156,3.21586 0,0 -2.46019,-2.21499 -3.92727,-2.04857 -1.19969,0.13609 -2.50478,1.17075 -2.75465,2.352 -0.27902,1.31906 0.56644,2.99951 1.749,3.64706 1.21606,0.66589 4.12858,-0.50477 4.12858,-0.50477 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-7" class="steel_piercing" d="m 250.44258,242.15562 c 0,0 2.27628,2.79035 3.73469,2.47162 1.88674,-0.41234 3.2834,-3.00362 3.05716,-4.9216 -0.2078,-1.76164 -2.01081,-3.65995 -3.78272,-3.743 -1.40164,-0.0657 -3.25607,2.66799 -3.25607,2.66799 0,0 2.18084,-1.79792 3.3582,-1.47055 1.06962,0.29741 1.85549,1.61097 1.92337,2.71909 0.0778,1.26997 -0.62425,2.89415 -1.80747,3.36197 -1.05545,0.4173 -3.22716,-1.08552 -3.22716,-1.08552 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4-1" class="steel_piercing" d="m 244.22839,241.47 c 0,0 -1.81884,2.17314 -2.88103,1.78724 -1.78526,-0.6486 -2.22159,-3.56301 -1.78483,-5.41154 0.32832,-1.38957 1.59984,-3.18067 3.02045,-3.03728 1.27625,0.12882 2.11352,3.21586 2.11352,3.21586 0,0 -1.26998,-2.17194 -2.28562,-2.04857 -0.94188,0.11441 -1.44914,1.41578 -1.60316,2.352 -0.20489,1.24541 -0.0609,2.9919 1.01789,3.64706 0.69951,0.42482 2.40278,-0.50477 2.40278,-0.50477 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_None_Piercing_Heavy" style="display:inline" id="Boob_None_Piercing_Heavy" inkscape:groupmode="layer"> + <g id="g3755" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> + <path inkscape:connector-curvature="0" d="m 309.14219,234.55641 c 0,0 -1.66351,6.13387 -0.6555,8.95038 0.69607,1.9449 2.20975,4.61726 4.27152,4.4898 2.04057,-0.12615 3.06329,-2.97147 3.6481,-4.93052 0.82353,-2.7587 -0.4904,-8.62306 -0.4904,-8.62306 0,0 0.0757,0.87987 0.1112,2.11179 -0.11286,0.003 -0.5941,-2.8e-4 -0.5941,-2.8e-4 l 0.18681,0.60388 c 0,0 0.23025,-0.007 0.41963,-0.011 0.0263,1.97276 -0.0845,4.54326 -0.72754,5.98192 -0.52233,1.16847 -1.40518,2.44497 -2.59622,2.45515 -1.32582,0.0113 -2.33971,-1.38723 -2.93627,-2.68322 -0.62986,-1.36835 -0.75375,-3.82476 -0.74101,-5.71945 0.29918,0 1.29193,-0.0359 1.29193,-0.0359 l 0.0835,-0.60866 c 0,0 -1.06431,-0.009 -1.36586,-0.009 0.0266,-1.15377 0.0942,-1.97253 0.0942,-1.97253 z" class="shadow" id="path5128" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 249.30676,237.70242 c 0,0 1.66352,6.13388 0.6555,8.95038 -0.69607,1.9449 -2.20974,4.61726 -4.27152,4.4898 -2.04056,-0.12615 -3.06329,-2.97147 -3.6481,-4.93052 -0.82353,-2.7587 0.4904,-8.62306 0.4904,-8.62306 0,0 -0.0757,0.87987 -0.1112,2.11179 0.11286,0.003 1.62535,-2.8e-4 1.62535,-2.8e-4 l -0.0321,0.60388 c 0,0 -1.41619,-0.007 -1.60557,-0.011 -0.0263,1.97276 0.0845,4.54326 0.72754,5.98192 0.52233,1.16847 1.40518,2.44498 2.59622,2.45515 1.32583,0.0113 2.33971,-1.38723 2.93627,-2.68322 0.62986,-1.36835 0.75375,-3.82476 0.74101,-5.71945 -0.29918,0 -1.29193,-0.0359 -1.29193,-0.0359 l -0.0835,-0.60866 c 0,0 1.06431,-0.009 1.36586,-0.009 -0.0266,-1.15377 -0.0942,-1.97253 -0.0942,-1.97253 z" class="shadow" id="path5130" sodipodi:nodetypes="caaacccccsascccccc"/> + <path inkscape:connector-curvature="0" d="m 312.76639,245.60534 c 0,0 -1.2348,6.34214 -1.28029,9.55581 -0.052,3.67206 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5132" sodipodi:nodetypes="caccc"/> + <path inkscape:connector-curvature="0" d="m 312.59693,264.7749 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5134" sodipodi:nodetypes="cacac"/> + <path inkscape:connector-curvature="0" d="m 245.85647,248.53096 c 0,0 -1.2348,6.34215 -1.28029,9.55581 -0.052,3.67207 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5136" sodipodi:nodetypes="caccc"/> + <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9" class="steel_piercing" d="m 309.44017,235.16237 c 0,0 -1.51228,5.57625 -0.59591,8.13671 0.63279,1.76809 2.00887,4.19751 3.8832,4.08164 1.85507,-0.11468 2.78481,-2.70134 3.31646,-4.48229 0.74866,-2.50791 -0.44582,-7.83915 -0.44582,-7.83915 0,0 0.0688,0.79988 0.10109,1.91981 -0.1026,0.003 -0.54009,-2.5e-4 -0.54009,-2.5e-4 l 0.16983,0.54898 c 0,0 0.20931,-0.006 0.38148,-0.01 0.0239,1.79342 -0.0768,4.13023 -0.6614,5.43811 -0.47485,1.06224 -1.27744,2.2227 -2.3602,2.23195 -1.20529,0.0103 -2.12701,-1.26112 -2.66934,-2.43929 -0.5726,-1.24395 -0.68523,-3.47705 -0.67364,-5.1995 0.27198,0 1.17448,-0.0326 1.17448,-0.0326 l 0.0759,-0.55333 c 0,0 -0.96756,-0.008 -1.24169,-0.008 0.0242,-1.04888 0.0856,-1.79321 0.0856,-1.79321 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 245.68701,267.70052 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5138" sodipodi:nodetypes="cacac"/> + <path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0" class="steel_piercing" d="m 249.00878,238.30838 c 0,0 1.51229,5.57626 0.59591,8.13671 -0.63279,1.76809 -2.00886,4.19751 -3.8832,4.08164 -1.85506,-0.11468 -2.78481,-2.70134 -3.31646,-4.48229 -0.74866,-2.50791 0.44582,-7.83915 0.44582,-7.83915 0,0 -0.0688,0.79988 -0.10109,1.91981 0.1026,0.003 1.47759,-2.5e-4 1.47759,-2.5e-4 l -0.0292,0.54898 c 0,0 -1.28744,-0.006 -1.45961,-0.01 -0.0239,1.79342 0.0768,4.13023 0.6614,5.43811 0.47485,1.06224 1.27744,2.22271 2.3602,2.23195 1.2053,0.0103 2.12701,-1.26112 2.66934,-2.43929 0.5726,-1.24395 0.68523,-3.47705 0.67364,-5.1995 -0.27198,0 -1.17448,-0.0326 -1.17448,-0.0326 l -0.0759,-0.55333 c 0,0 0.96756,-0.008 1.24169,-0.008 -0.0242,-1.04888 -0.0856,-1.79321 -0.0856,-1.79321 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0" class="steel_piercing" d="m 312.73558,246.53771 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0473,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7" class="steel_piercing" d="m 312.6118,265.09255 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5" class="steel_piercing" d="m 245.82566,249.46333 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0472,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4" class="steel_piercing" d="m 245.70188,268.01817 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z" inkscape:connector-curvature="0"/> + </g> + </g> + <g inkscape:label="Boob_None_Areola_Piercing" style="display:inline" id="Boob_None_Areola_Piercing" inkscape:groupmode="layer"> + <g id="g3997" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5146" d="m 249.37141,236.16209 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 249.22621,236.16209 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5148" d="m 248.77479,245.35448 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 248.62959,245.35448 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-5" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5150" d="m 315.53009,232.95802 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 315.38489,232.95802 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-76" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5152" d="m 314.20427,242.60621 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 314.05907,242.60621 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-4" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_None_Piercing" style="display:inline" inkscape:label="Boob_None_Piercing"> + <g id="g4003" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5118" d="m 317.55033,237.51562 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 317.40513,237.51562 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5120" d="m 311.06595,237.34375 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75292,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84428,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 310.92075,237.34375 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68447,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76753,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-3" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path class="shadow" sodipodi:nodetypes="aaaaa" id="path5122" d="m 250.31593,240.49857 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 250.17073,240.49857 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/> + <path class="shadow" sodipodi:nodetypes="csasccc" id="path5124" d="m 244.73869,241.83277 c -0.14826,0.0584 -0.30012,0.0911 -0.44845,0.0911 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.20146,0 0.40944,0.0605 0.60606,0.16339 -0.83243,0.65113 -1.08254,2.0678 -0.15761,2.93988 z" inkscape:connector-curvature="0"/> + <path inkscape:connector-curvature="0" d="m 244.65287,241.69585 c -0.13478,0.0531 -0.27284,0.0828 -0.40768,0.0828 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.18314,0 0.37222,0.055 0.55096,0.14854 -0.68459,0.57919 -0.90899,1.86654 -0.14328,2.67261 z" id="path2749-8-3-4" sodipodi:nodetypes="csascc" class="steel_piercing"/> + </g> </g> - </g> - </g> - </g> - <g inkscape:groupmode="layer" id="Boob_Highlights_" inkscape:label="Boob_Highlights_" style="display:inline"> - <g inkscape:groupmode="layer" id="Boob_Highlights2" inkscape:label="Boob_Highlights2" style="display:inline"> - <g id="g2226" transform="matrix(0.99843271,0,0,0.99843271,0.51131944,0.3030066)"> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9" class="highlight2" d="m 324.062,195.87815 c -2.25111,1.2044 -7.45996,3.89006 -5.39058,7.5857 4.2438,-0.0711 5.93888,-5.71281 5.39058,-7.5857 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7" class="highlight2" d="m 313.22303,216.21843 c -3.53236,3.2669 -5.77246,8.35881 -1.89058,10.3357 2.9938,-1.10235 3.78263,-5.83781 1.89058,-10.3357 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7" class="highlight2" d="m 256.23397,214.34522 c -7.63355,-1.99021 -15.11772,5.91416 -17.80104,7.67441 4.08319,1.14699 17.25312,2.91232 17.80104,-7.67441 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4" class="highlight2" d="m 313.50007,212.81652 c -1.45423,1.22002 -0.55371,1.5776 -0.29683,2.05444 0.91567,-0.49297 1.12638,-0.75968 0.29683,-2.05444 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-70" class="highlight2" d="m 325.92076,193.33159 c -0.70431,0.21003 -1.91359,0.15565 -1.19213,1.55319 2.16667,-0.20368 1.45317,-1.07242 1.19213,-1.55319 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5" class="highlight2" d="m 262.30677,208.04077 c -0.95431,-0.17346 -2.05373,0.57643 -1.9822,1.36001 0.65204,0.10878 1.99495,0.29667 1.9822,-1.36001 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1" class="highlight2" d="m 237.28097,221.17554 c -0.88687,-0.39276 -2.13167,0.0779 -2.2462,0.85637 0.60825,0.25889 1.86945,0.75696 2.2462,-0.85637 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9" class="highlight2" d="m 224.57022,224.30732 c -0.73318,-0.21518 -5.16322,0.19765 -5.64135,0.25254 0.7532,0.71279 5.59616,1.42803 5.64135,-0.25254 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-6" class="highlight2" d="m 214.65463,231.123 c -1.28043,3.08678 -0.887,13.93661 0.52713,15.49899 0.17285,-0.32564 -0.27027,-14.54836 -0.52713,-15.49899 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-4" class="highlight2" d="m 214.66568,228.54869 c -0.95299,0.64524 -0.46869,1.54719 -0.0583,1.90701 0.59665,-0.3531 0.32534,-1.4005 0.0583,-1.90701 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3" class="highlight2" d="m 214.96934,223.37407 c -0.59995,0.17051 -1.09864,0.3604 -1.5163,0.72315 0.72663,0.2153 1.41533,0.1382 1.5163,-0.72315 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2" class="highlight2" d="m 315.14231,208.27176 c -1.11469,-1.53646 -2.19765,-0.93953 -2.69138,-0.71684 0.55133,0.56169 1.58949,0.72014 2.69138,0.71684 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2-1" class="highlight2" d="m 315.01568,205.51285 c -1.29777,-0.23638 -1.89173,0.15908 -2.19786,0.60584 1.13578,0.21924 1.34362,0.27207 2.19786,-0.60584 z" inkscape:connector-curvature="0"/> - <path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3-9" class="highlight2" d="m 214.99712,221.61733 c -0.26984,0.0314 -0.84473,0.21024 -0.92476,0.7089 0.27569,-0.29941 0.86343,-0.25926 0.92476,-0.7089 z" inkscape:connector-curvature="0"/> - </g> - </g> - <g style="display:inline" inkscape:label="Boob_Highlights1" id="Boob_Highlights1" inkscape:groupmode="layer"> - <g id="g2210" transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)"> - <path inkscape:connector-curvature="0" d="m 321.562,198.7844 c -2.25111,1.2044 -2.83496,3.23381 -2.89058,4.67945 1.40005,-0.6336 3.43888,-2.80656 2.89058,-4.67945 z" class="highlight1" id="path1139" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 313.22303,216.21843 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" class="highlight1" id="path1141" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 250.26522,218.00147 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" class="highlight1" id="path1143" sodipodi:nodetypes="ccc"/> </g> </g> </g> @@ -1805,23 +2262,34 @@ <path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-28" class="shadow" d="m 248.16035,269.85576 64.35095,-3.16234 -15.11323,-3.41196 -42.937,2.58394 z" inkscape:connector-curvature="0"/> </g> </g> - <g inkscape:groupmode="layer" id="Boob_Outfit_Maid" inkscape:label="Boob_Outfit_Maid" style="display:inline;opacity:1"> - <g style="display:inline;opacity:1" id="g2134" transform="matrix(0.99515665,0,0,0.99515665,1.6400838,0.96959443)"> - <path inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2120" d="m 226.34766,216.85742 c 2.98619,-0.62315 5.85031,-1.4204 8.64453,-2.38086 2.79422,-0.96045 5.51818,-2.08363 8.22656,-3.35742 2.70838,-1.27379 5.40024,-2.69856 8.12891,-4.26172 2.72867,-1.56316 5.49451,-3.2652 8.34961,-5.09375 -11.79723,6.74895 -21.9632,11.76361 -33.34961,15.09375 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/> - <path inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2122" d="m 210.87305,229.81641 c 0.0451,-0.71382 0.22536,-1.51018 0.23047,-2.16797 0.006,-0.73749 0.0162,-1.44067 0.0996,-2.11719 0.0834,-0.67652 0.23899,-1.32563 0.53516,-1.95117 0.29618,-0.62554 0.73278,-1.22795 1.37695,-1.8125 0.64418,-0.58456 1.4957,-1.15152 2.62305,-1.70508 1.12735,-0.55356 2.52969,-1.0944 4.27539,-1.62695 1.74571,-0.53255 3.83474,-1.0566 6.33399,-1.57813 -18.80751,3.15763 -15.50638,7.20888 -15.47461,12.95899 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/> - <path inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2124" d="m 217.95898,264.23438 c -1.87038,-2.59224 -3.45412,-5.21814 -4.73046,-7.86329 -1.27635,-2.64515 -2.24524,-5.30915 -2.88672,-7.97461 -0.32074,-1.33272 -0.56048,-2.66635 -0.71485,-3.99804 -0.15437,-1.33169 -0.22414,-2.66171 -0.20703,-3.98828 0.0171,-1.32658 0.12272,-2.64941 0.31641,-3.9668 0.19369,-1.31739 0.47619,-2.62947 0.85156,-3.93359 -3.41169,10.57894 -1.27171,21.77042 7.37109,31.72461 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/> - <path inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2126" d="m 235.44727,272.8418 c -1.78236,-0.10142 -3.49568,-0.27493 -5.13086,-0.58203 -1.63519,-0.30711 -3.19249,-0.74733 -4.66211,-1.38282 -1.46962,-0.63548 -2.85106,-1.46617 -4.13672,-2.55273 -1.28566,-1.08657 -2.47529,-2.42951 -3.5586,-4.08984 4.0232,7.19252 9.64374,9.47305 17.48829,8.60742 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/> - <path inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2128" d="m 352.21094,243.07812 c -0.86728,1.85762 -1.81754,3.59094 -2.84961,5.20508 -1.03208,1.61415 -2.14654,3.10879 -3.33985,4.49219 -1.19331,1.3834 -2.46542,2.65492 -3.8164,3.82031 -1.35099,1.16539 -2.78006,2.22544 -4.28516,3.18555 -1.5051,0.96011 -3.08653,1.82033 -4.74219,2.58789 -1.65565,0.76756 -3.38485,1.44155 -5.1875,2.0293 -1.80264,0.58774 -3.67891,1.08911 -5.625,1.50976 -1.94608,0.42066 -3.96287,0.76104 -6.04882,1.02735 17.12494,-2.04297 30.70536,-8.64667 35.89453,-23.85743 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/> - <path sodipodi:nodetypes="ccsscccsscccccssscccccccscsccccscsccccccccsc" inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2130" d="m 339.94922,198.16016 c -32.0958,-3.67156 -54.13039,-3.02574 -80.25195,3.60351 -2.8551,1.82855 -5.62094,3.53059 -8.34961,5.09375 -2.72867,1.56316 -5.42053,2.98793 -8.12891,4.26172 -2.70838,1.27379 -5.43234,2.39697 -8.22656,3.35742 -2.79422,0.96046 -5.65834,1.75771 -8.64453,2.38086 -2.49925,0.52153 -4.58828,1.04558 -6.33399,1.57813 -1.7457,0.53255 -3.14804,1.07339 -4.27539,1.62695 -1.12735,0.55356 -1.97887,1.12052 -2.62305,1.70508 -0.64417,0.58455 -1.08077,1.18696 -1.37695,1.8125 -0.29617,0.62554 -0.4518,1.27465 -0.53516,1.95117 -0.0834,0.67652 -0.0939,1.3797 -0.0996,2.11719 -0.005,0.65779 -0.1854,1.45415 -0.23047,2.16797 0.005,0.86012 -0.0584,1.75431 -0.28516,2.69336 -0.37537,1.30412 -0.65787,2.6162 -0.85156,3.93359 -0.19369,1.31739 -0.2993,2.64022 -0.31641,3.9668 -0.0171,1.32657 0.0527,2.65659 0.20703,3.98828 0.15437,1.33169 0.39411,2.66532 0.71485,3.99804 0.64148,2.66546 1.61037,5.32946 2.88672,7.97461 1.27634,2.64515 2.86008,5.27105 4.73046,7.86329 1.08331,1.66033 2.27294,3.00327 3.5586,4.08984 1.28566,1.08656 2.6671,1.91725 4.13672,2.55273 1.46962,0.63549 3.02692,1.07571 4.66211,1.38282 1.63518,0.3071 3.3485,0.48061 5.13086,0.58203 6.92666,-0.0668 16.98116,-4.96122 24.06579,-9.98486 10.21409,-7.24271 18.92639,-25.59132 18.92639,-25.59132 0,0 -0.76705,11.91966 12.59961,22.70899 6.80046,5.48921 18.84722,7.23767 25.27735,6.96094 2.08595,-0.26631 4.10274,-0.60669 6.04882,-1.02735 1.94609,-0.42065 3.82236,-0.92202 5.625,-1.50976 1.80265,-0.58775 3.53185,-1.26174 5.1875,-2.0293 1.65566,-0.76756 3.23709,-1.62778 4.74219,-2.58789 1.5051,-0.96011 2.93417,-2.02016 4.28516,-3.18555 1.35098,-1.16539 2.62309,-2.43691 3.8164,-3.82031 1.19331,-1.3834 2.30777,-2.87804 3.33985,-4.49219 1.03207,-1.61414 1.98233,-3.34746 2.84961,-5.20508 0.91196,-2.53191 1.61912,-4.98945 2.13086,-7.37109 0.51173,-2.38164 0.82888,-4.68757 0.96093,-6.91211 0.13206,-2.22453 0.0786,-4.3691 -0.14843,-6.42969 -0.22709,-2.06059 -0.62768,-4.03792 -1.19336,-5.92773 -0.56569,-1.88981 -1.29595,-3.6921 -2.17969,-5.4043 -0.88374,-1.71219 -1.92226,-3.33358 -3.10352,-4.86132 -1.18125,-1.52775 -2.50661,-2.96042 -3.96484,-4.29688 -1.45823,-1.33646 -3.04901,-2.57651 -4.76367,-3.71484 z" style="display:inline;opacity:1;fill:#ffffff;stroke-width:0.99515665"/> - <path inkscape:connector-curvature="0" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2132" d="m 339.94922,198.16016 c 1.71466,1.13833 3.30544,2.37838 4.76367,3.71484 1.45823,1.33646 2.78359,2.76913 3.96484,4.29688 1.18126,1.52774 2.21978,3.14913 3.10352,4.86132 0.88374,1.7122 1.614,3.51449 2.17969,5.4043 0.56568,1.88981 0.96627,3.86714 1.19336,5.92773 0.22708,2.06059 0.28049,4.20516 0.14843,6.42969 -0.13205,2.22454 -0.4492,4.53047 -0.96093,6.91211 -0.51174,2.38164 -1.2189,4.83918 -2.13086,7.37109 9.47613,-21.16383 1.84382,-35.97308 -12.26172,-44.91796 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/> + <g inkscape:groupmode="layer" id="Boob_Small_Outfit_Maid" inkscape:label="Boob_Small_Outfit_Maid" style="display:inline;opacity:1"> + <g style="display:inline;opacity:1" id="g2134" transformVariableName="_boob_outfit_art_transform"> + <path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99515665" d="m 239.54885,237.04157 c -4.04819,7.94613 1.44538,18.58593 8.83122,22.81636 8.09471,6.43684 19.83019,-1.39546 30.03417,-2.40951 14.56784,0.39988 33.00884,8.74574 45.2163,-1.3044 10.61336,-7.56078 12.07589,-24.40116 5.67382,-34.87417 -7.36879,-13.11973 -24.34612,-5.89309 -39.2914,-4.14233 -19.08654,2.23589 -45.57307,0.78903 -50.46411,19.91405 z" id="path2802" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc"/> + <path sodipodi:nodetypes="aaaaaaa" inkscape:connector-curvature="0" id="path2130" d="m 239.54885,237.04157 c -2.74035,7.68108 1.92475,18.4794 8.83122,22.81636 8.5056,5.34113 20.0055,-1.86294 30.03417,-2.40951 15.05602,-0.82057 33.63673,8.35329 45.2163,-1.3044 9.12655,-7.61181 13.40486,-24.61335 7.40909,-34.87417 -7.23069,-12.3742 -26.77543,-14.38112 -41.02667,-12.86259 -19.23179,2.04922 -43.96524,10.41822 -50.46411,28.63431 z" style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:0.99515665" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)"/> + </g> + </g> + <g style="display:inline;opacity:1" inkscape:label="Boob_Medium_Outfit_Maid" id="Boob_Medium_Outfit_Maid" inkscape:groupmode="layer"> + <g id="g2809" style="display:inline;opacity:1" clip-path="url(#clipPath2523)"> + <g id="g2538" transformVariableName="_boob_outfit_art_transform"> + <path style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99515665" d="m 227.00685,243.38843 c -2.76471,9.20616 1.1523,22.46284 10.23433,26.44142 13.66316,10.50116 31.65638,-1.69767 47.38431,-2.79233 21.61943,-0.77747 47.79009,14.35634 64.89544,-1.51164 12.83936,-8.09143 12.84724,-26.23313 11.44045,-40.41498 0.7133,-22.58264 -24.44265,-62.6023 -24.52354,-62.59331 -0.004,-0.002 -98.3921,36.39445 -109.43099,80.87084 z" id="path2459" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc"/> + <path sodipodi:nodetypes="aaaaaca" inkscape:connector-curvature="0" id="path2806" d="m 227.00685,243.38843 c -2.63483,9.07628 2.28426,21.33088 10.23433,26.44142 13.30944,8.5557 31.57548,-2.14261 47.38431,-2.79233 21.61943,-0.88852 47.79009,11.73964 64.89544,-1.51164 11.06829,-8.57445 12.1231,-26.43062 11.44045,-40.41498 -1.09258,-22.38199 -24.52354,-62.59331 -24.52354,-62.59331 0,0 -96.78599,37.31223 -109.43099,80.87084 z" style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:0.99515665"/> + </g> + </g> + </g> + <g inkscape:groupmode="layer" id="Boob_Huge_Outfit_Maid" inkscape:label="Boob_Huge_Outfit_Maid" style="display:inline;opacity:1"> + <g id="g2511" clip-path="url(#clipPath2523)"> + <g id="g2501" transformVariableName="_boob_outfit_art_transform"> + <path sodipodi:nodetypes="cccccccc" inkscape:connector-curvature="0" id="path2481" d="m 248.46348,221.30205 c -7.84799,13.39188 -9.31561,33.03051 1.17873,45.75168 8.18024,12.33371 22.62994,9.84279 34.81926,7.11239 10.16499,1.36382 18.37185,1.37376 32.10564,1.83999 11.54119,4.46467 21.63893,4.78374 30.06923,-2.42885 13.78259,-9.95091 14.54789,-23.07261 13.81906,-47.30239 1.67109,-21.37616 -23.40629,-68.10261 -23.40629,-68.10261 0,0 -76.87136,32.99996 -88.58563,63.12979 z" style="display:inline;opacity:1;fill:#1a1a1a;fill-opacity:1;stroke-width:0.99515665"/> + <path style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:0.99515665" d="m 248.46348,221.30205 c -6.81285,13.64987 -7.73759,33.34658 1.17873,45.75168 8.43153,11.73061 22.90015,9.19429 34.81926,7.11239 10.50108,1.06974 18.86406,0.94308 32.10564,1.83999 12.09113,3.70602 22.27287,3.92208 30.06923,-2.42885 12.73576,-10.37458 14.2035,-30.88034 13.81906,-47.30239 -0.56178,-23.99764 -23.40629,-68.10261 -23.40629,-68.10261 0,0 -72.39285,30.6868 -88.58563,63.12979 z" id="path2826" inkscape:connector-curvature="0" sodipodi:nodetypes="asccaaca"/> + <path inkscape:connector-curvature="0" d="m 311.72503,274.95345 c -18.32365,-4.27958 -40.32075,-0.75207 -49.31724,-0.21926 9.0114,-0.53368 36.99108,-2.65958 49.31724,0.21926 z" class="shadow" id="path3232-3-3" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 309.32149,267.43126 c -19.55847,-1.59311 -33.01835,5.3752 -42.28691,7.29258 9.28391,-1.92053 29.1301,-8.36425 42.28691,-7.29258 z" class="shadow" id="path3232-3-3-0" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 306.30748,260.9606 c -13.32491,-3.8423 -29.59097,-2.06333 -36.21523,-2.00693 6.63522,-0.0565 27.25168,-0.57775 36.21523,2.00693 z" class="shadow" id="path3232-3-3-0-5" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 304.97187,260.29254 c -13.14861,-4.43301 -29.43657,-3.36835 -36.04526,-3.60354 6.61963,0.23558 27.20032,0.62148 36.04526,3.60354 z" class="shadow" id="path3232-3-3-0-5-5" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 311.29793,219.17019 c -11.83811,-4.5168 -26.69692,-4.12421 -32.70598,-4.57425 6.01901,0.45079 24.74259,1.53583 32.70598,4.57425 z" class="shadow" id="path3232-3-3-0-5-1" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 311.27871,223.32929 c -11.22803,-5.99229 -25.95244,-7.45922 -31.84373,-8.66054 5.90105,1.20331 24.29074,4.62958 31.84373,8.66054 z" class="shadow" id="path3232-3-3-0-5-1-0" sodipodi:nodetypes="ccc"/> + </g> </g> </g> - </g> - <g inkscape:groupmode="layer" id="Clavicle" style="display:inline" inkscape:label="Clavicle"> - <path inkscape:connector-curvature="0" d="m 309.9875,184.0875 c 14.75,-2.5125 17.4,-1.9875 45.45,-5.375 -27.27187,3.9625 -35,4.3375 -45.45,5.375 z" class="shadow" id="XMLID_511_" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 297.39343,185.90351 c -10.35625,0.46563 -15.06859,3.45066 -23.39359,4.91628 7.69063,-2.24062 15.15922,-4.91628 23.39359,-4.91628 z" class="shadow" id="XMLID_546_" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 313.8375,183.4375 c 10.06542,-14.75429 4.91406,-12.50942 11.3875,-27.5625 -4.64445,12.75714 -1.92662,15.28512 -11.3875,27.5625 z" class="shadow" id="XMLID_511_-1" sodipodi:nodetypes="ccc"/> - <path inkscape:connector-curvature="0" d="m 302.62124,184.29159 c -0.67705,-3.9108 -0.64175,-6.21768 -2.35616,-8.91389 1.38684,2.4846 1.37673,4.45479 2.35616,8.91389 z" class="shadow" id="XMLID_511_-1-8" sodipodi:nodetypes="ccc"/> </g> <g inkscape:groupmode="layer" id="Head_" style="display:inline;opacity:1" inkscape:label="Head_"> <g inkscape:groupmode="layer" id="Head" inkscape:label="Head" style="display:inline;opacity:1"> @@ -2155,12 +2623,6 @@ <path style="fill:#bababa" d="m 297.07576,186.01507 9.32377,2.45711 1.11893,18.32943 -23.41509,-4.89324 z" id="polygon18" inkscape:connector-curvature="0"/> <path d="m 302.32515,180.06063 -0.85064,3.30581 2.90499,0.74858 0.85064,-3.3058 z" id="line20" inkscape:connector-curvature="0"/> </g> - <g inkscape:groupmode="layer" id="Collar_Maid" inkscape:label="Collar_Maid" style="display:inline"> - <path sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1313" class="shadow" d="m 331.85675,162.02243 1.93544,5.9919 c 0.0226,0.004 0.34362,1.06634 -0.055,1.40725 -0.38339,0.53019 -1.38615,0.29933 -1.37171,0.26757 0.054,0 0.46202,1.5678 -0.081,2.03434 -0.5322,0.56735 -2.02139,-0.001 -2.00889,-0.0302 0.037,0 0.38254,2.10628 -0.42608,2.60581 -0.78793,0.53523 -2.40476,-0.4653 -2.37303,-0.48513 0.0384,0.006 0.2673,1.80307 -0.43822,2.20841 -0.62218,0.58415 -2.41384,-0.43536 -2.42937,-0.46642 0.0803,0.0301 -0.0134,1.84831 -0.78489,2.15506 -0.80428,0.38323 -2.20648,-0.66689 -2.17531,-0.67858 0.0329,-0.007 0.0424,1.7723 -0.78489,2.08566 -0.84412,0.36119 -2.00797,-0.92447 -2.00797,-0.92447 0.0267,0.0419 -0.14902,1.64182 -0.81051,1.80958 -0.7509,0.31434 -1.99714,-0.81291 -1.94526,-0.84626 0.0447,0.0149 -0.27635,1.5613 -1.02005,1.7147 -0.73481,0.23969 -1.84326,-0.86986 -1.8042,-0.89089 0.0219,0.0188 -0.56384,1.18152 -1.17391,1.26017 -0.59199,0.16577 -1.4985,-0.60773 -1.4798,-0.62228 0.0272,0.0204 -0.72132,1.21882 -1.3999,1.28632 -0.6705,0.15933 -1.69372,-0.67933 -1.66134,-0.70288 0.0336,0.0336 -0.76566,1.10921 -1.41643,1.15247 -0.72271,0.15706 -1.81336,-0.69065 -1.78527,-0.70937 0.0206,0.0112 -0.93563,1.11098 -1.68979,1.08277 -0.59807,0.0713 -1.44494,-0.80263 -1.43635,-0.81265 0.0325,0.013 -0.27324,0.85093 -0.68009,0.76955 -0.29439,-0.0184 -0.34132,-0.69275 -0.30755,-0.71205 l -0.19939,-6.02293 c -0.003,0 -0.13477,-0.32166 0.032,-0.36489 0.17113,-0.0761 0.32878,0.27634 0.30666,0.29109 -0.0345,-0.0115 0.28294,-0.64768 0.6928,-0.6998 0.57869,0.27858 1.97754,0.7297 1.97754,0.7297 0,0 1.62702,-1.34485 2.2488,-1.76753 0.31994,0.0903 0.45771,0.27246 0.45497,0.27442 -0.008,-0.001 0.2782,-0.88845 0.71952,-0.99561 0.43595,-0.14269 1.12798,0.42903 1.11321,0.43747 -0.0137,0 0.0724,-1.00959 0.51286,-1.15604 0.46773,-0.19935 1.28089,0.57501 1.26076,0.59917 -0.0138,-0.0111 0.12563,-1.17419 0.61384,-1.32805 0.56719,-0.23879 1.61963,0.58765 1.57985,0.61252 -0.0346,0.002 0.1956,-1.47265 0.90107,-1.71051 0.68508,-0.29172 1.96956,0.70712 1.95558,0.72389 -0.0142,0 0.34612,-1.822 1.14808,-2.09134 0.81177,-0.31928 2.17473,0.8304 2.14422,0.85074 -0.0128,0.003 0.0174,-1.62685 0.71557,-1.9026 0.70359,-0.28524 1.8785,0.81789 1.83908,0.83103 -0.0322,-0.0138 0.0235,-1.70274 0.76143,-1.95615 0.72075,-0.31561 2.02146,0.63985 1.97329,0.65017 -0.0347,-0.008 -0.072,-1.35954 0.51405,-1.61896 0.56598,-0.34388 1.72256,0.36114 1.69497,0.38567 -0.0272,0.006 -0.16412,-1.28353 0.39216,-1.62524 0.53723,-0.37554 1.7904,0.19188 1.77026,0.20627 -0.0208,-0.0115 -0.16702,-1.19259 0.30242,-1.43107 0.44979,-0.29501 1.37419,0.20433 1.34972,0.21657 -0.0104,-0.001 -0.16864,-1.03615 0.25185,-1.27595 0.39853,-0.29034 1.22742,0.17064 1.2032,0.19217 -0.0264,-0.0192 -0.0519,-0.94646 0.35068,-1.09934 0.24481,-0.22205 0.8515,-0.0374 1.03033,0.0948 z" inkscape:connector-curvature="0"/> - <path inkscape:connector-curvature="0" d="m 331.85675,162.02243 1.93544,5.9919 c 0,0 0.2505,1.05082 -0.055,1.40725 -0.30317,0.35371 -1.37171,0.26757 -1.37171,0.26757 0,0 0.41185,1.5678 -0.081,2.03434 -0.48636,0.4604 -2.00889,-0.0302 -2.00889,-0.0302 0,0 0.29857,2.10628 -0.42608,2.60581 -0.66474,0.45823 -2.37303,-0.48513 -2.37303,-0.48513 0,0 0.1843,1.78924 -0.43822,2.20841 -0.68398,0.46055 -2.42937,-0.46642 -2.42937,-0.46642 0,0 -0.0997,1.81595 -0.78489,2.15506 -0.68075,0.33691 -2.17531,-0.67858 -2.17531,-0.67858 0,0 -0.0978,1.80346 -0.78489,2.08566 -0.68161,0.27994 -2.00797,-0.92447 -2.00797,-0.92447 0,0 -0.19423,1.57078 -0.81051,1.80958 -0.65935,0.25549 -1.94526,-0.84626 -1.94526,-0.84626 0,0 -0.38234,1.52597 -1.02005,1.7147 -0.64315,0.19034 -1.8042,-0.89089 -1.8042,-0.89089 0,0 -0.61261,1.13972 -1.17391,1.26017 -0.5232,0.11227 -1.4798,-0.62228 -1.4798,-0.62228 0,0 -0.77548,1.1782 -1.3999,1.28632 -0.59249,0.10259 -1.66134,-0.70288 -1.66134,-0.70288 0,0 -0.8148,1.06007 -1.41643,1.15247 -0.63292,0.0972 -1.78527,-0.70937 -1.78527,-0.70937 0,0 -1.02107,1.06438 -1.68979,1.08277 -0.54989,0.0151 -1.43635,-0.81265 -1.43635,-0.81265 0,0 -0.34202,0.82342 -0.68009,0.76955 -0.25532,-0.0407 -0.30755,-0.71205 -0.30755,-0.71205 l -0.19939,-6.02293 c 0,0 -0.0822,-0.32166 0.032,-0.36489 0.13181,-0.0499 0.30666,0.29109 0.30666,0.29109 0,0 0.37519,-0.61693 0.6928,-0.6998 0.57869,0.27858 1.97754,0.7297 1.97754,0.7297 0,0 1.62702,-1.34485 2.2488,-1.76753 0.25782,0.13468 0.45497,0.27442 0.45497,0.27442 0,0 0.32661,-0.88038 0.71952,-0.99561 0.38258,-0.1122 1.11321,0.43747 1.11321,0.43747 0,0 0.11755,-1.00959 0.51286,-1.15604 0.43632,-0.16165 1.26076,0.59917 1.26076,0.59917 0,0 0.16167,-1.14536 0.61384,-1.32805 0.52368,-0.21159 1.57985,0.61252 1.57985,0.61252 0,0 0.29924,-1.48005 0.90107,-1.71051 0.64912,-0.24857 1.95558,0.72389 1.95558,0.72389 0,0 0.39983,-1.822 1.14808,-2.09134 0.7235,-0.26043 2.14422,0.85074 2.14422,0.85074 0,0 0.0897,-1.64291 0.71557,-1.9026 0.62134,-0.25782 1.83908,0.83103 1.83908,0.83103 0,0 0.12856,-1.6577 0.76143,-1.95615 0.62639,-0.29539 1.97329,0.65017 1.97329,0.65017 0,0 0.0226,-1.33772 0.51405,-1.61896 0.5029,-0.28781 1.69497,0.38567 1.69497,0.38567 0,0 -0.0649,-1.30643 0.39216,-1.62524 0.48727,-0.33985 1.77026,0.20627 1.77026,0.20627 0,0 -0.0995,-1.15508 0.30242,-1.43107 0.37563,-0.25793 1.34972,0.21657 1.34972,0.21657 0,0 -0.10379,-1.02804 0.25185,-1.27595 0.33319,-0.23226 1.2032,0.19217 1.2032,0.19217 0,0 0.03,-0.88689 0.35068,-1.09934 0.28751,-0.19049 1.03033,0.0948 1.03033,0.0948 z" class="shadow" id="path1311" sodipodi:nodetypes="ccacacacacacacacacacacacacaccacccccacacacacacacacacacacacacc"/> - <path inkscape:connector-curvature="0" d="m 331.97234,162.2961 c 1.04474,1.70444 1.78177,3.48654 1.74481,5.48322 -4.80523,6.73958 -20.24123,13.2466 -33.48864,14.05592 -0.33393,-1.8002 -0.45469,-3.6478 -0.19853,-5.57779 0.85173,-0.3414 1.73617,-0.50846 2.29254,-0.58193 0.359,0.079 0.73339,0.22405 0.73339,0.22405 0,0 0.51119,-0.41895 0.73589,-0.60563 19.93433,-5.50204 22.69697,-9.57458 28.18054,-12.99784 z" class="shadow" id="path1309" sodipodi:nodetypes="cccccccc"/> - <path sodipodi:nodetypes="cccccccc" id="path1108-7-2-3" class="shadow" d="m 331.97234,162.2961 c 0.90255,1.73604 1.6591,3.5138 1.74481,5.48322 -5.06089,6.56914 -20.09695,12.90821 -33.48864,14.05592 -0.2453,-1.81793 -0.33592,-3.67155 -0.19853,-5.57779 0.68574,-0.17541 1.64124,-0.41353 2.29254,-0.58193 0.359,0.079 0.73339,0.22405 0.73339,0.22405 0,0 0.51119,-0.41895 0.73589,-0.60563 20.41701,-5.32652 22.8144,-9.53188 28.18054,-12.99784 z" inkscape:connector-curvature="0"/> - </g> </g> <g inkscape:groupmode="layer" id="Head_Addon_" inkscape:label="Head_Addon_" style="display:inline"> <g inkscape:groupmode="layer" id="Ball_Gag" style="display:inline" inkscape:label="Ball_Gag"> @@ -2344,7 +2806,32 @@ <path inkscape:connector-curvature="0" d="m 342.96115,118.67127 c 0.45979,0.021 0.8827,-0.0289 1.21529,-0.18958 1.53727,-0.74281 3.03323,-2.9322 2.40771,-4.52082 -0.71179,-1.80773 -3.60623,-2.27465 -5.51166,-1.89536 -1.40856,0.28039 -3.22729,2.85458 -3.22729,2.85458 0,0 2.2737,-1.96194 3.65848,-1.96834 1.13473,-0.005 2.63547,0.51494 3.01263,1.58517 0.3643,1.03374 -0.38999,2.41692 -1.30703,3.01723 -0.11714,0.0767 -0.25304,0.13776 -0.40271,0.1856 0.094,0.43902 0.11723,0.51341 0.15458,0.93152 z" class="steel_piercing" id="XMLID_525_-3-13" sodipodi:nodetypes="csaacaascc"/> </g> </g> - <g inkscape:groupmode="layer" id="Hair_Fore_" style="display:inline;opacity:1" inkscape:label="Hair_Fore_"> + <g inkscape:groupmode="layer" id="Hair_Fore_" style="display:inline;opacity:1" inkscape:label="Hair_Fore_" sodipodi:insensitive="true"> + <g style="display:inline;opacity:1" inkscape:label="Hair_Fore_Shaved_Sides_Old_ copy" id="Hair_Fore_Shaved_Sides_Old_ copy" inkscape:groupmode="layer"> + <path d="m 251.4536,161.46413 c -0.60449,-4.42611 -0.24997,-12.28779 0.30818,-15.07977 1.04636,5.95887 1.94432,13.80117 6.2265,21.23041 -1.19495,-8.60885 -0.67387,-12.01072 0.0186,-19.46198 0.86192,9.97611 5.42918,18.65867 5.51006,18.63661 0.32905,-0.27421 -3.75649,-41.35792 1.52765,-51.85844 -1.56878,4.39592 -1.0455,11.21714 -0.60609,13.1602 1.20375,-10.65238 4.7302,-16.65981 7.51079,-21.2274 -1.77637,3.56329 -1.69686,6.73318 -1.67001,6.72423 2.7435,-5.08811 7.28199,-10.31751 7.72633,-10.59258 1.7754,-0.59821 3.34591,-1.34727 4.89709,-1.98766 -0.95374,1.0861 -3.34853,5.47746 -3.25001,5.4479 1.78878,-2.20362 7.30144,-6.25367 8.15415,-6.579777 3.90053,-0.46273 7.96311,-0.887567 12.31642,-1.006656 0.97516,-2.301021 -2.46173,-4.187764 -2.50051,-4.180713 -0.27758,0.05552 6.85578,4.540259 7.53473,4.526486 1.84048,0.505313 3.1683,0.684458 4.34712,0.85514 1.24026,-1.476422 -2.27202,-4.30682 -2.28964,-4.301785 -0.19916,0.06639 5.41691,5.533855 6.59453,5.794845 1.42736,0.7452 2.9587,1.6137 4.75884,2.58346 0.0658,-3.22911 -1.83468,-5.252331 -1.83468,-5.252331 -0.0323,0.01176 4.46505,7.566831 7.18097,9.628731 0.90909,1.10054 1.85278,2.25487 3.10638,3.42971 6.69495,-2.3189 4.87583,-1.67338 8.49073,-3.89429 -0.0976,-7.08281 -1.93991,-22.249963 -12.0468,-28.474671 -10.4101,-7.382931 -24.19082,-8.250906 -39.13439,-7.179564 -9.13827,0.104194 -22.81316,5.928461 -22.58648,5.960844 -0.0377,0 3.35418,0.551361 3.88899,3.271316 -6.1017,3.88449 -11.84387,8.929494 -18.57324,16.734688 0.15081,0.117293 5.5349,-1.164935 6.8477,-1.139988 -6.73703,8.463735 -7.99098,10.588605 -11.93124,23.066475 0.0592,0.037 3.52877,-4.70615 7.09562,-6.54615 -3.84137,8.38017 -4.56237,13.29232 -4.81341,23.73954 1.57001,-2.6181 3.26987,-5.2362 4.28595,-7.8543 -2.62033,10.90993 -0.90677,24.463 2.90918,31.82747 z" id="path2645" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccc" class="shadow"/> + <path class="hair" sodipodi:nodetypes="cccccccccscccccsccsccsccsacccccccccc" inkscape:connector-curvature="0" id="path2647" d="m 251.4536,161.46413 c -0.79085,-4.39505 -0.55717,-12.23659 0.30818,-15.07977 1.29154,5.92384 2.10812,13.77777 6.2265,21.23041 -1.31756,-8.60885 -1.05268,-12.01072 0.0186,-19.46198 1.36659,9.83847 5.51006,18.63661 5.51006,18.63661 0,0 -3.91407,-41.2266 1.52765,-51.85844 -1.2366,4.39592 -0.92934,11.21714 -0.60609,13.1602 0.84931,-10.65238 4.65052,-16.65981 7.51079,-21.2274 -1.48912,3.46754 -1.67001,6.72423 -1.67001,6.72423 2.22597,-4.94024 6.98807,-10.23353 7.72633,-10.59258 1.59694,-0.77667 3.23294,-1.46024 4.89709,-1.98766 -0.51004,0.95299 -3.25001,5.4479 -3.25001,5.4479 1.78878,-2.46118 7.30144,-6.466628 8.15415,-6.579777 4.10434,-0.59011 8.22897,-1.053727 12.31642,-1.006656 0.4394,-2.20361 -2.50051,-4.180713 -2.50051,-4.180713 0,0 7.16706,4.478004 7.53473,4.526486 1.45783,0.192233 2.90777,0.471295 4.34712,0.85514 0.89162,-1.37681 -2.28964,-4.301785 -2.28964,-4.301785 0,0 5.74154,5.425645 6.59453,5.794845 1.60466,0.69454 3.19224,1.54697 4.75884,2.58346 -0.32722,-3.09812 -1.83468,-5.252331 -1.83468,-5.252331 0,0 5.00744,7.369601 7.18097,9.628731 1.02248,1.06274 2.08404,2.17778 3.10638,3.42971 6.03412,-2.42904 4.49208,-1.73734 8.49073,-3.89429 -0.30579,-7.01342 -2.45311,-22.078898 -12.0468,-28.474671 -11.17283,-7.448526 -25.88161,-7.687309 -39.13439,-7.179564 -7.7809,0.298105 -22.58648,5.960844 -22.58648,5.960844 0,0 3.90736,0.551361 3.88899,3.271316 -5.71397,4.003792 -11.16561,9.138189 -18.57324,16.734688 0,0 5.17446,-1.44528 6.8477,-1.139988 -6.1633,8.463735 -7.63273,10.588605 -11.93124,23.066475 0,0 3.16197,-4.9354 7.09562,-6.54615 -3.52693,8.29441 -3.97798,13.13294 -4.81341,23.73954 l 4.28595,-7.8543 c -2.05322,10.79651 -0.67088,24.41582 2.90918,31.82747 z"/> + </g> + <g inkscape:groupmode="layer" id="Hair_Fore_Messy_Old_" style="display:inline;opacity:1" inkscape:label="Hair_Fore_Messy_Old_"> + <path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1442" inkscape:connector-curvature="0" class="shadow" d="m 244.725,110.6 c -4.91846,6.58813 -5.1856,19.3396 -5.13712,19.34401 0.006,0.005 2.56339,-2.84496 5.86993,-6.52894 0.75589,5.71669 1.68662,10.0521 3.60878,14.55916 0.11709,2.53892 -2.03599,4.51642 -2.02049,4.51642 0.0327,0.0196 3.96931,1.5105 5.30212,-1.44385 3.89359,5.86164 3.74368,5.49258 6.92104,8.91681 2.58948,4.51811 1.16151,5.94226 0.0742,7.69745 2.95862,-0.0862 5.2003,-0.59653 4.92955,-2.54612 -0.1956,0.0757 2.64225,3.93947 6.493,4.8944 -1.84572,-7.65225 -4.28847,-15.205 -6.8328,-22.74081 2.57902,6.09202 6.90856,9.26463 12.38979,12.89733 -5.22073,-11.31877 -4.0711,-6.75613 -5.07824,-20.43879 0.4832,0.91527 2.7069,2.31536 2.7374,2.27875 -1.15106,-3.47165 -1.52721,-8.61107 -1.67008,-12.06397 2.13176,-5.16018 3.81014,-8.3053 3.80885,-8.30595 3.27603,6.01178 4.10173,7.73219 8.00158,12.52204 2.2126,1.9484 1.33782,8.25688 0.82769,8.51203 0.62691,0.25475 2.60308,-4.44715 1.07593,-6.55145 3.61917,5.28436 5.58656,7.51529 11.82174,8.78897 -3.57509,-3.20004 -4.37162,-4.07437 -5.00615,-8.27776 3.39223,5.296 7.54667,9.93259 13.44317,13.6813 -2.36666,-4.69377 -6.33548,-11.19644 -6.28172,-18.19703 2.26858,2.68175 6.04717,1.62933 9.10444,-1.29984 -4.65907,1.81471 -8.46193,-0.18817 -9.89206,-8.99767 -0.85238,-6.88284 -2.18852,-5.8924 -2.18852,-5.8924 5.76839,8.55204 7.96169,9.20988 13.10381,14.07105 0,0 -3.37401,-6.25345 -1.71994,-7.35053 4.12299,4.65094 7.58501,4.09563 10.07958,13.21086 -0.37167,5.08777 -2.13213,10.43054 -2.12429,10.43211 0.0702,0.0312 2.3388,-2.08088 3.29281,-2.68415 -0.25505,1.61443 0.13626,9.38515 0.30703,10.92985 0.13896,0.0811 6.82167,-14.16497 6.60844,-23.34903 0.16691,0.002 1.31098,5.08479 2.15859,11.72771 -0.75833,6.60148 -0.28415,6.83605 -2.80224,5.4551 1.33409,2.07559 1.77197,2.44696 2.76408,1.38848 -0.23707,5.64039 -2.57216,11.47522 -2.52258,11.47109 5.24035,-4.04557 10.85672,-13.08882 11.516,-21.36538 7.1891,-5.52505 10.39667,0.18055 10.39164,0.14784 -0.0883,-7.30975 -4.26628,-12.56804 -8.70585,-18.31152 2.90895,-3.32142 5.53645,1.87184 8.48574,4.08963 -1.08924,-7.89902 -3.58727,-14.21058 -9.8139,-16.879752 7.04716,-1.377896 7.56203,-5.402843 7.55169,-5.408413 0.0407,-0.06608 -3.17695,3.387169 -7.36385,0.171386 2.57035,-1.867935 8.78082,-2.021959 13.20489,-3.36606 -6.17494,-4.672645 -12.59125,-6.525266 -19.3725,-6.676498 1.12959,-2.656055 1.47528,-5.428608 0.32899,-9.110782 -1.80442,2.055679 -4.20714,2.33573 -8.82379,-0.361764 -0.40829,-2.1327 3.89219,-2.662655 7.25081,-3.691036 -6.48187,-2.927296 -12.57371,-3.306369 -18.91894,-2.792333 1.56128,-3.867046 -0.33279,-5.536181 -1.10333,-8.216298 -1.06454,3.469481 -2.5964,5.974105 -6.6912,5.948127 -4.03082,-1.130038 -8.68437,-1.824299 -14.61057,-1.656591 -8.79418,-0.4959 -16.89013,0.475898 -23.98768,5.165699 -2.79549,2.499404 -3.6049,-0.728385 -2.49029,-5.343061 -2.54744,3.246638 -4.92985,6.487126 -3.35167,9.848161 -3.51039,-0.684155 -5.05566,0.361144 -6.29022,0.908556 1.07283,1.236569 2.00574,2.598187 1.36187,5.104433 -5.67523,-0.229018 -5.17194,-5.221299 0.23501,-10.976254 -9.60454,3.830836 -12.46718,13.057135 -5.18285,20.796848 -2.14603,-1.980035 -8.35141,-1.55314 -18.49467,4.365873 11.81435,-1.519649 12.91806,-1.80674 15.86633,4.009522 -2.69378,-0.951133 -4.48937,0.711322 -4.491,0.713435 -0.0446,0.02866 1.87442,0.308723 3.31256,4.531752 -3.49059,-0.0554 -3.72984,-1.42541 -6.02498,-4.961831 -0.007,0.0056 -2.71636,7.969211 4.76449,12.689721 z"/> + <path d="m 244.725,110.6 c -4.39124,6.63606 -5.13712,19.34401 -5.13712,19.34401 0,0 2.1368,-3.1649 5.86993,-6.52894 0.8815,5.71669 1.9087,10.0521 3.60878,14.55916 0.36276,2.53892 -2.02049,4.51642 -2.02049,4.51642 0,0 3.27328,1.37131 5.30212,-1.44385 4.56892,6.4186 3.7172,4.9316 6.92104,8.91681 2.96839,4.43391 1.28395,5.91505 0.0742,7.69745 2.76068,-0.18519 4.82148,-0.78594 4.92955,-2.54612 -0.0787,0.0367 3.0246,3.81202 6.493,4.8944 l -6.8328,-22.74081 c 2.89723,5.94738 7.23848,9.11466 12.38979,12.89733 -5.28575,-11.33377 -4.68815,-6.89853 -5.07824,-20.43879 0.71664,0.63515 2.7374,2.27875 2.7374,2.27875 -1.30172,-3.47165 -1.93893,-8.61107 -1.67008,-12.06397 1.44012,-5.506 3.80885,-8.30595 3.80885,-8.30595 3.32454,5.99685 4.73239,7.53814 8.00158,12.52204 2.4016,1.9484 1.50201,8.25688 0.82769,8.51203 0.52186,0.21973 2.21352,-4.577 1.07593,-6.55145 4.20477,5.02816 5.92996,7.36505 11.82174,8.78897 -4.17531,-3.16669 -4.82789,-4.04902 -5.00615,-8.27776 3.79155,4.94105 7.63535,9.85376 13.44317,13.6813 -2.47716,-4.68149 -6.72174,-11.15352 -6.28172,-18.19703 1.95492,2.32888 5.90341,1.4676 9.10444,-1.29984 -4.89397,1.93216 -8.91847,0.0401 -9.89206,-8.99767 -1.33183,-6.56321 -2.18852,-5.8924 -2.18852,-5.8924 6.00807,8.20964 13.10381,14.07105 13.10381,14.07105 0,0 -3.92454,-6.32685 -1.71994,-7.35053 4.21475,4.57753 8.03273,3.73746 10.07958,13.21086 0.44229,5.25056 -2.12429,10.43211 -2.12429,10.43211 0,0 1.92837,-2.26329 3.29281,-2.68415 0.13585,1.4407 0.23907,9.33946 0.30703,10.92985 0,0 6.3016,-14.46835 6.60844,-23.34903 0.19418,-0.007 1.75387,4.93716 2.15859,11.72771 -0.27749,6.51532 -0.60917,7.16107 -2.80224,5.4551 1.13889,1.56808 1.68093,2.21026 2.76408,1.38848 0.34083,5.59223 -2.52258,11.47109 -2.52258,11.47109 5.19062,-4.07044 10.1678,-13.43328 11.516,-21.36538 7.04519,-6.46044 10.39164,0.14784 10.39164,0.14784 -0.49013,-7.30975 -5.08317,-12.56804 -8.70585,-18.31152 3.27119,-3.63191 5.74903,1.68963 8.48574,4.08963 -1.34658,-7.84183 -4.06535,-14.10434 -9.8139,-16.879752 6.56716,-1.636356 7.55169,-5.408413 7.55169,-5.408413 0,0 -3.43706,3.809856 -7.36385,0.171386 2.3664,-2.377804 8.65552,-2.335198 13.20489,-3.36606 -6.32302,-4.343578 -12.81485,-6.028368 -19.3725,-6.676498 0.64033,-2.753907 1.40149,-5.443367 0.32899,-9.110782 -1.85359,2.22779 -4.39099,2.979194 -8.82379,-0.361764 -0.60149,-2.470796 3.75401,-2.904468 7.25081,-3.691036 -6.59977,-2.691505 -12.7835,-2.886794 -18.91894,-2.792333 1.14102,-3.867046 -0.46186,-5.536181 -1.10333,-8.216298 -0.88139,3.579369 -2.36411,6.113479 -6.6912,5.948127 -4.3431,-0.942669 -9.19501,-1.517915 -14.61057,-1.656591 -8.87477,-0.227256 -17.05335,1.019963 -23.98768,5.165699 -2.88716,2.526905 -4.05267,-0.594053 -2.49029,-5.343061 -2.45723,3.28272 -4.73406,6.565441 -3.35167,9.848161 -4.19343,-0.26382 -5.06869,0.369162 -6.29022,0.908556 1.32459,1.110689 2.34072,2.430696 1.36187,5.104433 -6.01749,-0.229018 -5.27195,-5.221299 0.23501,-10.976254 -9.52886,3.818223 -11.90858,12.964035 -5.18285,20.796848 -2.06874,-1.55492 -8.3139,-1.346843 -18.49467,4.365873 11.89037,-1.861722 12.95731,-1.983362 15.86633,4.009522 -3.26245,-0.211865 -4.491,0.713435 -4.491,0.713435 0,0 2.56106,-0.132686 3.31256,4.531752 -3.73067,0.0646 -3.96113,-1.30976 -6.02498,-4.961831 0,0 -2.12454,7.484991 4.76449,12.689721 z" class="hair" inkscape:connector-curvature="0" id="path1508" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccccccc"/> + </g> + <g inkscape:label="Hair_Fore_Messy_WIP_" style="display:inline;opacity:1" id="Hair_Fore_Messy_WIP_" inkscape:groupmode="layer"> + <path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" id="path3414" inkscape:connector-curvature="0" class="hair" d="m 252.24794,92.113797 c -0.96052,2.264012 -5.64352,9.839123 -16.09966,13.658823 0,0 4.03128,0.23574 8.29456,-2.16342 -5.07301,3.43365 -5.36534,15.63575 -3.29992,23.13523 0.6688,-5.8483 3.86138,-8.85359 9.6255,-8.52934 6.00939,18.12052 13.3869,23.40121 10.13527,40.20411 13.55475,-21.08915 -0.46211,-33.033 3.8181,-48.75089 -2.67998,11.78096 4.12804,15.21139 21.11279,16.05052 -19.55073,-5.22411 -18.28832,-12.92979 -11.67742,-20.11928 6.89861,4.63328 9.47546,7.25874 8.13844,18.00809 2.74298,-7.3012 3.91426,-13.50984 -0.0264,-20.05126 4.31985,-0.80694 8.80138,-1.22596 13.24637,-1.23831 0.46387,8.28136 -0.58619,15.42529 8.78124,18.61095 -7.79939,-3.75053 -4.51784,-11.06853 0.20557,-18.06203 0.1274,7.94959 7.31115,13.70771 7.31115,13.70771 0,0 -2.19736,-4.54038 3.58414,-11.24064 0.94867,6.06116 3.59301,15.47195 11.10138,14.94986 -5.99502,-2.23809 -4.9839,-7.62547 -3.57123,-10.64322 2.92323,2.28949 5.70019,-0.0882 8.18901,2.82006 -5.94376,10.16121 4.26425,14.57383 -1.71924,31.94639 11.99178,-16.86883 9.09871,-23.63763 9.35597,-21.74169 -0.44553,9.53964 7.95963,9.19498 14.6621,24.40815 -2.68582,-15.93318 -11.66307,-30.24706 -1.55693,-38.77971 3.52936,2.80629 0.30694,8.06496 0.30694,8.06496 3.0793,-4.29295 5.21747,-10.29156 -1.22236,-18.914898 2.43101,0.420037 5.67703,-1.666329 5.67703,-1.666329 -0.0718,0.506663 -9.67706,-0.79265 -10.71289,-10.448854 -7.39693,-8.329221 -14.1874,-6.687268 -20.54471,-8.360021 6.09505,-0.183064 8.51686,-2.638289 8.51686,-2.638289 -18.10109,1.328173 -27.5723,-11.76133 -44.13502,-4.661263 -7.96307,-0.184056 -14.09272,0.447273 -19.27144,5.970034 -4.5012,0.916506 -10.26256,3.513569 -12.21377,9.185024 -0.94277,0.934117 -7.13478,3.327513 -14.45192,11.693119 4.28041,-3.42356 9.41938,-4.403586 8.44052,-4.403586 z"/> + <path inkscape:connector-curvature="0" d="m 295.51306,103.64371 c 2.3227,-16.110028 -5.82091,-11.754894 -6.02475,-2.93917 2.84313,-13.395015 7.10945,-6.548939 6.02475,2.93917 z" class="shadow" id="path3416" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 304.60384,104.37846 c 1.16709,-5.314038 0.6396,-8.892601 -1.2245,-11.380268 1.5508,2.855719 1.53615,6.246258 1.2245,11.380268 z" class="shadow" id="path3418" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 315.46553,105.3608 c 1.22529,-4.86697 -0.38389,-14.274987 -3.72158,-16.839584 2.79959,2.543923 4.6345,12.137494 3.72158,16.839584 z" class="shadow" id="path3420" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 322.69521,109.66042 c 1.16709,-5.31404 4.33997,-14.89953 1.22977,-17.938973 2.78382,4.241823 -0.36021,12.804963 -1.22977,17.938973 z" class="shadow" id="path3422" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 282.27425,103.87304 c -3.39298,-16.04874 4.65865,-14.431521 7.37221,-5.038411 -3.69836,-14.422901 -11.60298,-6.322749 -7.37221,5.038411 z" class="shadow" id="path3424" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 274.3356,105.99359 c -2.97579,-4.97438 -0.89724,-12.899113 0.30219,-15.509686 -0.88465,2.952941 -2.73651,10.275476 -0.30219,15.509686 z" class="shadow" id="path3426" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 264.7999,110.45778 c -1.44713,-5.37608 0.75769,-10.662914 2.68627,-12.989398 -1.72191,2.716208 -3.53053,7.457428 -2.68627,12.989398 z" class="shadow" id="path3428" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 325.32609,76.971518 c -6.92134,0.855181 -14.44975,-1.043112 -17.31279,-2.673799 3.37003,1.488995 10.2241,3.048788 17.31279,2.673799 z" class="shadow" id="path3430" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 351.01339,97.388519 c -6.32981,-2.356151 -11.17982,-7.254274 -12.37042,-9.867335 1.71114,2.720387 6.24792,7.040678 12.37042,9.867335 z" class="shadow" id="path3432" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 339.3475,97.27368 c 6.50277,2.603673 11.4853,8.01636 12.70844,10.90393 -1.7579,-3.00618 -6.41864,-7.78033 -12.70844,-10.90393 z" class="shadow" id="path3434" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 338.87563,124.67924 c 1.16709,-5.31403 1.93581,-16.93594 0.0717,-19.4236 1.5508,2.85571 0.23994,14.28959 -0.0717,19.4236 z" class="shadow" id="path3436" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 258.40342,95.09793 c -3.73148,4.650551 -10.50695,7.84844 -13.9565,8.46679 3.64695,-1.01102 9.65373,-4.033272 13.9565,-8.46679 z" class="shadow" id="path3438" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 252.1954,92.260874 c 3.23743,-2.668217 10.9756,-3.707486 13.96841,-4.062259 -3.16408,0.580065 -10.23533,1.518563 -13.96841,4.062259 z" class="shadow" id="path3440" sodipodi:nodetypes="ccc"/> + <path inkscape:connector-curvature="0" d="m 250.79165,118.15306 c -0.68711,-5.46806 2.16637,-11.25162 4.40846,-13.39835 -2.09113,2.55187 -4.47455,7.82715 -4.40846,13.39835 z" class="shadow" id="path3442" sodipodi:nodetypes="ccc"/> + </g> <g inkscape:groupmode="layer" id="Hair_Fore_Shaved_Sides" inkscape:label="Hair_Fore_Shaved_Sides" style="display:inline;opacity:1"> <path class="shadow" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" inkscape:connector-curvature="0" id="path1796" d="m 309.69307,97.65617 c -17.4674,-1.204639 -25.4308,1.644362 -36.16819,4.11569 -0.68003,0.0694 -4.23105,0.97759 -4.61142,0.86607 1.30915,-0.0859 1.38463,-0.84993 1.79541,-1.23573 -0.59338,-0.0515 -3.18368,1.17982 -4.30919,1.05469 0.71359,-0.17669 0.91897,-1.36908 0.90981,-1.42157 -0.64987,-0.005 -2.13797,1.39599 -4.39802,1.39922 0.56662,-0.29106 -0.59356,-0.45916 -1.61309,-0.36171 -0.33267,-1.17402 -1.77827,-10.716878 -1.66288,-10.716878 0.0411,-0.02351 1.41393,1.33787 2.62874,2.036298 0.0465,-1.356947 -0.65787,-6.95987 -0.0834,-8.238226 0.0131,1.726882 0.98178,2.683342 1.84777,3.003499 0.34939,-1.354546 1.70899,-8.504441 2.69342,-9.792634 -0.68727,1.361666 0.35317,3.283134 1.05233,3.910535 0.85309,-1.275177 4.47656,-7.895821 5.99977,-9.005718 -0.68317,0.865843 -0.24969,2.360332 0.45554,3.339084 1.89973,-1.69551 7.33581,-6.910625 9.98442,-7.73019 -1.29807,0.670437 -1.42423,2.480578 -1.29445,3.568105 2.01406,-0.907847 11.23667,-5.245425 13.94334,-5.514426 -1.61184,0.466575 -2.21351,1.645167 -2.07998,3.218871 3.47306,-0.550899 16.27769,-1.943806 19.86634,-1.225144 -2.87382,0.102291 -3.91037,1.662458 -4.25189,2.643461 3.3576,0.307421 18.52325,4.29018 20.85226,5.605272 -3.16427,-0.704476 -7.36201,-0.311871 -7.82812,0.392727 1.72391,0.815389 13.17558,7.834721 14.09859,9.103109 -1.52344,-1.055356 -5.21954,-1.913664 -7.23933,-1.815917 2.09269,2.60075 9.00221,17.188672 9.32433,20.682252 -0.58176,-2.10303 -3.71936,-7.150209 -5.66374,-7.520508 -0.30151,0.242836 0.22145,1.465174 0.55147,1.942155 -1.44561,-0.267194 -6.40156,-3.13381 -6.88678,-4.034918 0.35373,0.637004 0.58313,1.430424 1.22174,1.654983 -1.35757,0.235461 -5.14516,-0.191863 -6.72537,-1.350775 -0.0542,0.247243 0.87189,2.273199 2.1583,2.389433 -1.05732,0.276563 -7.27001,-0.738695 -9.7834,-1.533585 0.01,0.199902 0.60945,1.172429 2.03967,1.298771 -2.64339,0.629993 -4.41634,0.07421 -6.82398,-0.726287 z"/> <path d="m 309.69307,97.65617 c -17.37586,-2.120034 -25.41574,1.493793 -36.16819,4.11569 -0.47841,-0.0516 -4.1493,0.92854 -4.61142,0.86607 1.42837,-0.0859 1.55789,-0.84993 1.79541,-1.23573 -0.87421,-0.12174 -3.37014,1.13321 -4.30919,1.05469 0.82987,-0.19607 1.1481,-1.40727 0.90981,-1.42157 -0.76096,-0.0457 -2.62442,1.2191 -4.39802,1.39922 0.94231,-0.45804 -0.466,-0.51585 -1.61309,-0.36171 0,-1.17402 -1.66288,-10.716878 -1.66288,-10.716878 0,0 1.08606,1.525225 2.62874,2.036298 0.30509,-1.356947 -0.58608,-6.95987 -0.0834,-8.238226 -0.0568,1.740861 0.77245,2.725209 1.84777,3.003499 0.64286,-1.39647 1.8062,-8.518328 2.69342,-9.792634 -0.74512,1.390593 0.0862,3.416617 1.05233,3.910535 1.07459,-1.275177 4.66705,-7.895821 5.99977,-9.005718 -0.72972,0.904639 -0.52345,2.588469 0.45554,3.339084 2.12596,-1.393868 7.45598,-6.750392 9.98442,-7.73019 -1.37352,0.683011 -1.68065,2.523315 -1.29445,3.568105 2.25579,-0.756764 11.46628,-5.10192 13.94334,-5.514426 -1.6692,0.482964 -2.53104,1.73589 -2.07998,3.218871 3.50849,-0.232022 16.3006,-1.737588 19.86634,-1.225144 -2.92418,-0.06557 -4.03046,1.262169 -4.25189,2.643461 2.70475,0.699132 18.35415,4.391638 20.85226,5.605272 -3.19823,-0.908232 -7.38666,-0.459771 -7.82812,0.392727 1.30998,0.96591 12.95417,7.915235 14.09859,9.103109 -1.63457,-1.134733 -5.85679,-2.368843 -7.23933,-1.815917 1.66096,2.654716 8.7825,17.216132 9.32433,20.682252 -0.57672,-2.11564 -3.61976,-7.399215 -5.66374,-7.520508 -0.48776,0.296049 -0.004,1.529588 0.55147,1.942155 -1.14866,-0.394459 -6.30994,-3.173076 -6.88678,-4.034918 0.24198,0.637004 0.40367,1.430424 1.22174,1.654983 -1.04773,0.04956 -4.86607,-0.359315 -6.72537,-1.350775 -0.14014,0.284063 0.57145,2.401961 2.1583,2.389433 -0.8921,0.15855 -7.02602,-0.912975 -9.7834,-1.533585 -0.17058,0.299994 0.27003,1.360996 2.03967,1.298771 -2.4806,0.467202 -4.17031,-0.171814 -6.82398,-0.726287 z" id="path3172-2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" class="hair"/> @@ -2402,6 +2889,6 @@ <path d="m 266.34659,144.54138 -2.41338,-7.27285 c 4.6902,-8.38077 4.88067,-17.02624 5.73537,-25.63263 21.08768,5.4249 32.45085,-3.58963 46.25533,-8.97917 4.54626,10.24925 10.74238,20.54574 18.1349,30.66532 14.49381,-20 17.75545,-33.06365 10.58856,-47.682879 -9.23347,-18.83469 -36.15618,-29.840266 -56.91699,-26.841732 -19.15897,2.767177 -39.46024,19.662162 -43.36963,38.621071 -3.50051,16.976 -0.19702,37.87287 21.98584,47.12287 z" class="hair" inkscape:connector-curvature="0" id="path1558" sodipodi:nodetypes="cccccaaac"/> </g> </g> - <g inkscape:groupmode="layer" id="Notes_" inkscape:label="Notes_" style="display:inline"><text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="-187.58824" y="1041.6471" id="text4352"><tspan sodipodi:role="line" id="tspan4354" x="-187.58824" y="1041.6471" style="font-size:17.5px;line-height:1.25">prndev's notes:</tspan><tspan sodipodi:role="line" x="-187.58824" y="1063.5221" id="tspan4356" style="font-size:17.5px;line-height:1.25">I work with Inkscape. I do not know how Illustrator behaves.</tspan><tspan sodipodi:role="line" x="-187.58824" y="1085.3971" id="tspan4358" style="font-size:17.5px;line-height:1.25">All Inkscape Layers are SVG groups.</tspan><tspan sodipodi:role="line" x="-187.58824" y="1107.2721" id="tspan4360" style="font-size:17.5px;line-height:1.25">Inkscape Layer names should be unique.</tspan><tspan sodipodi:role="line" x="-187.58824" y="1129.1471" id="tspan4362" style="font-size:17.5px;line-height:1.25">Inkscape Layer names should be the same as the corresponding SVG group ID (use provided fixup tool to be sure).</tspan><tspan sodipodi:role="line" x="-187.58824" y="1151.0221" id="tspan4364" style="font-size:17.5px;line-height:1.25">All changable style (most notably fill) should be defined in a class.</tspan><tspan sodipodi:role="line" x="-187.58824" y="1172.8971" id="tspan4366" style="font-size:17.5px;line-height:1.25">All conflicting attribute style should be removed (use provided fixup tool to be sure).</tspan><tspan sodipodi:role="line" x="-187.58824" y="1194.7721" id="tspan4368" style="font-size:17.5px;line-height:1.25">All groups with IDs NOT ending in underscore "_", starting with "g" or "XMLID" are exported into separate files.</tspan><tspan sodipodi:role="line" x="-187.58824" y="1216.6471" id="tspan4060" style="font-size:17.5px;line-height:1.25">A single quote ' breaks embedding. Use them to include Twine variables (see README for details).</tspan><tspan sodipodi:role="line" x="-187.58824" y="1238.5221" id="tspan4370" style="font-size:17.5px;line-height:1.25">Original art credit goes to Nov-X.</tspan></text> + <g inkscape:groupmode="layer" id="Notes_" inkscape:label="Notes_" style="display:inline"><text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="-183.58824" y="1037.6471" id="text4352"><tspan sodipodi:role="line" id="tspan4354" x="-183.58824" y="1037.6471" style="font-size:17.5px;line-height:1.25">prndev's notes:</tspan><tspan sodipodi:role="line" x="-183.58824" y="1059.5221" id="tspan4356" style="font-size:17.5px;line-height:1.25">I work with Inkscape. I do not know how Illustrator behaves.</tspan><tspan sodipodi:role="line" x="-183.58824" y="1081.3971" id="tspan4358" style="font-size:17.5px;line-height:1.25">All Inkscape Layers are SVG groups.</tspan><tspan sodipodi:role="line" x="-183.58824" y="1103.2721" id="tspan4360" style="font-size:17.5px;line-height:1.25">Inkscape Layer names should be unique.</tspan><tspan sodipodi:role="line" x="-183.58824" y="1125.1471" id="tspan4362" style="font-size:17.5px;line-height:1.25">Inkscape Layer names should be the same as the corresponding SVG group ID (use provided fixup tool to be sure).</tspan><tspan sodipodi:role="line" x="-183.58824" y="1147.0221" id="tspan4364" style="font-size:17.5px;line-height:1.25">All changable style (most notably fill) should be defined in a class.</tspan><tspan sodipodi:role="line" x="-183.58824" y="1168.8971" id="tspan4366" style="font-size:17.5px;line-height:1.25">All conflicting attribute style should be removed (use provided fixup tool to be sure).</tspan><tspan sodipodi:role="line" x="-183.58824" y="1190.7721" id="tspan4368" style="font-size:17.5px;line-height:1.25">All groups with IDs NOT ending in underscore "_", starting with "g" or "XMLID" are exported into separate files.</tspan><tspan sodipodi:role="line" x="-183.58824" y="1212.6471" id="tspan4060" style="font-size:17.5px;line-height:1.25">A single quote ' breaks embedding. Use them to include Twine variables (see README for details).</tspan><tspan sodipodi:role="line" x="-183.58824" y="1234.5221" id="tspan4370" style="font-size:17.5px;line-height:1.25">Original art credit goes to Nov-X.</tspan></text> </g> </svg> diff --git a/compile b/compile index 8eeced8538a1ebb5891e7227430cf756854ce7f6..1a35d073a5aa5d040fc7e1bf53d69570c3ac3829 100755 --- a/compile +++ b/compile @@ -1,34 +1,54 @@ #!/bin/bash +while [[ "$1" ]] +do + case $1 in + --insane) + insane="true" + ;; + *) + echo "Unknown argument $1" + exit 1 + esac + shift +done + # Find and insert current commit COMMIT=$(git rev-parse --short HEAD) sed -Ei "s/build .releaseID/\0 commit $COMMIT/" src/gui/mainMenu/AlphaDisclaimer.tw - -# Run sanity check. -./sanityCheck +if [[ ! "$insane" ]] +then + # Run sanity check. + ./sanityCheck +fi ARCH="$(uname -m)" if [ "$ARCH" = "x86_64" ] then echo "x64 arch" - ./devTools/tweeGo/tweego_nix64 -o bin/FC_pregmod.html src/ + ./devTools/tweeGo/tweego_nix64 -o bin/FC_pregmod.html src/ || build_failed="true" elif echo "$ARCH" | grep -Ee '86$' > /dev/null then echo "x86 arch" - ./devTools/tweeGo/tweego_nix86 -o bin/FC_pregmod.html src/ + ./devTools/tweeGo/tweego_nix86 -o bin/FC_pregmod.html src/ || build_failed="true" elif echo "$ARCH" | grep -Ee '^arm' > /dev/null then echo "arm arch" # tweego doesn't provide arm binaries so you have to build it yourself export TWEEGO_PATH=devTools/tweeGo/storyFormats - tweego -o bin/FC_pregmod.html src/ + tweego -o bin/FC_pregmod.html src/ || build_failed="true" else exit 2 fi -#Make the output prettier, replacing \t with a tab and \n with a newline -sed -i -e '/^.*<div id="store-area".*$/s/\\t/\t/g' -e '/^.*<div id="store-area".*$/s/\\n/\n/g' bin/FC_pregmod.html - # Revert AlphaDisclaimer for next compilation git checkout -- src/gui/mainMenu/AlphaDisclaimer.tw + +if [ "$build_failed" = "true" ] +then + exit 1 +fi + +#Make the output prettier, replacing \t with a tab and \n with a newline +sed -i -e '/^.*<div id="store-area".*$/s/\\t/\t/g' -e '/^.*<div id="store-area".*$/s/\\n/\n/g' bin/FC_pregmod.html diff --git a/devNotes/Bodyswap text.docx b/devNotes/Bodyswap text.docx index 0afb08ba8de092051dacab4d1f4cd42232120574..86bb22d77ba9805a55c0eafa00200a9fb380d677 100644 Binary files a/devNotes/Bodyswap text.docx and b/devNotes/Bodyswap text.docx differ diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 289eb4210fc0edfb12864391ab68966be8dadb7d..d998a4929960cf42f137caf12f91c1169874d83d 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -2,8 +2,364 @@ 0.10.7.0/1 +3/24/2018 + + 7 + -fixed a couple minor annoyances + -if any slave has a .reservedChildren value, the incubator global tracking resetter will be usable + + 6 + -new voluntarily enslaved pairs can show their incestual love during recruitment + -minor tweaks to muscle building and steroids + -added fertility diet + + 5 + -fixed improper usage of jsEither() + +3/23/2018 + + 4 + -fixes to setPregType() + -slimming diet can now be reassigned after muscles are completely gone to trim assets + + 3.1 + -little fix to broodmother initiation in wombJS + + 3 + -finished implementing setPregType(), now to find it outputs multiples too readily + -incubator now adjusts .hormoneBalance when the hormone settings are on + -various spelling corrections and a minor bugfix + + 2.1 + -minor fixes + -fixed boomerang slave relation null pointer exception + + 2 + -fixed boomerang slaves null pointer excetions regarding rivalries and relationships + + 1.1 + -reverted change to traitor slave origin concatenation + + 1 + -many spelling corrections + -fixes to decreasing custom nationality weighting + -fixes to bad versionID setting + -partial implementaion of setPregType() + + 0.1 + -minor fix to generateXYslave + + 0 + -fixes severe issues with customized slave trade + *Requires backwards compatibility - no exceptions + + v1022 (0.10.7.1-0.1.0) + +3/22/2018 + + 407 + -spelling fixes + -decreased memory usage, apparently signifigantly + -added setPregType(), but not implemented it yet + *Severe issues with customized slave trade. If you are not using it, DO NOT USE THIS VERSION. + + 406 + -minor fixes + -major fixes and overhauling to autosurgery and to the RA + -backwards compatibility should no longer unset all your rules + -FResult JSification + +3/21/2018 + + 405 + -various text fixes + -fixes to csec bug + + 404 + -numerous reported bugs fixed + -also a few typos + +3/20/2018 + + 403.1 + -fixed all reported bugs and typos + + 403 + -XX, XY, and XXY diets now properly handle boobs + -minor fixes + -pregmodder can not spell "receive" thus necessitating a sanityCheck entry + + 402 + -SFanon's new trio of recruits + -Pregmodfan's continued fixing and tweaking of his preg tracking system + -lower back brand location + -fixes + +3/19/2018 + + 401 + -tweaked saLongTermEffects pregnancy setting + -various little fixes + -fixed missed closing '>' in neighborsFSAdoption + +3/18/2018 + + 400 + -added neighbor FS Incest Festishist + -new JS functions (areRelated()) + -more fixes + +3/17/2018 + + 399.2 + -added missing impregnation checks to slave-slave impreg + + 399.1 + -policy now sets properly + + 399 + -added incest focus policy (pre-EgyptianRevivalist bonus) + -SFanon's fixes and tweaks + -pregmodfan's fixes to the autosurgery + -pregmodfan's belly implant implantation and filling to the RA + -pregmodfan's broodmother implant tweaks (implant stays in after shutdown; must be removed surgically, but can be restarted) + -various little text fixes + +3/16/2018 + + 398 + -fixed HG, BG, and HG's slave not showing up in endweek if you have no other slaves in the penthouse + -various text fixes + +3/15/2018 + + 397 + -fixed broken nice nurse outfit belly description + -game start player pregnancies should be initialized properly now + + 396 + -fixes to PC cheat menu + -continued work on belly descriptions + -minor text fixes + +3/14/2018 + + 395.1 + -fixes hostage inheriting starting girls wombs + + 395 + -unbroke fake belly clothing descriptions + -fixed starting girls sometimes having piercings + +3/12/2018 + + 394 + -more fixes to pregnancy clearing + +3/11/2018 + + 393 + -Incursion specialist background + -little fixes + + 392 + -SFanon's PC cheat menu + -fixes to sellSlave and slaveSold + +3/10/2018 + + 391 + -finished saChoosesOwnClothes rework + -fixes + +3/09/2018 + + 390 + -sugarcube updated to 2.24.0 + -little text fixes + -tweaks to personal attention "sex" to make use of available tits and dicks where appropriate and to not use virgin holes + + 389 + -various git fixes (brothel implant ads, custom slave voice, SF tweaks) + -stripped JS of all "Sugarcube.State"s leaving it as "State" + +3/08/2018 + + 388 + -fixed a very very unlikely case in sister indentification + -fixed some improper pregnancy sets in the dairy + -fixed more improper preg sets in saLongTermEffects + -barred random impreg in dairies with preg settings on + + 387 + -tweaked saGuardsYou to actually count facility heads the BG has trained when it comes to counting successors + -your BG nows considers servants and your harem in her count + -a race now no longer can be both superior and inferior + -slaves can now die of age as young as 50 should they be in bad condition, conversely, healthy slaves live longer + -reordered full royal court enslavement to circumvent a possible ghost in the machine situation + -partial revert to scheduledEvent to handle sugarcube BS + + 386 + -tweaked childgen to only random face and int for playerXmarked if the child is below the minimum value + -migrated mindbroken kicker cases from slaveAssignmentsReport to saTakeClasses and saStayConfined + -hyperpreg and overwhelmingly female hormone balances now prevent oversized breasts from shrinking + -slaves below 10 are now more resistant to developing fetishes + -fixed bad initialization + -various little text corrections + + 385 + -fixed itt noted errors + -lowercasedonkey's tabed slave overview (find it in options) + -tweaks for potential issues in scheduled events + +3/07/18 + + 384 + -various git merges + -devoted virgin event + +3/04/18 + + 383 + -Revamped vector art content + -Edit neighbor cheats + -various submitted fixes + -various reported bugs + +???? + + 382 + -overhauled saChoosesOwnClothes (currently trapped on a powerless computer) + +3/02/18 + + 381 + -ocular implants now get consumed on use + -fixed minor text bugs + +3/01/18 + + 380 + -addition gui support for jquery (git only for now) + -crimeanon's secEx replenish all option and fixes + +2/28/18 + + 379 + -more fixes to player birth + + 378 + -fixed issues with mindbreak/fuckdolls and corsets/heels + -masochists now get off from extreme corsets and heels + -fixes to trade show + +2/27/18 + + 377 + -major fix to youth and maturity pref failing not clearing SMR, law and PA appearance + + 376 + -pregmodfan's fixes to player pregnancy + + 375 + -Sfanon's fixes and tweaks + -some more robust catchers for NaN'd rep + -pregmodfan's tweaking to saAgent + -cleaned out all the new sanityCheck complaints + + 374 + -fixed pregnancy desync in startingGirls + +2/26/18 + + 373 + -raWidgets now will not complain about "please you" + -fixed policies and PA tabs requiring cybermod + -some code cleanup in RETS + -removed a mysterious <<break>> in the neighbors FS selection + + 372 + -more prodding to seBirthWidgets + -sidebar reorganization + +2/25/18 + + 371 + -cleaned up seBirthWidgets some more to bring in back in line with original intent + -various little fixes + + 370 + -various bug fixes + -more stuff from SFanon + Agent pregnancy bug still in play. + +2/24/18 + + 369 + -fixes for pregmodfan's pregnancy tracking + -SFanon's continued SF work + + 368 + -added missing dairy broodmother birth + -hacking skill allows you to pose as a medical expert to gain access to some of surgeon's starting bonuses + -reduced hacking bonus to be in line with other bonuses + -tons of logic fixes in scenes + -updated RA to use itemAccessibility JS + +2/23/18 + + 367 + -filled another braces exploit + -SFanon's SF work + + 366 + -more support from pregmodfan to his new system + -fixes to the facility decoration bug + -other fixes + -added a new hpreg recruit (in cheatmode only as preg counts that high aren't handled yet) + + 365 + -SFanon's player hacking skill (basic implementation) + Still more to come with it. + +2/22/18 + + 364 + -sidebar notification when you can start a new FS + -pregmodfan's new pregnancy tracking system + -fixes to players being unable to manage HG, BG, rec + +2/21/18 + + 363 + -added labor suppressant feedback to BellyDescription + -tweaked Mercenary Romeo to avoid mastersuite slaves and your wives if given the option. + -further tweaked Mercenary Romeo to only fire off if you have a public slave or a slave that has seen lots of public duty. MB, FD and NG+ exclusions. + +2/20/18 + + 362 + -added .pregWeek to the advanced cheat edit slave + -added slow gestation feedback to PregnancyDescription + -added labor suppressant feedback to PregnancyDescription + -added speed gestation feedback to PregnancyDescription + BellyDescription may need additions as well for the trio. + +2/19/18 + + 361 + -revised fertility goddess nicknames to favor nationality based ones before others + + 360 + -added fertility goddess nickname type (needs more nicknames) + -added head girl tastes for Repop focus + 2/18/18 + 359 + -neighbors can now have the same potential number of FS as you instead of a hardset 4 + -this also caps the rival + 358 -attempted to plug braces exploit diff --git a/devNotes/sugarcube stuff/header backup 225.html b/devNotes/sugarcube stuff/header backup 225.html new file mode 100644 index 0000000000000000000000000000000000000000..405cf1212604b7c1909f750302b63d0ea17f0821 --- /dev/null +++ b/devNotes/sugarcube stuff/header backup 225.html @@ -0,0 +1,126 @@ +<!DOCTYPE html> +<html data-init="no-js"> +<head> +<meta charset="UTF-8" /> +<title>SugarCube</title> +<meta name="viewport" content="width=device-width,initial-scale=1" /> +<!-- + +SugarCube (v2.24.0): A free (gratis and libre) story format. + +Copyright © 2013–2018 Thomas Michael Edwards <thomasmedwards@gmail.com>. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--> +<!-- + +Build Info: + * "TIME" + * "VERSION" + +--> +<script id="script-libraries" type="text/javascript"> +if(document.head&&document.addEventListener&&document.querySelector&&Object.create&&Object.freeze&&JSON){document.documentElement.setAttribute("data-init", "loading"); +/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */ +if("document" in self){if(!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false,q;do{r=t[s]+"";q=g(this,r);while(q!==-1){this.splice(q,1);o=true;q=g(this,r)}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}if(q===true||q===false){return q}else{return !o}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))}else{(function(){var b=document.createElement("_");b.classList.add("c1","c2");if(!b.classList.contains("c2")){var c=function(e){var d=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(h){var g,f=arguments.length;for(g=0;g<f;g++){h=arguments[g];d.call(this,h)}}};c("add");c("remove")}b.classList.toggle("c3",false);if(b.classList.contains("c3")){var a=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(d,e){if(1 in arguments&&!this.contains(d)===!e){return e}else{return a.call(this,d)}}}b=null}())}}; +/*! + * https://github.com/es-shims/es5-shim + * @license es5-shim Copyright 2009-2015 by contributors, MIT License + * see https://github.com/es-shims/es5-shim/blob/v4.5.9/LICENSE + */ +(function(t,r){"use strict";if(typeof define==="function"&&define.amd){define(r)}else if(typeof exports==="object"){module.exports=r()}else{t.returnExports=r()}})(this,function(){var t=Array;var r=t.prototype;var e=Object;var n=e.prototype;var i=Function;var a=i.prototype;var o=String;var f=o.prototype;var u=Number;var l=u.prototype;var s=r.slice;var c=r.splice;var v=r.push;var h=r.unshift;var p=r.concat;var y=r.join;var d=a.call;var g=a.apply;var w=Math.max;var b=Math.min;var T=n.toString;var m=typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol";var D;var S=Function.prototype.toString,x=/^\s*class /,O=function isES6ClassFn(t){try{var r=S.call(t);var e=r.replace(/\/\/.*\n/g,"");var n=e.replace(/\/\*[.\s\S]*\*\//g,"");var i=n.replace(/\n/gm," ").replace(/ {2}/g," ");return x.test(i)}catch(a){return false}},j=function tryFunctionObject(t){try{if(O(t)){return false}S.call(t);return true}catch(r){return false}},E="[object Function]",I="[object GeneratorFunction]",D=function isCallable(t){if(!t){return false}if(typeof t!=="function"&&typeof t!=="object"){return false}if(m){return j(t)}if(O(t)){return false}var r=T.call(t);return r===E||r===I};var M;var U=RegExp.prototype.exec,F=function tryRegexExec(t){try{U.call(t);return true}catch(r){return false}},N="[object RegExp]";M=function isRegex(t){if(typeof t!=="object"){return false}return m?F(t):T.call(t)===N};var C;var k=String.prototype.valueOf,A=function tryStringObject(t){try{k.call(t);return true}catch(r){return false}},R="[object String]";C=function isString(t){if(typeof t==="string"){return true}if(typeof t!=="object"){return false}return m?A(t):T.call(t)===R};var P=e.defineProperty&&function(){try{var t={};e.defineProperty(t,"x",{enumerable:false,value:t});for(var r in t){return false}return t.x===t}catch(n){return false}}();var $=function(t){var r;if(P){r=function(t,r,n,i){if(!i&&r in t){return}e.defineProperty(t,r,{configurable:true,enumerable:false,writable:true,value:n})}}else{r=function(t,r,e,n){if(!n&&r in t){return}t[r]=e}}return function defineProperties(e,n,i){for(var a in n){if(t.call(n,a)){r(e,a,n[a],i)}}}}(n.hasOwnProperty);var J=function isPrimitive(t){var r=typeof t;return t===null||r!=="object"&&r!=="function"};var Y=u.isNaN||function isActualNaN(t){return t!==t};var Z={ToInteger:function ToInteger(t){var r=+t;if(Y(r)){r=0}else if(r!==0&&r!==1/0&&r!==-(1/0)){r=(r>0||-1)*Math.floor(Math.abs(r))}return r},ToPrimitive:function ToPrimitive(t){var r,e,n;if(J(t)){return t}e=t.valueOf;if(D(e)){r=e.call(t);if(J(r)){return r}}n=t.toString;if(D(n)){r=n.call(t);if(J(r)){return r}}throw new TypeError},ToObject:function(t){if(t==null){throw new TypeError("can't convert "+t+" to object")}return e(t)},ToUint32:function ToUint32(t){return t>>>0}};var z=function Empty(){};$(a,{bind:function bind(t){var r=this;if(!D(r)){throw new TypeError("Function.prototype.bind called on incompatible "+r)}var n=s.call(arguments,1);var a;var o=function(){if(this instanceof a){var i=g.call(r,this,p.call(n,s.call(arguments)));if(e(i)===i){return i}return this}else{return g.call(r,t,p.call(n,s.call(arguments)))}};var f=w(0,r.length-n.length);var u=[];for(var l=0;l<f;l++){v.call(u,"$"+l)}a=i("binder","return function ("+y.call(u,",")+"){ return binder.apply(this, arguments); }")(o);if(r.prototype){z.prototype=r.prototype;a.prototype=new z;z.prototype=null}return a}});var G=d.bind(n.hasOwnProperty);var B=d.bind(n.toString);var H=d.bind(s);var W=g.bind(s);var L=d.bind(f.slice);var X=d.bind(f.split);var q=d.bind(f.indexOf);var K=d.bind(v);var Q=d.bind(n.propertyIsEnumerable);var V=d.bind(r.sort);var _=t.isArray||function isArray(t){return B(t)==="[object Array]"};var tt=[].unshift(0)!==1;$(r,{unshift:function(){h.apply(this,arguments);return this.length}},tt);$(t,{isArray:_});var rt=e("a");var et=rt[0]!=="a"||!(0 in rt);var nt=function properlyBoxed(t){var r=true;var e=true;var n=false;if(t){try{t.call("foo",function(t,e,n){if(typeof n!=="object"){r=false}});t.call([1],function(){"use strict";e=typeof this==="string"},"x")}catch(i){n=true}}return!!t&&!n&&r&&e};$(r,{forEach:function forEach(t){var r=Z.ToObject(this);var e=et&&C(this)?X(this,""):r;var n=-1;var i=Z.ToUint32(e.length);var a;if(arguments.length>1){a=arguments[1]}if(!D(t)){throw new TypeError("Array.prototype.forEach callback must be a function")}while(++n<i){if(n in e){if(typeof a==="undefined"){t(e[n],n,r)}else{t.call(a,e[n],n,r)}}}}},!nt(r.forEach));$(r,{map:function map(r){var e=Z.ToObject(this);var n=et&&C(this)?X(this,""):e;var i=Z.ToUint32(n.length);var a=t(i);var o;if(arguments.length>1){o=arguments[1]}if(!D(r)){throw new TypeError("Array.prototype.map callback must be a function")}for(var f=0;f<i;f++){if(f in n){if(typeof o==="undefined"){a[f]=r(n[f],f,e)}else{a[f]=r.call(o,n[f],f,e)}}}return a}},!nt(r.map));$(r,{filter:function filter(t){var r=Z.ToObject(this);var e=et&&C(this)?X(this,""):r;var n=Z.ToUint32(e.length);var i=[];var a;var o;if(arguments.length>1){o=arguments[1]}if(!D(t)){throw new TypeError("Array.prototype.filter callback must be a function")}for(var f=0;f<n;f++){if(f in e){a=e[f];if(typeof o==="undefined"?t(a,f,r):t.call(o,a,f,r)){K(i,a)}}}return i}},!nt(r.filter));$(r,{every:function every(t){var r=Z.ToObject(this);var e=et&&C(this)?X(this,""):r;var n=Z.ToUint32(e.length);var i;if(arguments.length>1){i=arguments[1]}if(!D(t)){throw new TypeError("Array.prototype.every callback must be a function")}for(var a=0;a<n;a++){if(a in e&&!(typeof i==="undefined"?t(e[a],a,r):t.call(i,e[a],a,r))){return false}}return true}},!nt(r.every));$(r,{some:function some(t){var r=Z.ToObject(this);var e=et&&C(this)?X(this,""):r;var n=Z.ToUint32(e.length);var i;if(arguments.length>1){i=arguments[1]}if(!D(t)){throw new TypeError("Array.prototype.some callback must be a function")}for(var a=0;a<n;a++){if(a in e&&(typeof i==="undefined"?t(e[a],a,r):t.call(i,e[a],a,r))){return true}}return false}},!nt(r.some));var it=false;if(r.reduce){it=typeof r.reduce.call("es5",function(t,r,e,n){return n})==="object"}$(r,{reduce:function reduce(t){var r=Z.ToObject(this);var e=et&&C(this)?X(this,""):r;var n=Z.ToUint32(e.length);if(!D(t)){throw new TypeError("Array.prototype.reduce callback must be a function")}if(n===0&&arguments.length===1){throw new TypeError("reduce of empty array with no initial value")}var i=0;var a;if(arguments.length>=2){a=arguments[1]}else{do{if(i in e){a=e[i++];break}if(++i>=n){throw new TypeError("reduce of empty array with no initial value")}}while(true)}for(;i<n;i++){if(i in e){a=t(a,e[i],i,r)}}return a}},!it);var at=false;if(r.reduceRight){at=typeof r.reduceRight.call("es5",function(t,r,e,n){return n})==="object"}$(r,{reduceRight:function reduceRight(t){var r=Z.ToObject(this);var e=et&&C(this)?X(this,""):r;var n=Z.ToUint32(e.length);if(!D(t)){throw new TypeError("Array.prototype.reduceRight callback must be a function")}if(n===0&&arguments.length===1){throw new TypeError("reduceRight of empty array with no initial value")}var i;var a=n-1;if(arguments.length>=2){i=arguments[1]}else{do{if(a in e){i=e[a--];break}if(--a<0){throw new TypeError("reduceRight of empty array with no initial value")}}while(true)}if(a<0){return i}do{if(a in e){i=t(i,e[a],a,r)}}while(a--);return i}},!at);var ot=r.indexOf&&[0,1].indexOf(1,2)!==-1;$(r,{indexOf:function indexOf(t){var r=et&&C(this)?X(this,""):Z.ToObject(this);var e=Z.ToUint32(r.length);if(e===0){return-1}var n=0;if(arguments.length>1){n=Z.ToInteger(arguments[1])}n=n>=0?n:w(0,e+n);for(;n<e;n++){if(n in r&&r[n]===t){return n}}return-1}},ot);var ft=r.lastIndexOf&&[0,1].lastIndexOf(0,-3)!==-1;$(r,{lastIndexOf:function lastIndexOf(t){var r=et&&C(this)?X(this,""):Z.ToObject(this);var e=Z.ToUint32(r.length);if(e===0){return-1}var n=e-1;if(arguments.length>1){n=b(n,Z.ToInteger(arguments[1]))}n=n>=0?n:e-Math.abs(n);for(;n>=0;n--){if(n in r&&t===r[n]){return n}}return-1}},ft);var ut=function(){var t=[1,2];var r=t.splice();return t.length===2&&_(r)&&r.length===0}();$(r,{splice:function splice(t,r){if(arguments.length===0){return[]}else{return c.apply(this,arguments)}}},!ut);var lt=function(){var t={};r.splice.call(t,0,0,1);return t.length===1}();$(r,{splice:function splice(t,r){if(arguments.length===0){return[]}var e=arguments;this.length=w(Z.ToInteger(this.length),0);if(arguments.length>0&&typeof r!=="number"){e=H(arguments);if(e.length<2){K(e,this.length-t)}else{e[1]=Z.ToInteger(r)}}return c.apply(this,e)}},!lt);var st=function(){var r=new t(1e5);r[8]="x";r.splice(1,1);return r.indexOf("x")===7}();var ct=function(){var t=256;var r=[];r[t]="a";r.splice(t+1,0,"b");return r[t]==="a"}();$(r,{splice:function splice(t,r){var e=Z.ToObject(this);var n=[];var i=Z.ToUint32(e.length);var a=Z.ToInteger(t);var f=a<0?w(i+a,0):b(a,i);var u=b(w(Z.ToInteger(r),0),i-f);var l=0;var s;while(l<u){s=o(f+l);if(G(e,s)){n[l]=e[s]}l+=1}var c=H(arguments,2);var v=c.length;var h;if(v<u){l=f;var p=i-u;while(l<p){s=o(l+u);h=o(l+v);if(G(e,s)){e[h]=e[s]}else{delete e[h]}l+=1}l=i;var y=i-u+v;while(l>y){delete e[l-1];l-=1}}else if(v>u){l=i-u;while(l>f){s=o(l+u-1);h=o(l+v-1);if(G(e,s)){e[h]=e[s]}else{delete e[h]}l-=1}}l=f;for(var d=0;d<c.length;++d){e[l]=c[d];l+=1}e.length=i-u+v;return n}},!st||!ct);var vt=r.join;var ht;try{ht=Array.prototype.join.call("123",",")!=="1,2,3"}catch(pt){ht=true}if(ht){$(r,{join:function join(t){var r=typeof t==="undefined"?",":t;return vt.call(C(this)?X(this,""):this,r)}},ht)}var yt=[1,2].join(undefined)!=="1,2";if(yt){$(r,{join:function join(t){var r=typeof t==="undefined"?",":t;return vt.call(this,r)}},yt)}var dt=function push(t){var r=Z.ToObject(this);var e=Z.ToUint32(r.length);var n=0;while(n<arguments.length){r[e+n]=arguments[n];n+=1}r.length=e+n;return e+n};var gt=function(){var t={};var r=Array.prototype.push.call(t,undefined);return r!==1||t.length!==1||typeof t[0]!=="undefined"||!G(t,0)}();$(r,{push:function push(t){if(_(this)){return v.apply(this,arguments)}return dt.apply(this,arguments)}},gt);var wt=function(){var t=[];var r=t.push(undefined);return r!==1||t.length!==1||typeof t[0]!=="undefined"||!G(t,0)}();$(r,{push:dt},wt);$(r,{slice:function(t,r){var e=C(this)?X(this,""):this;return W(e,arguments)}},et);var bt=function(){try{[1,2].sort(null);[1,2].sort({});return true}catch(t){}return false}();var Tt=function(){try{[1,2].sort(/a/);return false}catch(t){}return true}();var mt=function(){try{[1,2].sort(undefined);return true}catch(t){}return false}();$(r,{sort:function sort(t){if(typeof t==="undefined"){return V(this)}if(!D(t)){throw new TypeError("Array.prototype.sort callback must be a function")}return V(this,t)}},bt||!mt||!Tt);var Dt=!Q({toString:null},"toString");var St=Q(function(){},"prototype");var xt=!G("x","0");var Ot=function(t){var r=t.constructor;return r&&r.prototype===t};var jt={$window:true,$console:true,$parent:true,$self:true,$frame:true,$frames:true,$frameElement:true,$webkitIndexedDB:true,$webkitStorageInfo:true,$external:true};var Et=function(){if(typeof window==="undefined"){return false}for(var t in window){try{if(!jt["$"+t]&&G(window,t)&&window[t]!==null&&typeof window[t]==="object"){Ot(window[t])}}catch(r){return true}}return false}();var It=function(t){if(typeof window==="undefined"||!Et){return Ot(t)}try{return Ot(t)}catch(r){return false}};var Mt=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"];var Ut=Mt.length;var Ft=function isArguments(t){return B(t)==="[object Arguments]"};var Nt=function isArguments(t){return t!==null&&typeof t==="object"&&typeof t.length==="number"&&t.length>=0&&!_(t)&&D(t.callee)};var Ct=Ft(arguments)?Ft:Nt;$(e,{keys:function keys(t){var r=D(t);var e=Ct(t);var n=t!==null&&typeof t==="object";var i=n&&C(t);if(!n&&!r&&!e){throw new TypeError("Object.keys called on a non-object")}var a=[];var f=St&&r;if(i&&xt||e){for(var u=0;u<t.length;++u){K(a,o(u))}}if(!e){for(var l in t){if(!(f&&l==="prototype")&&G(t,l)){K(a,o(l))}}}if(Dt){var s=It(t);for(var c=0;c<Ut;c++){var v=Mt[c];if(!(s&&v==="constructor")&&G(t,v)){K(a,v)}}}return a}});var kt=e.keys&&function(){return e.keys(arguments).length===2}(1,2);var At=e.keys&&function(){var t=e.keys(arguments);return arguments.length!==1||t.length!==1||t[0]!==1}(1);var Rt=e.keys;$(e,{keys:function keys(t){if(Ct(t)){return Rt(H(t))}else{return Rt(t)}}},!kt||At);var Pt=new Date(-0xc782b5b342b24).getUTCMonth()!==0;var $t=new Date(-0x55d318d56a724);var Jt=new Date(14496624e5);var Yt=$t.toUTCString()!=="Mon, 01 Jan -45875 11:59:59 GMT";var Zt;var zt;var Gt=$t.getTimezoneOffset();if(Gt<-720){Zt=$t.toDateString()!=="Tue Jan 02 -45875";zt=!/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/.test(Jt.toString())}else{Zt=$t.toDateString()!=="Mon Jan 01 -45875";zt=!/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/.test(Jt.toString())}var Bt=d.bind(Date.prototype.getFullYear);var Ht=d.bind(Date.prototype.getMonth);var Wt=d.bind(Date.prototype.getDate);var Lt=d.bind(Date.prototype.getUTCFullYear);var Xt=d.bind(Date.prototype.getUTCMonth);var qt=d.bind(Date.prototype.getUTCDate);var Kt=d.bind(Date.prototype.getUTCDay);var Qt=d.bind(Date.prototype.getUTCHours);var Vt=d.bind(Date.prototype.getUTCMinutes);var _t=d.bind(Date.prototype.getUTCSeconds);var tr=d.bind(Date.prototype.getUTCMilliseconds);var rr=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var er=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var nr=function daysInMonth(t,r){return Wt(new Date(r,t,0))};$(Date.prototype,{getFullYear:function getFullYear(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Bt(this);if(t<0&&Ht(this)>11){return t+1}return t},getMonth:function getMonth(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Bt(this);var r=Ht(this);if(t<0&&r>11){return 0}return r},getDate:function getDate(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Bt(this);var r=Ht(this);var e=Wt(this);if(t<0&&r>11){if(r===12){return e}var n=nr(0,t+1);return n-e+1}return e},getUTCFullYear:function getUTCFullYear(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Lt(this);if(t<0&&Xt(this)>11){return t+1}return t},getUTCMonth:function getUTCMonth(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Lt(this);var r=Xt(this);if(t<0&&r>11){return 0}return r},getUTCDate:function getUTCDate(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Lt(this);var r=Xt(this);var e=qt(this);if(t<0&&r>11){if(r===12){return e}var n=nr(0,t+1);return n-e+1}return e}},Pt);$(Date.prototype,{toUTCString:function toUTCString(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=Kt(this);var r=qt(this);var e=Xt(this);var n=Lt(this);var i=Qt(this);var a=Vt(this);var o=_t(this);return rr[t]+", "+(r<10?"0"+r:r)+" "+er[e]+" "+n+" "+(i<10?"0"+i:i)+":"+(a<10?"0"+a:a)+":"+(o<10?"0"+o:o)+" GMT"}},Pt||Yt);$(Date.prototype,{toDateString:function toDateString(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=this.getDay();var r=this.getDate();var e=this.getMonth();var n=this.getFullYear();return rr[t]+" "+er[e]+" "+(r<10?"0"+r:r)+" "+n}},Pt||Zt);if(Pt||zt){Date.prototype.toString=function toString(){if(!this||!(this instanceof Date)){throw new TypeError("this is not a Date object.")}var t=this.getDay();var r=this.getDate();var e=this.getMonth();var n=this.getFullYear();var i=this.getHours();var a=this.getMinutes();var o=this.getSeconds();var f=this.getTimezoneOffset();var u=Math.floor(Math.abs(f)/60);var l=Math.floor(Math.abs(f)%60);return rr[t]+" "+er[e]+" "+(r<10?"0"+r:r)+" "+n+" "+(i<10?"0"+i:i)+":"+(a<10?"0"+a:a)+":"+(o<10?"0"+o:o)+" GMT"+(f>0?"-":"+")+(u<10?"0"+u:u)+(l<10?"0"+l:l)};if(P){e.defineProperty(Date.prototype,"toString",{configurable:true,enumerable:false,writable:true})}}var ir=-621987552e5;var ar="-000001";var or=Date.prototype.toISOString&&new Date(ir).toISOString().indexOf(ar)===-1;var fr=Date.prototype.toISOString&&new Date(-1).toISOString()!=="1969-12-31T23:59:59.999Z";var ur=d.bind(Date.prototype.getTime);$(Date.prototype,{toISOString:function toISOString(){if(!isFinite(this)||!isFinite(ur(this))){throw new RangeError("Date.prototype.toISOString called on non-finite value.")}var t=Lt(this);var r=Xt(this);t+=Math.floor(r/12);r=(r%12+12)%12;var e=[r+1,qt(this),Qt(this),Vt(this),_t(this)];t=(t<0?"-":t>9999?"+":"")+L("00000"+Math.abs(t),0<=t&&t<=9999?-4:-6);for(var n=0;n<e.length;++n){e[n]=L("00"+e[n],-2)}return t+"-"+H(e,0,2).join("-")+"T"+H(e,2).join(":")+"."+L("000"+tr(this),-3)+"Z"}},or||fr);var lr=function(){try{return Date.prototype.toJSON&&new Date(NaN).toJSON()===null&&new Date(ir).toJSON().indexOf(ar)!==-1&&Date.prototype.toJSON.call({toISOString:function(){return true}})}catch(t){return false}}();if(!lr){Date.prototype.toJSON=function toJSON(t){var r=e(this);var n=Z.ToPrimitive(r);if(typeof n==="number"&&!isFinite(n)){return null}var i=r.toISOString;if(!D(i)){throw new TypeError("toISOString property is not callable")}return i.call(r)}}var sr=Date.parse("+033658-09-27T01:46:40.000Z")===1e15;var cr=!isNaN(Date.parse("2012-04-04T24:00:00.500Z"))||!isNaN(Date.parse("2012-11-31T23:59:59.000Z"))||!isNaN(Date.parse("2012-12-31T23:59:60.000Z"));var vr=isNaN(Date.parse("2000-01-01T00:00:00.000Z"));if(vr||cr||!sr){var hr=Math.pow(2,31)-1;var pr=Y(new Date(1970,0,1,0,0,0,hr+1).getTime());Date=function(t){var r=function Date(e,n,i,a,f,u,l){var s=arguments.length;var c;if(this instanceof t){var v=u;var h=l;if(pr&&s>=7&&l>hr){var p=Math.floor(l/hr)*hr;var y=Math.floor(p/1e3);v+=y;h-=y*1e3}c=s===1&&o(e)===e?new t(r.parse(e)):s>=7?new t(e,n,i,a,f,v,h):s>=6?new t(e,n,i,a,f,v):s>=5?new t(e,n,i,a,f):s>=4?new t(e,n,i,a):s>=3?new t(e,n,i):s>=2?new t(e,n):s>=1?new t(e instanceof t?+e:e):new t}else{c=t.apply(this,arguments)}if(!J(c)){$(c,{constructor:r},true)}return c};var e=new RegExp("^"+"(\\d{4}|[+-]\\d{6})"+"(?:-(\\d{2})"+"(?:-(\\d{2})"+"(?:"+"T(\\d{2})"+":(\\d{2})"+"(?:"+":(\\d{2})"+"(?:(\\.\\d{1,}))?"+")?"+"("+"Z|"+"(?:"+"([-+])"+"(\\d{2})"+":(\\d{2})"+")"+")?)?)?)?"+"$");var n=[0,31,59,90,120,151,181,212,243,273,304,334,365];var i=function dayFromMonth(t,r){var e=r>1?1:0;return n[r]+Math.floor((t-1969+e)/4)-Math.floor((t-1901+e)/100)+Math.floor((t-1601+e)/400)+365*(t-1970)};var a=function toUTC(r){var e=0;var n=r;if(pr&&n>hr){var i=Math.floor(n/hr)*hr;var a=Math.floor(i/1e3);e+=a;n-=a*1e3}return u(new t(1970,0,1,0,0,e,n))};for(var f in t){if(G(t,f)){r[f]=t[f]}}$(r,{now:t.now,UTC:t.UTC},true);r.prototype=t.prototype;$(r.prototype,{constructor:r},true);var l=function parse(r){var n=e.exec(r);if(n){var o=u(n[1]),f=u(n[2]||1)-1,l=u(n[3]||1)-1,s=u(n[4]||0),c=u(n[5]||0),v=u(n[6]||0),h=Math.floor(u(n[7]||0)*1e3),p=Boolean(n[4]&&!n[8]),y=n[9]==="-"?1:-1,d=u(n[10]||0),g=u(n[11]||0),w;var b=c>0||v>0||h>0;if(s<(b?24:25)&&c<60&&v<60&&h<1e3&&f>-1&&f<12&&d<24&&g<60&&l>-1&&l<i(o,f+1)-i(o,f)){w=((i(o,f)+l)*24+s+d*y)*60;w=((w+c+g*y)*60+v)*1e3+h;if(p){w=a(w)}if(-864e13<=w&&w<=864e13){return w}}return NaN}return t.parse.apply(this,arguments)};$(r,{parse:l});return r}(Date)}if(!Date.now){Date.now=function now(){return(new Date).getTime()}}var yr=l.toFixed&&(8e-5.toFixed(3)!=="0.000"||.9.toFixed(0)!=="1"||1.255.toFixed(2)!=="1.25"||0xde0b6b3a7640080.toFixed(0)!=="1000000000000000128");var dr={base:1e7,size:6,data:[0,0,0,0,0,0],multiply:function multiply(t,r){var e=-1;var n=r;while(++e<dr.size){n+=t*dr.data[e];dr.data[e]=n%dr.base;n=Math.floor(n/dr.base)}},divide:function divide(t){var r=dr.size;var e=0;while(--r>=0){e+=dr.data[r];dr.data[r]=Math.floor(e/t);e=e%t*dr.base}},numToString:function numToString(){var t=dr.size;var r="";while(--t>=0){if(r!==""||t===0||dr.data[t]!==0){var e=o(dr.data[t]);if(r===""){r=e}else{r+=L("0000000",0,7-e.length)+e}}}return r},pow:function pow(t,r,e){return r===0?e:r%2===1?pow(t,r-1,e*t):pow(t*t,r/2,e)},log:function log(t){var r=0;var e=t;while(e>=4096){r+=12;e/=4096}while(e>=2){r+=1;e/=2}return r}};var gr=function toFixed(t){var r,e,n,i,a,f,l,s;r=u(t);r=Y(r)?0:Math.floor(r);if(r<0||r>20){throw new RangeError("Number.toFixed called with invalid number of decimals")}e=u(this);if(Y(e)){return"NaN"}if(e<=-1e21||e>=1e21){return o(e)}n="";if(e<0){n="-";e=-e}i="0";if(e>1e-21){a=dr.log(e*dr.pow(2,69,1))-69;f=a<0?e*dr.pow(2,-a,1):e/dr.pow(2,a,1);f*=4503599627370496;a=52-a;if(a>0){dr.multiply(0,f);l=r;while(l>=7){dr.multiply(1e7,0);l-=7}dr.multiply(dr.pow(10,l,1),0);l=a-1;while(l>=23){dr.divide(1<<23);l-=23}dr.divide(1<<l);dr.multiply(1,1);dr.divide(2);i=dr.numToString()}else{dr.multiply(0,f);dr.multiply(1<<-a,0);i=dr.numToString()+L("0.00000000000000000000",2,2+r)}}if(r>0){s=i.length;if(s<=r){i=n+L("0.0000000000000000000",0,r-s+2)+i}else{i=n+L(i,0,s-r)+"."+L(i,s-r)}}else{i=n+i}return i};$(l,{toFixed:gr},yr);var wr=function(){try{return 1..toPrecision(undefined)==="1"}catch(t){return true}}();var br=l.toPrecision;$(l,{toPrecision:function toPrecision(t){return typeof t==="undefined"?br.call(this):br.call(this,t)}},wr);if("ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||"tesst".split(/(s)*/)[1]==="t"||"test".split(/(?:)/,-1).length!==4||"".split(/.?/).length||".".split(/()()/).length>1){(function(){var t=typeof/()??/.exec("")[1]==="undefined";var r=Math.pow(2,32)-1;f.split=function(e,n){var i=String(this);if(typeof e==="undefined"&&n===0){return[]}if(!M(e)){return X(this,e,n)}var a=[];var o=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),f=0,u,l,s,c;var h=new RegExp(e.source,o+"g");if(!t){u=new RegExp("^"+h.source+"$(?!\\s)",o)}var p=typeof n==="undefined"?r:Z.ToUint32(n);l=h.exec(i);while(l){s=l.index+l[0].length;if(s>f){K(a,L(i,f,l.index));if(!t&&l.length>1){l[0].replace(u,function(){for(var t=1;t<arguments.length-2;t++){if(typeof arguments[t]==="undefined"){l[t]=void 0}}})}if(l.length>1&&l.index<i.length){v.apply(a,H(l,1))}c=l[0].length;f=s;if(a.length>=p){break}}if(h.lastIndex===l.index){h.lastIndex++}l=h.exec(i)}if(f===i.length){if(c||!h.test("")){K(a,"")}}else{K(a,L(i,f))}return a.length>p?H(a,0,p):a}})()}else if("0".split(void 0,0).length){f.split=function split(t,r){if(typeof t==="undefined"&&r===0){return[]}return X(this,t,r)}}var Tr=f.replace;var mr=function(){var t=[];"x".replace(/x(.)?/g,function(r,e){K(t,e)});return t.length===1&&typeof t[0]==="undefined"}();if(!mr){f.replace=function replace(t,r){var e=D(r);var n=M(t)&&/\)[*?]/.test(t.source);if(!e||!n){return Tr.call(this,t,r)}else{var i=function(e){var n=arguments.length;var i=t.lastIndex;t.lastIndex=0;var a=t.exec(e)||[];t.lastIndex=i;K(a,arguments[n-2],arguments[n-1]);return r.apply(this,a)};return Tr.call(this,t,i)}}}var Dr=f.substr;var Sr="".substr&&"0b".substr(-1)!=="b";$(f,{substr:function substr(t,r){var e=t;if(t<0){e=w(this.length+t,0)}return Dr.call(this,e,r)}},Sr);var xr=" \n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003"+"\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028"+"\u2029\ufeff";var Or="\u200b";var jr="["+xr+"]";var Er=new RegExp("^"+jr+jr+"*");var Ir=new RegExp(jr+jr+"*$");var Mr=f.trim&&(xr.trim()||!Or.trim());$(f,{trim:function trim(){if(typeof this==="undefined"||this===null){throw new TypeError("can't convert "+this+" to object")}return o(this).replace(Er,"").replace(Ir,"")}},Mr);var Ur=d.bind(String.prototype.trim);var Fr=f.lastIndexOf&&"abc\u3042\u3044".lastIndexOf("\u3042\u3044",2)!==-1;$(f,{lastIndexOf:function lastIndexOf(t){if(typeof this==="undefined"||this===null){throw new TypeError("can't convert "+this+" to object")}var r=o(this);var e=o(t);var n=arguments.length>1?u(arguments[1]):NaN;var i=Y(n)?Infinity:Z.ToInteger(n);var a=b(w(i,0),r.length);var f=e.length;var l=a+f;while(l>0){l=w(0,l-f);var s=q(L(r,l,a+f),e);if(s!==-1){return l+s}}return-1}},Fr);var Nr=f.lastIndexOf;$(f,{lastIndexOf:function lastIndexOf(t){return Nr.apply(this,arguments)}},f.lastIndexOf.length!==1);if(parseInt(xr+"08")!==8||parseInt(xr+"0x16")!==22){parseInt=function(t){var r=/^[\-+]?0[xX]/;return function parseInt(e,n){var i=Ur(String(e));var a=u(n)||(r.test(i)?16:10);return t(i,a)}}(parseInt)}if(1/parseFloat("-0")!==-Infinity){parseFloat=function(t){return function parseFloat(r){var e=Ur(String(r));var n=t(e);return n===0&&L(e,0,1)==="-"?-0:n}}(parseFloat)}if(String(new RangeError("test"))!=="RangeError: test"){var Cr=function toString(){if(typeof this==="undefined"||this===null){throw new TypeError("can't convert "+this+" to object")}var t=this.name;if(typeof t==="undefined"){t="Error"}else if(typeof t!=="string"){t=o(t)}var r=this.message;if(typeof r==="undefined"){r=""}else if(typeof r!=="string"){r=o(r)}if(!t){return r}if(!r){return t}return t+": "+r};Error.prototype.toString=Cr}if(P){var kr=function(t,r){if(Q(t,r)){var e=Object.getOwnPropertyDescriptor(t,r);if(e.configurable){e.enumerable=false;Object.defineProperty(t,r,e)}}};kr(Error.prototype,"message");if(Error.prototype.message!==""){Error.prototype.message=""}kr(Error.prototype,"name")}if(String(/a/gim)!=="/a/gim"){var Ar=function toString(){var t="/"+this.source+"/";if(this.global){t+="g"}if(this.ignoreCase){t+="i"}if(this.multiline){t+="m"}return t};RegExp.prototype.toString=Ar}}); +//# sourceMappingURL=es5-shim.map +/*! + * https://github.com/paulmillr/es6-shim + * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com) + * and contributors, MIT License + * es6-shim: v0.35.3 + * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE + * Details and documentation: + * https://github.com/paulmillr/es6-shim/ + */ +(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=Object.keys;var o=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var i=function(e){try{e();return false}catch(e){return true}};var a=function valueOrFalseIfThrows(e){try{return e()}catch(e){return false}};var u=o(i);var f=function(){return!i(function(){Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&f();var c=function foo(){}.name==="foo";var l=Function.call.bind(Array.prototype.forEach);var p=Function.call.bind(Array.prototype.reduce);var v=Function.call.bind(Array.prototype.filter);var y=Function.call.bind(Array.prototype.some);var h=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t,r){l(n(t),function(n){var o=t[n];h(e,n,o,!!r)})};var g=Function.call.bind(Object.prototype.toString);var d=typeof/abc/==="function"?function IsCallableSlow(e){return typeof e==="function"&&g(e)==="[object Function]"}:function IsCallableFast(e){return typeof e==="function"};var m={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&d(t.toString)){h(e,"toString",t.toString.bind(t),true)}}};var O=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var o=new r;if(typeof t!=="undefined"){n(t).forEach(function(e){m.defineByDescriptor(o,e,t[e])})}return o};var w=function(e,t){if(!Object.setPrototypeOf){return false}return a(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=O(e.prototype,{constructor:{value:r}});return t(r)})};var j=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var S=j();var T=S.isFinite;var I=Function.call.bind(String.prototype.indexOf);var E=Function.apply.bind(Array.prototype.indexOf);var P=Function.call.bind(Array.prototype.concat);var C=Function.call.bind(String.prototype.slice);var M=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.shift);var A=Math.max;var R=Math.min;var _=Math.floor;var k=Math.abs;var F=Math.exp;var L=Math.log;var D=Math.sqrt;var z=Function.call.bind(Object.prototype.hasOwnProperty);var q;var W=function(){};var G=S.Map;var H=G&&G.prototype["delete"];var V=G&&G.prototype.get;var B=G&&G.prototype.has;var U=G&&G.prototype.set;var $=S.Symbol||{};var J=$.species||"@@species";var X=Number.isNaN||function isNaN(e){return e!==e};var K=Number.isFinite||function isFinite(e){return typeof e==="number"&&T(e)};var Z=d(Math.sign)?Math.sign:function sign(e){var t=Number(e);if(t===0){return t}if(X(t)){return t}return t<0?-1:1};var Y=function isArguments(e){return g(e)==="[object Arguments]"};var Q=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var ee=Y(arguments)?Y:Q;var te={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var re=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);m.preserveToString(e[t],n)};var ne=typeof $==="function"&&typeof $["for"]==="function"&&te.symbol($());var oe=te.symbol($.iterator)?$.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){oe="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ie=S.Reflect;var ae=String;var ue=typeof document==="undefined"||!document?null:document.all;var fe=ue==null?function isNullOrUndefined(e){return e==null}:function isNullOrUndefinedAndNotDocumentAll(e){return e==null&&e!==ue};var se={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!se.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(fe(e)){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"||e===ue},ToObject:function(e,t){return Object(se.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return se.IsCallable(e)},ToInt32:function(e){return se.ToNumber(e)>>0},ToUint32:function(e){return se.ToNumber(e)>>>0},ToNumber:function(e){if(g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=se.ToNumber(e);if(X(t)){return 0}if(t===0||!K(t)){return t}return(t>0?1:-1)*_(k(t))},ToLength:function(e){var t=se.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return X(e)&&X(t)},SameValueZero:function(e,t){return e===t||X(e)&&X(t)},IsIterable:function(e){return se.TypeIsObject(e)&&(typeof e[oe]!=="undefined"||ee(e))},GetIterator:function(e){if(ee(e)){return new q(e,"value")}var t=se.GetMethod(e,oe);if(!se.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=se.Call(t,e);if(!se.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=se.ToObject(e)[t];if(fe(r)){return void 0}if(!se.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=se.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=se.Call(r,e)}catch(e){o=e}if(t){return}if(o){throw o}if(!se.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!se.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=se.IteratorNext(e);var r=se.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ie.construct){return ie.construct(e,t,o)}var i=o.prototype;if(!se.TypeIsObject(i)){i=Object.prototype}var a=O(i);var u=se.Call(e,a,t);return se.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!se.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[J];if(fe(n)){return t}if(!se.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=se.ToString(e);var i="<"+t;if(r!==""){var a=se.ToString(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+"</"+t+">"},IsRegExp:function IsRegExp(e){if(!se.TypeIsObject(e)){return false}var t=e[$.match];if(typeof t!=="undefined"){return!!t}return te.regex(e)},ToString:function ToString(e){return ae(e)}};if(s&&ne){var ce=function defineWellKnownSymbol(e){if(te.symbol($[e])){return $[e]}var t=$["for"]("Symbol."+e);Object.defineProperty($,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!te.symbol($.search)){var le=ce("search");var pe=String.prototype.search;h(RegExp.prototype,le,function search(e){return se.Call(pe,e,[this])});var ve=function search(e){var t=se.RequireObjectCoercible(this);if(!fe(e)){var r=se.GetMethod(e,le);if(typeof r!=="undefined"){return se.Call(r,e,[t])}}return se.Call(pe,t,[se.ToString(e)])};re(String.prototype,"search",ve)}if(!te.symbol($.replace)){var ye=ce("replace");var he=String.prototype.replace;h(RegExp.prototype,ye,function replace(e,t){return se.Call(he,e,[this,t])});var be=function replace(e,t){var r=se.RequireObjectCoercible(this);if(!fe(e)){var n=se.GetMethod(e,ye);if(typeof n!=="undefined"){return se.Call(n,e,[r,t])}}return se.Call(he,r,[se.ToString(e),t])};re(String.prototype,"replace",be)}if(!te.symbol($.split)){var ge=ce("split");var de=String.prototype.split;h(RegExp.prototype,ge,function split(e,t){return se.Call(de,e,[this,t])});var me=function split(e,t){var r=se.RequireObjectCoercible(this);if(!fe(e)){var n=se.GetMethod(e,ge);if(typeof n!=="undefined"){return se.Call(n,e,[r,t])}}return se.Call(de,r,[se.ToString(e),t])};re(String.prototype,"split",me)}var Oe=te.symbol($.match);var we=Oe&&function(){var e={};e[$.match]=function(){return 42};return"a".match(e)!==42}();if(!Oe||we){var je=ce("match");var Se=String.prototype.match;h(RegExp.prototype,je,function match(e){return se.Call(Se,e,[this])});var Te=function match(e){var t=se.RequireObjectCoercible(this);if(!fe(e)){var r=se.GetMethod(e,je);if(typeof r!=="undefined"){return se.Call(r,e,[t])}}return se.Call(Se,t,[se.ToString(e)])};re(String.prototype,"match",Te)}}var Ie=function wrapConstructor(e,t,r){m.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in W||r[n]){return}m.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in W||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;m.redefine(e.prototype,"constructor",t)};var Ee=function(){return this};var Pe=function(e){if(s&&!z(e,J)){m.getter(e,J,Ee)}};var Ce=function(e,t){var r=t||function iterator(){return this};h(e,oe,r);if(!e[oe]&&te.symbol(oe)){e[oe]=r}};var Me=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var xe=function createDataPropertyOrThrow(e,t,r){Me(e,t,r);if(!se.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var Ne=function(e,t,r,n){if(!se.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!se.TypeIsObject(o)){o=r}var i=O(o);for(var a in n){if(z(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Ae=String.fromCodePoint;re(String,"fromCodePoint",function fromCodePoint(e){return se.Call(Ae,this,arguments)})}var Re={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n<o;n++){r=Number(arguments[n]);if(!se.SameValue(r,se.ToInteger(r))||r<0||r>1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=se.ToObject(e,"bad callSite");var r=se.ToObject(t.raw,"bad raw value");var n=r.length;var o=se.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a<o){u=se.ToString(a);s=se.ToString(r[u]);M(i,s);if(a+1>=o){break}f=a+1<arguments.length?arguments[a+1]:"";c=se.ToString(f);M(i,c);a+=1}return i.join("")}};if(String.raw&&String.raw({raw:{0:"x",1:"y",length:2}})!=="xy"){re(String,"raw",Re.raw)}b(String,Re);var _e=function repeat(e,t){if(t<1){return""}if(t%2){return repeat(e,t-1)+e}var r=repeat(e,t/2);return r+r};var ke=Infinity;var Fe={repeat:function repeat(e){var t=se.ToString(se.RequireObjectCoercible(this));var r=se.ToInteger(e);if(r<0||r>=ke){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return _e(t,r)},startsWith:function startsWith(e){var t=se.ToString(se.RequireObjectCoercible(this));if(se.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=se.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=A(se.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=se.ToString(se.RequireObjectCoercible(this));if(se.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=se.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:se.ToInteger(o);var a=R(A(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(se.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=se.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=se.ToString(se.RequireObjectCoercible(this));var r=se.ToInteger(e);var n=t.length;if(r>=0&&r<n){var o=t.charCodeAt(r);var i=r+1===n;if(o<55296||o>56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){re(String.prototype,"includes",Fe.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var Le=i(function(){"/a/".startsWith(/a/)});var De=a(function(){return"abc".startsWith("a",Infinity)===false});if(!Le||!De){re(String.prototype,"startsWith",Fe.startsWith);re(String.prototype,"endsWith",Fe.endsWith)}}if(ne){var ze=a(function(){var e=/a/;e[$.match]=false;return"/a/".startsWith(e)});if(!ze){re(String.prototype,"startsWith",Fe.startsWith)}var qe=a(function(){var e=/a/;e[$.match]=false;return"/a/".endsWith(e)});if(!qe){re(String.prototype,"endsWith",Fe.endsWith)}var We=a(function(){var e=/a/;e[$.match]=false;return"/a/".includes(e)});if(!We){re(String.prototype,"includes",Fe.includes)}}b(String.prototype,Fe);var Ge=["\t\n\v\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var He=new RegExp("(^["+Ge+"]+)|(["+Ge+"]+$)","g");var Ve=function trim(){return se.ToString(se.RequireObjectCoercible(this)).replace(He,"")};var Be=["\x85","\u200b","\ufffe"].join("");var Ue=new RegExp("["+Be+"]","g");var $e=/^[-+]0x[0-9a-f]+$/i;var Je=Be.trim().length!==Be.length;h(String.prototype,"trim",Ve,Je);var Xe=function(e){return{value:e,done:arguments.length===0}};var Ke=function(e){se.RequireObjectCoercible(e);this._s=se.ToString(e);this._i=0};Ke.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Xe()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Xe(e.substr(t,o))};Ce(Ke.prototype);Ce(String.prototype,function(){return new Ke(this)});var Ze={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!se.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(ee(e)||se.GetMethod(e,oe))!=="undefined";var u,f,s;if(a){f=se.IsConstructor(r)?Object(new r):[];var c=se.GetIterator(e);var l,p;s=0;while(true){l=se.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(e){se.IteratorClose(c,true);throw e}s+=1}u=s}else{var v=se.ToObject(e);u=se.ToLength(v.length);f=se.IsConstructor(r)?Object(new r(u)):new Array(u);var y;for(s=0;s<u;++s){y=v[s];if(o){y=typeof i==="undefined"?n(y,s):t(n,i,y,s)}xe(f,s,y)}}f.length=u;return f},of:function of(){var e=arguments.length;var t=this;var n=r(t)||!se.IsCallable(t)?new Array(e):se.Construct(t,[e]);for(var o=0;o<e;++o){xe(n,o,arguments[o])}n.length=e;return n}};b(Array,Ze);Pe(Array);q=function(e,t){this.i=0;this.array=e;this.kind=t};b(q.prototype,{next:function(){var e=this.i;var t=this.array;if(!(this instanceof q)){throw new TypeError("Not an ArrayIterator")}if(typeof t!=="undefined"){var r=se.ToLength(t.length);for(;e<r;e++){var n=this.kind;var o;if(n==="key"){o=e}else if(n==="value"){o=t[e]}else if(n==="entry"){o=[e,t[e]]}this.i=e+1;return Xe(o)}}this.array=void 0;return Xe()}});Ce(q.prototype);var Ye=Array.of===Ze.of||function(){var e=function Foo(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&t.length===2}();if(!Ye){re(Array,"of",Ze.of)}var Qe={copyWithin:function copyWithin(e,t){var r=se.ToObject(this);var n=se.ToLength(r.length);var o=se.ToInteger(e);var i=se.ToInteger(t);var a=o<0?A(n+o,0):R(o,n);var u=i<0?A(n+i,0):R(i,n);var f;if(arguments.length>2){f=arguments[2]}var s=typeof f==="undefined"?n:se.ToInteger(f);var c=s<0?A(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u<a&&a<u+l){p=-1;u+=l-1;a+=l-1}while(l>0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=se.ToObject(this);var o=se.ToLength(n.length);t=se.ToInteger(typeof t==="undefined"?0:t);r=se.ToInteger(typeof r==="undefined"?o:r);var i=t<0?A(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u<o&&u<a;++u){n[u]=e}return n},find:function find(e){var r=se.ToObject(this);var n=se.ToLength(r.length);if(!se.IsCallable(e)){throw new TypeError("Array#find: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0,a;i<n;i++){a=r[i];if(o){if(t(e,o,a,i,r)){return a}}else if(e(a,i,r)){return a}}},findIndex:function findIndex(e){var r=se.ToObject(this);var n=se.ToLength(r.length);if(!se.IsCallable(e)){throw new TypeError("Array#findIndex: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0;i<n;i++){if(o){if(t(e,o,r[i],i,r)){return i}}else if(e(r[i],i,r)){return i}}return-1},keys:function keys(){return new q(this,"key")},values:function values(){return new q(this,"value")},entries:function entries(){return new q(this,"entry")}};if(Array.prototype.keys&&!se.IsCallable([1].keys().next)){delete Array.prototype.keys}if(Array.prototype.entries&&!se.IsCallable([1].entries().next)){delete Array.prototype.entries}if(Array.prototype.keys&&Array.prototype.entries&&!Array.prototype.values&&Array.prototype[oe]){b(Array.prototype,{values:Array.prototype[oe]});if(te.symbol($.unscopables)){Array.prototype[$.unscopables].values=true}}if(c&&Array.prototype.values&&Array.prototype.values.name!=="values"){var et=Array.prototype.values;re(Array.prototype,"values",function values(){return se.Call(et,this,arguments)});h(Array.prototype,oe,Array.prototype.values,true)}b(Array.prototype,Qe);if(1/[true].indexOf(true,-0)<0){h(Array.prototype,"indexOf",function indexOf(e){var t=E(this,arguments);if(t===0&&1/t<0){return 0}return t},true)}Ce(Array.prototype,function(){return this.values()});if(Object.getPrototypeOf){Ce(Object.getPrototypeOf([].values()))}var tt=function(){return a(function(){return Array.from({length:-1}).length===0})}();var rt=function(){var e=Array.from([0].entries());return e.length===1&&r(e[0])&&e[0][0]===0&&e[0][1]===0}();if(!tt||!rt){re(Array,"from",Ze.from)}var nt=function(){return a(function(){return Array.from([0],void 0)})}();if(!nt){var ot=Array.from;re(Array,"from",function from(e){if(arguments.length>1&&typeof arguments[1]!=="undefined"){return se.Call(ot,this,arguments)}else{return t(ot,this,e)}})}var it=-(Math.pow(2,32)-1);var at=function(e,r){var n={length:it};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!at(Array.prototype.forEach)){var ut=Array.prototype.forEach;re(Array.prototype,"forEach",function forEach(e){return se.Call(ut,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.map)){var ft=Array.prototype.map;re(Array.prototype,"map",function map(e){return se.Call(ft,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.filter)){var st=Array.prototype.filter;re(Array.prototype,"filter",function filter(e){return se.Call(st,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.some)){var ct=Array.prototype.some;re(Array.prototype,"some",function some(e){return se.Call(ct,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.every)){var lt=Array.prototype.every;re(Array.prototype,"every",function every(e){return se.Call(lt,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.reduce)){var pt=Array.prototype.reduce;re(Array.prototype,"reduce",function reduce(e){return se.Call(pt,this.length>=0?this:[],arguments)},true)}if(!at(Array.prototype.reduceRight,true)){var vt=Array.prototype.reduceRight;re(Array.prototype,"reduceRight",function reduceRight(e){return se.Call(vt,this.length>=0?this:[],arguments)},true)}var yt=Number("0o10")!==8;var ht=Number("0b10")!==2;var bt=y(Be,function(e){return Number(e+0+e)===0});if(yt||ht||bt){var gt=Number;var dt=/^0b[01]+$/i;var mt=/^0o[0-7]+$/i;var Ot=dt.test.bind(dt);var wt=mt.test.bind(mt);var jt=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if(te.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if(te.primitive(t)){return t}}throw new TypeError("No default value")};var St=Ue.test.bind(Ue);var Tt=$e.test.bind($e);var It=function(){var e=function Number(t){var r;if(arguments.length>0){r=te.primitive(t)?t:jt(t,"number")}else{r=0}if(typeof r==="string"){r=se.Call(Ve,r);if(Ot(r)){r=parseInt(C(r,2),2)}else if(wt(r)){r=parseInt(C(r,2),8)}else if(St(r)||Tt(r)){r=NaN}}var n=this;var o=a(function(){gt.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new gt(r)}return gt(r)};return e}();Ie(gt,It,{});b(It,{NaN:gt.NaN,MAX_VALUE:gt.MAX_VALUE,MIN_VALUE:gt.MIN_VALUE,NEGATIVE_INFINITY:gt.NEGATIVE_INFINITY,POSITIVE_INFINITY:gt.POSITIVE_INFINITY});Number=It;m.redefine(S,"Number",It)}var Et=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Et,MIN_SAFE_INTEGER:-Et,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:K,isInteger:function isInteger(e){return K(e)&&se.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&k(e)<=Number.MAX_SAFE_INTEGER},isNaN:X});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if([,1].find(function(){return true})===1){re(Array.prototype,"find",Qe.find)}if([,1].findIndex(function(){return true})!==0){re(Array.prototype,"findIndex",Qe.findIndex)}var Pt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var Ct=function ensureEnumerable(e,t){if(s&&Pt(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var Mt=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o<t;++o){n[o-e]=arguments[o]}return n};var xt=function assignTo(e){return function assignToSource(t,r){t[r]=e[r];return t}};var Nt=function(e,t){var r=n(Object(t));var o;if(se.IsCallable(Object.getOwnPropertySymbols)){o=v(Object.getOwnPropertySymbols(Object(t)),Pt(t))}return p(P(r,o||[]),xt(t),e)};var At={assign:function(e,t){var r=se.ToObject(e,"Cannot convert undefined or null to object");return p(se.Call(Mt,1,arguments),Nt,r)},is:function is(e,t){return se.SameValue(e,t)}};var Rt=Object.assign&&Object.preventExtensions&&function(){var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return e[1]==="y"}}();if(Rt){re(Object,"assign",At.assign)}b(Object,At);if(s){var _t={setPrototypeOf:function(e,r){var n;var o=function(e,t){if(!se.TypeIsObject(e)){throw new TypeError("cannot set prototype on a non-object")}if(!(t===null||se.TypeIsObject(t))){throw new TypeError("can only set prototype to an object or null"+t)}};var i=function(e,r){o(e,r);t(n,e,r);return e};try{n=e.getOwnPropertyDescriptor(e.prototype,r).set;t(n,{},null)}catch(t){if(e.prototype!=={}[r]){return}n=function(e){this[r]=e};i.polyfill=i(i({},null),e.prototype)instanceof e}return i}(Object,"__proto__")};b(Object,_t)}if(Object.setPrototypeOf&&Object.getPrototypeOf&&Object.getPrototypeOf(Object.setPrototypeOf({},null))!==null&&Object.getPrototypeOf(Object.create(null))===null){(function(){var e=Object.create(null);var t=Object.getPrototypeOf;var r=Object.setPrototypeOf;Object.getPrototypeOf=function(r){var n=t(r);return n===e?null:n};Object.setPrototypeOf=function(t,n){var o=n===null?e:n;return r(t,o)};Object.setPrototypeOf.polyfill=false})()}var kt=!i(function(){Object.keys("foo")});if(!kt){var Ft=Object.keys;re(Object,"keys",function keys(e){return Ft(se.ToObject(e))});n=Object.keys}var Lt=i(function(){Object.keys(/a/g)});if(Lt){var Dt=Object.keys;re(Object,"keys",function keys(e){if(te.regex(e)){var t=[];for(var r in e){if(z(e,r)){M(t,r)}}return t}return Dt(e)});n=Object.keys}if(Object.getOwnPropertyNames){var zt=!i(function(){Object.getOwnPropertyNames("foo")});if(!zt){var qt=typeof window==="object"?Object.getOwnPropertyNames(window):[];var Wt=Object.getOwnPropertyNames;re(Object,"getOwnPropertyNames",function getOwnPropertyNames(e){var t=se.ToObject(e);if(g(t)==="[object Window]"){try{return Wt(t)}catch(e){return P([],qt)}}return Wt(t)})}}if(Object.getOwnPropertyDescriptor){var Gt=!i(function(){Object.getOwnPropertyDescriptor("foo","bar")});if(!Gt){var Ht=Object.getOwnPropertyDescriptor;re(Object,"getOwnPropertyDescriptor",function getOwnPropertyDescriptor(e,t){return Ht(se.ToObject(e),t)})}}if(Object.seal){var Vt=!i(function(){Object.seal("foo")});if(!Vt){var Bt=Object.seal;re(Object,"seal",function seal(e){if(!se.TypeIsObject(e)){return e}return Bt(e)})}}if(Object.isSealed){var Ut=!i(function(){Object.isSealed("foo")});if(!Ut){var $t=Object.isSealed;re(Object,"isSealed",function isSealed(e){if(!se.TypeIsObject(e)){return true}return $t(e)})}}if(Object.freeze){var Jt=!i(function(){Object.freeze("foo")});if(!Jt){var Xt=Object.freeze;re(Object,"freeze",function freeze(e){if(!se.TypeIsObject(e)){return e}return Xt(e)})}}if(Object.isFrozen){var Kt=!i(function(){Object.isFrozen("foo")});if(!Kt){var Zt=Object.isFrozen;re(Object,"isFrozen",function isFrozen(e){if(!se.TypeIsObject(e)){return true}return Zt(e)})}}if(Object.preventExtensions){var Yt=!i(function(){Object.preventExtensions("foo")});if(!Yt){var Qt=Object.preventExtensions;re(Object,"preventExtensions",function preventExtensions(e){if(!se.TypeIsObject(e)){return e}return Qt(e)})}}if(Object.isExtensible){var er=!i(function(){Object.isExtensible("foo")});if(!er){var tr=Object.isExtensible;re(Object,"isExtensible",function isExtensible(e){if(!se.TypeIsObject(e)){return false}return tr(e)})}}if(Object.getPrototypeOf){var rr=!i(function(){Object.getPrototypeOf("foo")});if(!rr){var nr=Object.getPrototypeOf;re(Object,"getPrototypeOf",function getPrototypeOf(e){return nr(se.ToObject(e))})}}var or=s&&function(){var e=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags");return e&&se.IsCallable(e.get)}();if(s&&!or){var ir=function flags(){if(!se.TypeIsObject(this)){throw new TypeError("Method called on incompatible type: must be an object.")}var e="";if(this.global){e+="g"}if(this.ignoreCase){e+="i"}if(this.multiline){e+="m"}if(this.unicode){e+="u"}if(this.sticky){e+="y"}return e};m.getter(RegExp.prototype,"flags",ir)}var ar=s&&a(function(){return String(new RegExp(/a/g,"i"))==="/a/i"});var ur=ne&&s&&function(){var e=/./;e[$.match]=false;return RegExp(e)===e}();var fr=a(function(){return RegExp.prototype.toString.call({source:"abc"})==="/abc/"});var sr=fr&&a(function(){return RegExp.prototype.toString.call({source:"a",flags:"b"})==="/a/b"});if(!fr||!sr){var cr=RegExp.prototype.toString;h(RegExp.prototype,"toString",function toString(){var e=se.RequireObjectCoercible(this);if(te.regex(e)){return t(cr,e)}var r=ae(e.source);var n=ae(e.flags);return"/"+r+"/"+n},true);m.preserveToString(RegExp.prototype.toString,cr)}if(s&&(!ar||ur)){var lr=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get;var pr=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")||{};var vr=function(){return this.source};var yr=se.IsCallable(pr.get)?pr.get:vr;var hr=RegExp;var br=function(){return function RegExp(e,t){var r=se.IsRegExp(e);var n=this instanceof RegExp;if(!n&&r&&typeof t==="undefined"&&e.constructor===RegExp){return e}var o=e;var i=t;if(te.regex(e)){o=se.Call(yr,e);i=typeof t==="undefined"?se.Call(lr,e):t;return new RegExp(o,i)}else if(r){o=e.source;i=typeof t==="undefined"?e.flags:t}return new hr(e,t)}}();Ie(hr,br,{$input:true});RegExp=br;m.redefine(S,"RegExp",br)}if(s){var gr={input:"$_",lastMatch:"$&",lastParen:"$+",leftContext:"$`",rightContext:"$'"};l(n(gr),function(e){if(e in RegExp&&!(gr[e]in RegExp)){m.getter(RegExp,gr[e],function get(){return RegExp[e]})}})}Pe(RegExp);var dr=1/Number.EPSILON;var mr=function roundTiesToEven(e){return e+dr-dr};var Or=Math.pow(2,-23);var wr=Math.pow(2,127)*(2-Or);var jr=Math.pow(2,-126);var Sr=Math.E;var Tr=Math.LOG2E;var Ir=Math.LOG10E;var Er=Number.prototype.clz;delete Number.prototype.clz;var Pr={acosh:function acosh(e){var t=Number(e);if(X(t)||e<1){return NaN}if(t===1){return 0}if(t===Infinity){return t}return L(t/Sr+D(t+1)*D(t-1)/Sr)+1},asinh:function asinh(e){var t=Number(e);if(t===0||!T(t)){return t}return t<0?-asinh(-t):L(t+D(t*t+1))},atanh:function atanh(e){var t=Number(e);if(X(t)||t<-1||t>1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*L((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=F(L(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=se.ToUint32(t);if(r===0){return 32}return Er?se.Call(Er,r):31-_(L(r+.5)*Tr)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(X(t)){return NaN}if(!T(t)){return Infinity}if(t<0){t=-t}if(t>21){return F(t)/2}return(F(t)+F(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(k(t)>.5){return F(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o<arguments.length;++o){var i=k(Number(arguments[o]));if(n<i){r*=n/i*(n/i);r+=1;n=i}else{r+=i>0?i/n*(i/n):i}}return n===Infinity?Infinity:n*D(r)},log2:function log2(e){return L(e)*Tr},log10:function log10(e){return L(e)*Ir},log1p:function log1p(e){var t=Number(e);if(t<-1||X(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(L(1+t)/(1+t-1))},sign:Z,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}if(k(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(F(t-1)-F(-t-1))*Sr/2},tanh:function tanh(e){var t=Number(e);if(X(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-_(-t):_(t)},imul:function imul(e,t){var r=se.ToUint32(e);var n=se.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||X(t)){return t}var r=Z(t);var n=k(t);if(n<jr){return r*mr(n/jr/Or)*jr*Or}var o=(1+Or/Number.EPSILON)*n;var i=o-(o-n);if(i>wr||X(i)){return r*Infinity}return r*i}};b(Math,Pr);h(Math,"log1p",Pr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",Pr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));h(Math,"tanh",Pr.tanh,Math.tanh(-2e-17)!==-2e-17);h(Math,"acosh",Pr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"cbrt",Pr.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);h(Math,"sinh",Pr.sinh,Math.sinh(-2e-17)!==-2e-17);var Cr=Math.expm1(10);h(Math,"expm1",Pr.expm1,Cr>22025.465794806718||Cr<22025.465794806718);var Mr=Math.round;var xr=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Nr=dr+1;var Ar=2*dr-1;var Rr=[Nr,Ar].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=_(e);var r=t===-1?-0:t+1; +return e-t<.5?t:r},!xr||!Rr);m.preserveToString(Math.round,Mr);var _r=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=Pr.imul;m.preserveToString(Math.imul,_r)}if(Math.imul.length!==2){re(Math,"imul",function imul(e,t){return se.Call(_r,Math,arguments)})}var kr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}se.IsPromise=function(e){if(!se.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!se.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(se.IsCallable(t.resolve)&&se.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&se.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=se.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(se.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(e){n=e;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+l],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=s;r.reactionLength=0};var m=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+p],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=c;r.reactionLength=0};var O=function(e){var t=false;var r=function(r){var n;if(t){return}t=true;if(r===e){return m(e,new TypeError("Self resolution"))}if(!se.TypeIsObject(r)){return d(e,r)}try{n=r.then}catch(t){return m(e,t)}if(!se.IsCallable(n)){return d(e,r)}i(function(){j(e,r,n)})};var n=function(r){if(t){return}t=true;return m(e,r)};return{resolve:r,reject:n}};var w=function(e,r,n,o){if(e===I){t(e,r,n,o,y)}else{t(e,r,n,o)}};var j=function(e,t,r){var n=O(e);var o=n.resolve;var i=n.reject;try{w(r,t,o,i)}catch(e){i(e)}};var T,I;var E=function(){var e=function Promise(t){if(!(this instanceof e)){throw new TypeError('Constructor Promise requires "new"')}if(this&&this._promise){throw new TypeError("Bad construction")}if(!se.IsCallable(t)){throw new TypeError("not a valid resolver")}var r=Ne(this,e,T,{_promise:{result:void 0,state:f,reactionLength:0,fulfillReactionHandler0:void 0,rejectReactionHandler0:void 0,reactionCapability0:void 0}});var n=O(r);var o=n.reject;try{t(n.resolve,o)}catch(e){o(e)}return r};return e}();T=E.prototype;var P=function(e,t,r,n){var o=false;return function(i){if(o){return}o=true;t[e]=i;if(--n.count===0){var a=r.resolve;a(t)}}};var C=function(e,t,r){var n=e.iterator;var o=[];var i={count:1};var a,u;var f=0;while(true){try{a=se.IteratorStep(n);if(a===false){e.done=true;break}u=a.value}catch(t){e.done=true;throw t}o[f]=void 0;var s=t.resolve(u);var c=P(f,o,r,i);i.count+=1;w(s.then,s,c,r.reject);f+=1}if(--i.count===0){var l=r.resolve;l(o)}return r.promise};var x=function(e,t,r){var n=e.iterator;var o,i,a;while(true){try{o=se.IteratorStep(n);if(o===false){e.done=true;break}i=o.value}catch(t){e.done=true;throw t}a=t.resolve(i);w(a.then,a,r.resolve,r.reject)}return r.promise};b(E,{all:function all(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=se.GetIterator(e);i={iterator:o,done:false};return C(i,t,n)}catch(e){var a=e;if(i&&!i.done){try{se.IteratorClose(o,true)}catch(e){a=e}}var u=n.reject;u(a);return n.promise}},race:function race(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=se.GetIterator(e);i={iterator:o,done:false};return x(i,t,n)}catch(e){var a=e;if(i&&!i.done){try{se.IteratorClose(o,true)}catch(e){a=e}}var u=n.reject;u(a);return n.promise}},reject:function reject(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}var n=new r(t);var o=n.reject;o(e);return n.promise},resolve:function resolve(e){var t=this;if(!se.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}if(se.IsPromise(e)){var n=e.constructor;if(n===t){return e}}var o=new r(t);var i=o.resolve;i(e);return o.promise}});b(T,{catch:function(e){return this.then(null,e)},then:function then(e,t){var n=this;if(!se.IsPromise(n)){throw new TypeError("not a promise")}var o=se.SpeciesConstructor(n,E);var i;var b=arguments.length>2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=se.IsCallable(e)?e:a;var d=se.IsCallable(t)?t:u;var m=n._promise;var O;if(m.state===f){if(m.reactionLength===0){m.fulfillReactionHandler0=g;m.rejectReactionHandler0=d;m.reactionCapability0=i}else{var w=3*(m.reactionLength-1);m[w+l]=g;m[w+p]=d;m[w+v]=i}m.reactionLength+=1}else if(m.state===s){O=m.result;h(g,i,O)}else if(m.state===c){O=m.result;h(d,i,O)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof kr==="function"){b(S,{Promise:kr});var Fr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var Lr=!i(function(){S.Promise.reject(42).then(null,5).then(null,W)});var Dr=i(function(){S.Promise.call(3,W)});var zr=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(e){return true}return t===r}(S.Promise);var qr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var Wr=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};Wr.prototype=Promise.prototype;Wr.all=Promise.all;var Gr=a(function(){return!!Wr.all([1,2])});if(!Fr||!Lr||!Dr||zr||!qr||Gr){Promise=kr;re(S,"Promise",kr)}if(Promise.all.length!==1){var Hr=Promise.all;re(Promise,"all",function all(e){return se.Call(Hr,this,arguments)})}if(Promise.race.length!==1){var Vr=Promise.race;re(Promise,"race",function race(e){return se.Call(Vr,this,arguments)})}if(Promise.resolve.length!==1){var Br=Promise.resolve;re(Promise,"resolve",function resolve(e){return se.Call(Br,this,arguments)})}if(Promise.reject.length!==1){var Ur=Promise.reject;re(Promise,"reject",function reject(e){return se.Call(Ur,this,arguments)})}Ct(Promise,"all");Ct(Promise,"race");Ct(Promise,"resolve");Ct(Promise,"reject");Pe(Promise)}var $r=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Jr=$r(["z","a","bb"]);var Xr=$r(["z",1,"a","3",2]);if(s){var Kr=function fastkey(e,t){if(!t&&!Jr){return null}if(fe(e)){return"^"+se.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Xr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Zr=function emptyObject(){return Object.create?Object.create(null):{}};var Yr=function addIterableToMap(e,n,o){if(r(o)||te.string(o)){l(o,function(e){if(!se.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(!fe(o)){a=n.set;if(!se.IsCallable(a)){throw new TypeError("bad map")}i=se.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=se.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!se.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(e){se.IteratorClose(i,true);throw e}}}}};var Qr=function addIterableToSet(e,n,o){if(r(o)||te.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(!fe(o)){a=n.add;if(!se.IsCallable(a)){throw new TypeError("bad set")}i=se.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=se.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(e){se.IteratorClose(i,true);throw e}}}}};var en={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!se.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+se.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Xe()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Xe(n)}}this.i=void 0;return Xe()}};Ce(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Ne(this,Map,a,{_es6map:true,_head:null,_map:G?new G:null,_size:0,_storage:Zr()});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Yr(Map,e,arguments[0])}return e};a=u.prototype;m.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t;var r=Kr(e,true);if(r!==null){t=this._storage[r];if(t){return t.value}else{return}}if(this._map){t=V.call(this._map,e);if(t){return t.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(se.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Kr(e,true);if(t!==null){return typeof this._storage[t]!=="undefined"}if(this._map){return B.call(this._map,e)}var r=this._head;var n=r;while((n=n.next)!==r){if(se.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Kr(e,true);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}else if(this._map){if(B.call(this._map,e)){V.call(this._map,e).value=t}else{a=new r(e,t);U.call(this._map,e,a);i=n.prev}}while((i=i.next)!==n){if(se.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(se.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},delete:function(t){o(this,"delete");var r=this._head;var n=r;var i=Kr(t,true);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}else if(this._map){if(!B.call(this._map,t)){return false}n=V.call(this._map,t).prev;H.call(this._map,t)}while((n=n.next)!==r){if(se.SameValueZero(n.key,t)){n.key=e;n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._map=G?new G:null;this._size=0;this._storage=Zr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=e;r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});Ce(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!se.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+se.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Ne(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Zr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){Qr(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=new en.Map;e["[[SetData]]"]=t;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};m.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Kr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Kr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},delete:function(e){r(this,"delete");var t;if(this._storage&&(t=Kr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Zr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");u(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);Ce(i.prototype,i.prototype.values);return i}()};if(S.Map||S.Set){var tn=a(function(){return new Map([[1,2]]).get(1)===2});if(!tn){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new G;if(arguments.length>0){Yr(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=O(G.prototype);h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,G)}var rn=new Map;var nn=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var on=rn.set(1,2)===rn;if(!nn||!on){re(Map.prototype,"set",function set(e,r){t(U,this,e===0?0:e,r);return this})}if(!nn){b(Map.prototype,{get:function get(e){return t(V,this,e===0?0:e)},has:function has(e){return t(B,this,e===0?0:e)}},true);m.preserveToString(Map.prototype.get,V);m.preserveToString(Map.prototype.has,B)}var an=new Set;var un=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(an);var fn=an.add(1)===an;if(!un||!fn){var sn=Set.prototype.add;Set.prototype.add=function add(e){t(sn,this,e===0?0:e);return this};m.preserveToString(Set.prototype.add,sn)}if(!un){var cn=Set.prototype.has;Set.prototype.has=function has(e){return t(cn,this,e===0?0:e)};m.preserveToString(Set.prototype.has,cn);var ln=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(ln,this,e===0?0:e)};m.preserveToString(Set.prototype["delete"],ln)}var pn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var vn=Object.setPrototypeOf&&!pn;var yn=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||vn||!yn){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new G;if(arguments.length>0){Yr(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=G.prototype;h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,G)}var hn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var bn=Object.setPrototypeOf&&!hn;var gn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||bn||!gn){var dn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new dn;if(arguments.length>0){Qr(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=dn.prototype;h(S.Set.prototype,"constructor",S.Set,true);m.preserveToString(S.Set,dn)}var mn=new S.Map;var On=!a(function(){return mn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||mn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof mn.keys().next!=="function"||On||!pn){b(S,{Map:en.Map,Set:en.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}Ce(Object.getPrototypeOf((new S.Map).keys()));Ce(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var wn=S.Set.prototype.has;re(S.Set.prototype,"has",function has(e){return t(wn,this,e)})}}b(S,en);Pe(S.Map);Pe(S.Set)}var jn=function throwUnlessTargetIsObject(e){if(!se.TypeIsObject(e)){throw new TypeError("target must be an object")}};var Sn={apply:function apply(){return se.Call(se.Call,null,arguments)},construct:function construct(e,t){if(!se.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!se.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return se.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){jn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){jn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(Sn,{ownKeys:function ownKeys(e){jn(e);var t=Object.getOwnPropertyNames(e);if(se.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var Tn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(Sn,{isExtensible:function isExtensible(e){jn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){jn(e);return Tn(function(){Object.preventExtensions(e)})}})}if(s){var In=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return In(o,t,r)}if("value"in n){return n.value}if(n.get){return se.Call(n.get,r)}return void 0};var En=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return En(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!se.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ie.defineProperty(o,r,{value:n})}else{return ie.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(Sn,{defineProperty:function defineProperty(e,t,r){jn(e);return Tn(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){jn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){jn(e);var r=arguments.length>2?arguments[2]:e;return In(e,t,r)},set:function set(e,t,r){jn(e);var n=arguments.length>3?arguments[3]:e;return En(e,t,r,n)}})}if(Object.getPrototypeOf){var Pn=Object.getPrototypeOf;Sn.getPrototypeOf=function getPrototypeOf(e){jn(e);return Pn(e)}}if(Object.setPrototypeOf&&Sn.getPrototypeOf){var Cn=function(e,t){var r=t;while(r){if(e===r){return true}r=Sn.getPrototypeOf(r)}return false};Object.assign(Sn,{setPrototypeOf:function setPrototypeOf(e,t){jn(e);if(t!==null&&!se.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ie.getPrototypeOf(e)){return true}if(ie.isExtensible&&!ie.isExtensible(e)){return false}if(Cn(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Mn=function(e,t){if(!se.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){re(S.Reflect,e,t)}}};Object.keys(Sn).forEach(function(e){Mn(e,Sn[e])});var xn=S.Reflect.getPrototypeOf;if(c&&xn&&xn.name!=="getPrototypeOf"){re(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(xn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){re(S.Reflect,"setPrototypeOf",Sn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){re(S.Reflect,"defineProperty",Sn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){re(S.Reflect,"construct",Sn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Nn=Date.prototype.toString;var An=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return se.Call(Nn,this)};re(Date.prototype,"toString",An)}var Rn={anchor:function anchor(e){return se.CreateHTML(this,"a","name",e)},big:function big(){return se.CreateHTML(this,"big","","")},blink:function blink(){return se.CreateHTML(this,"blink","","")},bold:function bold(){return se.CreateHTML(this,"b","","")},fixed:function fixed(){return se.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return se.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return se.CreateHTML(this,"font","size",e)},italics:function italics(){return se.CreateHTML(this,"i","","")},link:function link(e){return se.CreateHTML(this,"a","href",e)},small:function small(){return se.CreateHTML(this,"small","","")},strike:function strike(){return se.CreateHTML(this,"strike","","")},sub:function sub(){return se.CreateHTML(this,"sub","","")},sup:function sub(){return se.CreateHTML(this,"sup","","")}};l(Object.keys(Rn),function(e){var r=String.prototype[e];var n=false;if(se.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){re(String.prototype,e,Rn[e])}});var _n=function(){if(!ne){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e($())!=="undefined"){return true}if(e([$()])!=="[null]"){return true}var t={a:$()};t[$()]=true;if(e(t)!=="{}"){return true}return false}();var kn=a(function(){if(!ne){return true}return JSON.stringify(Object($()))==="{}"&&JSON.stringify([Object($())])==="[{}]"});if(_n||!kn){var Fn=JSON.stringify;re(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=se.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(te.symbol(n)){return xt({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return Fn.apply(this,o)})}return S}); +//# sourceMappingURL=es6-shim.map +/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), +a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:X.test(a)?JSON.parse(a):a)}function $(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=Z(c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),$(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=$(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var _=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,aa=new RegExp("^(?:([+-])=|)("+_+")([a-z%]*)$","i"),ba=["Top","Right","Bottom","Left"],ca=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function ea(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&aa.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var fa={};function ga(a){var b,c=a.ownerDocument,d=a.nodeName,e=fa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),fa[d]=e,e)}function ha(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ca(d)&&(e[f]=ga(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ha(this,!0)},hide:function(){return ha(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ca(this)?r(this).show():r(this).hide()})}});var ia=/^(?:checkbox|radio)$/i,ja=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var oa=/<|&#?\w+;/;function pa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(oa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ja.exec(f)||["",""])[1].toLowerCase(),i=la[h]||la._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ua:va,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:va,isPropagationStopped:va,isImmediatePropagationStopped:va,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ua,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ua,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ua,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&ra.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&sa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return xa(this,a,b,c,d)},one:function(a,b,c,d){return xa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=va),this.each(function(){r.event.remove(this,a,c,b)})}});var ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/<script|<style|<link/i,Aa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ba=/^true\/(.*)/,Ca=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ha(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ia.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ia(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ma(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Fa),l=0;l<i;l++)j=h[l],ka.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ca,""),k))}return a}function Ja(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ma(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&na(ma(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);if(b)if(c)for(f=f||ma(a),g=g||ma(h),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);else Ga(a,h);return g=ma(h,"script"),g.length>0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ma(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ia(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ma(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ka=/^margin/,La=new RegExp("^("+_+")(?!px)[a-z%]+$","i"),Ma=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",qa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,qa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Na(a,b,c){var d,e,f,g,h=a.style;return c=c||Ma(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&La.test(g)&&Ka.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Oa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Pa=/^(none|table(?!-c[ea]).+)/,Qa={position:"absolute",visibility:"hidden",display:"block"},Ra={letterSpacing:"0",fontWeight:"400"},Sa=["Webkit","Moz","ms"],Ta=d.createElement("div").style;function Ua(a){if(a in Ta)return a;var b=a[0].toUpperCase()+a.slice(1),c=Sa.length;while(c--)if(a=Sa[c]+b,a in Ta)return a}function Va(a,b,c){var d=aa.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Wa(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ba[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ba[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ba[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ba[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ba[f]+"Width",!0,e)));return g}function Xa(a,b,c){var d,e=!0,f=Ma(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Na(a,b,f),(d<0||null==d)&&(d=a.style[b]),La.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Wa(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Na(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=aa.exec(c))&&e[1]&&(c=ea(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Na(a,b,d)),"normal"===e&&b in Ra&&(e=Ra[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Pa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Xa(a,b,d):da(a,Qa,function(){return Xa(a,b,d)})},set:function(a,c,d){var e,f=d&&Ma(a),g=d&&Wa(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=aa.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Va(a,c,g)}}}),r.cssHooks.marginLeft=Oa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Na(a,"marginLeft"))||a.getBoundingClientRect().left-da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ba[d]+b]=f[d]||f[d-2]||f[0];return e}},Ka.test(a)||(r.cssHooks[a+b].set=Va)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=Ma(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function fb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ca(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],_a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ha([a],!0),j=a.style.display||j,k=r.css(a,"display"),ha([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ha([a],!0),m.done(function(){p||ha([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=eb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function gb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function hb(a,b,c){var d,e,f=0,g=hb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Za||cb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Za||cb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(gb(k,j.opts.specialEasing);f<g;f++)if(d=hb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,eb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(hb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return ea(c.elem,a,aa.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],hb.tweeners[c]=hb.tweeners[c]||[],hb.tweeners[c].unshift(b)},prefilters:[fb],prefilter:function(a,b){b?hb.prefilters.unshift(a):hb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:"number"!=typeof e.duration&&(e.duration in r.fx.speeds?e.duration=r.fx.speeds[e.duration]:e.duration=r.fx.speeds._default),null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ca).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=hb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(db(b,!0),a,d,e)}}),r.each({slideDown:db("show"),slideUp:db("hide"),slideToggle:db("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Za=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Za=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){$a||($a=a.requestAnimationFrame?a.requestAnimationFrame(bb):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame($a):a.clearInterval($a),$a=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var ib,jb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), +void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=pa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=mb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||qa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Oa(o.pixelPosition,function(a,c){if(c)return c=Na(a,b),La.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r}); +/* + * jQuery throttle / debounce - v1.1 - 3/7/2010 + * http://benalman.com/projects/jquery-throttle-debounce-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); +/*! + * imagesLoaded PACKAGED v4.1.0 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ +!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||[];return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}(window,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){var e=[];if(Array.isArray(t))e=t;else if("number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e}function o(t,e,r){return this instanceof o?("string"==typeof t&&(t=document.querySelectorAll(t)),this.elements=n(t),this.options=i({},this.options),"function"==typeof e?r=e:i(this.options,e),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(t,e,r)}function r(t){this.img=t}function s(t,e){this.url=t,this.element=e,this.img=new Image}var h=t.jQuery,a=t.console;o.prototype=Object.create(e.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),this.options.background===!0&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&d[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=t.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,t),n=i.exec(e.backgroundImage)}},o.prototype.addImage=function(t){var e=new r(t);this.images.push(e)},o.prototype.addBackground=function(t,e){var i=new s(t,e);this.images.push(i)},o.prototype.check=function(){function t(t,i,n){setTimeout(function(){e.progress(t,i,n)})}var e=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(e){e.once("progress",t),e.check()}):void this.complete()},o.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,t,e)},o.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},r.prototype=Object.create(e.prototype),r.prototype.check=function(){var t=this.getIsImageComplete();return t?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},r.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var t=this.getIsImageComplete();t&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},o.makeJQueryPlugin=function(e){e=e||t.jQuery,e&&(h=e,h.fn.imagesLoaded=function(t,e){var i=new o(this,t,e);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o}); +/*! lz-string-1.3.3-min.js | (c) 2013 Pieroxy | Licensed under a WTFPL license */ +var LZString={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_f:String.fromCharCode,compressToBase64:function(e){if(e==null)return"";var t="";var n,r,i,s,o,u,a;var f=0;e=LZString.compress(e);while(f<e.length*2){if(f%2==0){n=e.charCodeAt(f/2)>>8;r=e.charCodeAt(f/2)&255;if(f/2+1<e.length)i=e.charCodeAt(f/2+1)>>8;else i=NaN}else{n=e.charCodeAt((f-1)/2)&255;if((f+1)/2<e.length){r=e.charCodeAt((f+1)/2)>>8;i=e.charCodeAt((f+1)/2)&255}else r=i=NaN}f+=3;s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+LZString._keyStr.charAt(s)+LZString._keyStr.charAt(o)+LZString._keyStr.charAt(u)+LZString._keyStr.charAt(a)}return t},decompressFromBase64:function(e){if(e==null)return"";var t="",n=0,r,i,s,o,u,a,f,l,c=0,h=LZString._f;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(c<e.length){u=LZString._keyStr.indexOf(e.charAt(c++));a=LZString._keyStr.indexOf(e.charAt(c++));f=LZString._keyStr.indexOf(e.charAt(c++));l=LZString._keyStr.indexOf(e.charAt(c++));i=u<<2|a>>4;s=(a&15)<<4|f>>2;o=(f&3)<<6|l;if(n%2==0){r=i<<8;if(f!=64){t+=h(r|s)}if(l!=64){r=o<<8}}else{t=t+h(r|i);if(f!=64){r=s<<8}if(l!=64){t+=h(r|o)}}n+=3}return LZString.decompress(t)},compressToUTF16:function(e){if(e==null)return"";var t="",n,r,i,s=0,o=LZString._f;e=LZString.compress(e);for(n=0;n<e.length;n++){r=e.charCodeAt(n);switch(s++){case 0:t+=o((r>>1)+32);i=(r&1)<<14;break;case 1:t+=o(i+(r>>2)+32);i=(r&3)<<13;break;case 2:t+=o(i+(r>>3)+32);i=(r&7)<<12;break;case 3:t+=o(i+(r>>4)+32);i=(r&15)<<11;break;case 4:t+=o(i+(r>>5)+32);i=(r&31)<<10;break;case 5:t+=o(i+(r>>6)+32);i=(r&63)<<9;break;case 6:t+=o(i+(r>>7)+32);i=(r&127)<<8;break;case 7:t+=o(i+(r>>8)+32);i=(r&255)<<7;break;case 8:t+=o(i+(r>>9)+32);i=(r&511)<<6;break;case 9:t+=o(i+(r>>10)+32);i=(r&1023)<<5;break;case 10:t+=o(i+(r>>11)+32);i=(r&2047)<<4;break;case 11:t+=o(i+(r>>12)+32);i=(r&4095)<<3;break;case 12:t+=o(i+(r>>13)+32);i=(r&8191)<<2;break;case 13:t+=o(i+(r>>14)+32);i=(r&16383)<<1;break;case 14:t+=o(i+(r>>15)+32,(r&32767)+32);s=0;break}}return t+o(i+32)},decompressFromUTF16:function(e){if(e==null)return"";var t="",n,r,i=0,s=0,o=LZString._f;while(s<e.length){r=e.charCodeAt(s)-32;switch(i++){case 0:n=r<<1;break;case 1:t+=o(n|r>>14);n=(r&16383)<<2;break;case 2:t+=o(n|r>>13);n=(r&8191)<<3;break;case 3:t+=o(n|r>>12);n=(r&4095)<<4;break;case 4:t+=o(n|r>>11);n=(r&2047)<<5;break;case 5:t+=o(n|r>>10);n=(r&1023)<<6;break;case 6:t+=o(n|r>>9);n=(r&511)<<7;break;case 7:t+=o(n|r>>8);n=(r&255)<<8;break;case 8:t+=o(n|r>>7);n=(r&127)<<9;break;case 9:t+=o(n|r>>6);n=(r&63)<<10;break;case 10:t+=o(n|r>>5);n=(r&31)<<11;break;case 11:t+=o(n|r>>4);n=(r&15)<<12;break;case 12:t+=o(n|r>>3);n=(r&7)<<13;break;case 13:t+=o(n|r>>2);n=(r&3)<<14;break;case 14:t+=o(n|r>>1);n=(r&1)<<15;break;case 15:t+=o(n|r);i=0;break}s++}return LZString.decompress(t)},compress:function(e){if(e==null)return"";var t,n,r={},i={},s="",o="",u="",a=2,f=3,l=2,c="",h=0,p=0,d,v=LZString._f;for(d=0;d<e.length;d+=1){s=e.charAt(d);if(!Object.prototype.hasOwnProperty.call(r,s)){r[s]=f++;i[s]=true}o=u+s;if(Object.prototype.hasOwnProperty.call(r,o)){u=o}else{if(Object.prototype.hasOwnProperty.call(i,u)){if(u.charCodeAt(0)<256){for(t=0;t<l;t++){h=h<<1;if(p==15){p=0;c+=v(h);h=0}else{p++}}n=u.charCodeAt(0);for(t=0;t<8;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}}else{n=1;for(t=0;t<l;t++){h=h<<1|n;if(p==15){p=0;c+=v(h);h=0}else{p++}n=0}n=u.charCodeAt(0);for(t=0;t<16;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}}a--;if(a==0){a=Math.pow(2,l);l++}delete i[u]}else{n=r[u];for(t=0;t<l;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}}a--;if(a==0){a=Math.pow(2,l);l++}r[o]=f++;u=String(s)}}if(u!==""){if(Object.prototype.hasOwnProperty.call(i,u)){if(u.charCodeAt(0)<256){for(t=0;t<l;t++){h=h<<1;if(p==15){p=0;c+=v(h);h=0}else{p++}}n=u.charCodeAt(0);for(t=0;t<8;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}}else{n=1;for(t=0;t<l;t++){h=h<<1|n;if(p==15){p=0;c+=v(h);h=0}else{p++}n=0}n=u.charCodeAt(0);for(t=0;t<16;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}}a--;if(a==0){a=Math.pow(2,l);l++}delete i[u]}else{n=r[u];for(t=0;t<l;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}}a--;if(a==0){a=Math.pow(2,l);l++}}n=2;for(t=0;t<l;t++){h=h<<1|n&1;if(p==15){p=0;c+=v(h);h=0}else{p++}n=n>>1}while(true){h=h<<1;if(p==15){c+=v(h);break}else p++}return c},decompress:function(e){if(e==null)return"";if(e=="")return null;var t=[],n,r=4,i=4,s=3,o="",u="",a,f,l,c,h,p,d,v=LZString._f,m={string:e,val:e.charCodeAt(0),position:32768,index:1};for(a=0;a<3;a+=1){t[a]=a}l=0;h=Math.pow(2,2);p=1;while(p!=h){c=m.val&m.position;m.position>>=1;if(m.position==0){m.position=32768;m.val=m.string.charCodeAt(m.index++)}l|=(c>0?1:0)*p;p<<=1}switch(n=l){case 0:l=0;h=Math.pow(2,8);p=1;while(p!=h){c=m.val&m.position;m.position>>=1;if(m.position==0){m.position=32768;m.val=m.string.charCodeAt(m.index++)}l|=(c>0?1:0)*p;p<<=1}d=v(l);break;case 1:l=0;h=Math.pow(2,16);p=1;while(p!=h){c=m.val&m.position;m.position>>=1;if(m.position==0){m.position=32768;m.val=m.string.charCodeAt(m.index++)}l|=(c>0?1:0)*p;p<<=1}d=v(l);break;case 2:return""}t[3]=d;f=u=d;while(true){if(m.index>m.string.length){return""}l=0;h=Math.pow(2,s);p=1;while(p!=h){c=m.val&m.position;m.position>>=1;if(m.position==0){m.position=32768;m.val=m.string.charCodeAt(m.index++)}l|=(c>0?1:0)*p;p<<=1}switch(d=l){case 0:l=0;h=Math.pow(2,8);p=1;while(p!=h){c=m.val&m.position;m.position>>=1;if(m.position==0){m.position=32768;m.val=m.string.charCodeAt(m.index++)}l|=(c>0?1:0)*p;p<<=1}t[i++]=v(l);d=i-1;r--;break;case 1:l=0;h=Math.pow(2,16);p=1;while(p!=h){c=m.val&m.position;m.position>>=1;if(m.position==0){m.position=32768;m.val=m.string.charCodeAt(m.index++)}l|=(c>0?1:0)*p;p<<=1}t[i++]=v(l);d=i-1;r--;break;case 2:return u}if(r==0){r=Math.pow(2,s);s++}if(t[d]){o=t[d]}else{if(d===i){o=f+f.charAt(0)}else{return null}}u+=o;t[i++]=f+o.charAt(0);r--;f=o;if(r==0){r=Math.pow(2,s);s++}}}};if(typeof module!=="undefined"&&module!=null){module.exports=LZString} +/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ +var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||function(e){"use strict";var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=e.URL||e.webkitURL||e,i=t.createElementNS("http://www.w3.org/1999/xhtml","a"),s="download"in i,o=function(n){var r=t.createEvent("MouseEvents");r.initMouseEvent("click",true,false,e,0,0,0,0,0,false,false,false,false,0,null);n.dispatchEvent(r)},u=e.webkitRequestFileSystem,a=e.requestFileSystem||u||e.mozRequestFileSystem,f=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},l="application/octet-stream",c=0,h=[],p=function(){var e=h.length;while(e--){var t=h[e];if(typeof t==="string"){r.revokeObjectURL(t)}else{t.remove()}}h.length=0},d=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var i=e["on"+t[r]];if(typeof i==="function"){try{i.call(e,n||e)}catch(s){f(s)}}}},v=function(t,r){var f=this,p=t.type,v=false,m,g,y=function(){var e=n().createObjectURL(t);h.push(e);return e},b=function(){d(f,"writestart progress write writeend".split(" "))},w=function(){if(v||!m){m=y(t)}if(g){g.location.href=m}else{window.open(m,"_blank")}f.readyState=f.DONE;b()},E=function(e){return function(){if(f.readyState!==f.DONE){return e.apply(this,arguments)}}},S={create:true,exclusive:false},x;f.readyState=f.INIT;if(!r){r="download"}if(s){m=y(t);i.href=m;i.download=r;o(i);f.readyState=f.DONE;b();return}if(e.chrome&&p&&p!==l){x=t.slice||t.webkitSlice;t=x.call(t,0,t.size,l);v=true}if(u&&r!=="download"){r+=".download"}if(p===l||u){g=e}if(!a){w();return}c+=t.size;a(e.TEMPORARY,c,E(function(e){e.root.getDirectory("saved",S,E(function(e){var n=function(){e.getFile(r,S,E(function(e){e.createWriter(E(function(n){n.onwriteend=function(t){g.location.href=e.toURL();h.push(e);f.readyState=f.DONE;d(f,"writeend",t)};n.onerror=function(){var e=n.error;if(e.code!==e.ABORT_ERR){w()}};"writestart progress write abort".split(" ").forEach(function(e){n["on"+e]=f["on"+e]});n.write(t);f.abort=function(){n.abort();f.readyState=f.DONE};f.readyState=f.WRITING}),w)}),w)};e.getFile(r,{create:false},E(function(e){e.remove();n()}),E(function(e){if(e.code===e.NOT_FOUND_ERR){n()}else{w()}}))}),w)}),w)},m=v.prototype,g=function(e,t){return new v(e,t)};m.abort=function(){var e=this;e.readyState=e.DONE;d(e,"abort")};m.readyState=m.INIT=0;m.WRITING=1;m.DONE=2;m.error=m.onwritestart=m.onprogress=m.onwrite=m.onabort=m.onerror=m.onwriteend=null;e.addEventListener("unload",p,false);return g}(self) +/*! seedrandom.js v2.3.3 | (c) 2013 David Bau, all rights reserved. | Licensed under a BSD-style license */ +!function(a,b,c,d,e,f,g,h,i){function j(a){var b,c=a.length,e=this,f=0,g=e.i=e.j=0,h=e.S=[];for(c||(a=[c++]);d>f;)h[f]=f++;for(f=0;d>f;f++)h[f]=h[g=r&g+a[f%c]+(b=h[f])],h[g]=b;(e.g=function(a){for(var b,c=0,f=e.i,g=e.j,h=e.S;a--;)b=h[f=r&f+1],c=c*d+h[r&(h[f]=h[g=r&g+b])+(h[g]=b)];return e.i=f,e.j=g,c})(d)}function k(a,b){var c,d=[],e=typeof a;if(b&&"object"==e)for(c in a)try{d.push(k(a[c],b-1))}catch(f){}return d.length?d:"string"==e?a:a+"\0"}function l(a,b){for(var c,d=a+"",e=0;e<d.length;)b[r&e]=r&(c^=19*b[r&e])+d.charCodeAt(e++);return n(b)}function m(c){try{return a.crypto.getRandomValues(c=new Uint8Array(d)),n(c)}catch(e){return[+new Date,a,(c=a.navigator)&&c.plugins,a.screen,n(b)]}}function n(a){return String.fromCharCode.apply(0,a)}var o=c.pow(d,e),p=c.pow(2,f),q=2*p,r=d-1,s=c["seed"+i]=function(a,f,g){var h=[],r=l(k(f?[a,n(b)]:null==a?m():a,3),h),s=new j(h);return l(n(s.S),b),(g||function(a,b,d){return d?(c[i]=a,b):a})(function(){for(var a=s.g(e),b=o,c=0;p>a;)a=(a+c)*d,b*=d,c=s.g(1);for(;a>=q;)a/=2,b/=2,c>>>=1;return(a+c)/b},r,this==c)};l(c[i](),b),g&&g.exports?g.exports=s:h&&h.amd&&h(function(){return s})}(this,[],Math,256,6,52,"object"==typeof module&&module,"function"==typeof define&&define,"random"); +/*! console_hack.js | (c) 2015 Thomas Michael Edwards | Licensed under SugarCube's Simple BSD license */ +!function(){for(var methods=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeline","timelineEnd","timeStamp","trace","warn"],length=methods.length,noop=function(){},console=window.console=window.console||{};length--;){var method=methods[length];console[method]||(console[method]=noop)}}(); +/* User Lib */ +"USER_LIB" +}else{document.documentElement.setAttribute("data-init", "lacking");} +</script> +<style id="style-normalize" type="text/css">/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}</style> +<style id="style-init-screen" type="text/css">@-webkit-keyframes init-loading-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes init-loading-spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes init-loading-spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}#init-screen{display:none;z-index:100000;position:fixed;top:0;left:0;height:100%;width:100%;font:28px/1 Helmet,Freesans,sans-serif;font-weight:700;color:#eee;background-color:#111;text-align:center}#init-screen>div{display:none;position:relative;margin:0 auto;max-width:1136px;top:25%}html[data-init=lacking] #init-screen,html[data-init=loading] #init-screen,html[data-init=no-js] #init-screen{display:block}html[data-init=lacking] #init-lacking,html[data-init=no-js] #init-no-js{display:block;padding:0 1em}html[data-init=no-js] #init-no-js{color:red}html[data-init=loading] #init-loading{display:block;border:24px solid transparent;border-radius:50%;border-top-color:#7f7f7f;border-bottom-color:#7f7f7f;width:100px;height:100px;-webkit-animation:init-loading-spin 2s linear infinite;-o-animation:init-loading-spin 2s linear infinite;animation:init-loading-spin 2s linear infinite}html[data-init=loading] #init-loading>div{text-indent:9999em;overflow:hidden;white-space:nowrap}html[data-init=loading] #passages,html[data-init=loading] #ui-bar{display:none}</style> +<style id="style-font" type="text/css">@font-face{font-family:tme-fa-icons;src:url(data:application/octet-stream;base64,d09GRgABAAAAACWoAA4AAAAAQhQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPihI/2NtYXAAAAGIAAAAOgAAAUrQXRm3Y3Z0IAAAAcQAAAAKAAAACgAAAABmcGdtAAAB0AAABZQAAAtwiJCQWWdhc3AAAAdkAAAACAAAAAgAAAAQZ2x5ZgAAB2wAABjCAAAq+uJ4WNtoZWFkAAAgMAAAADQAAAA2BZlJs2hoZWEAACBkAAAAIAAAACQIJwQZaG10eAAAIIQAAABuAAABOPTeAABsb2NhAAAg9AAAAJ4AAACeojKW6m1heHAAACGUAAAAIAAAACAA6gvwbmFtZQAAIbQAAAGPAAAC/eLsyKlwb3N0AAAjRAAAAfwAAAM0412SIHByZXAAACVAAAAAZQAAAHvdawOFeJxjYGRWYZzAwMrAwVTFtIeBgaEHQjM+YDBkZGJgYGJgZWbACgLSXFMYHF4wvPBhDvqfxRDFHMQwDSjMCJIDANLeC6V4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF74/P8PUvCCAURLMELVAwEjG8OIBwC4Ywb6AAAAAAAAAAAAAAAAAAB4nK1WaXMTRxCd1WHLNj6CDxI2gVnGcox2VpjLCBDG7EoW4BzylexCjl1Ldu6LT/wG/ZpekVSRb/y0vB4d2GAnVVQoSv2m9+1M9+ueXpPQksReWI+k3HwpprY2aWTnSUg3bFqO4kPZ2QspU0z+LoiCaLXUvu04JCISgap1hSWC2PfI0iTjQ48yWrYlvWpSbulJd9kaD+qt+vbT0FGO3QklNZuhQ+uRLanCqBJFMu2RkjYtw9VfSVrh5yvMfNUMJYLoJJLGm2EMj+Rn44xWGa3GdhxFkU2WG0WKRDM8iCKPslpin1wxQUD5oBlSXvk0onyEH5EVe5TTCnHJdprf9yU/6R3OvyTieouyJQf+QHZkB3unK/ki0toK46adbEehivB0fSfEI5uT6p/sUV7TaOB2RaYnzQiWyleQWPkJZfYPyWrhfMqXPBrVkoOcCFovc2Jf8g60HkdMiWsmyILujk6IoO6XnKHYY/q4+OO9XSwXIQTIOJb1jkq4EEYpYbOaJG0EOYiSskWV1HpHTJzyOi3iLWG/Tu3oS2e0Sag7MZ6th46tnKjkeDSp00ymTu2k5tGUBlFKOhM85tcBlB/RJK+2sZrEyqNpbDNjJJFQoIVzaSqIZSeWNAXRPJrRm7thmmvXokWaPFDPPXpPb26Fmzs9p+3AP2v8Z3UqpoO9MJ2eDshKfJp2uUnRun56hn8m8UPWAiqRLTbDlMVDtn4H5eVjS47CawNs957zK+h99kTIpIH4G/AeL9UpBUyFmFVQC9201rUsy9RqVotUZOq7IU0rX9ZpAk05Dn1jX8Y4/q+ZGUtMCd/vxOnZEZeeufYlyDSH3GZdj+Z1arFdgM5sz+k0y/Z9nebYfqDTPNvzOh1ha+t0lO2HOi2w/UinY2wvaEGT7jsEchGBXMAGEoGwdRAI20sIhK1CIGwXEQjbIgJhu4RA2H6MQNguIxC2l7Wsmn4qaRw7E8sARYgDoznuyGVuKldTyaUSrotGpzbkKXKrpKJ4Vv0rA/3ikTesgbVAukTW/IpJrnxUleOPrmh508S5Ao5Vf3tzXJ8TD2W/WPhT8L/amqqkV6x5ZHIVeSPQk+NE1yYVj67p8rmqR9f/i4oOa4F+A6UQC0VZlg2+mZDwUafTUA1c5RAzGzMP1/W6Zc3P4fybGCEL6H78NxQaC9yDTllJWe1gr9XXj2W5twflsCdYkmK+zOtb4YuMzEr7RWYpez7yecAVMCqVYasNXK3gzXsS85DpTfJMELcVZYOkjceZILGBYx4wb76TICRMXbWB2imcsIG8YMwp2O+EQ1RvlOVwe6F9Ho2Uf2tX7MgZFU0Q+G32Rtjrs1DyW6yBhCe/1NdAVSFNxbipgEsj5YZq8GFcrdtGMk6gr6jYDcuyig8fR9x3So5lIPlIEatHRz+tvUKd1Ln9yihu3zv9CIJBaWL+9r6Z4qCUd7WSZVZtA1O3GpVT15rDxasO3c2j7nvH2Sdy1jTddE/c9L6mVbeDg7lZEO3bHJSlTC6o68MOG6jLzaXQ6mVckt52DzAsMKDfoRUb/1f3cfg8V6oKo+NIvZ2oH6PPYgzyDzh/R/UF6OcxTLmGlOd7lxOfbtzD2TJdxV2sn+LfwKy15mbpGnBD0w2Yh6xaHbrKDXynBjo90tyO9BDwse4K8QBgE8Bi8InuWsbzKYDxfMYcH+Bz5jBoMofBFnMYbDNnDWCHOQx2mcNgjzkMvmDOOsCXzGEQModBxBwGT5gTADxlDoOvmMPga+Yw+IY59wG+ZQ6DmDkMEuYw2Nd0ayhzixd0F6htUBXowPQTFvewONRUGbK/44Vhf28Qs38wiKk/aro9pP7EC0P92SCm/mIQU3/VdGdI/Y0Xhvq7QUz9wyCmPtMvxnKZwV9GvkuFA8ouNp/z98T7B8IaQLYAAQAB//8AD3icrToNcBzVefe9/b3dvd29u909/dyd7ke6k86yLEunOyHJsrCxJWyJGmEcLMDYxBhHNsZQBzOAkjQmFDrGIq5gHEIcCILOAGZq3IQO04RkIGkgaUMKMbQznSlJW0wgJtOQHxRr1e+93TvJwq7JTD3y2/f//bzvfX/vAhAIzL3KPcYNBFIB8UR9EJYuAcuAqGNbOiwDSczkuorlaJ6WTeVSRwMIDveY8aN20GztjzMhW4P2H+kNUPM5NaVNQE0K3tWM77vv8rJqgnT33VJE4WWIfd/QbKHZjcXcZiFAqjCDgUJA/mZTWOIIwi0vAwNiUjkW9THIZs6DAbnj6ffGP/P+0y2vv+5SXGLKuXHJPJH92c+yT7x3883wnI9W/DxI4T9+bm7uOL+MUwNywAg0BJYFQgNKa2NDzFBEjqeM0SFXLHU4YKe7yjFoSmdEKWw5nemOUj5czMXCliilM7lyuFgqp3HaDf1j/fhH+s6cfm4MEpA8c0BSQBO5CUkD5fJi05kDjSUoNnETTUUSXtpPVm0aGHDdmV0nNkPiMUWeHZMVRSZPSlp0dqypCKVG8iT9IK5AEeamyZGAjecW5tm5SSBm8ojiSqBsYoXDTRtuymw13V8axjB+p2EPlsMGcRzTTRkGOLRpmk/AzSZ+A97ecx+QN8g9gUbc26F7N+GJiN5pLGMA8hUo7EQcHI455A0PwrS3I37N+bZhTE8bex1aeeIJ4+MTjTY6gcH+iIvgGWQRdh2TR9sS81kspCzytguLfBcyuBOLXuhwYnZnh8NFUs6plLPLScGpWBKwkYztwsop7Hie9r7rYK/9brWXTg9U+RiBX+GJiyc0rgIv7UNJe3vPjrFdyZOV/byNUkyW/0AuIi/h+h6U5a64SmW5ieGcya2AYimG+EUtnZN08ImgveV+KOYykiiJVMrbkI+dHUkC9+nyPUFdD94j639r1uTq7FiSNrR1hXS8uLbGapYUSbpaJvzmp5aODbU9iJNBU1gJa5LFTCqihNpDigmWWtc2GjUy7Y2m3hHk14qmPJXp2cTInZudO85dhzw2AuXAJQHl+Yt7l0RVjkO8u4q5JZARE2A5yNxStNgGWcQSj7izA1HucCgJOsRsb7xYWgn9XAwvRqaN4HAS4ENF3kXFFovJ/muW3zsYDK3jxaCQbOouOPXZPmBDNZG4krS0N2/9wakf7hHv+IcPX/jcaGWZAp9fvrFtv66UeSlXn4zYdZo5kLNwIJJRTbEu3jz62Zf37Xv5l7RAeugZfAQ7kJ5koA3PoJB1eP8MpHRVWqpygyITpiKz4DCoHMENlun+wrDA0bNZ9jmJZdZwhhx9UnewMKztg2yAlie9j6O7Lzrks7tYdRdOO4u/FJ9e5G93RyFTJ1f5G17IZDs7z25uEfuFBYwlvYpUUuTnKJO6umg5IymD88yGGxbycjN2JOkIVk6wUoEzm/0O5T/Owb92Jg8NyL/6qFrl30IZ5nSgMp3nch7DkvOMCaMeoQ1U4JZxQncenmAMmcAei/S7V9CvAccW8mczwtMCceSQ8nwhXWuKAeQPJbRCc9RnhoSyhvBL+WgxTzsk0Y567IFj+35wa4Xq7ykS5YIm7UIdq4iCfKcsiIoSvFFWONUnFovZoXHKhXE69R9hTOIEgZPcJ0VZRrx+i3j9hhtFPqQDnYjX8uaEpS2+F4twiVkOylSJAwfvBZO3XBnoTaEHtltSWAGKIEl3SJIQ1CRESIRnLFtJRc88GckEbQuOBTO5zBXziL0JIPKiyMtzggwiMc+czmbDEbDMbJaLhC3LPzPuFOKaD6zEM+tt15gNxTPLIg5dvglCfGmbmakYmqmKsEfRVOWWAXjqvEzVeamT6botq9321Vu2rIb7KOrufmZ24LWmoiI3yspJJ65e704JprBSFGH3pxXLhAQe9fBzbM1rq7YAm1dsctvZSiqu8G94rxwS/LQ7JYorRR0XXq/GmSh4dJADKAsSk70ajQ8gHdE0MhzVjOCbVDSvKINd1PhKVN+fgMTG2zYCvIaq+V2mmsNTP36IRLD6xO7ejWTDisfc7zCVD6tQW+/eMTW1Y3fSt20foe+hBZpQ3zfGfH3vyzmCZNvHFoJFVPrRjj7m6I26M3r7KHQxgD5c2H/4tQdIeJLJ+yQDvTsZOwv4jYfJQxVaxxmtKtNTTVaQnRmS6kkWvfBoNvCeIT55jt41PJZwpg3YYeJYGK+dppgK/sF+R/8ggZIOBlnyNoK/qpwokLZ6uCFRKCTKV8HeGaYksPg2Xj/3fyQZb6dhGWv2QLLQU4DW7lZwf77Hw+vb3AjzexKIVywkEXoGlB1JUqr4FW3A7BZlDzgzhZ5W0tyfI1da7mmn13JvsZOFxLuJIRsmLXJVskByA41iu/uvSds9bWOnPZQ4lSgANm+xqQ6gMPlGH2YR79rSDIXLXQBujHZSxkCpSIeynwCdNxEFJ2HVmSDaFPxQYoIN2BfCM8E6zTCu66VDSQ97KkPfIa8i7nGUITNAZagDhYFJjeg5rXh+bcBuYamT/JWmRVE8Iopeb/3ud1ZdSIs4TkQLcaogJ63Z5dGUxEfefz8qSKko+Qm2PB/ZgyEEMngmjkjovYB0GBog+n9COzD7MiQ73pfOA5S8NLseIst+QWbPC9y/J8dRv7QFliCNWcnzAYlI3fE8hdNVbBPY1WEeZxm8m5mKOdypQRG1qhiRgQBnZbr7N20qT1ipoPsLVYWEGq8hE3BoLPn2tV8PhWVe0WTB4nIN3WMD7cmIiDZEhaSSROulWMbk2+sX4LIs0Iq4NNdUfV3mDeqCbaEOligmbYSFCaU0VRVULrhTKoKlIMubNvV3ZyyOByWMilXkBpNjcIjihTjBrwzF/bmKF1iMJNsHxrobcnxElDVF0C3u69fevP5txIsEcUrVZyR96DPqiI/C+zGTp0uZGkXVP6PG1RncET7Ey/eKjnX885QeWw83krsCIVyvMp8TD9P3rEvMFUkFZxS6Rw25ytWQJ/52/tqLyQSDrc7Dpiq/H2XDgYsVBgjnK7BF95EwLKLNKLh0bg5x74VXPNwJO1fq7raB588j7pbhat78pDKjPE1td1Jl6Hhn8Q73LdISsCrrgwuijljQ28Tinnavx+Xu9ap6jYqn2QzNaly7RoVJ99MoBl/DvmtU1X0Lu3FCnO37XXKEW832Nai8BYnDKKvIF92W3F9dotK94ahCNyJPuW+5b2L1WrQ2X6fSc1TBejLg77uvsm8FX2b1ghWk6cbjuB1FUIVm9y0f6aMKfMbdhjshNGihFKgIgE7044ZvkbXz+zbh3chXN/f35Z6mOyF2b/m7H6V7HVV3XYOYtiDOig/J25bh+xPuAPMdxRPRc8V1YU8Z2mEv9OIO2O6DTg8Wtt2C3+lCcjBRmEaNVbDhi0nLnUK1ttvqdVpsexruQ93WGnf3T9s47N+te7nN5FeohRGeChUfIvZx5htAPYTNjQl/ea/tTlkW7LZ7nIK3dyNsGUwWpq0+a4k/ALvozB5nurkCqwthUdrq5mnzBD/tu5rpfPVYuC6L0VZwnMfd/YnGxgTc97jjFNjGFvRQ6iyrYPfZjyPVyQJM233YRF5YVb1xgLzjwVMX3NOwZ/K7wtJZx4W8pGRNNzf4ZOBeCKgPCxuKcUYmxQNycbjP5wGlEJGk8OZc369tR3gtaZ+X6CbmVkIONRVJcugpluk1TQL1Fqmfy1ELVi4hYy1zJhYNj4zu7RkfbuebN17fv+q2Fj4sDgtE7Hv2uk89uneIH7j9yNWjR1YMmUvJSzO6s9QcGWkbHt83PtzW0yWCMMLr4roNcMm+o88e3XdJ/0VDkWiFDxSv5YhXq8d3nVAryjjtoDXp7Ojn2gg6ijGHIUxDpQZ0Y2lQym2+5NZHN219to8XhsUw33Lb6p6dG9DVGN598/bmkXA0NoPeR2t4qO/h0U8d3bcKtmB5yeilos6PCCB29fgINjeNmEsdfaYmGhm6qB9RrPhEx7mrEbfGwCDauZXNJo09wLJ1oAhSe1NxWkUDKKJofMqeE+szt8S4K9JYmjbLXRRtylOU1vWN//mVy4/0DVGNqM9QJT7SvL287ot5MSZoGC/oyHTWO7p3vdd5s6RB439/5fKH6aIaEDh46AVkpMqWo1YdaWpe1690hzT4e79jxGuLvD+R0iUwuiJ+TLUM4+yrA8aAdsVAsX1JFgMsTkCF4ceBdtgLZ8oXaENnPpfPipLA6A57nn4+XI1hUbCoYmig1KP5pH44Kybnq4cUyatKivvTmXpeOC7y8J4il3yHncWVz+SDrc5zTqucPyYro3Af7XP30/I8ddJxsQAgXIFbz37QdsmqNhJl0K6145C0rkWzExAX8aM3sDpwYyA8oF83PNBXWu7xRPQMIT1E6syw7M4F2tFwOmyhVKQ7+uH/lz9DribLBF4jsuze94lYBc+7LzLOXMw4c+66u52EZz/QLEWxyA0XZFuA9+OVUfSTwyzWCw0o3a0Jx9BYTrKp2AZiEi9qGSs6OFhZkPboRDXesZKpbcd3UOjV8dMgNNQhr1pJh0Qy5petVIQ48Zq1KefMj7zIhluf3pQeBs5JfUuJMGcgHFRik16gP1mzHX2EmroaYhmVysETLOo54aSGU/gHzbEwdRvCMXuGhUczHj3HkZ42Rk9LYIDS07c8YRuqSBg91Pmnwo8VghFR2Y9oKTmxziSwi0HTN2I1cMvT3E7Fezk/Pae1UnYyUwqdRnqCNZPoXSJSk6hxGWmRBKqBSMqyTP97/wmaJcQCGpqbG5Iw6vhEtHpEVWihepULpFG3rqG0rOha2qTxJIC0YOSYFjrxEtP8nlSlIxvu7PLcRKmS76mk04Sq0HoTqJ04CcfcK+DDIU34mhCX/dByaAiDy58ibicVeRdNJrNyezI2G/ESlUKsZDxiOtLJk/ChXCc9Imp+1nO2xL6QZIkkWiizM7SHIF9q9K8ZpQDx8zOjgWaMzORvdrSGPJ2sEzRYZer9O2gmWD4zSTr6sSuH8Uc/IGjmyLIMOHUV0G48840967ixy2v6zIhcU+pr3bDj9u0bc1xfqUbO9sUuH3O/iqEbFPqaPbOBZuFTO57rx7mxvnDL7avRFLah/ei55LZCpKddjqz4OxhyH6YRLuzA0rcfY5yC8rQTcb08JdLYleZW8TZ0lGgSCyVfQoQtRDiPV6BqKLryzL7kqRmkuoGdE5UzlKWy39mJQlU1OChf1KrEHOYcsdMhvaO3j5JN+zZBXJZ2Kmq0WRSMDSFJGqmtC0q8eZesmfWxPxNNca3DC3KzYsg7MBBXhJ2yHmvy5sojNXVBmQvfhUdoxJ0NgiENWTzfqwd3SOjC927ceNvGjbfTUTNp13eIumhvAKEvJA/HTUW6Maj1CeJAUtBFrcOI1xugSWxubV1qqaRJ1gZvqiHLbKqwOo5TR9hELw7/iBsjL/t6WXl+SWN9VOO5RfnTtJcwreTFY35bWthGB+bMB+yOcGEDg4bztxbkUR0wh1h2kJWgV0awMR+Hjvn5mlrmu9BMCMpYsZynmQC8KR2xco4maZIg5jN5CU86ViJ/s27nzqlxgFc6167fuXP92s5XYOdDO8j4pYNYw16IjR8eH79U0ra3Y6V9uyat20l2P7AbsKpjJ81Tzs39nt9PXgqYeL9LNB+Yi9uMN1BEZ0knnvijDiZLEDg6dJ30NuA9oQEVh9U0uk/kgO8A+R94pvWy8YveWn0ZWbfmLepJXdqz5Z5B94qhu7d2k75r7l0Lx2gVtvTMr6FXgDY7p56d6qSNS+/e0ke6r//CQ1/YXiTdW++u+FK/529HfC3klvzNhK3Te4txIUFlkuQ8tIjguXrUG6WAPWgMsIcDF664d3v3DHXwhQ07YMul2I9QDvtQXz+bokoej3uUo5mt1Qi7f/m58pGoIAyavsnnFiUl8cbhKTpRmI+CKw9Y1oKc5GvZZJCT6kWJcCHNzzDS3KTQKEocr/6Fe1GoUf+1rq/QG/W/hs9goz8E649Xc5M6HxXjAnDV9OT9spBFuwOC26Prv2bzQ3RhCHfwaYpW8+LxqOzlYOZR7/Kf/RbmXMktCzAr3jWP/Kqt5KUqZDq4uTqyBbYGfL17HcuL19KcjykyePSoAP2bNgILH1qOXXFwA9l471P3bOIvOwRXL8j+k0OjB6cPjrLCfe2sXP/824QcsAMZlOmGWiMo0rwb4K1qo+mH/LkBVlXdA+cFXFFWvz0//AXvbZ6+ac3GoyzHHvXfzCqvNILfLi9qV7KBJ/03OPbql/A+XlcDa3g9C1/rnPPU/XzkR4E3q/4p6kHES6V3vVx1M7x3EG4RnpwfhuT9B8mTF4BG6w/vZp7SbtoL4oJBkCuYe2+LL3GT6CtdzGKjNas6FGaHETyqOIeljCSdy4azYTwkLxFIL08OHSKaM+7sonl9vERpGguhHaS5bUgz24xu3ETTPsVKqntkIZfpqR1MdBfQKd6hmiFHviU1QZ260MQ2FSOcbfDmVoyFeHkb9rq/db9KFWsP6uutqz6LgZW6R+JrIjp86Gp6jSXL+7RoUv38yjEracH0NiVpKdu2ISBl27QDRdTKAT9WHoc/IL/p7w4sptcdmtpFR6IcZRnNXDnaT909x7Ykjj6PwmlFdP9FMuWgQvb8nAiKpHB7iS4/r+pk678LRCWOGpq9QwfOlOGlbpDkEPwThngKL7puibAY5LvMl+ZQQ8Yx4mxF/wZjkGJ7a3NjKl5jyjiJ/hAhLzVVExN+9qMpZsAyWImhu/eF2NlfcmS6bxq6lNlO9CZvxpjon/G7R5k1SqVwuFwOv3HTTZn0TTelSQs2wtjpPkNH8D/RH++b3mkosx0KLkzSlfi92qSrzPKX2arMTe692ChjJ7T5I75t3I487EIe5jXKQ6pg6Q83qs/lEn3noSFynmb4aOrBF9sEoBuHhKFYcL11up41emofLCQGE60wVdeDClSvn5qqM41Go7t+iuWUHqzrNrOGWTsFst5TtwLXXPk0Syc9fSX2rsBFmzadY6C/Fge8d+e5uXHkfyiQRc6vwTu2Ylkhz95Fq2/8+YVv/CxSqb7xxyqhDjDBRxFBxcQnSYzeBfrYNqGJjej4TLDfWEywII42hqZ+/BB/6I2DkCn0WS9uv3PD4Z0DpG/3oemDe7u5NS/aMOWtol60t2qCusYTSi19uHn1iHiQOpz2i2v6xx/4xqE9PfyqHQ+N3Ln9RftsmoxADcYAyvMt9Y73lr7wdwTUmb8g/u53GOaw6pPizJC9MJrEj7noG9sG1CNhmWN2BcF2dpRzGBfz5XrojEWZRxuj6aCYY0tiLJOTMmK2uJJQjxj/8hjKEB1iGHCj4JTpxczQzEtehAevG+5pUO12twtCjfG4I979yJB4a7RlZbDdVGV1OMgDQPZQY+ERm1wqiVyYJwJHMrGaP+o9YKbUlE2ApL6YEiyylNT9ESff74qtvCgqNSZcBVOa+2Hr9q9E70rVikGTcxRJ4BSQa6ImzpQIEXk+OFbqhvQRQ4souDWotqAiL2Xqm+AZ/Yz0kXcCOnvfqg1779vzOXtqtvPMii9Ig5+dwj87Kf4bQ6EJfdRt4PyQZYFY0/NXERbE5vPzi+As2njhToFqfp7h6ufXYTFiZ6MCryyG/xQX5qIBFddLfr6b+SYsHc3P1ocikRD5rxCMuNslxeBKuiZjzQpUY6kFvwNgPtyioHRxkEr9fv+HE5AwHFc9q0neOXOa/kiAi9ByQX3et1fZb2+q7yCL914QN5y1GVt/DOVaR29JPCECXV9iGaI84A7sQ9W3Y4dLZe4vVR1Mxd3Hc7rq7lNVOKjqHM9xqmiceVWXNTgoiO6fswpN0R/EfnefyHtnMvcsdw1nzMOJiSzGpQ+SPmclxmVRqlVM0HG5wNFSQYAIRhjE3ZDTsobwJbifVegTxj7sx7mCRwvp5XSWh6/QYs/TwjyMahKsVCYZVaeECMTR56MplPyzCfrSPO/dL0m8RwvpQ1oS56aF7i/58Mpn0eOHaKxcTNGd84cLd4oCvXPu3B+4a8kPUA7rmSzJ7E3Zy7OzuJEm/Mt+7Eh/pyDPMx7xF7luuh/CY9hDe4WZYLqvW+YhFlJiWX1PO0aOB6L0t3AVOUK7V/XSqP8Dx/CavHCY8erwC3jhyKHZR2nu9wXvpz4vKN4dwOIA22sZ/S1RTbhyBxbvF/XeXzEQpfEUTa0hLTTE+RigN9vzQhBp0RzT5OUaKazwlhEU8u0fx8D9XmGdwVmmZmpavDGuichhJJUz1nn5pp9yj5H3GG7DgZtovmnn5YNFiiT/JyIZqw6Uvd+i0TRIFwumFw7SVEg/TYvQDM/8hE9O4uTWEVlECuyU2tLW1oKK3jIk+bItDxy6TZKw36mttdZgKDxo1fIRzrFMSbrt0J/Cl8KVh1OcozuqGUyO7RxLBk3UrA6XfmDTF97qwAErpOl655GnjnTqOidyIQsHO08G/hcLt/j/AAB4nGNgZGBgAOLaW41M8fw2Xxm4mV8ARRguss1QhNC5H/9//Z/FUsEcBORyMDCBRAFTFwxveJxjYGRgYA76n8UQxVLGwPD/FUsFA1AEBfgBAHyYBUh4nGN+wcDAvACCWfSBNIgviMBM1kA6koGBMRWVBqsDYqYmiF4wHQkxg+kUBMPVWEP0gTDYvBdoahZAzYxEY0ciuWUBFjkoZimDYLC8IKpehmsQccYvSGYgYZB7YBhFL5o8cxTQjDUI/wIArpclrwAAAAAAAAA6AIYA3AEKAUgBgAGgAfoCYgKqAwIDOgOGA9wEQAR4BLYFAgU8BZoFzAYMBlIGmga6BtgG+AcYB0QHcAecB8gIAAg2CG4IpgjyCUAJrAo0CtALOAueDAoMYA0ADVANjg3mDiQOjg7GDvgPOA+ED84QPBB2EN4RNhGgEfISchKoEsgS6BMGEz4TXhOSE8QT+BQsFGIUiBTWFX0AAAABAAAATgBuAAYAAAAAAAIAAAAQAHMAAAAiC3AAAAAAeJx1kctOGzEUhn9DoIKgLloJdcdZIRDK5CKhSqyoogJrhLJDwgyeSzpjRx4HlGfgLcoz8Dp9j+76Z2KhqFJmZM93Ph/bxx4AX/AHCqvnnG3FCgeMVryFT/gReZv+JnKHfBd5B108RN6l/xV5H2d4idzFV/zmCqqzx2iK98gK39RR5C18Vt8jb9P/jNwh30fewaGaR96lf428j4l6i9zFsfo7drOFL/MiyMn4VEaD4bk8LsRRlVZXouehcL6RS8mcDaaqXJK6OtSml+lemTrb3Jp8Xmm/rtZ5YnxTOivDZLCur401XgfztNytec5HIWSSeVfLVdxHZt5NTRqSIoTZRb+/vj/GcJhhAY8SOQoECE5oT/kdYYAhf4zgkRnCzFVWCQuNikZjzhlFO9IwvmTLGFlaw4yKnCBlX9PUdD2Oa/Zlay1n3dLmXKei9xuzNvkJ7XLvso2F9SaselP2Na1tZ+i2wqePszV4ZhUj2sBZy1P4tmrB1X/nEd7XcmxKk9In7a0F2gv0+W44/z/KQo7lAHicbZLnlpswEIW5Bgy4bLLpvfeE9N57z76DLARWEJKOEEucpw8CO/kTncOdT6PhnlHxRt4wJt7/x47nYQQfAUKMESFGggmmmGGOLezBXmxjH/bjAA7iEA7jCI7iGI7jBE7iFE7jDM7iHM7jAi7iEi7jCq7iGq7jBlLcxC3cxh3cxT3cxwM8xCM8xhM8xTM8xwu8xCu8xhu8xTu8xwd8xCd8xhd8xTd8xw/sBLUlZuIkZZW2q0hzahvDRqocUyIpE4EWTR1WXDZ1sGRCz5yklBsqWBZwmauZk01mTqxl0nIlUyLs9r/Zej35m4kFl2XKftlAKFomTlKlmfQ1l74lRdB9dbxQqqyIKbc2MPQZGqbFKsqVaYnJ4ky1Ms24iQXLrYPE8GLZ07jRfaIvcf5JX+NoMhQ5jLoqFwenBS8Gpw7WTh05py6MaOtT2ibEGNXWKW1Da0i9nPY6dNe7CEWy7pc+5EJpvfJVnvtUFUHFZBPWS2LYxKqiECztVpINypAuGS2nvQ6Gs+H0hsk0U3ZznDETguua1/MNpLvMWH/RFGEuuobCihScxqS2zPC6jH4rVaVcxn1UjQ1yJW1QK2MTJ6nrPOqp0d3Vk1WoSVOz7p0oHeWdTbpoh5i3sVWpezp23AGTWch+Mmonu0o0Vb+l6RqdabLmRnveH9ru7j54nGPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGVidNjIwaEFoDhR6JwMDAycyi5nBZaMKY0dgxAaHjoiNzCkuG9VAvF0cDQyMLA4dySERICWRQLCRgUdrB+P/1g0svRuZGFwAB9MiuAAAAA==) format('woff')}</style> +<style id="style-core" type="text/css">html{font:16px/1 Helmet,Freesans,sans-serif}#store-area,tw-storydata{display:none!important;z-index:0}.no-transition{-o-transition:none!important;transition:none!important}:focus{outline:thin dotted}:disabled{cursor:not-allowed!important}body{color:#eee;background-color:#111}a{cursor:pointer;color:#68d;text-decoration:none;-o-transition-duration:.2s;transition-duration:.2s}a:hover{color:#8af;text-decoration:underline}a.link-broken{color:#c22}a.link-broken:hover{color:#e44}span.link-disabled{color:#aaa}area{cursor:pointer}button{cursor:pointer;color:#eee;background-color:#35a;border:1px solid #57c;line-height:normal;padding:.4em;-o-transition-duration:.2s;transition-duration:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button:hover{background-color:#57c;border-color:#79e}button:disabled{background-color:#444;border:1px solid #666}input,select,textarea{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}select{padding:.34em .4em}input[type=text]{min-width:18em}textarea{min-width:30em}input[type=checkbox],input[type=file],input[type=radio],select{cursor:pointer}input:not(:disabled):focus,input:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):hover{background-color:#333;border-color:#eee}hr{display:block;height:1px;border:none;border-top:1px solid #eee;margin:1em 0;padding:0}textarea{resize:vertical}audio,canvas,progress,video{max-width:100%;vertical-align:middle}.error-view{background-color:#511;border-left:.5em solid #c22;display:inline-block;margin:.1em;padding:0 .25em;position:relative}.error-view>.error-toggle{background-color:transparent;border:none;line-height:inherit;left:0;padding:0;position:absolute;top:0;width:1.875em}.error-view>.error{display:inline-block;margin-left:1.75em}.error-view>.error-source[hidden]{display:none}.error-view>.error-source:not([hidden]){display:block;margin:0 0 .25em;padding:.25em;background-color:rgba(0,0,0,.2)}.highlight,.marked{color:#ff0;font-weight:700;font-style:italic}.nobr{white-space:nowrap}.error-view>.error-toggle:before,.error-view>.error:before,[data-icon-after]:after,[data-icon-before]:before,[data-icon]:before,a.link-external:after{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}[data-icon]:before{content:attr(data-icon)}[data-icon-before]:before{content:attr(data-icon-before) "\00a0"}[data-icon-after]:after{content:"\00a0" attr(data-icon-after)}.error-view>.error-toggle:before{content:"\e81a"}.error-view>.error-toggle.enabled:before{content:"\e818"}.error-view>.error:before{content:"\e80d\00a0\00a0"}a.link-external:after{content:"\00a0\e80e"}</style> +<style id="style-core-display" type="text/css">#story{z-index:10;margin:2.5em;-o-transition:margin-left .2s ease-in;transition:margin-left .2s ease-in}@media screen and (max-width:1136px){#story{margin-right:1.5em}}#passages{max-width:54em;margin:0 auto}</style> +<style id="style-core-passage" type="text/css">.passage{line-height:1.75;text-align:left;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.passage-in{opacity:0}.passage ol,.passage ul{margin-left:.5em;padding-left:1.5em}.passage table{margin:1em 0;border-collapse:collapse;font-size:100%}.passage caption,.passage td,.passage th,.passage tr{padding:3px}</style> +<style id="style-core-macro" type="text/css">.macro-linkappend-insert,.macro-linkprepend-insert,.macro-linkreplace-insert,.macro-repeat-insert,.macro-timed-insert{-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.macro-linkappend-in,.macro-linkprepend-in,.macro-linkreplace-in,.macro-repeat-in,.macro-timed-in{opacity:0}</style> +<style id="style-ui-dialog" type="text/css">html[data-dialog] body{overflow:hidden}#ui-overlay.open{visibility:visible;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-overlay:not(.open){-o-transition:visibility .2s step-end,opacity .2s ease-in;transition:visibility .2s step-end,opacity .2s ease-in}#ui-overlay{visibility:hidden;opacity:0;z-index:100000;position:fixed;top:0;left:0;height:100%;width:100%}#ui-dialog.open{display:block;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-dialog{display:none;opacity:0;z-index:100100;position:fixed;top:50px;margin:0;padding:0}#ui-dialog-titlebar{position:relative}#ui-dialog-close{display:block;position:absolute;right:0;top:0;white-space:nowrap}#ui-dialog-body{overflow:auto;min-width:280px;height:90%;height:calc(100% - 2.1em - 34px)}#ui-overlay{background-color:#000}#ui-overlay.open{opacity:.8}#ui-dialog{max-width:66em}#ui-dialog.open{opacity:1}#ui-dialog-titlebar{background-color:#444;min-height:24px}#ui-dialog-title{margin:0;padding:.2em 3.5em .2em .5em;font-size:1.5em;text-align:center;text-transform:uppercase}#ui-dialog-close{cursor:pointer;font-size:120%;margin:0;padding:0;width:3.6em;height:92%;background-color:transparent;border:1px solid transparent;-o-transition-duration:.2s;transition-duration:.2s}#ui-dialog-close:hover{background-color:#b44;border-color:#d66}#ui-dialog-body{background-color:#111;border:1px solid #444;text-align:left;line-height:1.5;padding:1em}#ui-dialog-body>:first-child{margin-top:0}#ui-dialog-body hr{background-color:#444}#ui-dialog-body ul.buttons{margin:0;padding:0;list-style:none}#ui-dialog-body ul.buttons li{display:inline-block;margin:0;padding:.4em .4em 0 0}#ui-dialog-body ul.buttons>li+li>button{margin-left:1em}#ui-dialog-close{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-close{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}</style> +<style id="style-ui" type="text/css">#ui-dialog-body.settings [id|=setting-body]{display:table;width:100%}#ui-dialog-body.settings [id|=setting-label]{display:table-cell;padding:.4em 2em .4em 0}#ui-dialog-body.settings [id|=setting-label]+div{display:table-cell;min-width:8em;text-align:right;vertical-align:middle;white-space:nowrap}#ui-dialog-body.list{padding:0;min-width:140px}#ui-dialog-body.list ul{margin:0;padding:0;list-style:none;border:1px solid transparent}#ui-dialog-body.list li{margin:0}#ui-dialog-body.list li:not(:first-child){border-top:1px solid #444}#ui-dialog-body.list li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-decoration:none}#ui-dialog-body.list li a:hover{background-color:#333;border-color:#eee}#ui-dialog-body.saves{padding:0 0 1px}#ui-dialog-body.saves>:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves table{border-spacing:0;min-width:340px;width:100%}#ui-dialog-body.saves tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves td{padding:.33em .33em}#ui-dialog-body.saves td:first-child{min-width:1.5em;text-align:center}#ui-dialog-body.saves td:nth-child(3){line-height:1.2}#ui-dialog-body.saves td:last-child{text-align:right}#ui-dialog-body.saves .empty{color:#999}#ui-dialog-body.saves .datestamp{font-size:75%}#ui-dialog-body.saves ul.buttons li{padding:.4em}#ui-dialog-body.saves ul.buttons>li+li>button{margin-left:.2em}#ui-dialog-body.saves ul.buttons li:last-child{float:right}#ui-dialog-body.settings div[id|=header-body]{margin:1em 0}#ui-dialog-body.settings div[id|=header-body]:first-child{margin-top:0}#ui-dialog-body.settings div[id|=header-body]:not(:first-child){border-top:1px solid #444;padding-top:1em}#ui-dialog-body.settings div[id|=header-body]>*{margin:0}#ui-dialog-body.settings h2[id|=header-heading]{font-size:1.375em}#ui-dialog-body.settings p[id|=header-label]{font-size:87.5%}#ui-dialog-body.settings div[id|=setting-body]+div[id|=setting-body]{margin:.5em 0}#ui-dialog-body.settings [id|=setting-control]{white-space:nowrap}#ui-dialog-body.settings button[id|=setting-control]{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}#ui-dialog-body.settings button[id|=setting-control]:hover{background-color:#333;border-color:#eee}#ui-dialog-body.settings button[id|=setting-control].enabled{background-color:#282;border-color:#4a4}#ui-dialog-body.settings button[id|=setting-control].enabled:hover{background-color:#4a4;border-color:#6c6}#ui-dialog-body.share{min-width:140px}#ui-dialog-body.list a,#ui-dialog-body.settings span[id|=setting-input]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-body.saves button[id=saves-clear]:before,#ui-dialog-body.saves button[id=saves-export]:before,#ui-dialog-body.saves button[id=saves-import]:before,#ui-dialog-body.settings button[id|=setting-control].enabled:after,#ui-dialog-body.settings button[id|=setting-control]:after{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-dialog-body.saves button[id=saves-export]:before{content:"\e829\00a0"}#ui-dialog-body.saves button[id=saves-import]:before{content:"\e82a\00a0"}#ui-dialog-body.saves button[id=saves-clear]:before{content:"\e827\00a0"}#ui-dialog-body.settings button[id|=setting-control]:after{content:"\00a0\00a0\e830"}#ui-dialog-body.settings button[id|=setting-control].enabled:after{content:"\00a0\00a0\e831"}</style> +<style id="style-ui-bar" type="text/css">#story{margin-left:20em}#ui-bar.stowed~#story{margin-left:4.5em}@media screen and (max-width:1136px){#story{margin-left:19em}#ui-bar.stowed~#story{margin-left:3.5em}}@media screen and (max-width:768px){#story{margin-left:3.5em}}#ui-bar{position:fixed;z-index:50;top:0;left:0;width:17.5em;height:100%;margin:0;padding:0;-o-transition:left .2s ease-in;transition:left .2s ease-in}#ui-bar.stowed{left:-15.5em}#ui-bar-body{height:90%;height:calc(100% - 2.5em);margin:2.5em 0;padding:0 1.5em}#ui-bar.stowed #ui-bar-body,#ui-bar.stowed #ui-bar-history{visibility:hidden;-o-transition:visibility .2s step-end;transition:visibility .2s step-end}#ui-bar{background-color:#222;border-right:1px solid #444;text-align:center}#ui-bar-tray{position:absolute;top:.2em;left:0;right:0}#ui-bar a{text-decoration:none}#ui-bar hr{border-color:#444}#ui-bar-history [id|=history],#ui-bar-toggle{font-size:1.2em;line-height:inherit;color:#eee;background-color:transparent;border:1px solid #444}#ui-bar-toggle{display:block;position:absolute;top:0;right:0;border-right:none;padding:.3em .45em .25em}#ui-bar.stowed #ui-bar-toggle{padding:.3em .35em .25em .55em}#ui-bar-toggle:hover{background-color:#444;border-color:#eee}#ui-bar-history{margin:0 auto}#ui-bar-history [id|=history]{padding:.2em .45em .35em}#ui-bar-history #history-jumpto{padding:.2em .665em .35em}#ui-bar-history [id|=history]:not(:first-child){margin-left:1.2em}#ui-bar-history [id|=history]:hover{background-color:#444;border-color:#eee}#ui-bar-history [id|=history]:disabled{color:#444;background-color:transparent;border-color:#444}#ui-bar-body{line-height:1.5;overflow:auto}#ui-bar-body>:not(:first-child){margin-top:2em}#story-title{margin:0;font-size:162.5%}#story-author{margin-top:2em;font-weight:700}#menu ul{margin:1em 0 0;padding:0;list-style:none;border:1px solid #444}#menu ul:empty{display:none}#menu li{margin:0}#menu li:not(:first-child){border-top:1px solid #444}#menu li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-transform:uppercase}#menu li a:hover{background-color:#444;border-color:#eee}#menu a,#ui-bar-history [id|=history],#ui-bar-toggle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#menu-core li[id|=menu-item] a:before,#ui-bar-history [id|=history],#ui-bar-toggle:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-bar-toggle:before{content:"\e81d"}#ui-bar.stowed #ui-bar-toggle:before{content:"\e81e"}#menu-item-saves a:before{content:"\e82b\00a0"}#menu-item-settings a:before{content:"\e82d\00a0"}#menu-item-restart a:before{content:"\e82c\00a0"}#menu-item-share a:before{content:"\e82f\00a0"}</style> +<style id="style-ui-debug" type="text/css">#debug-bar{background-color:#222;border-left:1px solid #444;border-top:1px solid #444;bottom:0;margin:0;max-height:75%;padding:.5em;position:fixed;right:0;z-index:99900}#debug-bar>div:not([id])+div{margin-top:.5em}#debug-bar>div>label{margin-right:.5em}#debug-bar>div>input[type=text]{min-width:0;width:8em}#debug-bar>div>select{width:15em}#debug-bar-watch{background-color:#222;border-left:1px solid #444;border-top:1px solid #444;bottom:102%;bottom:calc(100% + 1px);font-size:.9em;left:-1px;max-height:600%;max-height:60vh;position:absolute;overflow-x:hidden;overflow-y:scroll;right:0;z-index:99800}#debug-bar-watch[hidden]{display:none}#debug-bar-watch div{color:#999;font-style:italic;margin:1em auto;text-align:center}#debug-bar-watch table{width:100%}#debug-bar-watch tr:nth-child(2n){background-color:rgba(127,127,127,.15)}#debug-bar-watch td{padding:.2em 0}#debug-bar-watch td:first-child+td{padding:.2em .3em .2em .1em}#debug-bar-watch .watch-delete{background-color:transparent;border:none}#debug-bar-watch-all,#debug-bar-watch-none{margin-left:.5em}#debug-bar-views-toggle,#debug-bar-watch-toggle{color:#eee;background-color:transparent;border:1px solid #444;margin-right:1em;padding:.4em}#debug-bar-views-toggle:hover,#debug-bar-watch-toggle:hover{background-color:#333;border-color:#eee}#debug-bar-watch:not([hidden])~div #debug-bar-watch-toggle,html[data-debug-view] #debug-bar-views-toggle{background-color:#282;border-color:#4a4}#debug-bar-watch:not([hidden])~div #debug-bar-watch-toggle:hover,html[data-debug-view] #debug-bar-views-toggle:hover{background-color:#4a4;border-color:#6c6}#debug-bar-views-toggle:after,#debug-bar-watch .watch-delete:before,#debug-bar-watch-add:before,#debug-bar-watch-all:before,#debug-bar-watch-none:before,#debug-bar-watch-toggle:after{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#debug-bar-watch .watch-delete:before{content:"\e804"}#debug-bar-watch-add:before{content:"\e805"}#debug-bar-watch-all:before{content:"\e83a"}#debug-bar-watch-none:before{content:"\e827"}#debug-bar-views-toggle:after,#debug-bar-watch-toggle:after{content:"\00a0\00a0\e830"}#debug-bar-watch:not([hidden])~div #debug-bar-watch-toggle:after,html[data-debug-view] #debug-bar-views-toggle:after{content:"\00a0\00a0\e831"}html[data-debug-view] .debug{padding:.25em;background-color:#234}html[data-debug-view] .debug[title]{cursor:help}html[data-debug-view] .debug.block{display:inline-block;vertical-align:middle}html[data-debug-view] .debug.invalid{text-decoration:line-through}html[data-debug-view] .debug.hidden,html[data-debug-view] .debug.hidden .debug{background-color:#555}html:not([data-debug-view]) .debug.hidden{display:none}html[data-debug-view] .debug[data-name][data-type].nonvoid:after,html[data-debug-view] .debug[data-name][data-type]:before{background-color:rgba(0,0,0,.25);font-family:monospace,monospace;white-space:pre}html[data-debug-view] .debug[data-name][data-type]:before{content:attr(data-name)}html[data-debug-view] .debug[data-name][data-type|=macro]:before{content:"<<" attr(data-name) ">>"}html[data-debug-view] .debug[data-name][data-type|=macro].nonvoid:after{content:"<</" attr(data-name) ">>"}html[data-debug-view] .debug[data-name][data-type|=html]:before{content:"<" attr(data-name) ">"}html[data-debug-view] .debug[data-name][data-type|=html].nonvoid:after{content:"</" attr(data-name) ">"}html[data-debug-view] .debug[data-name][data-type]:not(:empty):before{margin-right:.25em}html[data-debug-view] .debug[data-name][data-type].nonvoid:not(:empty):after{margin-left:.25em}html[data-debug-view] .debug[data-name][data-type|=special],html[data-debug-view] .debug[data-name][data-type|=special]:before{display:block}</style> +</head> +<body> + <div id="init-screen"> + <div id="init-no-js"><noscript>JavaScript is required. Please enable it to continue.</noscript></div> + <div id="init-lacking">Your browser lacks required capabilities. Please upgrade it or switch to another to continue.</div> + <div id="init-loading"><div>Loading…</div></div> + </div> + <div id="store-area" data-size="STORY_SIZE" hidden>"STORY"</div> + <script id="script-sugarcube" type="text/javascript"> + /*! SugarCube JS */ + if(document.documentElement.getAttribute("data-init")==="loading"){!function(window,document,jQuery,undefined){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),_slicedToArray=function(){function e(e,t){var r=[],a=!0,n=!1,i=undefined;try{for(var o,s=e[Symbol.iterator]();!(a=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(e){n=!0,i=e}finally{try{!a&&s.return&&s.return()}finally{if(n)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},errorPrologRegExp=/^(?:(?:uncaught\s+(?:exception:\s+)?)?error:\s+)+/i,Alert=function(){function e(e,t,r,a){var n="fatal"===e,i="Apologies! "+(n?"A fatal":"An")+" error has occurred.";i+=n?" Aborting.":" You may be able to continue, but some parts may not work properly.",null==t&&null==r||(i+="\n\nError",null!=t&&(i+=" ["+t+"]"),i+=null!=r?": "+r.replace(errorPrologRegExp,"")+".":": unknown error."),"object"===(void 0===a?"undefined":_typeof(a))&&a.stack&&(i+="\n\nStack Trace:\n"+a.stack),window.alert(i)}function t(t,r,a){e(null,t,r,a)}function r(t,r,a){e("fatal",t,r,a)}return function(e){window.onerror=function(a,n,i,o,s){"complete"===document.readyState?t(null,a,s):(r(null,a,s),window.onerror=e,"function"==typeof window.onerror&&window.onerror.apply(this,arguments))}}(window.onerror),Object.freeze(Object.defineProperties({},{error:{value:t},fatal:{value:r}}))}(),Patterns=function(){var e=function(){var e=new Map([[" ","\\u0020"],["\f","\\f"],["\n","\\n"],["\r","\\r"],["\t","\\t"],["\v","\\v"],[" ","\\u00a0"],[" ","\\u1680"],["á Ž","\\u180e"],[" ","\\u2000"],["â€","\\u2001"],[" ","\\u2002"],[" ","\\u2003"],[" ","\\u2004"],[" ","\\u2005"],[" ","\\u2006"],[" ","\\u2007"],[" ","\\u2008"],[" ","\\u2009"],[" ","\\u200a"],["\u2028","\\u2028"],["\u2029","\\u2029"],[" ","\\u202f"],["âŸ","\\u205f"],[" ","\\u3000"],["\ufeff","\\ufeff"]]),t=/\s/,r="";return e.forEach(function(e,a){t.test(a)||(r+=e)}),r?"[\\s"+r+"]":"\\s"}(),t="[0-9A-Z_a-z\\-\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]",r=t.replace("\\-",""),a="("+t+"+)\\(([^\\)\\|\\n]+)\\):",n="("+t+"+):([^;\\|\\n]+);",i="((?:\\."+t+"+)+);",o="((?:#"+t+"+)+);",s=a+"|"+n+"|"+i+"|"+o;return Object.freeze({space:e,spaceNoTerminator:"[\\u0020\\f\\t\\v\\u00a0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]",lineTerminator:"[\\n\\r\\u2028\\u2029]",anyLetter:t,anyLetterStrict:r,identifierFirstChar:"[$A-Z_a-z]",identifier:"[$A-Z_a-z][$0-9A-Z_a-z]*",variableSigil:"[$_]",variable:"[$_][$A-Z_a-z][$0-9A-Z_a-z]*",macroName:"[A-Za-z][\\w-]*|[=-]",cssImage:"\\[[<>]?[Ii][Mm][Gg]\\[(?:\\s|\\S)*?\\]\\]+",inlineCss:s,url:"(?:file|https?|mailto|ftp|javascript|irc|news|data):[^\\s'\"]+"})}();!function(){function e(e,t){var n=String(e);switch(t){case"start":return n&&r.test(n)?n.replace(r,""):n;case"end":return n&&a.test(n)?n.replace(a,""):n;default:throw new Error('_trimFrom called with incorrect where parameter value: "'+t+'"')}}function t(e,t){var r=Number.parseInt(e,10)||0;if(r<1)return"";var a=void 0===t?"":String(t);for(""===a&&(a=" ");a.length<r;){var n=a.length,i=r-n;a+=n>i?a.slice(0,i):a}return a.length>r&&(a=a.slice(0,r)),a}var r=/^[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*/,a=/[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*$/;Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");if(0===arguments.length)return!1;var e=this.length>>>0;if(0===e)return!1;var t=arguments[0],r=Number(arguments[1])||0;for(r<0&&(r=Math.max(0,e+r));r<e;++r){var a=this[r];if(t===a||t!==t&&a!==a)return!0}return!1}}),String.prototype.padStart||Object.defineProperty(String.prototype,"padStart",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padStart called on null or undefined");var a=String(this),n=a.length,i=Number.parseInt(e,10);return i<=n?a:t(i-n,r)+a}}),String.prototype.padEnd||Object.defineProperty(String.prototype,"padEnd",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padEnd called on null or undefined");var a=String(this),n=a.length,i=Number.parseInt(e,10);return i<=n?a:a+t(i-n,r)}}),String.prototype.trimStart||Object.defineProperty(String.prototype,"trimStart",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimStart called on null or undefined");return e(this,"start")}}),String.prototype.trimLeft||Object.defineProperty(String.prototype,"trimLeft",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimLeft called on null or undefined");return e(this,"start")}}),String.prototype.trimEnd||Object.defineProperty(String.prototype,"trimEnd",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimEnd called on null or undefined");return e(this,"end")}}),String.prototype.trimRight||Object.defineProperty(String.prototype,"trimRight",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimRight called on null or undefined");return e(this,"end")}})}(),function(){function _random(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("_random called with insufficient parameters");case 1:e=0,t=arguments[0];break;default:e=arguments[0],t=arguments[1]}if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(_nativeMathRandom()*(t-e+1))+e}function _randomIndex(e,t){var r=void 0,a=void 0;switch(t.length){case 1:r=0,a=e-1;break;case 2:r=0,a=Math.trunc(t[1]);break;default:r=Math.trunc(t[1]),a=Math.trunc(t[2])}return Number.isNaN(r)?r=0:!Number.isFinite(r)||r>=e?r=e-1:r<0&&(r=e+r)<0&&(r=0),Number.isNaN(a)?a=0:!Number.isFinite(a)||a>=e?a=e-1:a<0&&(a=e+a)<0&&(a=e-1),_random(r,a)}function _getCodePointStartAndEnd(e,t){var r=e.charCodeAt(t);if(Number.isNaN(r))return{char:"",start:-1,end:-1};if(r<55296||r>57343)return{char:e.charAt(t),start:t,end:t};if(r>=55296&&r<=56319){var a=t+1;if(a>=e.length)throw new Error("high surrogate without trailing low surrogate");var n=e.charCodeAt(a);if(n<56320||n>57343)throw new Error("high surrogate without trailing low surrogate");return{char:e.charAt(t)+e.charAt(a),start:t,end:a}}if(0===t)throw new Error("low surrogate without leading high surrogate");var i=t-1,o=e.charCodeAt(i);if(o<55296||o>56319)throw new Error("low surrogate without leading high surrogate");return{char:e.charAt(i)+e.charAt(t),start:i,end:t}}var _nativeMathRandom=Math.random;Object.defineProperty(Array,"random",{configurable:!0,writable:!0,value:function(e){if(null==e||"object"!==(void 0===e?"undefined":_typeof(e))||!Object.prototype.hasOwnProperty.call(e,"length"))throw new TypeError("Array.random array parameter must be an array or array-lke object");var t=e.length>>>0;if(0!==t){return e[0===arguments.length?_random(0,t-1):_randomIndex(t,Array.prototype.slice.call(arguments,1))]}}}),Object.defineProperty(Array.prototype,"concatUnique",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.concatUnique called on null or undefined");var e=Array.from(this);if(0===arguments.length)return e;var t=Array.prototype.reduce.call(arguments,function(e,t){return e.concat(t)},[]),r=t.length;if(0===r)return e;for(var a=Array.prototype.indexOf,n=Array.prototype.push,i=0;i<r;++i){var o=t[i];-1===a.call(e,o)&&n.call(e,o)}return e}}),Object.defineProperty(Array.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.count called on null or undefined");for(var e=Array.prototype.indexOf,t=arguments[0],r=Number(arguments[1])||0,a=0;-1!==(r=e.call(this,t,r));)++a,++r;return a}}),Object.defineProperty(Array.prototype,"delete",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.delete called on null or undefined");if(0===arguments.length)return[];if(0==this.length>>>0)return[];for(var e=Array.prototype.indexOf,t=Array.prototype.push,r=Array.prototype.splice,a=Array.prototype.concat.apply([],arguments),n=[],i=0,o=a.length;i<o;++i)for(var s=a[i],u=0;-1!==(u=e.call(this,s,u));)t.apply(n,r.call(this,u,1));return n}}),Object.defineProperty(Array.prototype,"deleteAt",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.deleteAt called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.splice,r=[].concat(_toConsumableArray(new Set(Array.prototype.concat.apply([],arguments).map(function(t){return t<0?Math.max(0,e+t):t})).values())),a=[].concat(_toConsumableArray(r)).sort(function(e,t){return t-e}),n=[],i=0,o=r.length;i<o;++i)n[i]=this[r[i]];for(var s=0,u=a.length;s<u;++s)t.call(this,a[s],1);return n}}),Object.defineProperty(Array.prototype,"flatten",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.flatten called on null or undefined");return Array.prototype.reduce.call(this,function(e,t){return e.concat(Array.isArray(t)?t.flatten():t)},[])}}),Object.defineProperty(Array.prototype,"includesAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAll called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAll.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(!Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!1;return!0}}),Object.defineProperty(Array.prototype,"includesAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAny called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAny.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!0;return!1}}),Object.defineProperty(Array.prototype,"pluck",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.pluck called on null or undefined");var e=this.length>>>0;if(0!==e){var t=0===arguments.length?_random(0,e-1):_randomIndex(e,[].concat(Array.prototype.slice.call(arguments)));return Array.prototype.splice.call(this,t,1)[0]}}}),Object.defineProperty(Array.prototype,"pluckMany",{configurable:!0,writable:!0,value:function(e){if(null==this)throw new TypeError("Array.prototype.pluckMany called on null or undefined");var t=this.length>>>0;if(0===t)return[];var r=Math.trunc(e);if(!Number.isInteger(r))throw new Error("Array.prototype.pluckMany want parameter must be an integer");if(r<1)return[];r>t&&(r=t);var a=Array.prototype.splice,n=[],i=t-1;do{n.push(a.call(this,_random(0,i--),1)[0])}while(n.length<r);return n}}),Object.defineProperty(Array.prototype,"pushUnique",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.pushUnique called on null or undefined");var e=arguments.length;if(0===e)return this.length>>>0;for(var t=Array.prototype.indexOf,r=Array.prototype.push,a=0;a<e;++a){var n=arguments[a];-1===t.call(this,n)&&r.call(this,n)}return this.length>>>0}}),Object.defineProperty(Array.prototype,"random",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.random called on null or undefined");var e=this.length>>>0;if(0!==e){return this[0===arguments.length?_random(0,e-1):_randomIndex(e,[].concat(Array.prototype.slice.call(arguments)))]}}}),Object.defineProperty(Array.prototype,"randomMany",{configurable:!0,writable:!0,value:function(e){if(null==this)throw new TypeError("Array.prototype.randomMany called on null or undefined");var t=this.length>>>0;if(0===t)return[];var r=Math.trunc(e);if(!Number.isInteger(r))throw new Error("Array.prototype.randomMany want parameter must be an integer");if(r<1)return[];r>t&&(r=t);var a=new Map,n=[],i=t-1;do{var o=void 0;do{o=_random(0,i)}while(a.has(o));a.set(o,!0),n.push(this[o])}while(n.length<r);return n}}),Object.defineProperty(Array.prototype,"shuffle",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.shuffle called on null or undefined");var e=this.length>>>0;if(0===e)return this;for(var t=e-1;t>0;--t){var r=Math.floor(_nativeMathRandom()*(t+1));if(t!==r){var a=this[t];this[t]=this[r],this[r]=a}}return this}}),Object.defineProperty(Array.prototype,"unshiftUnique",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.unshiftUnique called on null or undefined");var e=arguments.length;if(0===e)return this.length>>>0;for(var t=Array.prototype.indexOf,r=Array.prototype.unshift,a=0;a<e;++a){var n=arguments[a];-1===t.call(this,n)&&r.call(this,n)}return this.length>>>0}}),Object.defineProperty(Function.prototype,"partial",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Function.prototype.partial called on null or undefined");var e=Array.prototype.slice,t=this,r=e.call(arguments,0);return function(){for(var a=[],n=0,i=0;i<r.length;++i)a.push(r[i]===undefined?arguments[n++]:r[i]);return t.apply(this,a.concat(e.call(arguments,n)))}}}),Object.defineProperty(Math,"clamp",{configurable:!0,writable:!0,value:function(e,t,r){var a=Number(e);return Number.isNaN(a)?NaN:a.clamp(t,r)}}),Object.defineProperty(Math,"easeInOut",{configurable:!0,writable:!0,value:function(e){return 1-(Math.cos(Number(e)*Math.PI)+1)/2}}),Object.defineProperty(Number.prototype,"clamp",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Number.prototype.clamp called on null or undefined");if(2!==arguments.length)throw new Error("Number.prototype.clamp called with an incorrect number of parameters");var e=Number(arguments[0]),t=Number(arguments[1]);if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.min(Math.max(this,e),t)}}),RegExp.escape||function(){var e=/[\\^$*+?.()|[\]{}]/g,t=new RegExp(e.source);Object.defineProperty(RegExp,"escape",{configurable:!0,writable:!0,value:function(r){var a=String(r);return a&&t.test(a)?a.replace(e,"\\$&"):a}})}(),function(){var e=/{(\d+)(?:,([+-]?\d+))?}/g,t=new RegExp(e.source);Object.defineProperty(String,"format",{configurable:!0,writable:!0,value:function(r){function a(e,t,r){if(!t)return e;var a=Math.abs(t)-e.length;if(a<1)return e;var n=String(r).repeat(a);return t<0?e+n:n+e}if(arguments.length<2)return 0===arguments.length?"":r;var n=2===arguments.length&&Array.isArray(arguments[1])?[].concat(_toConsumableArray(arguments[1])):Array.prototype.slice.call(arguments,1);return 0===n.length?r:t.test(r)?(e.lastIndex=0,r.replace(e,function(e,t,r){var i=n[t];if(null==i)return"";for(;"function"==typeof i;)i=i();switch(void 0===i?"undefined":_typeof(i)){case"string":break;case"object":i=JSON.stringify(i);break;default:i=String(i)}return a(i,r?Number.parseInt(r,10):0," ")})):r}})}(),Object.defineProperty(String.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.contains called on null or undefined");return-1!==String.prototype.indexOf.apply(this,arguments)}}),Object.defineProperty(String.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.count called on null or undefined");var e=String(arguments[0]||"");if(""===e)return 0;for(var t=String.prototype.indexOf,r=e.length,a=Number(arguments[1])||0,n=0;-1!==(a=t.call(this,e,a));)++n,a+=r;return n}}),Object.defineProperty(String.prototype,"splice",{configurable:!0,writable:!0,value:function(e,t,r){if(null==this)throw new TypeError("String.prototype.splice called on null or undefined");var a=this.length>>>0;if(0===a)return"";var n=Number(e);Number.isSafeInteger(n)?n<0&&(n+=a)<0&&(n=0):n=0,n>a&&(n=a);var i=Number(t);(!Number.isSafeInteger(i)||i<0)&&(i=0);var o=this.slice(0,n);return void 0!==r&&(o+=r),n+i<a&&(o+=this.slice(n+i)),o}}),Object.defineProperty(String.prototype,"splitOrEmpty",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.splitOrEmpty called on null or undefined");return""===String(this)?[]:String.prototype.split.apply(this,arguments)}}),Object.defineProperty(String.prototype,"toLocaleUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toLocaleUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,a=t.end;return-1===a?"":r.toLocaleUpperCase()+e.slice(a+1)}}),Object.defineProperty(String.prototype,"toUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,a=t.end;return-1===a?"":r.toUpperCase()+e.slice(a+1)}}),Object.defineProperty(Date.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:date)",this.toISOString()]}}),Object.defineProperty(Function.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)","("+this.toString()+")"]}}),Object.defineProperty(Map.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:map)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(RegExp.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)",this.toString()]}}),Object.defineProperty(Set.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:set)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(JSON,"reviveWrapper",{configurable:!0,writable:!0,value:function(e,t){if("string"!=typeof e)throw new TypeError("JSON.reviveWrapper code parameter must be a string");return["(revive:eval)",[e,t]]}}),Object.defineProperty(JSON,"_real_parse",{value:JSON.parse}),Object.defineProperty(JSON,"parse",{configurable:!0,writable:!0,value:function value(text,reviver){return JSON._real_parse(text,function(key,val){var value=val;if(Array.isArray(value)&&2===value.length)switch(value[0]){case"(revive:set)":value=new Set(value[1]);break;case"(revive:map)":value=new Map(value[1]);break;case"(revive:date)":value=new Date(value[1]);break;case"(revive:eval)":try{if(Array.isArray(value[1])){var $ReviveData$=value[1][1];value=eval(value[1][0])}else value=eval(value[1])}catch(e){}}else if("string"==typeof value&&"@@revive@@"===value.slice(0,10))try{value=eval(value.slice(10))}catch(e){}if("function"==typeof reviver)try{value=reviver(key,value)}catch(e){}return value})}}),Object.defineProperty(Array.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.contains called on null or undefined");return Array.prototype.includes.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAll called on null or undefined");return Array.prototype.includesAll.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAny called on null or undefined");return Array.prototype.includesAny.apply(this,arguments)}}),Object.defineProperty(String.prototype,"readBracketedList",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.readBracketedList called on null or undefined");for(var e=new RegExp("(?:\\[\\[((?:\\s|\\S)*?)\\]\\])|([^\"'\\s]\\S*)","gm"),t=[],r=void 0;null!==(r=e.exec(this));)r[1]?t.push(r[1]):r[2]&&t.push(r[2]);return t}})}();var Browser=function(){var e=navigator.userAgent.toLowerCase(),t=e.includes("windows phone"),r=Object.freeze({Android:!t&&e.includes("android"),BlackBerry:/blackberry|bb10/.test(e),iOS:!t&&/ip(?:hone|ad|od)/.test(e),Windows:t||e.includes("iemobile"),any:function(){return r.Android||r.BlackBerry||r.iOS||r.Windows}}),a=!r.Windows&&!/khtml|trident|edge/.test(e)&&e.includes("gecko"),n=!e.includes("opera")&&/msie|trident/.test(e),i=n?function(){var t=/(?:msie\s+|rv:)(\d+\.\d)/.exec(e);return t?Number(t[1]):0}():null,o=e.includes("opera")||e.includes(" opr/"),s=o?function(){var t=new RegExp((/khtml|chrome/.test(e)?"opr":"version")+"\\/(\\d+\\.\\d+)"),r=t.exec(e);return r?Number(r[1]):0}():null;return Object.freeze({userAgent:e,isMobile:r,isGecko:a,isIE:n,ieVersion:i,isOpera:o,operaVersion:s})}(),Has=function(){var e=function(){try{return"function"==typeof document.createElement("audio").canPlayType}catch(e){}return!1}(),t=function(){try{return"Blob"in window&&"File"in window&&"FileList"in window&&"FileReader"in window&&!Browser.isMobile.any()&&(!Browser.isOpera||Browser.operaVersion>=15)}catch(e){}return!1}(),r=function(){try{return"geolocation"in navigator&&"function"==typeof navigator.geolocation.getCurrentPosition&&"function"==typeof navigator.geolocation.watchPosition}catch(e){}return!1}(),a=function(){try{return"MutationObserver"in window&&"function"==typeof window.MutationObserver}catch(e){}return!1}(),n=function(){try{return"performance"in window&&"function"==typeof window.performance.now}catch(e){}return!1}();return Object.freeze({audio:e,fileAPI:t,geolocation:r,mutationObserver:a,performance:n})}(),_ref3=function(){function e(t){if("object"!==(void 0===t?"undefined":_typeof(t))||null===t)return t;if(t instanceof String)return String(t);if(t instanceof Number)return Number(t);if(t instanceof Boolean)return Boolean(t);if("function"==typeof t.clone)return t.clone(!0);if(t.nodeType&&"function"==typeof t.cloneNode)return t.cloneNode(!0);var r=void 0;return t instanceof Array?r=new Array(t.length):t instanceof Date?r=new Date(t.getTime()):t instanceof Map?(r=new Map,t.forEach(function(t,a){return r.set(a,e(t))})):t instanceof RegExp?r=new RegExp(t):t instanceof Set?(r=new Set,t.forEach(function(t){return r.add(e(t))})):r=Object.create(Object.getPrototypeOf(t)),Object.keys(t).forEach(function(a){return r[a]=e(t[a])}),r}function t(e){for(var t=document.createDocumentFragment(),r=document.createElement("p"),a=void 0;null!==(a=e.firstChild);){if(a.nodeType===Node.ELEMENT_NODE){switch(a.nodeName.toUpperCase()){case"BR":if(null!==a.nextSibling&&a.nextSibling.nodeType===Node.ELEMENT_NODE&&"BR"===a.nextSibling.nodeName.toUpperCase()){e.removeChild(a.nextSibling),e.removeChild(a),t.appendChild(r),r=document.createElement("p");continue}if(!r.hasChildNodes()){e.removeChild(a);continue}break;case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":r.hasChildNodes()&&(t.appendChild(r),r=document.createElement("p")),t.appendChild(a);continue}}r.appendChild(a)}r.hasChildNodes()&&t.appendChild(r),e.appendChild(t)}function r(){try{return document.activeElement||null}catch(e){return null}}function a(e,t,r){var a="object"===(void 0===e?"undefined":_typeof(e))?e:document.getElementById(e);if(null==a)return null;var n=Array.isArray(t)?t:[t];jQuery(a).empty();for(var i=0,o=n.length;i<o;++i)if(Story.has(n[i]))return new Wikifier(a,Story.get(n[i]).processText().trim()),a;if(null!=r){var s=String(r).trim();""!==s&&new Wikifier(a,s)}return a}function n(e,t,r){var a=jQuery(document.createElement("div")),n=jQuery(document.createElement("button")),i=jQuery(document.createElement("pre")),o=L10n.get("errorTitle")+": "+(t||"unknown error");return n.addClass("error-toggle").ariaClick({label:L10n.get("errorToggle")},function(){n.hasClass("enabled")?(n.removeClass("enabled"),i.attr({"aria-hidden":!0,hidden:"hidden"})):(n.addClass("enabled"),i.removeAttr("aria-hidden hidden"))}).appendTo(a),jQuery(document.createElement("span")).addClass("error").text(o).appendTo(a),jQuery(document.createElement("code")).text(r).appendTo(i),i.addClass("error-source").attr({"aria-hidden":!0,hidden:"hidden"}).appendTo(a),a.addClass("error-view").appendTo(e),console.warn(o+"\n\t"+r.replace(/\n/g,"\n\t")),!1}function i(e,t){var r=i;switch(void 0===e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return t;break;case"object":if(null===e)return t;if(Array.isArray(e))return e.map(function(e){return r(e,t)}).join(", ");if(e instanceof Set)return[].concat(_toConsumableArray(e)).map(function(e){return r(e,t)}).join(", ");if(e instanceof Map){return"{ "+[].concat(_toConsumableArray(e)).map(function(e){var a=_slicedToArray(e,2),n=a[0],i=a[1];return r(n,t)+" → "+r(i,t)}).join(", ")+" }"}return e instanceof Date?e.toLocaleString():"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e);case"function":case"undefined":return t}return String(e)}return Object.freeze(Object.defineProperties({},{clone:{value:e},convertBreaks:{value:t},safeActiveElement:{value:r},setPageElement:{value:a},throwError:{value:n},toStringOrDefault:{value:i}}))}(),clone=_ref3.clone,convertBreaks=_ref3.convertBreaks,safeActiveElement=_ref3.safeActiveElement,setPageElement=_ref3.setPageElement,throwError=_ref3.throwError,toStringOrDefault=_ref3.toStringOrDefault;!function(){function e(e){13!==e.which&&32!==e.which||(e.preventDefault(),jQuery(safeActiveElement()||this).trigger("click"))}function t(e){return function(){var t=jQuery(this);t.is("[aria-pressed]")&&t.attr("aria-pressed","true"===t.attr("aria-pressed")?"false":"true"),e.apply(this,arguments)}}function r(e){return t(function(){jQuery(this).off(".aria-clickable").removeAttr("tabindex aria-controls aria-pressed").not("a,button").removeAttr("role").end().filter("button").prop("disabled",!0),e.apply(this,arguments)})}jQuery.fn.extend({ariaClick:function(a,n){if(0===this.length||0===arguments.length)return this;var i=a,o=n;return null==o&&(o=i,i=undefined),i=jQuery.extend({namespace:undefined,one:!1,selector:undefined,data:undefined,controls:undefined,pressed:undefined,label:undefined},i),"string"!=typeof i.namespace?i.namespace="":"."!==i.namespace[0]&&(i.namespace="."+i.namespace),"boolean"==typeof i.pressed&&(i.pressed=i.pressed?"true":"false"),this.filter("button").prop("type","button"),this.not("a,button").attr("role","button"),this.attr("tabindex",0),null!=i.controls&&this.attr("aria-controls",i.controls),null!=i.pressed&&this.attr("aria-pressed",i.pressed),null!=i.label&&this.attr({"aria-label":i.label,title:i.label}),this.not("button").on("keypress.aria-clickable"+i.namespace,i.selector,e),this.on("click.aria-clickable"+i.namespace,i.selector,i.data,i.one?r(o):t(o)),this}})}(),function(){jQuery.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];if(0!==r.length){var n=document.createDocumentFragment();r.forEach(function(t){return new Wikifier(n,t,e)});var i=[].concat(_toConsumableArray(n.querySelectorAll(".error"))).map(function(e){return e.textContent.replace(errorPrologRegExp,"")});if(i.length>0)throw new Error(i.join("; "))}},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];this.wikiWithOptions.apply(this,[undefined].concat(t))}}),jQuery.fn.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];if(0===this.length||0===r.length)return this;var n=document.createDocumentFragment();return r.forEach(function(t){return new Wikifier(n,t,e)}),this.append(n),this},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return this.wikiWithOptions.apply(this,[undefined].concat(t))}})}();var Util=function(){function e(e){return Object.freeze(Object.assign(Object.create(null),e))}function t(e){return Object.prototype.toString.call(e).slice(8,-1)}function r(e){var t=void 0;switch(void 0===e?"undefined":_typeof(e)){case"number":t=e;break;case"string":t=Number(e);break;default:return!1}return!Number.isNaN(t)&&Number.isFinite(t)}function a(e){return"boolean"==typeof e||"string"==typeof e&&("true"===e||"false"===e)}function n(e){return String(e).trim().replace(/[^\w\s\u2013\u2014-]+/g,"").replace(/[_\s\u2013\u2014-]+/g,"-").toLocaleLowerCase()}function i(e){if(null==e)return"";var t=String(e);return t&&p.test(t)?t.replace(f,function(e){return g[e]}):t}function o(e){if(null==e)return"";var t=String(e);return t&&v.test(t)?t.replace(m,function(e){return y[e.toLowerCase()]}):t}function s(e,t){var r=String(e),a=Math.trunc(t),n=r.charCodeAt(a);if(Number.isNaN(n))return{char:"",start:-1,end:-1};var i={char:r.charAt(a),start:a,end:a};if(n<55296||n>57343)return i;if(n>=55296&&n<=56319){var o=a+1;if(o>=r.length)return i;var s=r.charCodeAt(o);return s<56320||s>57343?i:(i.char=i.char+r.charAt(o),i.end=o,i)}if(0===a)return i;var u=a-1,l=r.charCodeAt(u);return l<55296||l>56319?i:(i.char=r.charAt(u)+i.char,i.start=u,i)}function u(){return b.now()}function l(e){var t=w.exec(String(e));if(null===t)throw new SyntaxError('invalid time value syntax: "'+e+'"');var r=Number(t[1]);if(1===t[2].length&&(r*=1e3),Number.isNaN(r)||!Number.isFinite(r))throw new RangeError('invalid time value: "'+e+'"');return r}function c(e){if("number"!=typeof e||Number.isNaN(e)||!Number.isFinite(e)){var r=void 0;switch(void 0===e?"undefined":_typeof(e)){case"string":r='"'+e+'"';break;case"number":r=String(e);break;default:r=t(e)}throw new Error("invalid milliseconds: "+r)}return e+"ms"}function d(e){if(!e.includes("-"))switch(e){case"bgcolor":return"backgroundColor";case"float":return"cssFloat";default:return e}return("-ms-"===e.slice(0,4)?e.slice(1):e).split("-").map(function(e,t){return 0===t?e:e.toUpperFirst()}).join("")}function h(e){var t=document.createElement("a"),r=Object.create(null);t.href=e,t.search&&t.search.replace(/^\?/,"").splitOrEmpty(/(?:&(?:amp;)?|;)/).forEach(function(e){var t=e.split("="),a=_slicedToArray(t,2),n=a[0],i=a[1];r[n]=i});var a=t.host&&"/"!==t.pathname[0]?"/"+t.pathname:t.pathname;return{href:t.href,protocol:t.protocol,host:t.host,hostname:t.hostname,port:t.port,path:""+a+t.search,pathname:a,query:t.search,search:t.search,queries:r,searches:r,hash:t.hash}}var f=/[&<>"'`]/g,p=new RegExp(f.source),g=Object.freeze({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),m=/&(?:amp|#38|#x26|lt|#60|#x3c|gt|#62|#x3e|quot|#34|#x22|apos|#39|#x27|#96|#x60);/gi,v=new RegExp(m.source,"i"),y=Object.freeze({"&":"&","&":"&","&":"&","<":"<","<":"<","<":"<",">":">",">":">",">":">",""":'"',""":'"',""":'"',"'":"'","'":"'","'":"'","`":"`","`":"`"}),b=Has.performance?performance:Date,w=/^([+-]?(?:\d*\.)?\d+)([Mm]?[Ss])$/;return Object.freeze(Object.defineProperties({},{toEnum:{value:e},toStringTag:{value:t},isNumeric:{value:r},isBoolean:{value:a},slugify:{value:n},escape:{value:i},unescape:{value:o},charAndPosAt:{value:s},fromCssTime:{value:l},toCssTime:{value:c},fromCssProperty:{value:d},parseUrl:{value:h},now:{value:u},random:{value:Math.random},entityEncode:{value:i},entityDecode:{value:o}, +evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return f}function a(e){f=Math.clamp(e,.2,5),l("rate",f)}function n(){return p}function i(e){p=Math.clamp(e,0,1),l("volume",p)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");h.set(e,t)}function u(e){h.delete(e)}function l(e,t){h.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var h=new Map,f=1,p=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,a=/\.([^.\/\\]+)$/,n=e.getType,i=[],o=document.createElement("audio");if(t.forEach(function(e){var t=null;switch(void 0===e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(null===(s=r.exec(e)))throw new Error("source data URI missing media type")}else if(null===(s=a.exec(Util.parseUrl(e).pathname)))throw new Error("source URL missing file extension");var u=n(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=n(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+(void 0===e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=Browser.isOpera?t.type.replace(/;.*$/,""):t.type,o.appendChild(c),i.push(t)}}),!o.hasChildNodes())if(Browser.isIE)o.src=undefined;else{var s=document.createElement("source");s.src=undefined,s.type=undefined,o.appendChild(s)}this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var a=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return a._error=!1}).on("error",function(){return a._error=!0}).find("source:last-of-type").on("error",function(){return a._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!a.audio)return void SimpleAudio.unsubscribe(a);switch(e){case"mute":a._updateAudioMute();break;case"rate":a._updateAudioRate();break;case"stop":a.stop();break;case"volume":a._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this);var e=this.audio;if(e){for(this.fadeStop(),this.stop(),jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}}},{key:"_updateAudioMute",value:function(){this.audio&&(this.audio.muted=this._mute||SimpleAudio.mute)}},{key:"_updateAudioRate",value:function(){this.audio&&(this.audio.playbackRate=this._rate*SimpleAudio.rate)}},{key:"_updateAudioVolume",value:function(){this.audio&&(this.audio.volume=this._volume*SimpleAudio.volume)}},{key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return!this.audio||this.audio.readyState===HTMLMediaElement.HAVE_NOTHING}},{key:"hasMetadata",value:function(){return!!this.audio&&this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return!!this.audio&&this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return!!this.audio&&this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return!!this.audio&&this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!!this.audio&&!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return!!this.audio&&(this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended)}},{key:"isEnded",value:function(){return!this.audio||this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return!!this.audio&&this.audio.loop}},{key:"load",value:function(){this.audio&&("auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load())}},{key:"play",value:function(){this.audio&&this.audio.play()}},{key:"pause",value:function(){this.audio&&this.audio.pause()}},{key:"stop",value:function(){this.audio&&(this.pause(),this.time=0,this._trigger(":stop"))}},{key:"fadeWithDuration",value:function(e,t,r){var a=this;if(this.audio){this.fadeStop();var n=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);n!==i&&(this.volume=n,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;n<i?(t=n,r=i):(t=i,r=n);var o=Number(e);o<1&&(o=1);var s=(i-n)/(o/.025);a._faderId=setInterval(function(){if(!a.isPlaying())return void a.fadeStop();a.volume=Math.clamp(a.volume+s,t,r),0===a.volume&&a.pause(),a.volume===i&&(a.fadeStop(),a._trigger(":fade"))},25)}),this.play())}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if(this.audio){if("function"!=typeof r)throw new Error("listener parameter must be a function");var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(n,r),this}}},{key:"one",value:function(t,r){if(this.audio){if("function"!=typeof r)throw new Error("listener parameter must be a function");var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(n,r),this}}},{key:"off",value:function(t,r){if(this.audio){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(n,r),this}}},{key:"duration",get:function(){return this.audio?this.audio.duration:NaN}},{key:"ended",get:function(){return!this.audio||this.audio.ended}},{key:"loop",get:function(){return!!this.audio&&this.audio.loop},set:function(e){this.audio&&(this.audio.loop=!!e)}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return!!this.audio&&this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio?this.audio.duration-this.audio.currentTime:NaN}},{key:"time",get:function(){return this.audio?this.audio.currentTime:NaN},set:function(e){var t=this;if(this.audio)try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var a=document.createElement("audio");r[t]=""!==a.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,a=t.toLowerCase(),n=r.hasOwnProperty(a)?r[a]:"audio/"+a;return e._verifyType(n)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:":fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:":stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,a=void 0,n=void 0,i=void 0;if(e instanceof m)r=!0,a=e.clone(),n=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,a=r?e.track.clone():e.track,n=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}a.stop(),a.loop=!1,a.mute=!1,a.volume=n,a.rate=i,a.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:a,volume:n,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var a=Math.clamp(t,0,1)*this.current.volume,n=void 0;null!=r&&(n=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,a,n),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:a},volume:{get:n,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),SimpleStore=function(){function e(e,a){if(r)return r.create(e,a);for(var n=0;n<t.length;++n)if(t[n].init(e,a))return r=t[n],r.create(e,a);throw new Error("no valid storage adapters found")}var t=[],r=null;return Object.freeze(Object.defineProperties({},{adapters:{value:t},create:{value:e}}))}();SimpleStore.adapters.push(function(){function e(){function e(e){try{var t=window[e],r="_sc_"+String(Date.now());t.setItem(r,r);var a=t.getItem(r)===r;return t.removeItem(r),a}catch(e){}return!1}return r=e("localStorage")&&e("sessionStorage")}function t(e,t){if(!r)throw new Error("adapter not initialized");return new a(e,t)}var r=!1,a=function(){function e(t,r){_classCallCheck(this,e);var a=t+".",n=null,i=null;r?(n=window.localStorage,i="localStorage"):(n=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_engine:{value:n},_prefix:{value:a},_prefixRe:{value:new RegExp("^"+RegExp.escape(a))},name:{value:i},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function(){for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!("string"!=typeof e||!e)&&this._engine.hasOwnProperty(this._prefix+e)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota[_\s]?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!("string"!=typeof e||!e)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e)/* look here for changes */{return JSON.stringify(e)}},{key:"_deserialize",value:function(e){return JSON.parse((!e || e[0]=="{")?e:LZString.decompressFromUTF16(e))}}]),e}();/* changes end here */return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}()),SimpleStore.adapters.push(function(){function e(e){try{var t="_sc_"+String(Date.now());o._setCookie(t,o._serialize(t),undefined),i=o._deserialize(o._getCookie(t))===t,o._setCookie(t,undefined,n)}catch(e){i=!1}return i&&r(e),i}function t(e,t){if(!i)throw new Error("adapter not initialized");return new o(e,t)}function r(e){if(""!==document.cookie)for(var t=e+".",r=new RegExp("^"+RegExp.escape(t)),i=e+"!.",s=e+"*.",u=/\.(?:state|rcWarn)$/,l=document.cookie.split(/;\s*/),c=0;c<l.length;++c){var d=l[c].split("="),h=decodeURIComponent(d[0]);if(r.test(h)){var f=decodeURIComponent(d[1]);""!==f&&function(){var e=!u.test(h);o._setCookie(h,undefined,n),o._setCookie(h.replace(r,function(){return e?i:s}),f,e?a:undefined)}()}}}var a="Tue, 19 Jan 2038 03:14:07 GMT",n="Thu, 01 Jan 1970 00:00:00 GMT",i=!1,o=function(){function e(t,r){_classCallCheck(this,e);var a=t+(r?"!":"*")+".";Object.defineProperties(this,{_prefix:{value:a},_prefixRe:{value:new RegExp("^"+RegExp.escape(a))},name:{value:"cookie"},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function(){if(""===document.cookie)return[];for(var e=document.cookie.split(/;\s*/),t=[],r=0;r<e.length;++r){var a=e[r].split("="),n=decodeURIComponent(a[0]);if(this._prefixRe.test(n)){""!==decodeURIComponent(a[1])&&t.push(n.replace(this._prefixRe,""))}}return t}},{key:"has",value:function(t){return!("string"!=typeof t||!t)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persistent?a:undefined),!this.has(t))throw new Error("unknown validation error during set")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if("string"!=typeof t||!t||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,n),this.has(t))throw new Error("unknown validation error during delete")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var a=t[r].split("=");if(e===decodeURIComponent(a[0])){return decodeURIComponent(a[1])||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var a=encodeURIComponent(e)+"=";null!=t&&(a+=encodeURIComponent(t)),null!=r&&(a+="; expires="+r),a+="; path=/",document.cookie=a}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}());var DebugView=function(){return function(){function e(t,r,a,n){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:n,"aria-label":n,"data-type":null!=r?r:"","data-name":null!=a?a:""}).addClass("debug"),jQuery(this.break).addClass("debug hidden"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){if(null==e){var t={};return this.view.className.splitOrEmpty(/\s+/).forEach(function(e){"debug"!==e&&(t[e]=!0)}),t}if("object"===(void 0===e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"isEnabled",value:function(){return"enabled"===jQuery(document.documentElement).attr("data-debug-view")}},{key:"enable",value:function(){jQuery(document.documentElement).attr("data-debug-view","enabled"),jQuery.event.trigger(":debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeAttr("data-debug-view"),jQuery.event.trigger(":debugviewupdate")}},{key:"toggle",value:function(){"enabled"===jQuery(document.documentElement).attr("data-debug-view")?e.disable():e.enable()}}]),e}()}(),PRNGWrapper=function(){return function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),a=t.pull;a>0;--a)r.random();return r}}]),e}()}(),StyleWrapper=function(){var e=new RegExp(Patterns.cssImage,"g"),t=new RegExp(Patterns.cssImage);return function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var a=r;t.test(a)&&(e.lastIndex=0,a=a.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var a=Story.get(r);a.tags.includes("Twine.image")&&(r=a.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=a:this.style.appendChild(document.createTextNode(a))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}()}(),Diff=function(){function e(t,a){for(var n=Object.prototype.toString,i=t instanceof Array,o=[].concat(Object.keys(t),Object.keys(a)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),s={},u=void 0,l=function(e){return e===u},c=0,d=o.length;c<d;++c){var h=o[c],f=t[h],p=a[h];if(t.hasOwnProperty(h))if(a.hasOwnProperty(h)){if(f===p)continue;if((void 0===f?"undefined":_typeof(f))===(void 0===p?"undefined":_typeof(p)))if("function"==typeof f)f.toString()!==p.toString()&&(s[h]=[r.Copy,p]);else if("object"!==(void 0===f?"undefined":_typeof(f))||null===f)s[h]=[r.Copy,p];else{var g=n.call(f),m=n.call(p);if(g===m)if(f instanceof Date)Number(f)!==Number(p)&&(s[h]=[r.Copy,clone(p)]);else if(f instanceof Map)s[h]=[r.Copy,clone(p)];else if(f instanceof RegExp)f.toString()!==p.toString()&&(s[h]=[r.Copy,clone(p)]);else if(f instanceof Set)s[h]=[r.Copy,clone(p)];else if("[object Object]"!==g)s[h]=[r.Copy,clone(p)];else{var v=e(f,p);null!==v&&(s[h]=v)}else s[h]=[r.Copy,clone(p)]}else s[h]=[r.Copy,"object"!==(void 0===p?"undefined":_typeof(p))||null===p?p:clone(p)]}else if(i&&Util.isNumeric(h)){var y=Number(h);if(!u){u="";do{u+="~"}while(o.some(l));s[u]=[r.SpliceArray,y,y]}y<s[u][1]&&(s[u][1]=y),y>s[u][2]&&(s[u][2]=y)}else s[h]=r.Delete;else s[h]=[r.Copy,"object"!==(void 0===p?"undefined":_typeof(p))||null===p?p:clone(p)]}return Object.keys(s).length>0?s:null}function t(e,a){for(var n=Object.keys(a||{}),i=clone(e),o=0,s=n.length;o<s;++o){var u=n[o],l=a[u];if(l===r.Delete)delete i[u];else if(l instanceof Array)switch(l[0]){case r.SpliceArray:i.splice(l[1],l[2]-l[1]+1);break;case r.Copy:i[u]=clone(l[1]);break;case r.CopyDate:i[u]=new Date(l[1])}else i[u]=t(i[u],l)}return i}var r=Util.toEnum({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{Op:{value:r},diff:{value:e},patch:{value:t}}))}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=l10nStrings[r],o=0;n.test(i);){if(++o>50)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");a.lastIndex=0,i=i.replace(a,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return i}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var a=/\{\w+\}/g,n=new RegExp(a.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorToggle:"Toggle the error view",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugBarNoWatches:"— no watches set —",debugBarAddWatch:"Add watch",debugBarDeleteWatch:"Delete watch",debugBarWatchAll:"Watch all",debugBarWatchNone:"Delete all",debugBarLabelAdd:"Add",debugBarLabelWatch:"Watch",debugBarLabelTurn:"Turn",debugBarLabelViews:"Views",debugBarViewsToggle:"Toggle the debug views",debugBarWatchToggle:"Toggle the watch panel",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload", +autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}return Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),navigation:Object.seal({override:undefined}),passages:Object.seal({descriptions:undefined,displayTitles:!1,nobr:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),a=0;a<t.length;++a)if(r.style[t[a]]!==undefined)return e.get(t[a]);return""}()})}(),State=function(){function e(){session.delete("state"),W=[],R=c(),F=-1,B=[],V=null===V?null:new PRNGWrapper(V.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(a(e),!0)}return!1}function r(e){var t={index:F};return e?t.history=clone(W):t.delta=A(W),B.length>0&&(t.expired=[].concat(_toConsumableArray(B))),null!==V&&(t.seed=V.seed),t}function a(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==V&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===V&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");W=t?clone(e.history):P(e.delta),F=e.index,B=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(V.seed=e.seed),g(F)}function n(){return r(!0)}function i(e){return a(e,!0)}function o(){return B}function s(){return B.length+v()}function u(){return B.concat(W.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!B.includes(e)||!!W.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return R}function h(){return F}function f(){return R.title}function p(){return R.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch(void 0===e?"undefined":_typeof(e)){case"object":R=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);R=clone(W[e]);break;default:throw new TypeError('moment activation attempted with a "'+(void 0===e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==V&&(V=PRNGWrapper.unmarshal({seed:V.seed,pull:R.pull})),session.set("state",r()),jQuery.event.trigger(":historyupdate"),R}function m(){return W}function v(){return F+1}function y(){return W.length}function b(){return 0===W.length}function w(){return W.length>0?W[F]:null}function k(){return W.length>0?W[W.length-1]:null}function S(){return W.length>0?W[0]:null}function E(e){return b()||e<0||e>F?null:W[e]}function x(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:W[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=F;t>=0;--t)if(W[t].title===e)return!0;return!1}function C(e){if(v()<y()&&W.splice(v(),y()-v()),W.push(c(e,R.variables)),V&&(k().pull=V.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)B.push(W.shift().title);return F=y()-1,g(F),v()}function O(e){return!(null==e||e<0||e>=y()||e===F)&&(F=e,g(F),!0)}function T(e){return null!=e&&0!==e&&O(F+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,a=e.length;r<a;++r)t.push(Diff.diff(e[r-1],e[r]));return t}function P(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,a=e.length;r<a;++r)t.push(Diff.patch(t[r-1],e[r]));return t}function _(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}V=new PRNGWrapper(e,t),R.pull=V.pull}function N(){return V?V.random():Math.random()}function D(){U={},TempVariables=U}function M(){return U}function L(e){var t=Q(e);if(null!==t){for(var r=t.names,a=t.store,n=0,i=r.length;n<i;++n){if(void 0===a[r[n]])return;a=a[r[n]]}return a}}function I(e,t){var r=Q(e);if(null===r)return!1;for(var a=r.names,n=a.pop(),i=r.store,o=0,s=a.length;o<s;++o){if(void 0===i[a[o]])return!1;i=i[a[o]]}return i[n]=t,!0}function Q(e){for(var t={store:"$"===e[0]?State.variables:State.temporary,names:[]},r=e,a=void 0;null!==(a=z.exec(r));)r=r.slice(a[0].length),a[1]?t.names.push(a[1]):a[2]?t.names.push(a[2]):a[3]?t.names.push(a[3]):a[4]?t.names.push(a[4]):a[5]?t.names.push(L(a[5])):a[6]&&t.names.push(Number(a[6]));return""===r?t:null}var W=[],R=c(),F=-1,B=[],V=null,U={},z=new RegExp("^(?:"+Patterns.variableSigil+"("+Patterns.identifier+")|\\.("+Patterns.identifier+")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|("+Patterns.variableSigil+Patterns.identifierFirstChar+".*)|(\\d+))\\])");return Object.freeze(Object.defineProperties({},{reset:{value:e},restore:{value:t},marshalForSave:{value:n},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:h},passage:{get:f},variables:{get:p},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:E},peek:{value:x},has:{value:j},create:{value:C},goTo:{value:O},go:{value:T},deltaEncode:{value:A},deltaDecode:{value:P},initPRNG:{value:_},random:{value:N},clearTemporary:{value:D},temporary:{get:M},getVar:{value:L},setVar:{value:I},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,a,n){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:a,one:!!r}):(i=r,o={namespace:n,one:!!a,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,a,n,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),a&&o.addClass(a),i&&o.attr("title",i),n&&o.text(n),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*n,a(o,Math.easeInOut(i)),(1===n&&i>=1||-1===n&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function a(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var n="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,a(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){l+=n,window.scroll(0,i+u*(s*Math.easeInOut(l))),l>=1&&window.clearInterval(c)}function a(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}var n=null!=t?Number(t):.1;Number.isNaN(n)||!Number.isFinite(n)||n<0?n=.1:n>1&&(n=1);var i=window.scrollY?window.scrollY:document.body.scrollTop,o=function(e){var t=a(e),r=t+e.offsetHeight,n=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=n+i;return t>=n&&r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}(e),s=Math.abs(i-o),u=i>o?-1:1,l=0,c=void 0;c=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,a=e.length;r<a;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,a=State.turns,n=0,i=e.length;n<i&&a>-1;++n){var o=t.lastIndexOf(e[n]);a=Math.min(a,-1===o?-1:r-o)}return a}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("random called with insufficient parameters");case 1:e=0,t=Math.trunc(arguments[0]);break;default:e=Math.trunc(arguments[0]),t=Math.trunc(arguments[1])}if(!Number.isInteger(e))throw new Error("random min parameter must be an integer");if(!Number.isInteger(t))throw new Error("random max parameter must be an integer");if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("randomFloat called with insufficient parameters");case 1:e=0,t=Number(arguments[0]);break;default:e=Number(arguments[0]),t=Number(arguments[1])}if(Number.isNaN(e)||!Number.isFinite(e))throw new Error("randomFloat min parameter must be a number");if(Number.isNaN(t)||!Number.isFinite(t))throw new Error("randomFloat max parameter must be a number");if(e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,a=e.length;r<a;++r)t=t.concat(Story.get(e[r]).tags);return t}function temporary(){return State.temporary}function time(){return null===Engine.lastPlay?0:Util.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,a=0,n=e.length;a<n&&r>0;++a)r=Math.min(r,t.count(e[a]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,a=new Map,n=0,i=0,o=r.length;i<o;++i){var s=r[i];if(a.has(s))a.get(s)&&++n;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++n,a.set(s,!0)):a.set(s,!1)}}}return n}function evalJavaScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,parse(String(code)),output)}var _ref8=function(){function e(e){return e.reduce(function(e,t){return e=e.then(t)},Promise.resolve())}function t(e){return Util.parseUrl(e).path.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w]+/g,"-").toLocaleLowerCase()}function r(){function r(e){return new Promise(function(r,a){jQuery(document.createElement("script")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):a(e.target)}).appendTo(document.head).attr({id:"script-imported-"+t(e),type:"text/javascript",src:e})})}for(var a=arguments.length,n=Array(a),i=0;i<a;i++)n[i]=arguments[i];return Promise.all(n.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}function a(){function r(e){return new Promise(function(r,a){jQuery(document.createElement("link")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):a(e.target)}).appendTo(document.head).attr({id:"style-imported-"+t(e),rel:"stylesheet",href:e})})}for(var a=arguments.length,n=Array(a),i=0;i<a;i++)n[i]=arguments[i];return Promise.all(n.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}return{importScripts:r,importStyles:a}}(),importScripts=_ref8.importScripts,importStyles=_ref8.importStyles,parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var n=e,i=void 0;null!==(i=r.exec(n));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(a.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=n.slice(s);/^\s+not\b/.test(u)&&(n=n.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(n=n.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return n}var t=Object.freeze({$:"State.variables.",_:"State.temporary.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),a=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=0,t=function(){function t(r,a,n){_classCallCheck(this,t),t.Parser.Profile.isEmpty()&&t.Parser.Profile.compile(),Object.defineProperties(this,{source:{value:String(a)},options:{writable:!0,value:Object.assign({profile:"all"},n)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==r?this.output=document.createDocumentFragment():r.jquery?this.output=r[0]:this.output=r;try{++e,this.subWikify(this.output),1===e&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--e}}return _createClass(t,[{key:"subWikify",value:function(e,r,a){var n=this.output,i=void 0;this.output=e,null!=a&&"object"===(void 0===a?"undefined":_typeof(a))&&(i=this.options,this.options=Object.assign({},this.options,a));var o=t.Parser.Profile.get(this.options.profile),s=r?new RegExp("(?:"+r+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,u=void 0,l=void 0;do{if(o.parserRegExp.lastIndex=this.nextMatch,s&&(s.lastIndex=this.nextMatch),l=o.parserRegExp.exec(this.source),(u=s?s.exec(this.source):null)&&(!l||u.index<=l.index))return u.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,u.index),this.matchStart=u.index,this.matchLength=u[0].length,this.matchText=u[0],this.nextMatch=s.lastIndex,this.output=n,void(i&&(this.options=i));if(l){l.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,l.index),this.matchStart=l.index,this.matchLength=l[0].length,this.matchText=l[0],this.nextMatch=o.parserRegExp.lastIndex;for(var c=void 0,d=1,h=l.length;d<h;++d)if(l[d]){c=d-1;break}if(o.parsers[c].handler(this),null!=TempState.break)break}}while(u||l);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=n,i&&(this.options=i)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this._rawArgs)}}],[{key:"wikifyEval",value:function(e){var r=document.createDocumentFragment();new t(r,e);var a=r.querySelector(".error");if(null!==a)throw new Error(a.textContent.replace(errorPrologRegExp,""));return r}},{key:"createInternalLink",value:function(e,t,r,a){var n=jQuery(document.createElement("a"));return null!=t&&(n.attr("data-passage",t),Story.has(t)?(n.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&n.addClass("link-visited")):n.addClass("link-broken"),n.ariaClick({one:!0},function(){"function"==typeof a&&a(),Engine.play(t)})),r&&n.append(document.createTextNode(r)),e&&n.appendTo(e),n[0]}},{key:"createExternalLink",value:function(e,t,r){var a=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&a.attr({href:t,tabindex:0}),a[0]}},{key:"isExternalLink",value:function(e){return!Story.has(e)&&(new RegExp("^"+Patterns.url,"gim").test(e)||/[\/.?#]/.test(e))}}]),t}();return Object.defineProperty(t,"Parser",{value:function(){function e(){return d}function t(e){if("object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("Wikifier.Parser.add parser parameter must be an object");if(!e.hasOwnProperty("name"))throw new Error('parser object missing required "name" property');if("string"!=typeof e.name)throw new Error('parser object "name" property must be a string');if(!e.hasOwnProperty("match"))throw new Error('parser object missing required "match" property');if("string"!=typeof e.match)throw new Error('parser object "match" property must be a string');if(!e.hasOwnProperty("handler"))throw new Error('parser object missing required "handler" property');if("function"!=typeof e.handler)throw new Error('parser object "handler" property must be a function');if(e.hasOwnProperty("profiles")&&!Array.isArray(e.profiles))throw new Error('parser object "profiles" property must be an array');if(n(e.name))throw new Error('cannot clobber existing parser "'+e.name+'"');d.push(e)}function r(e){var t=d.find(function(t){return t.name===e});t&&d.delete(t)}function a(){return 0===d.length}function n(e){return!!d.find(function(t){return t.name===e})}function i(e){return d.find(function(t){return t.name===e})||null}function o(){return h}function s(){var e=d,t=e.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return h=Object.freeze({all:{parsers:e,parserRegExp:new RegExp(e.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{parsers:t,parserRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")}})}function u(){return"object"!==(void 0===h?"undefined":_typeof(h))||0===Object.keys(h).length}function l(e){if("object"!==(void 0===h?"undefined":_typeof(h))||!h.hasOwnProperty(e))throw new Error('nonexistent parser profile "'+e+'"');return h[e]}function c(e){return"object"===(void 0===h?"undefined":_typeof(h))&&h.hasOwnProperty(e)}var d=[],h=void 0;return Object.freeze(Object.defineProperties({},{parsers:{get:e},add:{value:t},delete:{value:r},isEmpty:{value:a},has:{value:n},get:{value:i},Profile:{value:Object.freeze(Object.defineProperties({},{profiles:{get:o},compile:{value:s},isEmpty:{value:u},has:{value:c},get:{value:l}}))}}))}()}),Object.defineProperties(t,{helpers:{value:{}},getValue:{value:State.getVar},setValue:{value:State.setVar},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(t.helpers,{inlineCss:{value:function(){function e(e){var r={classes:[],id:"",styles:{}},a=void 0;do{t.lastIndex=e.nextMatch;var n=t.exec(e.source);a=n&&n.index===e.nextMatch,a&&(n[1]?r.styles[Util.fromCssProperty(n[1])]=n[2].trim():n[3]?r.styles[Util.fromCssProperty(n[3])]=n[4].trim():n[5]?r.classes=r.classes.concat(n[5].slice(1).split(/\./)):n[6]&&(r.id=n[6].slice(1).split(/#/).pop()),e.nextMatch=t.lastIndex)}while(a);return r}var t=new RegExp(Patterns.inlineCss,"gm");return e}()},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:t.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var a=e[r];switch(a.nodeType){case Node.ELEMENT_NODE:var n=a.nodeName.toUpperCase();if("BR"===n)return!0;var i=t?window.getComputedStyle(a,null):a.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(n){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},createShadowSetterCallback:{value:function(){function e(){if(!n&&!(n=t.Parser.get("macro")))throw new Error('cannot find "macro" parser');return n}function r(){for(var t=n||e(),r=new Set,a=t.context;null!==a;a=a.parent)a._shadows&&a._shadows.forEach(function(e){return r.add(e)});return[].concat(_toConsumableArray(r))}function a(e){var t={};return r().forEach(function(e){var r=e.slice(1),a="$"===e[0]?State.variables:State.temporary;t[e]=a[r]}),function(){var r=Object.keys(t),a=r.length>0?{}:null;try{return r.forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;n.hasOwnProperty(r)&&(a[r]=n[r]),n[r]=t[e]}),Scripting.evalJavaScript(e)}finally{r.forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;t[e]=n[r],a.hasOwnProperty(r)?n[r]=a[r]:delete n[r]})}}}var n=null;return a}()},parseSquareBracketedMarkup:{value:function(e){function t(){return c>=e.source.length?s:e.source[c]}function r(t){return t<1||c+t>=e.source.length?s:e.source[c+t]}function a(){return{error:String.format.apply(String,arguments),pos:c}}function n(){l=c}function i(t){var r=e.source.slice(l,c).trim();if(""===r)throw new Error("malformed wiki "+(f?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(u.forceInternal=!0,u.link=r.slice(1)):u[t]=r,l=c}function o(e){++c;e:for(;;){switch(t()){case"\\":++c;var r=t();if(r!==s&&"\n"!==r)break;case s:case"\n":return s;case e:break e}++c}return c}var s=-1,u={},l=e.matchStart,c=l+1,d=void 0,h=void 0,f=void 0,p=void 0;if("["===(p=t()))f=u.isLink=!0;else{switch(f=!1,p){case"<":u.align="left",++c;break;case">":u.align="right",++c}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(c,c+3)))return a("malformed square-bracketed wiki markup");c+=3,u.isImage=!0}if("["!==function(){return c>=e.source.length?s:e.source[c++]}())return a("malformed wiki {0}",f?"link":"image");d=1,h=0,n();try{e:for(;;){switch(p=t()){case s:case"\n":return a("unterminated wiki {0}",f?"link":"image");case'"':if(o(p)===s)return a("unterminated double quoted string in wiki {0}",f?"link":"image");break;case"'":if((4===h||3===h&&f)&&o(p)===s)return a("unterminated single quoted string in wiki {0}",f?"link":"image");break;case"|":0===h&&(i(f?"text":"title"),++l,h=1);break;case"-":0===h&&">"===r(1)&&(i(f?"text":"title"),++c,l+=2,h=1);break;case"<":0===h&&"-"===r(1)&&(i(f?"link":"source"),++c,l+=2,h=2);break;case"[":if(-1===h)return a("unexpected left square bracket '['");++d,1===d&&(n(),++l);break;case"]":if(0===--d){switch(h){case 0:case 1:i(f?"link":"source"),h=3;break;case 2:i(f?"text":"title"),h=3;break;case 3:f?(i("setter"),h=-1):(i("link"),h=4);break;case 4:i("setter"),h=-1}if(++c,"]"===t()){++c;break e}--c}}++c}}catch(e){return a(e.message)}return u.pos=c,u}}}),t}();!function(){function e(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}Wikifier.Parser.add({name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator)}}),Wikifier.Parser.add({name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],r=0,a=e.matchLength,n=void 0,i=void 0;do{if(a>r)for(i=r;i<a;++i)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(a<r)for(i=r;i>a;--i)t.pop();r=a,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);n=o&&o.index===e.nextMatch,n&&(a=o[0].length,e.nextMatch+=o[0].length)}while(n)}}),Wikifier.Parser.add({name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,a=this.working.source,n=this.working.name,i=this.working.arguments,o=void 0;try{if(!(o=Macro.get(n))){if(Macro.tags.has(n)){var s=Macro.tags.get(n);return throwError(e.output,"child tag <<"+n+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+n+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&!(u=this.parseBody(e,o)))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+n+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+n+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({macro:o,name:n,args:l,payload:u,source:a,parent:this.context,parser:e});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i;try{o.handler(e.output,n,l,e,u)}finally{e._rawArgs=c}}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+n+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,a="/"+r,n="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,h=this.working.name,f=this.working.arguments,p=e.nextMatch;-1!==(e.matchStart=e.source.indexOf(this.match,e.nextMatch));)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case n:case a:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:h,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(p,y)}),d=g,h=m,f=v,p=b)}if(0===c){o.push({source:d,name:h,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(p,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return-1!==l?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),r=[],a=new RegExp("^"+Patterns.variable),n=void 0;null!==(n=t.exec(e));){var i=void 0;if(n[1])i=undefined;else if(n[2]){i=n[2];try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(n[3])i="";else if(n[4]){i=n[4];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error("unable to parse macro argument '"+i+"': "+e.message)}}else if(n[5]){i=n[5];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(n[6]){i=n[6];var o=Wikifier.helpers.parseSquareBracketedMarkup({source:i,matchStart:0});if(o.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+i+'": '+o.error);if(o.pos<i.length)throw new Error('unable to parse macro argument "'+i+'": unexpected character(s) "'+i.slice(o.pos)+'" (pos: '+o.pos+")");o.isLink?(i={isLink:!0},i.count=o.hasOwnProperty("text")?2:1,i.link=Wikifier.helpers.evalPassageId(o.link),i.text=o.hasOwnProperty("text")?Wikifier.helpers.evalText(o.text):i.link,i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null):o.isImage&&(i=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(Wikifier.helpers.evalPassageId(o.source)),o.hasOwnProperty("align")&&(i.align=o.align),o.hasOwnProperty("title")&&(i.title=Wikifier.helpers.evalText(o.title)),o.hasOwnProperty("link")&&(i.link=Wikifier.helpers.evalPassageId(o.link),i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link)),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null)}else if(n[7])if(i=n[7],a.test(i))i=State.getVar(i);else if(/^(?:settings|setup)[.[]/.test(i))try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}else if("null"===i)i=null;else if("undefined"===i)i=undefined;else if("true"===i)i=!0;else if("false"===i)i=!1;else{var s=Number(i);Number.isNaN(s)||(i=s)}else if(n[8]){var u=void 0;switch(n[8]){case"`":u="backquote expression";break;case'"':u="double quoted string";break;case"'":u="single quoted string"} +throw new Error("unterminated "+u+" in macro argument string")}r.push(i)}return r}}),Wikifier.Parser.add({name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=Wikifier.helpers.evalPassageId(t.link),a=t.hasOwnProperty("text")?Wikifier.helpers.evalText(t.text):r,n=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,i=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!Wikifier.isExternalLink(r)?Wikifier.createInternalLink(i,r,a,n):Wikifier.createExternalLink(i,r,a)}}),Wikifier.Parser.add({name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(Wikifier.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}}),Wikifier.Parser.add({name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=void 0;Config.debug&&(r=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),r.modes({block:!0}));var a=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,n=(Config.debug?r:e).output,i=void 0;if(t.hasOwnProperty("link")){var o=Wikifier.helpers.evalPassageId(t.link);n=t.forceInternal||!Wikifier.isExternalLink(o)?Wikifier.createInternalLink(n,o,null,a):Wikifier.createExternalLink(n,o),n.classList.add("link-image")}if(n=jQuery(document.createElement("img")).appendTo(n).get(0),i=Wikifier.helpers.evalPassageId(t.source),"data:"!==i.slice(0,5)&&Story.has(i)){var s=Story.get(i);s.tags.includes("Twine.image")&&(n.setAttribute("data-passage",s.title),i=s.text)}n.src=i,t.hasOwnProperty("title")&&(n.title=Wikifier.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(n.align=t.align)}}),Wikifier.Parser.add({name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);if(t&&t.index===e.matchStart){var r=jQuery(document.createElement("pre"));jQuery(document.createElement("code")).text(t[1]).appendTo(r),r.appendTo(e.output),e.nextMatch=this.lookahead.lastIndex}}}),Wikifier.Parser.add({name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}}),Wikifier.Parser.add({name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=Wikifier.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var r=this.blockRegExp.exec(e.source),a=r&&r.index===e.nextMatch,n=jQuery(document.createElement(a?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?n.addClass("marked"):(t.classes.forEach(function(e){return n.addClass(e)}),""!==t.id&&n.attr("id",t.id),n.css(t.styles)),a?(e.nextMatch+=r[0].length,e.subWikify(n[0],"\\n?"+this.terminator)):e.subWikify(n[0],this.terminator)}}),Wikifier.Parser.add({name:"verbatimText",profiles:["core"],match:'"{3}|<[Nn][Oo][Ww][Ii][Kk][Ii]>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<[Nn][Oo][Ww][Ii][Kk][Ii]>((?:.|\n)*?)<\/[Nn][Oo][Ww][Ii][Kk][Ii]>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output))}}),Wikifier.Parser.add({name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<[Hh][Rr]\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}}),Wikifier.Parser.add({name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}}),Wikifier.Parser.add({name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}}),Wikifier.Parser.add({name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(State.getVar(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new Wikifier((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}}),Wikifier.Parser.add({name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator)}}),Wikifier.Parser.add({name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),r=[],a=null,n=null,i=0,o=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(o=s&&s.index===e.nextMatch){var u=s[2];"k"===u?(t.className=s[1],e.nextMatch+=s[0].length+1):(u!==a&&(a=u,n=jQuery(document.createElement(this.rowTypes[u])).appendTo(t)),"c"===a?(n.css("caption-side",0===i?"top":"bottom"),e.nextMatch+=1,e.subWikify(n[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(n).get(0),r),++i)}}while(o)},rowHandler:function(e,t,r){var a=this,n=new RegExp(this.cellPattern,"gm"),i=0,o=1,s=void 0;do{n.lastIndex=e.nextMatch;var u=n.exec(e.source);if(s=u&&u.index===e.nextMatch){if("~"===u[1]){var l=r[i];l&&(++l.rowCount,l.$element.attr("rowspan",l.rowCount).css("vertical-align","middle")),e.nextMatch=u.index+u[0].length-1}else if(">"===u[1])++o,e.nextMatch=u.index+u[0].length-1;else{if(u[2]){e.nextMatch=u.index+u[0].length;break}!function(){++e.nextMatch;for(var n=Wikifier.helpers.inlineCss(e),s=!1,u=!1,l=void 0;" "===e.source.substr(e.nextMatch,1);)s=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(l=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):l=jQuery(document.createElement("td")).appendTo(t),r[i]={rowCount:1,$element:l},o>1&&(l.attr("colspan",o),o=1),e.subWikify(l[0],a.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(u=!0),n.classes.forEach(function(e){return l.addClass(e)}),""!==n.id&&l.attr("id",n.id),s&&u?n.styles["text-align"]="center":s?n.styles["text-align"]="right":u&&(n.styles["text-align"]="left"),l.css(n.styles),e.nextMatch=e.nextMatch-1}()}++i}}while(s)}}),Wikifier.Parser.add({name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],r=null,a=0,n=void 0,i=void 0;do{this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);if(n=o&&o.index===e.nextMatch){var s=o[2]?"ol":"ul",u=o[0].length;if(e.nextMatch+=o[0].length,u>a)for(i=a;i<u;++i)t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0));else if(u<a)for(i=a;i>u;--i)t.pop();else u===a&&s!==r&&(t.pop(),t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0)));a=u,r=s,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(n)}}),Wikifier.Parser.add({name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:\x3c!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}}),Wikifier.Parser.add({name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.spaceNoTerminator+"*(?:\\n|$)|(?:^|\\n)"+Patterns.spaceNoTerminator+"*\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"lineBreak",profiles:["core"],match:"\\n|<[Bb][Rr]\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}}),Wikifier.Parser.add({name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)",handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}}),Wikifier.Parser.add({name:"xmlProlog",profiles:["core"],match:"<\\?[Xx][Mm][Ll][^>]*\\?>",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"verbatimHtml",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:e}),Wikifier.Parser.add({name:"verbatimSvgTag",profiles:["core"],match:"<[Ss][Vv][Gg][^>]*>",lookahead:/(<[Ss][Vv][Gg][^>]*>(?:.|\n)*?<\/[Ss][Vv][Gg]>)/gm,handler:e}),Wikifier.Parser.add({name:"verbatimScriptTag",profiles:["core"],match:"<[Ss][Cc][Rr][Ii][Pp][Tt][^>]*>",lookahead:/(<[Ss][Cc][Rr][Ii][Pp][Tt]*>(?:.|\n)*?<\/[Ss][Cc][Rr][Ii][Pp][Tt]>)/gm,handler:e}),Wikifier.Parser.add({name:"styleTag",profiles:["core"],match:"<[Ss][Tt][Yy][Ll][Ee][^>]*>",lookahead:/(<[Ss][Tt][Yy][Ll][Ee]*>)((?:.|\n)*?)(<\/[Ss][Tt][Yy][Ll][Ee]>)/gm,imageMarkup:new RegExp(Patterns.cssImage,"g"),hasImageMarkup:new RegExp(Patterns.cssImage),handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);if(t&&t.index===e.matchStart){e.nextMatch=this.lookahead.lastIndex;var r=t[2];this.hasImageMarkup.test(r)&&(this.imageMarkup.lastIndex=0,r=r.replace(this.imageMarkup,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var a=Story.get(r);a.tags.includes("Twine.image")&&(r=a.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),jQuery(document.createDocumentFragment()).append(t[1]+r+t[3]).appendTo(e.output)}}}),Wikifier.Parser.add({name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",mediaElements:["audio","img","source","track","video"],nobrElements:["audio","colgroup","datalist","dl","figure","ol","optgroup","picture","select","table","tbody","tfoot","thead","tr","ul","video"],voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],a=r&&r.toLowerCase();if(a){var n=this.voidElements.includes(a)||e.matchText.endsWith("/>"),i=this.nobrElements.includes(a),o=void 0,s=void 0;if(!n){o="<\\/"+a+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(!n&&!s)return throwError(e.output,"cannot find a closing tag for HTML <"+r+">",e.matchText+"…");var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;try{this.processAttributeDirectives(c)}catch(t){return throwError(e.output,"<"+a+">: "+t.message,e.matchText+"…")}c.hasAttribute("data-passage")&&(this.processDataAttributes(c,a),Config.debug&&(d=new DebugView(e.output,"html-"+a,a,e.matchText),d.modes({block:"img"===a,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild("track"===a?c.cloneNode(!0):c)}},processAttributeDirectives:function(e){[].concat(_toConsumableArray(e.attributes)).forEach(function(t){var r=t.name,a=t.value,n="@"===r[0];if(n||r.startsWith("sc-eval:")){var i=r.slice(n?1:8),o=void 0;try{o=Scripting.evalTwineScript(a)}catch(e){throw new Error('bad evaluation from attribute directive "'+r+'": '+e.message)}try{e.setAttribute(i,o),e.removeAttribute(r)}catch(e){throw new Error('cannot transform attribute directive "'+r+'" into attribute "'+i+'"')}}})},processDataAttributes:function(e,t){var r=e.getAttribute("data-passage");if(null!=r){var a=Wikifier.helpers.evalPassageId(r);if(a!==r&&(r=a,e.setAttribute("data-passage",a)),""!==r)if(this.mediaElements.includes(t)){if("data:"!==r.slice(0,5)&&Story.has(r)){r=Story.get(r);var n=void 0,i=void 0;switch(t){case"audio":case"video":i="Twine."+t;break;case"img":i="Twine.image";break;case"track":i="Twine.vtt";break;case"source":var o=$(e).closest("audio,picture,video");o.length&&(n=o.get(0).tagName.toLowerCase(),i="Twine."+("picture"===n?"image":n))}r.tags.includes(i)&&(e["picture"===n?"srcset":"src"]=r.text.trim())}}else{var s=e.getAttribute("data-setter"),u=void 0;null!=s&&""!==(s=String(s).trim())&&(u=Wikifier.helpers.createShadowSetterCallback(Scripting.parse(s))),Story.has(r)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof u&&u.call(this),Engine.play(r)})}}}})}();var Macro=function(){function e(t,r,n){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,n)});if(!h.test(t))throw new Error('invalid macro name "'+t+'"');if(a(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===(void 0===r?"undefined":_typeof(r)))c[t]=n?clone(r):r;else{if(!a(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=n?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(a(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function a(e){return c.hasOwnProperty(e)}function n(e){var t=null;return a(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],n=[].concat(r,Array.isArray(t)?t:[]),i=0;i<n.length;++i){var o=n[i];if(a(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);-1!==r&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},h=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:a},get:{value:n},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){return function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parent:{value:r.parent},parser:{value:r.parser},_output:{value:r.parser.output},_shadows:{writable:!0,value:null},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"addShadow",value:function(){var e=this;this._shadows||(this._shadows=new Set);for(var t=new RegExp("^"+Patterns.variable+"$"),r=arguments.length,a=Array(r),n=0;n<r;n++)a[n]=arguments[n];a.flatten().forEach(function(r){if("string"!=typeof r)throw new TypeError("variable name must be a string; type: "+(void 0===r?"undefined":_typeof(r)));if(!t.test(r))throw new Error('invalid variable name "'+r+'"');e._shadows.add(r)})}},{key:"createShadowWrapper",value:function(e,t,r){var a=this,n=void 0;return"function"==typeof e&&(n={},this.shadowView.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t]})),function(){for(var i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s];if("function"==typeof r&&r.apply(this,o),"function"==typeof e){var u=Object.keys(n),l=u.length>0?{}:null,c=Wikifier.Parser.get("macro"),d=void 0;try{u.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;r.hasOwnProperty(t)&&(l[t]=r[t]),r[t]=n[e]}),d=c.context,c.context=a,e.apply(this,o)}finally{d!==undefined&&(c.context=d),u.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t],l.hasOwnProperty(t)?r[t]=l[t]:delete r[t]})}}"function"==typeof t&&t.apply(this,o)}}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e||this.name,t||this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t||this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"shadows",get:function(){return[].concat(_toConsumableArray(this._shadows))}},{key:"shadowView",get:function(){var e=new Set;return this.contextSelectAll(function(e){return e._shadows}).forEach(function(t){return t._shadows.forEach(function(t){return e.add(t)})}),[].concat(_toConsumableArray(e))}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}()}();!function(){if(Macro.add("capture",{skipArgs:!0,tags:null,handler:function(){if(0===this.args.raw.length)return this.error("no story/temporary variable list specified");var e={};try{for(var t=new RegExp("("+Patterns.variable+")","g"),r=void 0;null!==(r=t.exec(this.args.raw));){var a=r[1],n=a.slice(1),i="$"===a[0]?State.variables:State.temporary;i.hasOwnProperty(n)&&(e[n]=i[n]),this.addShadow(a)}new Wikifier(this.output,this.payload[0].contents)}finally{this.shadows.forEach(function(t){var r=t.slice(1),a="$"===t[0]?State.variables:State.temporary;e.hasOwnProperty(r)?a[r]=e[r]:delete a[r]})}}}),Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("State\\.(variables|temporary)\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=State[t[1]],a=t[2];r.hasOwnProperty(a)&&delete r[a]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var a=r[1];e[a]=State.variables[a]}if(!storage.set("remember",e))return this.error("unknown error, cannot remember: "+this.args.raw);Config.debug&&this.debugView.modes({hidden:!0})},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,a=!1;null!==(r=t.exec(this.args.full));){var n=r[1];State.variables.hasOwnProperty(n)&&delete State.variables[n],e&&e.hasOwnProperty(n)&&(a=!0,delete e[n])}if(a&&!storage.set("remember",e))return this.error("unknown error, cannot update remember store");Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("include",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("display","include"),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=void 0;try{var t=this.payload.length;for(e=0;e<t;++e)switch(this.payload[e].name){case"else":if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);if(e+1!==t)return this.error("<<else>> must be the final clause");break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}var r=Scripting.evalJavaScript,a=!1;for(e=0;e<t;++e){if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||r(this.payload[e].args.full)){a=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<t;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!a,invalid:!a})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===(void 0===t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length;if(1===e)return this.error("no cases specified");var t=void 0;for(t=1;t<e;++t)switch(this.payload[t].name){case"default":if(this.payload[t].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[t].args.raw);if(t+1!==e)return this.error("<<default>> must be the final case");break;default:if(0===this.payload[t].args.length)return this.error("no value(s) specified for <<"+this.payload[t].name+">> (#"+t+")")}var r=void 0;try{r=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}var a=this.debugView,n=!1;for(Config.debug&&a.modes({nonvoid:!1,hidden:!0}),t=1;t<e;++t){if(Config.debug&&this.createDebugView(this.payload[t].name,this.payload[t].source).modes({nonvoid:!1}),"default"===this.payload[t].name||this.payload[t].args.some(function(e){return e===r})){n=!0,new Wikifier(this.output,this.payload[t].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++t;t<e;++t)this.createDebugView(this.payload[t].name,this.payload[t].source).modes({nonvoid:!1,hidden:!0,invalid:!0});a.modes({nonvoid:!1,hidden:!0,invalid:!n}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!n})}}}),Macro.add("for",{skipArgs:!0,tags:null,_hasRangeRe:new RegExp("^\\S.*?\\s+range\\s+\\S.*?$"),_rangeRe:new RegExp("^(?:State\\.(variables|temporary)\\.("+Patterns.identifier+")\\s*,\\s*)?State\\.(variables|temporary)\\.("+Patterns.identifier+")\\s+range\\s+(\\S.*?)$"),_3PartRe:/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/,handler:function(){var e=this.args.full.trim(),t=this.payload[0].contents.replace(/\n$/,"");if(0===e.length)this.self._handleFor.call(this,t,null,!0,null);else if(this.self._hasRangeRe.test(e)){var r=e.match(this.self._rangeRe);if(null===r)return this.error("invalid range form syntax, format: [index ,] value range collection");this.self._handleForRange.call(this,t,{type:r[1],name:r[2]},{type:r[3],name:r[4]},r[5])}else{var a=void 0,n=void 0,i=void 0;if(-1===e.indexOf(";")){if(/^\S+\s+in\s+\S+/i.test(e))return this.error("invalid syntax, for…in is not supported; see: for…range");if(/^\S+\s+of\s+\S+/i.test(e))return this.error("invalid syntax, for…of is not supported; see: for…range");n=e}else{var o=e.match(this.self._3PartRe);if(null===o)return this.error("invalid 3-part conditional form syntax, format: [init] ; [condition] ; [post]");a=o[1],n=o[2].trim(),i=o[3],0===n.length&&(n=!0)}this.self._handleFor.call(this,t,a,n,i)}},_handleFor:function(e,t,r,a){var n=Scripting.evalJavaScript,i=!0,o=Config.macros.maxLoopIterations;Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,t)try{n(t)}catch(e){return this.error("bad init expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}for(;n(r);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?e.replace(/^\n/,""):e),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{n(a)}catch(e){return this.error("bad post expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}},_handleForRange:function(e,t,r,a){var n=!0,i=void 0;try{i=this.self._toRangeList(a)}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});try{TempState.break=null;for(var o=0;o<i.length;++o)if(t.name&&(State[t.type][t.name]=i[o][0]),State[r.type][r.name]=i[o][1],new Wikifier(this.output,n?e.replace(/^\n/,""):e),n&&(n=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}}catch(e){return this.error("object"===(void 0===e?"undefined":_typeof(e))?e.message:e)}finally{TempState.break=null}},_toRangeList:function(e){var t=Scripting.evalJavaScript,r=void 0;try{r=t("{"===e[0]?"("+e+")":e)}catch(e){if("object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("bad range expression: "+e);throw e.message="bad range expression: "+e.message,e}var a=void 0;switch(void 0===r?"undefined":_typeof(r)){case"string":a=[];for(var n=0;n<r.length;){var i=Util.charAndPosAt(r,n);a.push([n,i.char]),n=1+i.end}break;case"object": +if(Array.isArray(r))a=r.map(function(e,t){return[t,e]});else if(r instanceof Set)a=[].concat(_toConsumableArray(r)).map(function(e,t){return[t,e]});else if(r instanceof Map)a=[].concat(_toConsumableArray(r.entries()));else{if("Object"!==Util.toStringTag(r))throw new Error("unsupported range expression type: "+Util.toStringTag(r));a=Object.keys(r).map(function(e){return[e,r[e]]})}break;default:throw new Error("unsupported range expression type: "+(void 0===r?"undefined":_typeof(r)))}return a}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){if(!this.contextHas(function(e){return"for"===e.name}))return this.error("must only be used in conjunction with its parent macro <<for>>");TempState.break="continue"===this.name?1:2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add(["button","link"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("button"===this.name?"button":"a")),r=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var a=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(t);this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(r=this.args[0].link),r=this.args[0].link}else t.append(document.createTextNode(this.args[0].text)),r=this.args[0].link;else t.wikiWithOptions({profile:"core"},this.args[0]),r=this.args.length>1?this.args[1]:undefined;null!=r?(t.attr("data-passage",r),Story.has(r)?(t.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&t.addClass("link-visited")):t.addClass("link-broken")):t.addClass("link-internal"),t.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=r},this.createShadowWrapper(""!==this.payload[0].contents?function(){return Wikifier.wikifyEval(e.payload[0].contents.trim())}:null,null!=r?function(){return Engine.play(r)}:null)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),a=this.args[1],n=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.checked?n:a)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,State.setVar(t,n)):State.setVar(t,a)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("a")),r=jQuery(document.createElement("span")),a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]);t.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},this.createShadowWrapper(function(){if("linkreplace"===e.name?t.remove():t.wrap('<span class="macro-'+e.name+'"></span>').replaceWith(function(){return t.html()}),""!==e.payload[0].contents){var n=document.createDocumentFragment();new Wikifier(n,e.payload[0].contents),r.append(n)}a&&setTimeout(function(){return r.removeClass("macro-"+e.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),r.addClass("macro-"+this.name+"-insert"),a&&r.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?r.insertBefore(t):r.insertAfter(t)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),a=this.args[1],n=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={}),TempState[this.name].hasOwnProperty(r)||(TempState[this.name][r]=0),jQuery(n).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&State.setVar(t,a)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(n.checked=!0,State.setVar(t,a))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),a=this.args[1],n="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.value)}).appendTo(this.output),State.setVar(t,a),i.textContent=a,n&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){delete postdisplay[e],setTimeout(function(){return i.focus()},Engine.minDomActionDelay)})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),a=this.args[1],n=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),"object"===(void 0===o?"undefined":_typeof(o))&&(o=o.link),jQuery(n).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),State.setVar(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),State.setVar(t,a),n.value=a,i&&(n.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+n.id]=function(e){delete postdisplay[e],setTimeout(function(){return n.focus()},Engine.minDomActionDelay)})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){for(var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output),t=0;t<this.args.length;++t){var r=void 0,a=void 0,n=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&n.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&n.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&n.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(a=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):a=r=this.args[t],State.variables.hasOwnProperty("#actions")&&State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables.hasOwnProperty("#actions")||(State.variables["#actions"]={}),State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(n||document.createTextNode(a))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,a=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var n=State.length-2;n>=0;--n)if(State.history[n].title!==State.passage){e=n,t=State.history[n].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(-1===e)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||-1!==e?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(a||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,a=void 0,n=void 0;if(1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),t=this.args[0].link,n=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,n=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")&&State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e])return void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(a||document.createTextNode(r)).appendTo(this.output);jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables.hasOwnProperty("#choice")||(State.variables["#choice"]={}),State.variables["#choice"][e]=!0,"function"==typeof n&&n()})).addClass("macro-"+this.name).append(a||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass()}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');e.remove()}}),Has.audio){var e=Object.freeze([":not",":all",":looped",":muted",":paused",":playing"]);Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track or group IDs"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[];try{var a=function e(r){var a=r.id,o=void 0;switch(a){case":all":o=n;break;case":looped":o=n.filter(function(e){return t[e].isLooped()});break;case":muted":o=n.filter(function(e){return t[e].isMuted()});break;case":paused":o=n.filter(function(e){return t[e].isPaused()});break;case":playing":o=n.filter(function(e){return t[e].isPlaying()});break;default:o=":"===a[0]?i[a]:[a]}if(r.hasOwnProperty("not")){var s=r.not.map(function(t){return e(t)}).flatten();o=o.filter(function(e){return!s.includes(e)})}return o},n=Object.freeze(Object.keys(t)),i=Macro.get("cacheaudio").groups;this.self.parseIds(String(this.args[0]).trim()).forEach(function(e){r.push.apply(r,_toConsumableArray(a(e)))}),r.forEach(function(e){if(!t.hasOwnProperty(e))throw new Error('track "'+e+'" does not exist')})}catch(e){return this.error(e.message)}for(var o=this.args.slice(1),s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=void 0,f=5,p=void 0,g=void 0;o.length>0;){var m=o.shift();switch(m){case"play":case"pause":case"stop":s=m;break;case"fadein":s="fade",h=1;break;case"fadeout":s="fade",h=0;break;case"fadeto":if(0===o.length)return this.error("fadeto missing required level value");if(s="fade",g=o.shift(),h=Number.parseFloat(g),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeto: "+g);break;case"fadeoverto":if(o.length<2){var v=[];return o.length<1&&v.push("seconds"),o.length<2&&v.push("level"),this.error("fadeoverto missing required "+v.join(" and ")+" value"+(v.length>1?"s":""))}if(s="fade",g=o.shift(),f=Number.parseFloat(g),Number.isNaN(f)||!Number.isFinite(f))return this.error("cannot parse fadeoverto: "+g);if(g=o.shift(),h=Number.parseFloat(g),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+g);break;case"volume":if(0===o.length)return this.error("volume missing required level value");if(g=o.shift(),u=Number.parseFloat(g),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse volume: "+g);break;case"mute":case"unmute":l="mute"===m;break;case"time":if(0===o.length)return this.error("time missing required seconds value");if(g=o.shift(),c=Number.parseFloat(g),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse time: "+g);break;case"loop":case"unloop":d="loop"===m;break;case"goto":if(0===o.length)return this.error("goto missing required passage title");if(g=o.shift(),p="object"===(void 0===g?"undefined":_typeof(g))?g.link:g,!Story.has(p))return this.error('passage "'+p+'" does not exist');break;default:return this.error("unknown action: "+m)}}try{r.forEach(function(e){var r=t[e];switch(null!=u&&(r.volume=u),null!=c&&(r.time=c),null!=l&&(r.mute=l),null!=d&&(r.loop=d),null!=p&&r.one("end",function(){return Engine.play(p)}),s){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(f,h)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}},parseIds:function(e){for(var t=[],r=/:?[^\s:()]+/g,a=void 0;null!==(a=r.exec(e));){var n=a[0];if(":not"===n){if(0===t.length)throw new Error('invalid negation: no group ID preceded ":not()"');var i=t[t.length-1];if(":"!==i.id[0])throw new Error('invalid negation of track "'+i.id+'": only groups may be negated with ":not()"');var o=function(e,t){var r=/\S/g,a=/[()]/g,n=void 0;if(r.lastIndex=t,null===(n=r.exec(e))||"("!==n[0])throw new Error('invalid ":not()" syntax: missing parentheticals');a.lastIndex=r.lastIndex;for(var i=r.lastIndex,o={str:"",nextMatch:-1},s=1;null!==(n=a.exec(e));)if("("===n[0]?++s:--s,s<1){o.nextMatch=a.lastIndex,o.str=e.slice(i,o.nextMatch-1);break}return o}(e,r.lastIndex);if(-1===o.nextMatch)throw new Error('unknown error parsing ":not()"');r.lastIndex=o.nextMatch,i.not=this.parseIds(o.str)}else t.push({id:n})}return t}}),Macro.add("cacheaudio",{tracks:{},groups:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim();if(/^:|\s/.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var r=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){if("data:"!==e.slice(0,5)&&Story.has(e)){var t=Story.get(e);if(t.tags.includes("Twine.audio"))return t.text.trim()}var a=r.exec(e);return null===a?e:{format:a[1],src:a[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var n=this.self.tracks;n.hasOwnProperty(t)&&n[t].destroy(),n[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createaudiogroup",{tags:["track"],handler:function(){if(0===this.args.length)return this.error("no group ID specified");var t=String(this.args[0]).trim();if(/^[^:]|\s/.test(t))return this.error('invalid group ID "'+t+'": group IDs must start with a colon and may not contain whitespace');if(e.includes(t))return this.error('cannot clobber special group ID "'+t+'"');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var r=Macro.get("cacheaudio").tracks,a=[],n=1,i=this.payload.length;n<i;++n){if(this.payload[n].args.length<1)return this.error("no track ID specified");var o=String(this.payload[n].args[0]).trim();if(!r.hasOwnProperty(o))return this.error('track "'+o+'" does not exist');a.push(o),Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0})}var s=Macro.get("cacheaudio").groups;s.hasOwnProperty(t)&&delete s[t],s[t]=a,this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim();if(/^:|\s/.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),n=1,i=this.payload.length;n<i;++n){if(this.payload[n].args.length<2){var o=[];return this.payload[n].args.length<1&&o.push("track ID"),this.payload[n].args.length<2&&o.push("actions"),this.error("no "+o.join(" or ")+" specified")}var s=String(this.payload[n].args[0]).trim();if(!t.hasOwnProperty(s))return this.error('track "'+s+'" does not exist');for(var u=this.payload[n].args.slice(1),l=!1,c=void 0;u.length>0;){var d=u.shift(),h=void 0;switch(d){case"copy":l=!0;break;case"rate":u.length>0&&u.shift();break;case"volume":if(0===u.length)return this.error("volume missing required level value");if(h=u.shift(),c=Number.parseFloat(h),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse volume: "+h);break;default:return this.error("unknown action: "+d)}}var f=t[s];a.add({copy:l,track:f,volume:null!=c?c:f.volume}),Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0})}var p=this.self.lists;p.hasOwnProperty(r)&&p[r].destroy(),p[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,a=void 0;e.length>0;){var n=e.shift(),i=void 0;switch(n){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===n;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),a=Number.parseFloat(i),Number.isNaN(a)||!Number.isFinite(a))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+n)}}try{null!=r&&(SimpleAudio.mute=r),null!=a&&(SimpleAudio.volume=a),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var a=[];return this.args.length<1&&a.push("list ID"),this.args.length<2&&a.push("actions"),this.error("no "+a.join(" or ")+" specified")}var n=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!n.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=n[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=5,f=void 0;r.length>0;){var p=r.shift();switch(p){case"play":case"pause":case"stop":case"skip":o=p;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",f=r.shift(),h=Number.parseFloat(f),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+f);if(f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(f=r.shift(),s=Number.parseFloat(f),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":u="mute"===p;break;case"loop":case"unloop":l="loop"===p;break;case"shuffle":case"unshuffle":c="shuffle"===p;break;default:return this.error("unknown action: "+p)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(h,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();if(!e.hasOwnProperty(t))return this.error('playlist "'+t+'" does not exist');e[t].destroy(),delete e[t],Config.debug&&this.createDebugView()}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock(r);var a=t.shift();if(a.hasData())return e();a.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue,r=void 0;t.length>0||(this.self.fillQueue(t),t.length>0&&(r=LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var a=Macro.get("setplaylist").list;null!==a&&a.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var a=0;a<this.args.length;++a){var n=this.args[a];if(!r.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');t.list.add(r[n])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})}else Macro.add(["audio","cacheaudio","createaudiogroup","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}});Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay)}}),Macro.add("repeat",{isAsync:!0,tags:null,timers:new Set,handler:function(){var e=this;if(0===this.args.length)return this.error("no time value specified");var t=void 0;try{t=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});var r=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),a=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerInterval(this.createShadowWrapper(function(){var t=document.createDocumentFragment();new Wikifier(t,e.payload[0].contents);var n=a;r&&(n=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(n)),n.append(t),r&&setTimeout(function(){return n.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}),t)},registerInterval:function(e,t){var r=this;if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var a=State.turns,n=this.timers,i=null;i=setInterval(function(){if(a!==State.turns)return clearInterval(i),void n.delete(i);var t=void 0;try{TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(t=TempState.repeatTimerId),TempState.repeatTimerId=i,e.call(r)}finally{void 0!==t?TempState.repeatTimerId=t:delete TempState.repeatTimerId,TempState.break=null}},t),n.add(i),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],n.forEach(function(e){return clearInterval(e)}),n.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("timed",{isAsync:!0,tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0});var a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),n=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerTimeout(this.createShadowWrapper(function(e){var t=document.createDocumentFragment();new Wikifier(t,e.content);var r=n;Config.debug&&"next"===e.name&&(r=jQuery(new DebugView(r[0],"macro",e.name,e.source).output)),a&&(r=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(r)),r.append(t),a&&setTimeout(function(){return r.removeClass("macro-timed-in")},Engine.minDomActionDelay)}),e)},registerTimeout:function(e,t){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var r=State.turns,a=this.timers,n=null,i=t.shift(),o=function o(){if(a.delete(n),r===State.turns){var s=i;null!=(i=t.shift())&&(n=setTimeout(o,i.delay),a.add(n)),e.call(this,s)}};n=setTimeout(o,i.delay),a.add(n),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearTimeout(e)}),a.clear()})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=void 0;try{State.variables.hasOwnProperty("args")&&(t=State.variables.args),State.variables.args=[].concat(_toConsumableArray(this.args)),State.variables.args.raw=this.args.raw,State.variables.args.full=this.args.full,this.addShadow("$args");var r=document.createDocumentFragment(),a=[];if(new Wikifier(r,e),Array.from(r.querySelectorAll(".error")).forEach(function(e){a.push(e.textContent)}),0!==a.length)return this.error("error"+(a.length>1?"s":"")+" within widget contents ("+a.join("; ")+")");this.output.appendChild(r)}catch(e){return this.error("cannot execute widget: "+e.message)}finally{void 0!==t?State.variables.args=t:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{ +var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var a=t.offsetWidth;r.style.overflow="auto";var n=t.offsetWidth;a===n&&(n=r.clientWidth),document.body.removeChild(r),e=a-n}catch(e){}return e||17}();var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1><button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button></div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),h=jQuery(e.find("#ui-dialog").get(0)),f=jQuery(e.find("#ui-dialog-title").get(0)),p=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return h.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return p.hasClass(e)}))}function r(e,t){return p.empty().removeClass(),null!=t&&p.addClass(t),f.empty().append((null!=e?String(e):"")||" "),p.get(0)}function a(){return p.get(0)}function n(){var e;return(e=p).append.apply(e,arguments),Dialog}function i(){var e;return(e=p).wiki.apply(e,arguments),Dialog}function o(e,t,r,a,n){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,n),"function"==typeof a&&a(e)})}function s(e,r){var a=jQuery.extend({top:50},e),n=a.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).attr("data-dialog","open"),d.addClass("open"),null!==p[0].querySelector("img")&&p.imagesLoaded().always(function(){return l({data:{top:n}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(n);return h.css(i).addClass("open").focus(),jQuery(window).on("resize.dialog-resize",null,{top:n},jQuery.throttle(40,l)),Has.mutationObserver?(v=new MutationObserver(function(e){for(var t=0;t<e.length;++t)if("childList"===e[t].type){l({data:{top:n}});break}}),v.observe(p[0],{childList:!0,subtree:!0})):p.on("DOMNodeInserted.dialog-resize DOMNodeRemoved.dialog-resize",null,{top:n},jQuery.throttle(40,l)),jQuery(document).on("click.dialog-close",".ui-close",{closeFn:r},u).on("keypress.dialog-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger(":dialogopen")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".dialog-close"),v?(v.disconnect(),v=null):p.off(".dialog-resize"),jQuery(window).off(".dialog-resize"),h.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),f.empty(),p.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeAttr("data-dialog"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger(":dialogclose")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&void 0!==e.data.top?e.data.top:50;"block"===h.css("display")&&(h.css({display:"none"}),h.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),a={left:"",right:"",top:"",bottom:""};h.css(a);var n=r.width()-h.outerWidth(!0)-1,i=r.height()-h.outerHeight(!0)-1;return n<=32+m&&(i-=m),i<=32+m&&(n-=m),a.left=a.right=n<=32?16:n/2>>0,a.top=i<=32?a.bottom=16:i/2>t?t:a.bottom=i/2>>0,Object.keys(a).forEach(function(e){""!==a[e]&&(a[e]+="px")}),a}var d=null,h=null,f=null,p=null,g=null,m=0,v=null;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:a},append:{value:n},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(e){return l("object"===(void 0===e?"undefined":_typeof(e))?{data:e}:undefined)}}}))}(),Engine=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),function(){var e=jQuery(document.createDocumentFragment()),t=Story.has("StoryInterface")&&Story.get("StoryInterface").text.trim();if(t){if(UIBar.destroy(),jQuery(document.head).find("#style-core-display").remove(),e.append(t),0===e.find("#passages").length)throw new Error('no element with ID "passages" found within "StoryInterface" special passage')}else e.append('<div id="story" role="main"><div id="passages"></div></div>');e.insertBefore("#store-area")}(),S=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-aria-outlines",type:"text/css"}).appendTo(document.head).get(0)}()),jQuery(document).on("mousedown.aria-outlines keydown.aria-outlines",function(e){return"keydown"===e.type?m():g()})}function t(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),k=t.output}}catch(e){console.error(e),Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(jQuery(document.documentElement).focus(),State.restore())h();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&f(Config.passages.start)}}function r(){LoadScreen.show(),window.scroll(0,0),State.reset(),jQuery.event.trigger(":enginerestart"),window.location.reload()}function a(){return b}function n(){return b===v.Idle}function i(){return b!==v.Idle}function o(){return b===v.Rendering}function s(){return w}function u(e){var t=State.goTo(e);return t&&h(),t}function l(e){var t=State.go(e);return t&&h(),t}function c(){return l(-1)}function d(){return l(1)}function h(){return f(State.passage,!0)}function f(e,t){var r=e;b=v.Playing,TempState={},State.clearTemporary();var a=void 0,n=void 0;if("function"==typeof Config.navigation.override)try{var i=Config.navigation.override(r);i&&(r=i)}catch(e){}var o=Story.get(r);if(jQuery.event.trigger({type:":passageinit",passage:o}),Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},o),t||State.create(o.title),w=Util.now(),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},o),Story.has("PassageReady"))try{a=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){console.error(e),Alert.error("PassageReady",e.message)}b=v.Rendering;var s=jQuery(o.render()),u=document.getElementById("passages");if(u.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(u.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(y,Config.passages.transitionOut))}else t.remove()}):jQuery(u).empty()),s.addClass("passage-in").appendTo(u),setTimeout(function(){return s.removeClass("passage-in")},y),Config.passages.displayTitles&&o.title!==Config.passages.start&&(document.title=o.title+" | "+Story.title),window.scroll(0,0),b=v.Playing,Story.has("PassageDone"))try{n=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){console.error(e),Alert.error("PassageDone",e.message)}if(jQuery.event.trigger({type:":passagedisplay",passage:o}),Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},o),Config.ui.updateStoryElements&&UIBar.setStoryElements(),Config.debug){var l=void 0;null!=a&&(l=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),l.modes({hidden:!0}),l.append(a),s.prepend(l.output)),null!=n&&(l=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),l.modes({hidden:!0}),l.append(n),s.append(l.output)),1===State.turns&&null!=k&&s.prepend(k)}switch(g(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":o.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&o.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return jQuery.event.trigger({type:":passageend",passage:o}),b=v.Idle,w=Util.now(),s[0]}function p(e,t,r){var a=!1;switch(r){case undefined:break;case"replace":case"back":a=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}f(e,a)}function g(){S.set("*:focus{outline:none}")}function m(){S.clear()}var v=Util.toEnum({Idle:"idle",Playing:"playing",Rendering:"rendering"}),y=40,b=v.Idle,w=null,k=null,S=null;return Object.freeze(Object.defineProperties({},{States:{value:v},minDomActionDelay:{value:y},init:{value:e},start:{value:t},restart:{value:r},state:{get:a},isIdle:{value:n},isPlaying:{value:i},isRendering:{value:o},lastPlay:{get:s},goTo:{value:u},go:{value:l},backward:{value:c},forward:{value:d},show:{value:h},play:{value:f},display:{value:p}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i;var r=/(?:\\n|\\t|\\s|\\|\r)/g,a=new RegExp(r.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});return t=function(e){if(null==e)return"";var t=String(e);return t&&a.test(t)?t.replace(r,function(e){return n[e]}):t},function(){function r(t,a){var n=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:a||null},tags:{value:Object.freeze(a&&a.hasAttribute("tags")?a.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return n.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch(void 0===e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("Twine.image")?e="[img["+e+"]]":(Config.passages.nobr||this.tags.includes("nobr"))&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),e}},{key:"render",value:function(){var e=this,t=this.tags.length>0?this.tags.join(" "):null,a=document.createElement("div");return jQuery(a).attr({id:this.domId,"data-passage":this.title,"data-tags":t}).addClass("passage "+this.className),jQuery(document.body).attr("data-tags",t).addClass(this.className),jQuery(document.documentElement).attr("data-tags",t),jQuery.event.trigger({type:":passagestart",content:a,passage:this}),Object.keys(prerender).forEach(function(t){"function"==typeof prerender[t]&&prerender[t].call(e,a,t)}),Story.has("PassageHeader")&&new Wikifier(a,Story.get("PassageHeader").processText()),new Wikifier(a,this.processText()),Story.has("PassageFooter")&&new Wikifier(a,Story.get("PassageFooter").processText()),jQuery.event.trigger({type:":passagerender",content:a,passage:this}),Object.keys(postrender).forEach(function(t){"function"==typeof postrender[t]&&postrender[t].call(e,a,t)}),this._excerpt=r.getExcerptFromNode(a),a}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var a=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(a)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),a=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return a?a[1]+"…":"…"}}]),r}()}(),Save=function(){function e(){if("cookie"===storage.name)return a(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&x(e.slots,Config.saves.slots-e.slots.length),t=!0),O(e.autosave)&&(t=!0);for(var n=0;n<e.slots.length;++n)O(e.slots[n])&&(t=!0);return j(e)&&(storage.delete("saves"),t=!1),t&&C(e),P=e.slots.length-1,!0}function t(){return{autosave:null,slots:x([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function a(){return storage.delete("saves"),!0}function n(){return i()||d()}function i(){return"cookie"!==storage.name&&void 0!==Config.saves.autosave}function o(){return null!==r().autosave}function s(){return r().autosave}function u(){var e=r();return null!==e.autosave&&A(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var a=r(),n={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(n.metadata=t),a.autosave=T(n),C(a)}function c(){var e=r();return e.autosave=null,C(e)}function d(){return"cookie"!==storage.name&&-1!==P}function h(){return P+1}function f(){if(!d())return 0;for(var e=r(),t=0,a=0,n=e.slots.length;a<n;++a)null!==e.slots[a]&&++t;return t}function p(){return 0===f()}function g(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>P)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&A(t.slots[e])}function y(e,t,a){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>P)return!1;var n=r();if(e>=n.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=a&&(i.metadata=a),n.slots[e]=T(i),C(n)}function b(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,C(t))}function w(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var r=null==e?Story.domId:Util.slugify(e),a=r+"-"+function(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),a=e.getHours(),n=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),a<10&&(a="0"+a),n<10&&(n="0"+n),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+a+n+i}()+".save",n=null==t?{}:{metadata:t},i=LZString.compressToBase64(JSON.stringify(T(n)));saveAs(new Blob([i],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var a=void 0;try{a=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}A(a)}}),r.readAsText(t)}function S(e){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),null;var t=null==e?{}:{metadata:e};return LZString.compressToBase64(JSON.stringify(T(t)))}function E(e){var t=void 0;try{t=JSON.parse(LZString.decompressFromBase64(e))}catch(e){}return A(t)?t.metadata:null}function x(e,t){for(var r=0;r<t;++r)e.push(null);return e}function j(e){for(var t=e.slots,r=!0,a=0,n=t.length;a<n;++a)if(null!==t[a]){r=!1;break}return null===e.autosave&&r}function C(e){return j(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function O(e){if(null==e||"object"!==(void 0===e?"undefined":_typeof(e)))return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired,(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function T(e){if(null!=e&&"object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function A(e){try{if(O(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var P=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:a},ok:{value:n},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:h},isEmpty:{value:p},count:{value:f},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k},serialize:{value:S},deserialize:{value:E}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}a(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function a(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function n(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)n(),a();else{if(null==e||!h(e))throw new Error('nonexistent setting "'+e+'"');var t=f(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var a=[];throw arguments.length<1&&a.push("type"),arguments.length<2&&a.push("name"),arguments.length<3&&a.push("definition"),new Error("missing parameters, no "+a.join(" or ")+" specified")}if("object"!==(void 0===r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(h(t))throw new Error('cannot clobber existing setting "'+t+'"');var n={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:n.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(n.list=Object.freeze(r.list),null==r.default)n.default=r.list[0];else{var i=r.list.indexOf(r.default);if(-1===i)throw new Error("list does not contain default");n.default=r.list[i]}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(n.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(n.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(n))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function h(e){return g.some(function(t){return t.name===e})}function f(e){return g.find(function(t){return t.name===e})}function p(e){h(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),p(e);break}}var g=[],m=Util.toEnum({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:a},clear:{value:n},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:h},get:{value:f},delete:{value:p}}))}(),Story=function(){function e(){function e(e){if(e.tags.includesAny(a))throw new Error('starting passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return a.includes(e)}).sort().join('", "')+'"')}function t(e){if(n.includes(e.title)&&e.tags.includesAny(a))throw new Error('special passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return a.includes(e)}).sort().join('", "')+'"')}var a=["widget"],n=["PassageDone","PassageFooter","PassageHeader","PassageReady","StoryAuthor","StoryBanner","StoryCaption","StoryInit","StoryMenu","StoryShare","StorySubtitle"],i=function(e){var t=[].concat(a),r=[];if(e.tags.forEach(function(e){t.includes(e)&&r.push.apply(r,_toConsumableArray(t.delete(e)))}),r.length>1)throw new Error('code passage "'+e.title+'" contains multiple code tags; invalid: "'+r.sort().join('", "')+'"')};if(a.unshift("script","stylesheet"),n.push("StoryTitle"),Config.passages.start=function(){var e=String("START_AT");return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var r=jQuery(this),a=new Passage(r.attr("tiddler"),this);a.title===Config.passages.start?(e(a),c[a.title]=a):a.tags.includes("stylesheet")?(i(a),d.push(a)):a.tags.includes("script")?(i(a),h.push(a)):a.tags.includes("widget")?(i(a),f.push(a)):(t(a),c[a.title]=a)}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var o=document.createDocumentFragment();new Wikifier(o,c.StoryTitle.processText().trim()),r(o.textContent.trim()),Config.saves.id=Story.domId}function t(){!function(){var e=document.createElement("style");new StyleWrapper(e).add(d.map(function(e){return e.text.trim()}).join("\n")),jQuery(e).appendTo(document.head).attr({id:"style-story",type:"text/css"})}();for(var e=0;e<h.length;++e)try{Scripting.evalJavaScript(h[e].text)}catch(t){console.error(t),Alert.error(h[e].title,"object"===(void 0===t?"undefined":_typeof(t))?t.message:t)}for(var t=0;t<f.length;++t)try{Wikifier.wikifyEval(f[t].processText())}catch(e){console.error(e),Alert.error(f[t].title,"object"===(void 0===e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=p=Util.unescape(e),m=Util.slugify(p)}function a(){return p}function n(){return m}function i(){return g}function o(e){var t=void 0===e?"undefined":_typeof(e);switch(t){case"number":case"string":return c.hasOwnProperty(String(e));case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t=void 0===e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",a=Object.keys(c),n=[],i=0;i<a.length;++i){var o=c[a[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":o[e]instanceof Array&&o[e].some(function(e){return e==t})&&n.push(o);break;default:o[e]==t&&n.push(o)}}return n.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),n}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),a=[],n=0;n<r.length;++n){var i=c[r[n]];e(i)&&a.push(i)}return a.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),a}var c={},d=[],h=[],f=[],p="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:h},widgets:{value:f},load:{value:e},init:{value:t},title:{get:a},domId:{get:n},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(e,t){var r=t,a=Config.debug,n=Config.cleanupWikifierOutput;Config.debug=!1,Config.cleanupWikifierOutput=!1;try{null==r&&(r=document.createElement("ul"));var i=document.createDocumentFragment();new Wikifier(i,Story.get(e).processText().trim());var o=[].concat(_toConsumableArray(i.querySelectorAll(".error"))).map(function(e){return e.textContent.replace(errorPrologRegExp,"")});if(o.length>0)throw new Error(o.join("; "));for(;i.hasChildNodes();){var s=i.firstChild;if(s.nodeType===Node.ELEMENT_NODE&&"A"===s.nodeName.toUpperCase()){var u=document.createElement("li");r.appendChild(u),u.appendChild(s)}else i.removeChild(s)}}finally{Config.cleanupWikifierOutput=n,Config.debug=a}return r}function t(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons"><li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li></ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];Dialog.open.apply(Dialog,r)}function r(){u(),Dialog.open.apply(Dialog,arguments)}function a(){l(),Dialog.open.apply(Dialog,arguments)}function n(){c(),Dialog.open.apply(Dialog,arguments)}function i(){d(),Dialog.open.apply(Dialog,arguments)}function o(){h(),Dialog.open.apply(Dialog,arguments)}function s(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons"><li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+'</button></li><li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li></ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one(":dialogclose",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function u(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var a=Story.get(State.history[r].title);a&&a.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one(":dialogclose",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+a.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function l(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons"><li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+'</button></li><li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li></ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){return Engine.restart()}),Dialog.close()}),!0}function c(){function e(e,t,r,a){var n=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&n.addClass(t),a?n.ariaClick(a):n.prop("disabled",!0),jQuery(document.createElement("li")).append(n)}var r=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),a=Save.ok();if(a&&r.append(function(){function e(e,t,r,a,n){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+a).addClass(e).html(r);return t&&i.addClass(t),n?"auto"===a?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return n()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(a+1)},function(){return n(a)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var a=jQuery(document.createElement("td")),n=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td")) +;jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(a),t.autosave?(n.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one(":dialogclose",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i),jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),c()}))):(n.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(a).append(n).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),h=jQuery(document.createElement("td")),f=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(d.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one(":dialogclose",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(h),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(h),f.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),c()}))):(d.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(h),h.addClass("empty"),f.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(d).append(h).append(f).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}()),a||Has.fileAPI){var n=jQuery(document.createElement("ul")).addClass("buttons").appendTo(r);return Has.fileAPI&&(n.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),n.append(e("import",null,L10n.get("savesLabelImport"),function(){return r.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one(":dialogclose",function(){return Save.import(e)}),Dialog.close()}).appendTo(r)),a&&n.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),c()}:null)),!0}return t(L10n.get("savesIncapable")),!1}function d(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,a=Util.slugify(r),n=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return n.attr("id","header-body-"+a).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+a).wiki(r),void o.attr("id","header-label-"+a).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),h=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:h=jQuery(document.createElement("button")),settings[s]?h.addClass("enabled").text(L10n.get("settingsOn")):h.text(L10n.get("settingsOff")),h.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:h=jQuery(document.createElement("select"));for(var f=0,p=t.list.length;f<p;++f)jQuery(document.createElement("option")).val(f).text(t.list[f]).appendTo(h);h.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}h.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons"><li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+'</button></li><li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li></ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function h(){try{jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(e("StoryShare"))}catch(e){return console.error(e),Alert.error("StoryShare",e.message),!1}return!0}return Object.freeze(Object.defineProperties({},{assembleLinkList:{value:e},alert:{value:t},jumpto:{value:r},restart:{value:a},saves:{value:n},settings:{value:i},share:{value:o},buildAutoload:{value:s},buildJumpto:{value:u},buildRestart:{value:l},buildSaves:{value:c},buildSettings:{value:d},buildShare:{value:h},stow:{value:function(){return UIBar.stow()}},unstow:{value:function(){return UIBar.unstow()}},setStoryElements:{value:function(){return UIBar.setStoryElements()}},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:s},buildDialogJumpto:{value:u},buildDialogRestart:{value:l},buildDialogSaves:{value:c},buildDialogSettings:{value:d},buildDialogShare:{value:h},buildLinkListFromPassage:{value:e}}))}(),UIBar=function(){function e(){o||document.getElementById("ui-bar")||(!function(){var e=L10n.get("uiBarToggle"),t=L10n.get("uiBarBackward"),r=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");jQuery(document.createDocumentFragment()).append('<div id="ui-bar"><div id="ui-bar-tray"><button id="ui-bar-toggle" tabindex="0" title="'+e+'" aria-label="'+e+'"></button><div id="ui-bar-history"><button id="history-backward" tabindex="0" title="'+t+'" aria-label="'+t+'">î ¡</button><button id="history-jumpto" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¹</button><button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button></div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core"><li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+'</a></li><li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+'</a></li><li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+'</a></li><li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li></ul></nav></div></div>").insertBefore("#store-area")}(),jQuery(document).on(":historyupdate.ui-bar",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward"))))}function t(){if(!o){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||i(),Dialog.addClickHandler("#menu-item-saves a",null,UI.buildSaves).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,UI.buildSettings).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,UI.buildRestart).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,UI.buildShare).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove()}}function r(){o||(jQuery(document).off(".ui-bar"),jQuery("#ui-bar").remove(),jQuery(document.head).find("#style-ui-bar").remove(),Config.ui.updateStoryElements=!1,o=!0)}function a(e){if(!o){var t=jQuery("#ui-bar");e&&t.addClass("no-transition"),t.addClass("stowed"),e&&setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}}function n(e){if(!o){var t=jQuery("#ui-bar");e&&t.addClass("no-transition"),t.removeClass("stowed"),e&&setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}}function i(){if(!o){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");if(null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")))try{UI.assembleLinkList("StoryMenu",e)}catch(e){console.error(e),Alert.error("StoryMenu",e.message)}}}var o=!1;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},destroy:{value:r},stow:{value:a},unstow:{value:n},setStoryElements:{value:i}}))}(),DebugBar=function(){function e(){var e=L10n.get("debugBarAddWatch"),t=L10n.get("debugBarWatchAll"),n=L10n.get("debugBarWatchNone"),o=L10n.get("debugBarWatchToggle"),d=L10n.get("debugBarViewsToggle"),h=jQuery(document.createDocumentFragment()).append('<div id="debug-bar"><div id="debug-bar-watch" aria-hidden="true" hidden="hidden"><div>'+L10n.get("debugBarNoWatches")+'</div>></div><div><button id="debug-bar-watch-toggle" tabindex="0" title="'+o+'" aria-label="'+o+'">'+L10n.get("debugBarLabelWatch")+'</button><label id="debug-bar-watch-label" for="debug-bar-watch-input">'+L10n.get("debugBarLabelAdd")+'</label><input id="debug-bar-watch-input" name="debug-bar-watch-input" type="text" list="debug-bar-watch-list" tabindex="0"><datalist id="debug-bar-watch-list" aria-hidden="true" hidden="hidden"></datalist><button id="debug-bar-watch-add" tabindex="0" title="'+e+'" aria-label="'+e+'"></button><button id="debug-bar-watch-all" tabindex="0" title="'+t+'" aria-label="'+t+'"></button><button id="debug-bar-watch-none" tabindex="0" title="'+n+'" aria-label="'+n+'"></button></div><div><button id="debug-bar-views-toggle" tabindex="0" title="'+d+'" aria-label="'+d+'">'+L10n.get("debugBarLabelViews")+'</button><label id="debug-bar-turn-label" for="debug-bar-turn-select">'+L10n.get("debugBarLabelTurn")+'</label><select id="debug-bar-turn-select" tabindex="0"></select></div></div>');g=jQuery(h.find("#debug-bar-watch").get(0)),m=jQuery(h.find("#debug-bar-watch-list").get(0)),v=jQuery(h.find("#debug-bar-turn-select").get(0));var f=jQuery(h.find("#debug-bar-watch-toggle").get(0)),p=jQuery(h.find("#debug-bar-watch-input").get(0)),y=jQuery(h.find("#debug-bar-watch-add").get(0)),b=jQuery(h.find("#debug-bar-watch-all").get(0)),w=jQuery(h.find("#debug-bar-watch-none").get(0)),k=jQuery(h.find("#debug-bar-views-toggle").get(0));h.appendTo("body"),f.ariaClick(function(){g.attr("hidden")?g.removeAttr("aria-hidden hidden"):g.attr({"aria-hidden":!0,hidden:"hidden"}),s()}),p.on(":addwatch",function(){r(this.value.trim()),this.value=""}).on("keypress",function(e){13===e.which&&(e.preventDefault(),p.trigger(":addwatch"))}),y.ariaClick(function(){return p.trigger(":addwatch")}),b.ariaClick(a),w.ariaClick(i),v.on("change",function(){Engine.goTo(Number(this.value))}),k.ariaClick(function(){DebugView.toggle(),s()}),jQuery(document).on(":historyupdate.debug-bar",c).on(":passageend.debug-bar",function(){u(),l()}).on(":enginerestart.debug-bar",function(){session.delete("debugState")})}function t(){o(),c(),u(),l()}function r(e){h.test(e)&&(p.pushUnique(e),p.sort(),u(),l(),s())}function a(){Object.keys(State.variables).map(function(e){return p.pushUnique("$"+e)}),Object.keys(State.temporary).map(function(e){return p.pushUnique("_"+e)}),p.sort(),u(),l(),s()}function n(e){p.delete(e),u(),l(),s()}function i(){for(var e=p.length-1;e>=0;--e)p.pop();u(),l(),s()}function o(){if(session.has("debugState")){var e=session.get("debugState");p.push.apply(p,_toConsumableArray(e.watchList)),e.watchEnabled?g.removeAttr("aria-hidden hidden"):g.attr({"aria-hidden":!0,hidden:"hidden"}),e.viewsEnabled?DebugView.enable():DebugView.disable()}}function s(){session.set("debugState",{watchList:p,watchEnabled:!g.attr("hidden"),viewsEnabled:DebugView.isEnabled()})}function u(){if(0===p.length)return void g.empty().append("<div>"+L10n.get("debugBarNoWatches")+"</div>");for(var e=L10n.get("debugBarDeleteWatch"),t=jQuery(document.createElement("table")),r=jQuery(document.createElement("tbody")),a=0,i=p.length;a<i;++a)!function(t,a){var i=p[t],o=i.slice(1),s="$"===i[0]?State.variables:State.temporary,u=jQuery(document.createElement("tr")),l=jQuery(document.createElement("button")),c=jQuery(document.createElement("code"));l.addClass("watch-delete").attr("data-name",i).ariaClick({one:!0,label:e},function(){return n(i)}),c.text(d(s[o])),jQuery(document.createElement("td")).append(l).appendTo(u),jQuery(document.createElement("td")).text(i).appendTo(u),jQuery(document.createElement("td")).append(c).appendTo(u),u.appendTo(r)}(a);t.append(r),g.empty().append(t)}function l(){var e=Object.keys(State.variables),t=Object.keys(State.temporary);if(0===e.length&&0===t.length)return void m.empty();var r=[].concat(_toConsumableArray(e.map(function(e){return"$"+e})),_toConsumableArray(t.map(function(e){return"_"+e}))).sort(),a=document.createDocumentFragment();r.delete(p);for(var n=0,i=r.length;n<i;++n)jQuery(document.createElement("option")).val(r[n]).appendTo(a);m.empty().append(a)}function c(){for(var e=State.size,t=State.expired.length,r=document.createDocumentFragment(),a=0;a<e;++a)jQuery(document.createElement("option")).val(a).text(t+a+1+". "+Util.escape(State.history[a].title)).appendTo(r);v.empty().prop("disabled",e<2).append(r).val(State.activeIndex)}function d(e){if(null===e)return"null";switch(void 0===e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return"NaN";if(!Number.isFinite(e))return"Infinity";case"boolean":case"symbol":case"undefined":return String(e);case"string":return JSON.stringify(e);case"function":return"Function"}var t=Util.toStringTag(e);if("Date"===t)return"Date {"+e.toLocaleString()+"}";if("RegExp"===t)return"RegExp "+e.toString();var r=[];if(e instanceof Array||e instanceof Set){for(var a=e instanceof Array?e:Array.from(e),n=0,i=a.length;n<i;++n)r.push(a.hasOwnProperty(n)?d(a[n]):"<empty>");return Object.keys(a).filter(function(e){return!f.test(e)}).forEach(function(e){return r.push(d(e)+": "+d(a[e]))}),t+"("+a.length+") ["+r.join(", ")+"]"}return e instanceof Map?(e.forEach(function(e,t){return r.push(d(t)+" → "+d(e))}),t+"("+e.size+") {"+r.join(", ")+"}"):(Object.keys(e).forEach(function(t){return r.push(d(t)+": "+d(e[t]))}),t+" {"+r.join(", ")+"}")}var h=new RegExp("^"+Patterns.variable+"$"),f=/^\d+$/,p=[],g=null,m=null,v=null;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},watch:{value:r},watchAll:{value:a},unwatch:{value:n},unwatchAll:{value:i}}))}(),LoadScreen=function(){function e(){jQuery(document).on("readystatechange.SugarCube",function(){o.size>0||("complete"===document.readyState?"loading"===jQuery(document.documentElement).attr("data-init")&&(Config.loadDelay>0?setTimeout(function(){0===o.size&&r()},Math.max(Engine.minDomActionDelay,Config.loadDelay)):r()):a())})}function t(){jQuery(document).off("readystatechange.SugarCube"),o.clear(),r()}function r(){jQuery(document.documentElement).removeAttr("data-init")}function a(){jQuery(document.documentElement).attr("data-init","loading")}function n(){return++s,o.add(s),a(),s}function i(e){if(null==e)throw new Error("LoadScreen.unlock called with a null or undefined ID");o.has(e)&&o.delete(e),0===o.size&&jQuery(document).trigger("readystatechange")}var o=new Set,s=0;return Object.freeze(Object.defineProperties({},{init:{value:e},clear:{value:t},hide:{value:r},show:{value:a},lock:{value:n},unlock:{value:i}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:24,patch:0,prerelease:null,build:8517,date:new Date("2018-03-09T13:45:21.930Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story,TempVariables=State.temporary;window.SugarCube={},jQuery(function(){try{var e=LoadScreen.lock();LoadScreen.init(),document.normalize&&document.normalize(),Story.load(),storage=SimpleStore.create(Story.domId,!0),session=SimpleStore.create(Story.domId,!1),Dialog.init(),UIBar.init(),Engine.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UIBar.start(),Config.debug&&(DebugBar.init(),DebugBar.start()),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,UI:UI,UIBar:UIBar,DebugBar:DebugBar,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version},LoadScreen.unlock(e)}catch(e){return console.error(e),LoadScreen.clear(),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} + </script> +</body> +</html> diff --git a/devNotes/twine JS b/devNotes/twine JS index fed40467405f42a3e40233bf7b797b3d8f50649c..b0385276f99985329629199635113d9326629c25 100644 --- a/devNotes/twine JS +++ b/devNotes/twine JS @@ -191,7 +191,7 @@ if (typeof SlaveStatsChecker == "undefined") { var SlaveStatsChecker = { checkForLisp: function (slave) { /* Begin mod section: toggle whether slaves lisp. */ - if (SugarCube.State && SugarCube.State.variables.disableLisping == 1) { + if (State && State.variables.disableLisping == 1) { return false; } /* End mod section: toggle whether slaves lisp. */ @@ -293,7 +293,11 @@ window.canImpreg = function(slave1, slave2) { window.isFertile = function(slave) { if (!slave) { return null; - } else if (slave.preg > 0) { /* currently pregnant */ + } + + WombInit(slave); + + if (slave.womb.length > 0 || slave.broodmother > 0) { /* currently pregnant or broodmother */ return false; } else if (slave.preg < -1) { /* sterile */ return false; @@ -704,11 +708,6 @@ window.isItemAccessible = function(string) { } }; -window.ruleApplied = function(slave, ID) { - if (!slave || !slave.currentRules) - return null; - return slave.currentRules.includes(ID); -}; window.expandFacilityAssignments = function(facilityAssignments) { var assignmentPairs = { @@ -734,139 +733,6 @@ window.expandFacilityAssignments = function(facilityAssignments) { return fullList.flatten(); }; -window.ruleSlaveSelected = function(slave, rule) { - if (!slave || !rule || !rule.selectedSlaves) - return false; - return rule.selectedSlaves.includes(slave.ID); -}; - -window.ruleSlaveExcluded = function(slave, rule) { - if (!slave || !rule || !rule.excludedSlaves) - return false; - return rule.excludedSlaves.includes(slave.ID); -}; - -window.ruleAssignmentSelected = function(slave, rule) { - if (!slave || !rule || (!rule.assignment && !rule.facility)) - return false; - var assignment = rule.assignment.concat(expandFacilityAssignments(rule.facility)); - return assignment.includes(slave.assignment); -} - -window.ruleAssignmentExcluded = function(slave, rule) { - if (!slave || !rule || (!rule.excludeAssignment && !rule.excludeFacility)) - return false; - var excludeAssignment = rule.excludeAssignment.concat(expandFacilityAssignments(rule.excludeFacility)); - return excludeAssignment.includes(slave.assignment); -} - -window.hasSurgeryRule = function(slave, rules) { - if (!slave || !rules || !slave.currentRules) - return false; - - for (var d = rules.length-1; d >= 0; d--) { - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d].autoSurgery > 0) { - return true; - } - } - } - return false; -}; - -window.hasRuleFor = function(slave, rules, what) { - if (!slave || !rules || !slave.currentRules) - return false; - - for (var d = rules.length-1; d >= 0; d--) { - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d][what] !== "no default setting") { - return true; - } - } - } - return false; -}; - -window.hasHColorRule = function(slave, rules) { - return hasRuleFor(slave, rules, "hColor"); -} - -window.hasHStyleRule = function(slave, rules) { - return hasRuleFor(slave, rules, "hStyle"); -}; - -window.hasEyeColorRule = function(slave, rules) { - return hasRuleFor(slave, rules, "eyeColor"); -}; - -window.lastPregRule = function(slave, rules) { - if (!slave || !rules) - return null; - if (!slave.currentRules) - return false; - - for (var d = rules.length-1; d >= 0; d--) { - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d].preg == -1) { - return true; - } - } - } - - return null; -}; - -window.lastSurgeryRuleFor = function(slave, rules, what) { - if (!slave || !rules || !slave.currentRules) - return null; - - for (var d = rules.length-1; d >= 0; d--) { - if (!rules[d].surgery) - return null; - - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d].surgery[what] != "no default setting") { - return rules[d]; - } - } - } - - return null; -}; - -window.lastEyeSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "eyes"); -} - -window.lastLactationSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "lactation"); -} - -window.lastProstateSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "prostate"); -} - -window.lastLipSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "lips"); -}; - -window.lastBoobSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "boobs"); -}; - -window.lastButtSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "butt"); -}; - -window.lastHairSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "hair"); -} - -window.lastBodyHairSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "bodyhair"); -} - window.milkAmount = function(slave) { var milk; var calcs; @@ -1038,56 +904,6 @@ window.nameReplace = function(name) return name; } -window.mergeRules = function(rules) { - var combinedRule = {}; - - for (var i = 0; i < rules.length; i++) { - for (var prop in rules[i]) { - // A rule overrides any preceding ones if, - // * there are no preceding ones, - // * or it sets autoBrand, - // * or it does not set autoBrand and is not "no default setting" - var applies = ( - combinedRule[prop] === undefined - || (prop === "autoBrand" && rules[i][prop]) - || (prop !== "autoBrand" && rules[i][prop] !== "no default setting") - ); - - if (applies) - { - - //Objects in JS in operations "=" pass by reference, so we need a completely new object to avoid messing up previous rules. - if ("object" == typeof rules[i][prop] && "object" != typeof combinedRule[prop]) - combinedRule[prop] = new Object(); - - //If we already have object - now we will process its properties, but object itself should be skipped. - if ("object" != typeof combinedRule[prop]) - combinedRule[prop] = rules[i][prop]; - - /*Some properties of rules now have second level properties. We need to check it, and change ones in combinedRule. (Good example - growth drugs. Breasts, butt, etc...) */ - if ( "object" == typeof rules[i][prop]) - { - for (var subprop in rules[i][prop]) - { - var subapplies = ( - combinedRule[prop][subprop] === undefined - || (rules[i][prop][subprop] !== "no default setting") - ); - - if (subapplies) - combinedRule[prop][subprop] = rules[i][prop][subprop]; - } - - } - } - - } - - } - - return combinedRule; -} - window.isVegetable = function(slave) { slave = slave || State.variables.activeSlave; if(!slave) { return false; } @@ -1111,7 +927,7 @@ window.bodyguardSuccessorEligible = function(slave) { }; window.ngUpdateGenePool = function(genePool) { - var transferredSlaveIds = (SugarCube.State.variables.slaves || []) + var transferredSlaveIds = (State.variables.slaves || []) .filter(function(s) { return s.ID >= 1200000; }) .map(function(s) { return s.ID - 1200000; }); return (genePool || []) @@ -1173,6 +989,18 @@ window.jsConsoleInfo = function(obj) /* see documentation for details /devNotes/Extended Family Mode Explained.txt */ +window.isMotherP = function isMotherP(daughter, mother) { + return daughter.mother === mother.ID +} + +window.isFatherP = function isFatherP(daughter, father) { + return daughter.father === father.ID +} + +window.isParentP = function isParentP(daughter, parent) { + return isMotherP(daughter,parent) || isFatherP(daughter,parent) +} + window.sameDad = function(slave1, slave2){ if ((slave1.father == slave2.father) && (slave1.father != 0 && slave1.father != -2)) { return true; @@ -1191,7 +1019,7 @@ window.sameMom = function(slave1, slave2){ // testtest catches the case if a mother is a father or a father a mother - thank you familyAnon, for this code window.sameTParent = function(slave1, slave2) { - if (slave1.mother == -1 && slave1.father == 1 && slave2.mother == -1 && slave2.father == -1) { + if (slave1.mother == -1 && slave1.father == -1 && slave2.mother == -1 && slave2.father == -1) { return 1; } else if (slave1.mother == slave2.father && slave1.father == slave2.mother && slave1.mother != 0 && slave1.mother != -2 && slave1.father != 0 && slave1.father != -2 && slave1.mother != slave1.father) { return 2; @@ -1227,7 +1055,9 @@ window.areTwins = function(slave1, slave2) { window.areSisters = function(slave1, slave2) { if (slave1.ID == slave2.ID) { return 0; //you are not your own sister - } else if ((slave1.father != 0 && slave1.father != -2) || (slave1.mother != 0 && slave1.mother != -2)) { + } else if (((slave1.father == 0) || (slave1.father == -2)) && ((slave1.mother == 0) || (slave1.mother == -2))) { + return 0; //not related + } else { if (sameDad(slave1, slave2) == false && sameMom(slave1, slave2) == true) { return 3; //half sisters } else if (sameDad(slave1, slave2) == true && sameMom(slave1, slave2) == false) { @@ -1245,8 +1075,6 @@ window.areSisters = function(slave1, slave2) { } else { return 0; //not related } - } else { - return 0; //not related } }; @@ -1274,6 +1102,10 @@ window.areSisters = function(c1, c2) { } */ +window.areRelated = function(slave1, slave2) { + return (slave1.father == slave2.ID || slave1.mother == slave2.ID || slave2.father == slave1.ID || slave2.mother == slave1.ID || areSisters(slave1, slave2) > 0); +} + window.totalRelatives = function(slave) { var relatives = 0; if (slave.mother > 0) { @@ -1304,7 +1136,7 @@ window.isSlaveAvailable = function(slave) { return false; } else if (slave.assignment == "be confined in the arcade") { return false; - } else if (slave.assignment == "work in the dairy" && SugarCube.State.variables.DairyRestraintsSetting >= 2) { + } else if (slave.assignment == "work in the dairy" && State.variables.DairyRestraintsSetting >= 2) { return false; } else { return true; @@ -1326,7 +1158,7 @@ if (typeof DairyRestraintsSetting == "undefined") { window.randomRelatedSlave = function(slave, filterFunction) { if(!slave || !SugarCube) { return undefined; } if(typeof filterFunction !== 'function') { filterFunction = function(s, index, array) { return true; }; } - return SugarCube.State.variables.slaves.filter(filterFunction).shuffle().find(function(s, index, array) {return areSisters(slave, s) || s.mother == slave.ID || s.father == slave.ID || slave.ID == s.mother || slave.ID == s.father; }) + return State.variables.slaves.filter(filterFunction).shuffle().find(function(s, index, array) {return areSisters(slave, s) || s.mother == slave.ID || s.father == slave.ID || slave.ID == s.mother || slave.ID == s.father; }) } */ @@ -1335,7 +1167,7 @@ window.randomRelatedSlave = function(slave, filterFunction) { if(typeof filterFunction !== 'function') { filterFunction = function(s, index, array) { return true; }; } - var arr = SugarCube.State.variables.slaves.filter(filterFunction) + var arr = State.variables.slaves.filter(filterFunction) arr.shuffle() return arr.find(function(s, index, array) { return areSisters(slave, s) @@ -1399,6 +1231,23 @@ window.totalPlayerRelatives = function(pc) { return relatives }; +window.relativeTerm = function(slave1, slave2) { + if(slave2.mother == slave1.ID || slave2.father == slave1.ID) { + return "daughter"; + } else if(slave1.mother == slave2.ID) { + return "mother"; + } else if(slave1.father == slave2.ID) { + return "father"; + } else if(areSisters(slave2, slave1) == 1) { + return "twin"; + } else if(areSisters(slave2, slave1) == 2) { + return "sister"; + } else if(areSisters(slave2, slave1) == 3) { + return "half-sister"; + } else { + return "some unknown blood connection"; + } +} /*:: pregJS [script]*/ @@ -1463,6 +1312,83 @@ window.bellyAdjective = function(slave) { } } +/* calculates and returns expected ovum count during conception*/ +window.setPregType = function(actor) { + /* IMHO rework is posssible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */ + + var ovum = 1; + var fertilityStack = 0; // adds an increasing bonus roll for stacked fertility drugs + + if(actor.broodmother < 1) { /* Broodmothers should be not processed here. Necessary now.*/ + if(typeof actor.readyOva == "number" && actor.readyOva != 0) { + ovum = actor.readyOva; /*just single override; for delayed impregnation cases */ + } else if(actor.ID == -1) { + if(actor.birthMaster > 0) { // Predisposed to twins + if(actor.fertDrugs == 1) { + ovum += jsEither([1, 1, 2, 2, 2, 2, 3, 3]); + } else { + ovum += jsEither([0, 0, 0, 1, 1, 1, 1, 1, 1, 2]); + } + if(actor.forcedFertDrugs > 0) { + ovum += jsEither([1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4]); + } + } else { + if(actor.fertDrugs == 1) { + ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3]); + } else { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); + } + if(actor.forcedFertDrugs > 0) { + ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]); + } + } + } else if(actor.pregType == 0) { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); //base chance for twins + if(actor.hormones == 2) { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2]); + fertilityStack++; + } + if(actor.hormoneBalance >= 400) { + ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3]); + fertilityStack++; + } + if(actor.diet == "fertility") { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); + fertilityStack++; + } + if(State.variables.masterSuitePregnancyFertilitySupplements == 1 && ((actor.assignment == "serve in the master suite" || actor.assignment == "be your Concubine"))) { + ovum += jsEither([0, 0, 0, 1, 1, 2, 2, 2, 3, 3]); + fertilityStack++; + fertilityStack++; + } + if(actor.drugs == "super fertility drugs") { + ovum += jsEither([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5]); + fertilityStack++; + fertilityStack++; + fertilityStack++; + fertilityStack++; + fertilityStack++; + } else if(actor.drugs == "fertility drugs") { + ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3]); + fertilityStack++; + } + if(State.variables.seeHyperPreg == 1) { + if(actor.drugs == "super fertility drugs") { + ovum += jsRandom(0, fertilityStack*2); + } else { + ovum += jsRandom(0, fertilityStack); + } + } else { + ovum += jsRandom(0, fertilityStack); + if(ovum > 12) { + ovum = jsRandom(6,12); + } + } + } + return ovum; + } +} + /*:: RA Selector JS [script]*/ window.growAdvSelector = function(slave, rule) { @@ -1776,7 +1702,7 @@ window.Job = Object.freeze({ SERVANT: 'work as a servant', SERVER: 'be a servant', STEWARD: 'be the Stewardess', CLUB: 'serve in the club', DJ: 'be the DJ', JAIL: 'be confined in the cellblock', WARDEN: 'be the Wardeness', CLINIC: 'get treatment in the clinic', NURSE: 'be the Nurse', HGTOY: 'live with your Head Girl', SCHOOL: 'learn in the schoolroom', TEACHER: 'be the Schoolteacher', SPA: 'rest in the spa', ATTEND: 'be the Attendant'}); -window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVEING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep'}); +window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVEING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep', HACKING: 'hacking'}); window.getCost = function(array) { var rulesCost = State.variables.rulesCost; @@ -2038,6 +1964,8 @@ window.getCost = function(array) { costs += 10000*State.variables.AgeEffectOnTrainerPricingPC; } else if(State.variables.personalAttention === PersonalAttention.MEDICINE) { costs += 10000*State.variables.AgeEffectOnTrainerPricingPC; + } else if(State.variables.personalAttention === PersonalAttention.HACKING) { + costs += 10000*State.variables.AgeEffectOnTrainerPricingPC; } } @@ -2210,7 +2138,7 @@ window.getSlaveCost = function(s) { cost += foodCost * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); } } - if(s.diet === 'XX' || s.diet === 'XY') { + if(s.diet === 'XX' || s.diet === 'XY' || s.diet === 'fertility') { cost += 25; } else if(s.diet === 'cleansing') { cost += 50; @@ -3637,7 +3565,6 @@ window.numberWithCommas = function(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } - window.jsRandom = function(min,max) { return Math.floor(Math.random()*(max-min+1)+min); } @@ -3657,6 +3584,17 @@ window.jsEither = function(choices) { return choices[index]; } +//This function is alternative to clone - usage needed if nested objects present. Slower but result is separate object tree, not with reference to source object. +window.deepCopy = function (o) { + var output, v, key; + output = Array.isArray(o) ? [] : {}; + for (key in o) { + v = o[key]; + output[key] = (typeof v === "object") ? deepCopy(v) : v; + } + return output; +} + /* Make everything waiting for this execute. Usage: @@ -3706,6 +3644,49 @@ Macro.add('span', { } }); +window.hashChoice = function hashChoice(obj) { + let randint = Math.floor(Math.random()*hashSum(obj)); + let ret; + Object.keys(obj).some(key => { + if (randint < obj[key]) { + ret = key; + return true; + } else { + randint -= obj[key]; + return false; + } + }); + return ret; +}; + +window.hashSum = function hashSum(obj) { + let sum = 0; + Object.keys(obj).forEach(key => { sum += obj[key]; }); + return sum; +}; + +window.arr2obj = function arr2obj(arr) { + const obj = {}; + arr.forEach(item => { obj[item] = 1; }); + return obj; +}; + +window.hashPush = function hashPush(obj, ...rest) { + rest.forEach(item => { + if (obj[item] === undefined) obj[item] = 1; + else obj[item] += 1; + }); +}; + +window.weightedArray2HashMap = function weightedArray2HashMap(arr) { + const obj = {}; + arr.forEach(item => { + if (obj[item] === undefined) obj[item] = 1; + else obj[item] += 1; + }) + return obj; +}; + /*:: EventSelectionJS [script]*/ window.generateRandomEventPoolStandard = function(eventSlave) { @@ -5220,6 +5201,16 @@ if(eventSlave.fetish != "mindbroken") { } } } + + if(eventSlave.vagina == 0) { + if(eventSlave.devotion > 50) { + if(eventSlave.trust > 20) { + if(eventSlave.speechRules != "restrictive") { + State.variables.RESSevent.push("devoted virgin"); + } + } + } + } if(eventSlave.anus == 0) { if(eventSlave.devotion > 50) { @@ -5275,7 +5266,9 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.aphrodisiacs > 1 || eventSlave.inflationType == "aphrodisiac") { if(eventSlave.speechRules == "restrictive" && eventSlave.releaseRules !== "permissive") { - State.variables.RESSevent.push("extreme aphrodisiacs"); + if(eventSlave.amp != 1) { + State.variables.RESSevent.push("extreme aphrodisiacs"); + } } } @@ -5287,10 +5280,12 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.releaseRules != "restrictive") { if(eventSlave.dick > 4) { - if(canAchieveErection(eventSlave)) { - if(eventSlave.belly < 10000) { - if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { - State.variables.RESSevent.push("slave dick huge"); + if(eventSlave.amp != 1){ + if(canAchieveErection(eventSlave)) { + if(eventSlave.belly < 10000) { + if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { + State.variables.RESSevent.push("slave dick huge"); + } } } } @@ -6424,6 +6419,16 @@ if(eventSlave.fetish != "mindbroken") { } } } + + if(eventSlave.vagina == 0) { + if(eventSlave.devotion > 50) { + if(eventSlave.trust > 20) { + if(eventSlave.speechRules != "restrictive") { + State.variables.RESSevent.push("devoted virgin"); + } + } + } + } if(eventSlave.anus == 0) { if(eventSlave.devotion > 50) { @@ -6451,7 +6456,9 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.aphrodisiacs > 1 || eventSlave.inflationType == "aphrodisiac") { if(eventSlave.speechRules == "restrictive" && eventSlave.releaseRules !== "permissive") { - State.variables.RESSevent.push("extreme aphrodisiacs"); + if(eventSlave.amp != 1) { + State.variables.RESSevent.push("extreme aphrodisiacs"); + } } } @@ -6463,10 +6470,12 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.releaseRules != "restrictive") { if(eventSlave.dick > 4) { - if(canAchieveErection(eventSlave)) { - if(eventSlave.belly < 10000) { - if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { - State.variables.RESSevent.push("slave dick huge"); + if(eventSlave.amp != 1){ + if(canAchieveErection(eventSlave)) { + if(eventSlave.belly < 10000) { + if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { + State.variables.RESSevent.push("slave dick huge"); + } } } } @@ -6817,19 +6826,1524 @@ window.slimPass = function(slave) { return slimPass; } -/*:: DTreeJS [script]*/ -/* This is the minified version of lodash, d3 and dTree */ -; -(function (window, define, exports) { -/** - * @license - * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE - */ -;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function i(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n);); -return n}function o(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function f(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function c(n,t){return!(null==n||!n.length)&&-1<d(n,t,0)}function a(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return true;return false}function l(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function s(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r]; -return n}function h(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);return r}function p(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function _(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return true;return false}function v(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,false}),e}function g(n,t,r,e){var u=n.length;for(r+=e?1:-1;e?r--:++r<u;)if(t(n[r],r,n))return r;return-1}function d(n,t,r){if(t===t)n:{ ---r;for(var e=n.length;++r<e;)if(n[r]===t){n=r;break n}n=-1}else n=g(n,b,r);return n}function y(n,t,r,e){--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function b(n){return n!==n}function x(n,t){var r=null==n?0:n.length;return r?k(n,t)/r:P}function j(n){return function(t){return null==t?F:t[n]}}function w(n){return function(t){return null==n?F:n[t]}}function m(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=false,n):t(r,n,u,i)}),r}function A(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c; -return n}function k(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==F&&(r=r===F?i:r+i)}return r}function E(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function O(n,t){return l(t,function(t){return[t,n[t]]})}function S(n){return function(t){return n(t)}}function I(n,t){return l(t,function(t){return n[t]})}function R(n,t){return n.has(t)}function z(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););return r}function W(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function B(n){ +window.sameAssignmentP = function sameAssignmentP(A, B) { + return A.assignment === B.assignment +} + +window.haveRelationP = function haveRelationP(slave, target) { + return slave.relationTarget === target.ID +} + +window.haveRelationshipP = function haveRelationshipP(slave, target) { + return slave.relationshipTarget === target.ID +} + +window.isRivalP = function isRivalP(slave, target) { + return slave.rivalryTarget === target.ID +} + +window.supremeRaceP = function supremeRaceP(slave) { + return SugarCube.State.variables.arcologies[0].FSSupremacistRace === slave.race +} + +window.inferiorRaceP = function inferiorRaceP(slave) { + return SugarCube.State.variables.arcologies[0].FSSubjugationistRace === slave.race +} + +/*:: wombJS [script]*/ + +/* +This is womb processor/simulator script. It's take care about calculation of belly sizes based on individual foetus sizes, +with full support of broodmothers implant random turning on and off possibility. Also this can be expanded to store more parents data in each individual fetus in future. +Design limitations: +- Mother can't gestate children with different speeds at same time. All speed changes apply to all fetuses. +- Sizes of inividual fetuses updated only on call of WombGetVolume - not every time as called WombProgress. This is for better overail code speed. +- For broodmothers we need actual "new ova release" code now. But it's possible to control how many children will be added each time, and so - how much children is ready to birth each time. + +Usage from sugarcube code (samples): + +WombInit($slave) - before first pregnancy, at slave creation, of as backward compatibility update. + +WombImpregnate($slave, $fetus_count, $fatherID, $initial_age) - should be added after normal impregnation code, with already calcualted fetus count. ID of father - can be used in future for prcess children from different fathers in one pregnancy. Initial age normally 1 (as .preg normally set to 1), but can be raised if needed. Also should be called at time as broodmother implant add another fetus(es), or if new fetuses added from other sources in future (transplanting maybe?) + +WombProgress($slave, $time_to_add_to_fetuses) - after code that update $slave.preg, time to add should be the same. + +$isReady = WombBirthReady($slave, $birth_ready_age) - how many children ready to be birthed if their time to be ready is $birth_ready_age (40 is for normal length pregnancy). Return int - count of ready to birth children, or 0 if no ready exists. + +$children = WombBirth($slave, $birth_ready_age) - for actual birth. Return array with fetuses objects that birthed (can be used in future) and remove them from womb array of $slave. Should be called at actual birth code in sugarcube. fetuses that not ready remained in womb (array). + +WombFlush($slave) - clean womb (array). Can be used at broodmother birthstorm or abortion situations in game. But birthstorm logicaly should use WombBirth($slave, 35) or so before - some children in this event is live capable, others is not. + +$slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volume in CC - for updating $slave.bellyPreg, or if need to update individual fetuses sizes. +*/ + +window.WombInit = function(actor) //Init womb system. +{ + + if (!Array.isArray(actor.womb)) + { + //alert("creating new womb"); //debugging + actor.womb = []; + } + +// console.log("broodmother:" + typeof actor.broodmother); + + if ( typeof actor.broodmother != "number" ) + { + actor.broodmother = 0; + actor.broodmotherFetuses = 0; + } + + if ( typeof actor.readyOva != "number" ) + { + actor.readyOva = 0; + } + + if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother == 0) //backward compatibility setup. Fully accurate for normal pregnancy only. + { + WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg); + } + else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used. + { + var i, pw = actor.preg, bCount, bLeft; + if (pw > 40) + pw = 40; //to avoid disaster. + bCount = Math.floor(actor.pregType/pw); + bLeft = actor.pregType - (bCount*pw); + if (pw > actor.pregType) + { + pw = actor.pregType // low children count broodmothers not supported here. It's emergency/backward compatibility code, and they not in game anyway. So minimum is 1 fetus in week. + actor.preg = pw; // fixing initial pregnancy week. + } + for (i=0; i<pw; i++) + { + WombImpregnate(actor, bCount, actor.pregSource, i); // setting fetuses for every week, up to 40 week at max. + } + + if (bLeft > 0) + { + WombImpregnate(actor, bLeft, actor.pregSource, i+1); // setting up leftower of fetuses. + } + } +} + +window.WombImpregnate = function(actor, fCount, fatherID, age) +{ + var i; + var tf; + for (i=0; i<fCount; i++) + { + tf = {}; //new Object + tf.age = age; //initial age + tf.fatherID = fatherID; //We can store who is father too. + tf.sex = Math.round(Math.random())+1; // 1 = male, 2 = female. For possible future usage, just as concept now. + tf.volume = 1; //Initial, to create property. Updated with actual data after WombGetVolume call. + + try { + if (actor.womb.length == 0) + { + actor.pregWeek = age; + actor.preg = age; + } + + actor.womb.push(tf); + }catch(err){ + WombInit(actor); + actor.womb.push(tf); + alert("WombImpregnate warning - " + actor.slaveName+" "+err); + } + + } + +} + +window.WombProgress = function(actor, ageToAdd) +{ + var i, ft; + ageToAdd = Math.ceil(ageToAdd*10)/10; + try { + for (i in actor.womb) + { + ft = actor.womb[i]; + ft.age += ageToAdd; + } + }catch(err){ + WombInit(actor); + alert("WombProgress warning - " + actor.slaveName+" "+err); + } +} + +window.WombBirth = function(actor, readyAge) +{ + try{ + actor.womb.sort(function (a, b){return b.age - a.age}); //For normal processing fetuses that more old should be first. Now - they are. + }catch(err){ + WombInit(actor); + alert("WombBirth warning - " + actor.slaveName+" "+err); + } + + var birthed = []; + var ready = WombBirthReady(actor, readyAge); + var i; + + for (i=0; i<ready; i++) //here can't be used "for .. in .." syntax. + { + birthed.push(actor.womb.shift()); + } + + return birthed; +} + +window.WombFlush = function(actor) +{ + actor.womb = []; +} + +window.WombBirthReady = function(actor, readyAge) +{ + + var i, ft; + var readyCnt = 0; + try { + for (i in actor.womb) + { + ft = actor.womb[i]; + if (ft.age >= readyAge) + readyCnt++; + } + }catch(err){ + WombInit(actor); + alert("WombBirthReady warning - " + actor.slaveName+" "+err); + + return 0; + } + + return readyCnt; +} + +window.WombGetVolume = function(actor) //most code from pregJS.tw with minor adaptation. +{ + var i, ft; + var gestastionWeek; + var phi = 1.618; + var targetLen; + var wombSize = 0; + + try{ + + for (i in actor.womb) + { + ft = actor.womb[i]; + gestastionWeek = ft.age; + + if (gestastionWeek <= 32) + { + targetLen = (0.00006396 * Math.pow(gestastionWeek, 4)) - (0.005501 * Math.pow(gestastionWeek, 3)) + (0.161 * Math.pow(gestastionWeek, 2)) - (0.76 * gestastionWeek) + 0.208; + } + else if (gestastionWeek <= 106) + { + targetLen = (-0.0000004675 * Math.pow(gestastionWeek, 4)) + (0.0001905 * Math.pow(gestastionWeek, 3)) - (0.029 * Math.pow(gestastionWeek, 2)) + (2.132 * gestastionWeek) - 16.575; + } + else + { + targetLen = (-0.00003266 * Math.pow(gestastionWeek,2)) + (0.076 * gestastionWeek) + 43.843; + } + + ft.volume = ((4 / 3) * (Math.PI) * (phi / 2) * (Math.pow((targetLen / 2), 3))); + + wombSize += ft.volume; + } + }catch(err){ + WombInit(actor); + alert("WombGetVolume warning - " + actor.slaveName + " " + err); + } + + if (wombSize < 0) //catch for strange cases, to avoid messing with outside code. + wombSize = 0; + + return wombSize; +} + +window.WombUpdatePregVars = function(actor) { + + actor.womb.sort(function (a, b){return b.age - a.age}); + if (actor.womb.length > 0) + { + if (actor.preg > 0 && actor.womb[0].age > 0) + { + actor.preg = actor.womb[0].age; + } + + actor.pregType = actor.womb.length; + + actor.bellyPreg = WombGetVolume(actor); + + } + +} + +window.WombMinPreg = function(actor) +{ + actor.womb.sort(function (a, b){return b.age - a.age}); + + if (actor.womb.length > 0) + return actor.womb[actor.womb.length-1].age; + else + return 0; +} + +window.WombMaxPreg = function(actor) +{ + actor.womb.sort(function (a, b){return b.age - a.age}); + if (actor.womb.length > 0) + return actor.womb[0].age; + else + return 0; +} + +window.WombNormalizePreg = function(actor) +{ +// console.log("New actor: " + actor.slaveName + " ===============" + actor.name); + WombInit(actor); + + if (actor.womb.length == 0 && actor.broodmother >= 1) // this is broodmother on hold. + { + actor.pregType = 0; + actor.pregKnown = 0; + + if (actor.preg >= 0) + actor.preg = 0.1; //to avoid legacy code conflicts - broodmother on hold can't be impregnated, but she not on normal contraceptives. So we set this for special case. + + if (actor.pregSource > 0) + actor.pregSource = 0; + + if (actor.pregWeek > 0) + actor.pregWeek = 0; + + actor.broodmotherCountDown = 0; + } + + if (actor.womb.length > 0) + { + var max = WombMaxPreg(actor); +// console.log("max: " + max); +// console.log(".preg: "+ actor.preg); + if (actor.pregWeek < 1 ) + actor.pregWeek = 1 + + if (max < actor.preg) + { + WombProgress(actor, actor.preg - max); +// console.log("progressin womb"); + } + else if ( max > actor.preg) + { + actor.preg = max; +// console.log("advancing .preg"); + } + + actor.pregType = actor.womb.length; + actor.pregSource = actor.womb[0].fatherID; + } + else if (actor.womb.length == 0 && actor.broodmother < 1) //not broodmother + { +// console.log("preg fixing"); + actor.pregType = 0; + actor.pregKnown = 0; + + if (actor.preg > 0) + actor.preg = 0; + + if (actor.pregSource > 0) + actor.pregSource = 0; + + if (actor.pregWeek > 0) // We can't properly set postpartum here, but can normalize obvious error with forgotten property. + actor.pregWeek = 0; + } + + actor.bellyPreg = WombGetVolume(actor); +} + +window.WombZeroID = function(actor, id) +{ + WombInit(actor); + var i, ft; + for (i in actor.womb) + { + ft = actor.womb[i]; + if (ft.fatherID == id) + ft.fatherID = 0; + } + + WombNormalizePreg(actor); +} + +/*:: clothingSelectionJS [script]*/ + +window.todaysOutfit = function(slave) { + + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var clothing = []; + var wardrobeAssignment = []; + var wardrobeFS = []; + var wardrobeTastes = []; + var selection; + + /*for the time being, this will use female pronouns until the system is updated.*/ + + if(slave.fetish == 'mindbroken') { + if(ArcologyZero.FSChattelReligionist > 0) { + selection = {text: "she commonly sees others wearing chattel habits and is drawn to doing so herself.", clothes: "a chattel habit"}; + } else { + clothing.push('panties'); + if(ArcologyZero.FSEgyptianRevivalist > 0) { + clothing.push('egyptian'); + } else if(ArcologyZero.FSRomanRevivalist > 0) { + clothing.push('roman'); + } else if(ArcologyZero.FSAztecRevivalist > 0) { + clothing.push('aztec'); + } else if(ArcologyZero.FSEdoRevivalist > 0) { + clothing.push('edo'); + } else if(ArcologyZero.FSArabianRevivalist > 0) { + clothing.push('arabic'); + } else if(ArcologyZero.FSChineseRevivalist > 0) { + clothing.push('chinese'); + } + if(ArcologyZero.FSGenderFundamentalist > 0) { + clothing.push('genderFund'); + } + if(ArcologyZero.FSPaternalist > 0) { + clothing.push('paternalist'); + } else if(ArcologyZero.FSDegradationist > 0) { + clothing.push('degradationist'); + } + if(ArcologyZero.FSMaturityPreferentialist > 0) { + clothing.push('mature'); + } else if(ArcologyZero.FSYouthPreferentialist > 0) { + clothing.push('youth'); + } + if(ArcologyZero.FSPhysicalIdealist > 0) { + clothing.push('physicalIdealist'); + } + if(ArcologyZero.FSPastoralist > 0) { + clothing.push('pastoralist'); + } + if(ArcologyZero.FSBodyPurist > 0) { + clothing.push('bodyPurist'); + } + clothing = jsEither(clothing); + switch(clothing) { + case 'egyptian': + selection = {text: "she commonly sees others wearing nothing but jewelry and is drawn to doing so herself.", clothes: "slutty jewelry"}; + break; + case 'roman': + selection = {text: "she commonly sees others wearing togas and is drawn to doing so herself.", clothes: "a toga"}; + break; + case 'aztec': + selection = {text: "she commonly sees others wearing huipils and is drawn to doing so herself.", clothes: "a huipil"}; + break; + case 'edo': + selection = {text: "she commonly sees others wearing kimonos and is drawn to doing so herself.", clothes: "a kimono"}; + break; + case 'arabic': + selection = {text: "she commonly sees others wearing silk and is drawn to doing so herself.", clothes: "harem gauze"}; + break; + case 'chinese': + selection = {text: "she commonly sees others wearing qipaos and is drawn to doing so herself.", clothes: "a slutty qipao"}; + break; + case 'genderFund': + if(jsRandom(1,2) == 1) { + selection = {text: "she commonly sees cheerleaders around and instinctually follows along.", clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])}; + } else { + selection = {text: "she commonly sees bunnies around and instinctually follows along.", clothes: "a bunny outfit"}; + } + break; + case 'paternalist': + selection = {text: "she commonly sees others wearing clothing and is drawn to doing so herself.", clothes: "conservative clothing"}; + break; + case 'degradationist': + selection = {text: "she commonly sees others wearing chains and is drawn to doing so herself.", clothes: jsEither(['chains', 'uncomfortable straps', 'shibari ropes'])}; + break; + case 'mature': + selection = {text: "she commonly sees others wearing suits and is drawn to doing so herself.", clothes: jsEither(['slutty business attire', 'a nice maid outfit', 'a military uniform', 'nice business attire'])}; + break; + case 'youth': + selection = {text: "she commonly sees schoolgirls around and instinctually follows along.", clothes: jsEither(['a schoolgirl outfit', 'a cheerleader outfit'])}; + break; + case 'physicalIdealist': + selection = {text: "she commonly sees naked girls around and seldom realizes they are coated in oil.", clothes: jsEither(['body oil', 'no clothing', 'no clothing'])}; + break; + case 'pastoralist': + selection = {text: "she commonly sees cowgirls around and instinctually follows along.", clothes: "Western clothing"}; + break; + case 'bodyPurist': + selection = {text: "she commonly sees others wearing tight, form-fitting clothes and is drawn to doing so herself.", clothes: jsEither(['a leotard', 'a string bikini', 'a slave gown', 'a comfortable bodysuit', 'restrictive latex', 'clubslut netting', 'a leotard', 'a halter top dress'])}; + break; + default: + selection = {text: "she chooses to put on underwear, the reasons lost to her, and moves on.", clothes: "attractive lingerie"}; + break; + } + } + } else if(slave.devotion <= 20) { + clothing.push({text: "She uses the ability to select outfits to cover up with comfortable cut-offs and a t-shirt,", clothes: "cutoffs and a t-shirt"}); + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "She uses the ability to select outfits to cover up with the most conservative clothing she can find.", clothes: "conservative clothing"}); + } + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "She uses the ability to select outfits to cover herself with a kimono.", clothes: "a kimono"}); + } + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "She uses the ability to select outfits to cover up with stretch pants and a crop-top, though she wishes it didn't have lewd comments printed on it.", clothes: "stretch pants and a crop-top"}); + } + selection = jsEither(clothing); + } else { + if(ArcologyZero.FSChattelReligionist > 0) { + clothing.push({text: "and wears a chattel habit to conform to your arcology's culture.", clothes: "a chattel habit"}); + } + /*Chooses clothes according to assignment (no exceptions)*/ + else if(slave.assignment == "be the Nurse") { + if(slave.energy > 95 || slave.need > 100) { + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to make it clear just how much this nurse needs her daily lay.", clothes: "a slutty nurse outfit"}); + } else if(slave.energy > 80) { + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to show off her body and arouse her patients.", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and wears a nice nurse outfit to look professional before her patients.", clothes: "a nice nurse outfit"}); + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to show to a little skin as she cares for her patients.", clothes: "a slutty nurse outfit"}); + } else { + wardrobeAssignment.push({text: "and wears a nice nurse outfit to look professional before her patients.", clothes: "a nice nurse outfit"}); + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to show to a little skin as she cares for her patients.", clothes: "a slutty nurse outfit"}); + } + } else if(slave.assignment == "be the Madam") { + if(slave.energy > 95 || slave.need > 100) { + wardrobeAssignment.push({text: "and wears a slutty suit to be certain nothing blocks her from getting the sex she needs.", clothes: "slutty business attire"}); + } else if(slave.energy > 80) { + wardrobeAssignment.push({text: "and wears a nice suit to show she means business.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to entice and arouse while still looking managerial.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to entice and arouse while still looking managerial.", clothes: "slutty business attire"}); + } else { + wardrobeAssignment.push({text: "and wears a nice suit to show she means business.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to entice and arouse while still looking managerial.", clothes: "slutty business attire"}); + } + } else if(slave.assignment == "be the Milkmaid") { + if(slave.energy > 95 || slave.need > 100) { + if(isItemAccessible("body oil")) { + wardrobeAssignment.push({text: "and coats herself with oil to better slip between her cows as she pleasures them.", clothes: "body oil"}); + } + wardrobeAssignment.push({text: "but goes nude to not be slowed down while moving between her charges.", clothes: "no clothing"}); + } else { + wardrobeAssignment.push({text: "and wears a sturdy maid outfit, since anything else might be damaged by her hard work with the cows.", clothes: "a nice maid outfit"}); + wardrobeAssignment.push({text: "and decides to call it casual friday and wear nothing but cutoffs and a t-shirt. Not like the cows will mind.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and opts to don a cheerleader outfit to help cheer the cows on.", clothes: "a cheerleader outfit"}); + wardrobeAssignment.push({text: "and dresses up as a succubus since she'll be drawing plenty of fluids.", clothes: "a succubus outfit"}); + wardrobeAssignment.push({text: "and slips into some spats and a tanktop since she feels a workout coming on.", clothes: "spats and a tank top"}); + if(isItemAccessible("Western clothing")) { + wardrobeAssignment.push({text: "and wears an appropriate cowgirl outift. Her bare ass walking past is sure to amuse her charges.", clothes: "Western clothing"}); + } + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and slips into some comfy stretch pants to relax as she works the cows.", clothes: "stretch pants and a crop-top"}); + } + if(State.variables.cumSlaves > 2) { + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to help keep her charges hard.", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and wears nothing but sexy lingerie to help keep her charges hard.", clothes: "attractive lingerie"}); + wardrobeAssignment.push({text: "and wears the skimpiest bikini on hand to help keep her charges hard.", clothes: "a string bikini"}); + if(isItemAccessible("body oil")) { + wardrobeAssignment.push({text: "and coats herself in oil for her charges to savor.", clothes: "body oil"}); + } + } + } + } else if(slave.assignment == "be your Head Girl") { + wardrobeAssignment.push({text: "and wears a military uniform to give her that extra touch of authority.", clothes: "a military uniform"}); + wardrobeAssignment.push({text: "and wears a handsome suit to give her that extra touch of authority.", clothes: "nice business attire"}); + if(canPenetrate(slave)){ + wardrobeAssignment.push({text: "and wears a slutty suit to make it perfectly clear that her dick is her main tool in her job.", clothes: "slutty business attire"}); + } + } else if(slave.assignment == "be the Schoolteacher") { + wardrobeAssignment.push({text: "and wears a handsome suit to give her that teacherly authority.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to give her an air of authority will keeping all eyes focused on her.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and wears a schoolgirl outfit to help keep her charges focused on her.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and dresses up as a succubus to give her sex lessons an extra kick.", clothes: "a succubus outfit"}); + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "and wears conservative clothes to not detract from this week's lesson.", clothes: "conservative clothing"}); + } + if(isItemAccessible("a toga")) { + wardrobeAssignment.push({text: "and wraps herself in a toga to model herself after the philosophers of yore.", clothes: "a toga"}); + } + if(isItemAccessible("a maternity dress") && slave.belly >= 10000) { + wardrobeAssignment.push({text: "and settles for a comfortable maternity dress to support her middle while she lectures in front of the class all week.", clothes: "a maternity dress"}); + } + } else if(slave.assignment == "be the Wardeness") { + wardrobeAssignment.push({text: "and dons battledress, the better to intimidate the prisoners.", clothes: "battledress"}); + wardrobeAssignment.push({text: "and slips into a scalemail bikini, the better to intimidate the prisoners.", clothes: "a scalemail bikini"}); + wardrobeAssignment.push({text: "and dons a scandalous habit to make it perfectly clear that crossing this nun will result in sexual punishment.", clothes: "a fallen nun's habit"}); + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and decides to take it easy by slipping into some stretch pants. They come off just as quickly as they come on, just in case.", clothes: "stretch pants and a crop-top"}); + } + } else if(slave.assignment == "be the Attendant") { + wardrobeAssignment.push({text: "and wears a string bikini, since it's all she can wear that won't be ruined by all the moisture in the spa.", clothes: "a string bikini"}); + wardrobeAssignment.push({text: "but decides to go nude, since she'll be spending so much time in the water.", clothes: "no clothing"}); + } else if(slave.assignment == "rest") { + wardrobeAssignment.push({text: "and wears a comfortable t-shirt and cutoffs to relax.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and slips into some attractive lingerie to enjoy herself as she unwinds.", clothes: "attractive lingerie"}); + wardrobeAssignment.push({text: "but decides that clothing takes too much work and would rather sleep nude.", clothes: "no clothing"}); + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and slips into some comfy stretch pants to relax.", clothes: "stretch pants and a crop-top"}); + } + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { + wardrobeAssignment.push({text: "and slips into some attractive lingerie to enjoy herself as she unwinds.", clothes: "attractive lingerie for a pregnant woman"}); + } + if(slave.fetish == "submissive") { + wardrobeAssignment.push({text: "and decides the best way to relax is tied up nice and tight.", clothes: "shibari ropes"}); + } + } else if(slave.assignment == "get milked" || slave.assignment == "work in the dairy") { + wardrobeAssignment.push({text: "and wears sturdy lingerie to offer the best support to her sore, milk-filled udders.", clothes: "attractive lingerie"}); + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { + wardrobeAssignment.push({text: "and wears lingerie designed for milky mothers.", clothes: "attractive lingerie for a pregnant woman"}); + } + if(isItemAccessible("a maternity dress") && slave.belly >= 10000) { + wardrobeAssignment.push({text: "and chooses a maternity dress since it is easy to free her breasts from.", clothes: "a maternity dress"}); + } + wardrobeAssignment.push({text: "and wears a string bikini for easy access to her udders.", clothes: "a string bikini"}); + if(slave.lactation > 1) { + wardrobeAssignment.push({text: "but goes nude. There's no time for clothing, her udders need to be drained now!", clothes: "no clothing"}); + } + wardrobeAssignment.push({text: "and dons a slutty outfit. If her breasts are going to hang out, might as well wear something to complement them.", clothes: "a slutty outfit"}); + } else if(slave.assignment == "guard you") { + wardrobeAssignment.push({text: "and wears a bodysuit to show off her curves without hindering her deadliness.", clothes: "a comfortable bodysuit"}); + wardrobeAssignment.push({text: "and wears a military uniform to look the part of the honor guard.", clothes: "a military uniform"}); + wardrobeAssignment.push({text: "and wears a nice suit to make it clear you mean business.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a scalemail bikini to make herself look fierce.", clothes: "a scalemail bikini"}); + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "and wears a nice kimono to add an air of elegance to your presence.", clothes: "a kimono"}); + } + } else { + /*Chooses clothes according to assignment (exceptions allowed)*/ + if(slave.assignment == "recruit girls") { + wardrobeAssignment.push({text: "and wears a flattering mini dress to appear sexy and carefree before those desperately seeking a better life.", clothes: "a mini dress"}); + wardrobeAssignment.push({text: "and wears a cutoffs and a t-shirt to appear sexy and carefree before those desperately seeking a better life.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and wears a nice suit to appear trustworthy before those desperately seeking a better life.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a schoolgirl outfit to appear sexy and carefree before those desperately seeking a better life.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and wears an opulent gown to showcase your wealth before those desperately seeking a better life.", clothes: "a ball gown"}); + wardrobeAssignment.push({text: "and dresses as a succubus to attempt to lure any potential catches.", clothes: "a succubus outfit"}); + if(isItemAccessible("harem gauze")) { + wardrobeAssignment.push({text: "and dons her finest silks to showcase the luxuries waiting would-be slaves.", clothes: "harem gauze"}); + } + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and wears comfortable stretch pants to and crop-top to appear carefree before those desperately seeking a better life.", clothes: "stretch pants and a crop-top"}); + } + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "and wears normal clothing to suggest to those desperately seeking a better life that they can find it here with you.", clothes: "conservative clothing"}); + } + } else if(slave.assignment == "be the DJ") { + wardrobeAssignment.push({text: "and wears clubslut netting to look like the perfect easy club girl.", clothes: "clubslut netting"}); + wardrobeAssignment.push({text: "and wears cutoffs and a t-shirt to look like the perfect easy club girl.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and wears the slutty outfit she can find to look like the perfect easy club girl.", clothes: "a slutty outfit"}); + wardrobeAssignment.push({text: "and wears nothing but slutty jewelry since she loves the way it jingles to her moves.", clothes: "slutty jewelry"}); + wardrobeAssignment.push({text: "and wears a skin tight bodysuit so nothing gets in the way of her moves.", clothes: "a comfortable bodysuit"}); + if(slave.boobs > 1000) { + wardrobeAssignment.push({text: "but decides to go naked and let her girls bounce free as she dances.", clothes: "no clothing"}); + } + if(isItemAccessible("harem gauze")) { + wardrobeAssignment.push({text: "and wears the finest available silks to give her moves a sensual grace.", clothes: "harem gauze"}); + } + } else if(slave.assignment == "be your Concubine") { + wardrobeAssignment.push({text: "and goes naked, since it's her honored role to be the chief object of your desire.", clothes: "no clothing"}); + wardrobeAssignment.push({text: "and dresses as a slutty nurse as your genitals are always in need of her special treatment.", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and dresses as a schoolgirl in the hopes that you teach her how to be a woman.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and dresses as a cheerleader so she may cheer you on as you blow her mind.", clothes: "a cheerleader outfit"}); + if(player.dick == 1) { + wardrobeAssignment.push({text: "and dresses as a slutty maid as you always come home with a stiff package that needs a thorough polishing.", clothes: "a slutty maid outfit"}); + } + wardrobeAssignment.push({text: "and, since you personally see that she never goes hungry, she dresses like the sex demoness she is.", clothes: "a succubus outfit"}); + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 10000 && slave.pregSource == -1) { + wardrobeAssignment.push({text: "and chooses attractive lingerie to showcase the body you've given her in the hopes that you ravish her.", clothes: "attractive lingerie for a pregnant woman"}); + } + if(slave.toyHole == "dick" && canPenetrate(slave)) { + wardrobeAssignment.push({text: "and slips into a scalemail bikini so she can act the role of your conqueror as she bends you over.", clothes: "a scalemail bikini"}); + } + } else if(slave.assignment == "be a subordinate slave") { + wardrobeAssignment.push({text: "but gives up and goes naked after the other slaves constantly tear whatever she's wearing off her.", clothes: "no clothing"}); + if(isItemAccessible("Western clothing")) { + wardrobeAssignment.push({text: "and chooses a pair of crotchless chaps so your other slaves don't have to waste time undressing her.", clothes: "Western clothing"}); + } + if(slave.fetish == "submissive") { + wardrobeAssignment.push({text: "and chooses to slip on a pair of spats and a tanktop in the hopes that she gets to be a violated schoolgirl.", clothes: "spats and a tank top"}); + wardrobeAssignment.push({text: "and chooses to slip on a schoolgirl outfit in the hope that she gets held down and raped.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and chooses to wear the sluttiest outfit available to make it clear what she wants done to her.", clothes: "a slutty outfit"}); + } + } else if(slave.assignment == "work a glory hole") { + wardrobeAssignment.push({text: "but doesn't bother wearing anything, since no one can see her clothing when she's immured inside a glory hole.", clothes: "no clothing"}); + } else if(slave.assignment == "take classes" || slave.assignment == "learn in the schoolroom") { + wardrobeAssignment.push({text: "and wears a schoolgirl outfit, since it seems most appropriate.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and wears a cheerleader outfit, since she might as well be one of the popular girls.", clothes: "a cheerleader outfit"}); + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "and wears normal clothing to not distract from her lessons.", clothes: "conservative clothing"}); + } + } else if((slave.assignment == "whore") || (slave.assignment == "work in the brothel")) { + if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { + wardrobeAssignment.push({text: "and wears pretty lingerie to show off her merchandise and accentuate her pregnancy while still looking a little classy.", clothes: "attractive lingerie for a pregnant woman"}); + } + wardrobeAssignment.push({text: "and wears pretty lingerie to show off her merchandise and still look a little classy.", clothes: "attractive lingerie"}); + if(isItemAccessible("harem gauze")) { + wardrobeAssignment.push({text: "and dresses herself with harem gauze to add an exotic charm to her display.", clothes: "harem gauze"}); + } + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "and wraps herself in a kimono to add some elegance to her display.", clothes: "a kimono"}); + } + wardrobeAssignment.push({text: "and adorns herself in fine dress to show off how much of a high class whore she is.", clothes: "a slave gown"}); + wardrobeAssignment.push({text: "and dresses herself in a slutty suit to show she's in it for the ¤.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and wears a flattering mini dress to really strut her stuff.", clothes: "a mini dress"}); + } else if(slave.assignment == "serve the public" || slave.assignment == "serve in the club") { + wardrobeAssignment.push({text: "and wears string lingerie to look fun and fuckable.", clothes: "a string bikini"}); + wardrobeAssignment.push({text: "and throws together the sluttiest outfit since if you're going to slut you might as well go all out.", clothes: "a slutty outfit"}); + wardrobeAssignment.push({text: "and tosses on a slutty suit that screams she needs a good fuck after a long day.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and dresses up as a slutty nurse. She knows just how to fix penile swelling", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and wears a cheerleader outfit to look energetic and fuckable.", clothes: "a cheerleader outfit"}); + if(isItemAccessible("a bunny outfit")) { + wardrobeAssignment.push({text: "and slips into a teddy to add some class to her post.", clothes: "a bunny outfit"}); + } + wardrobeAssignment.push({text: "and dresses up as a succubus to clearly advertise her promiscuity.", clothes: "a succubus outfit"}); + if(slave.bellyPreg >= 10000) { + wardrobeAssignment.push({text: "and struggles into a schoolgirl outfit. Her gravid belly just screams that she is a slutty little student who cares more for dick than lessons.", clothes: "a succubus outfit"}); + } + } else if(slave.assignment == "be a servant" || slave.assignment == "work as a servant") { + if(slave.energy > 95 || slave.need > 100) { + wardrobeAssignment.push({text: "and wears a skimpy maid outfit hoping that someone sneaks up behind her as she works and fulfills her desires.", clothes: "a slutty maid outfit"}); + } else if(slave.energy > 80) { + wardrobeAssignment.push({text: "and wears a skimpy maid outfit to tempt anyone watching her work.", clothes: "a slutty maid outfit"}); + wardrobeAssignment.push({text: "and wears a sturdy maid outfit, since anything else might be damaged by her hard work around the penthouse.", clothes: "a nice maid outfit"}); + wardrobeAssignment.push({text: "and wears a skimpy maid outfit to tempt anyone watching her work.", clothes: "a slutty maid outfit"}); + } else { + wardrobeAssignment.push({text: "and wears a sturdy maid outfit, since anything else might be damaged by her hard work around the penthouse.", clothes: "a nice maid outfit"}); + wardrobeAssignment.push({text: "and wears a skimpy maid outfit to tempt anyone watching her work.", clothes: "a slutty maid outfit"}); + } + } + + /* Chooses clothes according to FS*/ + if(ArcologyZero.FSEgyptianRevivalist > 0) { + wardrobeFS.push({text: "and complements it with golden bangles, since no clothing is necessary for a sex slave in your warm and sunny arcology.", clothes: "slutty jewelry"}); + } else if(ArcologyZero.FSRomanRevivalist > 0) { + wardrobeFS.push({text: "and wears a toga to take part in your Roman revivalism.", clothes: "a toga"}); + } else if(ArcologyZero.FSEdoRevivalist > 0) { + wardrobeFS.push({text: "and wears a kimono, overjoyed that such lovely clothing is now appropriate.", clothes: "a kimono"}); + } else if(ArcologyZero.FSArabianRevivalist > 0) { + wardrobeFS.push({text: "and wears a harem outfit to look like a slave girl fit for a Sultan.", clothes: "harem gauze"}); + } else if(ArcologyZero.FSChineseRevivalist > 0) { + wardrobeFS.push({text: "and wears a brief qipao to show off and look Chinese at the same time.", clothes: "a slutty qipao"}); + } else if(ArcologyZero.FSAztecRevivalist > 0) { + wardrobeFS.push({text: "and drapes a huipil over herself to fit in with your Aztec revivalism.", clothes: "a huipil"}); + } + if(ArcologyZero.FSGenderFundamentalist > 0) { + wardrobeFS.push({text: "and wears a cheerleader outfit to look like a hot slut.", clothes: "a cheerleader outfit"}); + wardrobeFS.push({text: "and wears a bunny outfit to look like a slut from the glory days.", clothes: "a bunny outfit"}); + if(slave.bellyPreg >= 5000) { + wardrobeFS.push({text: "but decides to wear nothing at all; she's already pregnant, so she just needs to be barefoot and naked to complete her look.", clothes: "no clothing"}); + } + } else if(ArcologyZero.FSGenderRadicalist > 0) { + wardrobeFS.push({text: "and eagerly slips into a skimpy maid outfit so she can take advantage of its short skirt and her lack of underwear", clothes: "a slutty maid outfit"}); + wardrobeFS.push({text: "and wears a cheerleader outfit that clearly shows off her ass.", clothes: "a cheerleader outfit"}); + wardrobeFS.push({text: "and settles for some sexy succubutt.", clothes: "a succubus outfit"}); + } + if(ArcologyZero.FSPaternalist > 0) { + wardrobeFS.push({text: "and wears conservative clothing, as permitted by your paternalism.", clothes: "conservative clothing"}); + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and wears the most comfortable stretch pants she can find.", clothes: "stretch pants and a crop-top"}); + } + } else if(ArcologyZero.FSDegradationist > 0) { + wardrobeFS.push({text: "and wears chains, to degrade herself as required by your societal goals.", clothes: "chains"}); + } + if(ArcologyZero.FSMaturityPreferentialist > 0) { + if(slave.visualAge >= 30) { + wardrobeFS.push({text: "and wears a slutty suit to look like the ideal horny older woman.", clothes: "slutty business attire"}); + } else { + wardrobeFS.push({text: "and wears a formal suit to look more mature.", clothes: "nice business attire"}); + } + } else if(ArcologyZero.FSYouthPreferentialist > 0) { + wardrobeFS.push({text: "and wears a schoolgirl outfit to look younger.", clothes: "a schoolgirl outfit"}); + wardrobeFS.push({text: "and wears a cheerleader outfit to look younger and more energetic.", clothes: "a cheerleader outfit"}); + wardrobeFS.push({text: "and wears spats and a tank top to look younger and more energetic.", clothes: "spats and a tank top"}); + } + if(ArcologyZero.FSPhysicalIdealist > 0) { + wardrobeFS.push({text: "and coats herself in body oil to show off how she's part of your physical idealism.", clothes: "body oil"}); + wardrobeFS.push({text: "and slips into some spats for her next workout.", clothes: "spats and a tank top"}); + } else if(ArcologyZero.FSHedonisticDecadence > 0) { + wardrobeFS.push({text: "and throws on a very casual getup.", clothes: "stretch pants and a crop-top"}); + wardrobeFS.push({text: "but decides against putting forth the effort and goes nude.", clothes: "no clothing"}); + } + if(ArcologyZero.FSPastoralist > 0) { + wardrobeFS.push({text: "and wears Western clothing, since she thinks it fits with pastoralism.", clothes: "Western clothing"}); + if(slave.lactation > 0) { + wardrobeFS.push({text: "and dresses up as a slutty wet nurse.", clothes: "a slutty nurse outfit"}); + } + wardrobeFS.push({text: "but decides to let her breasts be free. Clothes will just get in the way.", clothes: "no clothing"}); + } + if(ArcologyZero.FSBodyPurist > 0) { + wardrobeFS.push({text: "and wears a leotard to show off the purity of her body.", clothes: "a leotard"}); + wardrobeFS.push({text: "but decides her body is too nice to hide with clothing.", clothes: "no clothing"}); + } else if(ArcologyZero.FSTransormationFetishest > 0) { + if(isItemAccessible("body oil")) { + wardrobeAssignment.push({text: "and coats her assets in body oil to give them some extra shine.", clothes: "body oil"}); + } + wardrobeFS.push({text: "and decides squeezing into a latex suit will only complement her unnatural appearance.", clothes: "restrictive latex"}); + } + if(ArcologyZero.FSAssetExpansioninst > 0) { + wardrobeFS.push({text: "and decides to dress up like a young man's wet dream.", clothes: "a succubus outfit"}); + wardrobeFS.push({text: "and decides to wear a skimpy bikini to make her assets look even larger.", clothes: "a string bikini"}); + wardrobeFS.push({text: "and decides to throw together a slutty outfit that highlight her assets.", clothes: "a slutty outfit"}); + } else if(ArcologyZero.FSSlimnessEnthusiast > 0) { + if(slave.boobs < 300) { + wardrobeFS.push({text: "and wears s string bikini to show off just how flat she is.", clothes: "a string bikini"}); + } + if(slave.boobs < 600 && slave.butt < 3) { + wardrobeFS.push({text: "and wears a leotard to show off her lithe body.", clothes: "a leotard"}); + wardrobeFS.push({text: "and wears a form fitting bodysuit to show off her lithe figure.", clothes: "a comfortable bodysuit"}); + wardrobeFS.push({text: "and wears spats to hug her tight butt.", clothes: "spats and a tank top"}); + } else { + wardrobeFS.push({text: "and squeezes into a form fitting bodysuit in the hopes that it squishes down her assets.", clothes: "restrictive latex"}); + } + } + + /*Chooses clothes according to fetishes, quirks, etc.*/ + if(slave.attrXY > 70) { + if(slave.attrKnown == 1) { + wardrobeTastes.push({text: "and wears a schoolgirl outfit to show off a some T&A to attract boys.", clothes: "a schoolgirl outfit"}); + wardrobeTastes.push({text: "and wears nothing but pretty lingerie to attract boys.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and selects a slutty outfit that's sure to have men drooling.", clothes: "a slutty outfit"}); + if(slave.butt > 3){ + wardrobeTastes.push({text: "and slips on some cuttoffs that are sure to have men checking out her ass.", clothes: "cutoffs and a t-shirt"}); + } + if(isItemAccessible("a bunny outfit")) { + wardrobeAssignment.push({text: "and slips into a bunny outfit that she knows will have men lining up.", clothes: "a bunny outfit"}); + } + if(slave.boobs > 800) { + wardrobeTastes.push({text: "and dresses up as a busty succubus that pulls eyes the her chest and leaves pants feeling tight.", clothes: "a succubus outfit"}); + } + } else { + wardrobeTastes.push({text: "and selects a schoolgirl outfit that shows off some T&A.", clothes: "a schoolgirl outfit"}); + wardrobeTastes.push({text: "and wears pretty lingerie that shows off her body.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and selects a slutty outfit that's sure to draw attention.", clothes: "a slutty outfit"}); + if(slave.butt > 3){ + wardrobeTastes.push({text: "and slips on some cuttoffs that shows off her ass.", clothes: "cutoffs and a t-shirt"}); + } + if(isItemAccessible("a bunny outfit")) { + wardrobeAssignment.push({text: "and slips into a bunny outfit that hugs her curves.", clothes: "a bunny outfit"}); + } + if(slave.boobs > 800) { + wardrobeTastes.push({text: "and dresses up as a busty succubus that's sure to draw eyes.", clothes: "a succubus outfit"}); + } + } + } + if(slave.attrXX > 70) { + if(slave.attrKnown == 1) { + wardrobeTastes.push({text: "and wears a fashionable gown, since girls appreciate nice clothes.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears nothing but pretty lingerie to give the girls a show.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and wears a nice suit, since girls appreciate nice clothes.", clothes: "nice business attire"}); + } else { + wardrobeTastes.push({text: "and wears a fashionable gown.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears pretty lingerie that shows off her body.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and wears a nice suit, the reasons not entirely clear to you.", clothes: "nice business attire"}); + } + } + + /* need */ + if(slave.need > 90) { + wardrobeTastes.push({text: "but goes naked. She needs sex now and clothing will only get in the way.", clothes: "no clothing"}); + wardrobeTastes.push({text: "and throws on a slutty suit. She hopes that it gets the point across that she needs sex now.", clothes: "slutty business attire"}); + wardrobeTastes.push({text: "and dons a slutty nurse outfit. She's been infected and the only cure is a strong dicking.", clothes: "a slutty nurse outfit"}); + wardrobeTastes.push({text: "and dresses up as a slutty maid. Maybe if she does her job poorly enough, someone will bend her over and fuck some sense into her.", clothes: "a slutty maid outfit"}); + wardrobeTastes.push({text: "and dresses up as a succubus in the hopes it screams that she needs sex now.", clothes: "a succubus outfit"}); + } + + /* quirks n flaws */ + if(slave.behavioralQuirk == "sinful") { + wardrobeTastes.push({text: "and dresses up like a succubus because it makes $object feel naughty.", clothes: "a succubus outfit"}); + } else if(slave.behavioralQuirk == "fitness") { + wardrobeTastes.push({text: "and wears spats and a tank top to give herself a sporty look.", clothes: "spats and a tank top"}); + } + + /* age stuff */ + if(slave.actualAge < 10) { + wardrobeTastes.push({text: "and puts on a pretty dress so she can be a princess.", clothes: "a ball gown"}); + wardrobeTastes.push({text: "and dresses up like a cheerleader since she thinks it looks cute.", clothes: "a cheerleader outfit"}); + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "and wraps herself in a kimono, since it feels so good on her skin.", clothes: "a kimono"}); + } + } + + /* fetishes */ + if(slave.fetishKnown == 1) { + if(slave.fetish == "submissive") { + wardrobeTastes.push({text: "and wears restrictive latex to encourage others to dominate her.", clothes: "restrictive latex"}); + wardrobeTastes.push({text: "and wears shibari ropes to encourage others to dominate her.", clothes: "shibari ropes"}); + } else if(slave.fetish == "dom") { + wardrobeTastes.push({text: "and wears a handsome suit, since she likes other slaves to look up to her.", clothes: "nice business attire"}); + wardrobeTastes.push({text: "and wears a full body latex catsuit to look the part of the whip cracking domme.", clothes: "a latex catsuit"}); + } else if(slave.fetish == "masochist") { + wardrobeTastes.push({text: "and wears painfully restrictive bondage gear, since she likes the torment.", clothes: "uncomfortable straps"}); + if(isItemAccessible("chains")) { + wardrobeAssignment.push({text: "and wears painfully tight chains, since she likes the torment.", clothes: "chains"}); + } + } else if(slave.fetish == "sadist") { + wardrobeTastes.push({text: "and wears an elegant gown, since she thinks it makes her look the part of the femme fatale.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears a scalemail bikini, since she thinks it makes her look fierce.", clothes: "a scalemail bikini"}); + } else if(slave.fetish == "cumslut") { + wardrobeTastes.push({text: "and wears cut-offs and a t-shirt, because the fun yet relatively conservative outfit seems to encourage others to ask her for blowjobs.", clothes: "cutoffs and a t-shirt"}); + } else if(slave.fetish == "humiliation") { + wardrobeTastes.push({text: "and wears leather straps with rings over her private parts because she enjoys the embarrassment such a humiliating outfit causes her.", clothes: "uncomfortable straps"}); + } else if(slave.fetish == "buttslut") { + wardrobeTastes.push({text: "and wears nothing other than slutty bangles, because she likes to catch the eye without putting anything between cocks and her rear end.", clothes: "slutty jewelry"}); + } else if(slave.fetish == "pregnancy") { + wardrobeTastes.push({text: "and wears a short maid dress, because she wants to look motherly and fuckable at the same time.", clothes: "a slutty maid outfit"}); + if(isItemAccessible("a maternity dress") && canGetPregnant(slave)) { + wardrobeAssignment.push({text: "and wears a maternity dress in the hope someone fills out its middle.", clothes: "a maternity dress"}); + } + } else if(slave.fetish == "boobs") { + wardrobeAssignment.push({text: "and wears a cheerleader outfit, since she loves the way it hugs her tits as she moves.", clothes: "a cheerleader outfit"}); + } + } else { + if(slave.fetish == "submissive") { + wardrobeTastes.push({text: "and strangely opts for restrictive latex.", clothes: "restrictive latex"}); + wardrobeTastes.push({text: "and strangely opts for shibari ropes.", clothes: "shibari ropes"}); + } else if(slave.fetish == "dom") { + wardrobeTastes.push({text: "and wears a handsome suit; she seems to think highly of herself in it.", clothes: "nice business attire"}); + wardrobeTastes.push({text: "and wears a full body latex catsuit; there is a strange look on her face as she wears it.", clothes: "a latex catsuit"}); + } else if(slave.fetish == "masochist") { + wardrobeTastes.push({text: "and strangely opts for painfully restrictive bondage gear.", clothes: "uncomfortable straps"}); + if(isItemAccessible("chains")) { + wardrobeAssignment.push({text: "and strangely opts for painfully tight chains.", clothes: "chains"}); + } + } else if(slave.fetish == "sadist") { + wardrobeTastes.push({text: "and wears an elegant gown for some reason.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears a scalemail bikini; an odd choice.", clothes: "a scalemail bikini"}); + } else if(slave.fetish == "cumslut") { + wardrobeTastes.push({text: "and wears cut-offs and a t-shirt; she can't stop licking her lips.", clothes: "cutoffs and a t-shirt"}); + } else if(slave.fetish == "humiliation") { + wardrobeTastes.push({text: "and strangely opts for leather straps with rings over her private parts.", clothes: "uncomfortable straps"}); + } else if(slave.fetish == "buttslut") { + wardrobeTastes.push({text: "and wears nothing other than slutty bangles, an odd choice; her ass is completely exposed.", clothes: "slutty jewelry"}); + } else if(slave.fetish == "pregnancy") { + wardrobeTastes.push({text: "and wears a short maid dress; you frequently notice her observing her stomach.", clothes: "a slutty maid outfit"}); + if(isItemAccessible("a maternity dress") && canGetPregnant(slave)) { + wardrobeAssignment.push({text: "and wears a maternity dress even though she isn't pregnant.", clothes: "a maternity dress"}); + } + } else if(slave.fetish == "boobs") { + wardrobeAssignment.push({text: "and wears a cheerleader outfit; she seems to enjoy jiggling her breasts in it.", clothes: "a cheerleader outfit"}); + } + } + + /* energy */ + if(slave.energy > 95) { + wardrobeTastes.push({text: "but goes nude, since as a nympho she gets plenty of attention anyway, and considers clothes an unnecessary hindrance.", clothes: "no clothing"}); + } + + /* pregnancy */ + if(slave.belly >= 5000) { + wardrobeTastes.push({text: "and wears pretty lingerie to show off her merchandise while giving her protruding belly plenty of room to hang free.", clothes: "attractive lingerie"}); + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.energy > 70) { + wardrobeTastes.push({text: "and wears pretty lingerie to show off her merchandise and accentuate her pregnancy while giving it plenty of room to hang free.", clothes: "attractive lingerie for a pregnant woman"}); + } else if(isItemAccessible("a maternity dress")) { + wardrobeTastes.push({text: "and wears a conservative dress with plenty of give for her belly to stretch it.", clothes: "a maternity dress"}); + } + wardrobeTastes.push({text: "and wears string lingerie to look fun and fuckable while giving her protruding belly plenty of room to hang free.", clothes: "a string bikini"}); + } else { + wardrobeTastes.push({text: "and wears string lingerie to show off her body.", clothes: "a string bikini"}); + } + } + /*Separated in three categories in case you want to, say, increase the probability of choosing _wardrobeAssignment to look more professional*/ + if(wardrobeAssignment.length > 0) { + for (var i = 0; i < wardrobeAssignment.length; i++) { + clothing.push(wardrobeAssignment[i]); + } + } + if(wardrobeFS.length > 0) { + for (var i = 0; i < wardrobeFS.length; i++) { + clothing.push(wardrobeFS[i]); + } + } + if(wardrobeTastes.length > 0) { + for (var i = 0; i < wardrobeTastes.length; i++) { + clothing.push(wardrobeTastes[i]); + } + } + selection = jsEither(clothing); + } + + return selection; +} + +window.todaysShoes = function(slave) { + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var shoes = []; + + if(slave.fetish == 'mindbroken') { + if(slave.amp != 1 && slave.heels == 1) { + shoes.push({text: "She finds she can inexplicably walk if she wears heels; a daily lesson for her, as she forgets shortly after leaving.", shoes: jsEither(["heels", "extreme heels", "boots"])}); + } + shoes.push({text: "She vaguely remembers putting things on her feet, so she does.", shoes: jsEither(["heels", "extreme heels", "boots", "flats"])}); + shoes.push({text: "She entered without shoes, and will leave the same.", shoes: "none"}); + } else if(slave.devotion <= 20) { + if(slave.heels == 0) { + shoes.push({text: "and wears comfortable flats,", shoes: "flats"}); + } else { + shoes.push({text: "and angrily wears the heels she needs to walk,", shoes: "heels"}); + } + } else { + if(slave.fetishKnown == 1 && slave.fetish == "dom") { + shoes.push({text: "She wears boots to look like a proper dominant.", shoes: "boots"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "sadist") { + shoes.push({text: "She wears boots, since she thinks they make her look dangerous.", shoes: "boots"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "masochist") { + shoes.push({text: "She wears painfully tall heels, since she enjoys the twinge of pain with each step.", shoes: "extreme heels"}); + } else if(slave.heels == 1) { + shoes.push({text: "She wears the heels she needs to walk.", shoes: "heels"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "pregnancy" && slave.bellyPreg >= 500) { + shoes.push({text: "She goes barefoot to complement her pregnancy.", shoes: "none"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "none") { + shoes.push({text: "She wears comfortable flats, since she doesn't have a fetish to show off.", shoes: "flats"}); + } else if(slave.actualAge < 13){ + shoes.push({text: "She puts on boots so she can stomp around.", shoes: "boots"}); + shoes.push({text: "She playfully puts on heels to be like all the other girls.", shoes: "heels"}); + shoes.push({text: "She wears flats as they are comfortable and easy to take on and off.", shoes: "flats"}); + shoes.push({text: "Going barefoot is fun, so no shoes for her.", shoes: "none"}); + } else { + shoes.push({text: "She wears heels to strut her stuff.", shoes: "heels"}); + shoes.push({text: "She wears comfortable flats to take it easy.", shoes: "flats"}); + shoes.push({text: "She goes barefoot to show off her toes.", shoes: "none"}); + } + } + return jsEither(shoes); +} + +window.todaysCollar = function(slave) { + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var neck = []; + + if(slave.fetish == 'mindbroken') { + + } else if(slave.devotion <= 20) { + + } else { + if(ArcologyZero.FSEgyptianRevivalist > 0) { + neck.push({text: "dons a wesekh to support your ancient Egyptian pretensions,", collar: "ancient Egyptian"}); + } + if(slave.fetish == "masochist") { + neck.push({text: "dons a tight steel collar around her neck,", collar: "tight steel"}); + neck.push({text: "dons a painful leather collar,", collar: "uncomfortable leather"}); + neck.push({text: "dons a painfully tight neck corset,", collar: "satin choker"}); + } else if(slave.fetish == "pregnancy" && (canGetPregnant(slave) || slave.pregKnown == 1)) { + neck.push({text: "dons a digital display that tells everything about her womb,", collar: "preg biometrics"}); + } else if(slave.fetish == "boobs" && slave.boobs >= 1000) { + neck.push({text: "dons a cowbell to draw attention to her luscious udders,", collar: "leather with cowbell"}); + } + neck.push({text: "decides her neck needs no accenting,", collar: "none"}); + neck.push({text: "dons some pretty jewelry,", collar: "pretty jewelry"}); + neck.push({text: "dons a lovely gold collar,", collar: "heavy gold"}); + neck.push({text: "dons a simple silk ribbon around her neck,", collar: "silk ribbon"}); + } + return jsEither(neck); +} + +window.todaysCorset = function(slave) { + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var belly = []; + var empathyBellies = ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]; + + if(slave.fetish == 'mindbroken') { + if(ArcologyZero.FSRepopulationFocus > 0 && slave.belly < 1500) { + if(slave.weight > 130) { + belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one. She struggles to fit it around her huge gut, only stopping when another slave takes it away from her so she moves on and stops blocking the wardrobe with her fat ass.", bellyAccessory: "none"}); + } else { + belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one.", bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])}); + } + } else { + belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatiblity for no output, will likely get deprecated in the future as content is added*/ + } + } else if(slave.devotion <= 20) { + + } else { + if(ArcologyZero.FSRepopulationFocus > 0 && slave.belly < 1500 && slave.sexualFlaw != "breeder") { + if(slave.weight > 130) { + belly.push({text: "struggles to fit a fake pregnant belly around her gut before giving up and hoping she can pass as fecund,", bellyAccessory: "none"}); + } else { + belly.push({text: "straps on a fake pregnant belly to fit in with all the other pregnant girls,", bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])}); + } + } else if(slave.belly < 1500 && slave.fetish == "pregnancy" && isItemAccessible("a small empathy belly") && slave.sexualFlaw != "breeder" && slave.weight <= 130) { + if(slave.fetishStrength <= 30) { + belly.push({text: "straps on a 1st trimester belly to sate her curiosity,", bellyAccessory: "a small empathy belly"}); + belly.push({text: "straps on a 2nd trimester belly to sate her curiosity,", bellyAccessory: "a medium empathy belly"}); + belly.push({text: "straps on a 3rd trimester belly to sate her curiosity,", bellyAccessory: "a large empathy belly"}); + } else if(slave.fetishStrength <= 95) { + belly.push({text: "straps on a 3rd trimester belly to satisfy her pregnancy fetish,", bellyAccessory: "a large empathy belly"}); + } else if(slave.fetishStrength > 95) { + belly.push({text: "straps on the largest belly she can find to satisfy her pregnancy fetish,", bellyAccessory: "a huge empathy belly"}); + } + } else if(empathyBellies.includes(slave.bellyAccessory) && slave.fetish != "pregnancy") { + belly.push({text: "removes her fake belly, since she dislikes it,", bellyAccessory: "none"}); + } else if(empathyBellies.includes(slave.bellyAccessory) && slave.sexualFlaw == "breeder") { + belly.push({text: "pulls her fake belly off, disgusted by it,", bellyAccessory: "none"}); + } else { + belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatiblity for no output, will likely get deprecated in the future as content is added*/ + } + } + return jsEither(belly); +} + +/*:: FResult [script]*/ + +// this is a port of the FResult widget +// it has been broken up into several functions, because it grew too long +// it has been wrapped in a closure so as not to polute the global namespace +// and so that nested functions are only evaluated once + +window.FResult = (function() { + "use strict"; + // we can't initialise our global variables on load, because SugarCube.State isn't initialised + // instead, declare them and initialise on run time + let V, incest_bonus; + function FResult(slave) { + V = State.variables; + incest_bonus = V.arcologies[0].FSEgyptianRevivalist > 20 || V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1; + + calcUseWeights(slave); + if (!slave.fuckdoll) + calcNotFuckdoll(slave); + else + V.FResult += slave.fuckdoll/10; + + V.FResult += Math.max(0, slave.aphrodisiacs) * 2; + + if (slave.inflationType === "aphrodisiac") + V.FResult += slave.inflation*4; + + if (slave.lactation > 0) + V.FResult += 1; + + if (V.seeAge === 1) + calcAge(slave); + if (slave.fetish === "mindbroken") + V.FResult = Math.trunc(V.FResult*0.4); + else + V.FResult = Math.trunc(V.FResult*0.7); + + if (slave.pregWeek < 0) + V.FResult -= Math.trunc(V.FResult*slave.pregWeek/10); // reduced the most just after birth + + calcAmputation(slave); + + if (V.arcologies[0].FSHedonisticDecadence > 20) + calcHedonismWeight(slave); + if (V.FResult < 2) { + if (supremeRaceP(slave)) + V.FResult = 0; + else + V.FResult = 2; + } + } + + function calcUseWeights(slave) { + V.FResult = (3 - slave.anus)+(slave.muscles/30); + if (slave.muscles < -95) + V.FResult -= 5; + else if (slave.muscle < -30) + V.FResult -= 2; + + V.seed = V.oralUseWeight + V.vaginalUseWeight + V.analUseWeight; + if (V.seed <= 0) return; + + V.FResult += (6+slave.tonguePiercing) * (V.oralUseWeight/V.seed) * (slave.oralSkill/30); + if (slave.sexualFlaw === "cum addict") + V.FResult += (V.oralUseWeight/V.seed) * (slave.oralSkill/30); + if (canDoVaginal(slave)) { + V.FResult += 6 * (V.vaginalUseWeight/V.seed) * (slave.vaginalSkill/30); + V.FResult += (3 - slave.vagina); + V.FResult += slave.vaginaLube; + } + if (canDoAnal(slave)) { + V.FResult += 6 * (V.analUseWeight/V.seed) * (slave.analSkill/30); + if (slave.sexualFlaw === "anal addict") + V.FResult += (V.analUseWeight/V.seed) * (slave.analSkill/30); + if (slave.inflationType === "aphrodisiac") + V.FResult += (V.analUseWeight/V.seed) * (slave.inflation * 3); + } + } + + function calcWorksWithRelatives(slave) { + V.slaves.forEach(islave => { + if (isParentP(slave, islave) && sameAssignmentP(slave, islave)) { + V.FResult += 1; + if (incest_bonus) V.FResult += 1; + } + if (areSisters(slave, islave) > 0 && sameAssignmentP(slave, islave)) { + V.FResult += 1; + if (incest_bonus) V.FResult += 1; + } + }); + } + + function calcWorksWithRelativesVanilla(slave) { + const fre = V.slaves.findIndex(s => { + return haveRelationP(slave, s) && sameAssignmentP(slave, s); + }); + if (fre !== -1) { + V.FResult += 2; + if (incest_bonus) V.FResult += 2; + } + } + + function calcWorksWithRelationship(slave) { + const fre = V.slaves.findIndex(s => { + return haveRelationshipP(slave, s) && sameAssignmentP(slave, s); + }); + if (fre !== -1) V.FResult += 1; + } + + function calcWorksWithRival(slave) { + const en = V.slaves.findIndex(s => { + return isRivalP(slave, s) && sameAssignmentP(slave, s); + }); + if (en !== -1) V.FResult -= 1; + } + + function calcHInjectionsDiet(slave) { + if (slave.drugs === "male hormone injections" || slave.drugs === "female hormone injections") + V.FResult -= 10; + if (slave.diet === "XXY") + V.FResult += 2; + else if (slave.diet === "XY" || slave.diet === "XX") + V.FResult += 1; + else if (slave.diet === "cum production") + V.FResult += 1; + else if (slave.diet === "fertility") + V.FResult += 1; + } + function calcPreg(slave) { + if (V.arcologies[0].FSRepopulationFocus > 20) { + if (slave.preg > 10) V.FResult += 2; + else V.FResult -= 2; + } else if (V.arcologies[0].FSRestart > 20) { + if (slave.bellyPreg >= 500 && slave.breedingMark === 1) + V.FResult += 1; + else if (slave.preg > 10) + V.FResult -= 10; + else + V.FResult += 0; + } + } + + function calcRace(slave) { + if (V.arcologies[0].FSSupremacist !== "unset" && supremeRaceP(slave)) + V.FResult -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10); + if (V.arcologies[0].FSSubjugationist !== "unset" && inferiorRaceP(slave)) + V.FResult += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME); + } + + function calcSexAttributes(slave) { + if (slave.clitPiercing > 2) V.FResult += 1; + if (slave.fetishKnown === 1 && slave.fetishStrength > 60 && slave.fetish != "none") + V.FResult += slave.fetishStrength/5; + + if (slave.attrKnown === 1) { + V.FResult += Math.trunc(slave.attrXX/20); + V.FResult += Math.trunc(slave.attrXY/20); + if (slave.energy > 95) V.FResult += 3; + else if (slave.energy > 80) V.FResult += 2; + else if (slave.energy > 60) V.FResult += 1; + else if (slave.energy <= 20) V.FResult -= 2; + else if (slave.energy <= 40) V.FResult -= 1; + } + if (slave.sexualFlaw !== "none") V.FResult -= 2; + if (slave.sexualQuirk !== "none") V.FResult += 2; + if (slave.behavioralFlaw !== "none") V.FResult -= 2; + if (slave.behavioralQuirk !== "none") V.FResult += 2; + } + + function calcCareer(slave) { + if (setup.whoreCareers.includes(slave.career)) + V.FResult += 1; + else if (slave.oralCount + slave.analCount + slave.vaginalCount + slave.mammaryCount + slave.penetrativeCount > 1000) + V.FResult += 1; + } + + function calcSight(slave) { + if (!canSee(slave)) V.FResult -= 3; + else if (slave.eyes <= -1) { + if (slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts") + V.FResult -= 1; + } else if (slave.eyewear === "blurring glasses") + V.FResult -= 1; + else if (slave.eyewear === "blurring contacts") + V.FResult -= 1; + } + + function calcEgyptianBonus(slave) { + if (V.racialVarieties === undefined) V.racialVarieties = []; + V.seed = 0; + V.racialVarieties.forEach(race => { + if (slave.race === race) V.seed = 1; + }); + if (V.seed === 0) + V.racialVarieties.push(slave.race); + } + + function calcYouthBonus(slave) { + if (slave.visualAge < 30) { + if (slave.actualAge > 30) + V.FResult += 5; // experienced for her apparent age + if (slave.physicalAge > 30) + V.FResult -= slave.physicalAge/2; // too old :( + } + } + + function calcMatureBonus(slave) { + if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge < slave.visualAge) + V.FResult += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); // looks and acts mature, but has a body that just won't quit + } + + function calcNotFuckdoll(slave) { + if (V.familyTesting === 1 && totalRelatives(slave) > 0) + calcWorksWithRelatives(slave); + else if(!V.familyTesting && slave.relation !==0) + calcWorksWithRelativesVanilla(slave); + if (slave.relationship > 0) calcWorksWithRelationship(slave); + if (slave.rivalry !== 0) calcWorksWithRival(slave); + calcHInjectionsDiet(slave); + calcPreg(slave); + calcRace(slave); + calcSexAttributes(slave); + calcCareer(slave); + calcSight(slave); + if (V.arcologies[0].FSEgyptianRevivalist !== "unset") + calcEgyptianBonus(slave); + if (V.arcologies[0].FSYouthPreferentialist !== "unset") + calcYouthBonus(slave); + else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") + calcMatureBonus(slave); + } + + function calcAge(slave) { + if ((V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset") && slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave)) { + V.FResult += 1; + if (slave.birthWeek === 0) V.FResult += V.FResult; + else if (slave.birthWeek < 4) V.FResult += 0.2*V.FResult; + } else if (slave.physicalAge === V.minimumSlaveAge) { + V.FResult += 1; + if (slave.birthWeek === 0 ) V.FResult += 0.5*V.FResult; + else if (slave.birthWeek < 4) V.FResult += 0.1*V.FResult; + } else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset")) { + V.FResult += 1; + if (slave.birthWeek === 0) + V.FResult += 0.5*V.FResult; + else if (slave.birthWeek < 4) + V.FResult += 0.1*V.FResult; + } + } + + function calcAmputation(slave) { + switch(slave.amp) { + case 0: + break; + case 1: + V.FResult -= 2; + break; + case -2: + break; + case -5: + break; + default: + V.FResult -= 1; + } + } + + function calcHedonismWeight(slave) { + if (slave.weight < 10) + V.FResult -= 2; + else if (slave.weight > 190) + V.FResult -= 5; // too fat + } + return FResult; +})(); + +/*:: RA JS [script]*/ + +window.ruleApplied = function(slave, ID) { + if (!slave || !slave.currentRules) + return null; + return slave.currentRules.includes(ID); +}; + +window.ruleSlaveSelected = function(slave, rule) { + if (!slave || !rule || !rule.selectedSlaves) + return false; + return rule.selectedSlaves.includes(slave.ID); +}; + +window.ruleSlaveExcluded = function(slave, rule) { + if (!slave || !rule || !rule.excludedSlaves) + return false; + return rule.excludedSlaves.includes(slave.ID); +}; + +window.ruleAssignmentSelected = function(slave, rule) { + if (!slave || !rule || (!rule.assignment && !rule.facility)) + return false; + var assignment = rule.assignment.concat(expandFacilityAssignments(rule.facility)); + return assignment.includes(slave.assignment); +} + +window.ruleAssignmentExcluded = function(slave, rule) { + if (!slave || !rule || (!rule.excludeAssignment && !rule.excludeFacility)) + return false; + var excludeAssignment = rule.excludeAssignment.concat(expandFacilityAssignments(rule.excludeFacility)); + return excludeAssignment.includes(slave.assignment); +} + +window.hasSurgeryRule = function(slave, rules) { + if (!slave || !rules || !slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; d--) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d].autoSurgery > 0) { + return true; + } + } + } + return false; +}; + +window.hasRuleFor = function(slave, rules, what) { + if (!slave || !rules || !slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; d--) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d][what] !== "no default setting") { + return true; + } + } + } + return false; +}; + +window.hasHColorRule = function(slave, rules) { + return hasRuleFor(slave, rules, "hColor"); +} + +window.hasHStyleRule = function(slave, rules) { + return hasRuleFor(slave, rules, "hStyle"); +}; + +window.hasEyeColorRule = function(slave, rules) { + return hasRuleFor(slave, rules, "eyeColor"); +}; + +window.lastPregRule = function(slave, rules) { + if (!slave || !rules) + return null; + if (!slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; d--) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d].preg == -1) { + return true; + } + } + } + + return null; +}; + +window.autoSurgerySelector = function(slave, ruleset) +{ + + var appRules = ruleset.filter(function(rule){ + return (rule.autoSurgery == 1) && this.currentRules.contains(rule.ID); + }, slave); + + var surgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds", bodyhair: "nds", hair: "nds", bellyImplant: "no default setting"}; + var i, key, ruleSurgery; + + for (i in appRules) + { + ruleSurgery = appRules[i].surgery; + for (key in ruleSurgery) + { + if (ruleSurgery[key] != "no default setting" || ruleSurgery[key] != "nds") + { + surgery[key] = ruleSurgery[key]; + } + } + } + + return surgery; +} + +window.mergeRules = function(rules) { + var combinedRule = {}; + + for (var i = 0; i < rules.length; i++) { + for (var prop in rules[i]) { + // A rule overrides any preceding ones if, + // * there are no preceding ones, + // * or it sets autoBrand, + // * or it does not set autoBrand and is not "no default setting" + var applies = ( + combinedRule[prop] === undefined + || (prop === "autoBrand" && rules[i][prop]) + || (prop !== "autoBrand" && rules[i][prop] !== "no default setting") + ); + + if (applies) + { + + //Objects in JS in operations "=" pass by reference, so we need a completely new object to avoid messing up previous rules. + if ("object" == typeof rules[i][prop] && "object" != typeof combinedRule[prop]) + combinedRule[prop] = new Object(); + + //If we already have object - now we will process its properties, but object itself should be skipped. + if ("object" != typeof combinedRule[prop]) + combinedRule[prop] = rules[i][prop]; + + /*Some properties of rules now have second level properties. We need to check it, and change ones in combinedRule. (Good example - growth drugs. Breasts, butt, etc...) */ + if ( "object" == typeof rules[i][prop]) + { + for (var subprop in rules[i][prop]) + { + var subapplies = ( + combinedRule[prop][subprop] === undefined + || (rules[i][prop][subprop] !== "no default setting") + ); + + if (subapplies) + combinedRule[prop][subprop] = rules[i][prop][subprop]; + } + + } + } + + } + + } + + return combinedRule; +} + +/*:: DTreeJS [script]*/ +/* This is the minified version of lodash, d3 and dTree */ +; +(function (window, define, exports) { +/** + * @license + * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE + */ +;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function i(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n);); +return n}function o(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function f(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function c(n,t){return!(null==n||!n.length)&&-1<d(n,t,0)}function a(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return true;return false}function l(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function s(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r]; +return n}function h(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);return r}function p(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function _(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return true;return false}function v(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,false}),e}function g(n,t,r,e){var u=n.length;for(r+=e?1:-1;e?r--:++r<u;)if(t(n[r],r,n))return r;return-1}function d(n,t,r){if(t===t)n:{ +--r;for(var e=n.length;++r<e;)if(n[r]===t){n=r;break n}n=-1}else n=g(n,b,r);return n}function y(n,t,r,e){--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function b(n){return n!==n}function x(n,t){var r=null==n?0:n.length;return r?k(n,t)/r:P}function j(n){return function(t){return null==t?F:t[n]}}function w(n){return function(t){return null==n?F:n[t]}}function m(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=false,n):t(r,n,u,i)}),r}function A(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c; +return n}function k(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==F&&(r=r===F?i:r+i)}return r}function E(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function O(n,t){return l(t,function(t){return[t,n[t]]})}function S(n){return function(t){return n(t)}}function I(n,t){return l(t,function(t){return n[t]})}function R(n,t){return n.has(t)}function z(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););return r}function W(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function B(n){ return"\\"+Tn[n]}function L(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function U(n,t){return function(r){return n(t(r))}}function C(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r];o!==t&&"__lodash_placeholder__"!==o||(n[r]="__lodash_placeholder__",i[u++]=r)}return i}function D(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=[n,n]}),r}function T(n){if(Bn.test(n)){ for(var t=zn.lastIndex=0;zn.test(n);)++t;n=t}else n=tt(n);return n}function $(n){return Bn.test(n)?n.match(zn)||[]:n.split("")}var F,N=1/0,P=NaN,Z=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],q=/\b__p\+='';/g,V=/\b(__p\+=)''\+/g,K=/(__e\(.*?\)|\b__t\))\+'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,H=/[&<>"']/g,J=RegExp(G.source),Y=RegExp(H.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/^\./,un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,on=/[\\^$.*+?()[\]{}|]/g,fn=RegExp(on.source),cn=/^\s+|\s+$/g,an=/^\s+/,ln=/\s+$/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,hn=/\{\n\/\* \[wrapped with (.+)\] \*/,pn=/,? & /,_n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,vn=/\\(\\)?/g,gn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dn=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,bn=/^0b[01]+$/i,xn=/^\[object .+?Constructor\]$/,jn=/^0o[0-7]+$/i,wn=/^(?:0|[1-9]\d*)$/,mn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,An=/($^)/,kn=/['\n\r\u2028\u2029\\]/g,En="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",On="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+En,Sn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",In=RegExp("['\u2019]","g"),Rn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),zn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Sn+En,"g"),Wn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+",On].join("|"),"g"),Bn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Ln=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Un="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Cn={}; Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object DataView]"]=Cn["[object Date]"]=Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object WeakMap]"]=false; @@ -7158,7 +8672,7 @@ window.renderFamilyTree = function(slaves, filterID) { } }; -window.buildFamilyTree = function(slaves = SugarCube.State.variables.slaves, filterID) { +window.buildFamilyTree = function(slaves = State.variables.slaves, filterID) { var family_graph = { nodes: [], links: [] @@ -7176,20 +8690,20 @@ window.buildFamilyTree = function(slaves = SugarCube.State.variables.slaves, fil var kids = {}; var fake_pc = { - slaveName: SugarCube.State.variables.PC.name + '(You)', - mother: SugarCube.State.variables.PC.mother, - father: SugarCube.State.variables.PC.father, - dick: SugarCube.State.variables.PC.dick, - vagina: SugarCube.State.variables.PC.vagina, - ID: SugarCube.State.variables.PC.ID + slaveName: State.variables.PC.name + '(You)', + mother: State.variables.PC.mother, + father: State.variables.PC.father, + dick: State.variables.PC.dick, + vagina: State.variables.PC.vagina, + ID: State.variables.PC.ID }; var charList = [fake_pc]; charList.push.apply(charList, slaves); - charList.push.apply(charList, SugarCube.State.variables.tanks); + charList.push.apply(charList, State.variables.tanks); var unborn = {}; - for(var i = 0; i < SugarCube.State.variables.tanks.length; i++) { - unborn[SugarCube.State.variables.tanks[i].ID] = true; + for(var i = 0; i < State.variables.tanks.length; i++) { + unborn[State.variables.tanks[i].ID] = true; } for(var i = 0; i < charList.length; i++) { @@ -7631,3 +9145,18 @@ window.extractHairColor = function(hColor) { } return colorCode; }; + +/*SFJS [script]*/ + +window.simpleWorldEconomyCheck = function() { + var n1 = 4; + var n2 = 3; + var n3 = 2; + if(State.variables.economy === .5) { + return n1; + } else if(State.variables.economy === 1.5) { + return n3; + } else { + return n2; + } +} diff --git a/devTools/AutoGitVersionUpload.sh b/devTools/AutoGitVersionUpload.sh deleted file mode 100644 index 959e6ca43eeaf9845a06c86e109d9bb741275e8a..0000000000000000000000000000000000000000 --- a/devTools/AutoGitVersionUpload.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -#Requires MEGAcmd, git, mv, cd, mkidr, echo -COUNTER=0 -while [ $COUNTER -ge 0 ]; do -LocalDir=~/fc-pregmod/ RemoteDir=FC-GIT U=anon@anon.anon P=13245 && mega-login $U $P - if [ $COUNTER -eq 0 ]; then mega-mkdir $RemoteDir && mega-export -a $RemoteDir && mkdir $LocalDir && git clone https://gitgud.io/pregmodfan/fc-pregmod.git $LocalDir - fi - cd $LocalDir/ && AbrevHash=`git log -n1 --abbrev-commit |grep -m1 commit | sed 's/commit //'` - if [ $COUNTER -eq 0 ]; then - echo "First run. Compliling, formatting and placing .html." && ./compile > /dev/null && mv bin/FC_pregmod.html "bin/FC-pregmod-$(date '+%F-%H-%M' --utc --date="$(git show '--format=format:%cD' HEAD)")-$AbrevHash.html" && mega-put bin/*.html $RemoteDir && echo "Compiled .html placed." - else - git pull| if [ "Already up to date" ]; then echo "No updated files, exiting." && mega-logout > /dev/null && exit - else echo "Compliling, formatting and placing .html." && ./compile > /dev/null && mv bin/FC_pregmod.html "bin/FC-pregmod-$(date '+%F-%H-%M' --utc --date="$(git show '--format=format:%cD' HEAD)")-$AbrevHash.html" && mega-put bin/*.html $RemoteDir && echo "Compiled .html placed." - fi - fi - mega-logout > /dev/null && let COUNTER=COUNTER+1 && clear && sleep 900s -done \ No newline at end of file diff --git a/devTools/AutoGitVersionUploadBackground.sh b/devTools/AutoGitVersionUploadBackground.sh new file mode 100644 index 0000000000000000000000000000000000000000..1f440ee56c5e92203f11f6816de97e6604c41033 --- /dev/null +++ b/devTools/AutoGitVersionUploadBackground.sh @@ -0,0 +1,13 @@ +#!/bin/sh Requires MEGAcmd, git, mv, cd, mkidr, echo +COUNTER=0 LocalDir=~/fc-pregmod/ RemoteDir=FC-GIT U=anon@anon.anon P=13245 && mega-login $U $P +while [ $COUNTER -ge 0 ]; do + if [ $COUNTER -eq 0 ]; then mega-login $U $P && mega-mkdir $RemoteDir && mega-export -a $RemoteDir && mkdir $LocalDir ; git clone -q https://gitgud.io/pregmodfan/fc-pregmod.git $LocalDir + fi + cd $LocalDir/ && AbrevHash=`git log --reverse -n1 --abbrev-commit |grep -m1 commit | sed 's/commit //'` + if [ $COUNTER -eq 0 ]; then ./compile > /dev/null && mv bin/FC_pregmod.html "bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%F-%H-%M')-$AbrevHash.html" && mega-put bin/*.html $RemoteDir + else if [ "$(git pull)" == "Already up to date." ]; then ehco -n "" + else clear && rm bin/*.html ; ./compile > /dev/null && mv bin/FC_pregmod.html "bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%F-%H-%M')-$AbrevHash.html" && mega-login $U $P && mega-put bin/*.html $RemoteDir + fi + fi + let COUNTER=COUNTER+1 && mega-logout > /dev/null && sleep 300s +done \ No newline at end of file diff --git a/devTools/AutoGitVersionUploadForground.sh b/devTools/AutoGitVersionUploadForground.sh new file mode 100644 index 0000000000000000000000000000000000000000..1dd3ac6f93934f3ae74568bb3a6a4e4a98439193 --- /dev/null +++ b/devTools/AutoGitVersionUploadForground.sh @@ -0,0 +1,13 @@ +#!/bin/sh Requires MEGAcmd, git, mv, cd, mkidr, echo +COUNTER=0 LocalDir=~/fc-pregmod/ RemoteDir=FC-GIT U=anon@anon.anon P=13245 && mega-login $U $P +while [ $COUNTER -ge 0 ]; do + if [ $COUNTER -eq 0 ]; then mega-login $U $P && mega-mkdir $RemoteDir ; mega-export -a $RemoteDir ; mkdir $LocalDir ; git clone -q https://gitgud.io/pregmodfan/fc-pregmod.git $LocalDir + fi + cd $LocalDir/ && AbrevHash=`git log -n1 --reverse --abbrev-commit |grep -m1 commit | sed 's/commit //'` + if [ $COUNTER -eq 0 ]; then echo "First run. Compliling, formatting and placing .html." && ./compile > /dev/null && mv bin/FC_pregmod.html "bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%F-%H-%M')-$AbrevHash.html" && mega-put bin/*.html $RemoteDir && echo "Inital compiled .html placed." + else if [ "$(git pull)" == "Already up to date." ]; then echo "No updated files." + else echo "Compliling, formatting and placing updated .html." ; rm bin/*.html ; ./compile > /dev/null && mv bin/FC_pregmod.html "bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%F-%H-%M')-$AbrevHash.html" && mega-login $U $P && mega-put bin/*.html $RemoteDir ; echo "Updated .html placed." + fi + fi + let COUNTER=COUNTER+1 && mega-logout > /dev/null && sleep 300s +done \ No newline at end of file diff --git a/devTools/tweeGo/storyFormats/sugarcube-2/header.html b/devTools/tweeGo/storyFormats/sugarcube-2/header.html index 4815cd3669083648d964fc0146ce7dcd14d70591..405cf1212604b7c1909f750302b63d0ea17f0821 100644 --- a/devTools/tweeGo/storyFormats/sugarcube-2/header.html +++ b/devTools/tweeGo/storyFormats/sugarcube-2/header.html @@ -6,7 +6,7 @@ <meta name="viewport" content="width=device-width,initial-scale=1" /> <!-- -SugarCube (v2.23.5): A free (gratis and libre) story format. +SugarCube (v2.24.0): A free (gratis and libre) story format. Copyright © 2013–2018 Thomas Michael Edwards <thomasmedwards@gmail.com>. All rights reserved. @@ -115,12 +115,12 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f <script id="script-sugarcube" type="text/javascript"> /*! SugarCube JS */ if(document.documentElement.getAttribute("data-init")==="loading"){!function(window,document,jQuery,undefined){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),_slicedToArray=function(){function e(e,t){var r=[],a=!0,n=!1,i=undefined;try{for(var o,s=e[Symbol.iterator]();!(a=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(e){n=!0,i=e}finally{try{!a&&s.return&&s.return()}finally{if(n)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},errorPrologRegExp=/^(?:(?:uncaught\s+(?:exception:\s+)?)?error:\s+)+/i,Alert=function(){function e(e,t,r,a){var n="fatal"===e,i="Apologies! "+(n?"A fatal":"An")+" error has occurred.";i+=n?" Aborting.":" You may be able to continue, but some parts may not work properly.",null==t&&null==r||(i+="\n\nError",null!=t&&(i+=" ["+t+"]"),i+=null!=r?": "+r.replace(errorPrologRegExp,"")+".":": unknown error."),"object"===(void 0===a?"undefined":_typeof(a))&&a.stack&&(i+="\n\nStack Trace:\n"+a.stack),window.alert(i)}function t(t,r,a){e(null,t,r,a)}function r(t,r,a){e("fatal",t,r,a)}return function(e){window.onerror=function(a,n,i,o,s){"complete"===document.readyState?t(null,a,s):(r(null,a,s),window.onerror=e,"function"==typeof window.onerror&&window.onerror.apply(this,arguments))}}(window.onerror),Object.freeze(Object.defineProperties({},{error:{value:t},fatal:{value:r}}))}(),Patterns=function(){var e=function(){var e=new Map([[" ","\\u0020"],["\f","\\f"],["\n","\\n"],["\r","\\r"],["\t","\\t"],["\v","\\v"],[" ","\\u00a0"],[" ","\\u1680"],["á Ž","\\u180e"],[" ","\\u2000"],["â€","\\u2001"],[" ","\\u2002"],[" ","\\u2003"],[" ","\\u2004"],[" ","\\u2005"],[" ","\\u2006"],[" ","\\u2007"],[" ","\\u2008"],[" ","\\u2009"],[" ","\\u200a"],["\u2028","\\u2028"],["\u2029","\\u2029"],[" ","\\u202f"],["âŸ","\\u205f"],[" ","\\u3000"],["\ufeff","\\ufeff"]]),t=/\s/,r="";return e.forEach(function(e,a){t.test(a)||(r+=e)}),r?"[\\s"+r+"]":"\\s"}(),t="[0-9A-Z_a-z\\-\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]",r=t.replace("\\-",""),a="("+t+"+)\\(([^\\)\\|\\n]+)\\):",n="("+t+"+):([^;\\|\\n]+);",i="((?:\\."+t+"+)+);",o="((?:#"+t+"+)+);",s=a+"|"+n+"|"+i+"|"+o;return Object.freeze({space:e,spaceNoTerminator:"[\\u0020\\f\\t\\v\\u00a0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]",lineTerminator:"[\\n\\r\\u2028\\u2029]",anyLetter:t,anyLetterStrict:r,identifierFirstChar:"[$A-Z_a-z]",identifier:"[$A-Z_a-z][$0-9A-Z_a-z]*",variableSigil:"[$_]",variable:"[$_][$A-Z_a-z][$0-9A-Z_a-z]*",macroName:"[A-Za-z][\\w-]*|[=-]",cssImage:"\\[[<>]?[Ii][Mm][Gg]\\[(?:\\s|\\S)*?\\]\\]+",inlineCss:s,url:"(?:file|https?|mailto|ftp|javascript|irc|news|data):[^\\s'\"]+"})}();!function(){function e(e,t){var n=String(e);switch(t){case"start":return n&&r.test(n)?n.replace(r,""):n;case"end":return n&&a.test(n)?n.replace(a,""):n;default:throw new Error('_trimFrom called with incorrect where parameter value: "'+t+'"')}}function t(e,t){var r=Number.parseInt(e,10)||0;if(r<1)return"";var a=void 0===t?"":String(t);for(""===a&&(a=" ");a.length<r;){var n=a.length,i=r-n;a+=n>i?a.slice(0,i):a}return a.length>r&&(a=a.slice(0,r)),a}var r=/^[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*/,a=/[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*$/;Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");if(0===arguments.length)return!1;var e=this.length>>>0;if(0===e)return!1;var t=arguments[0],r=Number(arguments[1])||0;for(r<0&&(r=Math.max(0,e+r));r<e;++r){var a=this[r];if(t===a||t!==t&&a!==a)return!0}return!1}}),String.prototype.padStart||Object.defineProperty(String.prototype,"padStart",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padStart called on null or undefined");var a=String(this),n=a.length,i=Number.parseInt(e,10);return i<=n?a:t(i-n,r)+a}}),String.prototype.padEnd||Object.defineProperty(String.prototype,"padEnd",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padEnd called on null or undefined");var a=String(this),n=a.length,i=Number.parseInt(e,10);return i<=n?a:a+t(i-n,r)}}),String.prototype.trimStart||Object.defineProperty(String.prototype,"trimStart",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimStart called on null or undefined");return e(this,"start")}}),String.prototype.trimLeft||Object.defineProperty(String.prototype,"trimLeft",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimLeft called on null or undefined");return e(this,"start")}}),String.prototype.trimEnd||Object.defineProperty(String.prototype,"trimEnd",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimEnd called on null or undefined");return e(this,"end")}}),String.prototype.trimRight||Object.defineProperty(String.prototype,"trimRight",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimRight called on null or undefined");return e(this,"end")}})}(),function(){function _random(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("_random called with insufficient parameters");case 1:e=0,t=arguments[0];break;default:e=arguments[0],t=arguments[1]}if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(_nativeMathRandom()*(t-e+1))+e}function _randomIndex(e,t){var r=void 0,a=void 0;switch(t.length){case 1:r=0,a=e-1;break;case 2:r=0,a=Math.trunc(t[1]);break;default:r=Math.trunc(t[1]),a=Math.trunc(t[2])}return Number.isNaN(r)?r=0:!Number.isFinite(r)||r>=e?r=e-1:r<0&&(r=e+r)<0&&(r=0),Number.isNaN(a)?a=0:!Number.isFinite(a)||a>=e?a=e-1:a<0&&(a=e+a)<0&&(a=e-1),_random(r,a)}function _getCodePointStartAndEnd(e,t){var r=e.charCodeAt(t);if(Number.isNaN(r))return{char:"",start:-1,end:-1};if(r<55296||r>57343)return{char:e.charAt(t),start:t,end:t};if(r>=55296&&r<=56319){var a=t+1;if(a>=e.length)throw new Error("high surrogate without trailing low surrogate");var n=e.charCodeAt(a);if(n<56320||n>57343)throw new Error("high surrogate without trailing low surrogate");return{char:e.charAt(t)+e.charAt(a),start:t,end:a}}if(0===t)throw new Error("low surrogate without leading high surrogate");var i=t-1,o=e.charCodeAt(i);if(o<55296||o>56319)throw new Error("low surrogate without leading high surrogate");return{char:e.charAt(i)+e.charAt(t),start:i,end:t}}var _nativeMathRandom=Math.random;Object.defineProperty(Array,"random",{configurable:!0,writable:!0,value:function(e){if(null==e||"object"!==(void 0===e?"undefined":_typeof(e))||!Object.prototype.hasOwnProperty.call(e,"length"))throw new TypeError("Array.random array parameter must be an array or array-lke object");var t=e.length>>>0;if(0!==t){return e[0===arguments.length?_random(0,t-1):_randomIndex(t,Array.prototype.slice.call(arguments,1))]}}}),Object.defineProperty(Array.prototype,"concatUnique",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.concatUnique called on null or undefined");var e=Array.from(this);if(0===arguments.length)return e;var t=Array.prototype.reduce.call(arguments,function(e,t){return e.concat(t)},[]),r=t.length;if(0===r)return e;for(var a=Array.prototype.indexOf,n=Array.prototype.push,i=0;i<r;++i){var o=t[i];-1===a.call(e,o)&&n.call(e,o)}return e}}),Object.defineProperty(Array.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.count called on null or undefined");for(var e=Array.prototype.indexOf,t=arguments[0],r=Number(arguments[1])||0,a=0;-1!==(r=e.call(this,t,r));)++a,++r;return a}}),Object.defineProperty(Array.prototype,"delete",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.delete called on null or undefined");if(0===arguments.length)return[];if(0==this.length>>>0)return[];for(var e=Array.prototype.indexOf,t=Array.prototype.push,r=Array.prototype.splice,a=Array.prototype.concat.apply([],arguments),n=[],i=0,o=a.length;i<o;++i)for(var s=a[i],u=0;-1!==(u=e.call(this,s,u));)t.apply(n,r.call(this,u,1));return n}}),Object.defineProperty(Array.prototype,"deleteAt",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.deleteAt called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.splice,r=[].concat(_toConsumableArray(new Set(Array.prototype.concat.apply([],arguments).map(function(t){return t<0?Math.max(0,e+t):t})).values())),a=[].concat(_toConsumableArray(r)).sort(function(e,t){return t-e}),n=[],i=0,o=r.length;i<o;++i)n[i]=this[r[i]];for(var s=0,u=a.length;s<u;++s)t.call(this,a[s],1);return n}}),Object.defineProperty(Array.prototype,"flatten",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.flatten called on null or undefined");return Array.prototype.reduce.call(this,function(e,t){return e.concat(Array.isArray(t)?t.flatten():t)},[])}}),Object.defineProperty(Array.prototype,"includesAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAll called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAll.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(!Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!1;return!0}}),Object.defineProperty(Array.prototype,"includesAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAny called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAny.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!0;return!1}}),Object.defineProperty(Array.prototype,"pluck",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.pluck called on null or undefined");var e=this.length>>>0;if(0!==e){var t=0===arguments.length?_random(0,e-1):_randomIndex(e,[].concat(Array.prototype.slice.call(arguments)));return Array.prototype.splice.call(this,t,1)[0]}}}),Object.defineProperty(Array.prototype,"pluckMany",{configurable:!0,writable:!0,value:function(e){if(null==this)throw new TypeError("Array.prototype.pluckMany called on null or undefined");var t=this.length>>>0;if(0===t)return[];var r=Math.trunc(e);if(!Number.isInteger(r))throw new Error("Array.prototype.pluckMany want parameter must be an integer");if(r<1)return[];r>t&&(r=t);var a=Array.prototype.splice,n=[],i=t-1;do{n.push(a.call(this,_random(0,i--),1)[0])}while(n.length<r);return n}}),Object.defineProperty(Array.prototype,"pushUnique",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.pushUnique called on null or undefined");var e=arguments.length;if(0===e)return this.length>>>0;for(var t=Array.prototype.indexOf,r=Array.prototype.push,a=0;a<e;++a){var n=arguments[a];-1===t.call(this,n)&&r.call(this,n)}return this.length>>>0}}),Object.defineProperty(Array.prototype,"random",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.random called on null or undefined");var e=this.length>>>0;if(0!==e){return this[0===arguments.length?_random(0,e-1):_randomIndex(e,[].concat(Array.prototype.slice.call(arguments)))]}}}),Object.defineProperty(Array.prototype,"randomMany",{configurable:!0,writable:!0,value:function(e){if(null==this)throw new TypeError("Array.prototype.randomMany called on null or undefined");var t=this.length>>>0;if(0===t)return[];var r=Math.trunc(e);if(!Number.isInteger(r))throw new Error("Array.prototype.randomMany want parameter must be an integer");if(r<1)return[];r>t&&(r=t);var a=new Map,n=[],i=t-1;do{var o=void 0;do{o=_random(0,i)}while(a.has(o));a.set(o,!0),n.push(this[o])}while(n.length<r);return n}}),Object.defineProperty(Array.prototype,"shuffle",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.shuffle called on null or undefined");var e=this.length>>>0;if(0===e)return this;for(var t=e-1;t>0;--t){var r=Math.floor(_nativeMathRandom()*(t+1));if(t!==r){var a=this[t];this[t]=this[r],this[r]=a}}return this}}),Object.defineProperty(Array.prototype,"unshiftUnique",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.unshiftUnique called on null or undefined");var e=arguments.length;if(0===e)return this.length>>>0;for(var t=Array.prototype.indexOf,r=Array.prototype.unshift,a=0;a<e;++a){var n=arguments[a];-1===t.call(this,n)&&r.call(this,n)}return this.length>>>0}}),Object.defineProperty(Function.prototype,"partial",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Function.prototype.partial called on null or undefined");var e=Array.prototype.slice,t=this,r=e.call(arguments,0);return function(){for(var a=[],n=0,i=0;i<r.length;++i)a.push(r[i]===undefined?arguments[n++]:r[i]);return t.apply(this,a.concat(e.call(arguments,n)))}}}),Object.defineProperty(Math,"clamp",{configurable:!0,writable:!0,value:function(e,t,r){var a=Number(e);return Number.isNaN(a)?NaN:a.clamp(t,r)}}),Object.defineProperty(Math,"easeInOut",{configurable:!0,writable:!0,value:function(e){return 1-(Math.cos(Number(e)*Math.PI)+1)/2}}),Object.defineProperty(Number.prototype,"clamp",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Number.prototype.clamp called on null or undefined");if(2!==arguments.length)throw new Error("Number.prototype.clamp called with an incorrect number of parameters");var e=Number(arguments[0]),t=Number(arguments[1]);if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.min(Math.max(this,e),t)}}),RegExp.escape||function(){var e=/[\\^$*+?.()|[\]{}]/g,t=new RegExp(e.source);Object.defineProperty(RegExp,"escape",{configurable:!0,writable:!0,value:function(r){var a=String(r);return a&&t.test(a)?a.replace(e,"\\$&"):a}})}(),function(){var e=/{(\d+)(?:,([+-]?\d+))?}/g,t=new RegExp(e.source);Object.defineProperty(String,"format",{configurable:!0,writable:!0,value:function(r){function a(e,t,r){if(!t)return e;var a=Math.abs(t)-e.length;if(a<1)return e;var n=String(r).repeat(a);return t<0?e+n:n+e}if(arguments.length<2)return 0===arguments.length?"":r;var n=2===arguments.length&&Array.isArray(arguments[1])?[].concat(_toConsumableArray(arguments[1])):Array.prototype.slice.call(arguments,1);return 0===n.length?r:t.test(r)?(e.lastIndex=0,r.replace(e,function(e,t,r){var i=n[t];if(null==i)return"";for(;"function"==typeof i;)i=i();switch(void 0===i?"undefined":_typeof(i)){case"string":break;case"object":i=JSON.stringify(i);break;default:i=String(i)}return a(i,r?Number.parseInt(r,10):0," ")})):r}})}(),Object.defineProperty(String.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.contains called on null or undefined");return-1!==String.prototype.indexOf.apply(this,arguments)}}),Object.defineProperty(String.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.count called on null or undefined");var e=String(arguments[0]||"");if(""===e)return 0;for(var t=String.prototype.indexOf,r=e.length,a=Number(arguments[1])||0,n=0;-1!==(a=t.call(this,e,a));)++n,a+=r;return n}}),Object.defineProperty(String.prototype,"splice",{configurable:!0,writable:!0,value:function(e,t,r){if(null==this)throw new TypeError("String.prototype.splice called on null or undefined");var a=this.length>>>0;if(0===a)return"";var n=Number(e);Number.isSafeInteger(n)?n<0&&(n+=a)<0&&(n=0):n=0,n>a&&(n=a);var i=Number(t);(!Number.isSafeInteger(i)||i<0)&&(i=0);var o=this.slice(0,n);return void 0!==r&&(o+=r),n+i<a&&(o+=this.slice(n+i)),o}}),Object.defineProperty(String.prototype,"splitOrEmpty",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.splitOrEmpty called on null or undefined");return""===String(this)?[]:String.prototype.split.apply(this,arguments)}}),Object.defineProperty(String.prototype,"toLocaleUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toLocaleUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,a=t.end;return-1===a?"":r.toLocaleUpperCase()+e.slice(a+1)}}),Object.defineProperty(String.prototype,"toUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,a=t.end;return-1===a?"":r.toUpperCase()+e.slice(a+1)}}),Object.defineProperty(Date.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:date)",this.toISOString()]}}),Object.defineProperty(Function.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)","("+this.toString()+")"]}}),Object.defineProperty(Map.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:map)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(RegExp.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)",this.toString()]}}),Object.defineProperty(Set.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:set)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(JSON,"reviveWrapper",{configurable:!0,writable:!0,value:function(e,t){if("string"!=typeof e)throw new TypeError("JSON.reviveWrapper code parameter must be a string");return["(revive:eval)",[e,t]]}}),Object.defineProperty(JSON,"_real_parse",{value:JSON.parse}),Object.defineProperty(JSON,"parse",{configurable:!0,writable:!0,value:function value(text,reviver){return JSON._real_parse(text,function(key,val){var value=val;if(Array.isArray(value)&&2===value.length)switch(value[0]){case"(revive:set)":value=new Set(value[1]);break;case"(revive:map)":value=new Map(value[1]);break;case"(revive:date)":value=new Date(value[1]);break;case"(revive:eval)":try{if(Array.isArray(value[1])){var $ReviveData$=value[1][1];value=eval(value[1][0])}else value=eval(value[1])}catch(e){}}else if("string"==typeof value&&"@@revive@@"===value.slice(0,10))try{value=eval(value.slice(10))}catch(e){}if("function"==typeof reviver)try{value=reviver(key,value)}catch(e){}return value})}}),Object.defineProperty(Array.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.contains called on null or undefined");return Array.prototype.includes.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAll called on null or undefined");return Array.prototype.includesAll.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAny called on null or undefined");return Array.prototype.includesAny.apply(this,arguments)}}),Object.defineProperty(String.prototype,"readBracketedList",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.readBracketedList called on null or undefined");for(var e=new RegExp("(?:\\[\\[((?:\\s|\\S)*?)\\]\\])|([^\"'\\s]\\S*)","gm"),t=[],r=void 0;null!==(r=e.exec(this));)r[1]?t.push(r[1]):r[2]&&t.push(r[2]);return t}})}();var Browser=function(){var e=navigator.userAgent.toLowerCase(),t=e.includes("windows phone"),r=Object.freeze({Android:!t&&e.includes("android"),BlackBerry:/blackberry|bb10/.test(e),iOS:!t&&/ip(?:hone|ad|od)/.test(e),Windows:t||e.includes("iemobile"),any:function(){return r.Android||r.BlackBerry||r.iOS||r.Windows}}),a=!r.Windows&&!/khtml|trident|edge/.test(e)&&e.includes("gecko"),n=!e.includes("opera")&&/msie|trident/.test(e),i=n?function(){var t=/(?:msie\s+|rv:)(\d+\.\d)/.exec(e);return t?Number(t[1]):0}():null,o=e.includes("opera")||e.includes(" opr/"),s=o?function(){var t=new RegExp((/khtml|chrome/.test(e)?"opr":"version")+"\\/(\\d+\\.\\d+)"),r=t.exec(e);return r?Number(r[1]):0}():null;return Object.freeze({userAgent:e,isMobile:r,isGecko:a,isIE:n,ieVersion:i,isOpera:o,operaVersion:s})}(),Has=function(){var e=function(){try{return"function"==typeof document.createElement("audio").canPlayType}catch(e){}return!1}(),t=function(){try{return"Blob"in window&&"File"in window&&"FileList"in window&&"FileReader"in window&&!Browser.isMobile.any()&&(!Browser.isOpera||Browser.operaVersion>=15)}catch(e){}return!1}(),r=function(){try{return"geolocation"in navigator&&"function"==typeof navigator.geolocation.getCurrentPosition&&"function"==typeof navigator.geolocation.watchPosition}catch(e){}return!1}(),a=function(){try{return"MutationObserver"in window&&"function"==typeof window.MutationObserver}catch(e){}return!1}(),n=function(){try{return"performance"in window&&"function"==typeof window.performance.now}catch(e){}return!1}();return Object.freeze({audio:e,fileAPI:t,geolocation:r,mutationObserver:a,performance:n})}(),_ref3=function(){function e(t){if("object"!==(void 0===t?"undefined":_typeof(t))||null===t)return t;if(t instanceof String)return String(t);if(t instanceof Number)return Number(t);if(t instanceof Boolean)return Boolean(t);if("function"==typeof t.clone)return t.clone(!0);if(t.nodeType&&"function"==typeof t.cloneNode)return t.cloneNode(!0);var r=void 0;return t instanceof Array?r=new Array(t.length):t instanceof Date?r=new Date(t.getTime()):t instanceof Map?(r=new Map,t.forEach(function(t,a){return r.set(a,e(t))})):t instanceof RegExp?r=new RegExp(t):t instanceof Set?(r=new Set,t.forEach(function(t){return r.add(e(t))})):r=Object.create(Object.getPrototypeOf(t)),Object.keys(t).forEach(function(a){return r[a]=e(t[a])}),r}function t(e){for(var t=document.createDocumentFragment(),r=document.createElement("p"),a=void 0;null!==(a=e.firstChild);){if(a.nodeType===Node.ELEMENT_NODE){switch(a.nodeName.toUpperCase()){case"BR":if(null!==a.nextSibling&&a.nextSibling.nodeType===Node.ELEMENT_NODE&&"BR"===a.nextSibling.nodeName.toUpperCase()){e.removeChild(a.nextSibling),e.removeChild(a),t.appendChild(r),r=document.createElement("p");continue}if(!r.hasChildNodes()){e.removeChild(a);continue}break;case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":r.hasChildNodes()&&(t.appendChild(r),r=document.createElement("p")),t.appendChild(a);continue}}r.appendChild(a)}r.hasChildNodes()&&t.appendChild(r),e.appendChild(t)}function r(){try{return document.activeElement||null}catch(e){return null}}function a(e,t,r){var a="object"===(void 0===e?"undefined":_typeof(e))?e:document.getElementById(e);if(null==a)return null;var n=Array.isArray(t)?t:[t];jQuery(a).empty();for(var i=0,o=n.length;i<o;++i)if(Story.has(n[i]))return new Wikifier(a,Story.get(n[i]).processText().trim()),a;if(null!=r){var s=String(r).trim();""!==s&&new Wikifier(a,s)}return a}function n(e,t,r){var a=jQuery(document.createElement("div")),n=jQuery(document.createElement("button")),i=jQuery(document.createElement("pre")),o=L10n.get("errorTitle")+": "+(t||"unknown error");return n.addClass("error-toggle").ariaClick({label:L10n.get("errorToggle")},function(){n.hasClass("enabled")?(n.removeClass("enabled"),i.attr({"aria-hidden":!0,hidden:"hidden"})):(n.addClass("enabled"),i.removeAttr("aria-hidden hidden"))}).appendTo(a),jQuery(document.createElement("span")).addClass("error").text(o).appendTo(a),jQuery(document.createElement("code")).text(r).appendTo(i),i.addClass("error-source").attr({"aria-hidden":!0,hidden:"hidden"}).appendTo(a),a.addClass("error-view").appendTo(e),console.warn(o+"\n\t"+r.replace(/\n/g,"\n\t")),!1}function i(e,t){var r=i;switch(void 0===e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return t;break;case"object":if(null===e)return t;if(Array.isArray(e))return e.map(function(e){return r(e,t)}).join(", ");if(e instanceof Set)return[].concat(_toConsumableArray(e)).map(function(e){return r(e,t)}).join(", ");if(e instanceof Map){return"{ "+[].concat(_toConsumableArray(e)).map(function(e){var a=_slicedToArray(e,2),n=a[0],i=a[1];return r(n,t)+" → "+r(i,t)}).join(", ")+" }"}return e instanceof Date?e.toLocaleString():"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e);case"function":case"undefined":return t}return String(e)}return Object.freeze(Object.defineProperties({},{clone:{value:e},convertBreaks:{value:t},safeActiveElement:{value:r},setPageElement:{value:a},throwError:{value:n},toStringOrDefault:{value:i}}))}(),clone=_ref3.clone,convertBreaks=_ref3.convertBreaks,safeActiveElement=_ref3.safeActiveElement,setPageElement=_ref3.setPageElement,throwError=_ref3.throwError,toStringOrDefault=_ref3.toStringOrDefault;!function(){function e(e){13!==e.which&&32!==e.which||(e.preventDefault(),jQuery(safeActiveElement()||this).trigger("click"))}function t(e){return function(){var t=jQuery(this);t.is("[aria-pressed]")&&t.attr("aria-pressed","true"===t.attr("aria-pressed")?"false":"true"),e.apply(this,arguments)}}function r(e){return t(function(){jQuery(this).off(".aria-clickable").removeAttr("tabindex aria-controls aria-pressed").not("a,button").removeAttr("role").end().filter("button").prop("disabled",!0),e.apply(this,arguments)})}jQuery.fn.extend({ariaClick:function(a,n){if(0===this.length||0===arguments.length)return this;var i=a,o=n;return null==o&&(o=i,i=undefined),i=jQuery.extend({namespace:undefined,one:!1,selector:undefined,data:undefined,controls:undefined,pressed:undefined,label:undefined},i),"string"!=typeof i.namespace?i.namespace="":"."!==i.namespace[0]&&(i.namespace="."+i.namespace),"boolean"==typeof i.pressed&&(i.pressed=i.pressed?"true":"false"),this.filter("button").prop("type","button"),this.not("a,button").attr("role","button"),this.attr("tabindex",0),null!=i.controls&&this.attr("aria-controls",i.controls),null!=i.pressed&&this.attr("aria-pressed",i.pressed),null!=i.label&&this.attr({"aria-label":i.label,title:i.label}),this.not("button").on("keypress.aria-clickable"+i.namespace,i.selector,e),this.on("click.aria-clickable"+i.namespace,i.selector,i.data,i.one?r(o):t(o)),this}})}(),function(){jQuery.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];if(0!==r.length){var n=document.createDocumentFragment();r.forEach(function(t){return new Wikifier(n,t,e)});var i=[].concat(_toConsumableArray(n.querySelectorAll(".error"))).map(function(e){return e.textContent.replace(errorPrologRegExp,"")});if(i.length>0)throw new Error(i.join("; "))}},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];this.wikiWithOptions.apply(this,[undefined].concat(t))}}),jQuery.fn.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];if(0===this.length||0===r.length)return this;var n=document.createDocumentFragment();return r.forEach(function(t){return new Wikifier(n,t,e)}),this.append(n),this},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return this.wikiWithOptions.apply(this,[undefined].concat(t))}})}();var Util=function(){function e(e){return Object.freeze(Object.assign(Object.create(null),e))}function t(e){return Object.prototype.toString.call(e).slice(8,-1)}function r(e){var t=void 0;switch(void 0===e?"undefined":_typeof(e)){case"number":t=e;break;case"string":t=Number(e);break;default:return!1}return!Number.isNaN(t)&&Number.isFinite(t)}function a(e){return"boolean"==typeof e||"string"==typeof e&&("true"===e||"false"===e)}function n(e){return String(e).trim().replace(/[^\w\s\u2013\u2014-]+/g,"").replace(/[_\s\u2013\u2014-]+/g,"-").toLocaleLowerCase()}function i(e){if(null==e)return"";var t=String(e);return t&&p.test(t)?t.replace(f,function(e){return g[e]}):t}function o(e){if(null==e)return"";var t=String(e);return t&&v.test(t)?t.replace(m,function(e){return y[e.toLowerCase()]}):t}function s(e,t){var r=String(e),a=Math.trunc(t),n=r.charCodeAt(a);if(Number.isNaN(n))return{char:"",start:-1,end:-1};var i={char:r.charAt(a),start:a,end:a};if(n<55296||n>57343)return i;if(n>=55296&&n<=56319){var o=a+1;if(o>=r.length)return i;var s=r.charCodeAt(o);return s<56320||s>57343?i:(i.char=i.char+r.charAt(o),i.end=o,i)}if(0===a)return i;var u=a-1,l=r.charCodeAt(u);return l<55296||l>56319?i:(i.char=r.charAt(u)+i.char,i.start=u,i)}function u(){return b.now()}function l(e){var t=w.exec(String(e));if(null===t)throw new SyntaxError('invalid time value syntax: "'+e+'"');var r=Number(t[1]);if(1===t[2].length&&(r*=1e3),Number.isNaN(r)||!Number.isFinite(r))throw new RangeError('invalid time value: "'+e+'"');return r}function c(e){if("number"!=typeof e||Number.isNaN(e)||!Number.isFinite(e)){var r=void 0;switch(void 0===e?"undefined":_typeof(e)){case"string":r='"'+e+'"';break;case"number":r=String(e);break;default:r=t(e)}throw new Error("invalid milliseconds: "+r)}return e+"ms"}function d(e){if(!e.includes("-"))switch(e){case"bgcolor":return"backgroundColor";case"float":return"cssFloat";default:return e}return("-ms-"===e.slice(0,4)?e.slice(1):e).split("-").map(function(e,t){return 0===t?e:e.toUpperFirst()}).join("")}function h(e){var t=document.createElement("a"),r=Object.create(null);t.href=e,t.search&&t.search.replace(/^\?/,"").splitOrEmpty(/(?:&(?:amp;)?|;)/).forEach(function(e){var t=e.split("="),a=_slicedToArray(t,2),n=a[0],i=a[1];r[n]=i});var a=t.host&&"/"!==t.pathname[0]?"/"+t.pathname:t.pathname;return{href:t.href,protocol:t.protocol,host:t.host,hostname:t.hostname,port:t.port,path:""+a+t.search,pathname:a,query:t.search,search:t.search,queries:r,searches:r,hash:t.hash}}var f=/[&<>"'`]/g,p=new RegExp(f.source),g=Object.freeze({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),m=/&(?:amp|#38|#x26|lt|#60|#x3c|gt|#62|#x3e|quot|#34|#x22|apos|#39|#x27|#96|#x60);/gi,v=new RegExp(m.source,"i"),y=Object.freeze({"&":"&","&":"&","&":"&","<":"<","<":"<","<":"<",">":">",">":">",">":">",""":'"',""":'"',""":'"',"'":"'","'":"'","'":"'","`":"`","`":"`"}),b=Has.performance?performance:Date,w=/^([+-]?(?:\d*\.)?\d+)([Mm]?[Ss])$/;return Object.freeze(Object.defineProperties({},{toEnum:{value:e},toStringTag:{value:t},isNumeric:{value:r},isBoolean:{value:a},slugify:{value:n},escape:{value:i},unescape:{value:o},charAndPosAt:{value:s},fromCssTime:{value:l},toCssTime:{value:c},fromCssProperty:{value:d},parseUrl:{value:h},now:{value:u},random:{value:Math.random},entityEncode:{value:i},entityDecode:{value:o}, -evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return f}function a(e){f=Math.clamp(e,.2,5),l("rate",f)}function n(){return p}function i(e){p=Math.clamp(e,0,1),l("volume",p)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");h.set(e,t)}function u(e){h.delete(e)}function l(e,t){h.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var h=new Map,f=1,p=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,a=/\.([^.\/\\]+)$/,n=e.getType,i=[],o=document.createElement("audio");if(t.forEach(function(e){var t=null;switch(void 0===e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(null===(s=r.exec(e)))throw new Error("source data URI missing media type")}else if(null===(s=a.exec(Util.parseUrl(e).pathname)))throw new Error("source URL missing file extension");var u=n(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=n(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+(void 0===e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=Browser.isOpera?t.type.replace(/;.*$/,""):t.type,o.appendChild(c),i.push(t)}}),!o.hasChildNodes())if(Browser.isIE)o.src=undefined;else{var s=document.createElement("source");s.src=undefined,s.type=undefined,o.appendChild(s)}this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var a=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return a._error=!1}).on("error",function(){return a._error=!0}).find("source:last-of-type").on("error",function(){return a._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!a.audio)return void SimpleAudio.unsubscribe(a);switch(e){case"mute":a._updateAudioMute();break;case"rate":a._updateAudioRate();break;case"stop":a.stop();break;case"volume":a._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this);var e=this.audio;if(e){for(this.fadeStop(),this.stop(),jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}}},{key:"_updateAudioMute",value:function(){this.audio&&(this.audio.muted=this._mute||SimpleAudio.mute)}},{key:"_updateAudioRate",value:function(){this.audio&&(this.audio.playbackRate=this._rate*SimpleAudio.rate)}},{key:"_updateAudioVolume",value:function(){this.audio&&(this.audio.volume=this._volume*SimpleAudio.volume)}},{key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return!this.audio||this.audio.readyState===HTMLMediaElement.HAVE_NOTHING}},{key:"hasMetadata",value:function(){return!!this.audio&&this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return!!this.audio&&this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return!!this.audio&&this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return!!this.audio&&this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!!this.audio&&!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return!!this.audio&&(this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended)}},{key:"isEnded",value:function(){return!this.audio||this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return!!this.audio&&this.audio.loop}},{key:"load",value:function(){this.audio&&("auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load())}},{key:"play",value:function(){this.audio&&this.audio.play()}},{key:"pause",value:function(){this.audio&&this.audio.pause()}},{key:"stop",value:function(){this.audio&&(this.pause(),this.time=0,this._trigger(":stop"))}},{key:"fadeWithDuration",value:function(e,t,r){var a=this;if(this.audio){this.fadeStop();var n=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);n!==i&&(this.volume=n,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;n<i?(t=n,r=i):(t=i,r=n);var o=Number(e);o<1&&(o=1);var s=(i-n)/(o/.025);a._faderId=setInterval(function(){if(!a.isPlaying())return void a.fadeStop();a.volume=Math.clamp(a.volume+s,t,r),0===a.volume&&a.pause(),a.volume===i&&(a.fadeStop(),a._trigger(":fade"))},25)}),this.play())}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if(this.audio){if("function"!=typeof r)throw new Error("listener parameter must be a function");var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(n,r),this}}},{key:"one",value:function(t,r){if(this.audio){if("function"!=typeof r)throw new Error("listener parameter must be a function");var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(n,r),this}}},{key:"off",value:function(t,r){if(this.audio){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(n,r),this}}},{key:"duration",get:function(){return this.audio?this.audio.duration:NaN}},{key:"ended",get:function(){return!this.audio||this.audio.ended}},{key:"loop",get:function(){return!!this.audio&&this.audio.loop},set:function(e){this.audio&&(this.audio.loop=!!e)}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return!!this.audio&&this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio?this.audio.duration-this.audio.currentTime:NaN}},{key:"time",get:function(){return this.audio?this.audio.currentTime:NaN},set:function(e){var t=this;if(this.audio)try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var a=document.createElement("audio");r[t]=""!==a.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,a=t.toLowerCase(),n=r.hasOwnProperty(a)?r[a]:"audio/"+a;return e._verifyType(n)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:":fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:":stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,a=void 0,n=void 0,i=void 0;if(e instanceof m)r=!0,a=e.clone(),n=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,a=r?e.track.clone():e.track,n=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}a.stop(),a.loop=!1,a.mute=!1,a.volume=n,a.rate=i,a.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:a,volume:n,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var a=Math.clamp(t,0,1)*this.current.volume,n=void 0;null!=r&&(n=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,a,n),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:a},volume:{get:n,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),SimpleStore=function(){function e(e,a){if(r)return r.create(e,a);for(var n=0;n<t.length;++n)if(t[n].init(e,a))return r=t[n],r.create(e,a);throw new Error("no valid storage adapters found")}var t=[],r=null;return Object.freeze(Object.defineProperties({},{adapters:{value:t},create:{value:e}}))}();SimpleStore.adapters.push(function(){function e(){function e(e){try{var t=window[e],r="_sc_"+String(Date.now());t.setItem(r,r);var a=t.getItem(r)===r;return t.removeItem(r),a}catch(e){}return!1}return r=e("localStorage")&&e("sessionStorage")}function t(e,t){if(!r)throw new Error("adapter not initialized");return new a(e,t)}var r=!1,a=function(){function e(t,r){_classCallCheck(this,e);var a=t+".",n=null,i=null;r?(n=window.localStorage,i="localStorage"):(n=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_engine:{value:n},_prefix:{value:a},_prefixRe:{value:new RegExp("^"+RegExp.escape(a))},name:{value:i},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function(){for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!("string"!=typeof e||!e)&&this._engine.hasOwnProperty(this._prefix+e)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota[_\s]?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!("string"!=typeof e||!e)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e){return JSON.stringify(e)}},{key:"_deserialize",value:function(e){return JSON.parse((!e || e[0]=="{")?e:LZString.decompressFromUTF16(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}()),SimpleStore.adapters.push(function(){function e(e){try{var t="_sc_"+String(Date.now());o._setCookie(t,o._serialize(t),undefined),i=o._deserialize(o._getCookie(t))===t,o._setCookie(t,undefined,n)}catch(e){i=!1}return i&&r(e),i}function t(e,t){if(!i)throw new Error("adapter not initialized");return new o(e,t)}function r(e){if(""!==document.cookie)for(var t=e+".",r=new RegExp("^"+RegExp.escape(t)),i=e+"!.",s=e+"*.",u=/\.(?:state|rcWarn)$/,l=document.cookie.split(/;\s*/),c=0;c<l.length;++c){var d=l[c].split("="),h=decodeURIComponent(d[0]);if(r.test(h)){var f=decodeURIComponent(d[1]);""!==f&&function(){var e=!u.test(h);o._setCookie(h,undefined,n),o._setCookie(h.replace(r,function(){return e?i:s}),f,e?a:undefined)}()}}}var a="Tue, 19 Jan 2038 03:14:07 GMT",n="Thu, 01 Jan 1970 00:00:00 GMT",i=!1,o=function(){function e(t,r){_classCallCheck(this,e);var a=t+(r?"!":"*")+".";Object.defineProperties(this,{_prefix:{value:a},_prefixRe:{value:new RegExp("^"+RegExp.escape(a))},name:{value:"cookie"},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function(){if(""===document.cookie)return[];for(var e=document.cookie.split(/;\s*/),t=[],r=0;r<e.length;++r){var a=e[r].split("="),n=decodeURIComponent(a[0]);if(this._prefixRe.test(n)){""!==decodeURIComponent(a[1])&&t.push(n.replace(this._prefixRe,""))}}return t}},{key:"has",value:function(t){return!("string"!=typeof t||!t)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persistent?a:undefined),!this.has(t))throw new Error("unknown validation error during set")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if("string"!=typeof t||!t||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,n),this.has(t))throw new Error("unknown validation error during delete")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var a=t[r].split("=");if(e===decodeURIComponent(a[0])){return decodeURIComponent(a[1])||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var a=encodeURIComponent(e)+"=";null!=t&&(a+=encodeURIComponent(t)),null!=r&&(a+="; expires="+r),a+="; path=/",document.cookie=a}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}());var DebugView=function(){return function(){function e(t,r,a,n){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:n,"aria-label":n,"data-type":null!=r?r:"","data-name":null!=a?a:""}).addClass("debug"),jQuery(this.break).addClass("debug hidden"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){if(null==e){var t={};return this.view.className.splitOrEmpty(/\s+/).forEach(function(e){"debug"!==e&&(t[e]=!0)}),t}if("object"===(void 0===e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"isEnabled",value:function(){return"enabled"===jQuery(document.documentElement).attr("data-debug-view")}},{key:"enable",value:function(){jQuery(document.documentElement).attr("data-debug-view","enabled"),jQuery.event.trigger(":debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeAttr("data-debug-view"),jQuery.event.trigger(":debugviewupdate")}},{key:"toggle",value:function(){"enabled"===jQuery(document.documentElement).attr("data-debug-view")?e.disable():e.enable()}}]),e}()}(),PRNGWrapper=function(){return function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),a=t.pull;a>0;--a)r.random();return r}}]),e}()}(),StyleWrapper=function(){var e=new RegExp(Patterns.cssImage,"g"),t=new RegExp(Patterns.cssImage);return function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var a=r;t.test(a)&&(e.lastIndex=0,a=a.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var a=Story.get(r);a.tags.includes("Twine.image")&&(r=a.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=a:this.style.appendChild(document.createTextNode(a))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}()}(),Diff=function(){function e(t,a){for(var n=Object.prototype.toString,i=t instanceof Array,o=[].concat(Object.keys(t),Object.keys(a)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),s={},u=void 0,l=function(e){return e===u},c=0,d=o.length;c<d;++c){var h=o[c],f=t[h],p=a[h];if(t.hasOwnProperty(h))if(a.hasOwnProperty(h)){if(f===p)continue;if((void 0===f?"undefined":_typeof(f))===(void 0===p?"undefined":_typeof(p)))if("function"==typeof f)f.toString()!==p.toString()&&(s[h]=[r.Copy,p]);else if("object"!==(void 0===f?"undefined":_typeof(f))||null===f)s[h]=[r.Copy,p];else{var g=n.call(f),m=n.call(p);if(g===m)if(f instanceof Date)Number(f)!==Number(p)&&(s[h]=[r.Copy,clone(p)]);else if(f instanceof Map)s[h]=[r.Copy,clone(p)];else if(f instanceof RegExp)f.toString()!==p.toString()&&(s[h]=[r.Copy,clone(p)]);else if(f instanceof Set)s[h]=[r.Copy,clone(p)];else if("[object Object]"!==g)s[h]=[r.Copy,clone(p)];else{var v=e(f,p);null!==v&&(s[h]=v)}else s[h]=[r.Copy,clone(p)]}else s[h]=[r.Copy,"object"!==(void 0===p?"undefined":_typeof(p))||null===p?p:clone(p)]}else if(i&&Util.isNumeric(h)){var y=Number(h);if(!u){u="";do{u+="~"}while(o.some(l));s[u]=[r.SpliceArray,y,y]}y<s[u][1]&&(s[u][1]=y),y>s[u][2]&&(s[u][2]=y)}else s[h]=r.Delete;else s[h]=[r.Copy,"object"!==(void 0===p?"undefined":_typeof(p))||null===p?p:clone(p)]}return Object.keys(s).length>0?s:null}function t(e,a){for(var n=Object.keys(a||{}),i=clone(e),o=0,s=n.length;o<s;++o){var u=n[o],l=a[u];if(l===r.Delete)delete i[u];else if(l instanceof Array)switch(l[0]){case r.SpliceArray:i.splice(l[1],l[2]-l[1]+1);break;case r.Copy:i[u]=clone(l[1]);break;case r.CopyDate:i[u]=new Date(l[1])}else i[u]=t(i[u],l)}return i}var r=Util.toEnum({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{Op:{value:r},diff:{value:e},patch:{value:t}}))}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=l10nStrings[r],o=0;n.test(i);){if(++o>50)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");a.lastIndex=0,i=i.replace(a,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return i}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var a=/\{\w+\}/g,n=new RegExp(a.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorToggle:"Toggle the error view",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugBarNoWatches:"— no watches set —",debugBarAddWatch:"Add watch",debugBarDeleteWatch:"Delete watch",debugBarWatchAll:"Watch all",debugBarWatchNone:"Delete all",debugBarLabelAdd:"Add",debugBarLabelWatch:"Watch",debugBarLabelTurn:"Turn",debugBarLabelViews:"Views",debugBarViewsToggle:"Toggle the debug views",debugBarWatchToggle:"Toggle the watch panel",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload", -autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}return Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),navigation:Object.seal({override:undefined}),passages:Object.seal({descriptions:undefined,displayTitles:!1,nobr:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),a=0;a<t.length;++a)if(r.style[t[a]]!==undefined)return e.get(t[a]);return""}()})}(),State=function(){function e(){session.delete("state"),W=[],R=c(),F=-1,B=[],V=null===V?null:new PRNGWrapper(V.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(a(e),!0)}return!1}function r(e){var t={index:F};return e?t.history=clone(W):t.delta=A(W),B.length>0&&(t.expired=[].concat(_toConsumableArray(B))),null!==V&&(t.seed=V.seed),t}function a(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==V&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===V&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");W=t?clone(e.history):P(e.delta),F=e.index,B=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(V.seed=e.seed),g(F)}function n(){return r(!0)}function i(e){return a(e,!0)}function o(){return B}function s(){return B.length+v()}function u(){return B.concat(W.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!B.includes(e)||!!W.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return R}function h(){return F}function f(){return R.title}function p(){return R.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch(void 0===e?"undefined":_typeof(e)){case"object":R=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);R=clone(W[e]);break;default:throw new TypeError('moment activation attempted with a "'+(void 0===e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==V&&(V=PRNGWrapper.unmarshal({seed:V.seed,pull:R.pull})),session.set("state",r()),jQuery.event.trigger(":historyupdate"),R}function m(){return W}function v(){return F+1}function y(){return W.length}function b(){return 0===W.length}function w(){return W.length>0?W[F]:null}function k(){return W.length>0?W[W.length-1]:null}function S(){return W.length>0?W[0]:null}function E(e){return b()||e<0||e>F?null:W[e]}function x(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:W[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=F;t>=0;--t)if(W[t].title===e)return!0;return!1}function C(e){if(v()<y()&&W.splice(v(),y()-v()),W.push(c(e,R.variables)),V&&(k().pull=V.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)B.push(W.shift().title);return F=y()-1,g(F),v()}function O(e){return!(null==e||e<0||e>=y()||e===F)&&(F=e,g(F),!0)}function T(e){return null!=e&&0!==e&&O(F+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,a=e.length;r<a;++r)t.push(Diff.diff(e[r-1],e[r]));return t}function P(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,a=e.length;r<a;++r)t.push(Diff.patch(t[r-1],e[r]));return t}function _(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}V=new PRNGWrapper(e,t),R.pull=V.pull}function N(){return V?V.random():Math.random()}function D(){U={},TempVariables=U}function M(){return U}function I(e){var t=Q(e);if(null!==t){for(var r=t.names,a=t.store,n=0,i=r.length;n<i;++n){if(void 0===a[r[n]])return;a=a[r[n]]}return a}}function L(e,t){var r=Q(e);if(null===r)return!1;for(var a=r.names,n=a.pop(),i=r.store,o=0,s=a.length;o<s;++o){if(void 0===i[a[o]])return!1;i=i[a[o]]}return i[n]=t,!0}function Q(e){for(var t={store:"$"===e[0]?State.variables:State.temporary,names:[]},r=e,a=void 0;null!==(a=z.exec(r));)r=r.slice(a[0].length),a[1]?t.names.push(a[1]):a[2]?t.names.push(a[2]):a[3]?t.names.push(a[3]):a[4]?t.names.push(a[4]):a[5]?t.names.push(I(a[5])):a[6]&&t.names.push(Number(a[6]));return""===r?t:null}var W=[],R=c(),F=-1,B=[],V=null,U={},z=new RegExp("^(?:"+Patterns.variableSigil+"("+Patterns.identifier+")|\\.("+Patterns.identifier+")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|("+Patterns.variableSigil+Patterns.identifierFirstChar+".*)|(\\d+))\\])");return Object.freeze(Object.defineProperties({},{reset:{value:e},restore:{value:t},marshalForSave:{value:n},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:h},passage:{get:f},variables:{get:p},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:E},peek:{value:x},has:{value:j},create:{value:C},goTo:{value:O},go:{value:T},deltaEncode:{value:A},deltaDecode:{value:P},initPRNG:{value:_},random:{value:N},clearTemporary:{value:D},temporary:{get:M},getVar:{value:I},setVar:{value:L},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,a,n){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:a,one:!!r}):(i=r,o={namespace:n,one:!!a,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,a,n,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),a&&o.addClass(a),i&&o.attr("title",i),n&&o.text(n),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*n,a(o,Math.easeInOut(i)),(1===n&&i>=1||-1===n&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function a(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var n="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,a(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){l+=n,window.scroll(0,i+u*(s*Math.easeInOut(l))),l>=1&&window.clearInterval(c)}function a(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}var n=null!=t?Number(t):.1;Number.isNaN(n)||!Number.isFinite(n)||n<0?n=.1:n>1&&(n=1);var i=window.scrollY?window.scrollY:document.body.scrollTop,o=function(e){var t=a(e),r=t+e.offsetHeight,n=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=n+i;return t>=n&&r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}(e),s=Math.abs(i-o),u=i>o?-1:1,l=0,c=void 0;c=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,a=e.length;r<a;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,a=State.turns,n=0,i=e.length;n<i&&a>-1;++n){var o=t.lastIndexOf(e[n]);a=Math.min(a,-1===o?-1:r-o)}return a}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("random called with insufficient parameters");case 1:e=0,t=Math.trunc(arguments[0]);break;default:e=Math.trunc(arguments[0]),t=Math.trunc(arguments[1])}if(!Number.isInteger(e))throw new Error("random min parameter must be an integer");if(!Number.isInteger(t))throw new Error("random max parameter must be an integer");if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("randomFloat called with insufficient parameters");case 1:e=0,t=Number(arguments[0]);break;default:e=Number(arguments[0]),t=Number(arguments[1])}if(Number.isNaN(e)||!Number.isFinite(e))throw new Error("randomFloat min parameter must be a number");if(Number.isNaN(t)||!Number.isFinite(t))throw new Error("randomFloat max parameter must be a number");if(e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,a=e.length;r<a;++r)t=t.concat(Story.get(e[r]).tags);return t}function temporary(){return State.temporary}function time(){return null===Engine.lastPlay?0:Util.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,a=0,n=e.length;a<n&&r>0;++a)r=Math.min(r,t.count(e[a]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,a=new Map,n=0,i=0,o=r.length;i<o;++i){var s=r[i];if(a.has(s))a.get(s)&&++n;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++n,a.set(s,!0)):a.set(s,!1)}}}return n}function evalJavaScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,parse(String(code)),output)}var _ref8=function(){function e(e){return e.reduce(function(e,t){return e=e.then(t)},Promise.resolve())}function t(e){return Util.parseUrl(e).path.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w]+/g,"-").toLocaleLowerCase()}function r(){function r(e){return new Promise(function(r,a){jQuery(document.createElement("script")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):a(e.target)}).appendTo(document.head).attr({id:"script-imported-"+t(e),type:"text/javascript",src:e})})}for(var a=arguments.length,n=Array(a),i=0;i<a;i++)n[i]=arguments[i];return Promise.all(n.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}function a(){function r(e){return new Promise(function(r,a){jQuery(document.createElement("link")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):a(e.target)}).appendTo(document.head).attr({id:"style-imported-"+t(e),rel:"stylesheet",href:e})})}for(var a=arguments.length,n=Array(a),i=0;i<a;i++)n[i]=arguments[i];return Promise.all(n.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}return{importScripts:r,importStyles:a}}(),importScripts=_ref8.importScripts,importStyles=_ref8.importStyles,parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var n=e,i=void 0;null!==(i=r.exec(n));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(a.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=n.slice(s);/^\s+not\b/.test(u)&&(n=n.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(n=n.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return n}var t=Object.freeze({$:"State.variables.",_:"State.temporary.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),a=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=0,t=function(){function t(r,a,n){_classCallCheck(this,t),t.Parser.Profile.isEmpty()&&t.Parser.Profile.compile(),Object.defineProperties(this,{source:{value:String(a)},options:{writable:!0,value:Object.assign({profile:"all"},n)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==r?this.output=document.createDocumentFragment():r.jquery?this.output=r[0]:this.output=r;try{++e,this.subWikify(this.output),1===e&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--e}}return _createClass(t,[{key:"subWikify",value:function(e,r,a){var n=this.output,i=void 0;this.output=e,null!=a&&"object"===(void 0===a?"undefined":_typeof(a))&&(i=this.options,this.options=Object.assign({},this.options,a));var o=t.Parser.Profile.get(this.options.profile),s=r?new RegExp("(?:"+r+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,u=void 0,l=void 0;do{if(o.parserRegExp.lastIndex=this.nextMatch,s&&(s.lastIndex=this.nextMatch),l=o.parserRegExp.exec(this.source),(u=s?s.exec(this.source):null)&&(!l||u.index<=l.index))return u.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,u.index),this.matchStart=u.index,this.matchLength=u[0].length,this.matchText=u[0],this.nextMatch=s.lastIndex,this.output=n,void(i&&(this.options=i));if(l){l.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,l.index),this.matchStart=l.index,this.matchLength=l[0].length,this.matchText=l[0],this.nextMatch=o.parserRegExp.lastIndex;for(var c=void 0,d=1,h=l.length;d<h;++d)if(l[d]){c=d-1;break}if(o.parsers[c].handler(this),null!=TempState.break)break}}while(u||l);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=n,i&&(this.options=i)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this._rawArgs)}}],[{key:"wikifyEval",value:function(e){var r=document.createDocumentFragment();new t(r,e);var a=r.querySelector(".error");if(null!==a)throw new Error(a.textContent.replace(errorPrologRegExp,""));return r}},{key:"createInternalLink",value:function(e,t,r,a){var n=jQuery(document.createElement("a"));return null!=t&&(n.attr("data-passage",t),Story.has(t)?(n.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&n.addClass("link-visited")):n.addClass("link-broken"),n.ariaClick({one:!0},function(){"function"==typeof a&&a(),Engine.play(t)})),r&&n.append(document.createTextNode(r)),e&&n.appendTo(e),n[0]}},{key:"createExternalLink",value:function(e,t,r){var a=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&a.attr({href:t,tabindex:0}),a[0]}},{key:"isExternalLink",value:function(e){return!Story.has(e)&&(new RegExp("^"+Patterns.url,"gim").test(e)||/[\/.?#]/.test(e))}}]),t}();return Object.defineProperty(t,"Parser",{value:function(){function e(){return d}function t(e){if("object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("Wikifier.Parser.add parser parameter must be an object");if(!e.hasOwnProperty("name"))throw new Error('parser object missing required "name" property');if("string"!=typeof e.name)throw new Error('parser object "name" property must be a string');if(!e.hasOwnProperty("match"))throw new Error('parser object missing required "match" property');if("string"!=typeof e.match)throw new Error('parser object "match" property must be a string');if(!e.hasOwnProperty("handler"))throw new Error('parser object missing required "handler" property');if("function"!=typeof e.handler)throw new Error('parser object "handler" property must be a function');if(e.hasOwnProperty("profiles")&&!Array.isArray(e.profiles))throw new Error('parser object "profiles" property must be an array');if(n(e.name))throw new Error('cannot clobber existing parser "'+e.name+'"');d.push(e)}function r(e){var t=d.find(function(t){return t.name===e});t&&d.delete(t)}function a(){return 0===d.length}function n(e){return!!d.find(function(t){return t.name===e})}function i(e){return d.find(function(t){return t.name===e})||null}function o(){return h}function s(){var e=d,t=e.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return h=Object.freeze({all:{parsers:e,parserRegExp:new RegExp(e.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{parsers:t,parserRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")}})}function u(){return"object"!==(void 0===h?"undefined":_typeof(h))||0===Object.keys(h).length}function l(e){if("object"!==(void 0===h?"undefined":_typeof(h))||!h.hasOwnProperty(e))throw new Error('nonexistent parser profile "'+e+'"');return h[e]}function c(e){return"object"===(void 0===h?"undefined":_typeof(h))&&h.hasOwnProperty(e)}var d=[],h=void 0;return Object.freeze(Object.defineProperties({},{parsers:{get:e},add:{value:t},delete:{value:r},isEmpty:{value:a},has:{value:n},get:{value:i},Profile:{value:Object.freeze(Object.defineProperties({},{profiles:{get:o},compile:{value:s},isEmpty:{value:u},has:{value:c},get:{value:l}}))}}))}()}),Object.defineProperties(t,{helpers:{value:{}},getValue:{value:State.getVar},setValue:{value:State.setVar},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(t.helpers,{inlineCss:{value:function(){function e(e){var r={classes:[],id:"",styles:{}},a=void 0;do{t.lastIndex=e.nextMatch;var n=t.exec(e.source);a=n&&n.index===e.nextMatch,a&&(n[1]?r.styles[Util.fromCssProperty(n[1])]=n[2].trim():n[3]?r.styles[Util.fromCssProperty(n[3])]=n[4].trim():n[5]?r.classes=r.classes.concat(n[5].slice(1).split(/\./)):n[6]&&(r.id=n[6].slice(1).split(/#/).pop()),e.nextMatch=t.lastIndex)}while(a);return r}var t=new RegExp(Patterns.inlineCss,"gm");return e}()},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:t.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var a=e[r];switch(a.nodeType){case Node.ELEMENT_NODE:var n=a.nodeName.toUpperCase();if("BR"===n)return!0;var i=t?window.getComputedStyle(a,null):a.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(n){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},createShadowSetterCallback:{value:function(){function e(){if(!n&&!(n=t.Parser.get("macro")))throw new Error('cannot find "macro" parser');return n}function r(){for(var t=n||e(),r=new Set,a=t.context;null!==a;a=a.parent)a._shadows&&a._shadows.forEach(function(e){return r.add(e)});return[].concat(_toConsumableArray(r))}function a(e){var t={};return r().forEach(function(e){var r=e.slice(1),a="$"===e[0]?State.variables:State.temporary;t[e]=a[r]}),function(){var r=Object.keys(t),a=r.length>0?{}:null;try{return r.forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;n.hasOwnProperty(r)&&(a[r]=n[r]),n[r]=t[e]}),Scripting.evalJavaScript(e)}finally{r.forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;t[e]=n[r],a.hasOwnProperty(r)?n[r]=a[r]:delete n[r]})}}}var n=null;return a}()},parseSquareBracketedMarkup:{value:function(e){function t(){return c>=e.source.length?s:e.source[c]}function r(t){return t<1||c+t>=e.source.length?s:e.source[c+t]}function a(){return{error:String.format.apply(String,arguments),pos:c}}function n(){l=c}function i(t){var r=e.source.slice(l,c).trim();if(""===r)throw new Error("malformed wiki "+(f?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(u.forceInternal=!0,u.link=r.slice(1)):u[t]=r,l=c}function o(e){++c;e:for(;;){switch(t()){case"\\":++c;var r=t();if(r!==s&&"\n"!==r)break;case s:case"\n":return s;case e:break e}++c}return c}var s=-1,u={},l=e.matchStart,c=l+1,d=void 0,h=void 0,f=void 0,p=void 0;if("["===(p=t()))f=u.isLink=!0;else{switch(f=!1,p){case"<":u.align="left",++c;break;case">":u.align="right",++c}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(c,c+3)))return a("malformed square-bracketed wiki markup");c+=3,u.isImage=!0}if("["!==function(){return c>=e.source.length?s:e.source[c++]}())return a("malformed wiki {0}",f?"link":"image");d=1,h=0,n();try{e:for(;;){switch(p=t()){case s:case"\n":return a("unterminated wiki {0}",f?"link":"image");case'"':if(o(p)===s)return a("unterminated double quoted string in wiki {0}",f?"link":"image");break;case"'":if((4===h||3===h&&f)&&o(p)===s)return a("unterminated single quoted string in wiki {0}",f?"link":"image");break;case"|":0===h&&(i(f?"text":"title"),++l,h=1);break;case"-":0===h&&">"===r(1)&&(i(f?"text":"title"),++c,l+=2,h=1);break;case"<":0===h&&"-"===r(1)&&(i(f?"link":"source"),++c,l+=2,h=2);break;case"[":if(-1===h)return a("unexpected left square bracket '['");++d,1===d&&(n(),++l);break;case"]":if(0===--d){switch(h){case 0:case 1:i(f?"link":"source"),h=3;break;case 2:i(f?"text":"title"),h=3;break;case 3:f?(i("setter"),h=-1):(i("link"),h=4);break;case 4:i("setter"),h=-1}if(++c,"]"===t()){++c;break e}--c}}++c}}catch(e){return a(e.message)}return u.pos=c,u}}}),t}();!function(){function e(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}Wikifier.Parser.add({name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator)}}),Wikifier.Parser.add({name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],r=0,a=e.matchLength,n=void 0,i=void 0;do{if(a>r)for(i=r;i<a;++i)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(a<r)for(i=r;i>a;--i)t.pop();r=a,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);n=o&&o.index===e.nextMatch,n&&(a=o[0].length,e.nextMatch+=o[0].length)}while(n)}}),Wikifier.Parser.add({name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,a=this.working.source,n=this.working.name,i=this.working.arguments,o=void 0;try{if(!(o=Macro.get(n))){if(Macro.tags.has(n)){var s=Macro.tags.get(n);return throwError(e.output,"child tag <<"+n+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+n+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&!(u=this.parseBody(e,o)))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+n+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+n+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({macro:o,name:n,args:l,payload:u,source:a,parent:this.context,parser:e});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i;try{o.handler(e.output,n,l,e,u)}finally{e._rawArgs=c}}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+n+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,a="/"+r,n="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,h=this.working.name,f=this.working.arguments,p=e.nextMatch;-1!==(e.matchStart=e.source.indexOf(this.match,e.nextMatch));)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case n:case a:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:h,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(p,y)}),d=g,h=m,f=v,p=b)}if(0===c){o.push({source:d,name:h,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(p,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return-1!==l?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),r=[],a=new RegExp("^"+Patterns.variable),n=void 0;null!==(n=t.exec(e));){var i=void 0;if(n[1])i=undefined;else if(n[2]){i=n[2];try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(n[3])i="";else if(n[4]){i=n[4];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error("unable to parse macro argument '"+i+"': "+e.message)}}else if(n[5]){i=n[5];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(n[6]){i=n[6];var o=Wikifier.helpers.parseSquareBracketedMarkup({source:i,matchStart:0});if(o.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+i+'": '+o.error);if(o.pos<i.length)throw new Error('unable to parse macro argument "'+i+'": unexpected character(s) "'+i.slice(o.pos)+'" (pos: '+o.pos+")");o.isLink?(i={isLink:!0},i.count=o.hasOwnProperty("text")?2:1,i.link=Wikifier.helpers.evalPassageId(o.link),i.text=o.hasOwnProperty("text")?Wikifier.helpers.evalText(o.text):i.link,i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null):o.isImage&&(i=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(Wikifier.helpers.evalPassageId(o.source)),o.hasOwnProperty("align")&&(i.align=o.align),o.hasOwnProperty("title")&&(i.title=Wikifier.helpers.evalText(o.title)),o.hasOwnProperty("link")&&(i.link=Wikifier.helpers.evalPassageId(o.link),i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link)),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null)}else if(n[7])if(i=n[7],a.test(i))i=State.getVar(i);else if(/^(?:settings|setup)[.[]/.test(i))try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}else if("null"===i)i=null;else if("undefined"===i)i=undefined;else if("true"===i)i=!0;else if("false"===i)i=!1;else{var s=Number(i);Number.isNaN(s)||(i=s)}else if(n[8]){var u=void 0;switch(n[8]){case"`":u="backquote expression";break;case'"':u="double quoted string";break;case"'":u="single quoted string"} -throw new Error("unterminated "+u+" in macro argument string")}r.push(i)}return r}}),Wikifier.Parser.add({name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=Wikifier.helpers.evalPassageId(t.link),a=t.hasOwnProperty("text")?Wikifier.helpers.evalText(t.text):r,n=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,i=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!Wikifier.isExternalLink(r)?Wikifier.createInternalLink(i,r,a,n):Wikifier.createExternalLink(i,r,a)}}),Wikifier.Parser.add({name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(Wikifier.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}}),Wikifier.Parser.add({name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=void 0;Config.debug&&(r=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),r.modes({block:!0}));var a=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,n=(Config.debug?r:e).output,i=void 0;if(t.hasOwnProperty("link")){var o=Wikifier.helpers.evalPassageId(t.link);n=t.forceInternal||!Wikifier.isExternalLink(o)?Wikifier.createInternalLink(n,o,null,a):Wikifier.createExternalLink(n,o),n.classList.add("link-image")}if(n=jQuery(document.createElement("img")).appendTo(n).get(0),i=Wikifier.helpers.evalPassageId(t.source),"data:"!==i.slice(0,5)&&Story.has(i)){var s=Story.get(i);s.tags.includes("Twine.image")&&(n.setAttribute("data-passage",s.title),i=s.text)}n.src=i,t.hasOwnProperty("title")&&(n.title=Wikifier.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(n.align=t.align)}}),Wikifier.Parser.add({name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);if(t&&t.index===e.matchStart){var r=jQuery(document.createElement("pre"));jQuery(document.createElement("code")).text(t[1]).appendTo(r),r.appendTo(e.output),e.nextMatch=this.lookahead.lastIndex}}}),Wikifier.Parser.add({name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}}),Wikifier.Parser.add({name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=Wikifier.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var r=this.blockRegExp.exec(e.source),a=r&&r.index===e.nextMatch,n=jQuery(document.createElement(a?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?n.addClass("marked"):(t.classes.forEach(function(e){return n.addClass(e)}),""!==t.id&&n.attr("id",t.id),n.css(t.styles)),a?(e.nextMatch+=r[0].length,e.subWikify(n[0],"\\n?"+this.terminator)):e.subWikify(n[0],this.terminator)}}),Wikifier.Parser.add({name:"verbatimText",profiles:["core"],match:'"{3}|<[Nn][Oo][Ww][Ii][Kk][Ii]>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<[Nn][Oo][Ww][Ii][Kk][Ii]>((?:.|\n)*?)<\/[Nn][Oo][Ww][Ii][Kk][Ii]>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output))}}),Wikifier.Parser.add({name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<[Hh][Rr]\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}}),Wikifier.Parser.add({name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}}),Wikifier.Parser.add({name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}}),Wikifier.Parser.add({name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(State.getVar(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new Wikifier((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}}),Wikifier.Parser.add({name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator)}}),Wikifier.Parser.add({name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),r=[],a=null,n=null,i=0,o=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(o=s&&s.index===e.nextMatch){var u=s[2];"k"===u?(t.className=s[1],e.nextMatch+=s[0].length+1):(u!==a&&(a=u,n=jQuery(document.createElement(this.rowTypes[u])).appendTo(t)),"c"===a?(n.css("caption-side",0===i?"top":"bottom"),e.nextMatch+=1,e.subWikify(n[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(n).get(0),r),++i)}}while(o)},rowHandler:function(e,t,r){var a=this,n=new RegExp(this.cellPattern,"gm"),i=0,o=1,s=void 0;do{n.lastIndex=e.nextMatch;var u=n.exec(e.source);if(s=u&&u.index===e.nextMatch){if("~"===u[1]){var l=r[i];l&&(++l.rowCount,l.$element.attr("rowspan",l.rowCount).css("vertical-align","middle")),e.nextMatch=u.index+u[0].length-1}else if(">"===u[1])++o,e.nextMatch=u.index+u[0].length-1;else{if(u[2]){e.nextMatch=u.index+u[0].length;break}!function(){++e.nextMatch;for(var n=Wikifier.helpers.inlineCss(e),s=!1,u=!1,l=void 0;" "===e.source.substr(e.nextMatch,1);)s=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(l=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):l=jQuery(document.createElement("td")).appendTo(t),r[i]={rowCount:1,$element:l},o>1&&(l.attr("colspan",o),o=1),e.subWikify(l[0],a.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(u=!0),n.classes.forEach(function(e){return l.addClass(e)}),""!==n.id&&l.attr("id",n.id),s&&u?n.styles["text-align"]="center":s?n.styles["text-align"]="right":u&&(n.styles["text-align"]="left"),l.css(n.styles),e.nextMatch=e.nextMatch-1}()}++i}}while(s)}}),Wikifier.Parser.add({name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],r=null,a=0,n=void 0,i=void 0;do{this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);if(n=o&&o.index===e.nextMatch){var s=o[2]?"ol":"ul",u=o[0].length;if(e.nextMatch+=o[0].length,u>a)for(i=a;i<u;++i)t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0));else if(u<a)for(i=a;i>u;--i)t.pop();else u===a&&s!==r&&(t.pop(),t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0)));a=u,r=s,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(n)}}),Wikifier.Parser.add({name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:\x3c!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}}),Wikifier.Parser.add({name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.spaceNoTerminator+"*(?:\\n|$)|(?:^|\\n)"+Patterns.spaceNoTerminator+"*\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"lineBreak",profiles:["core"],match:"\\n|<[Bb][Rr]\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}}),Wikifier.Parser.add({name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)",handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}}),Wikifier.Parser.add({name:"xmlProlog",profiles:["core"],match:"<\\?[Xx][Mm][Ll][^>]*\\?>",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"verbatimHtml",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:e}),Wikifier.Parser.add({name:"verbatimSvgTag",profiles:["core"],match:"<[Ss][Vv][Gg][^>]*>",lookahead:/(<[Ss][Vv][Gg][^>]*>(?:.|\n)*?<\/[Ss][Vv][Gg]>)/gm,handler:e}),Wikifier.Parser.add({name:"verbatimScriptTag",profiles:["core"],match:"<[Ss][Cc][Rr][Ii][Pp][Tt][^>]*>",lookahead:/(<[Ss][Cc][Rr][Ii][Pp][Tt]*>(?:.|\n)*?<\/[Ss][Cc][Rr][Ii][Pp][Tt]>)/gm,handler:e}),Wikifier.Parser.add({name:"styleTag",profiles:["core"],match:"<[Ss][Tt][Yy][Ll][Ee][^>]*>",lookahead:/(<[Ss][Tt][Yy][Ll][Ee]*>)((?:.|\n)*?)(<\/[Ss][Tt][Yy][Ll][Ee]>)/gm,imageMarkup:new RegExp(Patterns.cssImage,"g"),hasImageMarkup:new RegExp(Patterns.cssImage),handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);if(t&&t.index===e.matchStart){e.nextMatch=this.lookahead.lastIndex;var r=t[2];this.hasImageMarkup.test(r)&&(this.imageMarkup.lastIndex=0,r=r.replace(this.imageMarkup,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var a=Story.get(r);a.tags.includes("Twine.image")&&(r=a.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),jQuery(document.createDocumentFragment()).append(t[1]+r+t[3]).appendTo(e.output)}}}),Wikifier.Parser.add({name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],nobrElements:["colgroup","datalist","dl","figure","ol","optgroup","select","table","tbody","tfoot","thead","tr","ul"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],a=r&&r.toLowerCase();if(a){var n=this.voidElements.includes(a)||e.matchText.endsWith("/>"),i=this.nobrElements.includes(a),o=void 0,s=void 0;if(!n){o="<\\/"+a+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(!n&&!s)return throwError(e.output,"cannot find a closing tag for HTML <"+r+">",e.matchText+"…");var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;try{this.processAttributeDirectives(c)}catch(t){return throwError(e.output,"<"+a+">: "+t.message,e.matchText+"…")}c.hasAttribute("data-passage")&&(this.processDataAttributes(c),Config.debug&&(d=new DebugView(e.output,"html-"+a,a,e.matchText),d.modes({block:"img"===a,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild(c)}},processAttributeDirectives:function(e){[].concat(_toConsumableArray(e.attributes)).forEach(function(t){var r=t.name,a=t.value,n="@"===r[0];if(n||r.startsWith("sc-eval:")){var i=r.slice(n?1:8),o=void 0;try{o=Scripting.evalTwineScript(a)}catch(e){throw new Error('bad evaluation from attribute directive "'+r+'": '+e.message)}try{e.setAttribute(i,o),e.removeAttribute(r)}catch(e){throw new Error('cannot transform attribute directive "'+r+'" into attribute "'+i+'"')}}})},processDataAttributes:function(e){var t=e.getAttribute("data-passage");if(null!=t){var r=Wikifier.helpers.evalPassageId(t);if(r!==t&&(t=r,e.setAttribute("data-passage",r)),""!==t)if("IMG"===e.tagName.toUpperCase())"data:"!==t.slice(0,5)&&Story.has(t)&&(t=Story.get(t),t.tags.includes("Twine.image")&&(e.src=t.text.trim()));else{var a=e.getAttribute("data-setter"),n=void 0;null!=a&&""!==(a=String(a).trim())&&(n=Wikifier.helpers.createShadowSetterCallback(Scripting.parse(a))),Story.has(t)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof n&&n.call(this),Engine.play(t)})}}}})}();var Macro=function(){function e(t,r,n){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,n)});if(!h.test(t))throw new Error('invalid macro name "'+t+'"');if(a(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===(void 0===r?"undefined":_typeof(r)))c[t]=n?clone(r):r;else{if(!a(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=n?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(a(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function a(e){return c.hasOwnProperty(e)}function n(e){var t=null;return a(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],n=[].concat(r,Array.isArray(t)?t:[]),i=0;i<n.length;++i){var o=n[i];if(a(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);-1!==r&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},h=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:a},get:{value:n},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){return function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parent:{value:r.parent},parser:{value:r.parser},_output:{value:r.parser.output},_shadows:{writable:!0,value:null},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"addShadow",value:function(){var e=this;this._shadows||(this._shadows=new Set);for(var t=new RegExp("^"+Patterns.variable+"$"),r=arguments.length,a=Array(r),n=0;n<r;n++)a[n]=arguments[n];a.flatten().forEach(function(r){if("string"!=typeof r)throw new TypeError("variable name must be a string; type: "+(void 0===r?"undefined":_typeof(r)));if(!t.test(r))throw new Error('invalid variable name "'+r+'"');e._shadows.add(r)})}},{key:"createShadowWrapper",value:function(e,t,r){var a=this,n=void 0;return"function"==typeof e&&(n={},this.shadowView.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t]})),function(){for(var i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s];if("function"==typeof r&&r.apply(this,o),"function"==typeof e){var u=Object.keys(n),l=u.length>0?{}:null,c=Wikifier.Parser.get("macro"),d=void 0;try{u.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;r.hasOwnProperty(t)&&(l[t]=r[t]),r[t]=n[e]}),d=c.context,c.context=a,e.apply(this,o)}finally{d!==undefined&&(c.context=d),u.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t],l.hasOwnProperty(t)?r[t]=l[t]:delete r[t]})}}"function"==typeof t&&t.apply(this,o)}}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e||this.name,t||this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t||this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"shadows",get:function(){return[].concat(_toConsumableArray(this._shadows))}},{key:"shadowView",get:function(){var e=new Set;return this.contextSelectAll(function(e){return e._shadows}).forEach(function(t){return t._shadows.forEach(function(t){return e.add(t)})}),[].concat(_toConsumableArray(e))}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}()}();!function(){if(Macro.add("capture",{skipArgs:!0,tags:null,handler:function(){if(0===this.args.raw.length)return this.error("no story/temporary variable list specified");var e={};try{for(var t=new RegExp("("+Patterns.variable+")","g"),r=void 0;null!==(r=t.exec(this.args.raw));){var a=r[1],n=a.slice(1),i="$"===a[0]?State.variables:State.temporary;i.hasOwnProperty(n)&&(e[n]=i[n]),this.addShadow(a)}new Wikifier(this.output,this.payload[0].contents)}finally{this.shadows.forEach(function(t){var r=t.slice(1),a="$"===t[0]?State.variables:State.temporary;e.hasOwnProperty(r)?a[r]=e[r]:delete a[r]})}}}),Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("State\\.(variables|temporary)\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=State[t[1]],a=t[2];r.hasOwnProperty(a)&&delete r[a]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var a=r[1];e[a]=State.variables[a]}if(!storage.set("remember",e))return this.error("unknown error, cannot remember: "+this.args.raw);Config.debug&&this.debugView.modes({hidden:!0})},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,a=!1;null!==(r=t.exec(this.args.full));){var n=r[1];State.variables.hasOwnProperty(n)&&delete State.variables[n],e&&e.hasOwnProperty(n)&&(a=!0,delete e[n])}if(a&&!storage.set("remember",e))return this.error("unknown error, cannot update remember store");Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("include",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("display","include"),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=void 0;try{var t=this.payload.length;for(e=0;e<t;++e)switch(this.payload[e].name){case"else":if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);if(e+1!==t)return this.error("<<else>> must be the final clause");break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}var r=Scripting.evalJavaScript,a=!1;for(e=0;e<t;++e){if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||r(this.payload[e].args.full)){a=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<t;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!a,invalid:!a})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===(void 0===t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length;if(1===e)return this.error("no cases specified");var t=void 0;for(t=1;t<e;++t)switch(this.payload[t].name){case"default":if(this.payload[t].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[t].args.raw);if(t+1!==e)return this.error("<<default>> must be the final case");break;default:if(0===this.payload[t].args.length)return this.error("no value(s) specified for <<"+this.payload[t].name+">> (#"+t+")")}var r=void 0;try{r=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}var a=this.debugView,n=!1;for(Config.debug&&a.modes({nonvoid:!1,hidden:!0}),t=1;t<e;++t){if(Config.debug&&this.createDebugView(this.payload[t].name,this.payload[t].source).modes({nonvoid:!1}),"default"===this.payload[t].name||this.payload[t].args.some(function(e){return e===r})){n=!0,new Wikifier(this.output,this.payload[t].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++t;t<e;++t)this.createDebugView(this.payload[t].name,this.payload[t].source).modes({nonvoid:!1,hidden:!0,invalid:!0});a.modes({nonvoid:!1,hidden:!0,invalid:!n}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!n})}}}),Macro.add("for",{skipArgs:!0,tags:null,_hasRangeRe:new RegExp("^\\S.*?\\s+range\\s+\\S.*?$"),_rangeRe:new RegExp("^(?:State\\.(variables|temporary)\\.("+Patterns.identifier+")\\s*,\\s*)?State\\.(variables|temporary)\\.("+Patterns.identifier+")\\s+range\\s+(\\S.*?)$"),_3PartRe:/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/,handler:function(){var e=this.args.full.trim(),t=this.payload[0].contents.replace(/\n$/,"");if(0===e.length)this.self._handleFor.call(this,t,null,!0,null);else if(this.self._hasRangeRe.test(e)){var r=e.match(this.self._rangeRe);if(null===r)return this.error("invalid range form syntax, format: [index ,] value range collection");this.self._handleForRange.call(this,t,{type:r[1],name:r[2]},{type:r[3],name:r[4]},r[5])}else{var a=void 0,n=void 0,i=void 0;if(-1===e.indexOf(";")){if(/^\S+\s+in\s+\S+/i.test(e))return this.error("invalid syntax, for…in is not supported; see: for…range");if(/^\S+\s+of\s+\S+/i.test(e))return this.error("invalid syntax, for…of is not supported; see: for…range");n=e}else{var o=e.match(this.self._3PartRe);if(null===o)return this.error("invalid 3-part conditional form syntax, format: [init] ; [condition] ; [post]");a=o[1],n=o[2].trim(),i=o[3],0===n.length&&(n=!0)}this.self._handleFor.call(this,t,a,n,i)}},_handleFor:function(e,t,r,a){var n=Scripting.evalJavaScript,i=!0,o=Config.macros.maxLoopIterations;Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,t)try{n(t)}catch(e){return this.error("bad init expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}for(;n(r);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?e.replace(/^\n/,""):e),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{n(a)}catch(e){return this.error("bad post expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}},_handleForRange:function(e,t,r,a){var n=!0,i=void 0;try{i=this.self._toRangeList(a)}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});try{TempState.break=null;for(var o=0;o<i.length;++o)if(t.name&&(State[t.type][t.name]=i[o][0]),State[r.type][r.name]=i[o][1],new Wikifier(this.output,n?e.replace(/^\n/,""):e),n&&(n=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}}catch(e){return this.error("object"===(void 0===e?"undefined":_typeof(e))?e.message:e)}finally{TempState.break=null}},_toRangeList:function(e){var t=Scripting.evalJavaScript,r=void 0;try{r=t("{"===e[0]?"("+e+")":e)}catch(e){if("object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("bad range expression: "+e);throw e.message="bad range expression: "+e.message,e}var a=void 0;switch(void 0===r?"undefined":_typeof(r)){case"string":a=[];for(var n=0;n<r.length;){var i=Util.charAndPosAt(r,n);a.push([n,i.char]),n=1+i.end}break;case"object":if(Array.isArray(r))a=r.map(function(e,t){return[t,e]});else if(r instanceof Set)a=[].concat(_toConsumableArray(r)).map(function(e,t){return[t,e]});else if(r instanceof Map)a=[].concat(_toConsumableArray(r.entries()));else{if("Object"!==Util.toStringTag(r))throw new Error("unsupported range expression type: "+Util.toStringTag(r));a=Object.keys(r).map(function(e){return[e,r[e]]})}break;default: -throw new Error("unsupported range expression type: "+(void 0===r?"undefined":_typeof(r)))}return a}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){if(!this.contextHas(function(e){return"for"===e.name}))return this.error("must only be used in conjunction with its parent macro <<for>>");TempState.break="continue"===this.name?1:2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add(["button","link"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("button"===this.name?"button":"a")),r=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var a=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(t);this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(r=this.args[0].link),r=this.args[0].link}else t.append(document.createTextNode(this.args[0].text)),r=this.args[0].link;else t.wikiWithOptions({profile:"core"},this.args[0]),r=this.args.length>1?this.args[1]:undefined;null!=r?(t.attr("data-passage",r),Story.has(r)?(t.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&t.addClass("link-visited")):t.addClass("link-broken")):t.addClass("link-internal"),t.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=r},this.createShadowWrapper(""!==this.payload[0].contents?function(){return Wikifier.wikifyEval(e.payload[0].contents.trim())}:null,null!=r?function(){return Engine.play(r)}:null)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),a=this.args[1],n=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.checked?n:a)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,State.setVar(t,n)):State.setVar(t,a)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("a")),r=jQuery(document.createElement("span")),a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]);t.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},this.createShadowWrapper(function(){if("linkreplace"===e.name?t.remove():t.wrap('<span class="macro-'+e.name+'"></span>').replaceWith(function(){return t.html()}),""!==e.payload[0].contents){var n=document.createDocumentFragment();new Wikifier(n,e.payload[0].contents),r.append(n)}a&&setTimeout(function(){return r.removeClass("macro-"+e.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),r.addClass("macro-"+this.name+"-insert"),a&&r.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?r.insertBefore(t):r.insertAfter(t)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),a=this.args[1],n=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={}),TempState[this.name].hasOwnProperty(r)||(TempState[this.name][r]=0),jQuery(n).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&State.setVar(t,a)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(n.checked=!0,State.setVar(t,a))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),a=this.args[1],n="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.value)}).appendTo(this.output),State.setVar(t,a),i.textContent=a,n&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){delete postdisplay[e],setTimeout(function(){return i.focus()},Engine.minDomActionDelay)})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),a=this.args[1],n=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),"object"===(void 0===o?"undefined":_typeof(o))&&(o=o.link),jQuery(n).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),State.setVar(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),State.setVar(t,a),n.value=a,i&&(n.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+n.id]=function(e){delete postdisplay[e],setTimeout(function(){return n.focus()},Engine.minDomActionDelay)})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){for(var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output),t=0;t<this.args.length;++t){var r=void 0,a=void 0,n=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&n.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&n.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&n.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(a=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):a=r=this.args[t],State.variables.hasOwnProperty("#actions")&&State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables.hasOwnProperty("#actions")||(State.variables["#actions"]={}),State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(n||document.createTextNode(a))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,a=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var n=State.length-2;n>=0;--n)if(State.history[n].title!==State.passage){e=n,t=State.history[n].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(-1===e)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||-1!==e?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(a||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,a=void 0,n=void 0;if(1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),t=this.args[0].link,n=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,n=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")&&State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e])return void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(a||document.createTextNode(r)).appendTo(this.output);jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables.hasOwnProperty("#choice")||(State.variables["#choice"]={}),State.variables["#choice"][e]=!0,"function"==typeof n&&n()})).addClass("macro-"+this.name).append(a||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass()}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');e.remove()}}),Has.audio){var e=Object.freeze([":not",":all",":looped",":muted",":paused",":playing"]);Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track or group IDs"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[];try{var a=function e(r){var a=r.id,o=void 0;switch(a){case":all":o=n;break;case":looped":o=n.filter(function(e){return t[e].isLooped()});break;case":muted":o=n.filter(function(e){return t[e].isMuted()});break;case":paused":o=n.filter(function(e){return t[e].isPaused()});break;case":playing":o=n.filter(function(e){return t[e].isPlaying()});break;default:o=":"===a[0]?i[a]:[a]}if(r.hasOwnProperty("not")){var s=r.not.map(function(t){return e(t)}).flatten();o=o.filter(function(e){return!s.includes(e)})}return o},n=Object.freeze(Object.keys(t)),i=Macro.get("cacheaudio").groups;this.self.parseIds(String(this.args[0]).trim()).forEach(function(e){r.push.apply(r,_toConsumableArray(a(e)))}),r.forEach(function(e){if(!t.hasOwnProperty(e))throw new Error('track "'+e+'" does not exist')})}catch(e){return this.error(e.message)}for(var o=this.args.slice(1),s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=void 0,f=5,p=void 0,g=void 0;o.length>0;){var m=o.shift();switch(m){case"play":case"pause":case"stop":s=m;break;case"fadein":s="fade",h=1;break;case"fadeout":s="fade",h=0;break;case"fadeto":if(0===o.length)return this.error("fadeto missing required level value");if(s="fade",g=o.shift(),h=Number.parseFloat(g),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeto: "+g);break;case"fadeoverto":if(o.length<2){var v=[];return o.length<1&&v.push("seconds"),o.length<2&&v.push("level"),this.error("fadeoverto missing required "+v.join(" and ")+" value"+(v.length>1?"s":""))}if(s="fade",g=o.shift(),f=Number.parseFloat(g),Number.isNaN(f)||!Number.isFinite(f))return this.error("cannot parse fadeoverto: "+g);if(g=o.shift(),h=Number.parseFloat(g),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+g);break;case"volume":if(0===o.length)return this.error("volume missing required level value");if(g=o.shift(),u=Number.parseFloat(g),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse volume: "+g);break;case"mute":case"unmute":l="mute"===m;break;case"time":if(0===o.length)return this.error("time missing required seconds value");if(g=o.shift(),c=Number.parseFloat(g),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse time: "+g);break;case"loop":case"unloop":d="loop"===m;break;case"goto":if(0===o.length)return this.error("goto missing required passage title");if(g=o.shift(),p="object"===(void 0===g?"undefined":_typeof(g))?g.link:g,!Story.has(p))return this.error('passage "'+p+'" does not exist');break;default:return this.error("unknown action: "+m)}}try{r.forEach(function(e){var r=t[e];switch(null!=u&&(r.volume=u),null!=c&&(r.time=c),null!=l&&(r.mute=l),null!=d&&(r.loop=d),null!=p&&r.one("end",function(){return Engine.play(p)}),s){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(f,h)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}},parseIds:function(e){for(var t=[],r=/:?[^\s:()]+/g,a=void 0;null!==(a=r.exec(e));){var n=a[0];if(":not"===n){if(0===t.length)throw new Error('invalid negation: no group ID preceded ":not()"');var i=t[t.length-1];if(":"!==i.id[0])throw new Error('invalid negation of track "'+i.id+'": only groups may be negated with ":not()"');var o=function(e,t){var r=/\S/g,a=/[()]/g,n=void 0;if(r.lastIndex=t,null===(n=r.exec(e))||"("!==n[0])throw new Error('invalid ":not()" syntax: missing parentheticals');a.lastIndex=r.lastIndex;for(var i=r.lastIndex,o={str:"",nextMatch:-1},s=1;null!==(n=a.exec(e));)if("("===n[0]?++s:--s,s<1){o.nextMatch=a.lastIndex,o.str=e.slice(i,o.nextMatch-1);break}return o}(e,r.lastIndex);if(-1===o.nextMatch)throw new Error('unknown error parsing ":not()"');r.lastIndex=o.nextMatch,i.not=this.parseIds(o.str)}else t.push({id:n})}return t}}),Macro.add("cacheaudio",{tracks:{},groups:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim();if(/^:|\s/.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var r=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){var t=r.exec(e);return null===t?e:{format:t[1],src:t[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var n=this.self.tracks;n.hasOwnProperty(t)&&n[t].destroy(),n[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createaudiogroup",{tags:["track"],handler:function(){if(0===this.args.length)return this.error("no group ID specified");var t=String(this.args[0]).trim();if(/^[^:]|\s/.test(t))return this.error('invalid group ID "'+t+'": group IDs must start with a colon and may not contain whitespace');if(e.includes(t))return this.error('cannot clobber special group ID "'+t+'"');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var r=Macro.get("cacheaudio").tracks,a=[],n=1,i=this.payload.length;n<i;++n){if(this.payload[n].args.length<1)return this.error("no track ID specified");var o=String(this.payload[n].args[0]).trim();if(!r.hasOwnProperty(o))return this.error('track "'+o+'" does not exist');a.push(o),Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0})}var s=Macro.get("cacheaudio").groups;s.hasOwnProperty(t)&&delete s[t],s[t]=a,this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim();if(/^:|\s/.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),n=1,i=this.payload.length;n<i;++n){if(this.payload[n].args.length<2){var o=[];return this.payload[n].args.length<1&&o.push("track ID"),this.payload[n].args.length<2&&o.push("actions"),this.error("no "+o.join(" or ")+" specified")}var s=String(this.payload[n].args[0]).trim();if(!t.hasOwnProperty(s))return this.error('track "'+s+'" does not exist');for(var u=this.payload[n].args.slice(1),l=!1,c=void 0;u.length>0;){var d=u.shift(),h=void 0;switch(d){case"copy":l=!0;break;case"rate":u.length>0&&u.shift();break;case"volume":if(0===u.length)return this.error("volume missing required level value");if(h=u.shift(),c=Number.parseFloat(h),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse volume: "+h);break;default:return this.error("unknown action: "+d)}}var f=t[s];a.add({copy:l,track:f,volume:null!=c?c:f.volume}),Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0})}var p=this.self.lists;p.hasOwnProperty(r)&&p[r].destroy(),p[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,a=void 0;e.length>0;){var n=e.shift(),i=void 0;switch(n){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===n;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),a=Number.parseFloat(i),Number.isNaN(a)||!Number.isFinite(a))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+n)}}try{null!=r&&(SimpleAudio.mute=r),null!=a&&(SimpleAudio.volume=a),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var a=[];return this.args.length<1&&a.push("list ID"),this.args.length<2&&a.push("actions"),this.error("no "+a.join(" or ")+" specified")}var n=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!n.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=n[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=5,f=void 0;r.length>0;){var p=r.shift();switch(p){case"play":case"pause":case"stop":case"skip":o=p;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",f=r.shift(),h=Number.parseFloat(f),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+f);if(f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(f=r.shift(),s=Number.parseFloat(f),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":u="mute"===p;break;case"loop":case"unloop":l="loop"===p;break;case"shuffle":case"unshuffle":c="shuffle"===p;break;default:return this.error("unknown action: "+p)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(h,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();if(!e.hasOwnProperty(t))return this.error('playlist "'+t+'" does not exist');e[t].destroy(),delete e[t],Config.debug&&this.createDebugView()}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock(r);var a=t.shift();if(a.hasData())return e();a.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue,r=void 0;t.length>0||(this.self.fillQueue(t),t.length>0&&(r=LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var a=Macro.get("setplaylist").list;null!==a&&a.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var a=0;a<this.args.length;++a){var n=this.args[a];if(!r.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');t.list.add(r[n])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})}else Macro.add(["audio","cacheaudio","createaudiogroup","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}});Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay)}}),Macro.add("repeat",{isAsync:!0,tags:null,timers:new Set,handler:function(){var e=this;if(0===this.args.length)return this.error("no time value specified");var t=void 0;try{t=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});var r=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),a=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerInterval(this.createShadowWrapper(function(){var t=document.createDocumentFragment();new Wikifier(t,e.payload[0].contents);var n=a;r&&(n=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(n)),n.append(t),r&&setTimeout(function(){return n.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}),t)},registerInterval:function(e,t){var r=this;if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var a=State.turns,n=this.timers,i=null;i=setInterval(function(){if(a!==State.turns)return clearInterval(i),void n.delete(i);var t=void 0;try{TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(t=TempState.repeatTimerId),TempState.repeatTimerId=i,e.call(r)}finally{void 0!==t?TempState.repeatTimerId=t:delete TempState.repeatTimerId,TempState.break=null}},t),n.add(i),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],n.forEach(function(e){return clearInterval(e)}),n.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("timed",{isAsync:!0,tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0});var a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),n=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerTimeout(this.createShadowWrapper(function(e){var t=document.createDocumentFragment();new Wikifier(t,e.content);var r=n;Config.debug&&"next"===e.name&&(r=jQuery(new DebugView(r[0],"macro",e.name,e.source).output)),a&&(r=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(r)),r.append(t),a&&setTimeout(function(){return r.removeClass("macro-timed-in")},Engine.minDomActionDelay)}),e)},registerTimeout:function(e,t){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var r=State.turns,a=this.timers,n=null,i=t.shift(),o=function o(){if(a.delete(n),r===State.turns){var s=i;null!=(i=t.shift())&&(n=setTimeout(o,i.delay),a.add(n)),e.call(this,s)}};n=setTimeout(o,i.delay),a.add(n),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearTimeout(e)}),a.clear()})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=void 0;try{State.variables.hasOwnProperty("args")&&(t=State.variables.args),State.variables.args=[].concat(_toConsumableArray(this.args)),State.variables.args.raw=this.args.raw,State.variables.args.full=this.args.full,this.addShadow("$args");var r=document.createDocumentFragment(),a=[];if(new Wikifier(r,e),Array.from(r.querySelectorAll(".error")).forEach(function(e){a.push(e.textContent)}),0!==a.length)return this.error("error"+(a.length>1?"s":"")+" within widget contents ("+a.join("; ")+")");this.output.appendChild(r)}catch(e){return this.error("cannot execute widget: "+e.message)}finally{void 0!==t?State.variables.args=t:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var a=t.offsetWidth;r.style.overflow="auto";var n=t.offsetWidth;a===n&&(n=r.clientWidth),document.body.removeChild(r),e=a-n}catch(e){}return e||17}() -;var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1><button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button></div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),h=jQuery(e.find("#ui-dialog").get(0)),f=jQuery(e.find("#ui-dialog-title").get(0)),p=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return h.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return p.hasClass(e)}))}function r(e,t){return p.empty().removeClass(),null!=t&&p.addClass(t),f.empty().append((null!=e?String(e):"")||" "),p.get(0)}function a(){return p.get(0)}function n(){var e;return(e=p).append.apply(e,arguments),Dialog}function i(){var e;return(e=p).wiki.apply(e,arguments),Dialog}function o(e,t,r,a,n){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,n),"function"==typeof a&&a(e)})}function s(e,r){var a=jQuery.extend({top:50},e),n=a.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).attr("data-dialog","open"),d.addClass("open"),null!==p[0].querySelector("img")&&p.imagesLoaded().always(function(){return l({data:{top:n}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(n);return h.css(i).addClass("open").focus(),jQuery(window).on("resize.dialog-resize",null,{top:n},jQuery.throttle(40,l)),Has.mutationObserver?(v=new MutationObserver(function(e){for(var t=0;t<e.length;++t)if("childList"===e[t].type){l({data:{top:n}});break}}),v.observe(p[0],{childList:!0,subtree:!0})):p.on("DOMNodeInserted.dialog-resize DOMNodeRemoved.dialog-resize",null,{top:n},jQuery.throttle(40,l)),jQuery(document).on("click.dialog-close",".ui-close",{closeFn:r},u).on("keypress.dialog-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger(":dialogopen")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".dialog-close"),v?(v.disconnect(),v=null):p.off(".dialog-resize"),jQuery(window).off(".dialog-resize"),h.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),f.empty(),p.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeAttr("data-dialog"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger(":dialogclose")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&void 0!==e.data.top?e.data.top:50;"block"===h.css("display")&&(h.css({display:"none"}),h.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),a={left:"",right:"",top:"",bottom:""};h.css(a);var n=r.width()-h.outerWidth(!0)-1,i=r.height()-h.outerHeight(!0)-1;return n<=32+m&&(i-=m),i<=32+m&&(n-=m),a.left=a.right=n<=32?16:n/2>>0,a.top=i<=32?a.bottom=16:i/2>t?t:a.bottom=i/2>>0,Object.keys(a).forEach(function(e){""!==a[e]&&(a[e]+="px")}),a}var d=null,h=null,f=null,p=null,g=null,m=0,v=null;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:a},append:{value:n},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(e){return l("object"===(void 0===e?"undefined":_typeof(e))?{data:e}:undefined)}}}))}(),Engine=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),function(){var e=jQuery(document.createDocumentFragment()),t=Story.has("StoryInterface")&&Story.get("StoryInterface").text.trim();if(t){if(UIBar.destroy(),jQuery(document.head).find("#style-core-display").remove(),e.append(t),0===e.find("#passages").length)throw new Error('no element with ID "passages" found within "StoryInterface" special passage')}else e.append('<div id="story" role="main"><div id="passages"></div></div>');e.insertBefore("#store-area")}(),S=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-aria-outlines",type:"text/css"}).appendTo(document.head).get(0)}()),jQuery(document).on("mousedown.aria-outlines keydown.aria-outlines",function(e){return"keydown"===e.type?m():g()})}function t(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),k=t.output}}catch(e){console.error(e),Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(jQuery(document.documentElement).focus(),State.restore())h();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&f(Config.passages.start)}}function r(){LoadScreen.show(),window.scroll(0,0),State.reset(),jQuery.event.trigger(":enginerestart"),window.location.reload()}function a(){return b}function n(){return b===v.Idle}function i(){return b!==v.Idle}function o(){return b===v.Rendering}function s(){return w}function u(e){var t=State.goTo(e);return t&&h(),t}function l(e){var t=State.go(e);return t&&h(),t}function c(){return l(-1)}function d(){return l(1)}function h(){return f(State.passage,!0)}function f(e,t){var r=e;b=v.Playing,TempState={},State.clearTemporary();var a=void 0,n=void 0;if("function"==typeof Config.navigation.override)try{var i=Config.navigation.override(r);i&&(r=i)}catch(e){}var o=Story.get(r);if(jQuery.event.trigger({type:":passageinit",passage:o}),Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},o),t||State.create(o.title),w=Util.now(),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},o),Story.has("PassageReady"))try{a=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){console.error(e),Alert.error("PassageReady",e.message)}b=v.Rendering;var s=jQuery(o.render()),u=document.getElementById("passages");if(u.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(u.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(y,Config.passages.transitionOut))}else t.remove()}):jQuery(u).empty()),s.addClass("passage-in").appendTo(u),setTimeout(function(){return s.removeClass("passage-in")},y),Config.passages.displayTitles&&o.title!==Config.passages.start&&(document.title=o.title+" | "+Story.title),window.scroll(0,0),b=v.Playing,Story.has("PassageDone"))try{n=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){console.error(e),Alert.error("PassageDone",e.message)}if(jQuery.event.trigger({type:":passagedisplay",passage:o}),Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},o),Config.ui.updateStoryElements&&UIBar.setStoryElements(),Config.debug){var l=void 0;null!=a&&(l=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),l.modes({hidden:!0}),l.append(a),s.prepend(l.output)),null!=n&&(l=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),l.modes({hidden:!0}),l.append(n),s.append(l.output)),1===State.turns&&null!=k&&s.prepend(k)}switch(g(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":o.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&o.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return jQuery.event.trigger({type:":passageend",passage:o}),b=v.Idle,w=Util.now(),s[0]}function p(e,t,r){var a=!1;switch(r){case undefined:break;case"replace":case"back":a=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}f(e,a)}function g(){S.set("*:focus{outline:none}")}function m(){S.clear()}var v=Util.toEnum({Idle:"idle",Playing:"playing",Rendering:"rendering"}),y=40,b=v.Idle,w=null,k=null,S=null;return Object.freeze(Object.defineProperties({},{States:{value:v},minDomActionDelay:{value:y},init:{value:e},start:{value:t},restart:{value:r},state:{get:a},isIdle:{value:n},isPlaying:{value:i},isRendering:{value:o},lastPlay:{get:s},goTo:{value:u},go:{value:l},backward:{value:c},forward:{value:d},show:{value:h},play:{value:f},display:{value:p}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i;var r=/(?:\\n|\\t|\\s|\\|\r)/g,a=new RegExp(r.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});return t=function(e){if(null==e)return"";var t=String(e);return t&&a.test(t)?t.replace(r,function(e){return n[e]}):t},function(){function r(t,a){var n=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:a||null},tags:{value:Object.freeze(a&&a.hasAttribute("tags")?a.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return n.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch(void 0===e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("Twine.image")?e="[img["+e+"]]":(Config.passages.nobr||this.tags.includes("nobr"))&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),e}},{key:"render",value:function(){var e=this,t=this.tags.length>0?this.tags.join(" "):null,a=document.createElement("div");return jQuery(a).attr({id:this.domId,"data-passage":this.title,"data-tags":t}).addClass("passage "+this.className),jQuery(document.body).attr("data-tags",t).addClass(this.className),jQuery(document.documentElement).attr("data-tags",t),jQuery.event.trigger({type:":passagestart",content:a,passage:this}),Object.keys(prerender).forEach(function(t){"function"==typeof prerender[t]&&prerender[t].call(e,a,t)}),Story.has("PassageHeader")&&new Wikifier(a,Story.get("PassageHeader").processText()),new Wikifier(a,this.processText()),Story.has("PassageFooter")&&new Wikifier(a,Story.get("PassageFooter").processText()),jQuery.event.trigger({type:":passagerender",content:a,passage:this}),Object.keys(postrender).forEach(function(t){"function"==typeof postrender[t]&&postrender[t].call(e,a,t)}),this._excerpt=r.getExcerptFromNode(a),a}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var a=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(a)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),a=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return a?a[1]+"…":"…"}}]),r}()}(),Save=function(){function e(){if("cookie"===storage.name)return a(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&x(e.slots,Config.saves.slots-e.slots.length),t=!0),O(e.autosave)&&(t=!0);for(var n=0;n<e.slots.length;++n)O(e.slots[n])&&(t=!0);return j(e)&&(storage.delete("saves"),t=!1),t&&C(e),P=e.slots.length-1,!0}function t(){return{autosave:null,slots:x([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function a(){return storage.delete("saves"),!0}function n(){return i()||d()}function i(){return"cookie"!==storage.name&&void 0!==Config.saves.autosave}function o(){return null!==r().autosave}function s(){return r().autosave}function u(){var e=r();return null!==e.autosave&&A(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var a=r(),n={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(n.metadata=t),a.autosave=T(n),C(a)}function c(){var e=r();return e.autosave=null,C(e)}function d(){return"cookie"!==storage.name&&-1!==P}function h(){return P+1}function f(){if(!d())return 0;for(var e=r(),t=0,a=0,n=e.slots.length;a<n;++a)null!==e.slots[a]&&++t;return t}function p(){return 0===f()}function g(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>P)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&A(t.slots[e])}function y(e,t,a){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>P)return!1;var n=r();if(e>=n.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=a&&(i.metadata=a),n.slots[e]=T(i),C(n)}function b(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,C(t))}function w(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var r=null==e?Story.domId:Util.slugify(e),a=r+"-"+function(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),a=e.getHours(),n=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),a<10&&(a="0"+a),n<10&&(n="0"+n),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+a+n+i}()+".save",n=null==t?{}:{metadata:t},i=LZString.compressToBase64(JSON.stringify(T(n)));saveAs(new Blob([i],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var a=void 0;try{a=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}A(a)}}),r.readAsText(t)}function S(e){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),null;var t=null==e?{}:{metadata:e};return LZString.compressToBase64(JSON.stringify(T(t)))}function E(e){var t=void 0;try{t=JSON.parse(LZString.decompressFromBase64(e))}catch(e){}return A(t)?t.metadata:null}function x(e,t){for(var r=0;r<t;++r)e.push(null);return e}function j(e){for(var t=e.slots,r=!0,a=0,n=t.length;a<n;++a)if(null!==t[a]){r=!1;break}return null===e.autosave&&r}function C(e){return j(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function O(e){if(null==e||"object"!==(void 0===e?"undefined":_typeof(e)))return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired,(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function T(e){if(null!=e&&"object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function A(e){try{if(O(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var P=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:a},ok:{value:n},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:h},isEmpty:{value:p},count:{value:f},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k},serialize:{value:S},deserialize:{value:E}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}a(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function a(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function n(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)n(),a();else{if(null==e||!h(e))throw new Error('nonexistent setting "'+e+'"');var t=f(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var a=[];throw arguments.length<1&&a.push("type"),arguments.length<2&&a.push("name"),arguments.length<3&&a.push("definition"),new Error("missing parameters, no "+a.join(" or ")+" specified")}if("object"!==(void 0===r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(h(t))throw new Error('cannot clobber existing setting "'+t+'"');var n={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:n.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(n.list=Object.freeze(r.list),null==r.default)n.default=r.list[0];else{var i=r.list.indexOf(r.default);if(-1===i)throw new Error("list does not contain default");n.default=r.list[i]}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(n.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(n.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(n))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function h(e){return g.some(function(t){return t.name===e})}function f(e){return g.find(function(t){return t.name===e})}function p(e){h(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),p(e);break}}var g=[],m=Util.toEnum({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:a},clear:{value:n},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:h},get:{value:f},delete:{value:p}}))}(),Story=function(){function e(){function e(e){if(e.tags.includesAny(a))throw new Error('starting passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return a.includes(e)}).sort().join('", "')+'"')}function t(e){if(n.includes(e.title)&&e.tags.includesAny(a))throw new Error('special passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return a.includes(e)}).sort().join('", "')+'"')}var a=["widget"],n=["PassageDone","PassageFooter","PassageHeader","PassageReady","StoryAuthor","StoryBanner","StoryCaption","StoryInit","StoryMenu","StoryShare","StorySubtitle"],i=function(e){var t=[].concat(a),r=[];if(e.tags.forEach(function(e){t.includes(e)&&r.push.apply(r,_toConsumableArray(t.delete(e)))}),r.length>1)throw new Error('code passage "'+e.title+'" contains multiple code tags; invalid: "'+r.sort().join('", "')+'"')};if(a.unshift("script","stylesheet"),n.push("StoryTitle"),Config.passages.start=function(){var e=String("START_AT");return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var r=jQuery(this),a=new Passage(r.attr("tiddler"),this);a.title===Config.passages.start?(e(a),c[a.title]=a):a.tags.includes("stylesheet")?(i(a),d.push(a)):a.tags.includes("script")?(i(a),h.push(a)):a.tags.includes("widget")?(i(a),f.push(a)):(t(a),c[a.title]=a)}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var o=document.createDocumentFragment();new Wikifier(o,c.StoryTitle.processText().trim()),r(o.textContent.trim()),Config.saves.id=Story.domId}function t(){!function(){var e=document.createElement("style");new StyleWrapper(e).add(d.map(function(e){return e.text.trim()}).join("\n")),jQuery(e).appendTo(document.head).attr({id:"style-story",type:"text/css"})}();for(var e=0;e<h.length;++e)try{Scripting.evalJavaScript(h[e].text)}catch(t){console.error(t),Alert.error(h[e].title,"object"===(void 0===t?"undefined":_typeof(t))?t.message:t)}for(var t=0;t<f.length;++t)try{Wikifier.wikifyEval(f[t].processText())}catch(e){console.error(e),Alert.error(f[t].title,"object"===(void 0===e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=p=Util.unescape(e),m=Util.slugify(p)}function a(){return p}function n(){return m}function i(){return g}function o(e){var t=void 0===e?"undefined":_typeof(e);switch(t){case"number":case"string":return c.hasOwnProperty(String(e));case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t=void 0===e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",a=Object.keys(c),n=[],i=0;i<a.length;++i){var o=c[a[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":for(var s=0,u=o[e].length;s<u;++s)if(o[e][s]==t){n.push(o);break}break;default:o[e]==t&&n.push(o)}}return n.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),n}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),a=[],n=0;n<r.length;++n){var i=c[r[n]];e(i)&&a.push(i)}return a.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),a}var c={},d=[],h=[],f=[],p="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:h},widgets:{value:f},load:{value:e},init:{value:t},title:{get:a},domId:{get:n},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(e,t){var r=t,a=Config.debug,n=Config.cleanupWikifierOutput;Config.debug=!1,Config.cleanupWikifierOutput=!1;try{null==r&&(r=document.createElement("ul"));var i=document.createDocumentFragment();new Wikifier(i,Story.get(e).processText().trim());var o=[].concat(_toConsumableArray(i.querySelectorAll(".error"))).map(function(e){return e.textContent.replace(errorPrologRegExp,"")});if(o.length>0)throw new Error(o.join("; "));for(;i.hasChildNodes();){var s=i.firstChild;if(s.nodeType===Node.ELEMENT_NODE&&"A"===s.nodeName.toUpperCase()){var u=document.createElement("li");r.appendChild(u),u.appendChild(s)}else i.removeChild(s)}}finally{Config.cleanupWikifierOutput=n,Config.debug=a}return r}function t(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons"><li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li></ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];Dialog.open.apply(Dialog,r)}function r(){u(),Dialog.open.apply(Dialog,arguments)}function a(){l(),Dialog.open.apply(Dialog,arguments)}function n(){c(),Dialog.open.apply(Dialog,arguments)}function i(){d(),Dialog.open.apply(Dialog,arguments)}function o(){h(),Dialog.open.apply(Dialog,arguments)}function s(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons"><li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+'</button></li><li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li></ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one(":dialogclose",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function u(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var a=Story.get(State.history[r].title);a&&a.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one(":dialogclose",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+a.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function l(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons"><li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+'</button></li><li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li></ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){return Engine.restart()}),Dialog.close()}),!0}function c(){function e(e,t,r,a){var n=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&n.addClass(t),a?n.ariaClick(a):n.prop("disabled",!0),jQuery(document.createElement("li")).append(n)}var r=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),a=Save.ok();if(a&&r.append(function(){function e(e,t,r,a,n){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+a).addClass(e).html(r);return t&&i.addClass(t),n?"auto"===a?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return n()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(a+1)},function(){return n(a)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var a=jQuery(document.createElement("td")),n=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td"));jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(a),t.autosave?(n.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one(":dialogclose",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i), -jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),c()}))):(n.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(a).append(n).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),h=jQuery(document.createElement("td")),f=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(d.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one(":dialogclose",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(h),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(h),f.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),c()}))):(d.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(h),h.addClass("empty"),f.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(d).append(h).append(f).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}()),a||Has.fileAPI){var n=jQuery(document.createElement("ul")).addClass("buttons").appendTo(r);return Has.fileAPI&&(n.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),n.append(e("import",null,L10n.get("savesLabelImport"),function(){return r.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one(":dialogclose",function(){return Save.import(e)}),Dialog.close()}).appendTo(r)),a&&n.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),c()}:null)),!0}return t(L10n.get("savesIncapable")),!1}function d(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,a=Util.slugify(r),n=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return n.attr("id","header-body-"+a).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+a).wiki(r),void o.attr("id","header-label-"+a).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),h=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:h=jQuery(document.createElement("button")),settings[s]?h.addClass("enabled").text(L10n.get("settingsOn")):h.text(L10n.get("settingsOff")),h.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:h=jQuery(document.createElement("select"));for(var f=0,p=t.list.length;f<p;++f)jQuery(document.createElement("option")).val(f).text(t.list[f]).appendTo(h);h.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}h.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons"><li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+'</button></li><li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li></ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function h(){try{jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(e("StoryShare"))}catch(e){return console.error(e),Alert.error("StoryShare",e.message),!1}return!0}return Object.freeze(Object.defineProperties({},{assembleLinkList:{value:e},alert:{value:t},jumpto:{value:r},restart:{value:a},saves:{value:n},settings:{value:i},share:{value:o},buildAutoload:{value:s},buildJumpto:{value:u},buildRestart:{value:l},buildSaves:{value:c},buildSettings:{value:d},buildShare:{value:h},stow:{value:function(){return UIBar.stow()}},unstow:{value:function(){return UIBar.unstow()}},setStoryElements:{value:function(){return UIBar.setStoryElements()}},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:s},buildDialogJumpto:{value:u},buildDialogRestart:{value:l},buildDialogSaves:{value:c},buildDialogSettings:{value:d},buildDialogShare:{value:h},buildLinkListFromPassage:{value:e}}))}(),UIBar=function(){function e(){o||document.getElementById("ui-bar")||(!function(){var e=L10n.get("uiBarToggle"),t=L10n.get("uiBarBackward"),r=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");jQuery(document.createDocumentFragment()).append('<div id="ui-bar"><div id="ui-bar-tray"><button id="ui-bar-toggle" tabindex="0" title="'+e+'" aria-label="'+e+'"></button><div id="ui-bar-history"><button id="history-backward" tabindex="0" title="'+t+'" aria-label="'+t+'">î ¡</button><button id="history-jumpto" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¹</button><button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button></div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core"><li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+'</a></li><li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+'</a></li><li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+'</a></li><li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li></ul></nav></div></div>").insertBefore("#store-area")}(),jQuery(document).on(":historyupdate.ui-bar",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward"))))}function t(){if(!o){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||i(),Dialog.addClickHandler("#menu-item-saves a",null,UI.buildSaves).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,UI.buildSettings).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,UI.buildRestart).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,UI.buildShare).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove()}}function r(){o||(jQuery(document).off(".ui-bar"),jQuery("#ui-bar").remove(),jQuery(document.head).find("#style-ui-bar").remove(),Config.ui.updateStoryElements=!1,o=!0)}function a(e){if(!o){var t=jQuery("#ui-bar");e&&t.addClass("no-transition"),t.addClass("stowed"),e&&setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}}function n(e){if(!o){var t=jQuery("#ui-bar");e&&t.addClass("no-transition"),t.removeClass("stowed"),e&&setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}}function i(){if(!o){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");if(null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")))try{UI.assembleLinkList("StoryMenu",e)}catch(e){console.error(e),Alert.error("StoryMenu",e.message)}}}var o=!1;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},destroy:{value:r},stow:{value:a},unstow:{value:n},setStoryElements:{value:i}}))}(),DebugBar=function(){function e(){var e=L10n.get("debugBarAddWatch"),t=L10n.get("debugBarWatchAll"),n=L10n.get("debugBarWatchNone"),o=L10n.get("debugBarWatchToggle"),d=L10n.get("debugBarViewsToggle"),h=jQuery(document.createDocumentFragment()).append('<div id="debug-bar"><div id="debug-bar-watch" aria-hidden="true" hidden="hidden"><div>'+L10n.get("debugBarNoWatches")+'</div>></div><div><button id="debug-bar-watch-toggle" tabindex="0" title="'+o+'" aria-label="'+o+'">'+L10n.get("debugBarLabelWatch")+'</button><label id="debug-bar-watch-label" for="debug-bar-watch-input">'+L10n.get("debugBarLabelAdd")+'</label><input id="debug-bar-watch-input" name="debug-bar-watch-input" type="text" list="debug-bar-watch-list" tabindex="0"><datalist id="debug-bar-watch-list" aria-hidden="true" hidden="hidden"></datalist><button id="debug-bar-watch-add" tabindex="0" title="'+e+'" aria-label="'+e+'"></button><button id="debug-bar-watch-all" tabindex="0" title="'+t+'" aria-label="'+t+'"></button><button id="debug-bar-watch-none" tabindex="0" title="'+n+'" aria-label="'+n+'"></button></div><div><button id="debug-bar-views-toggle" tabindex="0" title="'+d+'" aria-label="'+d+'">'+L10n.get("debugBarLabelViews")+'</button><label id="debug-bar-turn-label" for="debug-bar-turn-select">'+L10n.get("debugBarLabelTurn")+'</label><select id="debug-bar-turn-select" tabindex="0"></select></div></div>');g=jQuery(h.find("#debug-bar-watch").get(0)),m=jQuery(h.find("#debug-bar-watch-list").get(0)),v=jQuery(h.find("#debug-bar-turn-select").get(0));var f=jQuery(h.find("#debug-bar-watch-toggle").get(0)),p=jQuery(h.find("#debug-bar-watch-input").get(0)),y=jQuery(h.find("#debug-bar-watch-add").get(0)),b=jQuery(h.find("#debug-bar-watch-all").get(0)),w=jQuery(h.find("#debug-bar-watch-none").get(0)),k=jQuery(h.find("#debug-bar-views-toggle").get(0));h.appendTo("body"),f.ariaClick(function(){g.attr("hidden")?g.removeAttr("aria-hidden hidden"):g.attr({"aria-hidden":!0,hidden:"hidden"}),s()}),p.on(":addwatch",function(){r(this.value.trim()),this.value=""}).on("keypress",function(e){13===e.which&&(e.preventDefault(),p.trigger(":addwatch"))}),y.ariaClick(function(){return p.trigger(":addwatch")}),b.ariaClick(a),w.ariaClick(i),v.on("change",function(){Engine.goTo(Number(this.value))}),k.ariaClick(function(){DebugView.toggle(),s()}),jQuery(document).on(":historyupdate.debug-bar",c).on(":passageend.debug-bar",function(){u(),l()}).on(":enginerestart.debug-bar",function(){session.delete("debugState")})}function t(){o(),c(),u(),l()}function r(e){h.test(e)&&(p.pushUnique(e),p.sort(),u(),l(),s())}function a(){Object.keys(State.variables).map(function(e){return p.pushUnique("$"+e)}),Object.keys(State.temporary).map(function(e){return p.pushUnique("_"+e)}),p.sort(),u(),l(),s()}function n(e){p.delete(e),u(),l(),s()}function i(){for(var e=p.length-1;e>=0;--e)p.pop();u(),l(),s()}function o(){if(session.has("debugState")){var e=session.get("debugState");p.push.apply(p,_toConsumableArray(e.watchList)),e.watchEnabled?g.removeAttr("aria-hidden hidden"):g.attr({"aria-hidden":!0,hidden:"hidden"}),e.viewsEnabled?DebugView.enable():DebugView.disable()}}function s(){session.set("debugState",{watchList:p,watchEnabled:!g.attr("hidden"),viewsEnabled:DebugView.isEnabled()})}function u(){if(0===p.length)return void g.empty().append("<div>"+L10n.get("debugBarNoWatches")+"</div>");for(var e=L10n.get("debugBarDeleteWatch"),t=jQuery(document.createElement("table")),r=jQuery(document.createElement("tbody")),a=0,i=p.length;a<i;++a)!function(t,a){var i=p[t],o=i.slice(1),s="$"===i[0]?State.variables:State.temporary,u=jQuery(document.createElement("tr")),l=jQuery(document.createElement("button")),c=jQuery(document.createElement("code"));l.addClass("watch-delete").attr("data-name",i).ariaClick({one:!0,label:e},function(){return n(i)}),c.text(d(s[o])),jQuery(document.createElement("td")).append(l).appendTo(u),jQuery(document.createElement("td")).text(i).appendTo(u),jQuery(document.createElement("td")).append(c).appendTo(u),u.appendTo(r)}(a);t.append(r),g.empty().append(t)}function l(){var e=Object.keys(State.variables),t=Object.keys(State.temporary);if(0===e.length&&0===t.length)return void m.empty();var r=[].concat(_toConsumableArray(e.map(function(e){return"$"+e})),_toConsumableArray(t.map(function(e){return"_"+e}))).sort(),a=document.createDocumentFragment();r.delete(p);for(var n=0,i=r.length;n<i;++n)jQuery(document.createElement("option")).val(r[n]).appendTo(a);m.empty().append(a)}function c(){for(var e=State.size,t=State.expired.length,r=document.createDocumentFragment(),a=0;a<e;++a)jQuery(document.createElement("option")).val(a).text(t+a+1+". "+Util.escape(State.history[a].title)).appendTo(r);v.empty().prop("disabled",e<2).append(r).val(State.activeIndex)}function d(e){if(null===e)return"null";switch(void 0===e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return"NaN";if(!Number.isFinite(e))return"Infinity";case"boolean":case"symbol":case"undefined":return String(e);case"string":return JSON.stringify(e);case"function":return"Function"}var t=Util.toStringTag(e);if("Date"===t)return"Date {"+e.toLocaleString()+"}";if("RegExp"===t)return"RegExp "+e.toString();var r=[];if(e instanceof Array||e instanceof Set){for(var a=e instanceof Array?e:Array.from(e),n=0,i=a.length;n<i;++n)r.push(a.hasOwnProperty(n)?d(a[n]):"<empty>");return Object.keys(a).filter(function(e){return!f.test(e)}).forEach(function(e){return r.push(d(e)+": "+d(a[e]))}),t+"("+a.length+") ["+r.join(", ")+"]"}return e instanceof Map?(e.forEach(function(e,t){return r.push(d(t)+" → "+d(e))}),t+"("+e.size+") {"+r.join(", ")+"}"):(Object.keys(e).forEach(function(t){return r.push(d(t)+": "+d(e[t]))}),t+" {"+r.join(", ")+"}")}var h=new RegExp("^"+Patterns.variable+"$"),f=/^\d+$/,p=[],g=null,m=null,v=null;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},watch:{value:r},watchAll:{value:a},unwatch:{value:n},unwatchAll:{value:i}}))}(),LoadScreen=function(){function e(){jQuery(document).on("readystatechange.SugarCube",function(){o.size>0||("complete"===document.readyState?"loading"===jQuery(document.documentElement).attr("data-init")&&(Config.loadDelay>0?setTimeout(function(){0===o.size&&r()},Math.max(Engine.minDomActionDelay,Config.loadDelay)):r()):a())})}function t(){jQuery(document).off("readystatechange.SugarCube"),o.clear(),r()}function r(){jQuery(document.documentElement).removeAttr("data-init")}function a(){jQuery(document.documentElement).attr("data-init","loading")}function n(){return++s,o.add(s),a(),s}function i(e){if(null==e)throw new Error("LoadScreen.unlock called with a null or undefined ID");o.has(e)&&o.delete(e),0===o.size&&jQuery(document).trigger("readystatechange")}var o=new Set,s=0;return Object.freeze(Object.defineProperties({},{init:{value:e},clear:{value:t},hide:{value:r},show:{value:a},lock:{value:n},unlock:{value:i}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:23,patch:5,prerelease:null,build:8492,date:new Date("2018-02-10T17:06:53.678Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story,TempVariables=State.temporary;window.SugarCube={},jQuery(function(){try{var e=LoadScreen.lock();LoadScreen.init(),document.normalize&&document.normalize(),Story.load(),storage=SimpleStore.create(Story.domId,!0),session=SimpleStore.create(Story.domId,!1),Dialog.init(),UIBar.init(),Engine.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UIBar.start(),Config.debug&&(DebugBar.init(),DebugBar.start()),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,UI:UI,UIBar:UIBar,DebugBar:DebugBar,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version},LoadScreen.unlock(e)}catch(e){return console.error(e),LoadScreen.clear(),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} +evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return f}function a(e){f=Math.clamp(e,.2,5),l("rate",f)}function n(){return p}function i(e){p=Math.clamp(e,0,1),l("volume",p)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");h.set(e,t)}function u(e){h.delete(e)}function l(e,t){h.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var h=new Map,f=1,p=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,a=/\.([^.\/\\]+)$/,n=e.getType,i=[],o=document.createElement("audio");if(t.forEach(function(e){var t=null;switch(void 0===e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(null===(s=r.exec(e)))throw new Error("source data URI missing media type")}else if(null===(s=a.exec(Util.parseUrl(e).pathname)))throw new Error("source URL missing file extension");var u=n(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=n(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+(void 0===e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=Browser.isOpera?t.type.replace(/;.*$/,""):t.type,o.appendChild(c),i.push(t)}}),!o.hasChildNodes())if(Browser.isIE)o.src=undefined;else{var s=document.createElement("source");s.src=undefined,s.type=undefined,o.appendChild(s)}this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var a=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return a._error=!1}).on("error",function(){return a._error=!0}).find("source:last-of-type").on("error",function(){return a._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!a.audio)return void SimpleAudio.unsubscribe(a);switch(e){case"mute":a._updateAudioMute();break;case"rate":a._updateAudioRate();break;case"stop":a.stop();break;case"volume":a._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this);var e=this.audio;if(e){for(this.fadeStop(),this.stop(),jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}}},{key:"_updateAudioMute",value:function(){this.audio&&(this.audio.muted=this._mute||SimpleAudio.mute)}},{key:"_updateAudioRate",value:function(){this.audio&&(this.audio.playbackRate=this._rate*SimpleAudio.rate)}},{key:"_updateAudioVolume",value:function(){this.audio&&(this.audio.volume=this._volume*SimpleAudio.volume)}},{key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return!this.audio||this.audio.readyState===HTMLMediaElement.HAVE_NOTHING}},{key:"hasMetadata",value:function(){return!!this.audio&&this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return!!this.audio&&this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return!!this.audio&&this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return!!this.audio&&this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!!this.audio&&!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return!!this.audio&&(this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended)}},{key:"isEnded",value:function(){return!this.audio||this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return!!this.audio&&this.audio.loop}},{key:"load",value:function(){this.audio&&("auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load())}},{key:"play",value:function(){this.audio&&this.audio.play()}},{key:"pause",value:function(){this.audio&&this.audio.pause()}},{key:"stop",value:function(){this.audio&&(this.pause(),this.time=0,this._trigger(":stop"))}},{key:"fadeWithDuration",value:function(e,t,r){var a=this;if(this.audio){this.fadeStop();var n=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);n!==i&&(this.volume=n,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;n<i?(t=n,r=i):(t=i,r=n);var o=Number(e);o<1&&(o=1);var s=(i-n)/(o/.025);a._faderId=setInterval(function(){if(!a.isPlaying())return void a.fadeStop();a.volume=Math.clamp(a.volume+s,t,r),0===a.volume&&a.pause(),a.volume===i&&(a.fadeStop(),a._trigger(":fade"))},25)}),this.play())}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if(this.audio){if("function"!=typeof r)throw new Error("listener parameter must be a function");var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(n,r),this}}},{key:"one",value:function(t,r){if(this.audio){if("function"!=typeof r)throw new Error("listener parameter must be a function");var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(n,r),this}}},{key:"off",value:function(t,r){if(this.audio){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var a=e._events,n=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!a.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(a).join(", "));return e.replace(t,a[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===n)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(n,r),this}}},{key:"duration",get:function(){return this.audio?this.audio.duration:NaN}},{key:"ended",get:function(){return!this.audio||this.audio.ended}},{key:"loop",get:function(){return!!this.audio&&this.audio.loop},set:function(e){this.audio&&(this.audio.loop=!!e)}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return!!this.audio&&this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio?this.audio.duration-this.audio.currentTime:NaN}},{key:"time",get:function(){return this.audio?this.audio.currentTime:NaN},set:function(e){var t=this;if(this.audio)try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var a=document.createElement("audio");r[t]=""!==a.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,a=t.toLowerCase(),n=r.hasOwnProperty(a)?r[a]:"audio/"+a;return e._verifyType(n)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:":fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:":stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,a=void 0,n=void 0,i=void 0;if(e instanceof m)r=!0,a=e.clone(),n=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,a=r?e.track.clone():e.track,n=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}a.stop(),a.loop=!1,a.mute=!1,a.volume=n,a.rate=i,a.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:a,volume:n,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var a=Math.clamp(t,0,1)*this.current.volume,n=void 0;null!=r&&(n=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,a,n),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:a},volume:{get:n,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),SimpleStore=function(){function e(e,a){if(r)return r.create(e,a);for(var n=0;n<t.length;++n)if(t[n].init(e,a))return r=t[n],r.create(e,a);throw new Error("no valid storage adapters found")}var t=[],r=null;return Object.freeze(Object.defineProperties({},{adapters:{value:t},create:{value:e}}))}();SimpleStore.adapters.push(function(){function e(){function e(e){try{var t=window[e],r="_sc_"+String(Date.now());t.setItem(r,r);var a=t.getItem(r)===r;return t.removeItem(r),a}catch(e){}return!1}return r=e("localStorage")&&e("sessionStorage")}function t(e,t){if(!r)throw new Error("adapter not initialized");return new a(e,t)}var r=!1,a=function(){function e(t,r){_classCallCheck(this,e);var a=t+".",n=null,i=null;r?(n=window.localStorage,i="localStorage"):(n=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_engine:{value:n},_prefix:{value:a},_prefixRe:{value:new RegExp("^"+RegExp.escape(a))},name:{value:i},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function(){for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!("string"!=typeof e||!e)&&this._engine.hasOwnProperty(this._prefix+e)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota[_\s]?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!("string"!=typeof e||!e)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e)/* look here for changes */{return JSON.stringify(e)}},{key:"_deserialize",value:function(e){return JSON.parse((!e || e[0]=="{")?e:LZString.decompressFromUTF16(e))}}]),e}();/* changes end here */return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}()),SimpleStore.adapters.push(function(){function e(e){try{var t="_sc_"+String(Date.now());o._setCookie(t,o._serialize(t),undefined),i=o._deserialize(o._getCookie(t))===t,o._setCookie(t,undefined,n)}catch(e){i=!1}return i&&r(e),i}function t(e,t){if(!i)throw new Error("adapter not initialized");return new o(e,t)}function r(e){if(""!==document.cookie)for(var t=e+".",r=new RegExp("^"+RegExp.escape(t)),i=e+"!.",s=e+"*.",u=/\.(?:state|rcWarn)$/,l=document.cookie.split(/;\s*/),c=0;c<l.length;++c){var d=l[c].split("="),h=decodeURIComponent(d[0]);if(r.test(h)){var f=decodeURIComponent(d[1]);""!==f&&function(){var e=!u.test(h);o._setCookie(h,undefined,n),o._setCookie(h.replace(r,function(){return e?i:s}),f,e?a:undefined)}()}}}var a="Tue, 19 Jan 2038 03:14:07 GMT",n="Thu, 01 Jan 1970 00:00:00 GMT",i=!1,o=function(){function e(t,r){_classCallCheck(this,e);var a=t+(r?"!":"*")+".";Object.defineProperties(this,{_prefix:{value:a},_prefixRe:{value:new RegExp("^"+RegExp.escape(a))},name:{value:"cookie"},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function(){if(""===document.cookie)return[];for(var e=document.cookie.split(/;\s*/),t=[],r=0;r<e.length;++r){var a=e[r].split("="),n=decodeURIComponent(a[0]);if(this._prefixRe.test(n)){""!==decodeURIComponent(a[1])&&t.push(n.replace(this._prefixRe,""))}}return t}},{key:"has",value:function(t){return!("string"!=typeof t||!t)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persistent?a:undefined),!this.has(t))throw new Error("unknown validation error during set")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if("string"!=typeof t||!t||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,n),this.has(t))throw new Error("unknown validation error during delete")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var a=t[r].split("=");if(e===decodeURIComponent(a[0])){return decodeURIComponent(a[1])||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var a=encodeURIComponent(e)+"=";null!=t&&(a+=encodeURIComponent(t)),null!=r&&(a+="; expires="+r),a+="; path=/",document.cookie=a}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}());var DebugView=function(){return function(){function e(t,r,a,n){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:n,"aria-label":n,"data-type":null!=r?r:"","data-name":null!=a?a:""}).addClass("debug"),jQuery(this.break).addClass("debug hidden"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){if(null==e){var t={};return this.view.className.splitOrEmpty(/\s+/).forEach(function(e){"debug"!==e&&(t[e]=!0)}),t}if("object"===(void 0===e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"isEnabled",value:function(){return"enabled"===jQuery(document.documentElement).attr("data-debug-view")}},{key:"enable",value:function(){jQuery(document.documentElement).attr("data-debug-view","enabled"),jQuery.event.trigger(":debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeAttr("data-debug-view"),jQuery.event.trigger(":debugviewupdate")}},{key:"toggle",value:function(){"enabled"===jQuery(document.documentElement).attr("data-debug-view")?e.disable():e.enable()}}]),e}()}(),PRNGWrapper=function(){return function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),a=t.pull;a>0;--a)r.random();return r}}]),e}()}(),StyleWrapper=function(){var e=new RegExp(Patterns.cssImage,"g"),t=new RegExp(Patterns.cssImage);return function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var a=r;t.test(a)&&(e.lastIndex=0,a=a.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var a=Story.get(r);a.tags.includes("Twine.image")&&(r=a.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=a:this.style.appendChild(document.createTextNode(a))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}()}(),Diff=function(){function e(t,a){for(var n=Object.prototype.toString,i=t instanceof Array,o=[].concat(Object.keys(t),Object.keys(a)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),s={},u=void 0,l=function(e){return e===u},c=0,d=o.length;c<d;++c){var h=o[c],f=t[h],p=a[h];if(t.hasOwnProperty(h))if(a.hasOwnProperty(h)){if(f===p)continue;if((void 0===f?"undefined":_typeof(f))===(void 0===p?"undefined":_typeof(p)))if("function"==typeof f)f.toString()!==p.toString()&&(s[h]=[r.Copy,p]);else if("object"!==(void 0===f?"undefined":_typeof(f))||null===f)s[h]=[r.Copy,p];else{var g=n.call(f),m=n.call(p);if(g===m)if(f instanceof Date)Number(f)!==Number(p)&&(s[h]=[r.Copy,clone(p)]);else if(f instanceof Map)s[h]=[r.Copy,clone(p)];else if(f instanceof RegExp)f.toString()!==p.toString()&&(s[h]=[r.Copy,clone(p)]);else if(f instanceof Set)s[h]=[r.Copy,clone(p)];else if("[object Object]"!==g)s[h]=[r.Copy,clone(p)];else{var v=e(f,p);null!==v&&(s[h]=v)}else s[h]=[r.Copy,clone(p)]}else s[h]=[r.Copy,"object"!==(void 0===p?"undefined":_typeof(p))||null===p?p:clone(p)]}else if(i&&Util.isNumeric(h)){var y=Number(h);if(!u){u="";do{u+="~"}while(o.some(l));s[u]=[r.SpliceArray,y,y]}y<s[u][1]&&(s[u][1]=y),y>s[u][2]&&(s[u][2]=y)}else s[h]=r.Delete;else s[h]=[r.Copy,"object"!==(void 0===p?"undefined":_typeof(p))||null===p?p:clone(p)]}return Object.keys(s).length>0?s:null}function t(e,a){for(var n=Object.keys(a||{}),i=clone(e),o=0,s=n.length;o<s;++o){var u=n[o],l=a[u];if(l===r.Delete)delete i[u];else if(l instanceof Array)switch(l[0]){case r.SpliceArray:i.splice(l[1],l[2]-l[1]+1);break;case r.Copy:i[u]=clone(l[1]);break;case r.CopyDate:i[u]=new Date(l[1])}else i[u]=t(i[u],l)}return i}var r=Util.toEnum({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{Op:{value:r},diff:{value:e},patch:{value:t}}))}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=l10nStrings[r],o=0;n.test(i);){if(++o>50)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");a.lastIndex=0,i=i.replace(a,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return i}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var a=/\{\w+\}/g,n=new RegExp(a.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorToggle:"Toggle the error view",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugBarNoWatches:"— no watches set —",debugBarAddWatch:"Add watch",debugBarDeleteWatch:"Delete watch",debugBarWatchAll:"Watch all",debugBarWatchNone:"Delete all",debugBarLabelAdd:"Add",debugBarLabelWatch:"Watch",debugBarLabelTurn:"Turn",debugBarLabelViews:"Views",debugBarViewsToggle:"Toggle the debug views",debugBarWatchToggle:"Toggle the watch panel",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload", +autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}return Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),navigation:Object.seal({override:undefined}),passages:Object.seal({descriptions:undefined,displayTitles:!1,nobr:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),a=0;a<t.length;++a)if(r.style[t[a]]!==undefined)return e.get(t[a]);return""}()})}(),State=function(){function e(){session.delete("state"),W=[],R=c(),F=-1,B=[],V=null===V?null:new PRNGWrapper(V.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(a(e),!0)}return!1}function r(e){var t={index:F};return e?t.history=clone(W):t.delta=A(W),B.length>0&&(t.expired=[].concat(_toConsumableArray(B))),null!==V&&(t.seed=V.seed),t}function a(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==V&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===V&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");W=t?clone(e.history):P(e.delta),F=e.index,B=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(V.seed=e.seed),g(F)}function n(){return r(!0)}function i(e){return a(e,!0)}function o(){return B}function s(){return B.length+v()}function u(){return B.concat(W.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!B.includes(e)||!!W.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return R}function h(){return F}function f(){return R.title}function p(){return R.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch(void 0===e?"undefined":_typeof(e)){case"object":R=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);R=clone(W[e]);break;default:throw new TypeError('moment activation attempted with a "'+(void 0===e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==V&&(V=PRNGWrapper.unmarshal({seed:V.seed,pull:R.pull})),session.set("state",r()),jQuery.event.trigger(":historyupdate"),R}function m(){return W}function v(){return F+1}function y(){return W.length}function b(){return 0===W.length}function w(){return W.length>0?W[F]:null}function k(){return W.length>0?W[W.length-1]:null}function S(){return W.length>0?W[0]:null}function E(e){return b()||e<0||e>F?null:W[e]}function x(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:W[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=F;t>=0;--t)if(W[t].title===e)return!0;return!1}function C(e){if(v()<y()&&W.splice(v(),y()-v()),W.push(c(e,R.variables)),V&&(k().pull=V.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)B.push(W.shift().title);return F=y()-1,g(F),v()}function O(e){return!(null==e||e<0||e>=y()||e===F)&&(F=e,g(F),!0)}function T(e){return null!=e&&0!==e&&O(F+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,a=e.length;r<a;++r)t.push(Diff.diff(e[r-1],e[r]));return t}function P(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,a=e.length;r<a;++r)t.push(Diff.patch(t[r-1],e[r]));return t}function _(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}V=new PRNGWrapper(e,t),R.pull=V.pull}function N(){return V?V.random():Math.random()}function D(){U={},TempVariables=U}function M(){return U}function L(e){var t=Q(e);if(null!==t){for(var r=t.names,a=t.store,n=0,i=r.length;n<i;++n){if(void 0===a[r[n]])return;a=a[r[n]]}return a}}function I(e,t){var r=Q(e);if(null===r)return!1;for(var a=r.names,n=a.pop(),i=r.store,o=0,s=a.length;o<s;++o){if(void 0===i[a[o]])return!1;i=i[a[o]]}return i[n]=t,!0}function Q(e){for(var t={store:"$"===e[0]?State.variables:State.temporary,names:[]},r=e,a=void 0;null!==(a=z.exec(r));)r=r.slice(a[0].length),a[1]?t.names.push(a[1]):a[2]?t.names.push(a[2]):a[3]?t.names.push(a[3]):a[4]?t.names.push(a[4]):a[5]?t.names.push(L(a[5])):a[6]&&t.names.push(Number(a[6]));return""===r?t:null}var W=[],R=c(),F=-1,B=[],V=null,U={},z=new RegExp("^(?:"+Patterns.variableSigil+"("+Patterns.identifier+")|\\.("+Patterns.identifier+")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|("+Patterns.variableSigil+Patterns.identifierFirstChar+".*)|(\\d+))\\])");return Object.freeze(Object.defineProperties({},{reset:{value:e},restore:{value:t},marshalForSave:{value:n},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:h},passage:{get:f},variables:{get:p},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:E},peek:{value:x},has:{value:j},create:{value:C},goTo:{value:O},go:{value:T},deltaEncode:{value:A},deltaDecode:{value:P},initPRNG:{value:_},random:{value:N},clearTemporary:{value:D},temporary:{get:M},getVar:{value:L},setVar:{value:I},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,a,n){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:a,one:!!r}):(i=r,o={namespace:n,one:!!a,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,a,n,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),a&&o.addClass(a),i&&o.attr("title",i),n&&o.text(n),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*n,a(o,Math.easeInOut(i)),(1===n&&i>=1||-1===n&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function a(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var n="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,a(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){l+=n,window.scroll(0,i+u*(s*Math.easeInOut(l))),l>=1&&window.clearInterval(c)}function a(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}var n=null!=t?Number(t):.1;Number.isNaN(n)||!Number.isFinite(n)||n<0?n=.1:n>1&&(n=1);var i=window.scrollY?window.scrollY:document.body.scrollTop,o=function(e){var t=a(e),r=t+e.offsetHeight,n=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=n+i;return t>=n&&r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}(e),s=Math.abs(i-o),u=i>o?-1:1,l=0,c=void 0;c=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,a=e.length;r<a;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,a=State.turns,n=0,i=e.length;n<i&&a>-1;++n){var o=t.lastIndexOf(e[n]);a=Math.min(a,-1===o?-1:r-o)}return a}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("random called with insufficient parameters");case 1:e=0,t=Math.trunc(arguments[0]);break;default:e=Math.trunc(arguments[0]),t=Math.trunc(arguments[1])}if(!Number.isInteger(e))throw new Error("random min parameter must be an integer");if(!Number.isInteger(t))throw new Error("random max parameter must be an integer");if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){var e=void 0,t=void 0;switch(arguments.length){case 0:throw new Error("randomFloat called with insufficient parameters");case 1:e=0,t=Number(arguments[0]);break;default:e=Number(arguments[0]),t=Number(arguments[1])}if(Number.isNaN(e)||!Number.isFinite(e))throw new Error("randomFloat min parameter must be a number");if(Number.isNaN(t)||!Number.isFinite(t))throw new Error("randomFloat max parameter must be a number");if(e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,a=e.length;r<a;++r)t=t.concat(Story.get(e[r]).tags);return t}function temporary(){return State.temporary}function time(){return null===Engine.lastPlay?0:Util.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,a=0,n=e.length;a<n&&r>0;++a)r=Math.min(r,t.count(e[a]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,a=new Map,n=0,i=0,o=r.length;i<o;++i){var s=r[i];if(a.has(s))a.get(s)&&++n;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++n,a.set(s,!0)):a.set(s,!1)}}}return n}function evalJavaScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,parse(String(code)),output)}var _ref8=function(){function e(e){return e.reduce(function(e,t){return e=e.then(t)},Promise.resolve())}function t(e){return Util.parseUrl(e).path.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w]+/g,"-").toLocaleLowerCase()}function r(){function r(e){return new Promise(function(r,a){jQuery(document.createElement("script")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):a(e.target)}).appendTo(document.head).attr({id:"script-imported-"+t(e),type:"text/javascript",src:e})})}for(var a=arguments.length,n=Array(a),i=0;i<a;i++)n[i]=arguments[i];return Promise.all(n.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}function a(){function r(e){return new Promise(function(r,a){jQuery(document.createElement("link")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):a(e.target)}).appendTo(document.head).attr({id:"style-imported-"+t(e),rel:"stylesheet",href:e})})}for(var a=arguments.length,n=Array(a),i=0;i<a;i++)n[i]=arguments[i];return Promise.all(n.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}return{importScripts:r,importStyles:a}}(),importScripts=_ref8.importScripts,importStyles=_ref8.importStyles,parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var n=e,i=void 0;null!==(i=r.exec(n));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(a.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=n.slice(s);/^\s+not\b/.test(u)&&(n=n.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(n=n.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return n}var t=Object.freeze({$:"State.variables.",_:"State.temporary.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),a=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=0,t=function(){function t(r,a,n){_classCallCheck(this,t),t.Parser.Profile.isEmpty()&&t.Parser.Profile.compile(),Object.defineProperties(this,{source:{value:String(a)},options:{writable:!0,value:Object.assign({profile:"all"},n)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==r?this.output=document.createDocumentFragment():r.jquery?this.output=r[0]:this.output=r;try{++e,this.subWikify(this.output),1===e&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--e}}return _createClass(t,[{key:"subWikify",value:function(e,r,a){var n=this.output,i=void 0;this.output=e,null!=a&&"object"===(void 0===a?"undefined":_typeof(a))&&(i=this.options,this.options=Object.assign({},this.options,a));var o=t.Parser.Profile.get(this.options.profile),s=r?new RegExp("(?:"+r+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,u=void 0,l=void 0;do{if(o.parserRegExp.lastIndex=this.nextMatch,s&&(s.lastIndex=this.nextMatch),l=o.parserRegExp.exec(this.source),(u=s?s.exec(this.source):null)&&(!l||u.index<=l.index))return u.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,u.index),this.matchStart=u.index,this.matchLength=u[0].length,this.matchText=u[0],this.nextMatch=s.lastIndex,this.output=n,void(i&&(this.options=i));if(l){l.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,l.index),this.matchStart=l.index,this.matchLength=l[0].length,this.matchText=l[0],this.nextMatch=o.parserRegExp.lastIndex;for(var c=void 0,d=1,h=l.length;d<h;++d)if(l[d]){c=d-1;break}if(o.parsers[c].handler(this),null!=TempState.break)break}}while(u||l);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=n,i&&(this.options=i)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this._rawArgs)}}],[{key:"wikifyEval",value:function(e){var r=document.createDocumentFragment();new t(r,e);var a=r.querySelector(".error");if(null!==a)throw new Error(a.textContent.replace(errorPrologRegExp,""));return r}},{key:"createInternalLink",value:function(e,t,r,a){var n=jQuery(document.createElement("a"));return null!=t&&(n.attr("data-passage",t),Story.has(t)?(n.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&n.addClass("link-visited")):n.addClass("link-broken"),n.ariaClick({one:!0},function(){"function"==typeof a&&a(),Engine.play(t)})),r&&n.append(document.createTextNode(r)),e&&n.appendTo(e),n[0]}},{key:"createExternalLink",value:function(e,t,r){var a=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&a.attr({href:t,tabindex:0}),a[0]}},{key:"isExternalLink",value:function(e){return!Story.has(e)&&(new RegExp("^"+Patterns.url,"gim").test(e)||/[\/.?#]/.test(e))}}]),t}();return Object.defineProperty(t,"Parser",{value:function(){function e(){return d}function t(e){if("object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("Wikifier.Parser.add parser parameter must be an object");if(!e.hasOwnProperty("name"))throw new Error('parser object missing required "name" property');if("string"!=typeof e.name)throw new Error('parser object "name" property must be a string');if(!e.hasOwnProperty("match"))throw new Error('parser object missing required "match" property');if("string"!=typeof e.match)throw new Error('parser object "match" property must be a string');if(!e.hasOwnProperty("handler"))throw new Error('parser object missing required "handler" property');if("function"!=typeof e.handler)throw new Error('parser object "handler" property must be a function');if(e.hasOwnProperty("profiles")&&!Array.isArray(e.profiles))throw new Error('parser object "profiles" property must be an array');if(n(e.name))throw new Error('cannot clobber existing parser "'+e.name+'"');d.push(e)}function r(e){var t=d.find(function(t){return t.name===e});t&&d.delete(t)}function a(){return 0===d.length}function n(e){return!!d.find(function(t){return t.name===e})}function i(e){return d.find(function(t){return t.name===e})||null}function o(){return h}function s(){var e=d,t=e.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return h=Object.freeze({all:{parsers:e,parserRegExp:new RegExp(e.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{parsers:t,parserRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")}})}function u(){return"object"!==(void 0===h?"undefined":_typeof(h))||0===Object.keys(h).length}function l(e){if("object"!==(void 0===h?"undefined":_typeof(h))||!h.hasOwnProperty(e))throw new Error('nonexistent parser profile "'+e+'"');return h[e]}function c(e){return"object"===(void 0===h?"undefined":_typeof(h))&&h.hasOwnProperty(e)}var d=[],h=void 0;return Object.freeze(Object.defineProperties({},{parsers:{get:e},add:{value:t},delete:{value:r},isEmpty:{value:a},has:{value:n},get:{value:i},Profile:{value:Object.freeze(Object.defineProperties({},{profiles:{get:o},compile:{value:s},isEmpty:{value:u},has:{value:c},get:{value:l}}))}}))}()}),Object.defineProperties(t,{helpers:{value:{}},getValue:{value:State.getVar},setValue:{value:State.setVar},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(t.helpers,{inlineCss:{value:function(){function e(e){var r={classes:[],id:"",styles:{}},a=void 0;do{t.lastIndex=e.nextMatch;var n=t.exec(e.source);a=n&&n.index===e.nextMatch,a&&(n[1]?r.styles[Util.fromCssProperty(n[1])]=n[2].trim():n[3]?r.styles[Util.fromCssProperty(n[3])]=n[4].trim():n[5]?r.classes=r.classes.concat(n[5].slice(1).split(/\./)):n[6]&&(r.id=n[6].slice(1).split(/#/).pop()),e.nextMatch=t.lastIndex)}while(a);return r}var t=new RegExp(Patterns.inlineCss,"gm");return e}()},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:t.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var a=e[r];switch(a.nodeType){case Node.ELEMENT_NODE:var n=a.nodeName.toUpperCase();if("BR"===n)return!0;var i=t?window.getComputedStyle(a,null):a.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(n){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},createShadowSetterCallback:{value:function(){function e(){if(!n&&!(n=t.Parser.get("macro")))throw new Error('cannot find "macro" parser');return n}function r(){for(var t=n||e(),r=new Set,a=t.context;null!==a;a=a.parent)a._shadows&&a._shadows.forEach(function(e){return r.add(e)});return[].concat(_toConsumableArray(r))}function a(e){var t={};return r().forEach(function(e){var r=e.slice(1),a="$"===e[0]?State.variables:State.temporary;t[e]=a[r]}),function(){var r=Object.keys(t),a=r.length>0?{}:null;try{return r.forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;n.hasOwnProperty(r)&&(a[r]=n[r]),n[r]=t[e]}),Scripting.evalJavaScript(e)}finally{r.forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;t[e]=n[r],a.hasOwnProperty(r)?n[r]=a[r]:delete n[r]})}}}var n=null;return a}()},parseSquareBracketedMarkup:{value:function(e){function t(){return c>=e.source.length?s:e.source[c]}function r(t){return t<1||c+t>=e.source.length?s:e.source[c+t]}function a(){return{error:String.format.apply(String,arguments),pos:c}}function n(){l=c}function i(t){var r=e.source.slice(l,c).trim();if(""===r)throw new Error("malformed wiki "+(f?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(u.forceInternal=!0,u.link=r.slice(1)):u[t]=r,l=c}function o(e){++c;e:for(;;){switch(t()){case"\\":++c;var r=t();if(r!==s&&"\n"!==r)break;case s:case"\n":return s;case e:break e}++c}return c}var s=-1,u={},l=e.matchStart,c=l+1,d=void 0,h=void 0,f=void 0,p=void 0;if("["===(p=t()))f=u.isLink=!0;else{switch(f=!1,p){case"<":u.align="left",++c;break;case">":u.align="right",++c}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(c,c+3)))return a("malformed square-bracketed wiki markup");c+=3,u.isImage=!0}if("["!==function(){return c>=e.source.length?s:e.source[c++]}())return a("malformed wiki {0}",f?"link":"image");d=1,h=0,n();try{e:for(;;){switch(p=t()){case s:case"\n":return a("unterminated wiki {0}",f?"link":"image");case'"':if(o(p)===s)return a("unterminated double quoted string in wiki {0}",f?"link":"image");break;case"'":if((4===h||3===h&&f)&&o(p)===s)return a("unterminated single quoted string in wiki {0}",f?"link":"image");break;case"|":0===h&&(i(f?"text":"title"),++l,h=1);break;case"-":0===h&&">"===r(1)&&(i(f?"text":"title"),++c,l+=2,h=1);break;case"<":0===h&&"-"===r(1)&&(i(f?"link":"source"),++c,l+=2,h=2);break;case"[":if(-1===h)return a("unexpected left square bracket '['");++d,1===d&&(n(),++l);break;case"]":if(0===--d){switch(h){case 0:case 1:i(f?"link":"source"),h=3;break;case 2:i(f?"text":"title"),h=3;break;case 3:f?(i("setter"),h=-1):(i("link"),h=4);break;case 4:i("setter"),h=-1}if(++c,"]"===t()){++c;break e}--c}}++c}}catch(e){return a(e.message)}return u.pos=c,u}}}),t}();!function(){function e(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}Wikifier.Parser.add({name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator)}}),Wikifier.Parser.add({name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],r=0,a=e.matchLength,n=void 0,i=void 0;do{if(a>r)for(i=r;i<a;++i)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(a<r)for(i=r;i>a;--i)t.pop();r=a,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);n=o&&o.index===e.nextMatch,n&&(a=o[0].length,e.nextMatch+=o[0].length)}while(n)}}),Wikifier.Parser.add({name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,a=this.working.source,n=this.working.name,i=this.working.arguments,o=void 0;try{if(!(o=Macro.get(n))){if(Macro.tags.has(n)){var s=Macro.tags.get(n);return throwError(e.output,"child tag <<"+n+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+n+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&!(u=this.parseBody(e,o)))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+n+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+n+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({macro:o,name:n,args:l,payload:u,source:a,parent:this.context,parser:e});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i;try{o.handler(e.output,n,l,e,u)}finally{e._rawArgs=c}}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+n+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,a="/"+r,n="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,h=this.working.name,f=this.working.arguments,p=e.nextMatch;-1!==(e.matchStart=e.source.indexOf(this.match,e.nextMatch));)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case n:case a:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:h,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(p,y)}),d=g,h=m,f=v,p=b)}if(0===c){o.push({source:d,name:h,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(p,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return-1!==l?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),r=[],a=new RegExp("^"+Patterns.variable),n=void 0;null!==(n=t.exec(e));){var i=void 0;if(n[1])i=undefined;else if(n[2]){i=n[2];try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(n[3])i="";else if(n[4]){i=n[4];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error("unable to parse macro argument '"+i+"': "+e.message)}}else if(n[5]){i=n[5];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(n[6]){i=n[6];var o=Wikifier.helpers.parseSquareBracketedMarkup({source:i,matchStart:0});if(o.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+i+'": '+o.error);if(o.pos<i.length)throw new Error('unable to parse macro argument "'+i+'": unexpected character(s) "'+i.slice(o.pos)+'" (pos: '+o.pos+")");o.isLink?(i={isLink:!0},i.count=o.hasOwnProperty("text")?2:1,i.link=Wikifier.helpers.evalPassageId(o.link),i.text=o.hasOwnProperty("text")?Wikifier.helpers.evalText(o.text):i.link,i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null):o.isImage&&(i=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(Wikifier.helpers.evalPassageId(o.source)),o.hasOwnProperty("align")&&(i.align=o.align),o.hasOwnProperty("title")&&(i.title=Wikifier.helpers.evalText(o.title)),o.hasOwnProperty("link")&&(i.link=Wikifier.helpers.evalPassageId(o.link),i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link)),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null)}else if(n[7])if(i=n[7],a.test(i))i=State.getVar(i);else if(/^(?:settings|setup)[.[]/.test(i))try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}else if("null"===i)i=null;else if("undefined"===i)i=undefined;else if("true"===i)i=!0;else if("false"===i)i=!1;else{var s=Number(i);Number.isNaN(s)||(i=s)}else if(n[8]){var u=void 0;switch(n[8]){case"`":u="backquote expression";break;case'"':u="double quoted string";break;case"'":u="single quoted string"} +throw new Error("unterminated "+u+" in macro argument string")}r.push(i)}return r}}),Wikifier.Parser.add({name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=Wikifier.helpers.evalPassageId(t.link),a=t.hasOwnProperty("text")?Wikifier.helpers.evalText(t.text):r,n=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,i=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!Wikifier.isExternalLink(r)?Wikifier.createInternalLink(i,r,a,n):Wikifier.createExternalLink(i,r,a)}}),Wikifier.Parser.add({name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(Wikifier.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}}),Wikifier.Parser.add({name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=void 0;Config.debug&&(r=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),r.modes({block:!0}));var a=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,n=(Config.debug?r:e).output,i=void 0;if(t.hasOwnProperty("link")){var o=Wikifier.helpers.evalPassageId(t.link);n=t.forceInternal||!Wikifier.isExternalLink(o)?Wikifier.createInternalLink(n,o,null,a):Wikifier.createExternalLink(n,o),n.classList.add("link-image")}if(n=jQuery(document.createElement("img")).appendTo(n).get(0),i=Wikifier.helpers.evalPassageId(t.source),"data:"!==i.slice(0,5)&&Story.has(i)){var s=Story.get(i);s.tags.includes("Twine.image")&&(n.setAttribute("data-passage",s.title),i=s.text)}n.src=i,t.hasOwnProperty("title")&&(n.title=Wikifier.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(n.align=t.align)}}),Wikifier.Parser.add({name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);if(t&&t.index===e.matchStart){var r=jQuery(document.createElement("pre"));jQuery(document.createElement("code")).text(t[1]).appendTo(r),r.appendTo(e.output),e.nextMatch=this.lookahead.lastIndex}}}),Wikifier.Parser.add({name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}}),Wikifier.Parser.add({name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=Wikifier.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var r=this.blockRegExp.exec(e.source),a=r&&r.index===e.nextMatch,n=jQuery(document.createElement(a?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?n.addClass("marked"):(t.classes.forEach(function(e){return n.addClass(e)}),""!==t.id&&n.attr("id",t.id),n.css(t.styles)),a?(e.nextMatch+=r[0].length,e.subWikify(n[0],"\\n?"+this.terminator)):e.subWikify(n[0],this.terminator)}}),Wikifier.Parser.add({name:"verbatimText",profiles:["core"],match:'"{3}|<[Nn][Oo][Ww][Ii][Kk][Ii]>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<[Nn][Oo][Ww][Ii][Kk][Ii]>((?:.|\n)*?)<\/[Nn][Oo][Ww][Ii][Kk][Ii]>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output))}}),Wikifier.Parser.add({name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<[Hh][Rr]\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}}),Wikifier.Parser.add({name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}}),Wikifier.Parser.add({name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}}),Wikifier.Parser.add({name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(State.getVar(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new Wikifier((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}}),Wikifier.Parser.add({name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator)}}),Wikifier.Parser.add({name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),r=[],a=null,n=null,i=0,o=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(o=s&&s.index===e.nextMatch){var u=s[2];"k"===u?(t.className=s[1],e.nextMatch+=s[0].length+1):(u!==a&&(a=u,n=jQuery(document.createElement(this.rowTypes[u])).appendTo(t)),"c"===a?(n.css("caption-side",0===i?"top":"bottom"),e.nextMatch+=1,e.subWikify(n[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(n).get(0),r),++i)}}while(o)},rowHandler:function(e,t,r){var a=this,n=new RegExp(this.cellPattern,"gm"),i=0,o=1,s=void 0;do{n.lastIndex=e.nextMatch;var u=n.exec(e.source);if(s=u&&u.index===e.nextMatch){if("~"===u[1]){var l=r[i];l&&(++l.rowCount,l.$element.attr("rowspan",l.rowCount).css("vertical-align","middle")),e.nextMatch=u.index+u[0].length-1}else if(">"===u[1])++o,e.nextMatch=u.index+u[0].length-1;else{if(u[2]){e.nextMatch=u.index+u[0].length;break}!function(){++e.nextMatch;for(var n=Wikifier.helpers.inlineCss(e),s=!1,u=!1,l=void 0;" "===e.source.substr(e.nextMatch,1);)s=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(l=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):l=jQuery(document.createElement("td")).appendTo(t),r[i]={rowCount:1,$element:l},o>1&&(l.attr("colspan",o),o=1),e.subWikify(l[0],a.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(u=!0),n.classes.forEach(function(e){return l.addClass(e)}),""!==n.id&&l.attr("id",n.id),s&&u?n.styles["text-align"]="center":s?n.styles["text-align"]="right":u&&(n.styles["text-align"]="left"),l.css(n.styles),e.nextMatch=e.nextMatch-1}()}++i}}while(s)}}),Wikifier.Parser.add({name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],r=null,a=0,n=void 0,i=void 0;do{this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);if(n=o&&o.index===e.nextMatch){var s=o[2]?"ol":"ul",u=o[0].length;if(e.nextMatch+=o[0].length,u>a)for(i=a;i<u;++i)t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0));else if(u<a)for(i=a;i>u;--i)t.pop();else u===a&&s!==r&&(t.pop(),t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0)));a=u,r=s,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(n)}}),Wikifier.Parser.add({name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:\x3c!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}}),Wikifier.Parser.add({name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.spaceNoTerminator+"*(?:\\n|$)|(?:^|\\n)"+Patterns.spaceNoTerminator+"*\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"lineBreak",profiles:["core"],match:"\\n|<[Bb][Rr]\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}}),Wikifier.Parser.add({name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)",handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}}),Wikifier.Parser.add({name:"xmlProlog",profiles:["core"],match:"<\\?[Xx][Mm][Ll][^>]*\\?>",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"verbatimHtml",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:e}),Wikifier.Parser.add({name:"verbatimSvgTag",profiles:["core"],match:"<[Ss][Vv][Gg][^>]*>",lookahead:/(<[Ss][Vv][Gg][^>]*>(?:.|\n)*?<\/[Ss][Vv][Gg]>)/gm,handler:e}),Wikifier.Parser.add({name:"verbatimScriptTag",profiles:["core"],match:"<[Ss][Cc][Rr][Ii][Pp][Tt][^>]*>",lookahead:/(<[Ss][Cc][Rr][Ii][Pp][Tt]*>(?:.|\n)*?<\/[Ss][Cc][Rr][Ii][Pp][Tt]>)/gm,handler:e}),Wikifier.Parser.add({name:"styleTag",profiles:["core"],match:"<[Ss][Tt][Yy][Ll][Ee][^>]*>",lookahead:/(<[Ss][Tt][Yy][Ll][Ee]*>)((?:.|\n)*?)(<\/[Ss][Tt][Yy][Ll][Ee]>)/gm,imageMarkup:new RegExp(Patterns.cssImage,"g"),hasImageMarkup:new RegExp(Patterns.cssImage),handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);if(t&&t.index===e.matchStart){e.nextMatch=this.lookahead.lastIndex;var r=t[2];this.hasImageMarkup.test(r)&&(this.imageMarkup.lastIndex=0,r=r.replace(this.imageMarkup,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var a=Story.get(r);a.tags.includes("Twine.image")&&(r=a.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),jQuery(document.createDocumentFragment()).append(t[1]+r+t[3]).appendTo(e.output)}}}),Wikifier.Parser.add({name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",mediaElements:["audio","img","source","track","video"],nobrElements:["audio","colgroup","datalist","dl","figure","ol","optgroup","picture","select","table","tbody","tfoot","thead","tr","ul","video"],voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],a=r&&r.toLowerCase();if(a){var n=this.voidElements.includes(a)||e.matchText.endsWith("/>"),i=this.nobrElements.includes(a),o=void 0,s=void 0;if(!n){o="<\\/"+a+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(!n&&!s)return throwError(e.output,"cannot find a closing tag for HTML <"+r+">",e.matchText+"…");var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;try{this.processAttributeDirectives(c)}catch(t){return throwError(e.output,"<"+a+">: "+t.message,e.matchText+"…")}c.hasAttribute("data-passage")&&(this.processDataAttributes(c,a),Config.debug&&(d=new DebugView(e.output,"html-"+a,a,e.matchText),d.modes({block:"img"===a,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild("track"===a?c.cloneNode(!0):c)}},processAttributeDirectives:function(e){[].concat(_toConsumableArray(e.attributes)).forEach(function(t){var r=t.name,a=t.value,n="@"===r[0];if(n||r.startsWith("sc-eval:")){var i=r.slice(n?1:8),o=void 0;try{o=Scripting.evalTwineScript(a)}catch(e){throw new Error('bad evaluation from attribute directive "'+r+'": '+e.message)}try{e.setAttribute(i,o),e.removeAttribute(r)}catch(e){throw new Error('cannot transform attribute directive "'+r+'" into attribute "'+i+'"')}}})},processDataAttributes:function(e,t){var r=e.getAttribute("data-passage");if(null!=r){var a=Wikifier.helpers.evalPassageId(r);if(a!==r&&(r=a,e.setAttribute("data-passage",a)),""!==r)if(this.mediaElements.includes(t)){if("data:"!==r.slice(0,5)&&Story.has(r)){r=Story.get(r);var n=void 0,i=void 0;switch(t){case"audio":case"video":i="Twine."+t;break;case"img":i="Twine.image";break;case"track":i="Twine.vtt";break;case"source":var o=$(e).closest("audio,picture,video");o.length&&(n=o.get(0).tagName.toLowerCase(),i="Twine."+("picture"===n?"image":n))}r.tags.includes(i)&&(e["picture"===n?"srcset":"src"]=r.text.trim())}}else{var s=e.getAttribute("data-setter"),u=void 0;null!=s&&""!==(s=String(s).trim())&&(u=Wikifier.helpers.createShadowSetterCallback(Scripting.parse(s))),Story.has(r)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof u&&u.call(this),Engine.play(r)})}}}})}();var Macro=function(){function e(t,r,n){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,n)});if(!h.test(t))throw new Error('invalid macro name "'+t+'"');if(a(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===(void 0===r?"undefined":_typeof(r)))c[t]=n?clone(r):r;else{if(!a(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=n?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(a(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function a(e){return c.hasOwnProperty(e)}function n(e){var t=null;return a(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],n=[].concat(r,Array.isArray(t)?t:[]),i=0;i<n.length;++i){var o=n[i];if(a(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);-1!==r&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},h=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:a},get:{value:n},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){return function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parent:{value:r.parent},parser:{value:r.parser},_output:{value:r.parser.output},_shadows:{writable:!0,value:null},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"addShadow",value:function(){var e=this;this._shadows||(this._shadows=new Set);for(var t=new RegExp("^"+Patterns.variable+"$"),r=arguments.length,a=Array(r),n=0;n<r;n++)a[n]=arguments[n];a.flatten().forEach(function(r){if("string"!=typeof r)throw new TypeError("variable name must be a string; type: "+(void 0===r?"undefined":_typeof(r)));if(!t.test(r))throw new Error('invalid variable name "'+r+'"');e._shadows.add(r)})}},{key:"createShadowWrapper",value:function(e,t,r){var a=this,n=void 0;return"function"==typeof e&&(n={},this.shadowView.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t]})),function(){for(var i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s];if("function"==typeof r&&r.apply(this,o),"function"==typeof e){var u=Object.keys(n),l=u.length>0?{}:null,c=Wikifier.Parser.get("macro"),d=void 0;try{u.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;r.hasOwnProperty(t)&&(l[t]=r[t]),r[t]=n[e]}),d=c.context,c.context=a,e.apply(this,o)}finally{d!==undefined&&(c.context=d),u.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t],l.hasOwnProperty(t)?r[t]=l[t]:delete r[t]})}}"function"==typeof t&&t.apply(this,o)}}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e||this.name,t||this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t||this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"shadows",get:function(){return[].concat(_toConsumableArray(this._shadows))}},{key:"shadowView",get:function(){var e=new Set;return this.contextSelectAll(function(e){return e._shadows}).forEach(function(t){return t._shadows.forEach(function(t){return e.add(t)})}),[].concat(_toConsumableArray(e))}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}()}();!function(){if(Macro.add("capture",{skipArgs:!0,tags:null,handler:function(){if(0===this.args.raw.length)return this.error("no story/temporary variable list specified");var e={};try{for(var t=new RegExp("("+Patterns.variable+")","g"),r=void 0;null!==(r=t.exec(this.args.raw));){var a=r[1],n=a.slice(1),i="$"===a[0]?State.variables:State.temporary;i.hasOwnProperty(n)&&(e[n]=i[n]),this.addShadow(a)}new Wikifier(this.output,this.payload[0].contents)}finally{this.shadows.forEach(function(t){var r=t.slice(1),a="$"===t[0]?State.variables:State.temporary;e.hasOwnProperty(r)?a[r]=e[r]:delete a[r]})}}}),Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("State\\.(variables|temporary)\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=State[t[1]],a=t[2];r.hasOwnProperty(a)&&delete r[a]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var a=r[1];e[a]=State.variables[a]}if(!storage.set("remember",e))return this.error("unknown error, cannot remember: "+this.args.raw);Config.debug&&this.debugView.modes({hidden:!0})},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,a=!1;null!==(r=t.exec(this.args.full));){var n=r[1];State.variables.hasOwnProperty(n)&&delete State.variables[n],e&&e.hasOwnProperty(n)&&(a=!0,delete e[n])}if(a&&!storage.set("remember",e))return this.error("unknown error, cannot update remember store");Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("include",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("display","include"),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=void 0;try{var t=this.payload.length;for(e=0;e<t;++e)switch(this.payload[e].name){case"else":if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);if(e+1!==t)return this.error("<<else>> must be the final clause");break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}var r=Scripting.evalJavaScript,a=!1;for(e=0;e<t;++e){if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||r(this.payload[e].args.full)){a=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<t;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!a,invalid:!a})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===(void 0===t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length;if(1===e)return this.error("no cases specified");var t=void 0;for(t=1;t<e;++t)switch(this.payload[t].name){case"default":if(this.payload[t].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[t].args.raw);if(t+1!==e)return this.error("<<default>> must be the final case");break;default:if(0===this.payload[t].args.length)return this.error("no value(s) specified for <<"+this.payload[t].name+">> (#"+t+")")}var r=void 0;try{r=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}var a=this.debugView,n=!1;for(Config.debug&&a.modes({nonvoid:!1,hidden:!0}),t=1;t<e;++t){if(Config.debug&&this.createDebugView(this.payload[t].name,this.payload[t].source).modes({nonvoid:!1}),"default"===this.payload[t].name||this.payload[t].args.some(function(e){return e===r})){n=!0,new Wikifier(this.output,this.payload[t].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++t;t<e;++t)this.createDebugView(this.payload[t].name,this.payload[t].source).modes({nonvoid:!1,hidden:!0,invalid:!0});a.modes({nonvoid:!1,hidden:!0,invalid:!n}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!n})}}}),Macro.add("for",{skipArgs:!0,tags:null,_hasRangeRe:new RegExp("^\\S.*?\\s+range\\s+\\S.*?$"),_rangeRe:new RegExp("^(?:State\\.(variables|temporary)\\.("+Patterns.identifier+")\\s*,\\s*)?State\\.(variables|temporary)\\.("+Patterns.identifier+")\\s+range\\s+(\\S.*?)$"),_3PartRe:/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/,handler:function(){var e=this.args.full.trim(),t=this.payload[0].contents.replace(/\n$/,"");if(0===e.length)this.self._handleFor.call(this,t,null,!0,null);else if(this.self._hasRangeRe.test(e)){var r=e.match(this.self._rangeRe);if(null===r)return this.error("invalid range form syntax, format: [index ,] value range collection");this.self._handleForRange.call(this,t,{type:r[1],name:r[2]},{type:r[3],name:r[4]},r[5])}else{var a=void 0,n=void 0,i=void 0;if(-1===e.indexOf(";")){if(/^\S+\s+in\s+\S+/i.test(e))return this.error("invalid syntax, for…in is not supported; see: for…range");if(/^\S+\s+of\s+\S+/i.test(e))return this.error("invalid syntax, for…of is not supported; see: for…range");n=e}else{var o=e.match(this.self._3PartRe);if(null===o)return this.error("invalid 3-part conditional form syntax, format: [init] ; [condition] ; [post]");a=o[1],n=o[2].trim(),i=o[3],0===n.length&&(n=!0)}this.self._handleFor.call(this,t,a,n,i)}},_handleFor:function(e,t,r,a){var n=Scripting.evalJavaScript,i=!0,o=Config.macros.maxLoopIterations;Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,t)try{n(t)}catch(e){return this.error("bad init expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}for(;n(r);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?e.replace(/^\n/,""):e),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{n(a)}catch(e){return this.error("bad post expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===(void 0===e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}},_handleForRange:function(e,t,r,a){var n=!0,i=void 0;try{i=this.self._toRangeList(a)}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});try{TempState.break=null;for(var o=0;o<i.length;++o)if(t.name&&(State[t.type][t.name]=i[o][0]),State[r.type][r.name]=i[o][1],new Wikifier(this.output,n?e.replace(/^\n/,""):e),n&&(n=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}}catch(e){return this.error("object"===(void 0===e?"undefined":_typeof(e))?e.message:e)}finally{TempState.break=null}},_toRangeList:function(e){var t=Scripting.evalJavaScript,r=void 0;try{r=t("{"===e[0]?"("+e+")":e)}catch(e){if("object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("bad range expression: "+e);throw e.message="bad range expression: "+e.message,e}var a=void 0;switch(void 0===r?"undefined":_typeof(r)){case"string":a=[];for(var n=0;n<r.length;){var i=Util.charAndPosAt(r,n);a.push([n,i.char]),n=1+i.end}break;case"object": +if(Array.isArray(r))a=r.map(function(e,t){return[t,e]});else if(r instanceof Set)a=[].concat(_toConsumableArray(r)).map(function(e,t){return[t,e]});else if(r instanceof Map)a=[].concat(_toConsumableArray(r.entries()));else{if("Object"!==Util.toStringTag(r))throw new Error("unsupported range expression type: "+Util.toStringTag(r));a=Object.keys(r).map(function(e){return[e,r[e]]})}break;default:throw new Error("unsupported range expression type: "+(void 0===r?"undefined":_typeof(r)))}return a}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){if(!this.contextHas(function(e){return"for"===e.name}))return this.error("must only be used in conjunction with its parent macro <<for>>");TempState.break="continue"===this.name?1:2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add(["button","link"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("button"===this.name?"button":"a")),r=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var a=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(t);this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(r=this.args[0].link),r=this.args[0].link}else t.append(document.createTextNode(this.args[0].text)),r=this.args[0].link;else t.wikiWithOptions({profile:"core"},this.args[0]),r=this.args.length>1?this.args[1]:undefined;null!=r?(t.attr("data-passage",r),Story.has(r)?(t.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&t.addClass("link-visited")):t.addClass("link-broken")):t.addClass("link-internal"),t.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=r},this.createShadowWrapper(""!==this.payload[0].contents?function(){return Wikifier.wikifyEval(e.payload[0].contents.trim())}:null,null!=r?function(){return Engine.play(r)}:null)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),a=this.args[1],n=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.checked?n:a)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,State.setVar(t,n)):State.setVar(t,a)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("a")),r=jQuery(document.createElement("span")),a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]);t.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},this.createShadowWrapper(function(){if("linkreplace"===e.name?t.remove():t.wrap('<span class="macro-'+e.name+'"></span>').replaceWith(function(){return t.html()}),""!==e.payload[0].contents){var n=document.createDocumentFragment();new Wikifier(n,e.payload[0].contents),r.append(n)}a&&setTimeout(function(){return r.removeClass("macro-"+e.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),r.addClass("macro-"+this.name+"-insert"),a&&r.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?r.insertBefore(t):r.insertAfter(t)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),a=this.args[1],n=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={}),TempState[this.name].hasOwnProperty(r)||(TempState[this.name][r]=0),jQuery(n).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&State.setVar(t,a)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(n.checked=!0,State.setVar(t,a))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),a=this.args[1],n="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.value)}).appendTo(this.output),State.setVar(t,a),i.textContent=a,n&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){delete postdisplay[e],setTimeout(function(){return i.focus()},Engine.minDomActionDelay)})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),a=this.args[1],n=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),"object"===(void 0===o?"undefined":_typeof(o))&&(o=o.link),jQuery(n).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){State.setVar(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),State.setVar(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),State.setVar(t,a),n.value=a,i&&(n.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+n.id]=function(e){delete postdisplay[e],setTimeout(function(){return n.focus()},Engine.minDomActionDelay)})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){for(var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output),t=0;t<this.args.length;++t){var r=void 0,a=void 0,n=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&n.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&n.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&n.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(a=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):a=r=this.args[t],State.variables.hasOwnProperty("#actions")&&State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables.hasOwnProperty("#actions")||(State.variables["#actions"]={}),State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(n||document.createTextNode(a))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,a=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var n=State.length-2;n>=0;--n)if(State.history[n].title!==State.passage){e=n,t=State.history[n].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(-1===e)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||-1!==e?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(a||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,a=void 0,n=void 0;if(1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&a.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&a.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&a.attr("align",this.args[0].align),t=this.args[0].link,n=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,n=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")&&State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e])return void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(a||document.createTextNode(r)).appendTo(this.output);jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables.hasOwnProperty("#choice")||(State.variables["#choice"]={}),State.variables["#choice"][e]=!0,"function"==typeof n&&n()})).addClass("macro-"+this.name).append(a||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass()}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');e.remove()}}),Has.audio){var e=Object.freeze([":not",":all",":looped",":muted",":paused",":playing"]);Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track or group IDs"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[];try{var a=function e(r){var a=r.id,o=void 0;switch(a){case":all":o=n;break;case":looped":o=n.filter(function(e){return t[e].isLooped()});break;case":muted":o=n.filter(function(e){return t[e].isMuted()});break;case":paused":o=n.filter(function(e){return t[e].isPaused()});break;case":playing":o=n.filter(function(e){return t[e].isPlaying()});break;default:o=":"===a[0]?i[a]:[a]}if(r.hasOwnProperty("not")){var s=r.not.map(function(t){return e(t)}).flatten();o=o.filter(function(e){return!s.includes(e)})}return o},n=Object.freeze(Object.keys(t)),i=Macro.get("cacheaudio").groups;this.self.parseIds(String(this.args[0]).trim()).forEach(function(e){r.push.apply(r,_toConsumableArray(a(e)))}),r.forEach(function(e){if(!t.hasOwnProperty(e))throw new Error('track "'+e+'" does not exist')})}catch(e){return this.error(e.message)}for(var o=this.args.slice(1),s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=void 0,f=5,p=void 0,g=void 0;o.length>0;){var m=o.shift();switch(m){case"play":case"pause":case"stop":s=m;break;case"fadein":s="fade",h=1;break;case"fadeout":s="fade",h=0;break;case"fadeto":if(0===o.length)return this.error("fadeto missing required level value");if(s="fade",g=o.shift(),h=Number.parseFloat(g),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeto: "+g);break;case"fadeoverto":if(o.length<2){var v=[];return o.length<1&&v.push("seconds"),o.length<2&&v.push("level"),this.error("fadeoverto missing required "+v.join(" and ")+" value"+(v.length>1?"s":""))}if(s="fade",g=o.shift(),f=Number.parseFloat(g),Number.isNaN(f)||!Number.isFinite(f))return this.error("cannot parse fadeoverto: "+g);if(g=o.shift(),h=Number.parseFloat(g),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+g);break;case"volume":if(0===o.length)return this.error("volume missing required level value");if(g=o.shift(),u=Number.parseFloat(g),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse volume: "+g);break;case"mute":case"unmute":l="mute"===m;break;case"time":if(0===o.length)return this.error("time missing required seconds value");if(g=o.shift(),c=Number.parseFloat(g),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse time: "+g);break;case"loop":case"unloop":d="loop"===m;break;case"goto":if(0===o.length)return this.error("goto missing required passage title");if(g=o.shift(),p="object"===(void 0===g?"undefined":_typeof(g))?g.link:g,!Story.has(p))return this.error('passage "'+p+'" does not exist');break;default:return this.error("unknown action: "+m)}}try{r.forEach(function(e){var r=t[e];switch(null!=u&&(r.volume=u),null!=c&&(r.time=c),null!=l&&(r.mute=l),null!=d&&(r.loop=d),null!=p&&r.one("end",function(){return Engine.play(p)}),s){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(f,h)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}},parseIds:function(e){for(var t=[],r=/:?[^\s:()]+/g,a=void 0;null!==(a=r.exec(e));){var n=a[0];if(":not"===n){if(0===t.length)throw new Error('invalid negation: no group ID preceded ":not()"');var i=t[t.length-1];if(":"!==i.id[0])throw new Error('invalid negation of track "'+i.id+'": only groups may be negated with ":not()"');var o=function(e,t){var r=/\S/g,a=/[()]/g,n=void 0;if(r.lastIndex=t,null===(n=r.exec(e))||"("!==n[0])throw new Error('invalid ":not()" syntax: missing parentheticals');a.lastIndex=r.lastIndex;for(var i=r.lastIndex,o={str:"",nextMatch:-1},s=1;null!==(n=a.exec(e));)if("("===n[0]?++s:--s,s<1){o.nextMatch=a.lastIndex,o.str=e.slice(i,o.nextMatch-1);break}return o}(e,r.lastIndex);if(-1===o.nextMatch)throw new Error('unknown error parsing ":not()"');r.lastIndex=o.nextMatch,i.not=this.parseIds(o.str)}else t.push({id:n})}return t}}),Macro.add("cacheaudio",{tracks:{},groups:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim();if(/^:|\s/.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var r=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){if("data:"!==e.slice(0,5)&&Story.has(e)){var t=Story.get(e);if(t.tags.includes("Twine.audio"))return t.text.trim()}var a=r.exec(e);return null===a?e:{format:a[1],src:a[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var n=this.self.tracks;n.hasOwnProperty(t)&&n[t].destroy(),n[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createaudiogroup",{tags:["track"],handler:function(){if(0===this.args.length)return this.error("no group ID specified");var t=String(this.args[0]).trim();if(/^[^:]|\s/.test(t))return this.error('invalid group ID "'+t+'": group IDs must start with a colon and may not contain whitespace');if(e.includes(t))return this.error('cannot clobber special group ID "'+t+'"');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var r=Macro.get("cacheaudio").tracks,a=[],n=1,i=this.payload.length;n<i;++n){if(this.payload[n].args.length<1)return this.error("no track ID specified");var o=String(this.payload[n].args[0]).trim();if(!r.hasOwnProperty(o))return this.error('track "'+o+'" does not exist');a.push(o),Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0})}var s=Macro.get("cacheaudio").groups;s.hasOwnProperty(t)&&delete s[t],s[t]=a,this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim();if(/^:|\s/.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),n=1,i=this.payload.length;n<i;++n){if(this.payload[n].args.length<2){var o=[];return this.payload[n].args.length<1&&o.push("track ID"),this.payload[n].args.length<2&&o.push("actions"),this.error("no "+o.join(" or ")+" specified")}var s=String(this.payload[n].args[0]).trim();if(!t.hasOwnProperty(s))return this.error('track "'+s+'" does not exist');for(var u=this.payload[n].args.slice(1),l=!1,c=void 0;u.length>0;){var d=u.shift(),h=void 0;switch(d){case"copy":l=!0;break;case"rate":u.length>0&&u.shift();break;case"volume":if(0===u.length)return this.error("volume missing required level value");if(h=u.shift(),c=Number.parseFloat(h),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse volume: "+h);break;default:return this.error("unknown action: "+d)}}var f=t[s];a.add({copy:l,track:f,volume:null!=c?c:f.volume}),Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0})}var p=this.self.lists;p.hasOwnProperty(r)&&p[r].destroy(),p[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,a=void 0;e.length>0;){var n=e.shift(),i=void 0;switch(n){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===n;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),a=Number.parseFloat(i),Number.isNaN(a)||!Number.isFinite(a))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+n)}}try{null!=r&&(SimpleAudio.mute=r),null!=a&&(SimpleAudio.volume=a),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var a=[];return this.args.length<1&&a.push("list ID"),this.args.length<2&&a.push("actions"),this.error("no "+a.join(" or ")+" specified")}var n=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!n.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=n[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,h=5,f=void 0;r.length>0;){var p=r.shift();switch(p){case"play":case"pause":case"stop":case"skip":o=p;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",f=r.shift(),h=Number.parseFloat(f),Number.isNaN(h)||!Number.isFinite(h))return this.error("cannot parse fadeoverto: "+f);if(f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(f=r.shift(),s=Number.parseFloat(f),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":u="mute"===p;break;case"loop":case"unloop":l="loop"===p;break;case"shuffle":case"unshuffle":c="shuffle"===p;break;default:return this.error("unknown action: "+p)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(h,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();if(!e.hasOwnProperty(t))return this.error('playlist "'+t+'" does not exist');e[t].destroy(),delete e[t],Config.debug&&this.createDebugView()}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock(r);var a=t.shift();if(a.hasData())return e();a.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue,r=void 0;t.length>0||(this.self.fillQueue(t),t.length>0&&(r=LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var a=Macro.get("setplaylist").list;null!==a&&a.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var a=0;a<this.args.length;++a){var n=this.args[a];if(!r.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');t.list.add(r[n])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})}else Macro.add(["audio","cacheaudio","createaudiogroup","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}});Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay)}}),Macro.add("repeat",{isAsync:!0,tags:null,timers:new Set,handler:function(){var e=this;if(0===this.args.length)return this.error("no time value specified");var t=void 0;try{t=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});var r=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),a=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerInterval(this.createShadowWrapper(function(){var t=document.createDocumentFragment();new Wikifier(t,e.payload[0].contents);var n=a;r&&(n=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(n)),n.append(t),r&&setTimeout(function(){return n.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}),t)},registerInterval:function(e,t){var r=this;if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var a=State.turns,n=this.timers,i=null;i=setInterval(function(){if(a!==State.turns)return clearInterval(i),void n.delete(i);var t=void 0;try{TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(t=TempState.repeatTimerId),TempState.repeatTimerId=i,e.call(r)}finally{void 0!==t?TempState.repeatTimerId=t:delete TempState.repeatTimerId,TempState.break=null}},t),n.add(i),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],n.forEach(function(e){return clearInterval(e)}),n.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("timed",{isAsync:!0,tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0});var a=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),n=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerTimeout(this.createShadowWrapper(function(e){var t=document.createDocumentFragment();new Wikifier(t,e.content);var r=n;Config.debug&&"next"===e.name&&(r=jQuery(new DebugView(r[0],"macro",e.name,e.source).output)),a&&(r=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(r)),r.append(t),a&&setTimeout(function(){return r.removeClass("macro-timed-in")},Engine.minDomActionDelay)}),e)},registerTimeout:function(e,t){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var r=State.turns,a=this.timers,n=null,i=t.shift(),o=function o(){if(a.delete(n),r===State.turns){var s=i;null!=(i=t.shift())&&(n=setTimeout(o,i.delay),a.add(n)),e.call(this,s)}};n=setTimeout(o,i.delay),a.add(n),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearTimeout(e)}),a.clear()})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=void 0;try{State.variables.hasOwnProperty("args")&&(t=State.variables.args),State.variables.args=[].concat(_toConsumableArray(this.args)),State.variables.args.raw=this.args.raw,State.variables.args.full=this.args.full,this.addShadow("$args");var r=document.createDocumentFragment(),a=[];if(new Wikifier(r,e),Array.from(r.querySelectorAll(".error")).forEach(function(e){a.push(e.textContent)}),0!==a.length)return this.error("error"+(a.length>1?"s":"")+" within widget contents ("+a.join("; ")+")");this.output.appendChild(r)}catch(e){return this.error("cannot execute widget: "+e.message)}finally{void 0!==t?State.variables.args=t:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{ +var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var a=t.offsetWidth;r.style.overflow="auto";var n=t.offsetWidth;a===n&&(n=r.clientWidth),document.body.removeChild(r),e=a-n}catch(e){}return e||17}();var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1><button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button></div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),h=jQuery(e.find("#ui-dialog").get(0)),f=jQuery(e.find("#ui-dialog-title").get(0)),p=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return h.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return p.hasClass(e)}))}function r(e,t){return p.empty().removeClass(),null!=t&&p.addClass(t),f.empty().append((null!=e?String(e):"")||" "),p.get(0)}function a(){return p.get(0)}function n(){var e;return(e=p).append.apply(e,arguments),Dialog}function i(){var e;return(e=p).wiki.apply(e,arguments),Dialog}function o(e,t,r,a,n){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,n),"function"==typeof a&&a(e)})}function s(e,r){var a=jQuery.extend({top:50},e),n=a.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).attr("data-dialog","open"),d.addClass("open"),null!==p[0].querySelector("img")&&p.imagesLoaded().always(function(){return l({data:{top:n}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(n);return h.css(i).addClass("open").focus(),jQuery(window).on("resize.dialog-resize",null,{top:n},jQuery.throttle(40,l)),Has.mutationObserver?(v=new MutationObserver(function(e){for(var t=0;t<e.length;++t)if("childList"===e[t].type){l({data:{top:n}});break}}),v.observe(p[0],{childList:!0,subtree:!0})):p.on("DOMNodeInserted.dialog-resize DOMNodeRemoved.dialog-resize",null,{top:n},jQuery.throttle(40,l)),jQuery(document).on("click.dialog-close",".ui-close",{closeFn:r},u).on("keypress.dialog-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger(":dialogopen")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".dialog-close"),v?(v.disconnect(),v=null):p.off(".dialog-resize"),jQuery(window).off(".dialog-resize"),h.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),f.empty(),p.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeAttr("data-dialog"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger(":dialogclose")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&void 0!==e.data.top?e.data.top:50;"block"===h.css("display")&&(h.css({display:"none"}),h.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),a={left:"",right:"",top:"",bottom:""};h.css(a);var n=r.width()-h.outerWidth(!0)-1,i=r.height()-h.outerHeight(!0)-1;return n<=32+m&&(i-=m),i<=32+m&&(n-=m),a.left=a.right=n<=32?16:n/2>>0,a.top=i<=32?a.bottom=16:i/2>t?t:a.bottom=i/2>>0,Object.keys(a).forEach(function(e){""!==a[e]&&(a[e]+="px")}),a}var d=null,h=null,f=null,p=null,g=null,m=0,v=null;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:a},append:{value:n},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(e){return l("object"===(void 0===e?"undefined":_typeof(e))?{data:e}:undefined)}}}))}(),Engine=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),function(){var e=jQuery(document.createDocumentFragment()),t=Story.has("StoryInterface")&&Story.get("StoryInterface").text.trim();if(t){if(UIBar.destroy(),jQuery(document.head).find("#style-core-display").remove(),e.append(t),0===e.find("#passages").length)throw new Error('no element with ID "passages" found within "StoryInterface" special passage')}else e.append('<div id="story" role="main"><div id="passages"></div></div>');e.insertBefore("#store-area")}(),S=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-aria-outlines",type:"text/css"}).appendTo(document.head).get(0)}()),jQuery(document).on("mousedown.aria-outlines keydown.aria-outlines",function(e){return"keydown"===e.type?m():g()})}function t(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),k=t.output}}catch(e){console.error(e),Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(jQuery(document.documentElement).focus(),State.restore())h();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&f(Config.passages.start)}}function r(){LoadScreen.show(),window.scroll(0,0),State.reset(),jQuery.event.trigger(":enginerestart"),window.location.reload()}function a(){return b}function n(){return b===v.Idle}function i(){return b!==v.Idle}function o(){return b===v.Rendering}function s(){return w}function u(e){var t=State.goTo(e);return t&&h(),t}function l(e){var t=State.go(e);return t&&h(),t}function c(){return l(-1)}function d(){return l(1)}function h(){return f(State.passage,!0)}function f(e,t){var r=e;b=v.Playing,TempState={},State.clearTemporary();var a=void 0,n=void 0;if("function"==typeof Config.navigation.override)try{var i=Config.navigation.override(r);i&&(r=i)}catch(e){}var o=Story.get(r);if(jQuery.event.trigger({type:":passageinit",passage:o}),Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},o),t||State.create(o.title),w=Util.now(),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},o),Story.has("PassageReady"))try{a=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){console.error(e),Alert.error("PassageReady",e.message)}b=v.Rendering;var s=jQuery(o.render()),u=document.getElementById("passages");if(u.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(u.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(y,Config.passages.transitionOut))}else t.remove()}):jQuery(u).empty()),s.addClass("passage-in").appendTo(u),setTimeout(function(){return s.removeClass("passage-in")},y),Config.passages.displayTitles&&o.title!==Config.passages.start&&(document.title=o.title+" | "+Story.title),window.scroll(0,0),b=v.Playing,Story.has("PassageDone"))try{n=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){console.error(e),Alert.error("PassageDone",e.message)}if(jQuery.event.trigger({type:":passagedisplay",passage:o}),Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},o),Config.ui.updateStoryElements&&UIBar.setStoryElements(),Config.debug){var l=void 0;null!=a&&(l=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),l.modes({hidden:!0}),l.append(a),s.prepend(l.output)),null!=n&&(l=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),l.modes({hidden:!0}),l.append(n),s.append(l.output)),1===State.turns&&null!=k&&s.prepend(k)}switch(g(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":o.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&o.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return jQuery.event.trigger({type:":passageend",passage:o}),b=v.Idle,w=Util.now(),s[0]}function p(e,t,r){var a=!1;switch(r){case undefined:break;case"replace":case"back":a=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}f(e,a)}function g(){S.set("*:focus{outline:none}")}function m(){S.clear()}var v=Util.toEnum({Idle:"idle",Playing:"playing",Rendering:"rendering"}),y=40,b=v.Idle,w=null,k=null,S=null;return Object.freeze(Object.defineProperties({},{States:{value:v},minDomActionDelay:{value:y},init:{value:e},start:{value:t},restart:{value:r},state:{get:a},isIdle:{value:n},isPlaying:{value:i},isRendering:{value:o},lastPlay:{get:s},goTo:{value:u},go:{value:l},backward:{value:c},forward:{value:d},show:{value:h},play:{value:f},display:{value:p}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i;var r=/(?:\\n|\\t|\\s|\\|\r)/g,a=new RegExp(r.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});return t=function(e){if(null==e)return"";var t=String(e);return t&&a.test(t)?t.replace(r,function(e){return n[e]}):t},function(){function r(t,a){var n=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:a||null},tags:{value:Object.freeze(a&&a.hasAttribute("tags")?a.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return n.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch(void 0===e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("Twine.image")?e="[img["+e+"]]":(Config.passages.nobr||this.tags.includes("nobr"))&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),e}},{key:"render",value:function(){var e=this,t=this.tags.length>0?this.tags.join(" "):null,a=document.createElement("div");return jQuery(a).attr({id:this.domId,"data-passage":this.title,"data-tags":t}).addClass("passage "+this.className),jQuery(document.body).attr("data-tags",t).addClass(this.className),jQuery(document.documentElement).attr("data-tags",t),jQuery.event.trigger({type:":passagestart",content:a,passage:this}),Object.keys(prerender).forEach(function(t){"function"==typeof prerender[t]&&prerender[t].call(e,a,t)}),Story.has("PassageHeader")&&new Wikifier(a,Story.get("PassageHeader").processText()),new Wikifier(a,this.processText()),Story.has("PassageFooter")&&new Wikifier(a,Story.get("PassageFooter").processText()),jQuery.event.trigger({type:":passagerender",content:a,passage:this}),Object.keys(postrender).forEach(function(t){"function"==typeof postrender[t]&&postrender[t].call(e,a,t)}),this._excerpt=r.getExcerptFromNode(a),a}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var a=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(a)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),a=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return a?a[1]+"…":"…"}}]),r}()}(),Save=function(){function e(){if("cookie"===storage.name)return a(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&x(e.slots,Config.saves.slots-e.slots.length),t=!0),O(e.autosave)&&(t=!0);for(var n=0;n<e.slots.length;++n)O(e.slots[n])&&(t=!0);return j(e)&&(storage.delete("saves"),t=!1),t&&C(e),P=e.slots.length-1,!0}function t(){return{autosave:null,slots:x([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function a(){return storage.delete("saves"),!0}function n(){return i()||d()}function i(){return"cookie"!==storage.name&&void 0!==Config.saves.autosave}function o(){return null!==r().autosave}function s(){return r().autosave}function u(){var e=r();return null!==e.autosave&&A(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var a=r(),n={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(n.metadata=t),a.autosave=T(n),C(a)}function c(){var e=r();return e.autosave=null,C(e)}function d(){return"cookie"!==storage.name&&-1!==P}function h(){return P+1}function f(){if(!d())return 0;for(var e=r(),t=0,a=0,n=e.slots.length;a<n;++a)null!==e.slots[a]&&++t;return t}function p(){return 0===f()}function g(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>P)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&A(t.slots[e])}function y(e,t,a){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>P)return!1;var n=r();if(e>=n.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=a&&(i.metadata=a),n.slots[e]=T(i),C(n)}function b(e){if(e<0||e>P)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,C(t))}function w(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var r=null==e?Story.domId:Util.slugify(e),a=r+"-"+function(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),a=e.getHours(),n=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),a<10&&(a="0"+a),n<10&&(n="0"+n),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+a+n+i}()+".save",n=null==t?{}:{metadata:t},i=LZString.compressToBase64(JSON.stringify(T(n)));saveAs(new Blob([i],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var a=void 0;try{a=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}A(a)}}),r.readAsText(t)}function S(e){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),null;var t=null==e?{}:{metadata:e};return LZString.compressToBase64(JSON.stringify(T(t)))}function E(e){var t=void 0;try{t=JSON.parse(LZString.decompressFromBase64(e))}catch(e){}return A(t)?t.metadata:null}function x(e,t){for(var r=0;r<t;++r)e.push(null);return e}function j(e){for(var t=e.slots,r=!0,a=0,n=t.length;a<n;++a)if(null!==t[a]){r=!1;break}return null===e.autosave&&r}function C(e){return j(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function O(e){if(null==e||"object"!==(void 0===e?"undefined":_typeof(e)))return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired,(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function T(e){if(null!=e&&"object"!==(void 0===e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function A(e){try{if(O(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var P=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:a},ok:{value:n},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:h},isEmpty:{value:p},count:{value:f},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k},serialize:{value:S},deserialize:{value:E}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}a(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function a(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function n(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)n(),a();else{if(null==e||!h(e))throw new Error('nonexistent setting "'+e+'"');var t=f(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var a=[];throw arguments.length<1&&a.push("type"),arguments.length<2&&a.push("name"),arguments.length<3&&a.push("definition"),new Error("missing parameters, no "+a.join(" or ")+" specified")}if("object"!==(void 0===r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(h(t))throw new Error('cannot clobber existing setting "'+t+'"');var n={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:n.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(n.list=Object.freeze(r.list),null==r.default)n.default=r.list[0];else{var i=r.list.indexOf(r.default);if(-1===i)throw new Error("list does not contain default");n.default=r.list[i]}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(n.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(n.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(n))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function h(e){return g.some(function(t){return t.name===e})}function f(e){return g.find(function(t){return t.name===e})}function p(e){h(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),p(e);break}}var g=[],m=Util.toEnum({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:a},clear:{value:n},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:h},get:{value:f},delete:{value:p}}))}(),Story=function(){function e(){function e(e){if(e.tags.includesAny(a))throw new Error('starting passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return a.includes(e)}).sort().join('", "')+'"')}function t(e){if(n.includes(e.title)&&e.tags.includesAny(a))throw new Error('special passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return a.includes(e)}).sort().join('", "')+'"')}var a=["widget"],n=["PassageDone","PassageFooter","PassageHeader","PassageReady","StoryAuthor","StoryBanner","StoryCaption","StoryInit","StoryMenu","StoryShare","StorySubtitle"],i=function(e){var t=[].concat(a),r=[];if(e.tags.forEach(function(e){t.includes(e)&&r.push.apply(r,_toConsumableArray(t.delete(e)))}),r.length>1)throw new Error('code passage "'+e.title+'" contains multiple code tags; invalid: "'+r.sort().join('", "')+'"')};if(a.unshift("script","stylesheet"),n.push("StoryTitle"),Config.passages.start=function(){var e=String("START_AT");return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var r=jQuery(this),a=new Passage(r.attr("tiddler"),this);a.title===Config.passages.start?(e(a),c[a.title]=a):a.tags.includes("stylesheet")?(i(a),d.push(a)):a.tags.includes("script")?(i(a),h.push(a)):a.tags.includes("widget")?(i(a),f.push(a)):(t(a),c[a.title]=a)}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var o=document.createDocumentFragment();new Wikifier(o,c.StoryTitle.processText().trim()),r(o.textContent.trim()),Config.saves.id=Story.domId}function t(){!function(){var e=document.createElement("style");new StyleWrapper(e).add(d.map(function(e){return e.text.trim()}).join("\n")),jQuery(e).appendTo(document.head).attr({id:"style-story",type:"text/css"})}();for(var e=0;e<h.length;++e)try{Scripting.evalJavaScript(h[e].text)}catch(t){console.error(t),Alert.error(h[e].title,"object"===(void 0===t?"undefined":_typeof(t))?t.message:t)}for(var t=0;t<f.length;++t)try{Wikifier.wikifyEval(f[t].processText())}catch(e){console.error(e),Alert.error(f[t].title,"object"===(void 0===e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=p=Util.unescape(e),m=Util.slugify(p)}function a(){return p}function n(){return m}function i(){return g}function o(e){var t=void 0===e?"undefined":_typeof(e);switch(t){case"number":case"string":return c.hasOwnProperty(String(e));case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t=void 0===e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",a=Object.keys(c),n=[],i=0;i<a.length;++i){var o=c[a[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":o[e]instanceof Array&&o[e].some(function(e){return e==t})&&n.push(o);break;default:o[e]==t&&n.push(o)}}return n.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),n}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),a=[],n=0;n<r.length;++n){var i=c[r[n]];e(i)&&a.push(i)}return a.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),a}var c={},d=[],h=[],f=[],p="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:h},widgets:{value:f},load:{value:e},init:{value:t},title:{get:a},domId:{get:n},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(e,t){var r=t,a=Config.debug,n=Config.cleanupWikifierOutput;Config.debug=!1,Config.cleanupWikifierOutput=!1;try{null==r&&(r=document.createElement("ul"));var i=document.createDocumentFragment();new Wikifier(i,Story.get(e).processText().trim());var o=[].concat(_toConsumableArray(i.querySelectorAll(".error"))).map(function(e){return e.textContent.replace(errorPrologRegExp,"")});if(o.length>0)throw new Error(o.join("; "));for(;i.hasChildNodes();){var s=i.firstChild;if(s.nodeType===Node.ELEMENT_NODE&&"A"===s.nodeName.toUpperCase()){var u=document.createElement("li");r.appendChild(u),u.appendChild(s)}else i.removeChild(s)}}finally{Config.cleanupWikifierOutput=n,Config.debug=a}return r}function t(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons"><li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li></ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];Dialog.open.apply(Dialog,r)}function r(){u(),Dialog.open.apply(Dialog,arguments)}function a(){l(),Dialog.open.apply(Dialog,arguments)}function n(){c(),Dialog.open.apply(Dialog,arguments)}function i(){d(),Dialog.open.apply(Dialog,arguments)}function o(){h(),Dialog.open.apply(Dialog,arguments)}function s(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons"><li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+'</button></li><li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li></ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one(":dialogclose",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function u(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var a=Story.get(State.history[r].title);a&&a.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one(":dialogclose",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+a.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function l(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons"><li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+'</button></li><li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li></ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){return Engine.restart()}),Dialog.close()}),!0}function c(){function e(e,t,r,a){var n=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&n.addClass(t),a?n.ariaClick(a):n.prop("disabled",!0),jQuery(document.createElement("li")).append(n)}var r=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),a=Save.ok();if(a&&r.append(function(){function e(e,t,r,a,n){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+a).addClass(e).html(r);return t&&i.addClass(t),n?"auto"===a?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return n()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(a+1)},function(){return n(a)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var a=jQuery(document.createElement("td")),n=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td")) +;jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(a),t.autosave?(n.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one(":dialogclose",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i),jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),c()}))):(n.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(a).append(n).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),h=jQuery(document.createElement("td")),f=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(d.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one(":dialogclose",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(h),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(h),f.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),c()}))):(d.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(h),h.addClass("empty"),f.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(d).append(h).append(f).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}()),a||Has.fileAPI){var n=jQuery(document.createElement("ul")).addClass("buttons").appendTo(r);return Has.fileAPI&&(n.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),n.append(e("import",null,L10n.get("savesLabelImport"),function(){return r.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one(":dialogclose",function(){return Save.import(e)}),Dialog.close()}).appendTo(r)),a&&n.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),c()}:null)),!0}return t(L10n.get("savesIncapable")),!1}function d(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,a=Util.slugify(r),n=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return n.attr("id","header-body-"+a).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+a).wiki(r),void o.attr("id","header-label-"+a).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),h=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:h=jQuery(document.createElement("button")),settings[s]?h.addClass("enabled").text(L10n.get("settingsOn")):h.text(L10n.get("settingsOff")),h.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:h=jQuery(document.createElement("select"));for(var f=0,p=t.list.length;f<p;++f)jQuery(document.createElement("option")).val(f).text(t.list[f]).appendTo(h);h.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}h.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons"><li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+'</button></li><li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li></ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function h(){try{jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(e("StoryShare"))}catch(e){return console.error(e),Alert.error("StoryShare",e.message),!1}return!0}return Object.freeze(Object.defineProperties({},{assembleLinkList:{value:e},alert:{value:t},jumpto:{value:r},restart:{value:a},saves:{value:n},settings:{value:i},share:{value:o},buildAutoload:{value:s},buildJumpto:{value:u},buildRestart:{value:l},buildSaves:{value:c},buildSettings:{value:d},buildShare:{value:h},stow:{value:function(){return UIBar.stow()}},unstow:{value:function(){return UIBar.unstow()}},setStoryElements:{value:function(){return UIBar.setStoryElements()}},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:s},buildDialogJumpto:{value:u},buildDialogRestart:{value:l},buildDialogSaves:{value:c},buildDialogSettings:{value:d},buildDialogShare:{value:h},buildLinkListFromPassage:{value:e}}))}(),UIBar=function(){function e(){o||document.getElementById("ui-bar")||(!function(){var e=L10n.get("uiBarToggle"),t=L10n.get("uiBarBackward"),r=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");jQuery(document.createDocumentFragment()).append('<div id="ui-bar"><div id="ui-bar-tray"><button id="ui-bar-toggle" tabindex="0" title="'+e+'" aria-label="'+e+'"></button><div id="ui-bar-history"><button id="history-backward" tabindex="0" title="'+t+'" aria-label="'+t+'">î ¡</button><button id="history-jumpto" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¹</button><button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button></div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core"><li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+'</a></li><li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+'</a></li><li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+'</a></li><li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li></ul></nav></div></div>").insertBefore("#store-area")}(),jQuery(document).on(":historyupdate.ui-bar",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward"))))}function t(){if(!o){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||i(),Dialog.addClickHandler("#menu-item-saves a",null,UI.buildSaves).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,UI.buildSettings).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,UI.buildRestart).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,UI.buildShare).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove()}}function r(){o||(jQuery(document).off(".ui-bar"),jQuery("#ui-bar").remove(),jQuery(document.head).find("#style-ui-bar").remove(),Config.ui.updateStoryElements=!1,o=!0)}function a(e){if(!o){var t=jQuery("#ui-bar");e&&t.addClass("no-transition"),t.addClass("stowed"),e&&setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}}function n(e){if(!o){var t=jQuery("#ui-bar");e&&t.addClass("no-transition"),t.removeClass("stowed"),e&&setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}}function i(){if(!o){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");if(null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")))try{UI.assembleLinkList("StoryMenu",e)}catch(e){console.error(e),Alert.error("StoryMenu",e.message)}}}var o=!1;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},destroy:{value:r},stow:{value:a},unstow:{value:n},setStoryElements:{value:i}}))}(),DebugBar=function(){function e(){var e=L10n.get("debugBarAddWatch"),t=L10n.get("debugBarWatchAll"),n=L10n.get("debugBarWatchNone"),o=L10n.get("debugBarWatchToggle"),d=L10n.get("debugBarViewsToggle"),h=jQuery(document.createDocumentFragment()).append('<div id="debug-bar"><div id="debug-bar-watch" aria-hidden="true" hidden="hidden"><div>'+L10n.get("debugBarNoWatches")+'</div>></div><div><button id="debug-bar-watch-toggle" tabindex="0" title="'+o+'" aria-label="'+o+'">'+L10n.get("debugBarLabelWatch")+'</button><label id="debug-bar-watch-label" for="debug-bar-watch-input">'+L10n.get("debugBarLabelAdd")+'</label><input id="debug-bar-watch-input" name="debug-bar-watch-input" type="text" list="debug-bar-watch-list" tabindex="0"><datalist id="debug-bar-watch-list" aria-hidden="true" hidden="hidden"></datalist><button id="debug-bar-watch-add" tabindex="0" title="'+e+'" aria-label="'+e+'"></button><button id="debug-bar-watch-all" tabindex="0" title="'+t+'" aria-label="'+t+'"></button><button id="debug-bar-watch-none" tabindex="0" title="'+n+'" aria-label="'+n+'"></button></div><div><button id="debug-bar-views-toggle" tabindex="0" title="'+d+'" aria-label="'+d+'">'+L10n.get("debugBarLabelViews")+'</button><label id="debug-bar-turn-label" for="debug-bar-turn-select">'+L10n.get("debugBarLabelTurn")+'</label><select id="debug-bar-turn-select" tabindex="0"></select></div></div>');g=jQuery(h.find("#debug-bar-watch").get(0)),m=jQuery(h.find("#debug-bar-watch-list").get(0)),v=jQuery(h.find("#debug-bar-turn-select").get(0));var f=jQuery(h.find("#debug-bar-watch-toggle").get(0)),p=jQuery(h.find("#debug-bar-watch-input").get(0)),y=jQuery(h.find("#debug-bar-watch-add").get(0)),b=jQuery(h.find("#debug-bar-watch-all").get(0)),w=jQuery(h.find("#debug-bar-watch-none").get(0)),k=jQuery(h.find("#debug-bar-views-toggle").get(0));h.appendTo("body"),f.ariaClick(function(){g.attr("hidden")?g.removeAttr("aria-hidden hidden"):g.attr({"aria-hidden":!0,hidden:"hidden"}),s()}),p.on(":addwatch",function(){r(this.value.trim()),this.value=""}).on("keypress",function(e){13===e.which&&(e.preventDefault(),p.trigger(":addwatch"))}),y.ariaClick(function(){return p.trigger(":addwatch")}),b.ariaClick(a),w.ariaClick(i),v.on("change",function(){Engine.goTo(Number(this.value))}),k.ariaClick(function(){DebugView.toggle(),s()}),jQuery(document).on(":historyupdate.debug-bar",c).on(":passageend.debug-bar",function(){u(),l()}).on(":enginerestart.debug-bar",function(){session.delete("debugState")})}function t(){o(),c(),u(),l()}function r(e){h.test(e)&&(p.pushUnique(e),p.sort(),u(),l(),s())}function a(){Object.keys(State.variables).map(function(e){return p.pushUnique("$"+e)}),Object.keys(State.temporary).map(function(e){return p.pushUnique("_"+e)}),p.sort(),u(),l(),s()}function n(e){p.delete(e),u(),l(),s()}function i(){for(var e=p.length-1;e>=0;--e)p.pop();u(),l(),s()}function o(){if(session.has("debugState")){var e=session.get("debugState");p.push.apply(p,_toConsumableArray(e.watchList)),e.watchEnabled?g.removeAttr("aria-hidden hidden"):g.attr({"aria-hidden":!0,hidden:"hidden"}),e.viewsEnabled?DebugView.enable():DebugView.disable()}}function s(){session.set("debugState",{watchList:p,watchEnabled:!g.attr("hidden"),viewsEnabled:DebugView.isEnabled()})}function u(){if(0===p.length)return void g.empty().append("<div>"+L10n.get("debugBarNoWatches")+"</div>");for(var e=L10n.get("debugBarDeleteWatch"),t=jQuery(document.createElement("table")),r=jQuery(document.createElement("tbody")),a=0,i=p.length;a<i;++a)!function(t,a){var i=p[t],o=i.slice(1),s="$"===i[0]?State.variables:State.temporary,u=jQuery(document.createElement("tr")),l=jQuery(document.createElement("button")),c=jQuery(document.createElement("code"));l.addClass("watch-delete").attr("data-name",i).ariaClick({one:!0,label:e},function(){return n(i)}),c.text(d(s[o])),jQuery(document.createElement("td")).append(l).appendTo(u),jQuery(document.createElement("td")).text(i).appendTo(u),jQuery(document.createElement("td")).append(c).appendTo(u),u.appendTo(r)}(a);t.append(r),g.empty().append(t)}function l(){var e=Object.keys(State.variables),t=Object.keys(State.temporary);if(0===e.length&&0===t.length)return void m.empty();var r=[].concat(_toConsumableArray(e.map(function(e){return"$"+e})),_toConsumableArray(t.map(function(e){return"_"+e}))).sort(),a=document.createDocumentFragment();r.delete(p);for(var n=0,i=r.length;n<i;++n)jQuery(document.createElement("option")).val(r[n]).appendTo(a);m.empty().append(a)}function c(){for(var e=State.size,t=State.expired.length,r=document.createDocumentFragment(),a=0;a<e;++a)jQuery(document.createElement("option")).val(a).text(t+a+1+". "+Util.escape(State.history[a].title)).appendTo(r);v.empty().prop("disabled",e<2).append(r).val(State.activeIndex)}function d(e){if(null===e)return"null";switch(void 0===e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return"NaN";if(!Number.isFinite(e))return"Infinity";case"boolean":case"symbol":case"undefined":return String(e);case"string":return JSON.stringify(e);case"function":return"Function"}var t=Util.toStringTag(e);if("Date"===t)return"Date {"+e.toLocaleString()+"}";if("RegExp"===t)return"RegExp "+e.toString();var r=[];if(e instanceof Array||e instanceof Set){for(var a=e instanceof Array?e:Array.from(e),n=0,i=a.length;n<i;++n)r.push(a.hasOwnProperty(n)?d(a[n]):"<empty>");return Object.keys(a).filter(function(e){return!f.test(e)}).forEach(function(e){return r.push(d(e)+": "+d(a[e]))}),t+"("+a.length+") ["+r.join(", ")+"]"}return e instanceof Map?(e.forEach(function(e,t){return r.push(d(t)+" → "+d(e))}),t+"("+e.size+") {"+r.join(", ")+"}"):(Object.keys(e).forEach(function(t){return r.push(d(t)+": "+d(e[t]))}),t+" {"+r.join(", ")+"}")}var h=new RegExp("^"+Patterns.variable+"$"),f=/^\d+$/,p=[],g=null,m=null,v=null;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},watch:{value:r},watchAll:{value:a},unwatch:{value:n},unwatchAll:{value:i}}))}(),LoadScreen=function(){function e(){jQuery(document).on("readystatechange.SugarCube",function(){o.size>0||("complete"===document.readyState?"loading"===jQuery(document.documentElement).attr("data-init")&&(Config.loadDelay>0?setTimeout(function(){0===o.size&&r()},Math.max(Engine.minDomActionDelay,Config.loadDelay)):r()):a())})}function t(){jQuery(document).off("readystatechange.SugarCube"),o.clear(),r()}function r(){jQuery(document.documentElement).removeAttr("data-init")}function a(){jQuery(document.documentElement).attr("data-init","loading")}function n(){return++s,o.add(s),a(),s}function i(e){if(null==e)throw new Error("LoadScreen.unlock called with a null or undefined ID");o.has(e)&&o.delete(e),0===o.size&&jQuery(document).trigger("readystatechange")}var o=new Set,s=0;return Object.freeze(Object.defineProperties({},{init:{value:e},clear:{value:t},hide:{value:r},show:{value:a},lock:{value:n},unlock:{value:i}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:24,patch:0,prerelease:null,build:8517,date:new Date("2018-03-09T13:45:21.930Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story,TempVariables=State.temporary;window.SugarCube={},jQuery(function(){try{var e=LoadScreen.lock();LoadScreen.init(),document.normalize&&document.normalize(),Story.load(),storage=SimpleStore.create(Story.domId,!0),session=SimpleStore.create(Story.domId,!1),Dialog.init(),UIBar.init(),Engine.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UIBar.start(),Config.debug&&(DebugBar.init(),DebugBar.start()),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,UI:UI,UIBar:UIBar,DebugBar:DebugBar,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version},LoadScreen.unlock(e)}catch(e){return console.error(e),LoadScreen.clear(),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} </script> </body> </html> diff --git a/devTools/tweeGo/tweego_nix64 b/devTools/tweeGo/tweego_nix64 index 070252995c99beabf7a326e3f5d39b2e02778c61..6b5bc4a4f73d39a94ad61418851c727741a7da3a 100755 Binary files a/devTools/tweeGo/tweego_nix64 and b/devTools/tweeGo/tweego_nix64 differ diff --git a/devTools/tweeGo/tweego_nix86 b/devTools/tweeGo/tweego_nix86 index 17f92d5aefda3b99a16896254b3ebce43084a6de..f83aa2e84629a6a8357c0e6450439f24eb523dca 100755 Binary files a/devTools/tweeGo/tweego_nix86 and b/devTools/tweeGo/tweego_nix86 differ diff --git a/devTools/tweeGo/tweego_osx64 b/devTools/tweeGo/tweego_osx64 index db11f40cdd59c2a15836cbdf6d25d9d3492474d2..02c37e4a4e3209336f03b975156b0eb6fcaef625 100644 Binary files a/devTools/tweeGo/tweego_osx64 and b/devTools/tweeGo/tweego_osx64 differ diff --git a/devTools/tweeGo/tweego_osx86 b/devTools/tweeGo/tweego_osx86 index 9ed1d903c0091b50fabadfffa6e8de8a71575cb4..ff52e9a62ccf397d4f27df51b00a004563e3f6d2 100644 Binary files a/devTools/tweeGo/tweego_osx86 and b/devTools/tweeGo/tweego_osx86 differ diff --git a/devTools/tweeGo/tweego_win64.exe b/devTools/tweeGo/tweego_win64.exe index 9619e906ed40ad882dd9a22bc0e964cfe9c4a0b7..d3d9021abe1af4e61e57893ac5b8e8ceab545375 100755 Binary files a/devTools/tweeGo/tweego_win64.exe and b/devTools/tweeGo/tweego_win64.exe differ diff --git a/devTools/tweeGo/tweego_win86.exe b/devTools/tweeGo/tweego_win86.exe index 4a5c991b89f9a62ef282005ee7a040d748aa791f..d69110e7f4b44c8c7abb6b59cb8623eba1acab7f 100644 Binary files a/devTools/tweeGo/tweego_win86.exe and b/devTools/tweeGo/tweego_win86.exe differ diff --git a/player variables documentation - Pregmod.txt b/player variables documentation - Pregmod.txt index d1bb1c1d3ef8643c48fbaa6b5a999581010af251..927c2a9de33ae63af839facf0785ebd2277b79c5 100644 --- a/player variables documentation - Pregmod.txt +++ b/player variables documentation - Pregmod.txt @@ -232,6 +232,10 @@ warfare: your warfare skill accepts int between -100 and 100 +Hacking: +your hacking skill +accepts int between -100 and 100 + slaving: your slaving skill diff --git a/sanityCheck b/sanityCheck index 1d4697aa88f0c7a3ba50d7dd2bbbdeb8f96924a7..4439db027c18f68fc6d240d6ae2bc60969dc6f6e 100755 --- a/sanityCheck +++ b/sanityCheck @@ -52,6 +52,7 @@ $GREP "<<<[^<>]*[<>]\?[^<>]*>>" -- "src/*.tw" | myprint "TooManyAngleBrackets" # Check for wrong capitalization on 'activeslave' and other common typos $GREP -e "\$act" --and --not -e "\$\(activeSlave\|activeArcology\|activeStandard\|activeOrgan\|activeLimbs\|activeUnits\)" -- "src/*" | myprint "WrongCapitilization" $GREP "\(csae\|[a-z] She \|attepmts\|youreslf\|advnaces\|canAcheive\|setBellySize\|SetbellySize\|setbellySize\|bellypreg\|pregBelly\|bellyimplant\|bellyfluid\|pronounCaps\)" -- 'src/*' | myprint "SpellCheck" +$GREP "\(recieve\|recieves\)" -- 'src/*' | myprint "PregmodderCannotSpellReceive" $GREP "\$slave\[" -- 'src/*' | myprint "ShouldBeSlaves" # Check for strange spaces e.g. $slaves[$i]. lips $GREP "\$slaves\[\$i\]\. " -- 'src/*' | myprint "MissingPropertyAfterSlaves" diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index 7d9eea62a1874d1166f728c3ee8ad70c1bc74d88..a2a9fe3d4bcc83cfb241de6337679f1a2d701a29 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -1220,7 +1220,7 @@ takes one of the following strings or 0 preg: -pregnancy type +pregnancy time or state. See Pregnancy Control section for more. -3 - sterilized -2 - sterile -1 - contraceptives @@ -1230,9 +1230,9 @@ pregnancy type 21-30 - pregnant 30-35 - very pregnant -pregSource: +pregSource: -accepts ID +accepts ID See Pregnancy Control section for more. Who sired her pregnancy -2 - Citizen of your arcology -1 - You @@ -1240,7 +1240,11 @@ Who sired her pregnancy pregType: -number of children +Number of children. Warning! Should be not changed after initial impregnantion setup. See Pregnancy Control section for more. + +readyOva: + +Number of ready to be impregnated ovas (override normal cases), default - 0. For delayed impregnantions with multiples. Used one time on next call of the SetPregType widget. After SetPregType use it to override .pregType, it set back to 0 automatically. broodmother @@ -1249,9 +1253,19 @@ has the slave been turned into a broodmother 1 - standard 1 birth/week 2 - black market 12 births/week +broodmotherFetuses +count of ova that broodmother implant force to release. Should be setted with "broodmother" property together. If broodmother == 0 has no meaning. + +broodmotherOnHold + +If broodmother implant set to pause it's work. +1 - implant on pause +!= 1 - working. +If broodmother birth her last baby and her implant is on pause, she will be in contraception like state. + broodmotherCountDown: -Number of weeks left until the implant is fully shutdown. +Number of weeks left until last baby will be birthed. Mainly informative only. Updated automaticaly at birth process based on remaining fetuses. 0-37 labor: @@ -1726,6 +1740,7 @@ diet: "XXY" "cum production" "cleansing" +"fertility" dietCum: @@ -1864,6 +1879,7 @@ may accept strings, use at own risk "body oil" "a toga" "a slutty qipao" +"a huipil" "a bunny outfit" "a leotard" "a chattel habit" @@ -2640,7 +2656,7 @@ How to set up your own hero slave. -The default slave template used: -<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: "none", areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>> +<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: "none", areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>> Making your slave; add their name to the following, then go down the documentation adding in your changes. -each variable must be seperated from the last by a comma followed by a space @@ -2672,3 +2688,74 @@ To test if your slave is functioning, start up a normal game, swap to cheat mode @@.lightgreen; - relationship +wombJS.tw subsystem: + +This is womb processor/simulator script. It's take care about calculation of belly sizes based on individual foetus sizes, +with full support of broodmothers implant random turning on and off possibility. Also this can be expanded to store more parents data in each individual fetus in future. Should be initialized for all slaves not female only. Currently it's not affect pregnancy mechanic in game directly - it's addon for beter sizes calulation, and optional mechanics for future usage. +Design limitations: +- Mother can't gestate children with different speeds at same time. All speed changes apply to all fetuses. +- Sizes of inividual fetuses updated only on call of WombGetVolume - not every time as called WombProgress. This is for better overail code speed. +- For broodmothers we need actual "new ova release" code now. But it's possible to control how many children will be added each time, and so - how much children is ready to birth each time. + + +For new generated slaves automatically called WombInit function to do initial setup. But it's can be called at any time "just in case", if code need to be completely sure that womb exists and correctly initialized. If .preg and pregType is set above 0 at time of call with empty womb array - fetuses will be generated too. + + +Pregnancy control, best practices ($activeSlave used as sample, can be any slave related variable or $PC for player character): + +Impregnantion: + +<<set WombImpregnate($activeSlave, 3, -1, 15)>> +$activeSlave, 3 fetuses, -1 - player is father, 15 week is initial time for fetuses. Can be used on already pregnant slaves (broodmothers use it). +<<SetSlaveBelly $activeSlave>> +Last line needed only if you need to show description with changed state immidiately, an advanced initial prenancy time set (showing already). + +Advancing pregnancy: + +<<set WombProgress($activeSlave, 1)>> +Advancing 1 week. Normally it's called by End Week processing for all slaves. Old method with using .preg++ on slave supported too, but better to use this new. + +Birth checking: + +<<if WombBirthReady($activeSlave, 40) > 0>> +Check if we have any babies in womb with is at minimum 40 week of gestation age? Age can be any. + +Birthing: + +<<set _babies = WombBirth($activeSlave, 34)>> +In array _babies will be placed all babyies from womb of $activeSlave who gestation age at least 34 weeks (can be any). Others will be leaved in womb. +Optionally: +<<set WombFlush($activeSlave)>> +Will empty womb. You also still should set .preg .pregType .pregSource .pregWeek to 0, or call WombNormalizePreg. +_babies here become normal array - we can do with it as with any other array in sugarcube. _babies.length - size, _babies[0] - first element, etc. Contains all babies object, with their age, sex, volume/size, and father ID. Right now - not used anywhere but useful for possible incubator improvements in future at least. + +Usage reference without sugarcube code (samples): + +WombInit($slave) - before first pregnancy, at slave creation, of as backward compatibility update. Can generate proper pregnancy based on preg, pregType, and pregSource properties too. Can be little glitchy with broodmothers in this case, if their preg != pregType (or pregType can't be divided by preg with integer result). + +WombImpregnate($Slave, $fetus_count, $fatherID, $initial_age) - should be added after normal impregnation code, with already calcualted fetus count. ID of father - can be used in future for processing children from different fathers in one pregnancy. Initial age normally 1 (as .preg normally set to 1), but can be raised if needed. Also should be called at time as broodmother implant add another fetus(es), or if new fetuses added from other sources in future (transplanting maybe?) + +WombProgress($slave, $time_to_add_to_fetuses) - after code that update $slave.preg, time to add should be the same. + +$isReady = WombBirthReady($slave, $birth_ready_age) - how many children ready to be birthed if their time to be ready is $birth_ready_age (40 is for normal length pregnancy). Return int - count of ready to birth children, or 0 if no ready exists. + +$children = WombBirth($slave, $birth_ready_age) - for actual birth. Return array with fetuses objects that birthed (can be used in future) and remove them from womb array of $slave. Should be called at actual birth code in sugarcube. fetuses that not ready remained in womb (array). + +WombFlush($slave) - clean womb (array). Can be used at broodmother birthstorm or abortion situations in game. But birthstorm logicaly should use WombBirth($slave, 35) or so before - some children in this event is live capable, others is not. + +$slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volume in CC - for updating $slave.bellyPreg, or if need to update individual fetuses sizes. + +_time = WombMinPreg($activeSlave) - age of most young fetus in womb. + +_time = WombMaxPreg($activeSlave) - age of most old fetus in womb. + +WombUpdatePregVars($activeSlave) - automaticaly update $activeSlave.preg, $activeSlave.pregType, $activeSlave.bellyPreg to actual values based on womb fetuses. + +WombNormalizePreg($activeSlave) - automatialy correct all pregnancy related properties of given $activeSlave. Also it advance pregnancy if detected old .preg++ method used on slave and womb simulation is late. Can be called at any time without conditions checks - function do all needed checks by itself. Call of this function do NOT advance pregnancy by itself. + +WombZeroID($activeSlave, _SlaveID) - automaticaly scan all fetuses and if their father ID matched - it will be replaced with zero. After it actor pregnancy related variables (like .pregSource) will be updated. Used mainly in process of removing slaves from game, to clean father's ID of unborn children of remaining slaves. + +All this womb system can be much more automated (.preg .pregType .pregSource .pregWeek may have to be done in a way, that they will have no need to be controlled manually anywhere at all. Just will be set fully automatially). But in this case many changes in present game code needed, to REMOVE legacy code. +Right now they are set correctly, based on state of .womb object through pregnancy, but not outside. Also old style pregnancy initiation (setting only .preg to >0 and .pregType to >=1 ) working too - WombImpregnantion function for proper setup of .womb will be called on next SetBellySize call. Also old style pregnancy progression through using .preg++ is supported too, but can have minor issues with character descriptions in some cases, if SetBellySize widget not called before descriptions widgets. + + diff --git a/src/SecExp/attackGenerator.tw b/src/SecExp/attackGenerator.tw index f4c4c620a8246049d91da36ca9466f11b5742c51..d2113e2d7d190e3ceeaf5b745406bec527ab32a7 100644 --- a/src/SecExp/attackGenerator.tw +++ b/src/SecExp/attackGenerator.tw @@ -12,9 +12,9 @@ <<elseif $week < 90>> <<set _attackChance = 12>> <<elseif $week < 120>> - <<set _attackChance =16>> + <<set _attackChance = 16>> <<else>> - <<set _attackChance =20>> + <<set _attackChance = 20>> <</if>> <<if $hasFoughtOnce == 1>> <<set _attackChance = 25>> diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw index 1b704c89678592bcc429672518e407844d211305..face384da5a8ba22da4fc1f79fe65047bfa739c2 100644 --- a/src/SecExp/attackHandler.tw +++ b/src/SecExp/attackHandler.tw @@ -469,7 +469,7 @@ <</if>> <</for>> <</if>> - /* 60% chance of getting combat skill if nto already have it */ + /* 60% chance of getting combat skill if not already have it */ <<if $HeadGirl.combatSkill == 0 && random(1,100) <= 60>> <<set $gainedCombat = 1>> <<set $HeadGirl.combatSkill = 1>> diff --git a/src/SecExp/attackOptions.tw b/src/SecExp/attackOptions.tw index e0ddd9e1b7efe98898b4b4ee5b6bf558d1abb2ce..e19c46956107af42b111d2bf40678ac9487bf889 100644 --- a/src/SecExp/attackOptions.tw +++ b/src/SecExp/attackOptions.tw @@ -171,7 +171,7 @@ approximately <strong><<print $estimatedMen>> men</strong> are coming, they seem <<if $expectedEquip <= 0>> <strong>poorly armed</strong>. Old rusty small arms are the norm with just a few barely working civilian vehicles. <<elseif $expectedEquip == 1>> - <strong>lightly armed</strong>. Mostly small arms with some repurposed civilian vehicles and a scattered few machine guns. There's no sign of heavy vehicles, artillery or aircrafts. + <strong>lightly armed</strong>. Mostly small arms with some repurposed civilian vehicles and a scattered few machine guns. There's no sign of heavy vehicles, artillery or aircraft. <<elseif $expectedEquip == 2>> <strong>decently armed</strong>. Good quality small arms, machine guns a few mortars. There seems to be some heavy military vehicles coming as well. <<elseif $expectedEquip == 3>> @@ -502,6 +502,8 @@ Units about to be deployed: <<else>> Clear saved roster <</if>> +<br><br> +<<replenishAllUnits>> <br><br> diff --git a/src/SecExp/attackReport.tw b/src/SecExp/attackReport.tw index 9a9f768eea42f5bc100db15f4ddec19449cbb4da..5f57a4812b33f02495f92002a6271eabd26fc4c3 100644 --- a/src/SecExp/attackReport.tw +++ b/src/SecExp/attackReport.tw @@ -799,6 +799,8 @@ and they do little to hide the contempt they have for someone who was born into wealth, rather than gaining it from their sweat. <<elseif $PC.career == "servant">> and they do little to hide their disgust at being ordered around by an ex-servant. + <<elseif $PC.career == "BlackHat">> + and they do little to hide their disgust at being ordered around by some unscrupulous code monkey. <<else>> . <</if>> @@ -810,6 +812,8 @@ and they do little to hide the contempt they have for someone who was born into wealth, rather than gaining it from their sweat. <<elseif $PC.career == "servant">> and they do little to hide their disgust at being ordered around by an ex-servant. + <<elseif $PC.career == "BlackHat">> + and they do little to hide their disgust at being ordered around by some unscrupulous code monkey. <<else>> . <</if>> @@ -821,6 +825,8 @@ , unfortunately many do still resent you being born into your wealth and power, rather than having earned it with sweat and tears. <<elseif $PC.career == "servant">> , unfortunately some still resent the fact they are ordered around by an ex-servant. + <<elseif $PC.career == "BlackHat">> + , unfortunately some still resent the fact they are ordered around by an unscrupulous hacker. <<else>> . <</if>> @@ -832,6 +838,8 @@ , unfortunately many do still resent you being born into your wealth and power, rather than having earned it with sweat and tears. <<elseif $PC.career == "servant">> , unfortunately some still resent the fact they are ordered around by an ex-servant. + <<elseif $PC.career == "BlackHat">> + , unfortunately some still resent the fact they are ordered around by a dubious incursion specialist. <<else>> . <</if>> @@ -849,6 +857,8 @@ The soldiers of the $securityForceName, as loyal as they are, are not enthusiastic to follow the orders of an ex-servant. <<elseif $PC.career == "escort">> The soldiers of the $securityForceName, as loyal as they are, are not enthusiastic to follow the orders of an ex-escort. + <<elseif $PC.career == "BlackHat">> + The soldiers of the $securityForceName, as loyal as they are, are not enthusiastic to follow the orders of a dubious incursion specialist. <</if>> <</if>> <<if $PC.warfare <= 25 && $PC.warfare > 10>> diff --git a/src/SecExp/authorityReport.tw b/src/SecExp/authorityReport.tw index fc974d050460485c6f285f6558ebd351dc6980f7..1ea3fff713b65f739d3c242fa07ef4c34b3df5f1 100644 --- a/src/SecExp/authorityReport.tw +++ b/src/SecExp/authorityReport.tw @@ -29,6 +29,9 @@ <<elseif $PC.career == "servant">> Given your past career as a servant, you find it hard to assert your authority over the arcology and its inhabitants. <<set _authGrowth -= 10 * random(5,15)>> +<<elseif $PC.career == "BlackHat">> + Given your past career as a, rather questionable, incursion specialist, you find it hard to assert your authority over the arcology and its inhabitants, despite what you may know about them. + <<set _authGrowth -= 10 * random(5,15)>> <<elseif $PC.career == "gang">> Given your past life as a gang leader, you find it easier to assert your authority over the arcology and its inhabitants. <<set _authGrowth += 10 * random(5,15)>> @@ -121,17 +124,17 @@ <<if $arcologies[0].FSPaternalist >= 90>> Your extremely paternalistic society has the unfortunate side effects of spreading dangerous ideals in the arcology, damaging your authority. - <<set _authGrowth -= $arcologies[0].FSPaternalist>> + <<set _authGrowth -= Math.clamp($arcologies[0].FSPaternalist, 0, 100)>> <<elseif $arcologies[0].FSPaternalist >= 50>> Your paternalistic society has the unfortunate side effects of spreading dangerous ideals in the arcology, damaging your authority. - <<set _authGrowth -= $arcologies[0].FSPaternalist>> + <<set _authGrowth -= Math.clamp($arcologies[0].FSPaternalist, 0, 100)>> <</if>> <<if $arcologies[0].FSNull >= 90>> - Cultural openess allows dangerous ideas to spread in your arcology, damaging your reputation. + Cultural openness allows dangerous ideas to spread in your arcology, damaging your reputation. <<set _authGrowth -= $arcologies[0].FSNull>> <<elseif $arcologies[0].FSNull >= 50>> - Cultural openess allows dangerous ideas to spread in your arcology, damaging your reputation. + Cultural openness allows dangerous ideas to spread in your arcology, damaging your reputation. <<set _authGrowth -= $arcologies[0].FSNull>> <</if>> @@ -141,7 +144,7 @@ <</if>> <<if $secretService >= 1>> - Your secret services constantly keep under surveillance any potential threat, intervenening when necessary. Rumors of the secretive security service and mysterious disappereances make your authority increase. + Your secret services constantly keep under surveillance any potential threat, intervening when necessary. Rumors of the secretive security service and mysterious disappearances make your authority increase. <<set _authGrowth += 15 * $secretService>> <</if>> diff --git a/src/SecExp/edicts.tw b/src/SecExp/edicts.tw index 93b418a93303baa3005bbf872aa59f6675ffacc2..b62cabdc44a58e683527464c3b3c21acb9f23bb0 100644 --- a/src/SecExp/edicts.tw +++ b/src/SecExp/edicts.tw @@ -53,13 +53,13 @@ <br>''Personnel training:'' $securityForceName is currently providing advanced equipment and training to security HQ personnel. [[Repeal|edicts][$SFSupportLevel--, $SFSupportUpkeep -= 2000, $reqHelots += 5]] <<elseif $SFSupportLevel == 3>> - <br>''Troops detachment:'' $securityForceName has currently transfered troops to the security department HQ in addition to providing advanced equipment and training to security HQ personnel. + <br>''Troops detachment:'' $securityForceName has currently transferred troops to the security department HQ in addition to providing advanced equipment and training to security HQ personnel. [[Repeal|edicts][$SFSupportLevel--, $SFSupportUpkeep -= 3000, $reqHelots += 5]] <<elseif $SFSupportLevel == 4>> <br>''Full support:''$securityForceName is currently providing it's full support to the security department, while transferring troops to the security department HQ in addition to providing advanced equipment and training to security HQ personnel. [[Repeal|edicts][$SFSupportLevel--, $SFSupportUpkeep -= 3000, $reqHelots += 5]] <<elseif $SFSupportLevel == 5>> - <br>''Network assistance:''$securityForceName is currently assisting with a local install of it's custom network full support and has transfered troops to the security department HQ in addition to providing advanced equipment and training to security HQ personnel. + <br>''Network assistance:''$securityForceName is currently assisting with a local install of it's custom network full support and has transferred troops to the security department HQ in addition to providing advanced equipment and training to security HQ personnel. [[Repeal|edicts][$SFSupportLevel--, $SFSupportUpkeep -= 4000, $secHQUpkeep -= 1000, $reqHelots += 5]] <</if>> <</if>> @@ -147,7 +147,7 @@ <</if>> <<if $pregExemption == 1>> - <br>''@@.lime;Military exemption for pregnancys:@@'' pregnant citizens are allowed, and encouraged, to avoid military service. + <br>''@@.lime;Military exemption for pregnancies:@@'' pregnant citizens are allowed, and encouraged, to avoid military service. [[Repeal|edicts][$pregExemption = 0]] <</if>> <</if>> @@ -508,7 +508,7 @@ <<else>> <br>//Not enough Authority.// <</if>> - <br> //Will replenish militia manpower moderatly fast and will cap at 5% of the total citizens population, but has a high authority cost// + <br> //Will replenish militia manpower moderately fast and will cap at 5% of the total citizens population, but has a high authority cost// <</if>> <<if $militaryService == 0>> <br>''Obligatory military service:'' every citizen is required to register and serve under the militia. @@ -565,7 +565,7 @@ <<if $arcologies[0].FSRepopulationFocus >= 40 && ($conscription == 1 || $militaryService == 1 || $militarizedSociety == 1)>> <<if $pregExemption == 0>> - <br>''@@.lime;Military exemption for pregnancys:@@'' pregnant citizens will be allowed, and encouraged, to avoid military service. + <br>''@@.lime;Military exemption for pregnancies:@@'' pregnant citizens will be allowed, and encouraged, to avoid military service. <<if $authority >= 1000>> [[Implement|edicts][$pregExemption = 1, $cash -=5000, $authority -= 1000]] <<else>> @@ -707,7 +707,7 @@ <<if $arcologies[0].FSChineseRevivalist >= 40>> <<if $sunTzu == 0>> - <br>''@@.lime;Sun Tzu Teachings:@@'' Fund specialized training for your units and officers to comform your army to the teachings of the "Art of War". + <br>''@@.lime;Sun Tzu Teachings:@@'' Fund specialized training for your units and officers to conform your army to the teachings of the "Art of War". <<if $authority >= 1000>> [[Implement|edicts][$sunTzu = 1, $cash -=5000, $authority -= 1000, $militiaBaseAttack++, $militiaBaseDefense++, $mercBaseAttack++, $mercBaseDefense++, $slaveBaseAttack++, $slaveBaseDefense++, $militiaBaseMorale += 5, $mercBaseMorale += 5, $slaveBaseMorale += 5, $edictsUpkeep += 1000]] <<else>> diff --git a/src/SecExp/encyclopediaSecExpBattles.tw b/src/SecExp/encyclopediaSecExpBattles.tw index 24b11e24b18d667ade14484b04cfaef84135d10e..b8714fe1fe9d665f33c2d33cd8f5a73de87e004f 100644 --- a/src/SecExp/encyclopediaSecExpBattles.tw +++ b/src/SecExp/encyclopediaSecExpBattles.tw @@ -18,7 +18,7 @@ One garrisoned by the mercenary platoon,more mercenaries will slowly make their Security drones do not accumulate experience and are not affected by morale modifiers (for better or worse). <br> <br>Units statistics: -<br><strong>Troops</strong>: The number of active combatants the unit can field. If it reaches zero the unit will cease to be considered active. It may be reformed as a new unit without loosing the upgrades given to it, but experience is lost. +<br><strong>Troops</strong>: The number of active combatants the unit can field. If it reaches zero the unit will cease to be considered active. It may be reformed as a new unit without losing the upgrades given to it, but experience is lost. <br><strong>Maximum Troops</strong>: The maximum number of combatants the unit can field. You can increase this number through upgrade. <br><strong>Equipment</strong>: The quality of equipment given to the unit. Each level of equipment will increase attack and defense values of the unit by 15%. <br><strong>Experience</strong>: The quality of training provide/acquired in battle by the unit. Experience is a 0-100 scale with increasingly high bonuses to attack, defense and morale of the unit, to a maximum of 50% at 100 experience. diff --git a/src/SecExp/propagandaHub.tw b/src/SecExp/propagandaHub.tw index fd9f8973377ee3474924655e13d874d67b0fb099..831964839f9e3126170032f63d7ef2f9bd6c38e9 100644 --- a/src/SecExp/propagandaHub.tw +++ b/src/SecExp/propagandaHub.tw @@ -1,5 +1,6 @@ :: propagandaHub [nobr] +<<HSM>> <<if $career == "capitalist" || $career == "celebrity" || $career == "wealth">> <<set _HistoryDiscount = .5>> <<else>> @@ -64,7 +65,7 @@ The propaganda hub is a surprisingly inconspicuous building, dimly lit from the <<set $propFocus = "recruitment">> <<goto "propagandaHub">> <</link>> - <</if>> + <</if>> <br> <<if $propFocus == "social engineering">> You are concentrating your propaganda efforts towards increasing the acceptance of your chosen future societies. @@ -79,17 +80,18 @@ The propaganda hub is a surprisingly inconspicuous building, dimly lit from the <<if $propCampaign < 5>> <<link "Invest more resources in the propaganda machine">> <<set $propCampaign += 1>> - <<set $cash -= 5000 * $upgradeMultiplierArcology * ($propCampaign + 1) * _HistoryDiscount>> + <<set $cash -= 5000 * $upgradeMultiplierArcology * ($propCampaign + 1) * _HistoryDiscount*$HackingSkillMultiplier>> + <<set $PC.hacking += .5>> <<set $propHubUpkeep += $upgradeUpkeep>> <<goto "propagandaHub">> <</link>> <br>Invest more resources into the project to increase its effectiveness. - <br>//Costs <<print cashFormat(Math.trunc(5000 * $upgradeMultiplierArcology * ($propCampaign + 1) * _HistoryDiscount))>>. Will provide more of the focused resource each week, but increase reputation upkeep.// + <br>//Costs <<print cashFormat(Math.trunc(5000 * $upgradeMultiplierArcology * ($propCampaign + 1) * _HistoryDiscount*$HackingSkillMultiplier))>>. Will provide more of the focused resource each week but increase reputation upkeep.// <<else>> You upgraded your propaganda machine to its limits. <</if>> -<</if>> - +<</if>> + <br> <br> @@ -133,12 +135,13 @@ The propaganda hub is a surprisingly inconspicuous building, dimly lit from the <<if $controlLeaks == 0>> <<link "Institute controlled leaks protocols">> <<set $controlLeaks = 1>> - <<set $cash -= 10000*$upgradeMultiplierArcology*_HistoryDiscount>> + <<set $cash -= 10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier>> + <<set $PC.hacking += 1>> <<set $propHubUpkeep += $upgradeUpkeep>> <<goto "propagandaHub">> <</link>> <br>Institute a system able to release erroneous, but plausible, information about your business, leading your competitors to prepared financial traps. - <br>//Costs <<print cashFormat(Math.trunc(10000 * $upgradeMultiplierArcology * _HistoryDiscount))>>. The authenticity dept. now slightly increases prosperity each week as well as authority, but increases upkeep.// + <br>//Costs <<print cashFormat(Math.trunc(10000 * $upgradeMultiplierArcology * _HistoryDiscount*$HackingSkillMultiplier))>>. The authenticity dept. now slightly increases prosperity each week as well as authority, but increases upkeep.// <<else>> You have instituted controlled leaks protocols, able to create fabricated leaks of sensible information. [[Shut down leak protocols|propagandaHub][$controlLeaks = 0, $propHubUpkeep -= $upgradeUpkeep]] <</if>> diff --git a/src/SecExp/rebellionOptions.tw b/src/SecExp/rebellionOptions.tw index e56c105cee89890e306dfe472b8944a8c7e52768..40e6fd7d213ba247b932aaeab53547a1357d08ac 100644 --- a/src/SecExp/rebellionOptions.tw +++ b/src/SecExp/rebellionOptions.tw @@ -290,6 +290,8 @@ We can dedicate some of our forces to the protection of the vital parts of the a <</link>> <</if>> +<br><br> +<<replenishAllUnits>> <br> <br> diff --git a/src/SecExp/rebellionReport.tw b/src/SecExp/rebellionReport.tw index 8fc720bbfb172d4b4cf04660521ca6a666b01f2d..62a752196c54b95347d683b32d7511ce25051721 100644 --- a/src/SecExp/rebellionReport.tw +++ b/src/SecExp/rebellionReport.tw @@ -83,7 +83,7 @@ <hr> <<if $slaveRebellion == 1>> - Today, the _day of _month _year, our arcology was inflamed by the fires of rebellion. <<print commaNum(Math.trunc($attackTroops))>> rebels from all over the structure dared rise up against their owners and conquer their freedom through blood. Our defense force, <<print commaNum($troopCount)>> strong, fought with them street by street + Today, the _day of _month _year, our arcology was inflamed by the fires of rebellion. <<print commaNum(Math.trunc($attackTroops))>> rebels from all over the structure dared rise up against their owners and conquer their freedom through blood. Our defense force, <<print commaNum(Math.trunc($troopCount))>> strong, fought with them street by street <<if $enemyLosses != $attackTroops>> inflicting <<print commaNum(Math.trunc($enemyLosses))>> casualties, while sustaining <<if $losses > 1>> <<print commaNum(Math.trunc($losses))>> casualties <<else>> a casualty<</if>> themselves. <<else>> @@ -818,8 +818,6 @@ <<set $enemyLosses = 0>> <<set $losses = 0>> <<set $battleTurns = 0>> -<<set $slaveRebellion = 0>> -<<set $citizenRebellion = 0>> <<set $irregulars = 0>> <<set $deployingMilitia = 0>> <<set $deployingSlaves = 0>> @@ -831,4 +829,6 @@ <<set $citizenProgress = 0>> <<set $slaveProgress = Math.clamp($slaveProgress - random(50,100), 0, 100)>> <</if>> +<<set $slaveRebellion = 0>> +<<set $citizenRebellion = 0>> <<set $tension = Math.clamp($tension - random(50,100), 0, 100)>> diff --git a/src/SecExp/riotControlCenter.tw b/src/SecExp/riotControlCenter.tw index 3a5cd9d746d2480770cc2ab8ec5f38a13dbc6237..eba811b40b1e0abffe72520c4cf27049089cc9ed 100644 --- a/src/SecExp/riotControlCenter.tw +++ b/src/SecExp/riotControlCenter.tw @@ -1,5 +1,6 @@ :: riotControlCenter [nobr] +<<HSM>> <<set $nextButton = "Back to Arcology Management", $nextLink = "Manage Arcology", $returnTo = "Manage Arcology">> Riot Control Center @@ -24,12 +25,13 @@ The riot control center opens its guarded doors to you. The great chamber inside <<if $riotUpgrades.freeMedia < 5>> <<link "Invest more resources in the free media project">> <<set $riotUpgrades.freeMedia += 1>> - <<set $cash -= 5000 * $upgradeMultiplierArcology * ($riotUpgrades.freeMedia + 1)>> + <<set $cash -= ((5000 * $upgradeMultiplierArcology * ($riotUpgrades.freeMedia + 1)*$HackingSkillMultiplier))>> + <<set $PC.hacking += .5>> <<set $riotUpkeep += $upgradeUpkeep>> <<goto "riotControlCenter">> <</link>> <br>Invest more resources into the project to increase its effectiveness. - <br>//Costs <<print cashFormat(Math.trunc(5000 * $upgradeMultiplierArcology * ($riotUpgrades.freeMedia + 1)))>>. Will accelerate the tension decay, but will increase upkeep costs.// + <br>//Costs <<print cashFormat(Math.trunc((5000 * $upgradeMultiplierArcology * ($riotUpgrades.freeMedia + 1)*$HackingSkillMultiplier)))>>. Will accelerate the tension decay, but will increase upkeep costs.// <<else>> You upgraded your free media scheme to its limits. <</if>> @@ -152,12 +154,13 @@ The riot control center opens its guarded doors to you. The great chamber inside <<elseif $brainImplantProject < 5>> <<link "Invest more resources in the brain implant project">> <<set $brainImplantProject += 1>> - <<set $cash -= 50000 * $upgradeMultiplierArcology * $brainImplantProject>> + <<set $cash -= 50000 * $upgradeMultiplierArcology * $brainImplantProject*$HackingSkillMultiplier>> + <<set $PC.hacking += 1>> <<set $riotUpkeep += $upgradeUpkeep * 100>> <<goto "riotControlCenter">> <</link>> <br>Invest more resources into the project to increase its speed. - <br>//Costs <<print cashFormat(Math.trunc(50000 * $upgradeMultiplierArcology * $brainImplantProject))>>. Will shorten the time required to complete the project.// + <br>//Costs <<print cashFormat(Math.trunc(50000 * $upgradeMultiplierArcology * $brainImplantProject*$HackingSkillMultiplier))>>. Will shorten the time required to complete the project.// <<else>> You sped up the project to its maximum. <</if>> diff --git a/src/SecExp/secBarracks.tw b/src/SecExp/secBarracks.tw index d654995f71272950a08d2f58fcdbd76c5b64dbb9..d935c9b35c9d2b8497ad245cb46e48d55c051c75 100644 --- a/src/SecExp/secBarracks.tw +++ b/src/SecExp/secBarracks.tw @@ -143,6 +143,8 @@ Your maximum number of units is <<print $maxUnits>>, currently you have <<print <<if $arcologies[0].FSRomanRevivalist != "unset" || $arcologies[0].FSChineseRevivalist != "unset" || $arcologies[0].FSArabianRevivalist != "unset" || $arcologies[0].FSEdoRevivalist != "unset" || $arcologies[0].FSEgyptianRevivalist != "unset" || $arcologies[0].FSAztecRevivalist != "unset">> <</if>> <br> +<<replenishAllUnits>> +<br> <br> __Security Drones__ /* drones */ @@ -271,14 +273,7 @@ You are free to organize your menial slaves into fighting units. Currently you h <<link "Disband the unit">> <<set $helots += $slaveUnits[_i].troops>> <<set $slavesEmployedManpower -= $slaveUnits[_i].troops>> - <<set _elimUnit = $slaveUnits[_i]>> - <<set _newSlaveUnits = []>> - <<for _y = 0; _y < _sL; _y++>> - <<if $slaveUnits[_y] != _elimUnit>> - <<set _newSlaveUnits.push($slaveUnits[_y])>> - <</if>> - <</for>> - <<set $slaveUnits = _newSlaveUnits>> + <<set $slaveUnits.deleteAt(_i)>> <<set $activeUnits-->> <<goto "secBarracks">> <</link>> @@ -436,14 +431,7 @@ __Militia__ <<link "Disband the unit">> <<set $militiaFreeManpower += $militiaUnits[_i].troops>> <<set $militiaEmployedManpower -= $militiaUnits[_i].troops>> - <<set _elimUnit = $militiaUnits[_i]>> - <<set _newMilitiaUnits = []>> - <<for _y = 0; _y < _sL; _y++>> - <<if $militiaUnits[_y] != _elimUnit>> - <<set _newMilitiaUnits.push($militiaUnits[_y])>> - <</if>> - <</for>> - <<set $militiaUnits = _newMilitiaUnits>> + <<set $militiaUnits.deleteAt(_i)>> <<set $activeUnits-->> <<goto "secBarracks">> <</link>> @@ -601,14 +589,7 @@ __Mercenaries__ <<link "Disband the unit">> <<set $mercFreeManpower += $mercUnits[_i].troops>> <<set $mercEmployedManpower -= $mercUnits[_i].troops>> - <<set _elimUnit = $mercUnits[_i]>> - <<set _newMercUnits = []>> - <<for _y = 0; _y < _meL; _y++>> - <<if $mercUnits[_y] != _elimUnit>> - <<set _newMercUnits.push($mercUnits[_y])>> - <</if>> - <</for>> - <<set $mercUnits = _newMercUnits>> + <<set $mercUnits.deleteAt(_i)>> <<set $activeUnits-->> <<goto "secBarracks">> <</link>> diff --git a/src/SecExp/secExpSmilingMan.tw b/src/SecExp/secExpSmilingMan.tw index 7312a76a1a4330aeba4127fb0cd969981eb17084..dd834ebf43c7015e7b3323aa748fbc2a4336d52f 100644 --- a/src/SecExp/secExpSmilingMan.tw +++ b/src/SecExp/secExpSmilingMan.tw @@ -10,7 +10,7 @@ During your morning routine you stumble upon a peculiar report: it's been several weeks now that your arcology has been victim of a series of cyber-crimes conducted by a mysterious figure. The egocentric criminal took great pride in its acts, to the point of signing his acts with his or her peculiar symbol: a stylized smiling face. Your arcology was not the only one under assault by the machinations of what the media would quickly nicknamed //the smiling man//. - <br>Despite the sheer damage this criminal was doing, you cannot help but admire the skill with which every misdeed is carried: the worst white collar crimes of the century carried out with such elegancy + <br>Despite the sheer damage this criminal was doing, you cannot help but admire the skill with which every misdeed is carried: the worst white collar crimes of the century carried out with such elegance they almost seemed the product of natural laws rather than masterful manipulation of the digital market. While you sift through the pages of the report, $assistantName remains strangely quiet. "I'm worried <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>sir<<else>>ma'am<</if>>, this individual seems to be able to penetrate whatever system gathers his attention. I... feel vulnerable" she said "It's not something I'm used to." <br>Fortunately you have not been hit directly by this criminal, not yet at least. Still the repercussions of numerous bankruptcies take their toll on your arcology, whose @@.red;prosperity suffers@@. @@ -63,7 +63,7 @@ <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> <br> - You just reached your penthouse, when your faithful assistant appears in front of you, evidently exited. + You just reached your penthouse, when your faithful assistant appears in front of you, evidently excited. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I have just received news of a new attack by the Smiling Man. It appears just a few hours ago he infiltrated another arcology and caused a catastrophic failure of its power plant. Between old debts and the loss of value for his shares, the owner went bankrupt in minutes. It seems the Smiling Man managed to keep a small auxiliary generator functioning enough to project a giant holographic picture of his symbol on the arcology's walls. You can say whatever you want about him, but he has style... Anyway this opens up a great opportunity to gain control of the structure for ourselves." @@ -141,7 +141,7 @@ <br>"Hello citizens of Earth! I am here in this special day to relay to you a very important message: we find ourselves in very peculiar times, times of strife and suffering! But also of change and regeneration! Indeed I say humanity is regenerating itself, turning into a new being for which the ideals of the old world no longer hold meaning. A new blank page from which humanity can start to prosper again. <br>Alas my friends not all is good, as in this rebirth a great injustice is being perpetrated. If we truly want to ascend to this new form of humanity the old must give space to the new. If we must cleanse our mind of old ideas, our world must cleanse itself of them as well. - It's to fix this unjustice that I worked so hard all this time! To cleanse the world of the old, we must get rid of our precious, precious data. At the end of this message every digital device will se its memory erased, every archived cleaned, every drive deleted. + It's to fix this injustice that I worked so hard all this time! To cleanse the world of the old, we must get rid of our precious, precious data. At the end of this message every digital device will see its memory erased, every archive cleaned, every drive deleted. <br>It will be a true rebirth! A true new beginning! No longer the chains of the past will keep humanity anchored!" <br>The voice stopped for a second. <br>"Have a good day." simply concluded, then it happened. @@ -186,7 +186,7 @@ <</if>> <</if>> <</for>> - Vast amount of data relative to the ownership of the arcology is lost. You would've run the risk of loosing ownership of one of the sectors, but fortunately your authority is so high your citizens do not dare question your claims even in the absence of a valid legal case. + Vast amount of data relative to the ownership of the arcology is lost. You would've run the risk of losing ownership of one of the sectors, but fortunately your authority is so high your citizens do not dare question your claims even in the absence of a valid legal case. <</if>> <</if>> <<if $secUpgrades.coldstorage > 3>> diff --git a/src/SecExp/securityHQ.tw b/src/SecExp/securityHQ.tw index 1b30a2e520821051628ba66cab786f3954fbd3c4..a69371aa2345e47d93ac90045f117a5c24131b1c 100644 --- a/src/SecExp/securityHQ.tw +++ b/src/SecExp/securityHQ.tw @@ -1,5 +1,6 @@ :: securityHQ [nobr] +<<HSM>> <<if $career == "mercenary" || $career == "gang" || $career == "slaver">> <<set _HistoryDiscount = .5>> <<else>> @@ -113,30 +114,30 @@ Considering the current upgrades the resting level for security is <<print $secR <br> <<if $secUpgrades.nanoCams == 0>> - [[Install a nano-camera system |securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.nanoCams = 1, $secRestPoint += 15, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will raise rest point of security by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// + [[Install a nano-camera system |securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.nanoCams = 1, $secRestPoint += 15, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] + <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will raise rest point of security by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed all across the arcology closed circuit nano-cameras to keep the arcology under your watchful eye. <</if>> <br> <<if $secUpgrades.cyberBots == 0>> - [[Buy cybersecurity algorithms|securityHQ][$cash -= Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.cyberBots = 1, $secRestPoint += 15, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will raise rest point of security by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// + [[Buy cybersecurity algorithms|securityHQ][$cash -= Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.cyberBots = 1, $secRestPoint += 15, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] + <br>//Costs <<print cashFormat(Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will raise rest point of security by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// <<else>> You have bought advanced cybersecurity algorithms that will defend your arcology against hack attempts or cyber frauds. <</if>> <br> <<if $rep > 10000>> <<if $secUpgrades.eyeScan == 0>> - [[Install invisible eye scanners|securityHQ][$cash -= Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.eyeScan = 1, $secRestPoint += 20, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will raise rest point of security by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// + [[Install invisible eye scanners|securityHQ][$cash -= Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.eyeScan = 1, $secRestPoint += 20, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] + <br>//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will raise rest point of security by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed numerous hidden eye scanners that accurately register the movements of everyone inside the arcology. <</if>> <br> <<if $secUpgrades.cryptoAnalyzer == 0>> - [[Buy and install crypto analyzers|securityHQ][$cash -= Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.cryptoAnalyzer = 1, $secRestPoint += 20, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will raise rest point of security by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// + [[Buy and install crypto analyzers|securityHQ][$cash -= Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.cryptoAnalyzer = 1, $secRestPoint += 20, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] + <br>//Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will raise rest point of security by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// <<else>> You have bought and employed sophisticated crypto analyzing software to accurately track and archive every financial movement or transaction made inside the walls of your arcology. <</if>> @@ -165,30 +166,30 @@ Considering the current upgrades the maximum level of crime is <<print $crimeCap <br> <<if $crimeUpgrades.advForensic == 0>> - [[Install advanced forensic equipment|securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount), $crimeUpgrades.advForensic = 1, $crimeCap -= 10, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will bring down the crime level cap by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// + [[Install advanced forensic equipment|securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $crimeUpgrades.advForensic = 1, $crimeCap -= 10, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will bring down the crime level cap by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed advanced forensic equipment, able to extract every bit of precious information from any clue. <</if>> <br> <<if $crimeUpgrades.autoArchive == 0>> - [[Install auto-curating archiver|securityHQ][$cash -= Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount), $crimeUpgrades.autoArchive = 1, $crimeCap -= 10, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will bring down the crime level cap by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// + [[Install auto-curating archiver|securityHQ][$cash -= Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $crimeUpgrades.autoArchive = 1, $crimeCap -= 10, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(7500*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will bring down the crime level cap by 10 points, but will require 5 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed auto-curating archiver software, which will update in real time your data archives with any new relevant information on criminals residing in your arcology. <</if>> <br> <<if $rep > 10000>> <<if $crimeUpgrades.autoTrial == 0>> - [[Install automated trials software|securityHQ][$cash -= Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount), $crimeUpgrades.autoTrial = 1, $crimeCap -= 15, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will bring down the crime level cap by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// + [[Install automated trials software|securityHQ][$cash -= Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $crimeUpgrades.autoTrial = 1, $crimeCap -= 15, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will bring down the crime level cap by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed advanced legal algorithms that allows the handling of legal matters much quicker and much more accurately. <</if>> <br> <<if $crimeUpgrades.worldProfiler == 0>> - [[Install worldwide profilers|securityHQ][$cash -= Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount), $crimeUpgrades.worldProfiler = 1, $crimeCap -= 15, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will bring down the crime level cap by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// + [[Install worldwide profilers|securityHQ][$cash -= Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $crimeUpgrades.worldProfiler = 1, $crimeCap -= 15, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will bring down the crime level cap by 15 points, but will require 10 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed advanced profiler software, which will constantly scour every known data archive on the globe (legally or not) to gather as much information as possible on dangerous criminals. <</if>> @@ -215,23 +216,23 @@ Considering the current upgrades the maximum level of crime is <<print $crimeCap <br> <<if $intelUpgrades.sensors == 0>> - [[Install perimeter sensors|securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount), $intelUpgrades.sensors = 1, $recon += 1, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will increase recon capabilites, but will require 5 extra slaves in the headquarters and increases upkeep.// + [[Install perimeter sensors|securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $intelUpgrades.sensors = 1, $recon += 1, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will increase recon capabilites, but will require 5 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed perimeter seismic sensors able to detect movement with high accuracy. <</if>> <br> <<if $intelUpgrades.signalIntercept == 0>> - [[Create signal interception hub|securityHQ][$cash -= Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount), $intelUpgrades.signalIntercept = 1, $recon += 1, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will increase recon capabilities, but will require 5 extra slaves in the headquarters and increases upkeep.// + [[Create signal interception hub|securityHQ][$cash -= Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $intelUpgrades.signalIntercept = 1, $recon += 1, $reqHelots += 5, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will increase recon capabilities, but will require 5 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed advanced signal interception equipment. <</if>> <br> <<if $rep > 10000>> <<if $intelUpgrades.radar == 0>> - [[Install advanced radar equipment|securityHQ][$cash -= Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount), $intelUpgrades.radar = 1, $recon += 1, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will increase recon capabilities, but will require 10 extra slaves in the headquarters and increases upkeep.// + [[Install advanced radar equipment|securityHQ][$cash -= Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $intelUpgrades.radar = 1, $recon += 1, $reqHelots += 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will increase recon capabilities, but will require 10 extra slaves in the headquarters and increases upkeep.// <<else>> You have installed sophisticated radar equipment. <</if>> @@ -259,7 +260,7 @@ Considering the current upgrades the maximum level of crime is <<print $crimeCap <<if $readinessUpgrades.pathways == 0>> [[Build specialized pathways in the arcology|securityHQ][$cash -= Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount), $readinessUpgrades.pathways = 1, $readiness += 1, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will increase readiness by 1, but will increases upkeep.// + <br>//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will increase readiness by 1, but will increase upkeep.// <<else>> You have built specialized pathways inside the arcology to quickly move troops around the structure. <</if>> @@ -297,36 +298,36 @@ Considering the current upgrades the maximum level of crime is <<print $crimeCap <<if $secUpgrades.coldstorage == 6 && $rep >= 19500 && $reqHelots > 10>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of two years. <br> - [[Expand the cold storage facility to increase data retention to three years|securityHQ][$cash -= Math.trunc(2400000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(2400000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by a further 10, but will increases upkeep.// + [[Expand the cold storage facility to increase data retention to three years|securityHQ][$cash -= Math.trunc(2400000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(2400000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by a further 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage == 5 && $rep >= 19500 && $reqHelots > 10>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of one year. <br> - [[Expand the cold storage facility to increase data retention to two years|securityHQ][$cash -= Math.trunc(1200000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(1200000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by a further 10, but will increases upkeep.// + [[Expand the cold storage facility to increase data retention to two years|securityHQ][$cash -= Math.trunc(1200000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(1200000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by a further 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage == 4 && $rep >= 19500 && $reqHelots > 10>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of nine months. <br> - [[Expand the cold storage facility to increase data retention to one year|securityHQ][$cash -= Math.trunc(900000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(900000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by a further 10, but will increases upkeep.// + [[Expand the cold storage facility to increase data retention to one year|securityHQ][$cash -= Math.trunc(900000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(900000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by a further 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage == 3 && $rep > 18000 && $reqHelots > 10>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of six months. <br> - [[Expand the cold storage facility to increase data retention to nine months|securityHQ][$cash -= Math.trunc(600000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(600000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by a further 10, but will increases upkeep.// + [[Expand the cold storage facility to increase data retention to nine months|securityHQ][$cash -= Math.trunc(600000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(600000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by a further 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage == 2 && $rep > 16000 && $reqHelots > 10>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of three months. <br> - [[Expand the cold storage facility to increase data retention to six months|securityHQ][$cash -= Math.trunc(300000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(300000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by a further 10, but will increases upkeep.// + [[Expand the cold storage facility to increase data retention to six months|securityHQ][$cash -= Math.trunc(300000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(300000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by a further 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage == 1 && $rep > 14000 && $reqHelots > 10>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of one month. <br> - [[Expand the cold storage facility to increase data retention to three months|securityHQ][$cash -= Math.trunc(100000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by a further 10, but will increases upkeep.// + [[Expand the cold storage facility to increase data retention to three months|securityHQ][$cash -= Math.trunc(100000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by a further 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage == 0 && $rep > 12000 && $reqHelots > 10>> - [[Install a cold storage facility|securityHQ][$cash -= Math.trunc(50000*$upgradeMultiplierArcology*_HistoryDiscount), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep]] - <br>//Costs <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology*_HistoryDiscount))>>. Will lower the amount of required slaves by 10, but will increases upkeep.// + [[Install a cold storage facility|securityHQ][$cash -= Math.trunc(50000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), $secUpgrades.coldstorage++, $reqHelots -= 10, $secHQUpkeep += $upgradeUpkeep, $PC.hacking += 1]] + <br>//Costs <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier))>>. Will lower the amount of required slaves by 10, but will increase upkeep.// <<elseif $secUpgrades.coldstorage > 6>> <br>You have installed a cold storage facility for the Security HQ's archives with a data retention capability of three years. <<elseif $reqHelots <= 10>> diff --git a/src/SecExp/seeUnit.tw b/src/SecExp/seeUnit.tw index a99221484f5ca47075310944e6ba5a52fa0661d2..3e26a8e9f3f66ddff04d99badbaeb75cd42357a8 100644 --- a/src/SecExp/seeUnit.tw +++ b/src/SecExp/seeUnit.tw @@ -1,7 +1,7 @@ :: seeUnit [nobr] <<if $attackThisWeek == 1>> - <<set $nextButton = "Back", $nextLink = "attackOption", $returnTo = "secBarracks">> + <<set $nextButton = "Back", $nextLink = "attackOptions", $returnTo = "secBarracks">> <<else>> <<set $nextButton = "Back", $nextLink = "secBarracks", $returnTo = "secBarracks">> <</if>> diff --git a/src/SecExp/tradeReport.tw b/src/SecExp/tradeReport.tw index ccb8da4dbc7bf482adac7f902ac6e81d1733727d..ccd0c030a586cc98d469fe723de464630ee51881 100644 --- a/src/SecExp/tradeReport.tw +++ b/src/SecExp/tradeReport.tw @@ -33,7 +33,7 @@ <<set _tradeChange -= 0.5>> <</if>> -<<if $PC.career == "wealth" || $PC.career == "capitalist" || $PC.career == "celebrity">> +<<if $PC.career == "wealth" || $PC.career == "capitalist" || $PC.career == "celebrity" || $PC.career == "BlackHat">> <<set _tradeChange += 1>> <<elseif $PC.career == "escort" || $PC.career == "servant" || $PC.career == "gang">> <<set _tradeChange -= 0.5>> diff --git a/src/SecExp/weaponsManufacturing.tw b/src/SecExp/weaponsManufacturing.tw index 7ee5833827fbdbc4e3b3ffbde9e004a0660463a0..2d9e4321ab66a098043d684ea4860a07ed4869fa 100644 --- a/src/SecExp/weaponsManufacturing.tw +++ b/src/SecExp/weaponsManufacturing.tw @@ -1,5 +1,6 @@ :: weaponsManufacturing [nobr] +<<HSM>> <<set $nextButton = "Back", $nextLink = "Main">> This sector of the arcology has been dedicated to weapons manufacturing. These factories supply @@ -199,10 +200,10 @@ __Upgrades__: unit: 0, type: "attack", time: _time}>> - <<set $cash -= 10000>> + <<set $cash -= 10000*$HackingSkillMultiplier>> <<goto "weaponsManufacturing">> <</link>> - <br>//Will take _time weeks, cost <<print cashFormat(10000)>> and will increase the base attack value of the security drones.// + <br>//Will take _time weeks, cost <<print cashFormat(10000*$HackingSkillMultiplier)>> and will increase the base attack value of the security drones.// <<elseif !$completedUpgrades.includes(-2) && $weapLab >= 2>> <<link "Develop adaptive armored frames">> <<set $currentUpgrade = { @@ -301,10 +302,10 @@ __Upgrades__: unit: 1, type: "attackAndDefense", time: _time}>> - <<set $cash -= 120000>> + <<set $cash -= 120000*$HackingSkillMultiplier>> <<goto "weaponsManufacturing">> <</link>> - <br>//Will take _time weeks, cost <<print cashFormat(120000)>> and will increase the base attack and "defense" values of human troops.// + <br>//Will take _time weeks, cost <<print cashFormat(120000*$HackingSkillMultiplier)>> and will increase the base attack and "defense" values of human troops.// <</if>> <<if !$completedUpgrades.includes(5) && $weapLab >= 3>> <br> @@ -315,10 +316,10 @@ __Upgrades__: unit: 1, type: "hpAndMorale", time: _time}>> - <<set $cash -= 120000>> + <<set $cash -= 120000*$HackingSkillMultiplier>> <<goto "weaponsManufacturing">> <</link>> - <br>//Will take _time weeks, cost <<print cashFormat(120000)>> and will increase the base hp and morale values of human troops.// + <br>//Will take _time weeks, cost <<print cashFormat(120000*$HackingSkillMultiplier)>> and will increase the base hp and morale values of human troops.// <</if>> <br> <<if $securityForceCreate == 1>> @@ -358,17 +359,17 @@ __Upgrades__: unit: 1, type: "all", time: _time}>> - <<set $cash -= 1000000>> + <<set $cash -= 1000000*$HackingSkillMultiplier>> <<goto "weaponsManufacturing">> <</link>> - <br>//Will take _time weeks, cost <<print cashFormat(1000000)>> and will increase all base stats of human troops.// + <br>//Will take _time weeks, cost <<print cashFormat(1000000*$HackingSkillMultiplier)>> and will increase all base stats of human troops.// <</if>> <</if>> <<if $securityForceCreate == 1 && ($humanUpgrade.attack >= 4 || $humanUpgrade.hp >= 4 || $humanUpgrade.morale >= 40 || $humanUpgrade.defense >= 4)>> You fully upgraded your human troops. <<elseif $humanUpgrade.attack >= 2 || $humanUpgrade.hp >= 2 || $humanUpgrade.morale >= 20 || $humanUpgrade.defense >= 2>> You fully upgraded your human troops. - <<if $securityForceCreate == 1 && ($humanUpgrade.attack < 4 || $humanUpgrade.hp < 4 || $humanUpgrade.morale < 40 || $humanUpgrade.defense < 4)>> + <<if $securityForceCreate == 1 && ($humanUpgrade.attack < 4 || $humanUpgrade.hp < 4 || $humanUpgrade.morale < 40 || $humanUpgrade.defense < 4) && (($SFSupportLevel >= 2 && $securityForceArcologyUpgrades >= 7) || ($SFSupportLevel >= 4 && $securityForceStimulantPower >= 8) || ($SFSupportLevel >= 5))>> With support from $securityForceName, however, we may be able to further upgrade our troops. <</if>> <<elseif $weapLab < 3>> diff --git a/src/SecExp/widgets/miscSecExpWidgets.tw b/src/SecExp/widgets/miscSecExpWidgets.tw index fb898a13f74888c7bb385ab99269fee8e8628fff..a01a9733a04c6ae48e0ef9086522133858c52f49 100644 --- a/src/SecExp/widgets/miscSecExpWidgets.tw +++ b/src/SecExp/widgets/miscSecExpWidgets.tw @@ -9,7 +9,7 @@ <<if $terrain == "ravine">> <<set _initialTrade -= random(5)>> <</if>> - <<if $PC.career == "wealth" || $PC.career == "capitalist" || $PC.career == "celebrity">> + <<if $PC.career == "wealth" || $PC.career == "capitalist" || $PC.career == "celebrity" || $PC.career == "BlackHat">> <<set _initialTrade += random(5)>> <<elseif $PC.career == "escort" || $PC.career == "servant" || $PC.career == "gang">> <<set _initialTrade -= random(5)>> @@ -532,4 +532,110 @@ <<if $SFBaseHp != 4 + $humanUpgrade.hp>> <<set $SFBaseHp = 4 + $humanUpgrade.hp>> <</if>> +<</widget>> + +<<widget "replenishAllUnits">> + <<set _hasLossesM = 0>> + <<set _hasLossesS = 0>> + <<set _hasLossesMe = 0>> + + <<for _i = 0; _i < $militiaUnits.length; _i++>> + <<if $militiaUnits[_i].troops < $militiaUnits[_i].maxTroops && $militiaFreeManpower > 0>> + <<set _hasLossesM = 1>> + <<break>> + <</if>> + <</for>> + + <<for _i = 0; _i < $slaveUnits.length; _i++>> + <<if $slaveUnits[_i].troops < $slaveUnits[_i].maxTroops && $helots > 0>> + <<set _hasLossesS = 1>> + <<break>> + <</if>> + <</for>> + + <<for _i = 0; _i < $mercUnits.length; _i++>> + <<if $mercUnits[_i].troops < $mercUnits[_i].maxTroops && $mercFreeManpower > 0>> + <<set _hasLossesMe = 1>> + <<break>> + <</if>> + <</for>> + + <<if _hasLossesM == 1 && $militiaFreeManpower > 0 || _hasLossesS == 1 && $helots > 0 || _hasLossesMe == 1 && $mercFreeManpower > 0>> + + <<link "Replenish all units">> + + <<if _hasLossesM == 1>> + <<for _i = 0; _i < $militiaUnits.length; _i++>> + <<if $militiaUnits[_i].troops < $militiaUnits[_i].maxTroops && $militiaFreeManpower > 0>> + <<if $militiaFreeManpower >= $militiaUnits[_i].maxTroops - $militiaUnits[_i].troops>> + <<set $militiaFreeManpower -= $militiaUnits[_i].maxTroops - $militiaUnits[_i].troops>> + <<set $militiaEmployedManpower += $militiaUnits[_i].maxTroops - $militiaUnits[_i].troops>> + <<set _expLoss = ($militiaUnits[_i].maxTroops - $militiaUnits[_i].troops) / $militiaUnits[_i].troops>> + <<set $militiaUnits[_i].training -= $militiaUnits[_i].training * _expLoss>> + <<set $militiaUnits[_i].troops = $militiaUnits[_i].maxTroops>> + <<else>> + <<set $militiaEmployedManpower += $militiaFreeManpower>> + <<set _expLoss = $militiaFreeManpower / $militiaUnits[_i].troops>> + <<set $militiaUnits[_i].training -= $militiaUnits[_i].training * _expLoss>> + <<set $militiaUnits[_i].troops += $militiaFreeManpower>> + <<set $militiaFreeManpower = 0>> + <</if>> + <</if>> + <</for>> + <</if>> + + <<if _hasLossesS == 1>> + <<for _i = 0; _i < $slaveUnits.length; _i++>> + <<if $slaveUnits[_i].troops < $slaveUnits[_i].maxTroops && $helots > 0>> + <<if $helots >= $slaveUnits[_i].maxTroops - $slaveUnits[_i].troops>> + <<set $helots -= $slaveUnits[_i].maxTroops - $slaveUnits[_i].troops>> + <<set $slavesEmployedManpower += $slaveUnits[_i].maxTroops - $slaveUnits[_i].troops>> + <<set _expLoss = ($slaveUnits[_i].maxTroops - $slaveUnits[_i].troops) / $slaveUnits[_i].troops>> + <<set $slaveUnits[_i].training -= $slaveUnits[_i].training * _expLoss>> + <<set $slaveUnits[_i].troops = $slaveUnits[_i].maxTroops>> + <<else>> + <<set $slavesEmployedManpower += $helots>> + <<set _expLoss = $helots / $slaveUnits[_i].troops>> + <<set $slaveUnits[_i].training -= $slaveUnits[_i].training * _expLoss>> + <<set $slaveUnits[_i].troops += $helots>> + <<set $helots = 0>> + <</if>> + <</if>> + <</for>> + <</if>> + + <<if _hasLossesMe == 1>> + <<for _i = 0; _i < $mercUnits.length; _i++>> + <<if $mercUnits[_i].troops < $mercUnits[_i].maxTroops && $mercFreeManpower > 0>> + <<if $mercFreeManpower >= $mercUnits[_i].maxTroops - $mercUnits[_i].troops>> + <<set $mercFreeManpower -= $mercUnits[_i].maxTroops - $mercUnits[_i].troops>> + <<set $mercEmployedManpower += $mercUnits[_i].maxTroops - $mercUnits[_i].troops>> + <<set _expLoss = ($mercUnits[_i].maxTroops - $mercUnits[_i].troops) / $mercUnits[_i].troops>> + <<set $mercUnits[_i].training -= $mercUnits[_i].training * _expLoss>> + <<set $mercUnits[_i].troops = $mercUnits[_i].maxTroops>> + <<else>> + <<set $mercEmployedManpower += $mercFreeManpower>> + <<set _expLoss = $mercFreeManpower / $mercUnits[_i].troops>> + <<set $mercUnits[_i].training -= $mercUnits[_i].training * _expLoss>> + <<set $mercUnits[_i].troops += $mercFreeManpower>> + <<set $mercFreeManpower = 0>> + <</if>> + <</if>> + <</for>> + <</if>> + + <<if $slaveRebellion == 1 || $citizenRebellion == 1>> + <<goto "rebellionOptions">> + <<elseif $attackThisWeek == 1>> + <<goto "attackOptions">> + <<else>> + <<goto "secBarracks">> + <</if>> + + + + <</link>> + <br>//Will replenish units as long as manpower is available + <</if>> + <</widget>> \ No newline at end of file diff --git a/src/art/artWidgets.tw b/src/art/artWidgets.tw index 0f2a9c7d279c93fc3333260745b2c6f46411d808..17063ece72cd6d49f9141ad7f3bde0b9381cfb73 100644 --- a/src/art/artWidgets.tw +++ b/src/art/artWidgets.tw @@ -406,7 +406,7 @@ vector art added later is drawn over previously added art <</if>> /% Boob %/ -<<if $args[0].boobs < 250>> +<<if $args[0].boobs < 300>> <<set _boobSize = 0>> <<elseif $args[0].boobs < 500>> <<set _boobSize = 1>> diff --git a/src/art/vector_revamp/Vector_Revamped_Control_.tw b/src/art/vector_revamp/Vector_Revamped_Control_.tw index ee16bee53baab61cd085cc515f40a82f1682871e..1131ad3494f27a37c52e9a5a6e594c5966a53c9c 100644 --- a/src/art/vector_revamp/Vector_Revamped_Control_.tw +++ b/src/art/vector_revamp/Vector_Revamped_Control_.tw @@ -20,6 +20,11 @@ <<print "<style>" + _revampedVectorArtControl.StylesCss + "</style>" >> <<set _revampedArtLayers to _revampedVectorArtControl.Layers>> <<set _art_transform = _revampedVectorArtControl.artTransform>> +<<set _boob_right_art_transform = _revampedVectorArtControl.boobRightArtTransform>> +<<set _boob_left_art_transform = _revampedVectorArtControl.boobLeftArtTransform>> + +<<set _boob_outfit_art_transform = _revampedVectorArtControl.boobOutfitArtTransform>> + <<set _art_pussy_tattoo_text = _revampedVectorArtControl.pubicTattooText >> <<for _i to 0; _i lt _revampedArtLayers.length; _i++>> <<include _revampedArtLayers[_i]>> diff --git a/src/art/vector_revamp/layers/Arm_Down_Hair_Neat.tw b/src/art/vector_revamp/layers/Arm_Down_Hair_Neat.tw index a76b1dbf76b1a7d2f1dc78d10be5b7e97a4227d1..a8d9368be813a57b0eb3734db414e40b814b467c 100644 --- a/src/art/vector_revamp/layers/Arm_Down_Hair_Neat.tw +++ b/src/art/vector_revamp/layers/Arm_Down_Hair_Neat.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Down_Hair_Neat [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccc" id="path3325" class="armpit_hair" d="m 360.64122,234.43118 c -1.78847,-3.72504 -3.61047,-12.89756 -3.19383,-24.4475 1.19043,6.54449 2.6192,20.32885 3.19383,24.4475 z"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 354.05629,228.07423 c 1.39185,-4.39624 2.09719,-9.60653 4.00065,-14.414 0.54189,4.42694 0.7503,4.99021 0.86324,6.92685 -1.39276,2.16548 -2.43234,4.46572 -4.86389,7.48715 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9-6" sodipodi:nodetypes="cccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Arm_Hair.tw b/src/art/vector_revamp/layers/Arm_Hair.tw index ad422060e7f555fcf7c4f8931db9bbed1e49d2c5..4ca976b6e5d475c743d8ee981dde436604fa0321 100644 --- a/src/art/vector_revamp/layers/Arm_Hair.tw +++ b/src/art/vector_revamp/layers/Arm_Hair.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Hair [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"style="display:inline" inkscape:label="Arm_Down_Hair_Neat" id="Arm_Down_Hair_Neat" inkscape:groupmode="layer"><path sodipodi:nodetypes="ccc" id="path3325" class="armpit_hair" d="m 360.64122,234.43118 c -1.78847,-3.72504 -3.61047,-12.89756 -3.19383,-24.4475 1.19043,6.54449 2.6192,20.32885 3.19383,24.4475 z"/></g><g transform="'+_art_transform+'"inkscape:label="Arm_Down_Hair_Bushy" id="Arm_Down_Hair_Bushy" inkscape:groupmode="layer" style="display:inline"><path sodipodi:nodetypes="cccccccccccccccccccccc" id="path1099" class="armpit_hair" d="m 360.24347,231.86792 0.62233,4.65711 c 0.55578,0.2551 -7.99816,5.95284 -3.27038,-0.65737 -3.09359,5.37627 2.92909,-0.003 2.17022,-2.14111 -1.53423,0.28812 -5.71284,3.52639 -5.25133,8.12415 -0.98363,-3.5058 2.9824,-9.77272 4.83736,-11.83806 -0.18244,1.45667 -8.26869,-0.51242 -3.88775,5.73641 -5.3105,-5.44303 2.41392,-7.14507 3.39202,-9.43961 0.45356,1.56568 -1.24519,3.2832 -7.4966,4.08414 3.46772,-0.44603 7.11012,-4.45071 7.06734,-6.77892 -2.40629,-0.74554 -6.1703,2.17421 -5.81219,4.21371 -0.25259,-2.66244 3.06309,-5.85365 5.67489,-7.08339 -0.9377,1.02012 -4.71933,0.89387 -3.06732,-2.07507 -0.83642,1.71326 1.4865,2.34105 2.34002,-0.14383 -1.70746,-1.70745 -3.52581,-1.63585 -3.89757,0.0658 0.97561,-3.83828 3.37716,-1.67017 4.2302,-1.64816 -0.32331,-0.41565 -0.17879,-0.76893 -0.0751,-1.12765 -2.01181,0.29687 -4.33853,-2.08468 -4.3297,-2.13619 1.72132,0.72587 4.20901,1.47818 4.21081,0.17288 0,0 -0.11184,-2.03629 -0.16497,-3.11735 1.19043,6.54449 2.70769,21.13294 2.70769,21.13294 z"/></g><g transform="'+_art_transform+'"inkscape:groupmode="layer" id="Arm_Up_Hair_Neat" inkscape:label="Arm_Up_Hair_Neat" style="display:inline"><path d="m 361.07872,235.74368 c -0.94878,-8.80737 -2.85473,-24.59569 2.37908,-28.8536 2.1627,9.19615 -2.2466,10.90217 -2.37908,28.8536 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9" sodipodi:nodetypes="ccc"/></g><g transform="'+_art_transform+'"style="display:inline" inkscape:groupmode="layer" id="Arm_Up_Hair_Bushy" inkscape:label="Arm_Up_Hair_Bushy"><path d="m 360.53365,236.48083 c -0.55578,0.2551 1.01548,-0.63209 3.04941,3.3643 -0.97228,-3.1532 -2.70812,-4.02467 -1.94925,-6.16278 1.53423,0.28812 5.80123,-1.42335 5.33972,3.17441 0.98363,-3.5058 -3.07079,-4.82298 -4.92575,-6.88832 0.18244,1.45667 11.2297,-1.04275 6.84876,5.20608 5.3105,-5.44303 -2.41392,-7.14507 -3.39202,-9.43961 -0.45356,1.56568 -1.45066,-1.04783 4.80075,-0.24689 -3.46772,-0.44603 -8.11396,-3.23134 -7.33132,-5.42448 2.51841,0.0603 4.53675,2.08298 3.54725,3.90196 1.08804,-2.44307 -0.41883,-4.58012 -2.50244,-6.5782 0.56364,1.26579 4.18828,2.35147 3.56874,-0.98917 0.24672,1.8905 -2.15515,1.74514 -2.17213,-0.88218 2.16264,-1.07417 3.58587,0.37498 2.70189,1.87578 1.89339,-3.4784 -1.34178,-3.52056 -1.98242,-4.08425 0.51967,-0.0851 0.6538,-0.44246 0.82158,-0.77605 1.2738,1.58522 4.59918,1.41997 4.62772,1.37618 -1.75593,-0.63763 -4.09192,-1.77678 -3.206,-2.73539 0,0 -0.30162,-0.93139 0.47217,-1.6882 -1.17562,0.12647 -1.50552,0.39685 -2.29732,1.39659 0.43889,-0.74403 0.22952,-1.36458 0.27651,-2.03396 -0.19789,1.53736 -0.94588,2.69608 -2.74427,3.1318 0.29183,-1.13068 -0.21459,-1.42216 -0.71523,-1.71972 0.596,1.32079 -0.14863,1.44588 -1.07278,1.41086 -0.87655,-1.71928 0.22738,-2.55256 0.83323,-3.60866 -1.93061,0.6298 -3.38367,1.69073 -3.81887,3.67055 -0.70564,-0.81459 -0.56273,-1.73524 -0.459,-2.651 -0.65736,0.85385 -1.14327,1.8183 -1.15811,3.08668 l 1.88893,15.25586 c 0,0 1.15763,7.50544 0.95025,9.05781 z" class="armpit_hair" id="path3321" sodipodi:nodetypes="cccccccccccccccccccccccccccccc"/></g></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g style="display:inline" inkscape:label="Arm_Down_Hair_Neat" id="Arm_Down_Hair_Neat" inkscape:groupmode="layer"><path d="m 354.05629,228.07423 c 1.39185,-4.39624 2.09719,-9.60653 4.00065,-14.414 0.54189,4.42694 0.7503,4.99021 0.86324,6.92685 -1.39276,2.16548 -2.43234,4.46572 -4.86389,7.48715 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9-6" sodipodi:nodetypes="cccc"/></g><g inkscape:label="Arm_Down_Hair_Bushy" id="Arm_Down_Hair_Bushy" inkscape:groupmode="layer" style="display:inline"><path sodipodi:nodetypes="cccccccccccccccccccccc" id="path1099" class="armpit_hair" d="m 360.24347,231.86792 0.62233,4.65711 c 0.55578,0.2551 -7.99816,5.95284 -3.27038,-0.65737 -3.09359,5.37627 2.92909,-0.003 2.17022,-2.14111 -1.53423,0.28812 -5.71284,3.52639 -5.25133,8.12415 -0.98363,-3.5058 2.9824,-9.77272 4.83736,-11.83806 -0.18244,1.45667 -8.26869,-0.51242 -3.88775,5.73641 -5.3105,-5.44303 2.41392,-7.14507 3.39202,-9.43961 0.45356,1.56568 -1.24519,3.2832 -7.4966,4.08414 3.46772,-0.44603 7.11012,-4.45071 7.06734,-6.77892 -2.40629,-0.74554 -6.1703,2.17421 -5.81219,4.21371 -0.25259,-2.66244 3.06309,-5.85365 5.67489,-7.08339 -0.9377,1.02012 -4.71933,0.89387 -3.06732,-2.07507 -0.83642,1.71326 1.4865,2.34105 2.34002,-0.14383 -1.70746,-1.70745 -3.52581,-1.63585 -3.89757,0.0658 0.97561,-3.83828 3.37716,-1.67017 4.2302,-1.64816 -0.32331,-0.41565 -0.17879,-0.76893 -0.0751,-1.12765 -2.01181,0.29687 -4.33853,-2.08468 -4.3297,-2.13619 1.72132,0.72587 4.20901,1.47818 4.21081,0.17288 0,0 -0.11184,-2.03629 -0.16497,-3.11735 1.19043,6.54449 2.70769,21.13294 2.70769,21.13294 z"/></g><g inkscape:groupmode="layer" id="Arm_Up_Hair_Neat" inkscape:label="Arm_Up_Hair_Neat" style="display:inline"><path d="m 353.82758,228.26371 c 2.63427,-8.3205 2.8094,-19.55701 13.30247,-25.45963 -2.25337,1.88046 -2.3103,2.56478 -2.3103,2.56478 0,0 3.92159,-2.74342 6.0617,-3.75361 -2.13734,1.00888 -7.90174,6.73287 -7.90174,6.73287 0,0 5.25855,-3.57777 7.96714,-4.85629 -2.65821,1.36333 -7.78621,6.57323 -7.78621,6.57323 0,0 5.96459,-4.60503 10.05437,-5.34594 -4.10883,0.74436 -10.03306,6.87998 -10.03306,6.87998 0,0 6.35061,-4.58166 9.43389,-4.32646 -3.08434,-0.25529 -10.12328,6.20939 -10.12328,6.20939 0,0 6.98773,-5.58977 9.97576,-4.51804 -2.94589,-1.05661 -10.71107,6.34907 -10.71107,6.34907 0,0 6.61595,-4.68536 9.63061,-3.60408 -3.02656,-1.08555 -10.21842,5.09377 -10.21842,5.09377 0,0 0.60053,-0.37366 1.37241,-0.41639 -4.47366,3.77416 -4.63821,6.81245 -8.71427,11.87735 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9" sodipodi:nodetypes="ccccccccccccccccc"/></g><g style="display:inline" inkscape:groupmode="layer" id="Arm_Up_Hair_Bushy" inkscape:label="Arm_Up_Hair_Bushy"><path d="m 354.20431,225.28332 c -0.61112,0.0223 1.18028,-0.1941 1.52525,4.27681 0.31193,-3.28492 -0.95671,-4.75569 0.56442,-6.43901 1.30627,0.85471 5.90336,0.91135 3.71313,4.98017 2.25343,-2.86011 -0.98533,-5.63205 -1.90592,-8.25103 -0.39041,1.41519 10.77036,3.34558 4.32719,7.43534 8.5248,-4.57088 -5.60608,-14.3046 5.01736,-8.4047 -3.0312,-1.74236 -3.14502,-4.92117 -0.87788,-5.45267 1.31482,2.14877 0.7096,4.94138 -1.3553,5.0962 2.64273,-0.41036 3.62136,-2.83526 4.1705,-5.66937 -0.75797,1.1599 0.29507,4.79417 2.76613,2.46231 -1.45473,1.23233 -2.63489,-0.86465 -0.43645,-2.30346 2.07516,1.23475 1.62919,3.21634 -0.11115,3.28731 3.94931,-0.29507 2.23064,-3.03628 2.35691,-3.88021 0.67358,1.25061 0.49749,1.49403 1.53676,2.24415 -1.02483,-1.3448 0.3076,-2.81529 0.72915,-3.20865 0.86312,-0.0346 1.27103,-0.54702 1.85896,-0.87047 -0.6731,0.32102 -1.5432,-0.54456 -2.31305,-1.72962 -0.2374,-0.36546 0.98951,-1.49356 1.11803,-2.66756 -0.68914,1.5688 -2.21073,0.66309 -2.37984,0.26276 -0.23543,-0.55727 -0.41307,-1.06893 -0.50614,-1.45692 1.13002,0.29438 1.42264,-0.21138 1.72133,-0.71135 -1.32214,0.59302 -1.44554,-0.15189 -1.40844,-1.07596 1.72125,-0.87267 2.55204,0.23313 3.60677,0.84136 -0.62544,-1.93202 -1.6831,-3.38747 -3.66192,-3.82713 0.81617,-0.7038 1.73649,-0.55881 2.65202,-0.45302 -0.85236,-0.65929 -1.81572,-1.14737 -3.08406,-1.16507 -3.6659,0.85993 -12.95933,3.61857 -17.02603,17.95061 0,0 -1.8106,7.37519 -2.59771,8.72919 z" class="armpit_hair" id="path3321" sodipodi:nodetypes="cccccccccccccccccscscccccccccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Arm_Left_High.tw b/src/art/vector_revamp/layers/Arm_Left_High.tw index 0900a7eed1477c4e5b907ac627857d075e6b1ff1..0eb3466136c6ccab56ca04fc9c2e39b73533a0b2 100644 --- a/src/art/vector_revamp/layers/Arm_Left_High.tw +++ b/src/art/vector_revamp/layers/Arm_Left_High.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Left_High [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccccccccccccccccccccscccccccc" id="path3228" class="shadow" d="m 416.96515,136.81346 c 32.11702,-0.95542 12.44417,5.83226 -8.86061,-0.84231 -13.17517,-3.55885 -22.10975,-11.35491 -32.16663,-14.92538 -26.00796,-7.28693 -35.18199,-5.36422 -35.15592,-5.52718 -5.7001,-0.621 -8.60045,-1.23038 -8.1843,-1.25056 -2.1832,0.69779 -4.14081,1.89142 -6.17593,2.9871 -4.21706,4.76934 -8.18639,10.39866 -13.57388,12.35835 -1.92294,1.53597 -4.68187,1.38752 -6.42427,1.56556 -3.17523,1.49929 -6.0303,5.71999 -10.25413,1.05927 -0.71753,-0.67242 -1.08803,-1.79537 -1.17931,-2.88952 -2.44492,-0.27198 -4.8582,-0.24109 -7.22331,-0.265 -2.49592,-2.52948 -4.91084,-5.18137 -5.29842,-10.2787 -0.57251,-2.93616 -1.19034,-5.8172 1.73934,-8.15351 -0.63334,-3.27898 0.8596,-5.81144 3.36731,-7.9988 0.0414,-3.142308 0.47692,-6.148001 4.81868,-7.881954 -0.35575,-2.53162 0.83749,-2.644437 1.40361,-3.677788 8.67897,-0.933389 17.44184,-1.860384 33.40821,0.707292 0.76908,-0.432375 1.18909,-0.984061 2.97187,-1.064521 2.02588,0.323394 2.29331,2.593018 4.17997,2.916577 0.017,-0.122533 11.07469,-0.519229 28.23967,2.846153 22.33718,4.993821 38.1414,6.556701 50.90227,11.342701 15.98778,2.32201 35.44598,17.35468 35.9125,31.34547 0.25313,7.59105 -9.11293,16.51703 -12.98971,17.78179 -6.90871,5.56547 -40.15715,34.83106 -68.08145,53.02535 -12.76935,11.09792 1.0322,34.94142 -18.21974,33.80336 -11.42113,-1.91438 -15.90619,-47.50408 -15.80696,-47.55692 8.12889,-3.15008 13.68165,-10.49055 19.97602,-16.62467 6.29362,-1.56423 11.88648,-5.46072 17.60239,-8.94768 24.72621,-14.49206 27.79345,-19.88621 45.07272,-33.85449 z"/><path d="m 416.34015,137.87596 c 27.19781,0.73794 6.76862,2.55782 -8.23561,-1.90481 -12.93847,-3.90325 -22.17008,-11.8098 -32.16663,-14.92538 -27.21775,-8.48286 -35.15592,-5.52718 -35.15592,-5.52718 -4.43404,-0.99709 -8.59402,-1.23228 -8.1843,-1.25056 -2.51009,0.47312 -4.29552,1.78509 -6.17593,2.9871 -4.50142,4.17994 -8.35339,10.0525 -13.57388,12.35835 -1.86742,1.32643 -4.6509,1.27068 -6.42427,1.56556 -3.17523,1.49929 -5.84837,5.36864 -10.25413,1.05927 -0.56736,-0.68182 -0.85844,-1.80974 -1.17931,-2.88952 -2.40238,-0.47006 -4.81155,-0.45831 -7.22331,-0.265 -2.2793,-2.88904 -4.539,-5.79859 -5.29842,-10.2787 -0.26857,-2.7479 -0.67956,-5.50083 1.73934,-8.15351 -0.23326,-3.18411 1.20628,-5.72923 3.36731,-7.9988 0.31255,-3.064215 1.08954,-5.971585 4.81868,-7.881954 0.11652,-2.52493 0.88382,-2.643795 1.40361,-3.677788 8.70196,-0.809319 17.4938,-1.580034 33.40821,0.707292 0.86624,-0.406652 1.55594,-0.886827 2.97187,-1.064521 1.97166,0.503435 2.26133,2.699256 4.17997,2.916577 0,0 11.28571,-1.354883 28.23967,2.846153 21.50866,5.329651 36.63325,6.513511 50.90227,11.342701 15.63351,5.29098 29.05276,12.30963 35.49429,28.83661 3.29595,8.45637 -8.6973,18.99285 -12.5715,20.29065 -7.2367,5.35747 -42.11286,34.38128 -68.08145,53.02535 -12.79099,11.05725 0.8543,34.6073 -18.21974,33.80336 -11.12304,-2.0731 -15.80696,-47.55692 -15.80696,-47.55692 3.13687,-5.26914 2.81848,-10.8608 20.30706,-17.24004 6.29362,-1.56423 11.55545,-4.84533 17.27136,-8.33229 18.03877,-8.34635 27.48335,-18.28231 44.44772,-32.792 z" class="skin arm" id="path3230" sodipodi:nodetypes="ccsccccccccccccccccsssccccccc"/><path d="m 295.18882,129.21753 c 5.34665,-3.49364 4.94695,-6.10534 5.3092,-7.81066 -0.937,2.89145 -1.33607,3.38261 -5.3092,7.81066 z" class="shadow" id="path3234" sodipodi:nodetypes="ccc"/><path d="m 300.37099,121.58603 c -4.87738,-0.98168 -4.57091,-0.48934 -6.46034,0.11744 1.79618,-0.32021 1.5622,-0.45178 6.46034,-0.11744 z" class="shadow" id="path3236" sodipodi:nodetypes="ccc"/><path d="m 304.25086,124.04729 c -3.73519,-3.29389 -7.7306,-6.63208 -10.0306,-6.82802 2.14005,0.77849 6.26034,4.08751 10.0306,6.82802 z" class="shadow" id="path3242" sodipodi:nodetypes="ccc"/><path d="m 293.91881,121.74899 c -2.2385,-0.52137 -2.5242,-0.52537 -4.84179,-0.25747 2.24964,0.0618 2.53867,0.0349 4.84179,0.25747 z" class="shadow" id="path3244" sodipodi:nodetypes="ccc"/><path d="m 293.8827,123.52006 c -1.50826,1.75414 -2.66361,2.30138 -4.6134,3.12696 2.46702,-0.46549 3.21838,-1.14883 4.6134,-3.12696 z" class="shadow" id="path3246" sodipodi:nodetypes="ccc"/><path d="m 294.93289,112.54791 c -4.05406,-2.84524 -8.44042,-1.75817 -10.74039,-1.95411 2.22191,0.51402 6.97014,-0.78639 10.74039,1.95411 z" class="shadow" id="path3248" sodipodi:nodetypes="ccc"/><path d="m 296.36587,104.19814 c -3.97505,-2.90663 -6.59037,-1.31213 -8.89036,-1.50807 2.2402,0.3267 5.12011,-1.23244 8.89036,1.50807 z" class="shadow" id="path3250" sodipodi:nodetypes="ccc"/><path d="m 299.03763,96.545358 c -4.03843,-2.845022 -4.24231,-1.560849 -6.5423,-1.756785 2.22279,0.451523 2.77205,-0.983725 6.5423,1.756785 z" class="shadow" id="path3252" sodipodi:nodetypes="ccc"/><path d="m 415.57013,138.34367 c 4.33424,-2.83585 8.46725,1.10257 16.32437,-3.88923 -8.00202,4.48396 -11.55736,0.31819 -16.32437,3.88923 z" class="shadow" id="path3232" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccccccccccccccccccccscccccccc" id="path3228" class="shadow" d="m 416.96515,136.81346 c 32.11702,-0.95542 12.44417,5.83226 -8.86061,-0.84231 -13.17517,-3.55885 -22.10975,-11.35491 -32.16663,-14.92538 -26.00796,-7.28693 -35.18199,-5.36422 -35.15592,-5.52718 -5.7001,-0.621 -8.60045,-1.23038 -8.1843,-1.25056 -2.1832,0.69779 -4.14081,1.89142 -6.17593,2.9871 -4.21706,4.76934 -8.18639,10.39866 -13.57388,12.35835 -1.92294,1.53597 -4.68187,1.38752 -6.42427,1.56556 -3.17523,1.49929 -6.0303,5.71999 -10.25413,1.05927 -0.71753,-0.67242 -1.08803,-1.79537 -1.17931,-2.88952 -2.44492,-0.27198 -4.8582,-0.24109 -7.22331,-0.265 -2.49592,-2.52948 -4.91084,-5.18137 -5.29842,-10.2787 -0.57251,-2.93616 -1.19034,-5.8172 1.73934,-8.15351 -0.63334,-3.27898 0.8596,-5.81144 3.36731,-7.9988 0.0414,-3.142308 0.47692,-6.148001 4.81868,-7.881954 -0.35575,-2.53162 0.83749,-2.644437 1.40361,-3.677788 8.67897,-0.933389 17.44184,-1.860384 33.40821,0.707292 0.76908,-0.432375 1.18909,-0.984061 2.97187,-1.064521 2.02588,0.323394 2.29331,2.593018 4.17997,2.916577 0.017,-0.122533 11.07469,-0.519229 28.23967,2.846153 22.33718,4.993821 38.1414,6.556701 50.90227,11.342701 15.98778,2.32201 35.44598,17.35468 35.9125,31.34547 0.25313,7.59105 -9.11293,16.51703 -12.98971,17.78179 -6.90871,5.56547 -44.3556,39.86919 -72.2799,58.06348 -0.7002,9.13287 -0.10078,10.74565 -2.89629,20.82773 -11.42113,-1.91438 -27.03119,-39.56658 -26.93196,-39.61942 8.12889,-3.15008 13.68165,-10.49055 19.97602,-16.62467 6.29362,-1.56423 11.88648,-5.46072 17.60239,-8.94768 24.72621,-14.49206 27.79345,-19.88621 45.07272,-33.85449 z"/><path d="m 416.34015,137.87596 c 27.19781,0.73794 6.76862,2.55782 -8.23561,-1.90481 -12.93847,-3.90325 -22.17008,-11.8098 -32.16663,-14.92538 -27.21775,-8.48286 -35.15592,-5.52718 -35.15592,-5.52718 -4.43404,-0.99709 -8.59402,-1.23228 -8.1843,-1.25056 -2.51009,0.47312 -4.29552,1.78509 -6.17593,2.9871 -4.50142,4.17994 -8.35339,10.0525 -13.57388,12.35835 -1.86742,1.32643 -4.6509,1.27068 -6.42427,1.56556 -3.17523,1.49929 -5.84837,5.36864 -10.25413,1.05927 -0.56736,-0.68182 -0.85844,-1.80974 -1.17931,-2.88952 -2.40238,-0.47006 -4.81155,-0.45831 -7.22331,-0.265 -2.2793,-2.88904 -4.539,-5.79859 -5.29842,-10.2787 -0.26857,-2.7479 -0.67956,-5.50083 1.73934,-8.15351 -0.23326,-3.18411 1.20628,-5.72923 3.36731,-7.9988 0.31255,-3.064215 1.08954,-5.971585 4.81868,-7.881954 0.11652,-2.52493 0.88382,-2.643795 1.40361,-3.677788 8.70196,-0.809319 17.4938,-1.580034 33.40821,0.707292 0.86624,-0.406652 1.55594,-0.886827 2.97187,-1.064521 1.97166,0.503435 2.26133,2.699256 4.17997,2.916577 0,0 11.28571,-1.354883 28.23967,2.846153 21.50866,5.329651 36.63325,6.513511 50.90227,11.342701 15.63351,5.29098 29.05276,12.30963 35.49429,28.83661 3.29595,8.45637 -8.6973,18.99285 -12.5715,20.29065 -7.2367,5.35747 -46.31131,39.41941 -72.2799,58.06348 -0.96906,8.75577 -0.54078,11.07961 -3.36964,21.87094 -11.12304,-2.0731 -20.03076,-45.4356 -20.03076,-45.4356 3.13687,-5.26914 14.04976,-13.48866 22.24901,-18.61451 6.35608,-3.97357 14.1103,-5.30921 20.52656,-9.18485 11.91046,-7.19433 15.85835,-11.28231 32.82272,-25.792 z" class="skin arm" id="path3230" sodipodi:nodetypes="ccsccccccccccccccccsssccccaac"/><path d="m 295.18882,129.21753 c 5.34665,-3.49364 4.94695,-6.10534 5.3092,-7.81066 -0.937,2.89145 -1.33607,3.38261 -5.3092,7.81066 z" class="shadow" id="path3234" sodipodi:nodetypes="ccc"/><path d="m 300.37099,121.58603 c -4.87738,-0.98168 -4.57091,-0.48934 -6.46034,0.11744 1.79618,-0.32021 1.5622,-0.45178 6.46034,-0.11744 z" class="shadow" id="path3236" sodipodi:nodetypes="ccc"/><path d="m 304.25086,124.04729 c -3.73519,-3.29389 -7.7306,-6.63208 -10.0306,-6.82802 2.14005,0.77849 6.26034,4.08751 10.0306,6.82802 z" class="shadow" id="path3242" sodipodi:nodetypes="ccc"/><path d="m 293.91881,121.74899 c -2.2385,-0.52137 -2.5242,-0.52537 -4.84179,-0.25747 2.24964,0.0618 2.53867,0.0349 4.84179,0.25747 z" class="shadow" id="path3244" sodipodi:nodetypes="ccc"/><path d="m 293.8827,123.52006 c -1.50826,1.75414 -2.66361,2.30138 -4.6134,3.12696 2.46702,-0.46549 3.21838,-1.14883 4.6134,-3.12696 z" class="shadow" id="path3246" sodipodi:nodetypes="ccc"/><path d="m 294.93289,112.54791 c -4.05406,-2.84524 -8.44042,-1.75817 -10.74039,-1.95411 2.22191,0.51402 6.97014,-0.78639 10.74039,1.95411 z" class="shadow" id="path3248" sodipodi:nodetypes="ccc"/><path d="m 296.36587,104.19814 c -3.97505,-2.90663 -6.59037,-1.31213 -8.89036,-1.50807 2.2402,0.3267 5.12011,-1.23244 8.89036,1.50807 z" class="shadow" id="path3250" sodipodi:nodetypes="ccc"/><path d="m 299.03763,96.545358 c -4.03843,-2.845022 -4.24231,-1.560849 -6.5423,-1.756785 2.22279,0.451523 2.77205,-0.983725 6.5423,1.756785 z" class="shadow" id="path3252" sodipodi:nodetypes="ccc"/><path d="m 415.57013,138.34367 c 4.33424,-2.83585 8.46725,1.10257 16.32437,-3.88923 -8.00202,4.48396 -11.55736,0.31819 -16.32437,3.88923 z" class="shadow" id="path3232" sodipodi:nodetypes="ccc"/><path d="m 374.39025,194.40581 c -7.5496,4.35876 -14.05597,12.18841 -16.98547,15.11791 2.93435,-2.93435 11.90692,-12.18581 16.98547,-15.11791 z" class="shadow" id="path3232-3" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Arm_Right_High.tw b/src/art/vector_revamp/layers/Arm_Right_High.tw index 56e26f469762d3f044b70176fa85e72f02766072..3c9190fc6233e7b0301028a1dab7d81c312a8017 100644 --- a/src/art/vector_revamp/layers/Arm_Right_High.tw +++ b/src/art/vector_revamp/layers/Arm_Right_High.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Right_High [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccsccccccccccccccccccscsscc" id="path3267" d="m 259.39085,219.99261 c 0,0 -11.4994,-9.89625 -19.3512,-17.30477 -13.55495,-10.6354 -16.5421,-12.96229 -23.61491,-19.05855 -7.84581,-5.48263 -11.33539,-8.77242 -14.18124,-11.27461 -1.59426,-0.41862 -14.57996,-10.23511 -15.50675,-17.99531 -0.30105,-2.52075 7.13378,-13.12186 10.18104,-16.29746 10.0981,-12.66515 14.28981,-11.39852 26.56588,-18.49891 20.9156,-10.12621 37.2882,-17.70528 37.28061,-17.28893 1.94149,-0.87834 15.65824,-4.611687 14.74106,-3.976477 2.64756,-0.166485 9.27182,1.396148 9.11158,1.835007 15.92104,-4.527759 22.02179,-3.105036 29.56893,-2.843117 0.53511,0.818414 1.47862,0.628049 1.41733,3.025847 3.51257,1.2406 4.50117,3.47693 4.64203,6.36438 2.11132,1.72264 3.93959,3.50445 3.36111,6.55914 2.5318,1.96802 2.44818,4.26321 1.92693,6.80088 -0.30855,3.98719 -1.98153,6.77689 -4.21016,9.07522 -2.10065,0.1102 -4.15584,0.4605 -6.38828,0.70975 -0.0238,1.09284 -0.29881,2.0174 -0.90926,2.5303 -3.51244,4.3944 -6.24262,0.87047 -9.13633,-0.21053 -1.64333,0.0894 -4.13515,0.43539 -5.76534,-0.89566 -4.8078,-1.15706 -13.18021,-10.80666 -13.15481,-10.96256 -2.13384,0.12843 -4.26201,0.27444 -6.59247,-0.21243 -6.9898,0.45253 -14.36983,2.47734 -17.85002,2.73673 -11.11904,3.05074 -35.45572,28.98109 -46.09657,27.81755 -0.80241,-0.0877 0.70344,1.51406 1.18795,2.30615 8.10171,5.03261 22.54551,16.19148 35.37619,25.48062 6.28262,4.54849 12.39945,5.64348 16.97459,8.35665 1.99185,1.18121 7.93634,5.85615 7.93634,5.85615 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.94240636"/><path d="m 259.39085,219.99261 c 0,0 -11.09917,-10.27939 -19.3512,-17.30477 -12.8911,-10.97488 -15.50869,-12.98224 -22.86491,-18.93355 -7.35622,-5.95133 -12.41012,-9.56779 -15.40224,-11.92994 -0.51549,-0.40696 -14.10708,-9.74715 -14.99488,-17.28574 -0.36683,-3.11486 7.78548,-13.45707 10.63018,-17.00703 7.42929,-9.27118 14.77475,-11.67837 27.41038,-18.23375 17.64518,-9.15434 35.9461,-17.02376 35.9461,-17.02376 0,0 13.0177,-3.417078 14.74106,-3.976477 1.26304,0.05577 8.3248,1.548142 9.11158,1.835007 13.99391,-3.008292 21.8199,-2.945865 29.56893,-2.843117 0.50937,0.842338 1.19497,0.891556 1.41733,3.025847 3.39454,1.3705 4.22052,3.78576 4.64203,6.36438 2.02196,1.78044 3.41759,3.84218 3.36111,6.55914 2.26855,2.08814 2.03529,4.45164 1.92693,6.80088 -0.46156,3.85176 -2.32676,6.4713 -4.21016,9.07522 -2.14619,-0.002 -4.28171,0.14977 -6.38828,0.70975 -0.23338,0.93759 -0.43868,1.91379 -0.90926,2.5303 -3.70065,3.95156 -6.25201,0.84837 -9.13633,-0.21053 -1.58528,-0.13117 -4.04804,0.10436 -5.76534,-0.89566 -4.73466,-1.60596 -13.15481,-10.96256 -13.15481,-10.96256 l -6.59247,-0.21243 c -7.35428,-0.284 -11.09037,1.70346 -16.764,2.56724 l -1.67401,0.29449 c -12.76702,3.05181 -20.62907,14.16069 -31.02434,21.168 -4.3974,2.96423 -13.29629,8.8307 -13.29629,8.8307 0,0 18.92983,14.51195 35.0083,25.85293 6.67662,4.70936 13.08253,5.86673 17.21619,8.21637 1.41226,0.80275 8.86431,5.54352 8.86431,5.54352" id="path3269" sodipodi:nodetypes="csscssscccccccccccccccccccssc" class="skin arm"/><path d="m 314.8035,130.10722 c -4.91505,-2.78303 -4.69322,-5.15544 -5.10067,-6.66314 0.97688,2.53491 1.35543,2.94959 5.10067,6.66314 z" class="shadow" id="path3271" sodipodi:nodetypes="ccc"/><path d="m 309.82448,123.59658 c 4.27234,-1.20558 4.02571,-0.74304 5.73079,-0.32343 -1.60792,-0.16837 -1.40724,-0.30207 -5.73079,0.32343 z" class="shadow" id="path3273" sodipodi:nodetypes="ccc"/><path d="m 314.80546,130.07947 c -0.098,-3.36849 0.14746,-3.03453 0.87734,-5.19396 -0.55565,2.12164 -0.46563,2.39281 -0.87734,5.19396 z" class="shadow" id="path3275" sodipodi:nodetypes="ccc"/><path d="m 108.68863,19.303827 c -0.49935,0.469172 -0.74546,0.546712 -1.18095,0.97262 0.52753,-0.326257 0.6995,-0.321405 1.18095,-0.97262 z" class="shadow" id="path3277" sodipodi:nodetypes="ccc"/><path d="m 306.51108,126.0649 c 3.14298,-3.2066 6.51432,-6.47026 8.54253,-6.79894 -1.85694,0.84134 -5.34042,4.08708 -8.54253,6.79894 z" class="shadow" id="path3279" sodipodi:nodetypes="ccc"/><path d="m 315.55037,123.31458 c 1.95722,-0.61691 2.21018,-0.63947 4.2775,-0.5527 -1.99038,0.20488 -2.24788,0.19991 -4.2775,0.5527 z" class="shadow" id="path3281" sodipodi:nodetypes="ccc"/><path d="m 315.67213,124.90299 c 1.42546,1.47543 2.47702,1.89027 4.24668,2.50237 -2.20976,-0.25431 -2.91021,-0.81821 -4.24668,-2.50237 z" class="shadow" id="path3283" sodipodi:nodetypes="ccc"/><path d="m 317.19371,115.14694 c 3.28076,-3.02925 4.48915,-1.83384 6.46354,-1.93829 -1.98636,0.18987 -3.26143,-0.77356 -6.46354,1.93829 z" class="shadow" id="path3285" sodipodi:nodetypes="ccc"/><path d="m 314.22671,108.02799 c 3.60791,-2.53496 4.00354,-1.64608 6.07674,-1.33616 -2.01029,-0.14966 -2.54463,-0.84091 -6.07674,1.33616 z" class="shadow" id="path3287" sodipodi:nodetypes="ccc"/><path d="m 310.51892,101.21471 c 3.64838,-2.022538 3.05965,-0.97171 5.11639,-0.89543 -1.9732,0.17927 -1.52109,-0.977392 -5.11639,0.89543 z" class="shadow" id="path3289" sodipodi:nodetypes="ccc"/><path d="m 197.74447,147.63995 c 8.21562,0.67892 11.21099,4.73522 18.47445,5.31502 -5.31009,0.60942 -12.29205,-3.84289 -18.47445,-5.31502 z" class="shadow" id="path3291" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccsccccccccccccccccccscsscc" id="path3267" d="m 259.39085,219.99261 c 0,0 -11.4994,-9.89625 -19.3512,-17.30477 -13.55495,-10.6354 -16.5421,-12.96229 -23.61491,-19.05855 -7.84581,-5.48263 -11.33539,-8.77242 -14.18124,-11.27461 -1.59426,-0.41862 -14.57996,-10.23511 -15.50675,-17.99531 -0.30105,-2.52075 7.13378,-13.12186 10.18104,-16.29746 10.0981,-12.66515 14.28981,-11.39852 26.56588,-18.49891 20.9156,-10.12621 37.2882,-17.70528 37.28061,-17.28893 1.94149,-0.87834 15.65824,-4.611687 14.74106,-3.976477 2.64756,-0.166485 9.27182,1.396148 9.11158,1.835007 15.92104,-4.527759 22.02179,-3.105036 29.56893,-2.843117 0.53511,0.818414 1.47862,0.628049 1.41733,3.025847 3.51257,1.2406 4.50117,3.47693 4.64203,6.36438 2.11132,1.72264 3.93959,3.50445 3.36111,6.55914 2.5318,1.96802 2.44818,4.26321 1.92693,6.80088 -0.30855,3.98719 -1.98153,6.77689 -4.21016,9.07522 -2.10065,0.1102 -4.15584,0.4605 -6.38828,0.70975 -0.0238,1.09284 -0.29881,2.0174 -0.90926,2.5303 -3.51244,4.3944 -6.24262,0.87047 -9.13633,-0.21053 -1.64333,0.0894 -4.13515,0.43539 -5.76534,-0.89566 -4.8078,-1.15706 -13.18021,-10.80666 -13.15481,-10.96256 -2.13384,0.12843 -4.26201,0.27444 -6.59247,-0.21243 -6.9898,0.45253 -14.36983,2.47734 -17.85002,2.73673 -11.11904,3.05074 -35.45572,28.98109 -46.09657,27.81755 -0.80241,-0.0877 0.70344,1.51406 1.18795,2.30615 8.10171,5.03261 22.54551,16.19148 35.37619,25.48062 6.28262,4.54849 12.39945,5.64348 16.97459,8.35665 1.99185,1.18121 7.93634,5.85615 7.93634,5.85615 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.94240636"/><path d="m 259.39085,219.99261 c 0,0 -11.09917,-10.27939 -19.3512,-17.30477 -12.8911,-10.97488 -15.50869,-12.98224 -22.86491,-18.93355 -7.35622,-5.95133 -12.41012,-9.56779 -15.40224,-11.92994 -0.51549,-0.40696 -14.10708,-9.74715 -14.99488,-17.28574 -0.36683,-3.11486 7.78548,-13.45707 10.63018,-17.00703 7.42929,-9.27118 14.77475,-11.67837 27.41038,-18.23375 17.64518,-9.15434 35.9461,-17.02376 35.9461,-17.02376 0,0 13.0177,-3.417078 14.74106,-3.976477 1.26304,0.05577 8.3248,1.548142 9.11158,1.835007 13.99391,-3.008292 21.8199,-2.945865 29.56893,-2.843117 0.50937,0.842338 1.19497,0.891556 1.41733,3.025847 3.39454,1.3705 4.22052,3.78576 4.64203,6.36438 2.02196,1.78044 3.41759,3.84218 3.36111,6.55914 2.26855,2.08814 2.03529,4.45164 1.92693,6.80088 -0.46156,3.85176 -2.32676,6.4713 -4.21016,9.07522 -2.14619,-0.002 -4.28171,0.14977 -6.38828,0.70975 -0.23338,0.93759 -0.43868,1.91379 -0.90926,2.5303 -3.70065,3.95156 -6.25201,0.84837 -9.13633,-0.21053 -1.58528,-0.13117 -4.04804,0.10436 -5.76534,-0.89566 -4.73466,-1.60596 -13.15481,-10.96256 -13.15481,-10.96256 l -6.59247,-0.21243 c -7.35428,-0.284 -11.09037,1.70346 -16.764,2.56724 l -1.67401,0.29449 c -12.76702,3.05181 -20.62907,14.16069 -31.02434,21.168 -4.3974,2.96423 -13.29629,8.8307 -13.29629,8.8307 0,0 20.43423,16.49245 31.69374,23.15708 5.38017,3.18458 11.66317,4.67429 16.98633,7.95327 2.97349,1.83162 8.23627,6.47548 8.23627,6.47548" id="path3269" sodipodi:nodetypes="csscssscccccccccccccccccccaac" class="skin arm"/><path d="m 314.8035,130.10722 c -4.91505,-2.78303 -4.69322,-5.15544 -5.10067,-6.66314 0.97688,2.53491 1.35543,2.94959 5.10067,6.66314 z" class="shadow" id="path3271" sodipodi:nodetypes="ccc"/><path d="m 309.82448,123.59658 c 4.27234,-1.20558 4.02571,-0.74304 5.73079,-0.32343 -1.60792,-0.16837 -1.40724,-0.30207 -5.73079,0.32343 z" class="shadow" id="path3273" sodipodi:nodetypes="ccc"/><path d="m 314.80546,130.07947 c -0.098,-3.36849 0.14746,-3.03453 0.87734,-5.19396 -0.55565,2.12164 -0.46563,2.39281 -0.87734,5.19396 z" class="shadow" id="path3275" sodipodi:nodetypes="ccc"/><path d="m 108.68863,19.303827 c -0.49935,0.469172 -0.74546,0.546712 -1.18095,0.97262 0.52753,-0.326257 0.6995,-0.321405 1.18095,-0.97262 z" class="shadow" id="path3277" sodipodi:nodetypes="ccc"/><path d="m 306.51108,126.0649 c 3.14298,-3.2066 6.51432,-6.47026 8.54253,-6.79894 -1.85694,0.84134 -5.34042,4.08708 -8.54253,6.79894 z" class="shadow" id="path3279" sodipodi:nodetypes="ccc"/><path d="m 315.55037,123.31458 c 1.95722,-0.61691 2.21018,-0.63947 4.2775,-0.5527 -1.99038,0.20488 -2.24788,0.19991 -4.2775,0.5527 z" class="shadow" id="path3281" sodipodi:nodetypes="ccc"/><path d="m 315.67213,124.90299 c 1.42546,1.47543 2.47702,1.89027 4.24668,2.50237 -2.20976,-0.25431 -2.91021,-0.81821 -4.24668,-2.50237 z" class="shadow" id="path3283" sodipodi:nodetypes="ccc"/><path d="m 317.19371,115.14694 c 3.28076,-3.02925 4.48915,-1.83384 6.46354,-1.93829 -1.98636,0.18987 -3.26143,-0.77356 -6.46354,1.93829 z" class="shadow" id="path3285" sodipodi:nodetypes="ccc"/><path d="m 314.22671,108.02799 c 3.60791,-2.53496 4.00354,-1.64608 6.07674,-1.33616 -2.01029,-0.14966 -2.54463,-0.84091 -6.07674,1.33616 z" class="shadow" id="path3287" sodipodi:nodetypes="ccc"/><path d="m 310.51892,101.21471 c 3.64838,-2.022538 3.05965,-0.97171 5.11639,-0.89543 -1.9732,0.17927 -1.52109,-0.977392 -5.11639,0.89543 z" class="shadow" id="path3289" sodipodi:nodetypes="ccc"/><path d="m 197.74447,147.63995 c 8.21562,0.67892 11.21099,4.73522 18.47445,5.31502 -5.31009,0.60942 -12.29205,-3.84289 -18.47445,-5.31502 z" class="shadow" id="path3291" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Arm_Stump.tw b/src/art/vector_revamp/layers/Arm_Stump.tw index 01254792de09da3a7a01a1ce795b4a4f84401f5b..f6136a28189b326d3e108dad4f8a322062f404c5 100644 --- a/src/art/vector_revamp/layers/Arm_Stump.tw +++ b/src/art/vector_revamp/layers/Arm_Stump.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Stump [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="scsas" id="path1420" d="m 358.5887,178.95455 c 14.62279,-1.68069 26.43944,8.01522 27.2351,21.9566 -0.56595,12.09082 -14.60862,20.72368 -26.56495,23.43702 -7.62636,1.73071 -15.19855,5.71989 -18.80847,0.59021 -9.48283,-13.47506 1.76879,-44.10237 18.13832,-45.98383 z" class="shadow"/><path class="skin arm" d="m 358.5887,178.95455 c 11.27433,-2.97859 26.97612,10.29832 27.2351,21.9566 0.26225,11.80571 -15.58625,19.08828 -26.56495,23.43702 -5.83173,2.31 -15.19855,5.71989 -18.80847,0.59021 -9.48283,-13.47506 2.20761,-41.77507 18.13832,-45.98383 z" id="path62-3" sodipodi:nodetypes="aaaaa"/><path sodipodi:nodetypes="ccccc" id="path1429" d="m 266.62049,190.96644 c 14.7851,-4.44494 28.94581,4.9963 30.24031,16.38814 1.33327,11.7331 -14.82389,22.17579 -26.56495,23.43702 -7.77555,0.83525 -18.48928,-3.87003 -20.48786,-11.43061 -2.96217,-11.75747 1.80873,-22.72825 16.8125,-28.39455 z" class="shadow"/><path class="skin arm" d="m 266.62049,190.96644 c 11.05043,-3.05578 28.94581,4.9963 30.24031,16.38814 1.33327,11.7331 -14.82389,22.17579 -26.56495,23.43702 -7.77555,0.83525 -18.44985,-3.88056 -20.48786,-11.43061 -2.86655,-10.61946 6.21083,-25.46287 16.8125,-28.39455 z" id="path62-3-9" sodipodi:nodetypes="aaaaa"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccccc" id="path2735" d="m 358.5887,178.95455 c 11.59151,-3.04656 27.91436,10.04694 27.2351,21.9566 0.50082,10.83419 -11.72906,18.24361 -23.26882,22.09442 -0.60666,0.46821 -1.40053,13.57923 -1.6395,13.54509 0,0 -17.85326,-4.21656 -20.4651,-11.61228 -5.48693,-15.53689 2.20761,-41.77507 18.13832,-45.98383 z" class="shadow"/><path class="skin arm" d="m 358.5887,178.95455 c 11.27433,-2.97859 26.97612,10.29832 27.2351,21.9566 0.23694,10.66626 -12.67703,17.64036 -23.26882,22.09442 -1.1315,0.47581 -1.6395,13.54509 -1.6395,13.54509 0,0 -17.85326,-4.21656 -20.4651,-11.61228 -5.48693,-15.53689 2.20761,-41.77507 18.13832,-45.98383 z" id="path62-3" sodipodi:nodetypes="asscaa"/><path sodipodi:nodetypes="ccccc" id="path1429" d="m 266.62049,190.96644 c 14.7851,-4.44494 28.94581,4.9963 30.24031,16.38814 1.33327,11.7331 -14.82389,22.17579 -26.56495,23.43702 -7.77555,0.83525 -18.48928,-3.87003 -20.48786,-11.43061 -2.96217,-11.75747 1.80873,-22.72825 16.8125,-28.39455 z" class="shadow"/><path class="skin arm" d="m 266.62049,190.96644 c 11.05043,-3.05578 28.94581,4.9963 30.24031,16.38814 1.33327,11.7331 -14.82389,22.17579 -26.56495,23.43702 -7.77555,0.83525 -18.44985,-3.88056 -20.48786,-11.43061 -2.86655,-10.61946 6.21083,-25.46287 16.8125,-28.39455 z" id="path62-3-9" sodipodi:nodetypes="aaaaa"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Arm_Up_Hair_Bushy.tw b/src/art/vector_revamp/layers/Arm_Up_Hair_Bushy.tw index e42001566af398d69e2195879f7c10107b06a50a..c939b0338365c6f9f6b1b869c26ee01d75f012d9 100644 --- a/src/art/vector_revamp/layers/Arm_Up_Hair_Bushy.tw +++ b/src/art/vector_revamp/layers/Arm_Up_Hair_Bushy.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Up_Hair_Bushy [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 360.53365,236.48083 c -0.55578,0.2551 1.01548,-0.63209 3.04941,3.3643 -0.97228,-3.1532 -2.70812,-4.02467 -1.94925,-6.16278 1.53423,0.28812 5.80123,-1.42335 5.33972,3.17441 0.98363,-3.5058 -3.07079,-4.82298 -4.92575,-6.88832 0.18244,1.45667 11.2297,-1.04275 6.84876,5.20608 5.3105,-5.44303 -2.41392,-7.14507 -3.39202,-9.43961 -0.45356,1.56568 -1.45066,-1.04783 4.80075,-0.24689 -3.46772,-0.44603 -8.11396,-3.23134 -7.33132,-5.42448 2.51841,0.0603 4.53675,2.08298 3.54725,3.90196 1.08804,-2.44307 -0.41883,-4.58012 -2.50244,-6.5782 0.56364,1.26579 4.18828,2.35147 3.56874,-0.98917 0.24672,1.8905 -2.15515,1.74514 -2.17213,-0.88218 2.16264,-1.07417 3.58587,0.37498 2.70189,1.87578 1.89339,-3.4784 -1.34178,-3.52056 -1.98242,-4.08425 0.51967,-0.0851 0.6538,-0.44246 0.82158,-0.77605 1.2738,1.58522 4.59918,1.41997 4.62772,1.37618 -1.75593,-0.63763 -4.09192,-1.77678 -3.206,-2.73539 0,0 -0.30162,-0.93139 0.47217,-1.6882 -1.17562,0.12647 -1.50552,0.39685 -2.29732,1.39659 0.43889,-0.74403 0.22952,-1.36458 0.27651,-2.03396 -0.19789,1.53736 -0.94588,2.69608 -2.74427,3.1318 0.29183,-1.13068 -0.21459,-1.42216 -0.71523,-1.71972 0.596,1.32079 -0.14863,1.44588 -1.07278,1.41086 -0.87655,-1.71928 0.22738,-2.55256 0.83323,-3.60866 -1.93061,0.6298 -3.38367,1.69073 -3.81887,3.67055 -0.70564,-0.81459 -0.56273,-1.73524 -0.459,-2.651 -0.65736,0.85385 -1.14327,1.8183 -1.15811,3.08668 l 1.88893,15.25586 c 0,0 1.15763,7.50544 0.95025,9.05781 z" class="armpit_hair" id="path3321" sodipodi:nodetypes="cccccccccccccccccccccccccccccc"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 354.20431,225.28332 c -0.61112,0.0223 1.18028,-0.1941 1.52525,4.27681 0.31193,-3.28492 -0.95671,-4.75569 0.56442,-6.43901 1.30627,0.85471 5.90336,0.91135 3.71313,4.98017 2.25343,-2.86011 -0.98533,-5.63205 -1.90592,-8.25103 -0.39041,1.41519 10.77036,3.34558 4.32719,7.43534 8.5248,-4.57088 -5.60608,-14.3046 5.01736,-8.4047 -3.0312,-1.74236 -3.14502,-4.92117 -0.87788,-5.45267 1.31482,2.14877 0.7096,4.94138 -1.3553,5.0962 2.64273,-0.41036 3.62136,-2.83526 4.1705,-5.66937 -0.75797,1.1599 0.29507,4.79417 2.76613,2.46231 -1.45473,1.23233 -2.63489,-0.86465 -0.43645,-2.30346 2.07516,1.23475 1.62919,3.21634 -0.11115,3.28731 3.94931,-0.29507 2.23064,-3.03628 2.35691,-3.88021 0.67358,1.25061 0.49749,1.49403 1.53676,2.24415 -1.02483,-1.3448 0.3076,-2.81529 0.72915,-3.20865 0.86312,-0.0346 1.27103,-0.54702 1.85896,-0.87047 -0.6731,0.32102 -1.5432,-0.54456 -2.31305,-1.72962 -0.2374,-0.36546 0.98951,-1.49356 1.11803,-2.66756 -0.68914,1.5688 -2.21073,0.66309 -2.37984,0.26276 -0.23543,-0.55727 -0.41307,-1.06893 -0.50614,-1.45692 1.13002,0.29438 1.42264,-0.21138 1.72133,-0.71135 -1.32214,0.59302 -1.44554,-0.15189 -1.40844,-1.07596 1.72125,-0.87267 2.55204,0.23313 3.60677,0.84136 -0.62544,-1.93202 -1.6831,-3.38747 -3.66192,-3.82713 0.81617,-0.7038 1.73649,-0.55881 2.65202,-0.45302 -0.85236,-0.65929 -1.81572,-1.14737 -3.08406,-1.16507 -3.6659,0.85993 -12.95933,3.61857 -17.02603,17.95061 0,0 -1.8106,7.37519 -2.59771,8.72919 z" class="armpit_hair" id="path3321" sodipodi:nodetypes="cccccccccccccccccscscccccccccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Arm_Up_Hair_Neat.tw b/src/art/vector_revamp/layers/Arm_Up_Hair_Neat.tw index 541e8092eb7c64205bc3ec428bd2efcaf5ddfb3f..6146ba7440beb2f766d6e9dcfa9cf0434ce51874 100644 --- a/src/art/vector_revamp/layers/Arm_Up_Hair_Neat.tw +++ b/src/art/vector_revamp/layers/Arm_Up_Hair_Neat.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Arm_Up_Hair_Neat [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 361.07872,235.74368 c -0.94878,-8.80737 -2.85473,-24.59569 2.37908,-28.8536 2.1627,9.19615 -2.2466,10.90217 -2.37908,28.8536 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 353.82758,228.26371 c 2.63427,-8.3205 2.8094,-19.55701 13.30247,-25.45963 -2.25337,1.88046 -2.3103,2.56478 -2.3103,2.56478 0,0 3.92159,-2.74342 6.0617,-3.75361 -2.13734,1.00888 -7.90174,6.73287 -7.90174,6.73287 0,0 5.25855,-3.57777 7.96714,-4.85629 -2.65821,1.36333 -7.78621,6.57323 -7.78621,6.57323 0,0 5.96459,-4.60503 10.05437,-5.34594 -4.10883,0.74436 -10.03306,6.87998 -10.03306,6.87998 0,0 6.35061,-4.58166 9.43389,-4.32646 -3.08434,-0.25529 -10.12328,6.20939 -10.12328,6.20939 0,0 6.98773,-5.58977 9.97576,-4.51804 -2.94589,-1.05661 -10.71107,6.34907 -10.71107,6.34907 0,0 6.61595,-4.68536 9.63061,-3.60408 -3.02656,-1.08555 -10.21842,5.09377 -10.21842,5.09377 0,0 0.60053,-0.37366 1.37241,-0.41639 -4.47366,3.77416 -4.63821,6.81245 -8.71427,11.87735 z" class="armpit_hair" id="XMLID_590_-04-8-9-4-9" sodipodi:nodetypes="ccccccccccccccccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob.tw b/src/art/vector_revamp/layers/Boob.tw deleted file mode 100644 index 8ec7f37f7feb55820863cae599ad34384af9ade0..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g1065"><path d="m 270.34578,196.55707 c -12.11058,4.47607 -21.33353,10.38476 -27.42519,17.04587 -12.80622,2.09756 -20.32972,7.4459 -28.75481,12.23956 -3.26563,12.08634 -5.14611,24.17711 3.20444,36.14887 5.15461,10.33009 14.73224,11.95658 25.07247,9.77599" id="path1520" class="shadow"/><path d="m 242.44269,271.76736 c 12.30515,-2.59845 22.51491,-12.16054 31.77186,-26.40779 l -3.86877,-48.8025" id="path1515" class="shadow boob_inner_lower_shadow"/><path d="m 274.21455,245.35957 c 2.55546,-15.31136 11.88781,-30.84621 8.29579,-40.31411 -1.93843,-3.02612 -7.62333,-5.27685 -12.16456,-8.48839" id="path1056" class="shadow boob_inner_upper_shadow"/><path d="m 270.34578,196.55707 c -10.88689,5.21029 -20.86401,10.66647 -27.42519,17.04587 -11.65071,2.84039 -19.91205,7.7144 -28.75481,12.23956 -2.67807,12.04962 -3.90036,24.09925 3.20444,36.14887 6.4429,9.38534 15.09934,11.68738 25.07247,9.77599 11.51523,-3.31656 22.0236,-12.60719 31.77186,-26.40779 0.22345,-1.05729 4.92073,-9.04451 4.92073,-9.04451 0,0 -0.41676,-3.88071 1.50778,-14.12355 1.3857,-6.23043 2.34993,-12.6411 1.86728,-17.14605 -0.96883,-4.15211 -3.23773,-9.62848 -12.16456,-8.48839 z" class="skin boob" id="XMLID_588_" sodipodi:nodetypes="cccccccccc"/></g><g transform="'+_art_transform+'"id="g1069"><path d="m 279.17149,241.98615 c 6.27955,31.26499 54.26517,32.7166 68.84808,6.56488" id="path1518" class="shadow boob_inner_lower_shadow"/><path d="m 348.02257,248.51893 c 8.65355,-12.30579 11.43144,-30.88254 -0.97284,-43.4189 l -67.88132,36.91816" id="path1524" class="shadow"/><path d="m 347.04977,205.10006 c -14.67089,-12.96908 -28.30339,-7.92276 -38.99561,-8.00176 -24.21445,12.16832 -31.98806,25.58323 -28.88571,44.91992" id="path1050" class="shadow boob_inner_upper_shadow"/><path sodipodi:nodetypes="csccc" id="path1042" class="skin boob" d="m 348.02261,248.51896 c 7.65465,-13.28462 11.02267,-29.82946 -0.97284,-43.4189 -13.16154,-14.9104 -25.83696,-10.05 -38.46528,-8.66467 -23.32793,11.82921 -31.64375,27.39415 -29.41604,45.58283 9.02747,30.88382 54.47239,31.60541 68.85416,6.50074 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Areola.tw b/src/art/vector_revamp/layers/Boob_Areola.tw deleted file mode 100644 index ee04e34ee13938b4b98dde5484ff2e64da4b009c..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Areola.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Areola [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g1027" transform="matrix(1.0036748,0,0,1.0036748,-0.82340761,-0.81073623)"><path id="XMLID_592_" class="areola" d="m 224.06836,220.86839 c 0,0 -0.39131,3.31112 -2.35082,6.67438 -1.9595,3.36326 -9.06529,7.55149 -9.06529,7.55149 0,0 -0.24448,-6.64388 0.46015,-8.06326 0.70464,-1.41938 1.13831,-2.19079 3.06684,-3.56226 2.42539,-1.72481 7.88912,-2.60035 7.88912,-2.60035 z" sodipodi:nodetypes="czczsc"/><path id="path3138" class="shadow" d="m 213.5671,226.66466 c 0,0 -1.9262,-1.30979 -1.44901,-2.97247 0.72632,-2.03671 3.90583,-3.99822 5.40947,-2.60058 0.64103,0.66345 0.91915,1.64032 0.91915,1.64032 -0.84654,2.52287 -2.28501,3.51024 -4.87961,3.93273 z" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="ccccc" d="m 213.5671,226.66466 c 0,0 -1.91057,-1.4426 -1.44901,-2.97247 0.64038,-1.86093 4.03474,-3.95134 5.40947,-2.60058 0.55119,0.59704 0.91915,1.64032 0.91915,1.64032 -0.80357,2.35099 -2.35142,3.51024 -4.87961,3.93273 z" class="areola" id="XMLID_592_-5"/><path id="path3138-3" class="shadow" d="m 213.01263,222.46595 c 0.75085,-0.36944 1.35215,-0.13684 2.65343,0.43025 -1.21381,-0.3264 -1.67129,-0.78189 -2.65343,-0.43025 z" sodipodi:nodetypes="ccc"/><path id="path3138-3-7" class="shadow" d="m 214.0315,222.35507 c 0.054,-0.31278 0.30778,-0.85942 1.02206,-0.7758 -0.84623,0.0699 -0.82527,0.44046 -1.02206,0.7758 z" sodipodi:nodetypes="ccc"/><path id="path3138-3-7-4" class="shadow" d="m 214.73116,227.20469 c 2.09105,-0.65605 3.58115,-2.24941 3.44394,-3.80315 0.0522,0.95271 -0.13777,2.92874 -3.44394,3.80315 z" sodipodi:nodetypes="ccc"/></g><g transform="'+_art_transform+'"id="g1036" transform="matrix(1.0212835,0,0,1.0212835,-6.4679552,-4.3556102)"><path id="XMLID_593_" d="m 314.17289,222.1657 c -5.09999,-0.56255 -10.25389,-4.32121 -10.27808,-7.69008 -0.0309,-4.29936 6.47452,-8.78659 12.1893,-8.53652 5.37398,0.23516 10.98206,3.74015 9.88043,8.95113 -1.10163,5.21098 -5.6937,7.9481 -11.79165,7.27547 z" class="areola" sodipodi:nodetypes="sssss"/><path id="path989" d="m 310.66882,210.47597 c -0.72765,-0.9361 -0.60753,-2.39965 -0.40684,-3.08293 0.48386,-1.83702 2.61601,-2.7715 4.4734,-2.74561 1.62871,0.0227 2.55147,0.26096 3.28224,1.71217 0.79333,0.61754 0.84585,1.67252 0.80454,1.72014 -0.21669,1.5267 -1.22761,3.71824 -4.19389,3.59586 -2.37989,0.11991 -3.19283,-0.0317 -3.95945,-1.19963 z" class="shadow" sodipodi:nodetypes="ccscccc"/><path sodipodi:nodetypes="csscccc" class="areola" d="m 310.66882,210.47597 c -0.49696,-0.95917 -0.60188,-2.41088 -0.40684,-3.08293 0.51036,-1.75854 2.81349,-2.72569 4.4734,-2.74561 1.63641,-0.0196 2.56087,0.48653 3.28224,1.71217 0.66484,0.73435 0.82922,1.68764 0.80454,1.72014 -0.28461,1.4286 -1.29226,3.62486 -4.19389,3.59586 -2.24349,0.003 -3.12877,-0.0866 -3.95945,-1.19963 z" id="XMLID_593_-8"/><path id="path3990-3" d="m 311.71553,206.60898 c 1.5946,-0.62 3.11448,0.2184 4.10335,1.04883 -1.18741,-0.57935 -2.70593,-1.37335 -4.10335,-1.04883 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 313.5577,206.59854 c 0.90959,-0.79125 1.45758,-1.00189 2.8221,-0.87304 -1.2758,0.0449 -1.85557,0.27784 -2.8221,0.87304 z" id="path3990-3-1"/><path id="path3990-3-0" d="m 311.13963,210.57541 c 7.68349,1.59713 7.01758,-3.72676 6.8783,-4.2566 0.46399,3.23262 -1.47339,5.97095 -6.8783,4.2566 z" class="shadow" sodipodi:nodetypes="ccc"/><path id="path3138-3-7-4-8" class="shadow" d="m 312.99355,212.30782 c 4.05401,-0.41435 5.26872,-1.30083 5.69395,-3.68596 -0.0494,2.76521 -2.25496,3.48343 -5.69395,3.68596 z" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Areola_Piercing.tw b/src/art/vector_revamp/layers/Boob_Areola_Piercing.tw deleted file mode 100644 index cc9f28014a738e903febb945f5995e284219a850..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Areola_Piercing.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Areola_Piercing [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g1412" transform="matrix(1.0263785,0,0,1.0263785,-8.6733354,-5.3910578)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g transform="'+_art_transform+'"id="g1417" transform="matrix(1.0228023,0,0,1.0228023,-5.1326497,-5.0109358)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g transform="'+_art_transform+'"id="g3985" transform="matrix(1,0,0,0.99446198,0,1.3046736)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path class="shadow" sodipodi:nodetypes="accaa" id="path5169" d="m 320.11944,205.11636 c -5e-5,0.72098 -0.77245,1.52498 -1.52538,1.52498 -0.5209,-0.31798 -0.53158,-1.16226 -1.57142,-1.64877 0,-0.75293 0.80074,-1.47651 1.4996,-1.47341 0.75084,0.003 1.59725,0.84217 1.5972,1.5972 z"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5171" d="m 314.10532,222.82749 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 319.97541,205.11636 c 0,0.68447 -0.76752,1.452 -1.452,1.452 -0.47354,-0.28907 -0.48325,-1.0566 -1.42856,-1.49888 0,-0.68448 0.76064,-1.40789 1.42856,-1.40512 0.68448,0.003 1.452,0.76752 1.452,1.452 z" id="path2749-8-39" sodipodi:nodetypes="accaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5173" d="m 225.29267,220.63292 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 313.96012,222.82749 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-42" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5175" d="m 214.29267,234.13292 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 225.14747,220.63292 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-40" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 214.14747,234.13292 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-2" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Areola_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Areola_Piercing_Heavy.tw deleted file mode 100644 index a81c2a1c12e50f0ca5958db1389eeffdd7c773ea..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Areola_Piercing_Heavy.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Areola_Piercing_Heavy [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g3979" transform="matrix(1,0,0,0.99598748,0,0.91583618)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path d="m 323.72007,212.66938 c 0,0 -0.14021,-4.48814 1.43,-5.61 1.85573,-1.32586 5.3301,-1.17681 6.82,0.55 1.44035,1.66939 0.96976,4.90469 -0.44,6.6 -1.13722,1.36756 -5.17,1.32 -5.17,1.32 0,0 3.53555,-0.87174 4.29,-2.31 0.61694,-1.17613 0.48099,-3.0031 -0.44,-3.96 -1.02846,-1.06855 -3.08027,-1.33662 -4.4,-0.66 -1.35712,0.69579 -2.09,4.07 -2.09,4.07 z" class="shadow" id="path5163" sodipodi:nodetypes="caaacaaac"/><path d="m 306.87368,212.28604 c 0,0 0.14021,-4.48814 -1.43,-5.61 -1.85573,-1.32586 -5.3301,-1.17681 -6.82,0.55 -1.44035,1.66939 -0.96976,4.90469 0.44,6.6 1.13722,1.36756 5.17,1.32 5.17,1.32 0,0 -3.53555,-0.87174 -4.29,-2.31 -0.61694,-1.17613 -0.48099,-3.0031 0.44,-3.96 1.02846,-1.06855 3.08027,-1.33662 4.4,-0.66 1.35712,0.69579 2.09,4.07 2.09,4.07 z" class="shadow" id="path5165" sodipodi:nodetypes="caaacaaac"/><path d="m 218.55457,226.88776 c 0,0 0.60718,-2.30763 1.54375,-2.84091 2.13422,-1.21521 5.78808,-1.60634 7.36253,0.27852 0.7214,0.86362 0.32939,2.55535 -0.475,3.34226 -1.33939,1.31028 -5.58127,0.66845 -5.58127,0.66845 0,0 3.80528,0.19144 4.63127,-1.1698 0.35636,-0.58727 0.0485,-1.56058 -0.47501,-2.00535 -1.20965,-1.02766 -3.25098,-0.85604 -4.75002,-0.33422 -0.96201,0.33488 -2.25625,2.06105 -2.25625,2.06105 z" class="shadow" id="path5167" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4" class="steel_piercing" d="m 324.13472,212.50417 c 0,0 -0.12746,-4.08013 1.3,-5.1 1.68703,-1.20533 4.84555,-1.06983 6.2,0.5 1.30941,1.51763 0.8816,4.45881 -0.4,6 -1.03383,1.24324 -4.7,1.2 -4.7,1.2 0,0 3.21414,-0.79249 3.9,-2.1 0.56086,-1.06921 0.43727,-2.73009 -0.4,-3.6 -0.93496,-0.97141 -2.80024,-1.21511 -4,-0.6 -1.23374,0.63254 -1.9,3.7 -1.9,3.7 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-7" class="steel_piercing" d="m 306.45903,212.12083 c 0,0 0.12746,-4.08013 -1.3,-5.1 -1.68703,-1.20533 -4.84555,-1.06983 -6.2,0.5 -1.30941,1.51763 -0.8816,4.45881 0.4,6 1.03383,1.24324 4.7,1.2 4.7,1.2 0,0 -3.21414,-0.79249 -3.9,-2.1 -0.56086,-1.06921 -0.43727,-2.73009 0.4,-3.6 0.93496,-0.97141 2.80024,-1.21511 4,-0.6 1.23374,0.63254 1.9,3.7 1.9,3.7 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-3" class="steel_piercing" d="m 218.97663,226.78508 c 0,0 0.55198,-2.09785 1.40341,-2.58265 1.9402,-1.10474 5.26189,-1.46031 6.69321,0.2532 0.65582,0.78511 0.29944,2.32305 -0.43182,3.03842 -1.21763,1.19116 -5.07388,0.60768 -5.07388,0.60768 0,0 3.45934,0.17404 4.21024,-1.06345 0.32397,-0.53389 0.0441,-1.41871 -0.43182,-1.82305 -1.09969,-0.93424 -2.95544,-0.77822 -4.3182,-0.30384 -0.87456,0.30444 -2.05114,1.87369 -2.05114,1.87369 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Areola_Piercing_NoBoob.tw b/src/art/vector_revamp/layers/Boob_Areola_Piercing_NoBoob.tw deleted file mode 100644 index 379f4fcabb92d4bd92e7f8282d8aa6754ab0a580..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Areola_Piercing_NoBoob.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Areola_Piercing_NoBoob [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g3997" transform="matrix(1,0,0,1.0288842,0,-7.1288108)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5146" d="m 249.37141,236.16209 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 249.22621,236.16209 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5148" d="m 248.77479,245.35448 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 248.62959,245.35448 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-5" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5150" d="m 315.53009,232.95802 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 315.38489,232.95802 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-76" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5152" d="m 314.20427,242.60621 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 314.05907,242.60621 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-4" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Areola_Piercing_NoBoob_Heavy.tw b/src/art/vector_revamp/layers/Boob_Areola_Piercing_NoBoob_Heavy.tw deleted file mode 100644 index 8e7c4440db9a2e4c694addec4e26781e08887522..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Areola_Piercing_NoBoob_Heavy.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Areola_Piercing_NoBoob_Heavy [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"transform="matrix(1.0049807,0,0,1.0049807,-1.6578337,-0.99661844)" id="g1669" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g transform="'+_art_transform+'"transform="matrix(1.0106254,0,0,1.0106254,-2.44532,-2.2864495)" id="g1677" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g transform="'+_art_transform+'"id="g3991" transform="matrix(1,0,0,1.0072234,0,-1.7672168)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path d="m 316.39389,239.90478 c 0,0 3.2247,3.12482 5.1113,2.71879 2.22965,-0.47988 4.45815,-3.14958 4.18403,-5.41376 -0.265,-2.18891 -2.97434,-4.01868 -5.17703,-4.1173 -1.77684,-0.0795 -4.45626,2.93478 -4.45626,2.93478 0,0 3.02457,-2.02781 4.59604,-1.6176 1.28507,0.33544 2.54463,1.66577 2.63232,2.991 0.0979,1.47984 -1.08496,3.17766 -2.4737,3.69817 -1.42807,0.53526 -4.4167,-1.19408 -4.4167,-1.19408 z" class="shadow" id="path5154" sodipodi:nodetypes="caaacaaac"/><path d="m 309.09912,239.33692 c 0,0 -3.63548,2.6356 -5.44536,1.96596 -2.13901,-0.79141 -3.96612,-3.75032 -3.37348,-5.95269 0.57293,-2.12915 3.51451,-3.55595 5.7089,-3.34101 1.77014,0.17338 3.99471,3.53744 3.99471,3.53744 0,0 -2.70621,-2.43649 -4.31999,-2.25342 -1.31966,0.1497 -2.75526,1.28782 -3.03012,2.5872 -0.30692,1.45096 0.62309,3.29946 1.9239,4.01176 1.33767,0.73248 4.54144,-0.55524 4.54144,-0.55524 z" class="shadow" id="path5156" sodipodi:nodetypes="caaacaaac"/><path d="m 250.11413,242.34048 c 0,0 2.50391,3.06938 4.10816,2.71878 2.07541,-0.45357 3.61174,-3.30398 3.36288,-5.41376 -0.22858,-1.9378 -2.21189,-4.02594 -4.161,-4.1173 -1.5418,-0.0723 -3.58167,2.93479 -3.58167,2.93479 0,0 2.39892,-1.97771 3.69402,-1.61761 1.17658,0.32716 2.04104,1.77207 2.1157,2.991 0.0856,1.39697 -0.68667,3.18357 -1.98821,3.69817 -1.161,0.45903 -3.54988,-1.19407 -3.54988,-1.19407 z" class="shadow" id="path5159" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6" class="steel_piercing" d="m 316.80209,239.7203 c 0,0 2.93154,2.84074 4.64663,2.47162 2.02696,-0.43625 4.05287,-2.86325 3.80367,-4.9216 -0.24091,-1.98991 -2.70395,-3.65334 -4.70639,-3.743 -1.61531,-0.0723 -4.05115,2.66799 -4.05115,2.66799 0,0 2.74961,-1.84347 4.17822,-1.47055 1.16824,0.30495 2.3133,1.51434 2.39302,2.71909 0.089,1.34531 -0.98633,2.88878 -2.24882,3.36197 -1.29825,0.4866 -4.01518,-1.08552 -4.01518,-1.08552 z"/><path d="m 244.44613,241.71183 c 0,0 -2.00072,2.39045 -3.16913,1.96596 -1.96379,-0.71346 -2.44375,-3.91931 -1.96331,-5.95269 0.36115,-1.52853 1.75982,-3.49874 3.32249,-3.34101 1.40388,0.1417 2.32487,3.53744 2.32487,3.53744 0,0 -1.39697,-2.38913 -2.51418,-2.25342 -1.03607,0.12585 -1.59405,1.55735 -1.76347,2.5872 -0.22538,1.36995 -0.067,3.29109 1.11967,4.01176 0.76947,0.4673 2.64306,-0.55524 2.64306,-0.55524 z" class="shadow" id="path5161" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4" class="steel_piercing" d="m 308.73334,239.09718 c 0,0 -3.30498,2.396 -4.95033,1.78724 -1.94455,-0.71946 -3.60556,-3.40938 -3.0668,-5.41154 0.52085,-1.93559 3.19501,-3.23268 5.18991,-3.03728 1.60922,0.15762 3.63156,3.21586 3.63156,3.21586 0,0 -2.46019,-2.21499 -3.92727,-2.04857 -1.19969,0.13609 -2.50478,1.17075 -2.75465,2.352 -0.27902,1.31906 0.56644,2.99951 1.749,3.64706 1.21606,0.66589 4.12858,-0.50477 4.12858,-0.50477 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-7" class="steel_piercing" d="m 250.44258,242.15562 c 0,0 2.27628,2.79035 3.73469,2.47162 1.88674,-0.41234 3.2834,-3.00362 3.05716,-4.9216 -0.2078,-1.76164 -2.01081,-3.65995 -3.78272,-3.743 -1.40164,-0.0657 -3.25607,2.66799 -3.25607,2.66799 0,0 2.18084,-1.79792 3.3582,-1.47055 1.06962,0.29741 1.85549,1.61097 1.92337,2.71909 0.0778,1.26997 -0.62425,2.89415 -1.80747,3.36197 -1.05545,0.4173 -3.22716,-1.08552 -3.22716,-1.08552 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4-1" class="steel_piercing" d="m 244.22839,241.47 c 0,0 -1.81884,2.17314 -2.88103,1.78724 -1.78526,-0.6486 -2.22159,-3.56301 -1.78483,-5.41154 0.32832,-1.38957 1.59984,-3.18067 3.02045,-3.03728 1.27625,0.12882 2.11352,3.21586 2.11352,3.21586 0,0 -1.26998,-2.17194 -2.28562,-2.04857 -0.94188,0.11441 -1.44914,1.41578 -1.60316,2.352 -0.20489,1.24541 -0.0609,2.9919 1.01789,3.64706 0.69951,0.42482 2.40278,-0.50477 2.40278,-0.50477 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Highlights1.tw b/src/art/vector_revamp/layers/Boob_Highlights1.tw deleted file mode 100644 index d862a90161b3faedcb3ed3252a7e465b772a1912..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Highlights1.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Highlights1 [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g2210" transform="matrix(1.0060951,0,0,1.0060951,-1.9605124,-1.2116124)"><path d="m 321.562,198.7844 c -2.25111,1.2044 -2.83496,3.23381 -2.89058,4.67945 1.40005,-0.6336 3.43888,-2.80656 2.89058,-4.67945 z" class="highlight1" id="path1139" sodipodi:nodetypes="ccc"/><path d="m 313.22303,216.21843 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" class="highlight1" id="path1141" sodipodi:nodetypes="ccc"/><path d="m 250.26522,218.00147 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" class="highlight1" id="path1143" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Highlights2.tw b/src/art/vector_revamp/layers/Boob_Highlights2.tw deleted file mode 100644 index f7fbc692aea0b897022a402499dec56ec07a5e84..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Highlights2.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Highlights2 [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g2226" transform="matrix(0.99843271,0,0,0.99843271,0.51131944,0.3030066)"><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9" class="highlight2" d="m 324.062,195.87815 c -2.25111,1.2044 -7.45996,3.89006 -5.39058,7.5857 4.2438,-0.0711 5.93888,-5.71281 5.39058,-7.5857 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7" class="highlight2" d="m 313.22303,216.21843 c -3.53236,3.2669 -5.77246,8.35881 -1.89058,10.3357 2.9938,-1.10235 3.78263,-5.83781 1.89058,-10.3357 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7" class="highlight2" d="m 256.23397,214.34522 c -7.63355,-1.99021 -15.11772,5.91416 -17.80104,7.67441 4.08319,1.14699 17.25312,2.91232 17.80104,-7.67441 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4" class="highlight2" d="m 313.50007,212.81652 c -1.45423,1.22002 -0.55371,1.5776 -0.29683,2.05444 0.91567,-0.49297 1.12638,-0.75968 0.29683,-2.05444 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-70" class="highlight2" d="m 325.92076,193.33159 c -0.70431,0.21003 -1.91359,0.15565 -1.19213,1.55319 2.16667,-0.20368 1.45317,-1.07242 1.19213,-1.55319 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5" class="highlight2" d="m 262.30677,208.04077 c -0.95431,-0.17346 -2.05373,0.57643 -1.9822,1.36001 0.65204,0.10878 1.99495,0.29667 1.9822,-1.36001 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1" class="highlight2" d="m 237.28097,221.17554 c -0.88687,-0.39276 -2.13167,0.0779 -2.2462,0.85637 0.60825,0.25889 1.86945,0.75696 2.2462,-0.85637 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9" class="highlight2" d="m 224.57022,224.30732 c -0.73318,-0.21518 -5.16322,0.19765 -5.64135,0.25254 0.7532,0.71279 5.59616,1.42803 5.64135,-0.25254 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-6" class="highlight2" d="m 214.65463,231.123 c -1.28043,3.08678 -0.887,13.93661 0.52713,15.49899 0.17285,-0.32564 -0.27027,-14.54836 -0.52713,-15.49899 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-4" class="highlight2" d="m 214.66568,228.54869 c -0.95299,0.64524 -0.46869,1.54719 -0.0583,1.90701 0.59665,-0.3531 0.32534,-1.4005 0.0583,-1.90701 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3" class="highlight2" d="m 214.96934,223.37407 c -0.59995,0.17051 -1.09864,0.3604 -1.5163,0.72315 0.72663,0.2153 1.41533,0.1382 1.5163,-0.72315 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2" class="highlight2" d="m 315.14231,208.27176 c -1.11469,-1.53646 -2.19765,-0.93953 -2.69138,-0.71684 0.55133,0.56169 1.58949,0.72014 2.69138,0.71684 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2-1" class="highlight2" d="m 315.01568,205.51285 c -1.29777,-0.23638 -1.89173,0.15908 -2.19786,0.60584 1.13578,0.21924 1.34362,0.27207 2.19786,-0.60584 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3-9" class="highlight2" d="m 214.99712,221.61733 c -0.26984,0.0314 -0.84473,0.21024 -0.92476,0.7089 0.27569,-0.29941 0.86343,-0.25926 0.92476,-0.7089 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge.tw b/src/art/vector_revamp/layers/Boob_Huge.tw new file mode 100644 index 0000000000000000000000000000000000000000..0fb849527a549550eb1c3e90e1259886523db7a4 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2276" transform="'+_boob_right_art_transform+'" ><path sodipodi:nodetypes="cccccccc" id="path2272" class="shadow" d="m 251.94799,202.06126 c -5.48922,8.60644 -14.21655,16.55553 -29.5132,24.802 -2.66627,10.79115 -4.57141,18.93814 5.09449,27.8494 6.92439,7.7255 14.82723,9.34865 24.00444,4.54068 9.9758,-4.87332 -2.88363,-0.91055 5.62068,-13.48656 0.51484,-8.64963 4.02743,-15.80582 5.08765,-21.2787 1.24098,-5.57972 1.78028,-10.00392 -5.51886,-16.34477 -5.28827,-4.59399 1.66486,-7.34429 -4.7752,-6.08205 z"/><path d="m 251.94799,202.06126 c -4.58269,8.82904 -14.93008,17.30782 -29.5132,24.802 -2.39837,10.79115 -3.45193,18.69011 5.09449,27.8494 7.45154,6.95799 15.65465,8.14394 24.00444,4.54068 9.42591,-5.13062 -3.89307,-1.68704 5.62068,-13.48656 3.23278,-7.85413 5.17648,-15.27549 6.2367,-20.74837 1.24098,-5.57972 -0.87916,-14.57204 -5.2095,-19.8803 -1.46475,-1.79553 -0.006,-6.28363 -6.23361,-3.07685 z" class="skin boob" id="path2274" sodipodi:nodetypes="ccccccac"/></g><g id="g2282" transform="'+_boob_left_art_transform+'" ><path d="m 322.52175,198.05651 c -4.11529,-0.17415 -4.6911,0.99135 -11.14734,1.40095 -6.05493,6.21998 -12.33211,13.08022 -17.97286,20.11452 -8.89026,9.35249 -11.15253,21.87785 -4.29471,30.50069 8.26604,12.77039 34.79999,12.67441 44.46576,0.60856 6.73235,-7.12225 6.42177,-20.48446 -1.27924,-30.36173 -5.66858,-9.77024 -9.11055,-18.938 -9.77161,-22.26299 z" class="shadow" id="path2307" sodipodi:nodetypes="ccccccc"/><path sodipodi:nodetypes="ccssssc" id="path2280" class="skin boob" d="m 322.52175,198.05651 c -4.11529,-1.2502 -4.6911,-1.40468 -11.14734,1.40095 -5.76044,6.21998 -11.66471,13.08022 -17.97286,20.11452 -8.22932,9.17663 -10.424,21.68399 -4.29471,30.50069 8.32079,11.96907 34.87117,11.63286 44.46576,0.60856 6.19858,-7.12225 5.94519,-20.48446 -1.27924,-30.36173 -6.92244,-9.4644 -9.19482,-18.91693 -9.77161,-22.26299 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areola_Piercing.tw b/src/art/vector_revamp/layers/Boob_Huge_Areola_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..b3c9e367957648797bbbe2be5219e5748ca99d15 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areola_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areola_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2929" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g id="g2931" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g id="g3099" transform="'+_boob_left_art_transform+'" ><path class="shadow" sodipodi:nodetypes="accaa" id="path2933" d="m 315.07024,219.70277 c 0.0554,0.71485 -0.77245,1.51654 -1.52538,1.51654 -0.5209,-0.31622 -0.77768,-0.63239 -1.81752,-1.1162 0,-0.74876 0.67951,-1.68337 1.43634,-1.78429 0.77841,-0.1038 1.84592,0.60099 1.90656,1.38395 z"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path2935" d="m 311.29057,230.82984 c 0,0.75085 -0.84636,1.58836 -1.5972,1.58836 -0.75085,0 -1.59721,-0.83751 -1.5972,-1.58836 0,-0.75084 0.84635,-1.58835 1.5972,-1.58835 0.75084,0 1.59719,0.83751 1.5972,1.58835 z"/><path d="m 314.92621,219.70277 c 0.0577,0.68014 -0.76752,1.44396 -1.452,1.44396 -0.47354,-0.28747 -0.72935,-0.52731 -1.67466,-0.96714 0,-0.68069 0.64168,-1.61234 1.3653,-1.71638 0.71063,-0.10217 1.70063,0.5242 1.76136,1.23956 z" id="path2937" sodipodi:nodetypes="accaa" class="steel_piercing"/><path d="m 311.14537,230.82984 c 0,0.68259 -0.76942,1.44396 -1.452,1.44396 -0.68259,0 -1.45201,-0.76137 -1.452,-1.44396 0,-0.68258 0.76941,-1.44395 1.452,-1.44395 0.68258,0 1.45199,0.76137 1.452,1.44395 z" id="path2941" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g><g id="g3105" transform="'+_boob_right_art_transform+'" ><path class="shadow" sodipodi:nodetypes="aaaaa" id="path2939" d="m 227.38819,224.56136 c 0,0.75085 -0.84635,1.58836 -1.5972,1.58836 -0.75085,0 -1.5972,-0.83751 -1.5972,-1.58836 0,-0.75084 0.84636,-1.58835 1.5972,-1.58835 0.75084,0 1.5972,0.83751 1.5972,1.58835 z"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path2943" d="m 221.66565,235.14913 c 0,0.75084 -0.84636,1.58835 -1.5972,1.58835 -0.75084,0 -1.5972,-0.83751 -1.5972,-1.58835 0,-0.75084 0.84636,-1.58835 1.5972,-1.58835 0.75084,0 1.5972,0.83751 1.5972,1.58835 z"/><path d="m 227.24299,224.56136 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68258 0.76941,-1.44395 1.452,-1.44395 0.68258,0 1.452,0.76137 1.452,1.44395 z" id="path2945" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 221.52045,235.14913 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68259 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76137 1.452,1.44396 z" id="path2947" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areola_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Huge_Areola_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..7e15d90ee8d55f6e5305810d22ff3602cf470efd --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areola_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areola_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g3085" transform="'+_boob_left_art_transform+'" ><path d="m 315.68416,222.90053 c 0,0 -0.13465,-4.47036 1.43,-5.58749 1.85611,-1.32523 5.3301,-1.17894 6.82,0.54779 1.43465,1.66269 0.96517,4.88584 -0.44,6.57352 -1.13778,1.36653 -5.17,1.3147 -5.17,1.3147 0,0 3.53534,-0.86423 4.29,-2.30073 0.61522,-1.17109 0.47784,-2.99147 -0.44,-3.94411 -1.02891,-1.06792 -3.08003,-1.33322 -4.4,-0.65735 -1.35317,0.69287 -2.09,4.05367 -2.09,4.05367 z" class="shadow" id="path2953" sodipodi:nodetypes="caaacaaac"/><path d="m 305.90661,222.83383 c 0,0 0.13465,-4.47036 -1.43,-5.58749 -1.85611,-1.32523 -5.3301,-1.17893 -6.82,0.5478 -1.43464,1.66269 -0.96516,4.88583 0.44,6.57351 1.13777,1.36653 5.17,1.31471 5.17,1.31471 0,0 -3.53534,-0.86423 -4.29,-2.30073 -0.61522,-1.17109 -0.47784,-2.99147 0.44,-3.94411 1.02891,-1.06792 3.08003,-1.33323 4.4,-0.65736 1.35317,0.69287 2.09,4.05367 2.09,4.05367 z" class="shadow" id="path2955" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="path2959" class="steel_piercing" d="m 316.09881,222.73598 c 0,0 -0.12241,-4.06397 1.3,-5.07954 1.68738,-1.20475 4.84555,-1.07175 6.2,0.498 1.30422,1.51153 0.87742,4.44167 -0.4,5.97592 -1.03434,1.2423 -4.7,1.19519 -4.7,1.19519 0,0 3.21395,-0.78567 3.9,-2.09158 0.55929,-1.06463 0.4344,-2.71952 -0.4,-3.58555 -0.93538,-0.97084 -2.80003,-1.21202 -4,-0.59759 -1.23016,0.62988 -1.9,3.68515 -1.9,3.68515 z"/><path sodipodi:nodetypes="caaacaaac" id="path2961" class="steel_piercing" d="m 305.49196,222.66929 c 0,0 0.12241,-4.06397 -1.3,-5.07954 -1.68737,-1.20475 -4.84554,-1.07176 -6.2,0.49799 -1.30423,1.51154 -0.87743,4.44168 0.4,5.97593 1.03434,1.2423 4.7,1.19518 4.7,1.19518 0,0 -3.21395,-0.78566 -3.9,-2.09157 -0.5593,-1.06463 -0.4344,-2.71952 0.4,-3.58556 0.93538,-0.97084 2.80003,-1.21202 4,-0.59759 1.23016,0.62989 1.9,3.68516 1.9,3.68516 z"/></g><g id="g3109" transform="'+_boob_right_art_transform+'" ><path d="m 225.06547,228.29066 c 0,0 0.60967,-2.29861 1.54375,-2.82952 2.13513,-1.21356 5.78848,-1.60777 7.36253,0.27741 0.71838,0.86037 0.32663,2.54546 -0.475,3.32885 -1.34,1.30951 -5.58127,0.66576 -5.58127,0.66576 0,0 3.80544,0.19579 4.63127,-1.1651 0.35502,-0.58505 0.0468,-1.55455 -0.47501,-1.99731 -1.21025,-1.02692 -3.25057,-0.85339 -4.75002,-0.33287 -0.96055,0.33345 -2.25625,2.05278 -2.25625,2.05278 z" class="shadow" id="path2957" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="path2963" class="steel_piercing" d="m 225.48753,228.18839 c 0,0 0.55425,-2.08964 1.40341,-2.57229 1.94103,-1.10324 5.26225,-1.46162 6.69321,0.25218 0.65308,0.78216 0.29694,2.31405 -0.43182,3.02623 -1.21818,1.19047 -5.07388,0.60524 -5.07388,0.60524 0,0 3.45949,0.17799 4.21024,-1.05918 0.32275,-0.53186 0.0425,-1.41322 -0.43182,-1.81573 -1.10022,-0.93357 -2.95507,-0.77582 -4.3182,-0.30262 -0.87323,0.30313 -2.05114,1.86617 -2.05114,1.86617 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areolae_Heart.tw b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Heart.tw new file mode 100644 index 0000000000000000000000000000000000000000..8c44204bd44345117877b1d57d8a46f18ce6d88e --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Heart.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areolae_Heart [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2618" ><path sodipodi:nodetypes="cczcac" d="m 232.52122,225.53565 c 4.39417,7.66356 -5.99208,11.98476 -10.60277,20.32639 -1.91692,-2.41158 -3.13082,-10.98168 -2.2593,-14.47377 0.87152,-3.49209 1.27608,-4.34257 4.50054,-6.25453 4.9477,-1.91122 6.43637,-1.61802 8.36153,0.4019 0,0 0,1e-5 0,1e-5 z" class="areola" id="path2616"/></g><g transform="'+_boob_left_art_transform+'" id="g2623" ><path sodipodi:nodetypes="czczcc" class="areola" d="m 308.00692,240.95895 c -4.20528,-2.9951 -12.71977,-16.79856 -6.01226,-22.33579 6.70751,-5.53723 9.65531,-0.0103 9.65531,-0.0103 0,0 5.61579,-5.19127 10.77973,1.06406 5.16394,6.25533 -9.37618,18.97767 -14.42277,21.28185 z" id="path2621"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areolae_Huge.tw b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Huge.tw new file mode 100644 index 0000000000000000000000000000000000000000..cf9c4f74b8d32bf7bde558856b2237c74b50dda3 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Huge.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areolae_Huge [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2598" transform="'+_boob_right_art_transform+'" ><path id="path2596" class="areola" d="m 236.62959,218.29317 c 0,0 1.7243,6.58569 -0.67504,13.922 -2.39927,7.33629 -12.70181,16.77885 -12.70181,16.77885 -2.04899,-3.31055 -4.6839,-13.22984 -3.74138,-17.39573 0.94253,-4.16588 0.57641,-2.75255 3.74464,-6.21424 3.9845,-4.35363 13.37359,-7.09088 13.37359,-7.09088 z" sodipodi:nodetypes="czczsc"/></g><g id="g2602" transform="'+_boob_left_art_transform+'" ><path id="path2600" d="m 310.21331,242.70695 c -8.66357,-0.95563 -17.41869,-7.34062 -17.45978,-13.06343 -0.0525,-7.30353 10.99852,-14.92615 20.70646,-14.50135 9.12899,0.39946 18.65567,6.35353 16.78428,15.20563 -1.87139,8.85212 -9.67212,13.50176 -20.03096,12.35915 z" class="areola" sodipodi:nodetypes="sssss"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areolae_Large.tw b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Large.tw new file mode 100644 index 0000000000000000000000000000000000000000..b6a26c3806d3d7fcc98d7f75c9fd6fde63530e34 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Large.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areolae_Large [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2578" transform="'+_boob_right_art_transform+'" ><path id="path2576" class="areola" d="m 228.60733,223.47737 c 0,0 0.30094,3.19792 -0.8647,6.76203 -1.16561,3.5641 -7.01179,8.94586 -7.01179,8.94586 0,0 -1.57367,-6.20853 -1.19696,-7.68793 0.37668,-1.47941 0.62921,-2.29369 2.16839,-3.97544 1.93574,-2.11507 6.90506,-4.04452 6.90506,-4.04452 z" sodipodi:nodetypes="czczsc"/></g><g id="g2582" transform="'+_boob_left_art_transform+'" ><path id="path2580" d="m 310.0179,234.96812 c -4.61957,-0.50956 -9.28796,-3.91415 -9.30987,-6.96566 -0.028,-3.89437 5.86461,-7.95889 11.04106,-7.73238 4.86774,0.213 9.94754,3.38782 8.94968,8.10792 -0.99786,4.72011 -5.15735,7.19938 -10.68087,6.59012 z" class="areola" sodipodi:nodetypes="sssss"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areolae_Normal.tw b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Normal.tw new file mode 100644 index 0000000000000000000000000000000000000000..c8812ae7565e5e580220213834b7e1ec4ee7482e --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Normal.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areolae_Normal [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2568" ><path sodipodi:nodetypes="czczsc" d="m 227.14891,224.34464 c 0,0 0.24231,2.57487 -0.69623,5.44459 -0.93851,2.86971 -5.64569,7.20295 -5.64569,7.20295 0,0 -1.26707,-4.99893 -0.96376,-6.1901 0.30329,-1.19118 0.50662,-1.84681 1.74593,-3.20091 1.5586,-1.70299 5.55975,-3.25653 5.55975,-3.25653 z" class="areola" id="path2566"/></g><g transform="'+_boob_left_art_transform+'" id="g2572" ><path sodipodi:nodetypes="sssss" class="areola" d="m 309.93277,231.30328 c -3.40637,-0.37574 -6.84874,-2.88621 -6.8649,-5.13633 -0.0207,-2.87162 4.32444,-5.86871 8.14144,-5.70169 3.58937,0.15706 7.3351,2.49811 6.5993,5.97861 -0.7358,3.4805 -3.80292,5.30866 -7.87584,4.85941 z" id="path2570"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areolae_Star.tw b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Star.tw new file mode 100644 index 0000000000000000000000000000000000000000..0a605023d410ee168b0e98ec3a59aafa9033bdd8 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Star.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areolae_Star [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2608" ><path sodipodi:nodetypes="cccccccssc" d="m 234.36369,221.2914 c -5.83495,3.07543 -6.41117,3.88752 -8.98865,6.65172 3.10943,0.0163 3.09282,-0.28462 8.16273,1.84366 -7.00102,0.23835 -9.44665,2.25868 -9.44665,2.25868 0,0 -0.69998,1.91384 1.81583,11.39761 -3.75631,-5.09859 -4.6232,-9.07753 -4.6232,-9.07753 0,0 -0.7342,1.92505 -0.23957,8.04149 -1.78578,-3.48555 -1.6116,-7.85334 -1.6116,-9.31051 0,-2.16436 0.62706,-3.42478 3.74464,-6.54236 4.17315,-4.17315 11.18647,-5.26276 11.18647,-5.26276 z" class="areola" id="path2606"/></g><g transform="'+_boob_left_art_transform+'" id="g2612" ><path sodipodi:nodetypes="ccccccccccc" class="areola" d="m 309.21943,229.27224 c -3.76567,1.79157 -6.84161,5.28921 -10.10232,7.39152 1.44885,-3.26388 2.80438,-7.85021 4.89355,-10.83394 -2.31674,-1.93975 -5.18388,-2.96451 -8.37065,-3.68536 3.56307,-1.07962 7.79205,-1.81135 11.55083,-1.25273 1.41528,-1.99803 2.88366,-2.69755 5.19852,-4.40935 0.47133,1.75669 1.08677,2.27498 2.38302,4.27914 4.40924,-0.57094 8.75671,0.34013 13.32809,1.37553 -4.74363,0.78623 -8.39968,1.78672 -11.63843,3.96162 1.36056,2.93262 2.11025,7.4758 2.95271,10.6874 -2.99455,-2.42622 -6.28672,-5.87702 -10.19532,-7.51383 z" id="path2610"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Areolae_Wide.tw b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Wide.tw new file mode 100644 index 0000000000000000000000000000000000000000..e8c5a8d43256181b887c159001d71030ce668c4a --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Areolae_Wide.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Areolae_Wide [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2588" ><path sodipodi:nodetypes="czczsc" d="m 232.7832,220.84618 c 0,0 0.4464,4.52494 -1.28267,9.81182 -1.72902,5.28687 -10.19793,13.26999 -10.19793,13.26999 0,0 -2.53745,-9.20953 -1.97865,-11.40402 0.55875,-2.19451 0.93334,-3.40238 3.21651,-5.89704 2.87142,-3.13742 10.24274,-5.78075 10.24274,-5.78075 z" class="areola" id="path2586"/></g><g transform="'+_boob_left_art_transform+'" id="g2592" ><path sodipodi:nodetypes="sssss" class="areola" d="m 310.12038,239.65916 c -6.9072,-0.76189 -13.8874,-5.85245 -13.92016,-10.41508 -0.0419,-5.82288 8.76879,-11.90016 16.50864,-11.56148 7.27826,0.31847 14.8736,5.06548 13.3816,12.12299 -1.49201,7.05753 -7.71129,10.76454 -15.97008,9.85357 z" id="path2590"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Highlights.tw b/src/art/vector_revamp/layers/Boob_Huge_Highlights.tw new file mode 100644 index 0000000000000000000000000000000000000000..78be05d127504e1a76103623bcedd482c19113bf --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Highlights.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Highlights [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g style="display:inline" inkscape:label="Boob_Huge_Highlights2" id="Boob_Huge_Highlights2" inkscape:groupmode="layer"><g transform="'+_boob_left_art_transform+'" id="g2663" ><path d="m 311.28344,209.85996 c -1.23695,2.22881 -4.15391,7.30116 -0.41757,9.282 3.52221,-2.35637 1.8912,-8.00731 0.41757,-9.282 z" class="highlight2" id="path2651" sodipodi:nodetypes="ccc"/><path d="m 309.0008,230.89923 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" class="highlight2" id="path2653" sodipodi:nodetypes="ccc"/><path d="m 309.2774,227.50265 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" class="highlight2" id="path2655" sodipodi:nodetypes="ccc"/><path d="m 311.46483,206.71736 c -0.47728,0.55739 -1.52133,1.16622 -0.15966,1.94836 1.70767,-1.34349 0.63887,-1.68624 0.15966,-1.94836 z" class="highlight2" id="path2657" sodipodi:nodetypes="ccc"/><path d="m 310.91707,222.96501 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" class="highlight2" id="path2659" sodipodi:nodetypes="ccc"/><path d="m 310.79064,220.21043 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" class="highlight2" id="path2661" sodipodi:nodetypes="ccc"/><path d="m 287.14784,234.24423 c -1.78019,22.27634 16.62413,23.78154 22.90192,24.02193 -23.56642,-3.77459 -22.37712,-21.24928 -22.90192,-24.02193 z" class="highlight2" id="path2673-6" sodipodi:nodetypes="ccc"/></g><g transform="'+_boob_right_art_transform+'" id="g2681" ><path d="m 245.56304,211.91401 c -4.11836,2.60208 -12.2636,9.19756 -15.16804,10.99308 3.27443,0.0574 14.42513,-1.08898 15.16804,-10.99308 z" class="highlight2" id="path2665" sodipodi:nodetypes="ccc"/><path d="m 250.43036,208.01772 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" class="highlight2" id="path2667" sodipodi:nodetypes="ccc"/><path d="m 229.41707,228.57127 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" class="highlight2" id="path2671" sodipodi:nodetypes="ccc"/><path d="m 221.11077,236.97002 c -0.77873,7.49629 6.53371,18.21895 9.15131,19.6622 -2.16944,-2.6361 -8.34445,-14.0271 -9.15131,-19.6622 z" class="highlight2" id="path2673" sodipodi:nodetypes="ccc"/><path d="m 221.12181,234.39974 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" class="highlight2" id="path2675" sodipodi:nodetypes="ccc"/><path d="m 219.83124,227.63948 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" class="highlight2" id="path2677" sodipodi:nodetypes="ccc"/><path d="m 220.10898,225.8855 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" class="highlight2" id="path2679" sodipodi:nodetypes="ccc"/></g></g><g inkscape:groupmode="layer" id="Boob_Huge_Highlights1" inkscape:label="Boob_Huge_Highlights1" style="display:inline"><g transform="'+_boob_left_art_transform+'" id="g2690"><path sodipodi:nodetypes="ccc" id="path2686" class="highlight1" d="m 310.7455,213.61878 c -1.23889,2.23231 -0.62951,4.2542 0.10734,5.49919 0.8331,-1.29133 1.36861,-4.22251 -0.10734,-5.49919 z"/><path sodipodi:nodetypes="ccc" id="path2688" class="highlight1" d="m 308.98735,230.89949 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z"/></g><g transform="'+_boob_right_art_transform+'" id="g2694" ><path sodipodi:nodetypes="ccc" id="path2692" class="highlight1" d="m 242.78118,215.8836 c -3.18058,2.31902 -9.28242,4.77744 -11.34656,6.90425 3.63554,0.19592 9.94008,-1.84828 11.34656,-6.90425 z" /></g></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Highlights1.tw b/src/art/vector_revamp/layers/Boob_Huge_Highlights1.tw new file mode 100644 index 0000000000000000000000000000000000000000..beee97f2f7bad340762e052d5028a8ebb2d1c616 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Highlights1.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Highlights1 [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_left_art_transform+'" id="g2690"><path sodipodi:nodetypes="ccc" id="path2686" class="highlight1" d="m 310.7455,213.61878 c -1.23889,2.23231 -0.62951,4.2542 0.10734,5.49919 0.8331,-1.29133 1.36861,-4.22251 -0.10734,-5.49919 z"/><path sodipodi:nodetypes="ccc" id="path2688" class="highlight1" d="m 308.98735,230.89949 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z"/></g><g transform="'+_boob_right_art_transform+'" id="g2694" ><path sodipodi:nodetypes="ccc" id="path2692" class="highlight1" d="m 242.78118,215.8836 c -3.18058,2.31902 -9.28242,4.77744 -11.34656,6.90425 3.63554,0.19592 9.94008,-1.84828 11.34656,-6.90425 z" /></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Highlights2.tw b/src/art/vector_revamp/layers/Boob_Huge_Highlights2.tw new file mode 100644 index 0000000000000000000000000000000000000000..4d3a794e4bd17cfd136a92eba43b090025e0adcc --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Highlights2.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Highlights2 [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_left_art_transform+'" id="g2663" ><path d="m 311.28344,209.85996 c -1.23695,2.22881 -4.15391,7.30116 -0.41757,9.282 3.52221,-2.35637 1.8912,-8.00731 0.41757,-9.282 z" class="highlight2" id="path2651" sodipodi:nodetypes="ccc"/><path d="m 309.0008,230.89923 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" class="highlight2" id="path2653" sodipodi:nodetypes="ccc"/><path d="m 309.2774,227.50265 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" class="highlight2" id="path2655" sodipodi:nodetypes="ccc"/><path d="m 311.46483,206.71736 c -0.47728,0.55739 -1.52133,1.16622 -0.15966,1.94836 1.70767,-1.34349 0.63887,-1.68624 0.15966,-1.94836 z" class="highlight2" id="path2657" sodipodi:nodetypes="ccc"/><path d="m 310.91707,222.96501 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" class="highlight2" id="path2659" sodipodi:nodetypes="ccc"/><path d="m 310.79064,220.21043 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" class="highlight2" id="path2661" sodipodi:nodetypes="ccc"/><path d="m 287.14784,234.24423 c -1.78019,22.27634 16.62413,23.78154 22.90192,24.02193 -23.56642,-3.77459 -22.37712,-21.24928 -22.90192,-24.02193 z" class="highlight2" id="path2673-6" sodipodi:nodetypes="ccc"/></g><g transform="'+_boob_right_art_transform+'" id="g2681" ><path d="m 245.56304,211.91401 c -4.11836,2.60208 -12.2636,9.19756 -15.16804,10.99308 3.27443,0.0574 14.42513,-1.08898 15.16804,-10.99308 z" class="highlight2" id="path2665" sodipodi:nodetypes="ccc"/><path d="m 250.43036,208.01772 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" class="highlight2" id="path2667" sodipodi:nodetypes="ccc"/><path d="m 229.41707,228.57127 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" class="highlight2" id="path2671" sodipodi:nodetypes="ccc"/><path d="m 221.11077,236.97002 c -0.77873,7.49629 6.53371,18.21895 9.15131,19.6622 -2.16944,-2.6361 -8.34445,-14.0271 -9.15131,-19.6622 z" class="highlight2" id="path2673" sodipodi:nodetypes="ccc"/><path d="m 221.12181,234.39974 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" class="highlight2" id="path2675" sodipodi:nodetypes="ccc"/><path d="m 219.83124,227.63948 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" class="highlight2" id="path2677" sodipodi:nodetypes="ccc"/><path d="m 220.10898,225.8855 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" class="highlight2" id="path2679" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Nipples.tw b/src/art/vector_revamp/layers/Boob_Huge_Nipples.tw new file mode 100644 index 0000000000000000000000000000000000000000..7a1555ed76d014cc3efca6ed3222f15cd933f339 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Nipples.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Nipples [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2307" transform="'+_boob_right_art_transform+'" ><path id="path2297" class="shadow" d="m 219.66711,231.32551 c 0,0 -2.07916,-0.84424 -1.96587,-2.50683 0.27229,-2.06527 2.87049,-4.55573 4.56939,-3.54333 0.73795,0.4953 1.19745,1.3592 1.19745,1.3592 -0.28724,2.54749 -1.44251,3.76835 -3.80097,4.69096 z" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="ccccc" d="m 219.66711,231.32551 c 0,0 -2.09128,-0.97248 -1.96587,-2.50683 0.22689,-1.88232 3.0014,-4.53764 4.56939,-3.54333 0.6399,0.45092 1.19745,1.3592 1.19745,1.3592 -0.28152,2.37691 -1.50508,3.78179 -3.80097,4.69096 z" class="areola" id="path2299"/><path id="path2301" class="shadow" d="m 218.29586,227.4828 c 0.63254,-0.49981 1.24594,-0.4023 2.58629,-0.13128 -1.20929,-0.062 -1.73229,-0.39852 -2.58629,0.13128 z" sodipodi:nodetypes="ccc"/><path id="path2303" class="shadow" d="m 219.23311,227.17234 c -0.0126,-0.30553 0.11607,-0.87173 0.80585,-0.93739 -0.78295,0.23692 -0.68828,0.58174 -0.80585,0.93739 z" sodipodi:nodetypes="ccc"/><path id="path2305" class="shadow" d="m 220.87274,231.59877 c 1.83694,-1.04074 2.9183,-2.84285 2.47489,-4.27858 0.24179,0.88681 0.46243,2.78645 -2.47489,4.27858 z" sodipodi:nodetypes="ccc"/></g><g id="g2321" transform="'+_boob_left_art_transform+'" ><path id="path2309" d="m 307.02662,225.35792 c -0.65912,-0.84792 -0.55031,-2.1736 -0.36852,-2.79251 0.43828,-1.66398 2.36958,-2.51043 4.05199,-2.48698 1.47529,0.0205 2.31113,0.23638 2.97306,1.55088 0.7186,0.55937 0.76617,1.51497 0.72875,1.55811 -0.19628,1.38288 -1.11197,3.36797 -3.79882,3.25712 -2.15571,0.10863 -2.89207,-0.0288 -3.58646,-1.08662 z" class="shadow" sodipodi:nodetypes="ccscccc"/><path sodipodi:nodetypes="csscccc" class="areola" d="m 307.02662,225.35792 c -0.45016,-0.86882 -0.5452,-2.18377 -0.36852,-2.79251 0.46228,-1.59289 2.54845,-2.46893 4.05199,-2.48698 1.48227,-0.0177 2.31964,0.4407 2.97306,1.55088 0.60221,0.66517 0.7511,1.52867 0.72875,1.55811 -0.2578,1.29402 -1.17053,3.2834 -3.79882,3.25712 -2.03215,0.002 -2.83404,-0.0784 -3.58646,-1.08662 z" id="path2311"/><path id="path2313" d="m 307.97472,221.8552 c 1.44439,-0.5616 2.8211,0.19783 3.71681,0.95003 -1.07555,-0.52478 -2.45102,-1.24397 -3.71681,-0.95003 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 309.64335,221.84575 c 0.82391,-0.71672 1.32028,-0.90751 2.55627,-0.79081 -1.15563,0.0407 -1.68078,0.25167 -2.55627,0.79081 z" id="path2315"/><path id="path2317" d="m 307.45307,225.44799 c 6.9597,1.44668 6.35651,-3.37569 6.23036,-3.85562 0.42028,2.9281 -1.33459,5.40848 -6.23036,3.85562 z" class="shadow" sodipodi:nodetypes="ccc"/><path id="path2319" class="shadow" d="m 309.13235,227.01721 c 3.67212,-0.37532 4.7724,-1.1783 5.15758,-3.33875 -0.0448,2.50473 -2.04255,3.15529 -5.15758,3.33875 z" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Outfit_Maid.tw b/src/art/vector_revamp/layers/Boob_Huge_Outfit_Maid.tw new file mode 100644 index 0000000000000000000000000000000000000000..019cba47e462ec902f7b638ef92ec001a94e27f5 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Outfit_Maid.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Outfit_Maid [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><defs id="defs4360"><filter style="color-interpolation-filters:sRGB" inkscape:label="Filter_Shine_Blur" id="Filter_Shine_Blur" width="4" x="-2" height="4" y="-2"><feGaussianBlur stdDeviation="1.5 1.5" result="blur" id="feGaussianBlur4091-3"/></filter><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2523"><path style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:1" d="m 274.57189,189.42903 15.50314,-3.68772 7.17414,5.6607 18.78855,-0.15563 22.89606,-10.20457 4.18325,-5.70166 12.47654,1.89159 300.60628,-20.29169 -9.82055,549.03095 -688.642378,1.7251 29.38501,-463.4512 z" id="path2525" sodipodi:nodetypes="cccccccccccc"/></clipPath></defs><g id="g2511" clip-path="url(#clipPath2523)"><g id="g2501" transform="'+_boob_outfit_art_transform+'" ><path sodipodi:nodetypes="cccccccc" id="path2481" d="m 248.46348,221.30205 c -7.84799,13.39188 -9.31561,33.03051 1.17873,45.75168 8.18024,12.33371 22.62994,9.84279 34.81926,7.11239 10.16499,1.36382 18.37185,1.37376 32.10564,1.83999 11.54119,4.46467 21.63893,4.78374 30.06923,-2.42885 13.78259,-9.95091 14.54789,-23.07261 13.81906,-47.30239 1.67109,-21.37616 -23.40629,-68.10261 -23.40629,-68.10261 0,0 -76.87136,32.99996 -88.58563,63.12979 z" style="display:inline;opacity:1;fill:#1a1a1a;fill-opacity:1;stroke-width:0.99515665"/><path style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:0.99515665" d="m 248.46348,221.30205 c -6.81285,13.64987 -7.73759,33.34658 1.17873,45.75168 8.43153,11.73061 22.90015,9.19429 34.81926,7.11239 10.50108,1.06974 18.86406,0.94308 32.10564,1.83999 12.09113,3.70602 22.27287,3.92208 30.06923,-2.42885 12.73576,-10.37458 14.2035,-30.88034 13.81906,-47.30239 -0.56178,-23.99764 -23.40629,-68.10261 -23.40629,-68.10261 0,0 -72.39285,30.6868 -88.58563,63.12979 z" id="path2826" sodipodi:nodetypes="asccaaca"/><path d="m 311.72503,274.95345 c -18.32365,-4.27958 -40.32075,-0.75207 -49.31724,-0.21926 9.0114,-0.53368 36.99108,-2.65958 49.31724,0.21926 z" class="shadow" id="path3232-3-3" sodipodi:nodetypes="ccc"/><path d="m 309.32149,267.43126 c -19.55847,-1.59311 -33.01835,5.3752 -42.28691,7.29258 9.28391,-1.92053 29.1301,-8.36425 42.28691,-7.29258 z" class="shadow" id="path3232-3-3-0" sodipodi:nodetypes="ccc"/><path d="m 306.30748,260.9606 c -13.32491,-3.8423 -29.59097,-2.06333 -36.21523,-2.00693 6.63522,-0.0565 27.25168,-0.57775 36.21523,2.00693 z" class="shadow" id="path3232-3-3-0-5" sodipodi:nodetypes="ccc"/><path d="m 304.97187,260.29254 c -13.14861,-4.43301 -29.43657,-3.36835 -36.04526,-3.60354 6.61963,0.23558 27.20032,0.62148 36.04526,3.60354 z" class="shadow" id="path3232-3-3-0-5-5" sodipodi:nodetypes="ccc"/><path d="m 311.29793,219.17019 c -11.83811,-4.5168 -26.69692,-4.12421 -32.70598,-4.57425 6.01901,0.45079 24.74259,1.53583 32.70598,4.57425 z" class="shadow" id="path3232-3-3-0-5-1" sodipodi:nodetypes="ccc"/><path d="m 311.27871,223.32929 c -11.22803,-5.99229 -25.95244,-7.45922 -31.84373,-8.66054 5.90105,1.20331 24.29074,4.62958 31.84373,8.66054 z" class="shadow" id="path3232-3-3-0-5-1-0" sodipodi:nodetypes="ccc"/></g></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Piercing.tw b/src/art/vector_revamp/layers/Boob_Huge_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..162694d786abca6b63611632fc355b55ceddfc1d --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2999" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g id="g3009" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" transform="'+_boob_left_art_transform+'" ><path class="shadow" sodipodi:nodetypes="aaaaa" id="path3001" d="m 316.48783,223.10304 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path class="shadow" sodipodi:nodetypes="saccs" id="path3003" d="m 306.77276,224.82581 c -0.75293,0 -1.6385,-0.84541 -1.5972,-1.5972 0.046,-0.83836 1.21255,-1.57531 1.96548,-1.57531 -0.68775,1.21129 -0.7805,1.82947 -0.3682,3.17251 z"/><path d="m 316.34263,223.10304 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path3005" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 306.77164,224.68061 c -0.68448,0 -1.48757,-0.76845 -1.452,-1.452 0.0399,-0.76733 1.10584,-1.452 1.79032,-1.452 -0.71906,1.10285 -0.73484,1.67672 -0.33828,2.904 z" id="path3007" sodipodi:nodetypes="saccs" class="steel_piercing"/></g><g style="display:inline" id="g3019" transform="'+_boob_right_art_transform+'" ><path d="m 224.07961,228.33118 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z" id="path3011" sodipodi:nodetypes="aaaaa" class="shadow" /><path d="m 217.66199,229.81105 c -0.34466,-0.31248 -0.8444,-0.64473 -0.8444,-1.05102 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -0.83246,1.20611 -0.7528,2.64822 z" id="path3013" sodipodi:nodetypes="cscc" class="shadow" /><path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path3015" d="m 223.93441,228.33118 c 0,0.68134 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77066 -1.452,-1.452 0,-0.68133 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77067 1.452,1.452 z" /><path class="steel_piercing" sodipodi:nodetypes="cscc" id="path3017" d="m 217.65747,229.74416 c -0.31333,-0.28407 -0.76728,-0.63503 -0.76728,-1.00438 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.5497,0.90956 -0.83533,1.21423 -0.68472,2.45638 z" /></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Huge_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Huge_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..9632a469497898b5568bf1e814e0dbdf9dd6b50a --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Huge_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Huge_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2981" transform="'+_boob_left_art_transform+'" ><path d="m 305.79149,218.84986 c 0,0 -2.49411,9.18373 -0.98325,13.39981 1.04425,2.91398 3.31774,6.91285 6.40728,6.7218 3.05706,-0.18905 4.59484,-4.44702 5.47216,-7.38158 1.23461,-4.12965 -0.7356,-12.9098 -0.7356,-12.9098 0,0 0.11352,1.8255 0.16679,3.66985 -0.16929,0.006 -2.35051,-4.1e-4 -2.35051,-4.1e-4 0.0559,0.37078 -0.0172,0.52908 -0.0182,0.90408 0,0 2.10319,-0.01 2.38726,-0.0165 0.0394,2.95347 -0.12672,6.29356 -1.09131,8.44744 -0.78349,1.74932 -2.10939,3.66042 -3.89433,3.67566 -1.987,0.017 -3.50956,-2.07688 -4.40441,-4.01713 -0.94479,-2.04857 -1.13062,-5.2179 -1.1115,-8.05448 0.44876,0 0.89492,-0.0536 0.89492,-0.0536 l 0.20179,-0.91124 c 0,0 -0.63009,-0.0132 -1.08238,-0.0132 0.0399,-1.72733 0.14124,-3.46134 0.14124,-3.46134 z" class="shadow" id="path2969" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 311.22782,235.59907 c 0,0 -1.85221,9.4952 -1.92044,14.30624 -0.078,5.49738 1.72993,16.40283 1.72993,16.40283 0,0 -0.37012,-9.79442 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path2971" sodipodi:nodetypes="caccc"/><path d="m 310.97362,264.29827 c 0,0 -1.08607,3.59047 -0.98853,5.42648 0.0928,1.74744 1.48279,5.03598 1.48279,5.03598 0,0 1.05088,-3.32643 0.98853,-5.03598 -0.0683,-1.8739 -1.48279,-5.42648 -1.48279,-5.42648 z" class="shadow" id="path2973" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="path2975" class="steel_piercing" d="m 306.23848,219.75707 c 0,0 -2.26737,8.34884 -0.89386,12.18164 0.94932,2.64907 3.01613,6.2844 5.8248,6.11072 2.77915,-0.17186 4.17713,-4.04275 4.97469,-6.71053 1.12237,-3.75423 -0.66873,-11.73618 -0.66873,-11.73618 0,0 0.1032,1.19752 0.15163,2.87419 -0.1539,0.005 -1.857,-3.7e-4 -1.857,-3.7e-4 -0.01,0.4056 -0.009,0.4963 -0.0851,0.81799 0,0 1.70069,-0.005 1.95894,-0.0111 0.0358,2.68498 -0.1152,6.18346 -0.9921,8.14152 -0.71227,1.59029 -1.91762,3.32765 -3.5403,3.34151 -1.80636,0.0154 -3.19051,-1.88807 -4.00401,-3.65193 -0.8589,-1.86234 -1.02784,-5.20558 -1.01046,-7.78429 0.40797,0 0.46484,-0.0487 0.46484,-0.0487 l 0.16073,-0.8284 c 0,0 -0.20131,-0.012 -0.61253,-0.012 0.0363,-1.5703 0.1284,-2.68465 0.1284,-2.68465 z"/><path sodipodi:nodetypes="caccc" id="path2977" class="steel_piercing" d="m 311.1816,236.99494 c 0,0 -1.68382,8.632 -1.74585,13.00567 -0.0709,4.99761 1.57266,14.91166 1.57266,14.91166 0,0 -0.33647,-8.90402 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z"/><path sodipodi:nodetypes="cacac" id="path2979" class="steel_piercing" d="m 310.99593,264.77383 c 0,0 -0.98734,3.26407 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57815 1.34799,4.57815 0,0 0.95535,-3.02401 0.89867,-4.57815 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z"/></g><g id="g2995" transform="'+_boob_right_art_transform+'" ><path d="m 224.04177,224.35984 c 0,0 1.84875,9.08379 0.67687,13.39983 -0.70222,2.58629 -1.73488,6.86756 -4.41084,6.72179 -2.75834,-0.15026 -3.17412,-4.68357 -3.76709,-7.3816 -0.92442,-4.20618 0.5064,-12.90978 0.5064,-12.90978 0,0 -0.0782,1.73915 -0.11483,3.58349 0.11654,0.006 1.05275,-4.1e-4 1.05275,-4.1e-4 l -0.54866,0.90407 c 0,0 -0.32127,-0.01 -0.51683,-0.0165 -0.0271,2.95346 0.0873,6.37993 0.75126,8.5338 0.53937,1.74933 1.16447,3.66321 2.68091,3.67564 1.67758,0.0137 2.41602,-2.07685 3.03204,-4.01709 0.65041,-2.04858 0.77834,-5.30427 0.76517,-8.14084 -0.30893,0 -1.87642,-0.0536 -1.87642,-0.0536 0.0596,-0.36182 0.0683,-0.46339 0.2179,-0.91125 0,0 1.33728,-0.0132 1.64865,-0.0132 -0.0275,-1.72732 -0.0972,-3.37499 -0.0972,-3.37499 z" class="shadow" id="path2983" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 220.68861,241.98705 c 0,0 -1.85221,9.4952 -1.92044,14.30623 -0.078,5.49738 1.72993,16.40284 1.72993,16.40284 0,0 -0.37012,-9.79444 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path2985" sodipodi:nodetypes="caccc"/><path d="m 220.43441,270.68624 c 0,0 -1.08608,3.59049 -0.98853,5.4265 0.0928,1.74744 1.48279,5.03595 1.48279,5.03595 0,0 1.05088,-3.3264 0.98853,-5.03595 -0.0683,-1.8739 -1.48279,-5.4265 -1.48279,-5.4265 z" class="shadow" id="path2987" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="path2989" class="steel_piercing" d="m 223.73465,225.26696 c 0,0 1.68069,8.25799 0.61534,12.18167 -0.63838,2.35117 -1.57717,6.24324 -4.00986,6.11072 -2.50758,-0.1366 -2.88557,-4.25779 -3.42463,-6.71055 -0.84039,-3.8238 0.46036,-11.73616 0.46036,-11.73616 0,0 -0.071,1.19752 -0.10438,2.87419 0.10594,0.005 0.62785,-3.7e-4 0.62785,-3.7e-4 l -0.33933,0.82187 c 0,0 -0.12233,-0.009 -0.30011,-0.015 -0.0247,2.68496 0.0793,6.18345 0.68297,8.14152 0.49034,1.5903 1.05861,3.3302 2.43719,3.3415 1.52508,0.0125 2.19638,-1.88805 2.7564,-3.65191 0.59128,-1.86235 0.70758,-5.20558 0.69561,-7.78429 -0.28085,0 -1.70584,-0.0487 -1.70584,-0.0487 0.0541,-0.32893 0.16478,-0.53596 0.16187,-0.82841 0,0 1.25193,-0.012 1.535,-0.012 -0.025,-1.57029 -0.0884,-2.68465 -0.0884,-2.68465 z"/><path sodipodi:nodetypes="caccc" id="path2991" class="steel_piercing" d="m 220.64239,243.38292 c 0,0 -1.68382,8.63199 -1.74585,13.00566 -0.0709,4.99762 1.57266,14.91167 1.57266,14.91167 0,0 -0.33647,-8.90403 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z"/><path sodipodi:nodetypes="cacac" id="path2993" class="steel_piercing" d="m 220.45672,271.16181 c 0,0 -0.98735,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57813 1.34799,4.57813 0,0 0.95535,-3.024 0.89867,-4.57813 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium.tw b/src/art/vector_revamp/layers/Boob_Medium.tw new file mode 100644 index 0000000000000000000000000000000000000000..f79f0d4845aa39bf58941427461b51f544d9ee8a --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2687"><path d="m 265.5598,202.06126 c -6.98215,3.2564 -12.1459,7.91148 -17.37338,13.84075 -11.32184,2.01098 -18.71223,6.38082 -25.75163,10.96125 -2.66627,10.79115 -4.63964,20.79074 2.86977,31.58189 5.0893,9.04044 12.45392,12.33466 22.45388,9.6257 10.79378,-2.60002 19.01126,-9.33031 21.77033,-22.30407 0.51484,-8.64963 10.03784,-15.80582 11.09806,-21.2787 1.24098,-5.57972 10.98028,-18.85392 3.68114,-25.19477 -5.28827,-4.59399 -12.52024,-0.43883 -18.74817,2.76795 z" class="shadow" id="path2247" sodipodi:nodetypes="ccccccccc"/><path sodipodi:nodetypes="accccccaa" id="path2685" class="skin boob" d="m 265.5598,202.06126 c -6.58282,3.38951 -11.49746,8.12763 -17.37338,13.84075 -10.4339,2.54375 -17.83242,6.90871 -25.75163,10.96125 -2.39837,10.79115 -3.49301,20.79074 2.86977,31.58189 5.76999,8.40513 13.52235,11.33746 22.45388,9.6257 10.31257,-2.97018 18.31118,-9.79744 21.77033,-22.30407 3.23278,-7.85413 11.18689,-15.27549 12.24711,-20.74837 1.24098,-5.57972 11.28964,-22.38945 3.9905,-28.7303 -5.28827,-4.59399 -13.97865,2.56637 -20.20658,5.77315 z"/></g><g transform="'+_boob_left_art_transform+'" id="g2693"><path sodipodi:nodetypes="ccccc" id="path2689" class="shadow" d="m 344.93513,247.17137 c 11.50556,-18.72777 -0.99403,-25.03554 -7.30197,-37.88762 -11.45706,-9.02941 -12.82017,-9.43754 -25.94622,-9.76379 -26.26694,13.83475 -31.50169,24.95266 -28.41478,41.82961 5.19532,26.99402 48.12646,31.37297 61.66297,5.8218 z"/><path d="m 344.93513,247.17137 c 6.85519,-11.89716 4.44093,-22.30576 -0.0687,-31.95616 -3.75098,-8.02695 -11.87524,-14.52078 -20.3528,-17.0962 -4.11529,-1.2502 -6.37048,-1.40468 -12.82672,1.40095 -25.4253,14.28793 -30.40982,25.54058 -28.41478,41.82961 5.56587,26.14704 48.78325,29.87175 61.66297,5.8218 z" class="skin boob" id="path2691" sodipodi:nodetypes="caaccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areola_Piercing.tw b/src/art/vector_revamp/layers/Boob_Medium_Areola_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..478f9839f0120c77a589f8b0e2ac31c58cd23bd0 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areola_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areola_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2527" transform="'+_boob_left_art_transform+'" ><path d="m 318.02336,210.86274 c -5e-5,0.72098 -0.77245,1.52498 -1.52538,1.52498 -0.5209,-0.31798 -0.64486,-0.93444 -1.6847,-1.42095 0,-0.75293 0.8338,-1.69079 1.61288,-1.70123 0.75078,-0.0101 1.59725,0.84217 1.5972,1.5972 z" id="path2736" sodipodi:nodetypes="accaa" class="shadow"/><path d="m 312.43119,221.98893 c 0,0.75503 -0.84635,1.5972 -1.5972,1.5972 -0.75085,0 -1.5972,-0.84217 -1.5972,-1.5972 0,-0.75502 0.84635,-1.5972 1.5972,-1.5972 0.75085,0 1.5972,0.84218 1.5972,1.5972 z" id="path2738" sodipodi:nodetypes="aaaaa" class="shadow"/><path class="steel_piercing" sodipodi:nodetypes="accaa" id="path2740" d="m 317.87933,210.86274 c 0,0.68639 -0.76752,1.452 -1.452,1.452 -0.47354,-0.28907 -0.59653,-0.82878 -1.54184,-1.27106 0,-0.68448 0.79549,-1.62217 1.54184,-1.63294 0.68251,-0.01 1.452,0.76561 1.452,1.452 z"/><path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2744" d="m 312.28599,221.98893 c 0,0.68639 -0.76941,1.452 -1.452,1.452 -0.68259,0 -1.452,-0.76561 -1.452,-1.452 0,-0.68639 0.76941,-1.452 1.452,-1.452 0.68259,0 1.452,0.76561 1.452,1.452 z"/></g><g id="g2533" transform="'+_boob_right_art_transform+'" ><path d="m 227.48194,224.84564 c 0,0.75503 -0.84635,1.5972 -1.5972,1.5972 -0.75084,0 -1.5972,-0.84217 -1.5972,-1.5972 0,-0.75503 0.84636,-1.5972 1.5972,-1.5972 0.75085,0 1.5972,0.84217 1.5972,1.5972 z" id="path2742" sodipodi:nodetypes="aaaaa" class="shadow"/><path d="m 221.3219,235.74376 c 0,0.75502 -0.84635,1.5972 -1.5972,1.5972 -0.75084,0 -1.5972,-0.84218 -1.5972,-1.5972 0,-0.75503 0.84636,-1.5972 1.5972,-1.5972 0.75085,0 1.5972,0.84217 1.5972,1.5972 z" id="path2746" sodipodi:nodetypes="aaaaa" class="shadow"/><path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2748" d="m 227.33674,224.84564 c 0,0.68639 -0.76941,1.452 -1.452,1.452 -0.68258,0 -1.452,-0.76561 -1.452,-1.452 0,-0.68639 0.76942,-1.452 1.452,-1.452 0.68259,0 1.452,0.76561 1.452,1.452 z"/><path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2751" d="m 221.1767,235.74376 c 0,0.68638 -0.76941,1.452 -1.452,1.452 -0.68258,0 -1.452,-0.76562 -1.452,-1.452 0,-0.68639 0.76942,-1.452 1.452,-1.452 0.68259,0 1.452,0.76561 1.452,1.452 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areola_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Medium_Areola_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..59567eec9547c3fd3d2a67906ecffb3d4cc2d98a --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areola_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areola_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2507" transform="'+_boob_left_art_transform+'" ><path sodipodi:nodetypes="caaacaaac" id="path2757" class="shadow" d="m 318.90291,214.58803 c 0,0 -0.13465,-4.47036 1.43,-5.58749 1.85611,-1.32523 5.3301,-1.17893 6.82,0.54779 1.43464,1.66269 0.96516,4.88585 -0.44,6.57352 -1.13778,1.36653 -5.17,1.3147 -5.17,1.3147 0,0 3.53534,-0.86423 4.29,-2.30073 0.61522,-1.17109 0.47784,-2.99147 -0.44,-3.94411 -1.02892,-1.06792 -3.08003,-1.33322 -4.4,-0.65735 -1.35318,0.69288 -2.09,4.05367 -2.09,4.05367 z"/><path sodipodi:nodetypes="caaacaaac" id="path2761" class="shadow" d="m 308.90661,215.70883 c 0,0 0.13465,-4.47036 -1.43,-5.58749 -1.85611,-1.32523 -5.3301,-1.17893 -6.82,0.5478 -1.43465,1.66269 -0.96516,4.88583 0.44,6.57351 1.13778,1.36653 5.17,1.31471 5.17,1.31471 0,0 -3.53534,-0.86423 -4.29,-2.30073 -0.61522,-1.1711 -0.47784,-2.99148 0.44,-3.94411 1.02892,-1.06793 3.08003,-1.33323 4.4,-0.65736 1.35317,0.69287 2.09,4.05367 2.09,4.05367 z"/><path d="m 319.31756,214.42348 c 0,0 -0.12241,-4.06396 1.3,-5.07954 1.68737,-1.20474 4.84554,-1.07175 6.2,0.498 1.30422,1.51154 0.87742,4.44167 -0.4,5.97592 -1.03434,1.24231 -4.7,1.19519 -4.7,1.19519 0,0 3.21394,-0.78566 3.9,-2.09158 0.55929,-1.06462 0.4344,-2.71951 -0.4,-3.58555 -0.93538,-0.97084 -2.80003,-1.21202 -4,-0.59759 -1.23016,0.62989 -1.9,3.68515 -1.9,3.68515 z" class="steel_piercing" id="path2767" sodipodi:nodetypes="caaacaaac"/><path d="m 308.49196,215.54429 c 0,0 0.12241,-4.06397 -1.3,-5.07954 -1.68737,-1.20476 -4.84554,-1.07176 -6.2,0.49799 -1.30422,1.51153 -0.87742,4.44167 0.4,5.97593 1.03434,1.24229 4.7,1.19518 4.7,1.19518 0,0 -3.21395,-0.78566 -3.9,-2.09157 -0.55929,-1.06463 -0.4344,-2.71952 0.4,-3.58556 0.93538,-0.97083 2.80003,-1.21202 4,-0.59759 1.23016,0.62988 1.9,3.68516 1.9,3.68516 z" class="steel_piercing" id="path2769" sodipodi:nodetypes="caaacaaac"/></g><g id="g2512" transform="'+_boob_right_art_transform+'" ><path sodipodi:nodetypes="caaacaaac" id="path2764" class="shadow" d="m 224.55987,227.39942 c 0,0 0.60967,-2.2986 1.54375,-2.82952 2.13513,-1.21356 5.78847,-1.60777 7.36253,0.27741 0.71838,0.86037 0.32663,2.54545 -0.475,3.32885 -1.34,1.30951 -5.58127,0.66576 -5.58127,0.66576 0,0 3.80544,0.19579 4.63127,-1.1651 0.35502,-0.58505 0.0468,-1.55454 -0.47501,-1.99731 -1.21025,-1.02692 -3.25058,-0.85339 -4.75002,-0.33287 -0.96055,0.33344 -2.25625,2.05278 -2.25625,2.05278 z"/><path d="m 224.98193,227.29715 c 0,0 0.55424,-2.08964 1.40341,-2.57229 1.94103,-1.10324 5.26225,-1.46161 6.69321,0.25218 0.65307,0.78216 0.29693,2.31406 -0.43182,3.02623 -1.21818,1.19048 -5.07388,0.60524 -5.07388,0.60524 0,0 3.45948,0.178 4.21024,-1.05918 0.32274,-0.53186 0.0425,-1.41322 -0.43182,-1.81573 -1.10023,-0.93357 -2.95507,-0.77582 -4.3182,-0.30262 -0.87323,0.30313 -2.05114,1.86617 -2.05114,1.86617 z" class="steel_piercing" id="path2771" sodipodi:nodetypes="caaacaaac"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areolae_Heart.tw b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Heart.tw new file mode 100644 index 0000000000000000000000000000000000000000..e1fc9f0be498bdeb6492471c697fac6ae0c314ee --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Heart.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areolae_Heart [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2361" transform="'+_boob_right_art_transform+'" ><path id="path2359" class="areola" d="m 232.25356,226.4419 c 4.39417,7.66356 -6.67958,11.98476 -11.29027,20.32639 0,0 -2.32901,-10.92453 -1.5718,-14.47377 0.75721,-3.54924 1.27608,-4.34257 4.50054,-6.25453 4.9477,-1.91122 6.43637,-1.61802 8.36153,0.4019 0,0 0,1e-5 0,1e-5 z" sodipodi:nodetypes="cczcac"/></g><g id="g2365" transform="'+_boob_left_art_transform+'" ><path id="path2363" d="m 310.81942,233.08395 c -4.20528,-2.9951 -12.71977,-16.79856 -6.01226,-22.33579 6.70751,-5.53723 9.65531,-0.0103 9.65531,-0.0103 0,0 5.61579,-5.19127 10.77973,1.06406 5.16394,6.25533 -9.37618,18.97767 -14.42277,21.28185 z" class="areola" sodipodi:nodetypes="czczcc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areolae_Huge.tw b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Huge.tw new file mode 100644 index 0000000000000000000000000000000000000000..ead2e97fc10c5fa32f6b7f075e4b02e6933704f0 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Huge.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areolae_Huge [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2330"><path sodipodi:nodetypes="czczsc" d="m 237.61457,219.3019 c 0,0 0.61945,6.27319 -1.77989,13.6095 -2.39927,7.33629 -14.30039,16.46948 -14.30039,16.46948 -2.73835,-3.80069 -2.90352,-12.97462 -2.1428,-17.08636 0.76072,-4.11174 0.57641,-2.75255 3.74464,-6.21424 3.9845,-4.35363 14.47844,-6.77838 14.47844,-6.77838 z" class="areola" id="path2328"/></g><g transform="'+_boob_left_art_transform+'" id="g2334"><path sodipodi:nodetypes="sssss" class="areola" d="m 312.68818,236.78493 c -8.66357,-0.95563 -17.41869,-7.34062 -17.45978,-13.06343 -0.0525,-7.30353 10.99852,-14.92615 20.70646,-14.50135 9.12899,0.39946 18.65567,6.35353 16.78428,15.20563 -1.87139,8.85212 -9.67212,13.50176 -20.03096,12.35915 z" id="path2332"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areolae_Large.tw b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Large.tw new file mode 100644 index 0000000000000000000000000000000000000000..c61693e29a1791507e08c89faad70cb446e3bc4d --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Large.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areolae_Large [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2296"><path sodipodi:nodetypes="czczsc" d="m 228.38636,223.74254 c 0,0 0.30094,3.19792 -0.8647,6.76203 -1.16561,3.5641 -7.01179,8.94586 -7.01179,8.94586 0,0 -1.57367,-6.20853 -1.19696,-7.68793 0.37668,-1.47941 0.62921,-2.29369 2.16839,-3.97544 1.93574,-2.11507 6.90506,-4.04452 6.90506,-4.04452 z" class="areola" id="path2293"/></g><g transform="'+_boob_left_art_transform+'" id="g2313"><path sodipodi:nodetypes="sssss" class="areola" d="m 313.28827,227.10156 c -4.61957,-0.50956 -9.28796,-3.91415 -9.30987,-6.96566 -0.028,-3.89437 5.86461,-7.95889 11.04106,-7.73238 4.86774,0.213 9.94754,3.38782 8.94968,8.10792 -0.99786,4.72011 -5.15735,7.19938 -10.68087,6.59012 z" id="path2310"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areolae_Normal.tw b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Normal.tw new file mode 100644 index 0000000000000000000000000000000000000000..ad4272d4432758f9b23604e02d7b023e9cc14119 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Normal.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areolae_Normal [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g1027" transform="'+_boob_right_art_transform+'" ><path id="XMLID_592_" class="areola" d="m 227.06053,224.47722 c 0,0 0.24231,2.57487 -0.69623,5.44459 -0.93851,2.86971 -5.64569,7.20295 -5.64569,7.20295 0,0 -1.26707,-4.99893 -0.96376,-6.1901 0.30329,-1.19118 0.50662,-1.84681 1.74593,-3.20091 1.5586,-1.70299 5.55975,-3.25653 5.55975,-3.25653 z" sodipodi:nodetypes="czczsc"/></g><g id="g1036" transform="'+_boob_left_art_transform+'" ><path id="XMLID_593_" d="m 313.4683,223.17155 c -3.40637,-0.37574 -6.84874,-2.88621 -6.8649,-5.13633 -0.0207,-2.87162 4.32444,-5.86871 8.14144,-5.70169 3.58937,0.15706 7.3351,2.49811 6.5993,5.97861 -0.7358,3.4805 -3.80292,5.30866 -7.87584,4.85941 z" class="areola" sodipodi:nodetypes="sssss"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areolae_Star.tw b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Star.tw new file mode 100644 index 0000000000000000000000000000000000000000..2b6b3dd7e7b44fa0615bee19abf3e1fd09a5509a --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Star.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areolae_Star [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2371" transform="'+_boob_right_art_transform+'" ><path id="path2369" class="areola" d="m 233.02542,221.55986 c -4.6859,2.14736 -5.25182,2.38871 -7.8293,5.15291 3.10943,0.0163 4.6369,0.11248 9.70681,2.24076 -8.13452,-0.21458 -10.34402,4.13038 -10.34402,4.13038 0,0 0.7366,4.80558 1.8382,10.77591 -2.3421,-2.93308 -5.27409,-9.80651 -5.27409,-9.80651 0,0 -0.57065,4.73684 -0.39999,8.20797 -1.03447,-2.46908 -1.33154,-8.50959 -1.33154,-9.96676 0,-2.16436 0.62706,-3.09666 3.74464,-6.21424 4.17315,-4.17315 9.88929,-4.52042 9.88929,-4.52042 z" sodipodi:nodetypes="cccccccssc"/></g><g id="g2375" transform="'+_boob_left_art_transform+'" ><path id="path2373" d="m 311.96943,221.02224 c -3.76567,1.79157 -6.84161,5.28921 -10.10232,7.39152 1.44885,-3.26388 2.80438,-7.85021 4.89355,-10.83394 -2.31674,-1.93975 -5.18388,-2.96451 -8.37065,-3.68536 3.56307,-1.07962 7.79205,-1.81135 11.55083,-1.25273 1.41528,-1.99803 2.88366,-2.69755 5.19852,-4.40935 0.47133,1.75669 1.08677,2.27498 2.38302,4.27914 4.40924,-0.57094 8.75671,0.34013 13.32809,1.37553 -4.74363,0.78623 -8.39968,1.78672 -11.63843,3.96162 1.36056,2.93262 2.11025,7.4758 2.95271,10.6874 -2.99455,-2.42622 -6.28672,-5.87702 -10.19532,-7.51383 z" class="areola" sodipodi:nodetypes="ccccccccccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Areolae_Wide.tw b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Wide.tw new file mode 100644 index 0000000000000000000000000000000000000000..5d180fa5a61b26613e1185a59f68af64c51634c7 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Areolae_Wide.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Areolae_Wide [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2320" transform="'+_boob_right_art_transform+'" ><path id="path2318" class="areola" d="m 232.41861,221.42292 c 0,0 0.4464,4.74369 -1.28267,10.03057 -1.72902,5.28687 -10.40105,13.26999 -10.40105,13.26999 0,0 -2.33433,-9.20953 -1.77553,-11.40402 0.55875,-2.19451 0.93334,-3.40238 3.21651,-5.89704 2.87142,-3.13742 10.24274,-5.9995 10.24274,-5.9995 z" sodipodi:nodetypes="czczsc"/></g><g id="g2324" transform="'+_boob_left_art_transform+'" ><path id="path2322" d="m 312.94881,231.61582 c -6.9072,-0.76189 -13.8874,-5.85245 -13.92016,-10.41508 -0.0419,-5.82288 8.76879,-11.90016 16.50864,-11.56148 7.27826,0.31847 14.8736,5.06548 13.3816,12.12299 -1.49201,7.05753 -7.71129,10.76454 -15.97008,9.85357 z" class="areola" sodipodi:nodetypes="sssss"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Highlights.tw b/src/art/vector_revamp/layers/Boob_Medium_Highlights.tw new file mode 100644 index 0000000000000000000000000000000000000000..524f5ada4203f3f3a556f770df5f9d8c8227a5d3 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Highlights.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Highlights [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g inkscape:groupmode="layer" id="Boob_Medium_Highlights2" inkscape:label="Boob_Medium_Highlights2" style="display:inline"><g id="g3014" transform="'+_boob_left_art_transform+'" ><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9" class="highlight2" d="m 321.76732,202.98942 c -2.24758,1.20251 -7.44827,3.88396 -5.38213,7.57381 4.23715,-0.071 5.92957,-5.70386 5.38213,-7.57381 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7" class="highlight2" d="m 312.09439,222.06039 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4" class="highlight2" d="m 312.37099,218.66381 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-70" class="highlight2" d="m 323.62317,200.44685 c -0.70321,0.2097 -1.91059,0.15541 -1.19026,1.55076 2.16327,-0.20337 1.45089,-1.07074 1.19026,-1.55076 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2" class="highlight2" d="m 314.01066,214.12617 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2-1" class="highlight2" d="m 313.88423,211.37159 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z"/></g><g id="g3024" transform="'+_boob_right_art_transform+'" ><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7" class="highlight2" d="m 247.9062,221.14042 c -7.62159,-1.9871 -15.09403,5.90489 -17.77314,7.66238 4.07679,1.14519 17.22608,2.90775 17.77314,-7.66238 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5" class="highlight2" d="m 255.78198,212.79897 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9" class="highlight2" d="m 229.41707,228.57127 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-6" class="highlight2" d="m 219.51702,235.37627 c -0.0284,5.33194 2.23939,13.97727 3.65131,15.5372 0.17258,-0.32513 -3.39485,-14.58806 -3.65131,-15.5372 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-4" class="highlight2" d="m 219.52806,232.80599 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3" class="highlight2" d="m 219.83124,227.63948 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3-9" class="highlight2" d="m 219.85898,225.8855 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z"/></g></g><g style="display:inline" inkscape:label="Boob_Medium_Highlights1" id="Boob_Medium_Highlights1" inkscape:groupmode="layer"><g id="g2210" transform="'+_boob_left_art_transform+'" ><path d="m 319.27783,205.85656 c -2.25111,1.2044 -2.83496,3.23381 -2.89058,4.67945 1.40005,-0.6336 3.43888,-2.80656 2.89058,-4.67945 z" class="highlight1" id="path1139" sodipodi:nodetypes="ccc"/><path d="m 312.08094,222.06065 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" class="highlight1" id="path1141" sodipodi:nodetypes="ccc"/></g><g id="g2992" transform="'+_boob_right_art_transform+'" ><path d="m 241.75459,224.35338 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" class="highlight1" id="path1143" sodipodi:nodetypes="ccc"/></g></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Highlights1.tw b/src/art/vector_revamp/layers/Boob_Medium_Highlights1.tw new file mode 100644 index 0000000000000000000000000000000000000000..aec5954dc82a62a21fe417df96bc644391e447e3 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Highlights1.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Highlights1 [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2210" transform="'+_boob_left_art_transform+'" ><path d="m 319.27783,205.85656 c -2.25111,1.2044 -2.83496,3.23381 -2.89058,4.67945 1.40005,-0.6336 3.43888,-2.80656 2.89058,-4.67945 z" class="highlight1" id="path1139" sodipodi:nodetypes="ccc"/><path d="m 312.08094,222.06065 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z" class="highlight1" id="path1141" sodipodi:nodetypes="ccc"/></g><g id="g2992" transform="'+_boob_right_art_transform+'" ><path d="m 241.75459,224.35338 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" class="highlight1" id="path1143" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Highlights2.tw b/src/art/vector_revamp/layers/Boob_Medium_Highlights2.tw new file mode 100644 index 0000000000000000000000000000000000000000..653982588f028573a9c6aa3e438d0ecb38c89fde --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Highlights2.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Highlights2 [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g3014" transform="'+_boob_left_art_transform+'" ><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9" class="highlight2" d="m 321.76732,202.98942 c -2.24758,1.20251 -7.44827,3.88396 -5.38213,7.57381 4.23715,-0.071 5.92957,-5.70386 5.38213,-7.57381 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7" class="highlight2" d="m 312.09439,222.06039 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4" class="highlight2" d="m 312.37099,218.66381 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-70" class="highlight2" d="m 323.62317,200.44685 c -0.70321,0.2097 -1.91059,0.15541 -1.19026,1.55076 2.16327,-0.20337 1.45089,-1.07074 1.19026,-1.55076 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2" class="highlight2" d="m 314.01066,214.12617 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-4-2-1" class="highlight2" d="m 313.88423,211.37159 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z"/></g><g id="g3024" transform="'+_boob_right_art_transform+'" ><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7" class="highlight2" d="m 247.9062,221.14042 c -7.62159,-1.9871 -15.09403,5.90489 -17.77314,7.66238 4.07679,1.14519 17.22608,2.90775 17.77314,-7.66238 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5" class="highlight2" d="m 255.78198,212.79897 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9" class="highlight2" d="m 229.41707,228.57127 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-6" class="highlight2" d="m 219.51702,235.37627 c -0.0284,5.33194 2.23939,13.97727 3.65131,15.5372 0.17258,-0.32513 -3.39485,-14.58806 -3.65131,-15.5372 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-4" class="highlight2" d="m 219.52806,232.80599 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3" class="highlight2" d="m 219.83124,227.63948 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z"/><path sodipodi:nodetypes="ccc" id="XMLID_511_-1-8-0-3-9-7-7-5-1-0-9-62-3-9" class="highlight2" d="m 219.85898,225.8855 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Nipples.tw b/src/art/vector_revamp/layers/Boob_Medium_Nipples.tw new file mode 100644 index 0000000000000000000000000000000000000000..2ecdcc2f7b6ad98b46e8aafb1da140d2092eeaa3 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Nipples.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Nipples [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2294"><path sodipodi:nodetypes="ccccc" d="m 219.66711,231.32551 c 0,0 -2.07916,-0.84424 -1.96587,-2.50683 0.27229,-2.06527 2.87049,-4.55573 4.56939,-3.54333 0.73795,0.4953 1.19745,1.3592 1.19745,1.3592 -0.28724,2.54749 -1.44251,3.76835 -3.80097,4.69096 z" class="shadow" id="path2283"/><path id="path2285" class="areola" d="m 219.66711,231.32551 c 0,0 -2.09128,-0.97248 -1.96587,-2.50683 0.22689,-1.88232 3.0014,-4.53764 4.56939,-3.54333 0.6399,0.45092 1.19745,1.3592 1.19745,1.3592 -0.28152,2.37691 -1.50508,3.78179 -3.80097,4.69096 z" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="ccc" d="m 218.29586,227.4828 c 0.63254,-0.49981 1.24594,-0.4023 2.58629,-0.13128 -1.20929,-0.062 -1.73229,-0.39852 -2.58629,0.13128 z" class="shadow" id="path2288"/><path sodipodi:nodetypes="ccc" d="m 219.23311,227.17234 c -0.0126,-0.30553 0.11607,-0.87173 0.80585,-0.93739 -0.78295,0.23692 -0.68828,0.58174 -0.80585,0.93739 z" class="shadow" id="path2290"/><path sodipodi:nodetypes="ccc" d="m 220.87274,231.59877 c 1.83694,-1.04074 2.9183,-2.84285 2.47489,-4.27858 0.24179,0.88681 0.46243,2.78645 -2.47489,4.27858 z" class="shadow" id="path2292"/></g><g transform="'+_boob_left_art_transform+'" id="g2310"><path sodipodi:nodetypes="ccscccc" class="shadow" d="m 309.81086,216.32021 c -0.65912,-0.84792 -0.55031,-2.1736 -0.36852,-2.79251 0.43828,-1.66398 2.36958,-2.51043 4.05199,-2.48698 1.47529,0.0205 2.31113,0.23638 2.97306,1.55088 0.7186,0.55937 0.76617,1.51497 0.72875,1.55811 -0.19628,1.38288 -1.11197,3.36797 -3.79882,3.25712 -2.15571,0.10863 -2.89207,-0.0288 -3.58646,-1.08662 z" id="path2298"/><path id="path2300" d="m 309.81086,216.32021 c -0.45016,-0.86882 -0.5452,-2.18377 -0.36852,-2.79251 0.46228,-1.59289 2.54845,-2.46893 4.05199,-2.48698 1.48227,-0.0177 2.31964,0.4407 2.97306,1.55088 0.60221,0.66517 0.7511,1.52867 0.72875,1.55811 -0.2578,1.29402 -1.17053,3.2834 -3.79882,3.25712 -2.03215,0.002 -2.83404,-0.0784 -3.58646,-1.08662 z" class="areola" sodipodi:nodetypes="csscccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 310.75896,212.81749 c 1.44439,-0.5616 2.8211,0.19783 3.71681,0.95003 -1.07555,-0.52478 -2.45102,-1.24397 -3.71681,-0.95003 z" id="path2302"/><path id="path2304" d="m 312.42759,212.80804 c 0.82391,-0.71672 1.32028,-0.90751 2.55627,-0.79081 -1.15563,0.0407 -1.68078,0.25167 -2.55627,0.79081 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 310.23731,216.41028 c 6.9597,1.44668 6.35651,-3.37569 6.23036,-3.85562 0.42028,2.9281 -1.33459,5.40848 -6.23036,3.85562 z" id="path2306"/><path sodipodi:nodetypes="ccc" d="m 311.91659,217.9795 c 3.67212,-0.37532 4.7724,-1.1783 5.15758,-3.33875 -0.0448,2.50473 -2.04255,3.15529 -5.15758,3.33875 z" class="shadow" id="path2308"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Outfit_Maid.tw b/src/art/vector_revamp/layers/Boob_Medium_Outfit_Maid.tw new file mode 100644 index 0000000000000000000000000000000000000000..8f03ccc92887afb27b119a2375a15331d5337808 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Outfit_Maid.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Outfit_Maid [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><defs id="defs4360"><filter style="color-interpolation-filters:sRGB" inkscape:label="Filter_Shine_Blur" id="Filter_Shine_Blur" width="4" x="-2" height="4" y="-2"><feGaussianBlur stdDeviation="1.5 1.5" result="blur" id="feGaussianBlur4091-3"/></filter><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2523"><path style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:1" d="m 274.57189,189.42903 15.50314,-3.68772 7.17414,5.6607 18.78855,-0.15563 22.89606,-10.20457 4.18325,-5.70166 12.47654,1.89159 300.60628,-20.29169 -9.82055,549.03095 -688.642378,1.7251 29.38501,-463.4512 z" id="path2525" sodipodi:nodetypes="cccccccccccc"/></clipPath></defs><g id="g2809" style="display:inline;opacity:1" clip-path="url(#clipPath2523)"><g id="g2538" transform="'+_boob_outfit_art_transform+'" ><path style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99515665" d="m 227.00685,243.38843 c -2.76471,9.20616 1.1523,22.46284 10.23433,26.44142 13.66316,10.50116 31.65638,-1.69767 47.38431,-2.79233 21.61943,-0.77747 47.79009,14.35634 64.89544,-1.51164 12.83936,-8.09143 12.84724,-26.23313 11.44045,-40.41498 0.7133,-22.58264 -24.44265,-62.6023 -24.52354,-62.59331 -0.004,-0.002 -98.3921,36.39445 -109.43099,80.87084 z" id="path2459" sodipodi:nodetypes="ccccccc"/><path sodipodi:nodetypes="aaaaaca" id="path2806" d="m 227.00685,243.38843 c -2.63483,9.07628 2.28426,21.33088 10.23433,26.44142 13.30944,8.5557 31.57548,-2.14261 47.38431,-2.79233 21.61943,-0.88852 47.79009,11.73964 64.89544,-1.51164 11.06829,-8.57445 12.1231,-26.43062 11.44045,-40.41498 -1.09258,-22.38199 -24.52354,-62.59331 -24.52354,-62.59331 0,0 -96.78599,37.31223 -109.43099,80.87084 z" style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:0.99515665"/></g></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Piercing.tw b/src/art/vector_revamp/layers/Boob_Medium_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..da50b25d3211ca8fa7fad2530b59d676a56eb62f --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" id="g2807"/><g transform="'+_boob_left_art_transform+'" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" id="g2817"><path d="m 319.36283,214.04054 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z" id="path2809" sodipodi:nodetypes="aaaaa" class="shadow"/><path d="m 309.64776,215.76331 c -0.75293,0 -1.63873,-0.84886 -1.5972,-1.5972 0.0463,-0.83366 1.21255,-1.57531 1.96548,-1.57531 -0.68775,1.21129 -0.7805,1.82947 -0.3682,3.17251 z" id="path2811" sodipodi:nodetypes="saccs" class="shadow"/><path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2813" d="m 319.21763,214.04054 c 0,0.68133 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77067 -1.452,-1.452 0,-0.68134 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77066 1.452,1.452 z"/><path class="steel_piercing" sodipodi:nodetypes="saccs" id="path2815" d="m 309.64664,215.61811 c -0.68448,0 -1.48776,-0.77158 -1.452,-1.452 0.0401,-0.76308 1.10584,-1.452 1.79032,-1.452 -0.71906,1.10285 -0.73484,1.67672 -0.33828,2.904 z"/></g><g transform="'+_boob_right_art_transform+'" id="g2827" style="display:inline"><path class="shadow" sodipodi:nodetypes="aaaaa" id="path2819" d="m 224.20461,228.08348 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z"/><path class="shadow" sodipodi:nodetypes="cscc" id="path2821" d="m 217.78699,229.56335 c -0.34466,-0.31248 -0.8444,-0.64473 -0.8444,-1.05102 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -0.83246,1.20611 -0.7528,2.64822 z"/><path d="m 224.05941,228.08348 c 0,0.68133 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77067 -1.452,-1.452 0,-0.68134 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77066 1.452,1.452 z" id="path2823" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 217.78247,229.49646 c -0.31333,-0.28407 -0.76728,-0.63503 -0.76728,-1.00438 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.5497,0.90956 -0.83533,1.21423 -0.68472,2.45638 z" id="path2825" sodipodi:nodetypes="cscc" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Medium_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Medium_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..3def579eb3e5817764073ae476be54943e9b677b --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Medium_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Medium_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_left_art_transform+'" id="g2789"><path sodipodi:nodetypes="caaacccccsascccccc" id="path2777" class="shadow" d="m 308.53153,209.94473 c 0,0 -2.49411,9.18374 -0.98325,13.39981 1.04425,2.91398 3.31774,6.91285 6.40728,6.7218 3.05706,-0.18904 4.59484,-4.44702 5.47216,-7.38158 1.23461,-4.12965 -0.7356,-12.9098 -0.7356,-12.9098 0,0 0.11352,1.8255 0.16679,3.66985 -0.16929,0.006 -2.35051,-4.1e-4 -2.35051,-4.1e-4 0.0559,0.37078 -0.0172,0.52908 -0.0182,0.90408 0,0 2.10319,-0.01 2.38726,-0.0165 0.0394,2.95347 -0.12672,6.29356 -1.09131,8.44744 -0.78349,1.74932 -2.10939,3.66042 -3.89433,3.67566 -1.987,0.017 -3.50956,-2.07688 -4.40441,-4.01713 -0.94479,-2.04857 -1.13062,-5.2179 -1.1115,-8.05448 0.44876,0 0.89492,-0.0536 0.89492,-0.0536 l 0.20179,-0.91124 c 0,0 -0.63009,-0.0132 -1.08238,-0.0132 0.0399,-1.72733 0.14124,-3.46134 0.14124,-3.46134 z"/><path sodipodi:nodetypes="caccc" id="path2779" class="shadow" d="m 313.96786,226.69394 c 0,0 -1.85221,9.4952 -1.92044,14.30624 -0.078,5.49738 1.72993,16.40283 1.72993,16.40283 0,0 -0.37012,-9.79442 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z"/><path sodipodi:nodetypes="cacac" id="path2781" class="shadow" d="m 313.71366,255.39314 c 0,0 -1.08607,3.59047 -0.98853,5.42648 0.0928,1.74745 1.48279,5.03598 1.48279,5.03598 0,0 1.05088,-3.32642 0.98853,-5.03598 -0.0683,-1.87389 -1.48279,-5.42648 -1.48279,-5.42648 z"/><path d="m 308.97852,210.85194 c 0,0 -2.26737,8.34885 -0.89386,12.18164 0.94932,2.64907 3.01613,6.28441 5.8248,6.11072 2.77915,-0.17186 4.17713,-4.04274 4.97469,-6.71053 1.12237,-3.75422 -0.66873,-11.73618 -0.66873,-11.73618 0,0 0.1032,1.19752 0.15163,2.87419 -0.1539,0.005 -1.857,-3.7e-4 -1.857,-3.7e-4 -0.01,0.4056 -0.009,0.4963 -0.0851,0.81799 0,0 1.70069,-0.005 1.95894,-0.0111 0.0358,2.68498 -0.1152,6.18346 -0.9921,8.14152 -0.71227,1.59029 -1.91762,3.32765 -3.5403,3.34151 -1.80636,0.0154 -3.19051,-1.88807 -4.00401,-3.65193 -0.8589,-1.86234 -1.02784,-5.20558 -1.01046,-7.78429 0.40797,0 0.46484,-0.0487 0.46484,-0.0487 l 0.16073,-0.8284 c 0,0 -0.20131,-0.012 -0.61253,-0.012 0.0363,-1.5703 0.1284,-2.68465 0.1284,-2.68465 z" class="steel_piercing" id="path2783" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 313.92164,228.08981 c 0,0 -1.68382,8.632 -1.74585,13.00567 -0.0709,4.99762 1.57266,14.91166 1.57266,14.91166 0,0 -0.33647,-8.90402 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" class="steel_piercing" id="path2785" sodipodi:nodetypes="caccc"/><path d="m 313.73597,255.8687 c 0,0 -0.98734,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57815 1.34799,4.57815 0,0 0.95535,-3.02401 0.89867,-4.57815 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z" class="steel_piercing" id="path2787" sodipodi:nodetypes="cacac"/></g><g transform="'+_boob_right_art_transform+'" id="g2803"><path sodipodi:nodetypes="caaacccccsascccccc" id="path2791" class="shadow" d="m 224.22146,224.11765 c 0,0 1.84875,9.08379 0.67687,13.39983 -0.70222,2.58629 -1.73488,6.86756 -4.41084,6.72179 -2.75834,-0.15025 -3.17412,-4.68356 -3.76709,-7.3816 -0.92442,-4.20618 0.5064,-12.90978 0.5064,-12.90978 0,0 -0.0782,1.73915 -0.11483,3.58349 0.11654,0.006 1.05275,-4.1e-4 1.05275,-4.1e-4 l -0.54866,0.90407 c 0,0 -0.32127,-0.01 -0.51683,-0.0165 -0.0271,2.95346 0.0873,6.37993 0.75126,8.5338 0.53937,1.74933 1.16447,3.66322 2.68091,3.67564 1.67758,0.0137 2.41602,-2.07685 3.03204,-4.01709 0.65041,-2.04858 0.77834,-5.30427 0.76517,-8.14084 -0.30893,0 -1.87642,-0.0536 -1.87642,-0.0536 0.0596,-0.36182 0.0683,-0.46339 0.2179,-0.91125 0,0 1.33728,-0.0132 1.64865,-0.0132 -0.0275,-1.72732 -0.0972,-3.37499 -0.0972,-3.37499 z"/><path sodipodi:nodetypes="caccc" id="path2793" class="shadow" d="m 220.8683,241.74486 c 0,0 -1.85221,9.4952 -1.92044,14.30623 -0.078,5.49739 1.72993,16.40284 1.72993,16.40284 0,0 -0.37012,-9.79444 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z"/><path sodipodi:nodetypes="cacac" id="path2795" class="shadow" d="m 220.6141,270.44405 c 0,0 -1.08607,3.59049 -0.98853,5.4265 0.0928,1.74744 1.48279,5.03595 1.48279,5.03595 0,0 1.05088,-3.3264 0.98853,-5.03595 -0.0683,-1.8739 -1.48279,-5.4265 -1.48279,-5.4265 z"/><path d="m 223.91434,225.02477 c 0,0 1.68069,8.258 0.61534,12.18167 -0.63838,2.35118 -1.57717,6.24324 -4.00986,6.11072 -2.50758,-0.13659 -2.88557,-4.25779 -3.42463,-6.71055 -0.84038,-3.8238 0.46036,-11.73616 0.46036,-11.73616 0,0 -0.071,1.19752 -0.10438,2.87419 0.10594,0.005 0.62785,-3.7e-4 0.62785,-3.7e-4 l -0.33933,0.82187 c 0,0 -0.12233,-0.009 -0.30011,-0.015 -0.0247,2.68496 0.0793,6.18345 0.68297,8.14152 0.49034,1.5903 1.05861,3.33021 2.43719,3.3415 1.52508,0.0125 2.19638,-1.88805 2.7564,-3.65191 0.59128,-1.86235 0.70758,-5.20558 0.69561,-7.78429 -0.28085,0 -1.70584,-0.0487 -1.70584,-0.0487 0.0541,-0.32893 0.16478,-0.53596 0.16187,-0.82841 0,0 1.25193,-0.012 1.535,-0.012 -0.025,-1.57029 -0.0884,-2.68465 -0.0884,-2.68465 z" class="steel_piercing" id="path2797" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 220.82208,243.14073 c 0,0 -1.68382,8.632 -1.74585,13.00566 -0.0709,4.99762 1.57266,14.91167 1.57266,14.91167 0,0 -0.33647,-8.90403 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z" class="steel_piercing" id="path2799" sodipodi:nodetypes="caccc"/><path d="m 220.63641,270.91962 c 0,0 -0.98735,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57813 1.34799,4.57813 0,0 0.95535,-3.02399 0.89867,-4.57813 -0.0621,-1.70354 -1.34799,-4.93318 -1.34799,-4.93318 z" class="steel_piercing" id="path2801" sodipodi:nodetypes="cacac"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Heart.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Heart.tw new file mode 100644 index 0000000000000000000000000000000000000000..1db32492478aa16f1a8203b4db1508589b48c6d4 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Heart.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Heart [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccczcc" class="areola" d="m 245.56185,251.55642 c -0.86254,-0.78552 -2.03098,-2.55215 -3.02546,-4.70061 -0.10805,-2.51234 0.0677,-9.261 3.10818,-14.05758 1.421,0.25373 2.07623,1.82455 2.07623,1.82455 0,0 3.32805,-3.93385 6.38833,0.80632 3.06028,4.74018 -5.55654,14.38093 -8.54728,16.12699 z" id="path2482-8-7"/><path sodipodi:nodetypes="czczcc" class="areola" d="m 311.20178,248.40454 c -3.18669,-2.26963 -9.63881,-12.72964 -4.55598,-16.92564 5.08282,-4.19601 7.31661,-0.008 7.31661,-0.008 0,0 4.25554,-3.93385 8.16868,0.80632 3.91314,4.74018 -7.10509,14.38093 -10.92931,16.12699 z" id="path2482-8"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3454"/><path id="path3456" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3458"/><path id="path3460" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3464"/><path id="path3466" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3468"/><path id="path3470" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Huge.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Huge.tw new file mode 100644 index 0000000000000000000000000000000000000000..3ae1f5e9b273922488348ce101a02820dc2b7b93 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Huge.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Huge [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="sssss" class="areola" d="m 312.36549,244.87514 c -3.61722,-0.50693 -7.2727,-3.89397 -7.28985,-6.92977 -0.0217,-3.87428 4.59215,-7.91784 8.64542,-7.69252 3.81157,0.2119 7.78917,3.37036 7.00783,8.06614 -0.78135,4.69578 -4.03833,7.16227 -8.3634,6.55615 z" id="path3496"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3498"/><path id="path3500" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3502"/><path id="path3504" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="sccsss" class="areola" d="m 246.55371,247.8122 c -1.42904,-0.30609 -2.86721,-1.66227 -3.78493,-3.35714 -0.13062,-3.67239 0.5558,-7.15081 2.2875,-10.24949 0.83401,-0.69815 1.50768,-1.09014 2.38433,-1.01566 2.49382,0.21188 5.09628,3.37036 4.58507,8.06614 -0.51122,4.69578 -2.64219,7.16228 -5.47197,6.55615 z" id="path3506"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3508"/><path id="path3510" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3512"/><path id="path3514" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Large.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Large.tw new file mode 100644 index 0000000000000000000000000000000000000000..0022f1793ac0d65cdcf82051f46f5ed92935e5f3 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Large.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Large [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="sssss" class="areola" d="m 312.54464,242.65363 c -2.51196,-0.35203 -5.05049,-2.70415 -5.0624,-4.81234 -0.0151,-2.69047 3.18899,-5.4985 6.00377,-5.34202 2.64692,0.14715 5.40914,2.34052 4.86655,5.60148 -0.54261,3.26096 -2.8044,4.9738 -5.80792,4.55288 z" id="path3540"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3542"/><path id="path3544" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3546"/><path id="path3548" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="sssss" class="areola" d="m 247.17149,245.59069 c -1.85435,-0.35203 -3.72832,-2.70415 -3.73712,-4.81234 -0.0108,-2.69047 2.35414,-5.4985 4.43204,-5.34202 1.95398,0.14715 3.99308,2.34052 3.59253,5.60148 -0.40055,3.26096 -2.07023,4.9738 -4.28745,4.55288 z" id="path3550"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3552"/><path id="path3554" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3556"/><path id="path3558" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Areola_NoBoob.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Normal.tw similarity index 98% rename from src/art/vector_revamp/layers/Boob_Areola_NoBoob.tw rename to src/art/vector_revamp/layers/Boob_None_Areola_Normal.tw index f1d0120faef2906fdfecabd1d4bd6056edb0cf73..372b85219083e21f337b2c5f225f43cc26cc1c88 100644 --- a/src/art/vector_revamp/layers/Boob_Areola_NoBoob.tw +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Normal.tw @@ -1,3 +1,3 @@ -:: Art_Vector_Revamp_Boob_Areola_NoBoob [nobr] +:: Art_Vector_Revamp_Boob_None_Areola_Normal [nobr] <<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path id="path1074" d="m 312.6125,241.81215 c -2.0933,-0.29336 -4.20874,-2.25346 -4.21867,-4.01028 -0.0126,-2.24206 2.65749,-4.58209 5.00314,-4.45169 2.20577,0.12263 4.50762,1.95044 4.05546,4.6679 -0.45217,2.71747 -2.337,4.14484 -4.83993,3.79407 z" class="areola" sodipodi:nodetypes="sssss"/><path id="path1082" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" class="shadow" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccsscsc" class="areola" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" id="path1084"/><path id="path1086" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" id="path1088"/><path id="path1074-8" d="m 247.22158,244.74921 c -1.54529,-0.29336 -3.10693,-2.25346 -3.11426,-4.01028 -0.009,-2.24206 1.96178,-4.58209 3.69336,-4.45169 1.62832,0.12263 3.32757,1.95044 2.99378,4.6679 -0.33379,2.71747 -1.72519,4.14484 -3.57288,3.79407 z" class="areola" sodipodi:nodetypes="sssss"/><path id="path1082-6" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" class="shadow" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccsscsc" class="areola" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" id="path1084-7"/><path id="path1086-5" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" id="path1088-1"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Piercing.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..718ef8a6f822b1f60bdc1631a15d8e2d1509765e --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g3997" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5146" d="m 249.37141,236.16209 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 249.22621,236.16209 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5148" d="m 248.77479,245.35448 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 248.62959,245.35448 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-5" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5150" d="m 315.53009,232.95802 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 315.38489,232.95802 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-76" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5152" d="m 314.20427,242.60621 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 314.05907,242.60621 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-4" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..ea4e036122bc7981cab7f82c7be27c297ff1ce17 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="matrix(1.0049807,0,0,1.0049807,-1.6578337,-0.99661844)" id="g1669" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g transform="matrix(1.0106254,0,0,1.0106254,-2.44532,-2.2864495)" id="g1677" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g id="g3991" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path d="m 316.39389,239.90478 c 0,0 3.2247,3.12482 5.1113,2.71879 2.22965,-0.47988 4.45815,-3.14958 4.18403,-5.41376 -0.265,-2.18891 -2.97434,-4.01868 -5.17703,-4.1173 -1.77684,-0.0795 -4.45626,2.93478 -4.45626,2.93478 0,0 3.02457,-2.02781 4.59604,-1.6176 1.28507,0.33544 2.54463,1.66577 2.63232,2.991 0.0979,1.47984 -1.08496,3.17766 -2.4737,3.69817 -1.42807,0.53526 -4.4167,-1.19408 -4.4167,-1.19408 z" class="shadow" id="path5154" sodipodi:nodetypes="caaacaaac"/><path d="m 309.09912,239.33692 c 0,0 -3.63548,2.6356 -5.44536,1.96596 -2.13901,-0.79141 -3.96612,-3.75032 -3.37348,-5.95269 0.57293,-2.12915 3.51451,-3.55595 5.7089,-3.34101 1.77014,0.17338 3.99471,3.53744 3.99471,3.53744 0,0 -2.70621,-2.43649 -4.31999,-2.25342 -1.31966,0.1497 -2.75526,1.28782 -3.03012,2.5872 -0.30692,1.45096 0.62309,3.29946 1.9239,4.01176 1.33767,0.73248 4.54144,-0.55524 4.54144,-0.55524 z" class="shadow" id="path5156" sodipodi:nodetypes="caaacaaac"/><path d="m 250.11413,242.34048 c 0,0 2.50391,3.06938 4.10816,2.71878 2.07541,-0.45357 3.61174,-3.30398 3.36288,-5.41376 -0.22858,-1.9378 -2.21189,-4.02594 -4.161,-4.1173 -1.5418,-0.0723 -3.58167,2.93479 -3.58167,2.93479 0,0 2.39892,-1.97771 3.69402,-1.61761 1.17658,0.32716 2.04104,1.77207 2.1157,2.991 0.0856,1.39697 -0.68667,3.18357 -1.98821,3.69817 -1.161,0.45903 -3.54988,-1.19407 -3.54988,-1.19407 z" class="shadow" id="path5159" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6" class="steel_piercing" d="m 316.80209,239.7203 c 0,0 2.93154,2.84074 4.64663,2.47162 2.02696,-0.43625 4.05287,-2.86325 3.80367,-4.9216 -0.24091,-1.98991 -2.70395,-3.65334 -4.70639,-3.743 -1.61531,-0.0723 -4.05115,2.66799 -4.05115,2.66799 0,0 2.74961,-1.84347 4.17822,-1.47055 1.16824,0.30495 2.3133,1.51434 2.39302,2.71909 0.089,1.34531 -0.98633,2.88878 -2.24882,3.36197 -1.29825,0.4866 -4.01518,-1.08552 -4.01518,-1.08552 z"/><path d="m 244.44613,241.71183 c 0,0 -2.00072,2.39045 -3.16913,1.96596 -1.96379,-0.71346 -2.44375,-3.91931 -1.96331,-5.95269 0.36115,-1.52853 1.75982,-3.49874 3.32249,-3.34101 1.40388,0.1417 2.32487,3.53744 2.32487,3.53744 0,0 -1.39697,-2.38913 -2.51418,-2.25342 -1.03607,0.12585 -1.59405,1.55735 -1.76347,2.5872 -0.22538,1.36995 -0.067,3.29109 1.11967,4.01176 0.76947,0.4673 2.64306,-0.55524 2.64306,-0.55524 z" class="shadow" id="path5161" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4" class="steel_piercing" d="m 308.73334,239.09718 c 0,0 -3.30498,2.396 -4.95033,1.78724 -1.94455,-0.71946 -3.60556,-3.40938 -3.0668,-5.41154 0.52085,-1.93559 3.19501,-3.23268 5.18991,-3.03728 1.60922,0.15762 3.63156,3.21586 3.63156,3.21586 0,0 -2.46019,-2.21499 -3.92727,-2.04857 -1.19969,0.13609 -2.50478,1.17075 -2.75465,2.352 -0.27902,1.31906 0.56644,2.99951 1.749,3.64706 1.21606,0.66589 4.12858,-0.50477 4.12858,-0.50477 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-7" class="steel_piercing" d="m 250.44258,242.15562 c 0,0 2.27628,2.79035 3.73469,2.47162 1.88674,-0.41234 3.2834,-3.00362 3.05716,-4.9216 -0.2078,-1.76164 -2.01081,-3.65995 -3.78272,-3.743 -1.40164,-0.0657 -3.25607,2.66799 -3.25607,2.66799 0,0 2.18084,-1.79792 3.3582,-1.47055 1.06962,0.29741 1.85549,1.61097 1.92337,2.71909 0.0778,1.26997 -0.62425,2.89415 -1.80747,3.36197 -1.05545,0.4173 -3.22716,-1.08552 -3.22716,-1.08552 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-6-4-1" class="steel_piercing" d="m 244.22839,241.47 c 0,0 -1.81884,2.17314 -2.88103,1.78724 -1.78526,-0.6486 -2.22159,-3.56301 -1.78483,-5.41154 0.32832,-1.38957 1.59984,-3.18067 3.02045,-3.03728 1.27625,0.12882 2.11352,3.21586 2.11352,3.21586 0,0 -1.26998,-2.17194 -2.28562,-2.04857 -0.94188,0.11441 -1.44914,1.41578 -1.60316,2.352 -0.20489,1.24541 -0.0609,2.9919 1.01789,3.64706 0.69951,0.42482 2.40278,-0.50477 2.40278,-0.50477 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Star.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Star.tw new file mode 100644 index 0000000000000000000000000000000000000000..ed0edacfa1b84755b6c5df77f4ac90444a15df41 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Star.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Star [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccccccccccc" class="areola" d="m 245.94542,243.7292 c -1.59722,1.06191 -2.35083,2.49876 -3.47795,3.76961 l 0.32113,-3.98865 c 0.0553,-0.7947 0.40279,-1.51228 0.75202,-2.1894 l -0.31673,-0.21132 c 0.14076,-1.07326 0.28806,-2.14356 0.74577,-3.07275 0.37871,-0.20231 0.7193,-0.2331 1.0392,-0.17079 1.01956,-2.12609 3.72149,-6.1021 3.72149,-6.1021 0,0 -0.79365,4.08678 -0.92235,6.011 1.85312,0.24383 5.32849,0.96237 5.32849,0.96237 0,0 -3.2575,1.66352 -4.54841,2.77169 0.4372,2.531 2.06436,7.47727 2.06436,7.47727 0,0 -3.66477,-3.07349 -4.70702,-5.25693 z" id="path2472-3-6"/><path sodipodi:nodetypes="ccccccccccc" class="areola" d="m 312.50785,241.03136 -7.06793,5.17136 3.4237,-7.5798 -5.8564,-2.5784 8.08136,-0.87646 2.8937,-6.1021 1.34811,6.011 8.07479,0.96237 -6.89265,2.77169 3.12832,7.47727 z" id="path2472-3"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3476"/><path id="path3478" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3480"/><path id="path3482" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3486"/><path id="path3488" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3490"/><path id="path3492" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Areola_Wide.tw b/src/art/vector_revamp/layers/Boob_None_Areola_Wide.tw new file mode 100644 index 0000000000000000000000000000000000000000..8e02aad1b061bae2c004b6e96b765b37d2feaa6d --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Areola_Wide.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Areola_Wide [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="sssss" class="areola" d="m 312.46321,243.66341 c -3.01435,-0.42244 -6.06059,-3.24498 -6.07488,-5.77481 -0.0181,-3.22857 3.82679,-6.5982 7.20452,-6.41043 3.17631,0.17658 6.49097,2.80863 5.83986,6.72178 -0.65113,3.91315 -3.36528,5.96856 -6.9695,5.46346 z" id="path3518"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.30525,-0.47307 -2.84254,-1.38769 -0.0692,-0.11498 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.38054,-1.82945 2.49788,-1.77138 1.83776,0.0955 2.2692,2.11008 2.25662,2.11245 -0.19082,0.92279 -0.63028,2.09291 -1.87298,2.09291 z" id="path3520"/><path id="path3522" d="m 313.47573,239.66032 c -1.94762,-0.0319 -2.40618,-0.60407 -2.84254,-1.38769 -0.0133,0.01 -0.14074,-0.6753 -0.039,-1.04629 0.26998,-0.9844 1.53307,-1.84755 2.49788,-1.77138 1.78528,0.14096 2.2692,2.11008 2.25662,2.11245 -0.15647,0.78536 -0.63028,2.09291 -1.87298,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 311.35893,236.87262 c 0.87662,-0.34085 1.71217,0.12006 2.25579,0.57658 -0.65277,-0.31849 -1.48757,-0.75499 -2.25579,-0.57658 z" id="path3524"/><path id="path3526" d="m 312.37165,236.86687 c 0.50004,-0.43498 0.80129,-0.55077 1.55144,-0.47994 -0.70137,0.0247 -1.0201,0.15274 -1.55144,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="sccsss" class="areola" d="m 247.11138,246.60047 c -1.68167,-0.31925 -3.377,-2.00927 -4.10929,-3.90778 -0.21043,-2.33888 0.48566,-4.99206 1.49412,-6.5277 0.99819,-1.12304 2.26263,-1.8391 3.44907,-1.74976 2.34478,0.17657 4.7917,2.80863 4.31104,6.72178 -0.48066,3.91315 -2.48428,5.96856 -5.14494,5.46346 z" id="path3528"/><path sodipodi:nodetypes="ccsscsc" class="shadow" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.11037,-0.47307 -2.60223,-1.38769 -0.0634,-0.11498 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.26383,-1.82945 2.28672,-1.77138 1.68239,0.0955 2.07736,2.11008 2.06584,2.11245 -0.17469,0.92279 -0.57699,2.09291 -1.71464,2.09291 z" id="path3530"/><path id="path3532" d="m 246.84943,242.44113 c -1.78297,-0.0319 -2.20276,-0.60407 -2.60223,-1.38769 -0.0122,0.01 -0.12885,-0.6753 -0.0357,-1.04629 0.24716,-0.9844 1.40347,-1.84755 2.28672,-1.77138 1.63435,0.14096 2.07736,2.11008 2.06584,2.11245 -0.14324,0.78536 -0.57699,2.09291 -1.71464,2.09291 z" class="areola" sodipodi:nodetypes="ccsscsc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 244.21552,240.06223 c 0.80251,-0.34085 1.56743,0.12006 2.06509,0.57658 -0.59758,-0.31849 -1.36181,-0.75499 -2.06509,-0.57658 z" id="path3534"/><path id="path3536" d="m 245.14263,240.05648 c 0.45777,-0.43498 0.73355,-0.55077 1.42028,-0.47994 -0.64208,0.0247 -0.93386,0.15274 -1.42028,0.47994 z" class="shadow" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Piercing.tw b/src/art/vector_revamp/layers/Boob_None_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..00ce08ea72a5b1a8da39012a9908f863e374fda6 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g4003" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5118" d="m 317.55033,237.51562 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 317.40513,237.51562 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5120" d="m 311.06595,237.34375 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75292,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84428,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 310.92075,237.34375 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68447,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76753,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-3" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5122" d="m 250.31593,240.49857 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 250.17073,240.49857 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="csasccc" id="path5124" d="m 244.73869,241.83277 c -0.14826,0.0584 -0.30012,0.0911 -0.44845,0.0911 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.20146,0 0.40944,0.0605 0.60606,0.16339 -0.83243,0.65113 -1.08254,2.0678 -0.15761,2.93988 z"/><path d="m 244.65287,241.69585 c -0.13478,0.0531 -0.27284,0.0828 -0.40768,0.0828 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.18314,0 0.37222,0.055 0.55096,0.14854 -0.68459,0.57919 -0.90899,1.86654 -0.14328,2.67261 z" id="path2749-8-3-4" sodipodi:nodetypes="csascc" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_None_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_None_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..0f0f335896f8883aacd2b1c5f57197f072548054 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_None_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_None_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g3755" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path d="m 309.14219,234.55641 c 0,0 -1.66351,6.13387 -0.6555,8.95038 0.69607,1.9449 2.20975,4.61726 4.27152,4.4898 2.04057,-0.12615 3.06329,-2.97147 3.6481,-4.93052 0.82353,-2.7587 -0.4904,-8.62306 -0.4904,-8.62306 0,0 0.0757,0.87987 0.1112,2.11179 -0.11286,0.003 -0.5941,-2.8e-4 -0.5941,-2.8e-4 l 0.18681,0.60388 c 0,0 0.23025,-0.007 0.41963,-0.011 0.0263,1.97276 -0.0845,4.54326 -0.72754,5.98192 -0.52233,1.16847 -1.40518,2.44497 -2.59622,2.45515 -1.32582,0.0113 -2.33971,-1.38723 -2.93627,-2.68322 -0.62986,-1.36835 -0.75375,-3.82476 -0.74101,-5.71945 0.29918,0 1.29193,-0.0359 1.29193,-0.0359 l 0.0835,-0.60866 c 0,0 -1.06431,-0.009 -1.36586,-0.009 0.0266,-1.15377 0.0942,-1.97253 0.0942,-1.97253 z" class="shadow" id="path5128" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 249.30676,237.70242 c 0,0 1.66352,6.13388 0.6555,8.95038 -0.69607,1.9449 -2.20974,4.61726 -4.27152,4.4898 -2.04056,-0.12615 -3.06329,-2.97147 -3.6481,-4.93052 -0.82353,-2.7587 0.4904,-8.62306 0.4904,-8.62306 0,0 -0.0757,0.87987 -0.1112,2.11179 0.11286,0.003 1.62535,-2.8e-4 1.62535,-2.8e-4 l -0.0321,0.60388 c 0,0 -1.41619,-0.007 -1.60557,-0.011 -0.0263,1.97276 0.0845,4.54326 0.72754,5.98192 0.52233,1.16847 1.40518,2.44498 2.59622,2.45515 1.32583,0.0113 2.33971,-1.38723 2.93627,-2.68322 0.62986,-1.36835 0.75375,-3.82476 0.74101,-5.71945 -0.29918,0 -1.29193,-0.0359 -1.29193,-0.0359 l -0.0835,-0.60866 c 0,0 1.06431,-0.009 1.36586,-0.009 -0.0266,-1.15377 -0.0942,-1.97253 -0.0942,-1.97253 z" class="shadow" id="path5130" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 312.76639,245.60534 c 0,0 -1.2348,6.34214 -1.28029,9.55581 -0.052,3.67206 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5132" sodipodi:nodetypes="caccc"/><path d="m 312.59693,264.7749 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5134" sodipodi:nodetypes="cacac"/><path d="m 245.85647,248.53096 c 0,0 -1.2348,6.34215 -1.28029,9.55581 -0.052,3.67207 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5136" sodipodi:nodetypes="caccc"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9" class="steel_piercing" d="m 309.44017,235.16237 c 0,0 -1.51228,5.57625 -0.59591,8.13671 0.63279,1.76809 2.00887,4.19751 3.8832,4.08164 1.85507,-0.11468 2.78481,-2.70134 3.31646,-4.48229 0.74866,-2.50791 -0.44582,-7.83915 -0.44582,-7.83915 0,0 0.0688,0.79988 0.10109,1.91981 -0.1026,0.003 -0.54009,-2.5e-4 -0.54009,-2.5e-4 l 0.16983,0.54898 c 0,0 0.20931,-0.006 0.38148,-0.01 0.0239,1.79342 -0.0768,4.13023 -0.6614,5.43811 -0.47485,1.06224 -1.27744,2.2227 -2.3602,2.23195 -1.20529,0.0103 -2.12701,-1.26112 -2.66934,-2.43929 -0.5726,-1.24395 -0.68523,-3.47705 -0.67364,-5.1995 0.27198,0 1.17448,-0.0326 1.17448,-0.0326 l 0.0759,-0.55333 c 0,0 -0.96756,-0.008 -1.24169,-0.008 0.0242,-1.04888 0.0856,-1.79321 0.0856,-1.79321 z"/><path d="m 245.68701,267.70052 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5138" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0" class="steel_piercing" d="m 249.00878,238.30838 c 0,0 1.51229,5.57626 0.59591,8.13671 -0.63279,1.76809 -2.00886,4.19751 -3.8832,4.08164 -1.85506,-0.11468 -2.78481,-2.70134 -3.31646,-4.48229 -0.74866,-2.50791 0.44582,-7.83915 0.44582,-7.83915 0,0 -0.0688,0.79988 -0.10109,1.91981 0.1026,0.003 1.47759,-2.5e-4 1.47759,-2.5e-4 l -0.0292,0.54898 c 0,0 -1.28744,-0.006 -1.45961,-0.01 -0.0239,1.79342 0.0768,4.13023 0.6614,5.43811 0.47485,1.06224 1.27744,2.22271 2.3602,2.23195 1.2053,0.0103 2.12701,-1.26112 2.66934,-2.43929 0.5726,-1.24395 0.68523,-3.47705 0.67364,-5.1995 -0.27198,0 -1.17448,-0.0326 -1.17448,-0.0326 l -0.0759,-0.55333 c 0,0 0.96756,-0.008 1.24169,-0.008 -0.0242,-1.04888 -0.0856,-1.79321 -0.0856,-1.79321 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0" class="steel_piercing" d="m 312.73558,246.53771 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0473,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7" class="steel_piercing" d="m 312.6118,265.09255 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5" class="steel_piercing" d="m 245.82566,249.46333 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0472,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4" class="steel_piercing" d="m 245.70188,268.01817 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Outfit_Maid.tw b/src/art/vector_revamp/layers/Boob_Outfit_Maid.tw deleted file mode 100644 index 1ee7b7356921ce26d670950beea024b0251587f5..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Outfit_Maid.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Outfit_Maid [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"style="display:inline;opacity:1" id="g2134" transform="matrix(0.99515665,0,0,0.99515665,1.6400838,0.96959443)"><path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2120" d="m 226.34766,216.85742 c 2.98619,-0.62315 5.85031,-1.4204 8.64453,-2.38086 2.79422,-0.96045 5.51818,-2.08363 8.22656,-3.35742 2.70838,-1.27379 5.40024,-2.69856 8.12891,-4.26172 2.72867,-1.56316 5.49451,-3.2652 8.34961,-5.09375 -11.79723,6.74895 -21.9632,11.76361 -33.34961,15.09375 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/><path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2122" d="m 210.87305,229.81641 c 0.0451,-0.71382 0.22536,-1.51018 0.23047,-2.16797 0.006,-0.73749 0.0162,-1.44067 0.0996,-2.11719 0.0834,-0.67652 0.23899,-1.32563 0.53516,-1.95117 0.29618,-0.62554 0.73278,-1.22795 1.37695,-1.8125 0.64418,-0.58456 1.4957,-1.15152 2.62305,-1.70508 1.12735,-0.55356 2.52969,-1.0944 4.27539,-1.62695 1.74571,-0.53255 3.83474,-1.0566 6.33399,-1.57813 -18.80751,3.15763 -15.50638,7.20888 -15.47461,12.95899 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/><path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2124" d="m 217.95898,264.23438 c -1.87038,-2.59224 -3.45412,-5.21814 -4.73046,-7.86329 -1.27635,-2.64515 -2.24524,-5.30915 -2.88672,-7.97461 -0.32074,-1.33272 -0.56048,-2.66635 -0.71485,-3.99804 -0.15437,-1.33169 -0.22414,-2.66171 -0.20703,-3.98828 0.0171,-1.32658 0.12272,-2.64941 0.31641,-3.9668 0.19369,-1.31739 0.47619,-2.62947 0.85156,-3.93359 -3.41169,10.57894 -1.27171,21.77042 7.37109,31.72461 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/><path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2126" d="m 235.44727,272.8418 c -1.78236,-0.10142 -3.49568,-0.27493 -5.13086,-0.58203 -1.63519,-0.30711 -3.19249,-0.74733 -4.66211,-1.38282 -1.46962,-0.63548 -2.85106,-1.46617 -4.13672,-2.55273 -1.28566,-1.08657 -2.47529,-2.42951 -3.5586,-4.08984 4.0232,7.19252 9.64374,9.47305 17.48829,8.60742 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/><path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2128" d="m 352.21094,243.07812 c -0.86728,1.85762 -1.81754,3.59094 -2.84961,5.20508 -1.03208,1.61415 -2.14654,3.10879 -3.33985,4.49219 -1.19331,1.3834 -2.46542,2.65492 -3.8164,3.82031 -1.35099,1.16539 -2.78006,2.22544 -4.28516,3.18555 -1.5051,0.96011 -3.08653,1.82033 -4.74219,2.58789 -1.65565,0.76756 -3.38485,1.44155 -5.1875,2.0293 -1.80264,0.58774 -3.67891,1.08911 -5.625,1.50976 -1.94608,0.42066 -3.96287,0.76104 -6.04882,1.02735 17.12494,-2.04297 30.70536,-8.64667 35.89453,-23.85743 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/><path sodipodi:nodetypes="ccsscccsscccccssscccccccscsccccscsccccccccsc" transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2130" d="m 339.94922,198.16016 c -32.0958,-3.67156 -54.13039,-3.02574 -80.25195,3.60351 -2.8551,1.82855 -5.62094,3.53059 -8.34961,5.09375 -2.72867,1.56316 -5.42053,2.98793 -8.12891,4.26172 -2.70838,1.27379 -5.43234,2.39697 -8.22656,3.35742 -2.79422,0.96046 -5.65834,1.75771 -8.64453,2.38086 -2.49925,0.52153 -4.58828,1.04558 -6.33399,1.57813 -1.7457,0.53255 -3.14804,1.07339 -4.27539,1.62695 -1.12735,0.55356 -1.97887,1.12052 -2.62305,1.70508 -0.64417,0.58455 -1.08077,1.18696 -1.37695,1.8125 -0.29617,0.62554 -0.4518,1.27465 -0.53516,1.95117 -0.0834,0.67652 -0.0939,1.3797 -0.0996,2.11719 -0.005,0.65779 -0.1854,1.45415 -0.23047,2.16797 0.005,0.86012 -0.0584,1.75431 -0.28516,2.69336 -0.37537,1.30412 -0.65787,2.6162 -0.85156,3.93359 -0.19369,1.31739 -0.2993,2.64022 -0.31641,3.9668 -0.0171,1.32657 0.0527,2.65659 0.20703,3.98828 0.15437,1.33169 0.39411,2.66532 0.71485,3.99804 0.64148,2.66546 1.61037,5.32946 2.88672,7.97461 1.27634,2.64515 2.86008,5.27105 4.73046,7.86329 1.08331,1.66033 2.27294,3.00327 3.5586,4.08984 1.28566,1.08656 2.6671,1.91725 4.13672,2.55273 1.46962,0.63549 3.02692,1.07571 4.66211,1.38282 1.63518,0.3071 3.3485,0.48061 5.13086,0.58203 6.92666,-0.0668 16.98116,-4.96122 24.06579,-9.98486 10.21409,-7.24271 18.92639,-25.59132 18.92639,-25.59132 0,0 -0.76705,11.91966 12.59961,22.70899 6.80046,5.48921 18.84722,7.23767 25.27735,6.96094 2.08595,-0.26631 4.10274,-0.60669 6.04882,-1.02735 1.94609,-0.42065 3.82236,-0.92202 5.625,-1.50976 1.80265,-0.58775 3.53185,-1.26174 5.1875,-2.0293 1.65566,-0.76756 3.23709,-1.62778 4.74219,-2.58789 1.5051,-0.96011 2.93417,-2.02016 4.28516,-3.18555 1.35098,-1.16539 2.62309,-2.43691 3.8164,-3.82031 1.19331,-1.3834 2.30777,-2.87804 3.33985,-4.49219 1.03207,-1.61414 1.98233,-3.34746 2.84961,-5.20508 0.91196,-2.53191 1.61912,-4.98945 2.13086,-7.37109 0.51173,-2.38164 0.82888,-4.68757 0.96093,-6.91211 0.13206,-2.22453 0.0786,-4.3691 -0.14843,-6.42969 -0.22709,-2.06059 -0.62768,-4.03792 -1.19336,-5.92773 -0.56569,-1.88981 -1.29595,-3.6921 -2.17969,-5.4043 -0.88374,-1.71219 -1.92226,-3.33358 -3.10352,-4.86132 -1.18125,-1.52775 -2.50661,-2.96042 -3.96484,-4.29688 -1.45823,-1.33646 -3.04901,-2.57651 -4.76367,-3.71484 z" style="display:inline;opacity:1;fill:#ffffff;stroke-width:0.99515665"/><path transform="matrix(1.0048669,0,0,1.0048669,-1.648066,-0.97431337)" id="path2132" d="m 339.94922,198.16016 c 1.71466,1.13833 3.30544,2.37838 4.76367,3.71484 1.45823,1.33646 2.78359,2.76913 3.96484,4.29688 1.18126,1.52774 2.21978,3.14913 3.10352,4.86132 0.88374,1.7122 1.614,3.51449 2.17969,5.4043 0.56568,1.88981 0.96627,3.86714 1.19336,5.92773 0.22708,2.06059 0.28049,4.20516 0.14843,6.42969 -0.13205,2.22454 -0.4492,4.53047 -0.96093,6.91211 -0.51174,2.38164 -1.2189,4.83918 -2.13086,7.37109 9.47613,-21.16383 1.84382,-35.97308 -12.26172,-44.91796 z" style="display:inline;opacity:1;fill:#000000;stroke-width:0.99515665"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Outfit_Straps.tw b/src/art/vector_revamp/layers/Boob_Outfit_Straps.tw index 71f4987a253906cab21f202140c090ae82e6e9df..42437ace15766f417021471cbe844a634750410f 100644 --- a/src/art/vector_revamp/layers/Boob_Outfit_Straps.tw +++ b/src/art/vector_revamp/layers/Boob_Outfit_Straps.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Boob_Outfit_Straps [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g4822" transform="matrix(1.0017766,0,0,1.0017766,-0.63254292,-0.30724415)"><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9" class="shadow" d="m 222.31309,230.41353 c 27.62761,-2.84004 54.98628,-6.21798 80.98167,-12.32247 l -1.38826,-3.79634 c -24.90326,5.69686 -50.40708,10.1926 -77.19019,12.12975 z"/><path sodipodi:nodetypes="ccacccacc" id="XMLID_511_-1-8-2" class="shadow" d="m 212.5985,231.94358 c -0.26979,1.40375 -1.14168,4.52761 -0.71231,6.04134 4.21188,-1.0921 8.69472,-3.92289 11.42312,-7.59136 2.22607,-2.99304 3.41407,-7.35824 3.25049,-10.70782 -1.0224,-0.0113 -3.74679,0.90991 -4.05819,1.48623 l 1.54493,-0.28257 c -0.80164,3.27918 -1.61019,5.62444 -3.35983,7.88176 -2.06572,2.66511 -6.05614,5.00466 -8.0223,6.1622 z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-8" class="shadow" d="m 326.40919,217.07208 c 9.16891,0.60183 19.58559,1.46163 28.7545,6.66542 l -0.76326,-3.96821 c -7.37379,-4.43842 -17.0551,-5.84118 -25.58802,-6.68627 z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-2" class="shadow" d="m 319.33812,223.52443 c 3.13149,14.52631 2.89341,28.68012 -4.75134,43.25235 l -4.21669,-0.17242 c 8.29737,-13.11032 9.07293,-28.18441 5.62601,-43.09152 z"/><path sodipodi:nodetypes="cszzzsccszssscc" id="XMLID_511_-1-8-2-8" class="shadow" d="m 311.78146,205.54126 c 0,0 -4.06911,0.83634 -4.75478,1.23338 -3.06248,1.77333 -6.34186,4.91937 -4.95242,9.39071 1.38944,4.47134 9.79756,8.93051 15.3809,8.32756 5.58334,-0.60295 11.38232,-6.15933 12.03225,-10.55334 0.64993,-4.39401 -2.92629,-6.78148 -5.99024,-8.33911 -1.53648,-0.7811 -6.39247,-0.64798 -6.39247,-0.64798 0.43132,0.28882 0.76656,0.59341 1.0155,0.9021 0,0 2.86473,0.19978 4.09027,1.15267 2.09399,1.62813 4.90222,3.22496 4.36182,6.65545 -0.5404,3.43049 -5.49858,7.36518 -9.65134,7.74193 -4.54706,0.41253 -10.62186,-2.21016 -12.22062,-6.41495 -0.98964,-2.60278 1.92904,-5.99888 3.85457,-7.00098 0.68954,-0.35886 1.99763,-0.90354 1.99763,-0.90354 0.26018,-0.62451 0.61169,-1.00862 1.22893,-1.5439 z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-2-1" class="shadow" d="m 213.87832,237.17918 c -2.24796,16.04054 3.36292,28.33477 21.43031,35.21675 l -1.9186,0.0485 C 218.02546,272.2753 210.15789,252.8513 211.92692,237.85504 Z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-28" class="shadow" d="m 248.16035,269.85576 64.35095,-3.16234 -15.11323,-3.41196 -42.937,2.58394 z"/></g></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g4822" transform="matrix(1.0017766,0,0,1.0017766,-0.63254292,-0.30724415)"><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9" class="shadow" d="m 222.31309,230.41353 c 27.62761,-2.84004 54.98628,-6.21798 80.98167,-12.32247 l -1.38826,-3.79634 c -24.90326,5.69686 -50.40708,10.1926 -77.19019,12.12975 z"/><path sodipodi:nodetypes="ccacccacc" id="XMLID_511_-1-8-2" class="shadow" d="m 212.5985,231.94358 c -0.26979,1.40375 -1.14168,4.52761 -0.71231,6.04134 4.21188,-1.0921 8.69472,-3.92289 11.42312,-7.59136 2.22607,-2.99304 3.41407,-7.35824 3.25049,-10.70782 -1.0224,-0.0113 -3.74679,0.90991 -4.05819,1.48623 l 1.54493,-0.28257 c -0.80164,3.27918 -1.61019,5.62444 -3.35983,7.88176 -2.06572,2.66511 -6.05614,5.00466 -8.0223,6.1622 z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-8" class="shadow" d="m 326.40919,217.07208 c 9.16891,0.60183 19.58559,1.46163 28.7545,6.66542 l -0.76326,-3.96821 c -7.37379,-4.43842 -17.0551,-5.84118 -25.58802,-6.68627 z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-2" class="shadow" d="m 319.33812,223.52443 c 3.13149,14.52631 2.89341,28.68012 -4.75134,43.25235 l -4.21669,-0.17242 c 8.29737,-13.11032 9.07293,-28.18441 5.62601,-43.09152 z"/><path sodipodi:nodetypes="cszzzsccszssscc" id="XMLID_511_-1-8-2-8" class="shadow" d="m 311.78146,205.54126 c 0,0 -4.06911,0.83634 -4.75478,1.23338 -3.06248,1.77333 -6.34186,4.91937 -4.95242,9.39071 1.38944,4.47134 9.79756,8.93051 15.3809,8.32756 5.58334,-0.60295 11.38232,-6.15933 12.03225,-10.55334 0.64993,-4.39401 -2.92629,-6.78148 -5.99024,-8.33911 -1.53648,-0.7811 -6.39247,-0.64798 -6.39247,-0.64798 0.43132,0.28882 0.76656,0.59341 1.0155,0.9021 0,0 2.86473,0.19978 4.09027,1.15267 2.09399,1.62813 4.90222,3.22496 4.36182,6.65545 -0.5404,3.43049 -5.49858,7.36518 -9.65134,7.74193 -4.54706,0.41253 -10.62186,-2.21016 -12.22062,-6.41495 -0.98964,-2.60278 1.92904,-5.99888 3.85457,-7.00098 0.68954,-0.35886 1.99763,-0.90354 1.99763,-0.90354 0.26018,-0.62451 0.61169,-1.00862 1.22893,-1.5439 z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-2-1" class="shadow" d="m 213.87832,237.17918 c -2.24796,16.04054 3.36292,28.33477 21.43031,35.21675 l -1.9186,0.0485 C 218.02546,272.2753 210.15789,252.8513 211.92692,237.85504 Z"/><path sodipodi:nodetypes="ccccc" id="XMLID_511_-1-8-2-9-28" class="shadow" d="m 248.16035,269.85576 64.35095,-3.16234 -15.11323,-3.41196 -42.937,2.58394 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Piercing.tw b/src/art/vector_revamp/layers/Boob_Piercing.tw deleted file mode 100644 index 0a741dee6a9330a6df64359ee0ea4c56a34551b7..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Piercing.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Piercing [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g1366" transform="matrix(1.0081159,0,0,1.0081159,-2.6203467,-1.6676415)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g transform="'+_art_transform+'"id="g4019" transform="matrix(1,0,0,1.0092899,0,-2.0984812)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5080" d="m 320.92533,208.3125 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z"/><path class="shadow" sodipodi:nodetypes="saccs" id="path5082" d="m 310.52276,210.0972 c -0.75293,0 -1.60023,-0.84774 -1.5972,-1.5972 0.003,-0.75548 0.87005,-1.5972 1.62298,-1.5972 -0.36443,1.33139 -0.34478,1.89959 -0.0257,3.1944 z"/><path d="m 320.78013,208.3125 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-1" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5084" d="m 219.00345,224.4375 c 0,0.75293 -0.84428,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75292,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 310.52164,209.952 c -0.68448,0 -1.45474,-0.76753 -1.452,-1.452 0.003,-0.69002 0.79096,-1.452 1.47544,-1.452 -0.3313,1.21035 -0.31344,1.7269 -0.0234,2.904 z" id="path2749-8-37" sodipodi:nodetypes="cacc" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="cscc" id="path5086" d="m 212.05295,224.91542 c -0.34466,-0.31248 -0.59049,-0.74536 -0.59049,-1.15165 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -1.08637,1.30674 -1.00671,2.74885 z"/><path d="m 218.85825,224.4375 c 0,0.68448 -0.76753,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68447,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-1-1" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 212.07187,224.79047 c -0.31333,-0.28407 -0.53681,-0.6776 -0.53681,-1.04695 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.71276,0.81234 -0.98761,1.18794 -0.91519,2.49895 z" id="path2749-8-1-5" sodipodi:nodetypes="cscc" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Piercing_Heavy.tw deleted file mode 100644 index 3b6a5df3154279cd78a276292161afda96d371a3..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Piercing_Heavy.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Piercing_Heavy [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g4013" transform="matrix(1,0,0,1.0025792,0,-0.70652376)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path d="m 309.5038,204.64336 c 0,0 -2.49255,9.16089 -0.98325,13.36534 1.04444,2.90949 3.32191,6.89539 6.40728,6.7045 3.05198,-0.18881 4.5947,-4.43337 5.47216,-7.36259 1.23367,-4.11839 -0.7356,-12.87659 -0.7356,-12.87659 0,0 0.11352,1.82081 0.16679,3.66041 -0.16929,0.006 -1.17473,-4.1e-4 -1.17473,-4.1e-4 -0.19795,0.25684 -0.34925,0.53162 -0.25261,0.90176 0,0 1.16178,-0.01 1.44585,-0.0165 0.0394,2.94587 -0.12672,6.27737 -1.09131,8.42571 -0.78349,1.74482 -2.11155,3.65097 -3.89433,3.6662 -1.98467,0.0169 -3.50956,-2.07153 -4.40441,-4.00679 -0.94479,-2.0433 -1.13062,-5.20448 -1.1115,-8.03376 0.44876,0 0.51992,-0.0535 0.51992,-0.0535 l 0.0221,-0.9089 c 0,0 -0.0754,-0.0132 -0.52769,-0.0132 0.0399,-1.72289 0.14124,-3.45244 0.14124,-3.45244 z" class="shadow" id="path5090" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 219.3839,220.57007 c 0,0 2.13457,9.1044 0.8062,13.36536 -0.84502,2.71056 -2.41925,6.87099 -5.25359,6.7045 -2.86907,-0.16853 -3.7751,-4.57812 -4.48684,-7.36262 -1.06412,-4.16305 0.60315,-12.87656 0.60315,-12.87656 0,0 -0.0931,1.73467 -0.13676,3.57427 0.1388,0.006 0.75606,-4.1e-4 0.75606,-4.1e-4 l 0.17468,0.90174 c 0,0 -0.713,-0.01 -0.94592,-0.0165 -0.0323,2.94586 0.10395,6.36351 0.8948,8.51184 0.64242,1.74483 1.57258,3.65242 3.19313,3.66619 1.79796,0.0153 2.87763,-2.07151 3.61135,-4.00676 0.77468,-2.04331 0.92705,-5.29062 0.91137,-8.1199 -0.36796,0 -2.23494,-0.0535 -2.23494,-0.0535 0.071,-0.36089 0.0674,-0.74662 0.7341,-0.90891 0,0 1.11822,-0.0132 1.48908,-0.0132 -0.0328,-1.72288 -0.1158,-3.36631 -0.1158,-3.36631 z" class="shadow" id="path5092" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 314.94013,221.34948 c 0,0 -1.85221,9.47078 -1.92044,14.26944 -0.078,5.48324 1.72993,16.36063 1.72993,16.36063 0,0 -0.37012,-9.76923 1.09665,-19.55896 -0.97824,-3.24886 -0.90614,-11.07111 -0.90614,-11.07111 z" class="shadow" id="path5094" sodipodi:nodetypes="caccc"/><path d="m 314.68593,249.97485 c 0,0 -1.08607,3.58124 -0.98853,5.41252 0.0928,1.74295 1.48279,5.02302 1.48279,5.02302 0,0 1.05088,-3.31786 0.98853,-5.02302 -0.0683,-1.86907 -1.48279,-5.41252 -1.48279,-5.41252 z" class="shadow" id="path5096" sodipodi:nodetypes="cacac"/><path d="m 214.8358,236.62617 c 0,0 -1.85221,9.47077 -1.92044,14.26942 -0.078,5.48325 1.72993,16.36065 1.72993,16.36065 0,0 -0.37012,-9.76925 1.09665,-19.55896 -0.97824,-3.24886 -0.90614,-11.07111 -0.90614,-11.07111 z" class="shadow" id="path5098" sodipodi:nodetypes="caccc"/><path sodipodi:nodetypes="cacac" id="path5114" class="shadow" d="m 214.31901,239.32032 c 0,0 25.68032,21.60317 41.03252,20.95432 23.64619,-0.9994 60.23635,-37.49186 60.23635,-37.49186 0,0 -36.08773,39.66777 -60.29231,40.42734 -15.81322,0.49624 -40.97656,-23.8898 -40.97656,-23.8898 z"/><path d="m 214.5816,265.25153 c 0,0 -1.08608,3.58126 -0.98853,5.41254 0.0928,1.74295 1.48279,5.02299 1.48279,5.02299 0,0 1.05088,-3.31784 0.98853,-5.02299 -0.0683,-1.86908 -1.48279,-5.41254 -1.48279,-5.41254 z" class="shadow" id="path5100" sodipodi:nodetypes="cacac"/><path d="m 214.20192,239.13711 c 0,0 25.0305,25.8073 41.14961,25.36846 24.49265,-0.66681 60.32474,-41.89145 60.32474,-41.89145 0,0 -35.29445,44.3827 -60.3807,44.82694 -16.64383,0.29474 -41.09365,-28.30395 -41.09365,-28.30395 z" class="shadow" id="path5116" sodipodi:nodetypes="cacac"/><path d="m 214.31901,239.32032 c 0,0 25.65102,21.83396 41.03252,21.19676 23.67286,-0.98068 60.23635,-37.7343 60.23635,-37.7343 0,0 -36.15672,39.38263 -60.29231,40.16286 -15.75824,0.50942 -40.97656,-23.62532 -40.97656,-23.62532 z" class="steel_piercing" id="path1115-5" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-2" class="steel_piercing" d="m 309.95079,205.54823 c 0,0 -2.26595,8.32808 -0.89386,12.15031 0.94949,2.64499 3.01992,6.26853 5.8248,6.095 2.77453,-0.17165 4.177,-4.03034 4.97469,-6.69327 1.12152,-3.74399 -0.66873,-11.70599 -0.66873,-11.70599 0,0 0.1032,1.19444 0.15163,2.8668 -0.1539,0.005 -1.06794,-3.7e-4 -1.06794,-3.7e-4 -0.17995,0.23349 -0.3175,0.48329 -0.22964,0.81978 0,0 1.05616,-0.009 1.31441,-0.015 0.0358,2.67807 -0.1152,6.16755 -0.9921,8.12058 -0.71227,1.5862 -1.91959,3.31907 -3.5403,3.33291 -1.80425,0.0154 -3.19051,-1.88321 -4.00401,-3.64253 -0.8589,-1.85755 -1.02784,-5.19219 -1.01046,-7.76427 0.40797,0 0.47266,-0.0486 0.47266,-0.0486 l 0.0201,-0.82627 c 0,0 -0.0685,-0.012 -0.47972,-0.012 0.0363,-1.56626 0.1284,-2.67774 0.1284,-2.67774 z"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0-8" class="steel_piercing" d="m 219.0181,221.47486 c 0,0 1.94052,8.27673 0.73291,12.15033 -0.7682,2.46414 -2.19932,6.24635 -4.77599,6.095 -2.60825,-0.15321 -3.43191,-4.16193 -4.07895,-6.69329 -0.96738,-3.78459 0.54832,-11.70597 0.54832,-11.70597 0,0 -0.0846,1.19444 -0.12433,2.8668 0.12619,0.005 0.68733,-3.7e-4 0.68733,-3.7e-4 l 0.1588,0.81976 c 0,0 -0.64818,-0.009 -0.85993,-0.015 -0.0294,2.67806 0.0945,6.16755 0.81346,8.12058 0.58402,1.58621 1.42962,3.32038 2.90284,3.3329 1.63451,0.0139 2.61603,-1.88319 3.28305,-3.64251 0.70425,-1.85756 0.84277,-5.19219 0.82852,-7.76427 -0.33451,0 -2.03177,-0.0486 -2.03177,-0.0486 0.0645,-0.32808 0.0613,-0.67874 0.66737,-0.82628 0,0 1.01656,-0.012 1.35371,-0.012 -0.0298,-1.56625 -0.10528,-2.67774 -0.10528,-2.67774 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-8" class="steel_piercing" d="m 314.89391,222.74176 c 0,0 -1.68382,8.60979 -1.74585,12.97221 -0.0709,4.98476 1.57266,14.8733 1.57266,14.8733 0,0 -0.33647,-8.88111 0.99696,-17.78087 -0.88931,-2.95351 -0.82377,-10.06464 -0.82377,-10.06464 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-8" class="steel_piercing" d="m 314.70824,250.44919 c 0,0 -0.98734,3.25568 -0.89867,4.92048 0.0844,1.5845 1.34799,4.56638 1.34799,4.56638 0,0 0.95535,-3.01623 0.89867,-4.56638 -0.0621,-1.69916 -1.34799,-4.92048 -1.34799,-4.92048 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5-7" class="steel_piercing" d="m 214.78958,238.01845 c 0,0 -1.68382,8.60979 -1.74585,12.9722 -0.0709,4.98477 1.57266,14.87331 1.57266,14.87331 0,0 -0.33647,-8.88113 0.99696,-17.78087 -0.88931,-2.95351 -0.82377,-10.06464 -0.82377,-10.06464 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4-0" class="steel_piercing" d="m 214.60391,265.72587 c 0,0 -0.98735,3.25569 -0.89867,4.92049 0.0844,1.5845 1.34799,4.56636 1.34799,4.56636 0,0 0.95535,-3.01622 0.89867,-4.56636 -0.0621,-1.69916 -1.34799,-4.92049 -1.34799,-4.92049 z"/><path sodipodi:nodetypes="cacac" id="path3697-9" class="steel_piercing" d="m 214.20192,239.13711 c 0,0 24.99906,26.03874 41.14961,25.6109 24.5188,-0.64952 60.32474,-42.13389 60.32474,-42.13389 0,0 -35.37023,44.09941 -60.3807,44.56246 -16.57995,0.30696 -41.09365,-28.03947 -41.09365,-28.03947 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Piercing_NoBoob.tw b/src/art/vector_revamp/layers/Boob_Piercing_NoBoob.tw deleted file mode 100644 index 65b2aa967e52535ae194b442f1056f39930d675f..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Piercing_NoBoob.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Piercing_NoBoob [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g4003" transform="matrix(1,0,0,1.0291768,0,-7.0593321)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5118" d="m 317.55033,237.51562 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 317.40513,237.51562 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5120" d="m 311.06595,237.34375 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75292,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84428,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 310.92075,237.34375 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68447,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76753,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-3" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5122" d="m 250.31593,240.49857 c 0,0.75293 -0.84427,1.5972 -1.5972,1.5972 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.75293,0 1.5972,0.84427 1.5972,1.5972 z"/><path d="m 250.17073,240.49857 c 0,0.68448 -0.76752,1.452 -1.452,1.452 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.68448,0 1.452,0.76752 1.452,1.452 z" id="path2749-8-66-7" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path class="shadow" sodipodi:nodetypes="csasccc" id="path5124" d="m 244.73869,241.83277 c -0.14826,0.0584 -0.30012,0.0911 -0.44845,0.0911 -0.75293,0 -1.5972,-0.84427 -1.5972,-1.5972 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 0.20146,0 0.40944,0.0605 0.60606,0.16339 -0.83243,0.65113 -1.08254,2.0678 -0.15761,2.93988 z"/><path d="m 244.65287,241.69585 c -0.13478,0.0531 -0.27284,0.0828 -0.40768,0.0828 -0.68448,0 -1.452,-0.76752 -1.452,-1.452 0,-0.68448 0.76752,-1.452 1.452,-1.452 0.18314,0 0.37222,0.055 0.55096,0.14854 -0.68459,0.57919 -0.90899,1.86654 -0.14328,2.67261 z" id="path2749-8-3-4" sodipodi:nodetypes="csascc" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Piercing_NoBoob_Heavy.tw b/src/art/vector_revamp/layers/Boob_Piercing_NoBoob_Heavy.tw deleted file mode 100644 index 2adca2a70c8919d37a43cd323d650ee9718827f3..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Boob_Piercing_NoBoob_Heavy.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Boob_Piercing_NoBoob_Heavy [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_art_transform+'"id="g3755" transform="matrix(1,0,0,0.99551445,0,1.0543705)" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"><path d="m 309.14219,234.55641 c 0,0 -1.66351,6.13387 -0.6555,8.95038 0.69607,1.9449 2.20975,4.61726 4.27152,4.4898 2.04057,-0.12615 3.06329,-2.97147 3.6481,-4.93052 0.82353,-2.7587 -0.4904,-8.62306 -0.4904,-8.62306 0,0 0.0757,0.87987 0.1112,2.11179 -0.11286,0.003 -0.5941,-2.8e-4 -0.5941,-2.8e-4 l 0.18681,0.60388 c 0,0 0.23025,-0.007 0.41963,-0.011 0.0263,1.97276 -0.0845,4.54326 -0.72754,5.98192 -0.52233,1.16847 -1.40518,2.44497 -2.59622,2.45515 -1.32582,0.0113 -2.33971,-1.38723 -2.93627,-2.68322 -0.62986,-1.36835 -0.75375,-3.82476 -0.74101,-5.71945 0.29918,0 1.29193,-0.0359 1.29193,-0.0359 l 0.0835,-0.60866 c 0,0 -1.06431,-0.009 -1.36586,-0.009 0.0266,-1.15377 0.0942,-1.97253 0.0942,-1.97253 z" class="shadow" id="path5128" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 249.30676,237.70242 c 0,0 1.66352,6.13388 0.6555,8.95038 -0.69607,1.9449 -2.20974,4.61726 -4.27152,4.4898 -2.04056,-0.12615 -3.06329,-2.97147 -3.6481,-4.93052 -0.82353,-2.7587 0.4904,-8.62306 0.4904,-8.62306 0,0 -0.0757,0.87987 -0.1112,2.11179 0.11286,0.003 1.62535,-2.8e-4 1.62535,-2.8e-4 l -0.0321,0.60388 c 0,0 -1.41619,-0.007 -1.60557,-0.011 -0.0263,1.97276 0.0845,4.54326 0.72754,5.98192 0.52233,1.16847 1.40518,2.44498 2.59622,2.45515 1.32583,0.0113 2.33971,-1.38723 2.93627,-2.68322 0.62986,-1.36835 0.75375,-3.82476 0.74101,-5.71945 -0.29918,0 -1.29193,-0.0359 -1.29193,-0.0359 l -0.0835,-0.60866 c 0,0 1.06431,-0.009 1.36586,-0.009 -0.0266,-1.15377 -0.0942,-1.97253 -0.0942,-1.97253 z" class="shadow" id="path5130" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 312.76639,245.60534 c 0,0 -1.2348,6.34214 -1.28029,9.55581 -0.052,3.67206 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5132" sodipodi:nodetypes="caccc"/><path sodipodi:nodetypes="cacac" id="path5142" class="shadow" d="m 245.62844,250.23975 c 0,0 17.16757,16.91723 28.15752,17.25901 14.6901,0.45685 38.98635,-20.68692 38.98635,-20.68692 0,0 -23.85532,24.26227 -39.04231,23.65915 -11.51555,-0.45732 -28.10156,-20.23124 -28.10156,-20.23124 z"/><path d="m 312.59693,264.7749 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5134" sodipodi:nodetypes="cacac"/><path d="m 245.51135,250.05572 c 0,0 16.43426,21.15463 28.27461,21.64865 15.44025,0.64421 39.07474,-25.06195 39.07474,-25.06195 0,0 -23.11514,28.87249 -39.1307,28.10077 -12.45924,-0.60036 -28.21865,-24.68747 -28.21865,-24.68747 z" class="shadow" id="path5144" sodipodi:nodetypes="cacac"/><path d="m 245.62844,250.23975 c 0,0 17.10777,17.17402 28.15752,17.52537 14.74599,0.46888 38.98635,-20.95328 38.98635,-20.95328 0,0 -23.88248,23.98358 -39.04231,23.39279 -11.48183,-0.44746 -28.10156,-19.96488 -28.10156,-19.96488 z" class="steel_piercing" id="path1115" sodipodi:nodetypes="cacac"/><path d="m 245.85647,248.53096 c 0,0 -1.2348,6.34215 -1.28029,9.55581 -0.052,3.67207 1.15328,10.95624 1.15328,10.95624 0,0 -0.24674,-6.54217 0.73111,-13.09806 -0.65216,-2.17566 -0.6041,-7.41399 -0.6041,-7.41399 z" class="shadow" id="path5136" sodipodi:nodetypes="caccc"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9" class="steel_piercing" d="m 309.44017,235.16237 c 0,0 -1.51228,5.57625 -0.59591,8.13671 0.63279,1.76809 2.00887,4.19751 3.8832,4.08164 1.85507,-0.11468 2.78481,-2.70134 3.31646,-4.48229 0.74866,-2.50791 -0.44582,-7.83915 -0.44582,-7.83915 0,0 0.0688,0.79988 0.10109,1.91981 -0.1026,0.003 -0.54009,-2.5e-4 -0.54009,-2.5e-4 l 0.16983,0.54898 c 0,0 0.20931,-0.006 0.38148,-0.01 0.0239,1.79342 -0.0768,4.13023 -0.6614,5.43811 -0.47485,1.06224 -1.27744,2.2227 -2.3602,2.23195 -1.20529,0.0103 -2.12701,-1.26112 -2.66934,-2.43929 -0.5726,-1.24395 -0.68523,-3.47705 -0.67364,-5.1995 0.27198,0 1.17448,-0.0326 1.17448,-0.0326 l 0.0759,-0.55333 c 0,0 -0.96756,-0.008 -1.24169,-0.008 0.0242,-1.04888 0.0856,-1.79321 0.0856,-1.79321 z"/><path d="m 245.68701,267.70052 c 0,0 -0.72404,2.39816 -0.65902,3.62462 0.0619,1.16743 0.98852,3.36375 0.98852,3.36375 0,0 0.70059,-2.22176 0.65903,-3.36375 -0.0456,-1.25189 -0.98853,-3.62462 -0.98853,-3.62462 z" class="shadow" id="path5138" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0" class="steel_piercing" d="m 249.00878,238.30838 c 0,0 1.51229,5.57626 0.59591,8.13671 -0.63279,1.76809 -2.00886,4.19751 -3.8832,4.08164 -1.85506,-0.11468 -2.78481,-2.70134 -3.31646,-4.48229 -0.74866,-2.50791 0.44582,-7.83915 0.44582,-7.83915 0,0 -0.0688,0.79988 -0.10109,1.91981 0.1026,0.003 1.47759,-2.5e-4 1.47759,-2.5e-4 l -0.0292,0.54898 c 0,0 -1.28744,-0.006 -1.45961,-0.01 -0.0239,1.79342 0.0768,4.13023 0.6614,5.43811 0.47485,1.06224 1.27744,2.22271 2.3602,2.23195 1.2053,0.0103 2.12701,-1.26112 2.66934,-2.43929 0.5726,-1.24395 0.68523,-3.47705 0.67364,-5.1995 -0.27198,0 -1.17448,-0.0326 -1.17448,-0.0326 l -0.0759,-0.55333 c 0,0 0.96756,-0.008 1.24169,-0.008 -0.0242,-1.04888 -0.0856,-1.79321 -0.0856,-1.79321 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0" class="steel_piercing" d="m 312.73558,246.53771 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0473,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7" class="steel_piercing" d="m 312.6118,265.09255 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5" class="steel_piercing" d="m 245.82566,249.46333 c 0,0 -1.12255,5.76559 -1.1639,8.6871 -0.0472,3.33824 1.04844,9.96021 1.04844,9.96021 0,0 -0.22431,-5.94742 0.66464,-11.90732 -0.59287,-1.97788 -0.54918,-6.73999 -0.54918,-6.73999 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4" class="steel_piercing" d="m 245.70188,268.01817 c 0,0 -0.65822,2.18015 -0.59911,3.29511 0.0563,1.0613 0.89866,3.05796 0.89866,3.05796 0,0 0.63689,-2.01978 0.59911,-3.05796 -0.0414,-1.13808 -0.89866,-3.29511 -0.89866,-3.29511 z"/><path sodipodi:nodetypes="cacac" id="path3697" class="steel_piercing" d="m 245.51135,250.05572 c 0,0 16.35177,21.45578 28.27461,21.9594 15.5161,0.65539 39.07474,-25.3727 39.07474,-25.3727 0,0 -23.14622,28.57225 -39.1307,27.81221 -12.42068,-0.59059 -28.21865,-24.39891 -28.21865,-24.39891 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small.tw b/src/art/vector_revamp/layers/Boob_Small.tw new file mode 100644 index 0000000000000000000000000000000000000000..1f951648d2d44d36600fbe7c5a091dbfdca56293 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2754" transform="'+_boob_right_art_transform+'" ><path sodipodi:nodetypes="ccccccc" id="path2750" class="shadow" d="m 258.4635,206.70525 c -2.43693,2.43693 -11.69974,10.96496 -13.78161,16.78224 -7.98808,4.18336 -12.04016,9.22946 -16.46667,14.18272 0.43705,8.71501 1.70553,16.51029 9.57142,22.68835 5.76096,5.49343 12.38835,5.57452 18.88215,1.82583 5.22936,-5.97715 7.46563,-9.46914 13.85527,-23.053 -9.9785,-11.21563 7.18836,-22.98696 -12.06056,-32.42614 z"/><path d="m 258.4635,206.70525 c -2.51112,2.51112 -10.78183,11.16972 -13.78161,16.78224 -7.11937,4.34266 -11.56357,9.31685 -16.46667,14.18272 0.77061,8.54923 2.31908,16.20536 9.57142,22.68835 6.25108,4.85755 12.67805,5.19866 18.88215,1.82583 6.92903,-4.62954 11.03703,-12.07965 15.29277,-23.053 -0.9345,-14.31756 6.59712,-27.64388 -13.49806,-32.42614 z" class="skin boob" id="path2752" sodipodi:nodetypes="ccccccc"/></g><g id="g2762" transform="'+_boob_left_art_transform+'" ><path d="m 343.18566,248.84738 c 6.61502,-9.96293 1.24605,-23.02347 -3.51192,-32.52403 -4.32357,-4.32357 -19.56457,-7.69007 -30.17045,-7.95661 -8.8142,9.37784 -15.40168,21.99318 -18.70132,35.53493 4.9837,22.57548 41.64172,26.17839 52.38369,4.94571 z" class="shadow" id="path2756" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="ccccc" id="path2760" class="skin boob" d="m 343.18566,248.84738 c 5.82359,-10.10683 3.21095,-23.94463 -2.82442,-32.52403 -2.73692,-4.74049 -22.03284,-11.71831 -31.42045,-7.95661 -9.28671,7.38783 -19.83364,21.69713 -18.13882,35.53493 4.7283,22.21233 41.44215,25.37653 52.38369,4.94571 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areola_Piercing.tw b/src/art/vector_revamp/layers/Boob_Small_Areola_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..c1ae5483f4fe021da25a5d4b3c743991431a9949 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areola_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areola_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2489" transform="'+_boob_left_art_transform+'" ><path class="shadow" sodipodi:nodetypes="accaa" id="path5169" d="m 320.43194,225.09759 c -5e-5,0.717 -0.77245,1.51654 -1.52538,1.51654 -0.5209,-0.31622 -0.64486,-0.92927 -1.6847,-1.41308 0,-0.74876 0.8338,-1.68143 1.61288,-1.69181 0.75078,-0.0101 1.59725,0.83751 1.5972,1.58835 z"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5171" d="m 315.94907,234.83564 c 0,0.75084 -0.84635,1.58836 -1.5972,1.58836 -0.75085,0 -1.5972,-0.83752 -1.5972,-1.58836 0,-0.75085 0.84635,-1.58835 1.5972,-1.58835 0.75085,0 1.5972,0.8375 1.5972,1.58835 z"/><path d="m 320.28791,225.09759 c 0,0.68259 -0.76752,1.44396 -1.452,1.44396 -0.47354,-0.28747 -0.59653,-0.82419 -1.54184,-1.26402 0,-0.68069 0.79549,-1.61319 1.54184,-1.6239 0.68252,-0.01 1.452,0.76138 1.452,1.44396 z" id="path2749-8-39" sodipodi:nodetypes="accaa" class="steel_piercing"/><path d="m 315.80387,234.83564 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68259 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76137 1.452,1.44396 z" id="path2749-8-42" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g><g id="g2495" transform="'+_boob_right_art_transform+'" ><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5173" d="m 236.01142,231.24698 c 0,0.75084 -0.84635,1.58835 -1.5972,1.58835 -0.75085,0 -1.5972,-0.83751 -1.5972,-1.58835 0,-0.75085 0.84635,-1.58836 1.5972,-1.58836 0.75085,0 1.5972,0.83751 1.5972,1.58836 z"/><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5175" d="m 229.91767,242.70346 c 0,0.75085 -0.84635,1.58835 -1.5972,1.58835 -0.75085,0 -1.5972,-0.8375 -1.5972,-1.58835 0,-0.75084 0.84635,-1.58836 1.5972,-1.58836 0.75085,0 1.5972,0.83752 1.5972,1.58836 z"/><path d="m 235.86622,231.24698 c 0,0.68258 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76138 -1.452,-1.44396 0,-0.68259 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76137 1.452,1.44396 z" id="path2749-8-40" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 229.77247,242.70346 c 0,0.68259 -0.76941,1.44396 -1.452,1.44396 -0.68259,0 -1.452,-0.76137 -1.452,-1.44396 0,-0.68258 0.76941,-1.44396 1.452,-1.44396 0.68259,0 1.452,0.76138 1.452,1.44396 z" id="path2749-8-2" sodipodi:nodetypes="aaaaa" class="steel_piercing"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areola_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Small_Areola_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..43bfa10ba3e3c23cb4bb9d8093d46e656b17cd24 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areola_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areola_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2471" transform="'+_boob_left_art_transform+'" ><path d="m 321.68714,227.27176 c 0,0 -0.13465,-4.47036 1.43,-5.58749 1.85611,-1.32523 5.3301,-1.17893 6.82,0.54779 1.43465,1.66269 0.96516,4.88585 -0.44,6.57352 -1.13778,1.36653 -5.17,1.3147 -5.17,1.3147 0,0 3.53534,-0.86422 4.29,-2.30073 0.61522,-1.17109 0.47784,-2.99147 -0.44,-3.94411 -1.02892,-1.06792 -3.08003,-1.33322 -4.4,-0.65735 -1.35317,0.69288 -2.09,4.05367 -2.09,4.05367 z" class="shadow" id="path5163" sodipodi:nodetypes="caaacaaac"/><path d="m 311.95601,227.50867 c 0,0 0.13465,-4.47036 -1.43,-5.58748 -1.85611,-1.32524 -5.3301,-1.17894 -6.82,0.54779 -1.43465,1.66269 -0.96517,4.88583 0.44,6.57352 1.13778,1.36652 5.17,1.3147 5.17,1.3147 0,0 -3.53534,-0.86423 -4.29,-2.30073 -0.61522,-1.17109 -0.47784,-2.99147 0.44,-3.94411 1.02891,-1.06792 3.08003,-1.33322 4.4,-0.65735 1.35317,0.69286 2.09,4.05366 2.09,4.05366 z" class="shadow" id="path5165" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4" class="steel_piercing" d="m 322.10179,227.10721 c 0,0 -0.12241,-4.06396 1.3,-5.07953 1.68737,-1.20475 4.84554,-1.07176 6.2,0.49799 1.30422,1.51154 0.87742,4.44168 -0.4,5.97592 -1.03434,1.2423 -4.7,1.19519 -4.7,1.19519 0,0 3.21395,-0.78566 3.9,-2.09157 0.55929,-1.06462 0.4344,-2.71952 -0.4,-3.58556 -0.93538,-0.97084 -2.80003,-1.21202 -4,-0.59759 -1.23016,0.62989 -1.9,3.68515 -1.9,3.68515 z"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-7" class="steel_piercing" d="m 311.54136,227.34413 c 0,0 0.12241,-4.06397 -1.3,-5.07954 -1.68737,-1.20475 -4.84554,-1.07175 -6.2,0.498 -1.30422,1.51154 -0.87742,4.44167 0.4,5.97592 1.03434,1.2423 4.7,1.19519 4.7,1.19519 0,0 -3.21395,-0.78567 -3.9,-2.09158 -0.5593,-1.06463 -0.4344,-2.71951 0.4,-3.58555 0.93538,-0.97084 2.80003,-1.21202 4,-0.5976 1.23016,0.62989 1.9,3.68516 1.9,3.68516 z"/></g><g id="g2475" transform="'+_boob_right_art_transform+'" ><path d="m 232.11707,235.48695 c 0,0 0.60967,-2.2986 1.54375,-2.82951 2.13513,-1.21356 5.78847,-1.60777 7.36253,0.2774 0.71838,0.86038 0.32663,2.54546 -0.475,3.32885 -1.34,1.30952 -5.58127,0.66577 -5.58127,0.66577 0,0 3.80544,0.19579 4.63127,-1.1651 0.35502,-0.58505 0.0468,-1.55454 -0.47501,-1.99731 -1.21025,-1.02692 -3.25057,-0.85339 -4.75002,-0.33288 -0.96055,0.33345 -2.25625,2.05278 -2.25625,2.05278 z" class="shadow" id="path5167" sodipodi:nodetypes="caaacaaac"/><path sodipodi:nodetypes="caaacaaac" id="XMLID_525_-3-4-3" class="steel_piercing" d="m 232.53913,235.38469 c 0,0 0.55425,-2.08965 1.40341,-2.57229 1.94103,-1.10324 5.26225,-1.46161 6.69321,0.25218 0.65308,0.78216 0.29694,2.31406 -0.43182,3.02623 -1.21818,1.19046 -5.07388,0.60524 -5.07388,0.60524 0,0 3.45949,0.17799 4.21024,-1.05918 0.32275,-0.53186 0.0425,-1.41322 -0.43182,-1.81574 -1.10022,-0.93356 -2.95507,-0.77581 -4.3182,-0.30262 -0.87323,0.30314 -2.05114,1.86618 -2.05114,1.86618 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areolae_Heart.tw b/src/art/vector_revamp/layers/Boob_Small_Areolae_Heart.tw new file mode 100644 index 0000000000000000000000000000000000000000..a4407f484637e0d5bc5c96562dfb799cf1fb1846 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areolae_Heart.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areolae_Heart [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2480"><path sodipodi:nodetypes="czcac" d="m 231.56989,252.42514 c -1.22195,-2.10852 -4.20293,-10.7371 -3.39892,-14.26628 0.80401,-3.52918 1.44795,-3.28007 4.67241,-5.19203 1.07003,-1.07003 5.21528,-2.42178 6.54597,-0.67782 4.36779,5.72431 -3.67752,10.857 -7.81946,20.13613 z" class="areola" id="path2478"/></g><g transform="'+_boob_left_art_transform+'" id="g2484"><path sodipodi:nodetypes="czczcc" class="areola" d="m 313.44442,246.20895 c -4.20528,-2.9951 -12.71977,-16.79856 -6.01226,-22.33579 6.70751,-5.53723 9.65531,-0.0103 9.65531,-0.0103 0,0 5.61579,-5.19127 10.77973,1.06406 5.16394,6.25533 -9.37618,18.97767 -14.42277,21.28185 z" id="path2482"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areolae_Huge.tw b/src/art/vector_revamp/layers/Boob_Small_Areolae_Huge.tw new file mode 100644 index 0000000000000000000000000000000000000000..63633d58581b187b5fe3c22de52aff109128260b --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areolae_Huge.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areolae_Huge [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2460" transform="'+_boob_right_art_transform+'" ><path id="path2458" class="areola" d="m 243.17821,224.74093 c 0,0 2.45622,9.86999 1.16254,14.56572 -1.70998,6.20677 -11.17982,15.74941 -11.17982,15.74941 0,0 -5.05432,-6.17604 -5.24261,-14.13117 -0.18828,-7.95513 0.0149,-2.81221 2.42761,-6.83709 3.03435,-5.06192 12.83228,-9.34687 12.83228,-9.34687 z" sodipodi:nodetypes="caczsc"/></g><g id="g2464" transform="'+_boob_left_art_transform+'" ><path id="path2462" d="m 315.06318,249.00368 c -8.66357,-0.95563 -17.41869,-7.34062 -17.45978,-13.06343 -0.0525,-7.30353 10.99852,-14.92615 20.70646,-14.50135 9.12899,0.39946 18.65567,6.35353 16.78428,15.20563 -1.87139,8.85212 -9.67212,13.50176 -20.03096,12.35915 z" class="areola" sodipodi:nodetypes="sssss"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areolae_Large.tw b/src/art/vector_revamp/layers/Boob_Small_Areolae_Large.tw new file mode 100644 index 0000000000000000000000000000000000000000..372fdcb92bbc450ebdf8f235a1317919c8eee874 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areolae_Large.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areolae_Large [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2440" transform="'+_boob_right_art_transform+'" ><path id="path2438" class="areola" d="m 237.2031,229.73085 c 0,0 0.30094,3.19792 -0.8647,6.76203 -1.16561,3.5641 -7.01179,8.94586 -7.01179,8.94586 0,0 -1.57367,-6.20853 -1.19696,-7.68793 0.37668,-1.47941 0.62921,-2.29369 2.16839,-3.97544 1.93574,-2.11507 6.90506,-4.04452 6.90506,-4.04452 z" sodipodi:nodetypes="czczsc"/></g><g id="g2444" transform="'+_boob_left_art_transform+'" ><path id="path2442" d="m 315.47577,238.97656 c -4.61957,-0.50956 -9.28796,-3.91415 -9.30987,-6.96566 -0.028,-3.89437 5.86461,-7.95889 11.04106,-7.73238 4.86774,0.213 9.94754,3.38782 8.94968,8.10792 -0.99786,4.72011 -5.15735,7.19938 -10.68087,6.59012 z" class="areola" sodipodi:nodetypes="sssss"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areolae_Normal.tw b/src/art/vector_revamp/layers/Boob_Small_Areolae_Normal.tw new file mode 100644 index 0000000000000000000000000000000000000000..4fe741f4d2e138c812e225f889f45badce8b01f5 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areolae_Normal.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areolae_Normal [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2430"><path sodipodi:nodetypes="czczsc" d="m 235.30274,231.17264 c 0,0 0.24231,2.57487 -0.69623,5.44459 -0.93851,2.86971 -5.64569,7.20295 -5.64569,7.20295 0,0 -1.26707,-4.99893 -0.96376,-6.1901 0.30329,-1.19118 0.50662,-1.84681 1.74593,-3.20091 1.5586,-1.70299 5.55975,-3.25653 5.55975,-3.25653 z" class="areola" id="path2428"/></g><g transform="'+_boob_left_art_transform+'" id="g2434"><path sodipodi:nodetypes="sssss" class="areola" d="m 316.0933,235.60905 c -3.40637,-0.37574 -6.84874,-2.88621 -6.8649,-5.13633 -0.0207,-2.87162 4.32444,-5.86871 8.14144,-5.70169 3.58937,0.15706 7.3351,2.49811 6.5993,5.97861 -0.7358,3.4805 -3.80292,5.30866 -7.87584,4.85941 z" id="path2432"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areolae_Star.tw b/src/art/vector_revamp/layers/Boob_Small_Areolae_Star.tw new file mode 100644 index 0000000000000000000000000000000000000000..285c94b0906b88cbf5d3a1c906ee9ba58ef73070 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areolae_Star.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areolae_Star [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2470"><path sodipodi:nodetypes="cccccccssc" d="m 240.29933,227.09802 c -5.18428,3.30051 -7.99474,6.86395 -7.99474,6.86395 0,0 5.67867,-0.38365 11.0749,1.50681 -6.37633,0.70776 -10.4201,3.2349 -10.4201,3.2349 0,0 0.13997,6.94247 1.84947,12.07033 -2.42771,-2.29651 -5.33947,-9.68006 -5.33947,-9.68006 0,0 -0.3282,3.79742 1.03998,8.23505 -1.98466,-2.89505 -2.17172,-7.40591 -2.3519,-9.33994 -0.17874,-1.91868 0.16998,-2.80786 2.53329,-5.94212 3.16348,-4.19549 9.60857,-6.94892 9.60857,-6.94892 z" class="areola" id="path2468"/></g><g transform="'+_boob_left_art_transform+'" id="g2474"><path sodipodi:nodetypes="ccccccccccc" class="areola" d="m 314.46943,234.27224 c -3.76567,1.79157 -6.84161,5.28921 -10.10232,7.39152 1.44885,-3.26388 2.80438,-7.85021 4.89355,-10.83394 -2.31674,-1.93975 -5.18388,-2.96451 -8.37065,-3.68536 3.56307,-1.07962 7.79205,-1.81135 11.55083,-1.25273 1.41528,-1.99803 2.88366,-2.69755 5.19852,-4.40935 0.47133,1.75669 1.08677,2.27498 2.38302,4.27914 4.40924,-0.57094 8.75671,0.34013 13.32809,1.37553 -4.74363,0.78623 -8.39968,1.78672 -11.63843,3.96162 1.36056,2.93262 2.11025,7.4758 2.95271,10.6874 -2.99455,-2.42622 -6.28672,-5.87702 -10.19532,-7.51383 z" id="path2472"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Areolae_Wide.tw b/src/art/vector_revamp/layers/Boob_Small_Areolae_Wide.tw new file mode 100644 index 0000000000000000000000000000000000000000..9eb4b81af76c18f287db3efa939207bdab84f6cd --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Areolae_Wide.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Areolae_Wide [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_right_art_transform+'" id="g2450"><path sodipodi:nodetypes="caczsc" d="m 239.36986,227.39833 c 0,0 0.71277,8.23923 -0.67494,11.99618 -1.54558,4.18436 -8.11406,10.64147 -8.11406,10.64147 0,0 -3.24031,-8.7013 -2.48264,-11.5808 0.75767,-2.8795 0.64608,-3.04882 2.92925,-5.54348 2.87142,-3.13742 8.34239,-5.51337 8.34239,-5.51337 z" class="areola" id="path2448"/></g><g transform="'+_boob_left_art_transform+'" id="g2454"><path sodipodi:nodetypes="sssss" class="areola" d="m 315.07013,243.9018 c -6.9072,-0.76189 -13.8874,-5.85245 -13.92016,-10.41508 -0.0419,-5.82288 8.76879,-11.90016 16.50864,-11.56148 7.27826,0.31847 14.8736,5.06548 13.3816,12.12299 -1.49201,7.05753 -7.71129,10.76454 -15.97008,9.85357 z" id="path2452"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Highlights.tw b/src/art/vector_revamp/layers/Boob_Small_Highlights.tw new file mode 100644 index 0000000000000000000000000000000000000000..efb819087fd624e8c40c1cb29b7add4d64157617 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Highlights.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Highlights [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g style="display:inline" inkscape:label="Boob_Small_Highlights2" id="Boob_Small_Highlights2" inkscape:groupmode="layer"><g transform="'+_boob_left_art_transform+'" id="g2519"><path d="m 321.85975,215.92692 c -1.89715,1.20251 -6.31642,3.88396 -3.175,7.57381 4.21646,-0.071 4.26738,-5.70386 3.175,-7.57381 z" class="highlight2" id="path2507" sodipodi:nodetypes="ccc"/><path d="m 314.90689,235.99789 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" class="highlight2" id="path2509" sodipodi:nodetypes="ccc"/><path d="m 315.18349,232.60131 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" class="highlight2" id="path2511" sodipodi:nodetypes="ccc"/><path d="m 322.97466,213.38435 c -0.6421,0.2097 -1.8653,0.15541 -0.73834,1.55076 2.104,-0.20337 1.13886,-1.07074 0.73834,-1.55076 z" class="highlight2" id="path2513" sodipodi:nodetypes="ccc"/><path d="m 316.82316,228.06367 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" class="highlight2" id="path2515" sodipodi:nodetypes="ccc"/><path d="m 316.69673,225.30909 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" class="highlight2" id="path2517" sodipodi:nodetypes="ccc"/></g><g transform="'+_boob_right_art_transform+'" id="g2560"><path d="m 259.03954,222.95658 c -7.62159,-1.9871 -15.09403,5.90489 -17.77314,7.66238 4.07679,1.14519 17.22608,2.90775 17.77314,-7.66238 z" class="highlight2" id="path2522" sodipodi:nodetypes="ccc"/><path d="m 265.10282,214.91201 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" class="highlight2" id="path2526" sodipodi:nodetypes="ccc"/><path d="m 240.11624,228.02619 c -0.88548,-0.39214 -2.12833,0.0778 -2.24268,0.85503 0.6073,0.25848 1.86652,0.75577 2.24268,-0.85503 z" class="highlight2" id="path2531" sodipodi:nodetypes="ccc"/><path d="m 237.99074,236.34944 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" class="highlight2" id="path2534" sodipodi:nodetypes="ccc"/><path d="m 229.28393,243.15444 c -0.0284,5.33194 5.46557,13.27016 6.87749,14.83009 0.17258,-0.32513 -6.62103,-13.88095 -6.87749,-14.83009 z" class="highlight2" id="path2536" sodipodi:nodetypes="ccc"/><path d="m 229.074,240.58416 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" class="highlight2" id="path2545" sodipodi:nodetypes="ccc"/><path d="m 228.40491,235.41765 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" class="highlight2" id="path2556" sodipodi:nodetypes="ccc"/><path d="m 228.43265,233.66367 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" class="highlight2" id="path2558" sodipodi:nodetypes="ccc"/></g></g><g inkscape:groupmode="layer" id="Boob_Small_Highlights1" inkscape:label="Boob_Small_Highlights1" style="display:inline"><g transform="'+_boob_left_art_transform+'" id="g2569"><path sodipodi:nodetypes="ccc" id="path2564" class="highlight1" d="m 320.21266,218.71568 c -1.90013,1.2044 -1.89258,3.23381 -1.52692,4.67945 1.21541,-0.6336 2.621,-2.80656 1.52692,-4.67945 z"/><path sodipodi:nodetypes="ccc" id="path2567" class="highlight1" d="m 314.8764,235.91371 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z"/></g><g transform="'+_boob_right_art_transform+'" id="g2573"><path sodipodi:nodetypes="ccc" id="path2571" class="highlight1" d="m 252.94473,226.59339 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" /></g></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Highlights1.tw b/src/art/vector_revamp/layers/Boob_Small_Highlights1.tw new file mode 100644 index 0000000000000000000000000000000000000000..790f22335919bdf69cd2ec42a2faaf2fd1f95799 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Highlights1.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Highlights1 [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_left_art_transform+'" id="g2569"><path sodipodi:nodetypes="ccc" id="path2564" class="highlight1" d="m 320.21266,218.71568 c -1.90013,1.2044 -1.89258,3.23381 -1.52692,4.67945 1.21541,-0.6336 2.621,-2.80656 1.52692,-4.67945 z"/><path sodipodi:nodetypes="ccc" id="path2567" class="highlight1" d="m 314.8764,235.91371 c -1.68861,1.7669 -1.74121,4.42131 -1.45308,5.80445 1.40005,-1.16485 2.00138,-3.93156 1.45308,-5.80445 z"/></g><g transform="'+_boob_right_art_transform+'" id="g2573"><path sodipodi:nodetypes="ccc" id="path2571" class="highlight1" d="m 252.94473,226.59339 c -4.7273,0.75979 -7.83647,2.53916 -10.64479,3.98691 4.08319,1.14699 9.56562,1.06857 10.64479,-3.98691 z" /></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Highlights2.tw b/src/art/vector_revamp/layers/Boob_Small_Highlights2.tw new file mode 100644 index 0000000000000000000000000000000000000000..79bcd4afb3ceebd97c136fbc22db1d419ad8f7cc --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Highlights2.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Highlights2 [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g transform="'+_boob_left_art_transform+'" id="g2519"><path d="m 321.85975,215.92692 c -1.89715,1.20251 -6.31642,3.88396 -3.175,7.57381 4.21646,-0.071 4.26738,-5.70386 3.175,-7.57381 z" class="highlight2" id="path2507" sodipodi:nodetypes="ccc"/><path d="m 314.90689,235.99789 c -3.52683,3.26178 -5.76341,8.34571 -1.88762,10.3195 2.98911,-1.10062 3.7767,-5.82866 1.88762,-10.3195 z" class="highlight2" id="path2509" sodipodi:nodetypes="ccc"/><path d="m 315.18349,232.60131 c -1.45195,1.21811 -0.55284,1.57513 -0.29636,2.05122 0.91423,-0.4922 1.12461,-0.75849 0.29636,-2.05122 z" class="highlight2" id="path2511" sodipodi:nodetypes="ccc"/><path d="m 322.97466,213.38435 c -0.6421,0.2097 -1.8653,0.15541 -0.73834,1.55076 2.104,-0.20337 1.13886,-1.07074 0.73834,-1.55076 z" class="highlight2" id="path2513" sodipodi:nodetypes="ccc"/><path d="m 316.82316,228.06367 c -1.11294,-1.53405 -2.19421,-0.93805 -2.68716,-0.71571 0.55046,0.56081 1.587,0.71901 2.68716,0.71571 z" class="highlight2" id="path2515" sodipodi:nodetypes="ccc"/><path d="m 316.69673,225.30909 c -1.29574,-0.23601 -1.88877,0.15883 -2.19442,0.60489 1.134,0.2189 1.34152,0.27164 2.19442,-0.60489 z" class="highlight2" id="path2517" sodipodi:nodetypes="ccc"/></g><g transform="'+_boob_right_art_transform+'" id="g2560"><path d="m 259.03954,222.95658 c -7.62159,-1.9871 -15.09403,5.90489 -17.77314,7.66238 4.07679,1.14519 17.22608,2.90775 17.77314,-7.66238 z" class="highlight2" id="path2522" sodipodi:nodetypes="ccc"/><path d="m 265.10282,214.91201 c -0.95282,-0.17319 -2.05051,0.57552 -1.97909,1.35787 0.65101,0.10861 1.99182,0.29621 1.97909,-1.35787 z" class="highlight2" id="path2526" sodipodi:nodetypes="ccc"/><path d="m 240.11624,228.02619 c -0.88548,-0.39214 -2.12833,0.0778 -2.24268,0.85503 0.6073,0.25848 1.86652,0.75577 2.24268,-0.85503 z" class="highlight2" id="path2531" sodipodi:nodetypes="ccc"/><path d="m 237.99074,236.34944 c -0.73203,-0.21484 -5.15512,0.19734 -5.63251,0.25215 0.75202,0.71167 5.58739,1.42579 5.63251,-0.25215 z" class="highlight2" id="path2534" sodipodi:nodetypes="ccc"/><path d="m 229.28393,243.15444 c -0.0284,5.33194 5.46557,13.27016 6.87749,14.83009 0.17258,-0.32513 -6.62103,-13.88095 -6.87749,-14.83009 z" class="highlight2" id="path2536" sodipodi:nodetypes="ccc"/><path d="m 229.074,240.58416 c -0.9515,0.64423 -0.46796,1.54477 -0.0582,1.90403 0.59571,-0.35255 0.32483,-1.39831 0.0582,-1.90403 z" class="highlight2" id="path2545" sodipodi:nodetypes="ccc"/><path d="m 228.40491,235.41765 c -0.59901,0.17025 -1.09692,0.35984 -1.51392,0.72202 0.72549,0.21496 1.41311,0.13798 1.51392,-0.72202 z" class="highlight2" id="path2556" sodipodi:nodetypes="ccc"/><path d="m 228.43265,233.66367 c -0.26942,0.0314 -0.84341,0.20991 -0.92331,0.70779 0.27525,-0.29894 0.86207,-0.25886 0.92331,-0.70779 z" class="highlight2" id="path2558" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Nipples.tw b/src/art/vector_revamp/layers/Boob_Small_Nipples.tw new file mode 100644 index 0000000000000000000000000000000000000000..9c11d7ec0fb2c9c02178e93158d1757ba1aa0c49 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Nipples.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Nipples [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g2261" transform="'+_boob_right_art_transform+'" ><path id="path2251" class="shadow" d="m 228.15788,238.27703 c 0,0 -1.69507,-0.53274 -1.71244,-1.85211 0.0822,-1.64738 1.97278,-3.7797 3.37857,-3.08983 0.61419,0.34349 1.0323,0.99576 1.0323,0.99576 -0.0631,2.02891 -0.89639,3.0666 -2.69843,3.94618 z" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="ccccc" d="m 228.15788,238.27703 c 0,0 -1.71287,-0.63317 -1.71244,-1.85211 0.0582,-1.50008 2.07725,-3.77384 3.37857,-3.08983 0.53396,0.31477 1.0323,0.99576 1.0323,0.99576 -0.0695,1.89392 -0.94491,3.08122 -2.69843,3.94618 z" class="areola" id="path2253"/><path id="path2255" class="shadow" d="m 226.82891,235.33246 c 0.4671,-0.43506 0.95746,-0.39751 2.03265,-0.2697 -0.95835,0.0287 -1.3927,-0.20327 -2.03265,0.2697 z" sodipodi:nodetypes="ccc"/><path id="path2257" class="shadow" d="m 227.54865,235.02726 c -0.0294,-0.24033 0.0356,-0.69542 0.57576,-0.79154 -0.60268,0.23726 -0.50582,0.5033 -0.57576,0.79154 z" sodipodi:nodetypes="ccc"/><path id="path2259" class="shadow" d="m 229.12691,238.41526 c 1.38286,-0.93932 2.12052,-2.43098 1.67838,-3.53558 0.24777,0.68434 0.5439,2.16936 -1.67838,3.53558 z" sodipodi:nodetypes="ccc"/></g><g id="g2277" transform="'+_boob_left_art_transform+'" ><path id="path2265" d="m 313.17342,229.48817 c -0.54304,-0.69859 -0.45339,-1.79081 -0.30362,-2.30073 0.3611,-1.37094 1.95228,-2.06832 3.33841,-2.049 1.21548,0.0169 1.90412,0.19475 2.44948,1.27776 0.59205,0.46086 0.63124,1.24817 0.60041,1.28371 -0.16171,1.13935 -0.91614,2.77485 -3.12982,2.68352 -1.77607,0.0895 -2.38275,-0.0237 -2.95486,-0.89526 z" class="shadow" sodipodi:nodetypes="ccscccc"/><path sodipodi:nodetypes="csscccc" class="areola" d="m 313.17342,229.48817 c -0.37088,-0.71581 -0.44918,-1.79919 -0.30362,-2.30073 0.38087,-1.31237 2.09965,-2.03413 3.33841,-2.049 1.22123,-0.0146 1.91113,0.36309 2.44948,1.27776 0.49616,0.54803 0.61883,1.25946 0.60041,1.28371 -0.2124,1.06614 -0.96439,2.70517 -3.12982,2.68352 -1.67427,0.002 -2.33494,-0.0646 -2.95486,-0.89526 z" id="path2267"/><path id="path2269" d="m 313.95456,226.60231 c 1.19002,-0.4627 2.32428,0.16299 3.06225,0.78272 -0.88614,-0.43236 -2.01938,-1.0249 -3.06225,-0.78272 z" class="shadow" sodipodi:nodetypes="ccc"/><path sodipodi:nodetypes="ccc" class="shadow" d="m 315.32933,226.59452 c 0.67881,-0.5905 1.08777,-0.74769 2.10609,-0.65154 -0.95211,0.0335 -1.38478,0.20735 -2.10609,0.65154 z" id="path2271"/><path id="path2273" d="m 313.52477,229.56238 c 5.73405,1.19191 5.23709,-2.78121 5.13315,-3.17662 0.34627,2.41244 -1.09956,4.45601 -5.13315,3.17662 z" class="shadow" sodipodi:nodetypes="ccc"/><path id="path2275" class="shadow" d="m 314.90832,230.85525 c 3.02543,-0.30922 3.93195,-0.97079 4.24929,-2.75077 -0.0369,2.06363 -1.68284,2.59962 -4.24929,2.75077 z" sodipodi:nodetypes="ccc"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Outfit_Maid.tw b/src/art/vector_revamp/layers/Boob_Small_Outfit_Maid.tw new file mode 100644 index 0000000000000000000000000000000000000000..885e275e7dd8c7e3f2f84bf4ff51b29d547219ac --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Outfit_Maid.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Outfit_Maid [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g style="display:inline;opacity:1" id="g2134" transform="'+_boob_outfit_art_transform+'" ><path style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99515665" d="m 239.54885,237.04157 c -4.04819,7.94613 1.44538,18.58593 8.83122,22.81636 8.09471,6.43684 19.83019,-1.39546 30.03417,-2.40951 14.56784,0.39988 33.00884,8.74574 45.2163,-1.3044 10.61336,-7.56078 12.07589,-24.40116 5.67382,-34.87417 -7.36879,-13.11973 -24.34612,-5.89309 -39.2914,-4.14233 -19.08654,2.23589 -45.57307,0.78903 -50.46411,19.91405 z" id="path2802" sodipodi:nodetypes="ccccccc"/><path sodipodi:nodetypes="aaaaaaa" id="path2130" d="m 239.54885,237.04157 c -2.74035,7.68108 1.92475,18.4794 8.83122,22.81636 8.5056,5.34113 20.0055,-1.86294 30.03417,-2.40951 15.05602,-0.82057 33.63673,8.35329 45.2163,-1.3044 9.12655,-7.61181 13.40486,-24.61335 7.40909,-34.87417 -7.23069,-12.3742 -26.77543,-14.38112 -41.02667,-12.86259 -19.23179,2.04922 -43.96524,10.41822 -50.46411,28.63431 z" style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:0.99515665" /></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Piercing.tw b/src/art/vector_revamp/layers/Boob_Small_Piercing.tw new file mode 100644 index 0000000000000000000000000000000000000000..223a1b0f2edf45badf0c29d8f975118f07a7bfe4 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Piercing.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Piercing [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g1366" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1"/><g id="g4019" style="fill:#c0c6c7;fill-opacity:1;stroke:none;stroke-opacity:1" transform="'+_boob_left_art_transform+'" ><path class="shadow" sodipodi:nodetypes="aaaaa" id="path5080" d="m 321.89408,227.57109 c 0,0.74947 -0.84077,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75643,0 1.5972,0.84773 1.5972,1.5972 z"/><path class="shadow" sodipodi:nodetypes="saccs" id="path5082" d="m 313.02276,229.35579 c -0.75293,0 -1.63873,-0.84886 -1.5972,-1.5972 0.0463,-0.83367 1.21255,-1.57531 1.96548,-1.57531 -0.68775,1.21129 -0.7805,1.82947 -0.3682,3.17251 z"/><path d="m 321.74888,227.57109 c 0,0.68134 -0.76433,1.452 -1.452,1.452 -0.68767,0 -1.452,-0.77066 -1.452,-1.452 0,-0.68134 0.76433,-1.452 1.452,-1.452 0.68767,0 1.452,0.77066 1.452,1.452 z" id="path2749-8-1" sodipodi:nodetypes="aaaaa" class="steel_piercing"/><path d="m 313.02164,229.21059 c -0.68448,0 -1.48776,-0.77159 -1.452,-1.452 0.0401,-0.76308 1.10584,-1.452 1.79032,-1.452 -0.71906,1.10285 -0.73484,1.67672 -0.33828,2.904 z" id="path2749-8-37" sodipodi:nodetypes="saccs" class="steel_piercing"/></g><g style="display:inline" id="g3034" transform="'+_boob_right_art_transform+'" ><path d="m 231.70657,235.61491 c 0,0.74947 -0.84076,1.5972 -1.5972,1.5972 -0.75643,0 -1.5972,-0.84773 -1.5972,-1.5972 0,-0.74947 0.84077,-1.5972 1.5972,-1.5972 0.75644,0 1.5972,0.84773 1.5972,1.5972 z" id="path5084" sodipodi:nodetypes="aaaaa" class="shadow" /><path d="m 226.57248,236.96752 c -0.34466,-0.31248 -0.76627,-0.64473 -0.76627,-1.05102 0,-0.75293 0.84427,-1.5972 1.5972,-1.5972 -0.78404,0.89358 -0.91059,1.20611 -0.83093,2.64822 z" id="path5086" sodipodi:nodetypes="cscc" class="shadow" /><path class="steel_piercing" sodipodi:nodetypes="aaaaa" id="path2749-8-1-1" d="m 231.56137,235.61491 c 0,0.68134 -0.76433,1.452 -1.452,1.452 -0.68766,0 -1.452,-0.77066 -1.452,-1.452 0,-0.68133 0.76434,-1.452 1.452,-1.452 0.68767,0 1.452,0.77067 1.452,1.452 z" /><path class="steel_piercing" sodipodi:nodetypes="cscc" id="path2749-8-1-5" d="m 226.56796,236.90063 c -0.31333,-0.28407 -0.68915,-0.63503 -0.68915,-1.00438 0,-0.68448 0.76752,-1.452 1.452,-1.452 -0.71276,0.81234 -0.83527,1.14537 -0.76285,2.45638 z" /></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Boob_Small_Piercing_Heavy.tw b/src/art/vector_revamp/layers/Boob_Small_Piercing_Heavy.tw new file mode 100644 index 0000000000000000000000000000000000000000..944d5a9644651a28f17a6955d87ee7abfaade543 --- /dev/null +++ b/src/art/vector_revamp/layers/Boob_Small_Piercing_Heavy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Boob_Small_Piercing_Heavy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><g id="g3131" transform="'+_boob_left_art_transform+'" ><path d="m 310.74124,223.29137 c 0,0 -2.49411,9.18373 -0.98325,13.39981 1.04424,2.91398 3.31774,6.91285 6.40728,6.7218 3.05706,-0.18905 4.59483,-4.44702 5.47216,-7.38158 1.2346,-4.12965 -0.7356,-12.9098 -0.7356,-12.9098 0,0 0.11352,1.8255 0.16679,3.66985 -0.16929,0.006 -2.35051,-4.1e-4 -2.35051,-4.1e-4 0.0559,0.37078 -0.0172,0.52908 -0.0182,0.90408 0,0 2.10319,-0.01 2.38726,-0.0165 0.0394,2.95347 -0.12672,6.29356 -1.09131,8.44744 -0.78349,1.74932 -2.10939,3.66042 -3.89433,3.67566 -1.987,0.017 -3.50956,-2.07688 -4.40441,-4.01713 -0.94479,-2.04857 -1.13062,-5.2179 -1.1115,-8.05448 0.44876,0 2.16836,-0.0536 2.16836,-0.0536 l 0.0221,-0.91124 c 0,0 -1.72384,-0.0132 -2.17613,-0.0132 0.0399,-1.72733 0.14124,-3.46134 0.14124,-3.46134 z" class="shadow" id="path5090" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 316.17757,240.04058 c 0,0 -1.85221,9.4952 -1.92044,14.30624 -0.078,5.49738 1.72993,16.40283 1.72993,16.40283 0,0 -0.37012,-9.79442 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path5094" sodipodi:nodetypes="caccc"/><path d="m 315.92337,268.73978 c 0,0 -1.08608,3.59047 -0.98853,5.42648 0.0928,1.74745 1.48279,5.03598 1.48279,5.03598 0,0 1.05088,-3.32642 0.98853,-5.03598 -0.0684,-1.8739 -1.48279,-5.42648 -1.48279,-5.42648 z" class="shadow" id="path5096" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-2" class="steel_piercing" d="m 311.18823,224.19858 c 0,0 -2.26737,8.34885 -0.89386,12.18164 0.94931,2.64907 3.01613,6.2844 5.8248,6.11072 2.77914,-0.17186 4.17712,-4.04275 4.97469,-6.71053 1.12237,-3.75423 -0.66873,-11.73618 -0.66873,-11.73618 0,0 0.1032,1.19752 0.15163,2.87419 -0.1539,0.005 -1.857,-3.7e-4 -1.857,-3.7e-4 -0.01,0.4056 -0.009,0.4963 -0.0851,0.81799 0,0 1.70069,-0.005 1.95894,-0.0111 0.0358,2.68498 -0.1152,6.18346 -0.9921,8.14152 -0.71227,1.59029 -1.91763,3.32765 -3.5403,3.34151 -1.80637,0.0154 -3.19051,-1.88807 -4.00401,-3.65193 -0.8589,-1.86234 -1.02784,-5.20558 -1.01046,-7.78429 0.40797,0 1.73828,-0.0487 1.73828,-0.0487 l 0.16073,-0.8284 c 0,0 -1.47475,-0.012 -1.88597,-0.012 0.0363,-1.5703 0.1284,-2.68465 0.1284,-2.68465 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-8" class="steel_piercing" d="m 316.13135,241.43645 c 0,0 -1.68382,8.632 -1.74585,13.00567 -0.0709,4.99762 1.57266,14.91166 1.57266,14.91166 0,0 -0.33647,-8.90402 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-8" class="steel_piercing" d="m 315.94568,269.21534 c 0,0 -0.98735,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57815 1.34799,4.57815 0,0 0.95535,-3.02401 0.89867,-4.57815 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z"/></g><g id="g3139" transform="'+_boob_right_art_transform+'" ><path d="m 232.41948,231.80744 c 0,0 1.84875,9.08379 0.67687,13.39983 -0.70222,2.58629 -1.73488,6.86756 -4.41084,6.72179 -2.75834,-0.15026 -3.17412,-4.68357 -3.76709,-7.3816 -0.92442,-4.20618 0.5064,-12.90978 0.5064,-12.90978 0,0 -0.0782,1.73915 -0.11483,3.58349 0.11654,0.006 1.459,-4.1e-4 1.459,-4.1e-4 l -0.43147,0.90407 c 0,0 -0.84471,-0.01 -1.04027,-0.0165 -0.0271,2.95346 0.0873,6.37993 0.75126,8.5338 0.53937,1.74933 1.16447,3.66321 2.68091,3.67564 1.67758,0.0138 2.41602,-2.07685 3.03204,-4.01709 0.65041,-2.04858 0.77834,-5.30427 0.76517,-8.14084 -0.30893,0 -1.87642,-0.0536 -1.87642,-0.0536 0.0596,-0.36182 0.0683,-0.46339 0.2179,-0.91125 0,0 1.33728,-0.0132 1.64865,-0.0132 -0.0275,-1.72732 -0.0972,-3.37499 -0.0972,-3.37499 z" class="shadow" id="path5092" sodipodi:nodetypes="caaacccccsascccccc"/><path d="m 229.06632,249.43465 c 0,0 -1.8522,9.4952 -1.92044,14.30623 -0.078,5.49738 1.72993,16.40284 1.72993,16.40284 0,0 -0.37012,-9.79444 1.09665,-19.6094 -0.97824,-3.25724 -0.90614,-11.09967 -0.90614,-11.09967 z" class="shadow" id="path5098" sodipodi:nodetypes="caccc"/><path d="m 228.81212,278.13384 c 0,0 -1.08607,3.59049 -0.98853,5.4265 0.0928,1.74744 1.48279,5.03595 1.48279,5.03595 0,0 1.05088,-3.3264 0.98853,-5.03595 -0.0683,-1.8739 -1.48279,-5.4265 -1.48279,-5.4265 z" class="shadow" id="path5100" sodipodi:nodetypes="cacac"/><path sodipodi:nodetypes="caaacccccsascccccc" id="XMLID_525_-3-62-9-0-8" class="steel_piercing" d="m 232.11236,232.71456 c 0,0 1.68068,8.25799 0.61534,12.18167 -0.63839,2.35117 -1.57717,6.24324 -4.00986,6.11072 -2.50758,-0.1366 -2.88557,-4.25779 -3.42463,-6.71055 -0.84038,-3.8238 0.46036,-11.73616 0.46036,-11.73616 0,0 -0.071,1.19752 -0.10438,2.87419 0.10594,0.005 1.0341,-3.7e-4 1.0341,-3.7e-4 l -0.22214,0.82187 c 0,0 -0.64577,-0.009 -0.82355,-0.015 -0.0247,2.68496 0.0793,6.18345 0.68297,8.14152 0.49034,1.5903 1.05861,3.3302 2.43719,3.3415 1.52507,0.0125 2.19638,-1.88805 2.7564,-3.65191 0.59128,-1.86235 0.70758,-5.20558 0.69561,-7.78429 -0.28085,0 -1.70584,-0.0487 -1.70584,-0.0487 0.0541,-0.32893 0.16478,-0.53596 0.16187,-0.82841 0,0 1.25193,-0.012 1.535,-0.012 -0.025,-1.57029 -0.0884,-2.68465 -0.0884,-2.68465 z"/><path sodipodi:nodetypes="caccc" id="XMLID_513_-8-0-5-7" class="steel_piercing" d="m 229.0201,250.83052 c 0,0 -1.68382,8.63199 -1.74585,13.00566 -0.0709,4.99762 1.57266,14.91167 1.57266,14.91167 0,0 -0.33647,-8.90403 0.99696,-17.82673 -0.88931,-2.96113 -0.82377,-10.0906 -0.82377,-10.0906 z"/><path sodipodi:nodetypes="cacac" id="XMLID_514_-2-7-4-0" class="steel_piercing" d="m 228.83443,278.60941 c 0,0 -0.98734,3.26408 -0.89867,4.93318 0.0844,1.58858 1.34799,4.57813 1.34799,4.57813 0,0 0.95535,-3.024 0.89867,-4.57813 -0.0621,-1.70355 -1.34799,-4.93318 -1.34799,-4.93318 z"/></g></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Collar_Maid.tw b/src/art/vector_revamp/layers/Collar_Maid.tw deleted file mode 100644 index 8a19b8d254b080abc6b4232a5dc286bacfb0083c..0000000000000000000000000000000000000000 --- a/src/art/vector_revamp/layers/Collar_Maid.tw +++ /dev/null @@ -1,3 +0,0 @@ -:: Art_Vector_Revamp_Collar_Maid [nobr] - -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1313" class="shadow" d="m 331.85675,162.02243 1.93544,5.9919 c 0.0226,0.004 0.34362,1.06634 -0.055,1.40725 -0.38339,0.53019 -1.38615,0.29933 -1.37171,0.26757 0.054,0 0.46202,1.5678 -0.081,2.03434 -0.5322,0.56735 -2.02139,-0.001 -2.00889,-0.0302 0.037,0 0.38254,2.10628 -0.42608,2.60581 -0.78793,0.53523 -2.40476,-0.4653 -2.37303,-0.48513 0.0384,0.006 0.2673,1.80307 -0.43822,2.20841 -0.62218,0.58415 -2.41384,-0.43536 -2.42937,-0.46642 0.0803,0.0301 -0.0134,1.84831 -0.78489,2.15506 -0.80428,0.38323 -2.20648,-0.66689 -2.17531,-0.67858 0.0329,-0.007 0.0424,1.7723 -0.78489,2.08566 -0.84412,0.36119 -2.00797,-0.92447 -2.00797,-0.92447 0.0267,0.0419 -0.14902,1.64182 -0.81051,1.80958 -0.7509,0.31434 -1.99714,-0.81291 -1.94526,-0.84626 0.0447,0.0149 -0.27635,1.5613 -1.02005,1.7147 -0.73481,0.23969 -1.84326,-0.86986 -1.8042,-0.89089 0.0219,0.0188 -0.56384,1.18152 -1.17391,1.26017 -0.59199,0.16577 -1.4985,-0.60773 -1.4798,-0.62228 0.0272,0.0204 -0.72132,1.21882 -1.3999,1.28632 -0.6705,0.15933 -1.69372,-0.67933 -1.66134,-0.70288 0.0336,0.0336 -0.76566,1.10921 -1.41643,1.15247 -0.72271,0.15706 -1.81336,-0.69065 -1.78527,-0.70937 0.0206,0.0112 -0.93563,1.11098 -1.68979,1.08277 -0.59807,0.0713 -1.44494,-0.80263 -1.43635,-0.81265 0.0325,0.013 -0.27324,0.85093 -0.68009,0.76955 -0.29439,-0.0184 -0.34132,-0.69275 -0.30755,-0.71205 l -0.19939,-6.02293 c -0.003,0 -0.13477,-0.32166 0.032,-0.36489 0.17113,-0.0761 0.32878,0.27634 0.30666,0.29109 -0.0345,-0.0115 0.28294,-0.64768 0.6928,-0.6998 0.57869,0.27858 1.97754,0.7297 1.97754,0.7297 0,0 1.62702,-1.34485 2.2488,-1.76753 0.31994,0.0903 0.45771,0.27246 0.45497,0.27442 -0.008,-0.001 0.2782,-0.88845 0.71952,-0.99561 0.43595,-0.14269 1.12798,0.42903 1.11321,0.43747 -0.0137,0 0.0724,-1.00959 0.51286,-1.15604 0.46773,-0.19935 1.28089,0.57501 1.26076,0.59917 -0.0138,-0.0111 0.12563,-1.17419 0.61384,-1.32805 0.56719,-0.23879 1.61963,0.58765 1.57985,0.61252 -0.0346,0.002 0.1956,-1.47265 0.90107,-1.71051 0.68508,-0.29172 1.96956,0.70712 1.95558,0.72389 -0.0142,0 0.34612,-1.822 1.14808,-2.09134 0.81177,-0.31928 2.17473,0.8304 2.14422,0.85074 -0.0128,0.003 0.0174,-1.62685 0.71557,-1.9026 0.70359,-0.28524 1.8785,0.81789 1.83908,0.83103 -0.0322,-0.0138 0.0235,-1.70274 0.76143,-1.95615 0.72075,-0.31561 2.02146,0.63985 1.97329,0.65017 -0.0347,-0.008 -0.072,-1.35954 0.51405,-1.61896 0.56598,-0.34388 1.72256,0.36114 1.69497,0.38567 -0.0272,0.006 -0.16412,-1.28353 0.39216,-1.62524 0.53723,-0.37554 1.7904,0.19188 1.77026,0.20627 -0.0208,-0.0115 -0.16702,-1.19259 0.30242,-1.43107 0.44979,-0.29501 1.37419,0.20433 1.34972,0.21657 -0.0104,-0.001 -0.16864,-1.03615 0.25185,-1.27595 0.39853,-0.29034 1.22742,0.17064 1.2032,0.19217 -0.0264,-0.0192 -0.0519,-0.94646 0.35068,-1.09934 0.24481,-0.22205 0.8515,-0.0374 1.03033,0.0948 z"/><path d="m 331.85675,162.02243 1.93544,5.9919 c 0,0 0.2505,1.05082 -0.055,1.40725 -0.30317,0.35371 -1.37171,0.26757 -1.37171,0.26757 0,0 0.41185,1.5678 -0.081,2.03434 -0.48636,0.4604 -2.00889,-0.0302 -2.00889,-0.0302 0,0 0.29857,2.10628 -0.42608,2.60581 -0.66474,0.45823 -2.37303,-0.48513 -2.37303,-0.48513 0,0 0.1843,1.78924 -0.43822,2.20841 -0.68398,0.46055 -2.42937,-0.46642 -2.42937,-0.46642 0,0 -0.0997,1.81595 -0.78489,2.15506 -0.68075,0.33691 -2.17531,-0.67858 -2.17531,-0.67858 0,0 -0.0978,1.80346 -0.78489,2.08566 -0.68161,0.27994 -2.00797,-0.92447 -2.00797,-0.92447 0,0 -0.19423,1.57078 -0.81051,1.80958 -0.65935,0.25549 -1.94526,-0.84626 -1.94526,-0.84626 0,0 -0.38234,1.52597 -1.02005,1.7147 -0.64315,0.19034 -1.8042,-0.89089 -1.8042,-0.89089 0,0 -0.61261,1.13972 -1.17391,1.26017 -0.5232,0.11227 -1.4798,-0.62228 -1.4798,-0.62228 0,0 -0.77548,1.1782 -1.3999,1.28632 -0.59249,0.10259 -1.66134,-0.70288 -1.66134,-0.70288 0,0 -0.8148,1.06007 -1.41643,1.15247 -0.63292,0.0972 -1.78527,-0.70937 -1.78527,-0.70937 0,0 -1.02107,1.06438 -1.68979,1.08277 -0.54989,0.0151 -1.43635,-0.81265 -1.43635,-0.81265 0,0 -0.34202,0.82342 -0.68009,0.76955 -0.25532,-0.0407 -0.30755,-0.71205 -0.30755,-0.71205 l -0.19939,-6.02293 c 0,0 -0.0822,-0.32166 0.032,-0.36489 0.13181,-0.0499 0.30666,0.29109 0.30666,0.29109 0,0 0.37519,-0.61693 0.6928,-0.6998 0.57869,0.27858 1.97754,0.7297 1.97754,0.7297 0,0 1.62702,-1.34485 2.2488,-1.76753 0.25782,0.13468 0.45497,0.27442 0.45497,0.27442 0,0 0.32661,-0.88038 0.71952,-0.99561 0.38258,-0.1122 1.11321,0.43747 1.11321,0.43747 0,0 0.11755,-1.00959 0.51286,-1.15604 0.43632,-0.16165 1.26076,0.59917 1.26076,0.59917 0,0 0.16167,-1.14536 0.61384,-1.32805 0.52368,-0.21159 1.57985,0.61252 1.57985,0.61252 0,0 0.29924,-1.48005 0.90107,-1.71051 0.64912,-0.24857 1.95558,0.72389 1.95558,0.72389 0,0 0.39983,-1.822 1.14808,-2.09134 0.7235,-0.26043 2.14422,0.85074 2.14422,0.85074 0,0 0.0897,-1.64291 0.71557,-1.9026 0.62134,-0.25782 1.83908,0.83103 1.83908,0.83103 0,0 0.12856,-1.6577 0.76143,-1.95615 0.62639,-0.29539 1.97329,0.65017 1.97329,0.65017 0,0 0.0226,-1.33772 0.51405,-1.61896 0.5029,-0.28781 1.69497,0.38567 1.69497,0.38567 0,0 -0.0649,-1.30643 0.39216,-1.62524 0.48727,-0.33985 1.77026,0.20627 1.77026,0.20627 0,0 -0.0995,-1.15508 0.30242,-1.43107 0.37563,-0.25793 1.34972,0.21657 1.34972,0.21657 0,0 -0.10379,-1.02804 0.25185,-1.27595 0.33319,-0.23226 1.2032,0.19217 1.2032,0.19217 0,0 0.03,-0.88689 0.35068,-1.09934 0.28751,-0.19049 1.03033,0.0948 1.03033,0.0948 z" class="shadow" id="path1311" sodipodi:nodetypes="ccacacacacacacacacacacacacaccacccccacacacacacacacacacacacacc"/><path d="m 331.97234,162.2961 c 1.04474,1.70444 1.78177,3.48654 1.74481,5.48322 -4.80523,6.73958 -20.24123,13.2466 -33.48864,14.05592 -0.33393,-1.8002 -0.45469,-3.6478 -0.19853,-5.57779 0.85173,-0.3414 1.73617,-0.50846 2.29254,-0.58193 0.359,0.079 0.73339,0.22405 0.73339,0.22405 0,0 0.51119,-0.41895 0.73589,-0.60563 19.93433,-5.50204 22.69697,-9.57458 28.18054,-12.99784 z" class="shadow" id="path1309" sodipodi:nodetypes="cccccccc"/><path sodipodi:nodetypes="cccccccc" id="path1108-7-2-3" class="shadow" d="m 331.97234,162.2961 c 0.90255,1.73604 1.6591,3.5138 1.74481,5.48322 -5.06089,6.56914 -20.09695,12.90821 -33.48864,14.05592 -0.2453,-1.81793 -0.33592,-3.67155 -0.19853,-5.57779 0.68574,-0.17541 1.64124,-0.41353 2.29254,-0.58193 0.359,0.079 0.73339,0.22405 0.73339,0.22405 0,0 0.51119,-0.41895 0.73589,-0.60563 20.41701,-5.32652 22.8144,-9.53188 28.18054,-12.99784 z"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Hair_Fore_Shaved_Sides_Old_copy.tw b/src/art/vector_revamp/layers/Hair_Fore_Shaved_Sides_Old_copy.tw new file mode 100644 index 0000000000000000000000000000000000000000..cc5965005aa4c7adb9916ed2c1fe08d010643e4d --- /dev/null +++ b/src/art/vector_revamp/layers/Hair_Fore_Shaved_Sides_Old_copy.tw @@ -0,0 +1,3 @@ +:: Art_Vector_Revamp_Hair_Fore_Shaved_Sides_Old_ copy [nobr] + +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 251.4536,161.46413 c -0.60449,-4.42611 -0.24997,-12.28779 0.30818,-15.07977 1.04636,5.95887 1.94432,13.80117 6.2265,21.23041 -1.19495,-8.60885 -0.67387,-12.01072 0.0186,-19.46198 0.86192,9.97611 5.42918,18.65867 5.51006,18.63661 0.32905,-0.27421 -3.75649,-41.35792 1.52765,-51.85844 -1.56878,4.39592 -1.0455,11.21714 -0.60609,13.1602 1.20375,-10.65238 4.7302,-16.65981 7.51079,-21.2274 -1.77637,3.56329 -1.69686,6.73318 -1.67001,6.72423 2.7435,-5.08811 7.28199,-10.31751 7.72633,-10.59258 1.7754,-0.59821 3.34591,-1.34727 4.89709,-1.98766 -0.95374,1.0861 -3.34853,5.47746 -3.25001,5.4479 1.78878,-2.20362 7.30144,-6.25367 8.15415,-6.579777 3.90053,-0.46273 7.96311,-0.887567 12.31642,-1.006656 0.97516,-2.301021 -2.46173,-4.187764 -2.50051,-4.180713 -0.27758,0.05552 6.85578,4.540259 7.53473,4.526486 1.84048,0.505313 3.1683,0.684458 4.34712,0.85514 1.24026,-1.476422 -2.27202,-4.30682 -2.28964,-4.301785 -0.19916,0.06639 5.41691,5.533855 6.59453,5.794845 1.42736,0.7452 2.9587,1.6137 4.75884,2.58346 0.0658,-3.22911 -1.83468,-5.252331 -1.83468,-5.252331 -0.0323,0.01176 4.46505,7.566831 7.18097,9.628731 0.90909,1.10054 1.85278,2.25487 3.10638,3.42971 6.69495,-2.3189 4.87583,-1.67338 8.49073,-3.89429 -0.0976,-7.08281 -1.93991,-22.249963 -12.0468,-28.474671 -10.4101,-7.382931 -24.19082,-8.250906 -39.13439,-7.179564 -9.13827,0.104194 -22.81316,5.928461 -22.58648,5.960844 -0.0377,0 3.35418,0.551361 3.88899,3.271316 -6.1017,3.88449 -11.84387,8.929494 -18.57324,16.734688 0.15081,0.117293 5.5349,-1.164935 6.8477,-1.139988 -6.73703,8.463735 -7.99098,10.588605 -11.93124,23.066475 0.0592,0.037 3.52877,-4.70615 7.09562,-6.54615 -3.84137,8.38017 -4.56237,13.29232 -4.81341,23.73954 1.57001,-2.6181 3.26987,-5.2362 4.28595,-7.8543 -2.62033,10.90993 -0.90677,24.463 2.90918,31.82747 z" id="path2645" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccc" class="shadow"/><path class="hair" sodipodi:nodetypes="cccccccccscccccsccsccsccsacccccccccc" id="path2647" d="m 251.4536,161.46413 c -0.79085,-4.39505 -0.55717,-12.23659 0.30818,-15.07977 1.29154,5.92384 2.10812,13.77777 6.2265,21.23041 -1.31756,-8.60885 -1.05268,-12.01072 0.0186,-19.46198 1.36659,9.83847 5.51006,18.63661 5.51006,18.63661 0,0 -3.91407,-41.2266 1.52765,-51.85844 -1.2366,4.39592 -0.92934,11.21714 -0.60609,13.1602 0.84931,-10.65238 4.65052,-16.65981 7.51079,-21.2274 -1.48912,3.46754 -1.67001,6.72423 -1.67001,6.72423 2.22597,-4.94024 6.98807,-10.23353 7.72633,-10.59258 1.59694,-0.77667 3.23294,-1.46024 4.89709,-1.98766 -0.51004,0.95299 -3.25001,5.4479 -3.25001,5.4479 1.78878,-2.46118 7.30144,-6.466628 8.15415,-6.579777 4.10434,-0.59011 8.22897,-1.053727 12.31642,-1.006656 0.4394,-2.20361 -2.50051,-4.180713 -2.50051,-4.180713 0,0 7.16706,4.478004 7.53473,4.526486 1.45783,0.192233 2.90777,0.471295 4.34712,0.85514 0.89162,-1.37681 -2.28964,-4.301785 -2.28964,-4.301785 0,0 5.74154,5.425645 6.59453,5.794845 1.60466,0.69454 3.19224,1.54697 4.75884,2.58346 -0.32722,-3.09812 -1.83468,-5.252331 -1.83468,-5.252331 0,0 5.00744,7.369601 7.18097,9.628731 1.02248,1.06274 2.08404,2.17778 3.10638,3.42971 6.03412,-2.42904 4.49208,-1.73734 8.49073,-3.89429 -0.30579,-7.01342 -2.45311,-22.078898 -12.0468,-28.474671 -11.17283,-7.448526 -25.88161,-7.687309 -39.13439,-7.179564 -7.7809,0.298105 -22.58648,5.960844 -22.58648,5.960844 0,0 3.90736,0.551361 3.88899,3.271316 -5.71397,4.003792 -11.16561,9.138189 -18.57324,16.734688 0,0 5.17446,-1.44528 6.8477,-1.139988 -6.1633,8.463735 -7.63273,10.588605 -11.93124,23.066475 0,0 3.16197,-4.9354 7.09562,-6.54615 -3.52693,8.29441 -3.97798,13.13294 -4.81341,23.73954 l 4.28595,-7.8543 c -2.05322,10.79651 -0.67088,24.41582 2.90918,31.82747 z"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Head.tw b/src/art/vector_revamp/layers/Head.tw index e4ff04609a9bb673a3dddf24b79e03e2efbc83f0..ae217a35a32cf93dc59ff9f473301c79f766eac7 100644 --- a/src/art/vector_revamp/layers/Head.tw +++ b/src/art/vector_revamp/layers/Head.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Head [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccccc" id="path4126" class="shadow head" d="m 330.67904,147.05787 c 4.02576,-14.5334 2.40774,-9.56522 4.60772,-24.96522 4.35294,-45.564708 -25.44467,-52.371855 -51.32169,-49.098532 -28.88715,12.369092 -23.56049,37.717112 -21.60625,58.861762 6.66296,29.71585 21.76686,38.584 40.69493,44.03319 8.24106,-6.80961 18.66057,-9.28422 27.62529,-28.8312 z"/><path sodipodi:nodetypes="ccccccc" id="path1765" class="shadow" d="m 343.08002,119.80575 c -0.0148,-3.57294 -1.58403,-7.42219 -4.46245,-7.82314 -1.68355,-0.26633 -3.73785,2.64279 -3.55482,2.7216 1.25161,7.30189 -0.14604,15.46037 -2.20326,23.8321 -0.0848,0.0914 0.78297,0.54026 1.33132,0.26096 1.50417,-0.38333 2.54625,-2.01017 3.23524,-3.53238 2.95627,-4.34895 6.29161,-10.18092 5.65397,-15.45914 z"/><path d="m 343.08002,119.80575 c -0.25152,-2.99157 -1.51987,-7.22818 -4.46245,-7.82314 -1.46275,-0.29575 -3.55482,2.7216 -3.55482,2.7216 l -2.20326,23.8321 c 0,0 0.90175,0.40229 1.33132,0.26096 1.5167,-0.49902 2.40603,-2.1679 3.23524,-3.53238 2.84953,-4.68892 6.11367,-9.99155 5.65397,-15.45914 z" class="skin head" id="path931-2" sodipodi:nodetypes="aaccaaa"/><path d="m 330.67904,147.05787 c 3.72059,-14.62059 2.40772,-9.56522 4.60772,-24.96522 4.35294,-45.564708 -27.66288,-52.98142 -51.35294,-49.098532 -28.54575,12.837088 -23.30441,38.335292 -21.575,58.861762 6.84118,29.3 22.26258,37.42731 40.69493,44.03319 8.22825,-6.89931 18.52529,-10.2312 27.62529,-28.8312 z" class="skin head" id="path931" sodipodi:nodetypes="cccccc"/><g transform="'+_art_transform+'"style="display:inline;opacity:1" id="g6985"/><path sodipodi:nodetypes="ccc" id="path836-0-8" class="shadow" d="m 293.0317,130.0354 c -0.55104,6.21615 -1.72058,11.7593 -4.0313,17.16839 1.63729,-4.8559 3.03877,-11.72175 4.0313,-17.16839 z"/><path sodipodi:nodetypes="ccc" id="path836-0-8-3" class="shadow" d="m 293.97009,148.42393 c -1.8413,1.05492 -2.944,-0.38614 -4.94972,-1.2813 1.54163,1.40085 3.21214,2.54072 4.94972,1.2813 z"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="cccccc" id="path4126" class="shadow head" d="m 330.67904,147.05787 c 4.02576,-14.5334 2.40774,-9.56522 4.60772,-24.96522 4.35294,-45.564708 -25.44467,-52.371855 -51.32169,-49.098532 -28.88715,12.369092 -23.56049,37.717112 -21.60625,58.861762 6.66296,29.71585 21.76686,38.584 40.69493,44.03319 8.24106,-6.80961 18.66057,-9.28422 27.62529,-28.8312 z"/><path sodipodi:nodetypes="ccccccc" id="path1765" class="shadow" d="m 343.08002,119.80575 c -0.0148,-3.57294 -1.58403,-7.42219 -4.46245,-7.82314 -1.68355,-0.26633 -3.73785,2.64279 -3.55482,2.7216 1.25161,7.30189 -0.14604,15.46037 -2.20326,23.8321 -0.0848,0.0914 0.78297,0.54026 1.33132,0.26096 1.50417,-0.38333 2.54625,-2.01017 3.23524,-3.53238 2.95627,-4.34895 6.29161,-10.18092 5.65397,-15.45914 z"/><path d="m 343.08002,119.80575 c -0.25152,-2.99157 -1.51987,-7.22818 -4.46245,-7.82314 -1.46275,-0.29575 -3.55482,2.7216 -3.55482,2.7216 l -2.20326,23.8321 c 0,0 0.90175,0.40229 1.33132,0.26096 1.5167,-0.49902 2.40603,-2.1679 3.23524,-3.53238 2.84953,-4.68892 6.11367,-9.99155 5.65397,-15.45914 z" class="skin head" id="path931-2" sodipodi:nodetypes="aaccaaa"/><path d="m 330.67904,147.05787 c 3.72059,-14.62059 2.40772,-9.56522 4.60772,-24.96522 4.35294,-45.564708 -27.66288,-52.98142 -51.35294,-49.098532 -28.54575,12.837088 -23.30441,38.335292 -21.575,58.861762 6.84118,29.3 22.26258,37.42731 40.69493,44.03319 8.22825,-6.89931 18.52529,-10.2312 27.62529,-28.8312 z" class="skin head" id="path931" sodipodi:nodetypes="cccccc"/><g style="display:inline;opacity:1" id="g6985"/><path sodipodi:nodetypes="ccc" id="path836-0-8" class="shadow" d="m 293.0317,130.0354 c -0.55104,6.21615 -1.72058,11.7593 -4.0313,17.16839 1.63729,-4.8559 3.03877,-11.72175 4.0313,-17.16839 z"/><path sodipodi:nodetypes="ccc" id="path836-0-8-3" class="shadow" d="m 293.97009,148.42393 c -1.8413,1.05492 -2.944,-0.38614 -4.94972,-1.2813 1.54163,1.40085 3.21214,2.54072 4.94972,1.2813 z"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Torso_Hourglass.tw b/src/art/vector_revamp/layers/Torso_Hourglass.tw index 1499ca6da79978f7112f892e86f682c34394cdd6..f9b959d15c70ea0d8f84bedd85606140eeab4afe 100644 --- a/src/art/vector_revamp/layers/Torso_Hourglass.tw +++ b/src/art/vector_revamp/layers/Torso_Hourglass.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Torso_Hourglass [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="display:inline;opacity:1;fill:#ff0000" d="m 330.46094,146.33008 -33.94532,3.49609 c -0.60023,11.74644 4.71069,22.2221 4.14063,32.15625 -3.38126,2.62022 -7.80518,3.85567 -13.92187,5.23828 -2.12717,0.53863 -3.90301,1.14812 -5.31836,1.8125 -1.44243,0.67709 -2.53172,1.40659 -3.29883,2.16797 -0.76711,0.76138 -1.21275,1.5546 -1.36914,2.35352 -0.1564,0.79891 -0.0225,1.60483 0.36718,2.39453 0.38973,0.78969 1.035,1.56315 1.90625,2.29687 0.87126,0.73373 1.96768,1.42761 3.25586,2.0586 1.28819,0.63099 2.76769,1.19818 4.40821,1.67969 1.64051,0.4815 3.44284,0.87684 5.37109,1.1621 1.92825,0.28527 3.98337,0.46164 6.13477,0.50391 2.15139,0.0423 4.39904,-0.0494 6.70898,-0.29687 2.30994,-0.24748 4.68205,-0.65235 7.08594,-1.23633 2.40388,-0.58398 4.83825,-1.34721 7.27148,-2.31446 2.43324,-0.96724 4.86569,-2.13789 7.26367,-3.53515 2.39799,-1.39726 4.76241,-3.02051 7.06055,-4.89453 2.29815,-1.87403 4.53036,-3.99893 6.66406,-6.39649 2.13371,-2.39755 4.1676,-5.06732 6.07227,-8.03515 -0.0465,-0.0259 -0.0648,-0.0634 -0.10938,-0.0898 -9.4165,-1.39251 -15.92222,-5.03012 -15.74804,-30.52148 z" id="path1104"/><path d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 0.89599,1.18481 5.48384,2.32551 7.03956,-0.25046 l 1.10418,-0.062 c 0.0578,0.0417 5.51012,4.26247 11.34914,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -6.8269,-13.62863 -7.45206,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 14.92551,-15.90852 19.20209,-32.18261 21.62975,-41.33057 -0.50349,-3.50775 -1.32308,-10.70751 -1.45375,-13.44272 -4.53544,-10.77188 -2.3443,-15.76194 -4.6441,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z" class="shadow torso" id="path1102" sodipodi:nodetypes="ccccccccccscccccccsccccccc"/><path class="skin neck" sodipodi:nodetypes="cccccc" id="path1541" d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z"/><path d="m 346.20898,176.85156 c 0.0446,0.0265 0.0629,0.064 0.10938,0.0898 -29.49173,35.69478 -78.90476,13.79456 -59.58398,10.27929 -4.05962,0.91764 -8.25647,1.76506 -15.5879,3.61328 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 1.37693,0.26708 4.09368,1.61095 7.06445,-0.26758 l 1.11133,-0.0781 c 1.17404,1.57274 8.90177,1.53055 11.31445,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -3.8841,-8.49646 -20.35167,-24.94928 -20.57812,-24.78321 0.17394,-0.53763 -7.38366,-13.70783 -7.45118,-15.85937 2.56898,-6.32141 6.52259,-31.00027 8.07422,-32.87695 13.06864,-15.80638 16.79573,-26.30873 21.57031,-41.16602 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.53269,-1.09789 -8.76087,-1.33791 -12.56446,-1.90039 z" id="path1557" sodipodi:nodetypes="cccccccccccccccccccscccccc" class="skin torso"/><path sodipodi:nodetypes="ccccc" id="path1106" class="shadow belly_details" d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z"/><path sodipodi:nodetypes="ccc" id="path1108" class="muscle_tone" d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z"/><path sodipodi:nodetypes="ccc" id="path1110" class="muscle_tone" d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z"/><path sodipodi:nodetypes="ccc" id="path1112" class="muscle_tone" d="m 261.07288,408.74028 c -7.12092,-11.56625 -12.80508,-15.26976 -19.3403,-19.6414 12.24468,7.16654 14.68099,9.92914 19.3403,19.6414 z"/><path sodipodi:nodetypes="ccc" id="path1114" class="muscle_tone" d="m 333.87477,277.49678 c -0.45714,-1.47279 -0.073,-7.87231 -6.56962,-12.18972 4.93326,3.3569 6.04008,6.0889 6.56962,12.18972 z"/><path sodipodi:nodetypes="ccc" id="path1116" class="muscle_tone" d="m 303.24363,269.89121 c -3.70542,-3.35104 -8.95604,-6.81165 -14.43619,-10.51034 5.04375,3.22432 11.32129,6.97278 14.43619,10.51034 z"/><path sodipodi:nodetypes="ccc" id="path1118" class="muscle_tone" d="m 249.55985,274.96762 c 2.66686,-3.79298 3.9516,-9.15827 9.43175,-12.85696 -5.04375,3.22432 -7.24493,9.01004 -9.43175,12.85696 z"/><path sodipodi:nodetypes="ccc" id="path1120" class="muscle_tone" d="m 315.32611,381.50405 c -4.37092,10.93375 -5.99229,14.67189 -8.99626,24.269 4.27593,-11.17721 5.6182,-14.98126 8.99626,-24.269 z"/><path sodipodi:nodetypes="ccc" id="path1122" class="muscle_tone" d="m 260.92015,408.4457 c -3.30842,-11.56625 -4.55508,-15.20726 -7.9653,-24.0789 5.24468,9.91654 5.36849,14.36664 7.9653,24.0789 z"/><path sodipodi:nodetypes="ccc" id="path1124" class="muscle_tone" d="m 322.21004,418.07002 c -4.37092,10.93375 -6.6994,16.08611 -9.70337,25.68322 4.27593,-11.17721 6.32531,-16.39548 9.70337,-25.68322 z"/><path sodipodi:nodetypes="ccc" id="path1126" class="muscle_tone" d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z"/><path sodipodi:nodetypes="ccc" id="path1128" class="muscle_tone" d="m 331.83474,309.96831 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z"/><path sodipodi:nodetypes="ccc" id="path1130" class="muscle_tone" d="m 250.08235,322.46839 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z"/><path sodipodi:nodetypes="ccc" id="path1132" class="shadow" d="m 361.02638,237.18777 c -0.94326,-8.05772 -0.78056,-23.30289 -4.75812,-32.08391 2.09688,6.60791 3.01744,21.31058 4.75812,32.08391 z"/><path d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z" class="muscle_tone belly_details" id="path1440" sodipodi:nodetypes="cccccc"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="display:inline;opacity:1;fill:#ff0000" d="m 330.46094,146.33008 -33.94532,3.49609 c -0.60023,11.74644 4.71069,22.2221 4.14063,32.15625 -3.38126,2.62022 -7.80518,3.85567 -13.92187,5.23828 -2.12717,0.53863 -3.90301,1.14812 -5.31836,1.8125 -1.44243,0.67709 -2.53172,1.40659 -3.29883,2.16797 -0.76711,0.76138 -1.21275,1.5546 -1.36914,2.35352 -0.1564,0.79891 -0.0225,1.60483 0.36718,2.39453 0.38973,0.78969 1.035,1.56315 1.90625,2.29687 0.87126,0.73373 1.96768,1.42761 3.25586,2.0586 1.28819,0.63099 2.76769,1.19818 4.40821,1.67969 1.64051,0.4815 3.44284,0.87684 5.37109,1.1621 1.92825,0.28527 3.98337,0.46164 6.13477,0.50391 2.15139,0.0423 4.39904,-0.0494 6.70898,-0.29687 2.30994,-0.24748 4.68205,-0.65235 7.08594,-1.23633 2.40388,-0.58398 4.83825,-1.34721 7.27148,-2.31446 2.43324,-0.96724 4.86569,-2.13789 7.26367,-3.53515 2.39799,-1.39726 4.76241,-3.02051 7.06055,-4.89453 2.29815,-1.87403 4.53036,-3.99893 6.66406,-6.39649 2.13371,-2.39755 4.1676,-5.06732 6.07227,-8.03515 -0.0465,-0.0259 -0.0648,-0.0634 -0.10938,-0.0898 -9.4165,-1.39251 -15.92222,-5.03012 -15.74804,-30.52148 z" id="path1104"/><path d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 0.89599,1.18481 5.48384,2.32551 7.03956,-0.25046 l 1.10418,-0.062 c 0.0578,0.0417 5.51012,4.26247 11.34914,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -6.8269,-13.62863 -7.45206,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 14.92551,-15.90852 19.20209,-32.18261 21.62975,-41.33057 -1.58625,-1.51901 -2.19808,-10.70751 -2.32875,-13.44272 -4.53544,-10.77188 -1.4693,-15.76194 -3.7691,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.20009,-4.26672 -28.06149,3.10873 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.01907,3.61343 -17.66525,5.91567 -29.51965,8.86728 -8.36905,13.10912 -16.38873,17.64107 -24.82836,40.21314 z" class="shadow torso" id="path1102" sodipodi:nodetypes="ccccccccccscccccccsccccccc"/><path class="skin neck" sodipodi:nodetypes="cccccc" id="path1541" d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z"/><path d="m 346.20898,176.85156 c 0.0446,0.0265 0.0629,0.064 0.10938,0.0898 -29.49173,35.69478 -78.90476,13.79456 -59.58398,10.27929 -4.05962,0.91764 -8.25647,1.76506 -15.5879,3.61328 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 1.37693,0.26708 4.09368,1.61095 7.06445,-0.26758 l 1.11133,-0.0781 c 1.17404,1.57274 8.90177,1.53055 11.31445,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -3.8841,-8.49646 -20.35167,-24.94928 -20.57812,-24.78321 0.17394,-0.53763 -7.38366,-13.70783 -7.45118,-15.85937 2.56898,-6.32141 6.52259,-31.00027 8.07422,-32.87695 3.11188,-3.76379 5.6941,-7.22684 7.88691,-10.51955 7.0161,-10.53536 10.04573,-19.32697 13.6834,-30.64647 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.53269,-1.09789 -8.76087,-1.33791 -12.56446,-1.90039 z" id="path1557" sodipodi:nodetypes="cccccccccccccccccccsscccccc" class="skin torso"/><path sodipodi:nodetypes="ccccc" id="path1106" class="shadow belly_details" d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z"/><path sodipodi:nodetypes="ccc" id="path1108" class="muscle_tone" d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z"/><path sodipodi:nodetypes="ccc" id="path1110" class="muscle_tone" d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z"/><path sodipodi:nodetypes="ccc" id="path1112" class="muscle_tone" d="m 261.07288,408.74028 c -7.12092,-11.56625 -12.80508,-15.26976 -19.3403,-19.6414 12.24468,7.16654 14.68099,9.92914 19.3403,19.6414 z"/><path sodipodi:nodetypes="ccc" id="path1114" class="muscle_tone" d="m 333.87477,277.49678 c -0.45714,-1.47279 -0.073,-7.87231 -6.56962,-12.18972 4.93326,3.3569 6.04008,6.0889 6.56962,12.18972 z"/><path sodipodi:nodetypes="ccc" id="path1116" class="muscle_tone" d="m 303.24363,269.89121 c -3.70542,-3.35104 -8.95604,-6.81165 -14.43619,-10.51034 5.04375,3.22432 11.32129,6.97278 14.43619,10.51034 z"/><path sodipodi:nodetypes="ccc" id="path1118" class="muscle_tone" d="m 249.55985,274.96762 c 2.66686,-3.79298 3.9516,-9.15827 9.43175,-12.85696 -5.04375,3.22432 -7.24493,9.01004 -9.43175,12.85696 z"/><path sodipodi:nodetypes="ccc" id="path1120" class="muscle_tone" d="m 315.32611,381.50405 c -4.37092,10.93375 -5.99229,14.67189 -8.99626,24.269 4.27593,-11.17721 5.6182,-14.98126 8.99626,-24.269 z"/><path sodipodi:nodetypes="ccc" id="path1122" class="muscle_tone" d="m 260.92015,408.4457 c -3.30842,-11.56625 -4.55508,-15.20726 -7.9653,-24.0789 5.24468,9.91654 5.36849,14.36664 7.9653,24.0789 z"/><path sodipodi:nodetypes="ccc" id="path1124" class="muscle_tone" d="m 322.21004,418.07002 c -4.37092,10.93375 -6.6994,16.08611 -9.70337,25.68322 4.27593,-11.17721 6.32531,-16.39548 9.70337,-25.68322 z"/><path sodipodi:nodetypes="ccc" id="path1126" class="muscle_tone" d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z"/><path sodipodi:nodetypes="ccc" id="path1128" class="muscle_tone" d="m 331.83474,309.96831 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z"/><path sodipodi:nodetypes="ccc" id="path1130" class="muscle_tone" d="m 250.08235,322.46839 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z"/><path d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z" class="muscle_tone belly_details" id="path1440" sodipodi:nodetypes="cccccc"/><path d="m 334.35262,257.79054 c 18.3821,-10.6129 18.87632,-45.89411 23.20514,-48.39336 -5.22768,3.0182 -6.34343,38.65826 -23.20514,48.39336 z" class="shadow" id="path3232-0" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Torso_Normal.tw b/src/art/vector_revamp/layers/Torso_Normal.tw index c272251a56cad88e212192dd2d72980f60a78176..2bc8a53b3a7d184fc853269c9fdb994f5f7a5962 100644 --- a/src/art/vector_revamp/layers/Torso_Normal.tw +++ b/src/art/vector_revamp/layers/Torso_Normal.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Torso_Normal [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccccccccsccccsccccccc" id="path4124" class="shadow torso" d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 1.09074,1.42828 6.14846,2.05805 7.03175,-0.25046 l 1.13543,-0.062 c 0.0539,0.0333 5.91812,4.25115 11.3257,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -21.65173,-54.37031 -7.45593,-62.61558 1.67566,-114.84838 -0.50349,-3.50775 -1.32308,-10.70751 -1.45375,-13.44272 -4.53544,-10.77188 -2.3443,-15.76194 -4.6441,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z"/><path d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z" id="path1544" sodipodi:nodetypes="cccccc" class="skin neck"/><path d="m 286.20117,187.34375 c -4.00254,0.89821 -7.97398,1.70521 -15.05469,3.49023 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 0.78119,0.55861 4.78693,1.49428 7.05664,-0.26758 l 1.14258,-0.0781 c 1.51181,1.59807 9.57688,1.45961 11.29101,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -23.58113,-57.47054 -9.98057,-57.2743 1.61523,-114.68555 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.46119,-1.08058 -8.63009,-1.32686 -12.38867,-1.86914 -20.45084,30.32024 -80.12449,19.33623 -60.1836,10.46094 z" id="path1566" sodipodi:nodetypes="cccccccccccccccccccccc" class="skin torso"/><path style="fill:#ff0000" d="m 296.58398,149.81836 -0.0684,0.008 c -0.004,0.0796 0.0172,0.15299 0.0137,0.23242 0.007,-0.0902 0.0493,-0.14839 0.0547,-0.24023 z" id="path1564"/><path style="fill:#ff0000" d="m 330.46484,146.40625 c 1.9e-4,-0.0296 -0.004,-0.0466 -0.004,-0.0762 l -16.56055,1.70508 z" id="path1562"/><path d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z" class="muscle_tone" id="XMLID_590_-04-8" sodipodi:nodetypes="ccc"/><path d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z" class="muscle_tone" id="XMLID_590_-04-8-5" sodipodi:nodetypes="ccc"/><path d="m 261.07288,408.74028 c -7.12092,-11.56625 -12.80508,-15.26976 -19.3403,-19.6414 12.24468,7.16654 14.68099,9.92914 19.3403,19.6414 z" class="muscle_tone" id="XMLID_590_-04-8-5-8" sodipodi:nodetypes="ccc"/><path d="m 333.87477,277.49678 c -0.45714,-1.47279 -0.073,-7.87231 -6.56962,-12.18972 4.93326,3.3569 6.04008,6.0889 6.56962,12.18972 z" class="muscle_tone" id="XMLID_590_-04-8-9" sodipodi:nodetypes="ccc"/><path d="m 303.24363,269.89121 c -3.70542,-3.35104 -8.95604,-6.81165 -14.43619,-10.51034 5.04375,3.22432 11.32129,6.97278 14.43619,10.51034 z" class="muscle_tone" id="XMLID_590_-04-8-9-1" sodipodi:nodetypes="ccc"/><path d="m 249.55985,274.96762 c 2.66686,-3.79298 3.9516,-9.15827 9.43175,-12.85696 -5.04375,3.22432 -7.24493,9.01004 -9.43175,12.85696 z" class="muscle_tone" id="XMLID_590_-04-8-9-1-2" sodipodi:nodetypes="ccc"/><path d="m 315.32611,381.50405 c -4.37092,10.93375 -5.99229,14.67189 -8.99626,24.269 4.27593,-11.17721 5.6182,-14.98126 8.99626,-24.269 z" class="muscle_tone" id="XMLID_590_-04-8-5-87" sodipodi:nodetypes="ccc"/><path d="m 260.92015,408.4457 c -3.30842,-11.56625 -4.55508,-15.20726 -7.9653,-24.0789 5.24468,9.91654 5.36849,14.36664 7.9653,24.0789 z" class="muscle_tone" id="XMLID_590_-04-8-5-8-4" sodipodi:nodetypes="ccc"/><path d="m 322.21004,418.07002 c -4.37092,10.93375 -6.6994,16.08611 -9.70337,25.68322 4.27593,-11.17721 6.32531,-16.39548 9.70337,-25.68322 z" class="muscle_tone" id="XMLID_590_-04-8-5-87-5" sodipodi:nodetypes="ccc"/><path d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" class="muscle_tone" id="XMLID_590_-04-8-5-87-5-2" sodipodi:nodetypes="ccc"/><path d="m 331.83474,309.96831 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" class="muscle_tone" id="XMLID_590_-04-8-5-2" sodipodi:nodetypes="ccc"/><path d="m 250.08235,322.46839 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" class="muscle_tone" id="XMLID_590_-04-8-5-2-4" sodipodi:nodetypes="ccc"/><path d="m 361.02638,237.18777 c -0.94326,-8.05772 -0.78056,-23.30289 -4.75812,-32.08391 2.09688,6.60791 3.01744,21.31058 4.75812,32.08391 z" class="shadow" id="XMLID_590_-04-8-9-4" sodipodi:nodetypes="ccc"/><path d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" class="shadow belly_details" id="path1444" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="cccccc" id="path1446" class="muscle_tone belly_details" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccccccccsccccsccccccc" id="path4124" class="shadow torso" d="m 246.30911,231.06259 c -6.69233,19.28587 -3.26169,38.80526 2.84033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -12.22966,23.47896 -14.09706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 1.09074,1.42828 6.14846,2.05805 7.03175,-0.25046 l 1.13543,-0.062 c 0.0539,0.0333 5.91812,4.25115 11.3257,0.16388 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -21.65173,-54.37031 -7.45593,-62.61558 1.67566,-114.84838 -1.67464,-1.5853 -2.26058,-10.45751 -2.39125,-13.19272 -4.53544,-10.77188 -1.4068,-16.01194 -3.7066,-26.54186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z"/><path d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z" id="path1544" sodipodi:nodetypes="cccccc" class="skin neck"/><path d="m 286.20117,187.34375 c -4.00254,0.89821 -7.97398,1.70521 -15.05469,3.49023 -8.65971,10.94361 -15.77788,17.65645 -24.83789,40.22852 -5.87551,18.9358 -2.9645,38.67948 2.8418,56.00977 -1.06764,11.32585 -1.52592,26.55771 1,35.50195 -11.37059,21.52353 -11.89766,23.525 -14.09766,43.625 -1.1,10.1 -2.23134,20.37109 -6.00781,40.87109 1.79918,21.68192 24.06434,28.08621 33.55274,33.19727 14.43169,10.04215 15.75568,13.80686 22.99414,21.73047 0.78119,0.55861 4.78693,1.49428 7.05664,-0.26758 l 1.14258,-0.0781 c 1.51181,1.59807 9.57688,1.45961 11.29101,0.17774 1.25908,-5.51105 3.06526,-22.40357 25.5332,-37.0293 9.99479,-6.9207 28.66489,-25.38486 47.28125,-34.05664 -9.1,-20.7 -12.62221,-28.06668 -19.58398,-39.49609 -23.58113,-57.47054 -9.98057,-57.2743 1.61523,-114.68555 -0.3269,-2.17434 -0.47181,-3.26841 -0.6582,-5.75 -1.66961,-10.3676 -2.48045,-23.52968 -5.33008,-34.10742 0.025,-10.96207 3.83399,-17.95313 3.83399,-17.95313 -4.46119,-1.08058 -8.63009,-1.32686 -12.38867,-1.86914 -20.45084,30.32024 -80.12449,19.33623 -60.1836,10.46094 z" id="path1566" sodipodi:nodetypes="cccccccccccccccccccccc" class="skin torso"/><path style="fill:#ff0000" d="m 296.58398,149.81836 -0.0684,0.008 c -0.004,0.0796 0.0172,0.15299 0.0137,0.23242 0.007,-0.0902 0.0493,-0.14839 0.0547,-0.24023 z" id="path1564"/><path style="fill:#ff0000" d="m 330.46484,146.40625 c 1.9e-4,-0.0296 -0.004,-0.0466 -0.004,-0.0762 l -16.56055,1.70508 z" id="path1562"/><path d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z" class="muscle_tone" id="XMLID_590_-04-8" sodipodi:nodetypes="ccc"/><path d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z" class="muscle_tone" id="XMLID_590_-04-8-5" sodipodi:nodetypes="ccc"/><path d="m 261.07288,408.74028 c -7.12092,-11.56625 -12.80508,-15.26976 -19.3403,-19.6414 12.24468,7.16654 14.68099,9.92914 19.3403,19.6414 z" class="muscle_tone" id="XMLID_590_-04-8-5-8" sodipodi:nodetypes="ccc"/><path d="m 333.87477,277.49678 c -0.45714,-1.47279 -0.073,-7.87231 -6.56962,-12.18972 4.93326,3.3569 6.04008,6.0889 6.56962,12.18972 z" class="muscle_tone" id="XMLID_590_-04-8-9" sodipodi:nodetypes="ccc"/><path d="m 303.24363,269.89121 c -3.70542,-3.35104 -8.95604,-6.81165 -14.43619,-10.51034 5.04375,3.22432 11.32129,6.97278 14.43619,10.51034 z" class="muscle_tone" id="XMLID_590_-04-8-9-1" sodipodi:nodetypes="ccc"/><path d="m 249.55985,274.96762 c 2.66686,-3.79298 3.9516,-9.15827 9.43175,-12.85696 -5.04375,3.22432 -7.24493,9.01004 -9.43175,12.85696 z" class="muscle_tone" id="XMLID_590_-04-8-9-1-2" sodipodi:nodetypes="ccc"/><path d="m 315.32611,381.50405 c -4.37092,10.93375 -5.99229,14.67189 -8.99626,24.269 4.27593,-11.17721 5.6182,-14.98126 8.99626,-24.269 z" class="muscle_tone" id="XMLID_590_-04-8-5-87" sodipodi:nodetypes="ccc"/><path d="m 260.92015,408.4457 c -3.30842,-11.56625 -4.55508,-15.20726 -7.9653,-24.0789 5.24468,9.91654 5.36849,14.36664 7.9653,24.0789 z" class="muscle_tone" id="XMLID_590_-04-8-5-8-4" sodipodi:nodetypes="ccc"/><path d="m 322.21004,418.07002 c -4.37092,10.93375 -6.6994,16.08611 -9.70337,25.68322 4.27593,-11.17721 6.32531,-16.39548 9.70337,-25.68322 z" class="muscle_tone" id="XMLID_590_-04-8-5-87-5" sodipodi:nodetypes="ccc"/><path d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" class="muscle_tone" id="XMLID_590_-04-8-5-87-5-2" sodipodi:nodetypes="ccc"/><path d="m 331.83474,309.96831 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" class="muscle_tone" id="XMLID_590_-04-8-5-2" sodipodi:nodetypes="ccc"/><path d="m 250.08235,322.46839 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" class="muscle_tone" id="XMLID_590_-04-8-5-2-4" sodipodi:nodetypes="ccc"/><path d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" class="shadow belly_details" id="path1444" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="cccccc" id="path1446" class="muscle_tone belly_details" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z"/><path d="m 334.35262,257.79054 c 18.3821,-10.6129 18.87632,-45.89411 23.20514,-48.39336 -5.22768,3.0182 -6.34343,38.65826 -23.20514,48.39336 z" class="shadow" id="path2549" sodipodi:nodetypes="ccc"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Torso_Outfit_Maid_Hourglass.tw b/src/art/vector_revamp/layers/Torso_Outfit_Maid_Hourglass.tw index 5624e263e321221c8ee6bd80d779fb74d7e16ed4..ca7d0e2259f4c4408f66178ffbf0619ea2686dbc 100644 --- a/src/art/vector_revamp/layers/Torso_Outfit_Maid_Hourglass.tw +++ b/src/art/vector_revamp/layers/Torso_Outfit_Maid_Hourglass.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Torso_Outfit_Maid_Hourglass [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 359.85539,224.47865 c 0,0 0.28252,2.9195 1.13622,14.01358 0.60333,0.24133 -4.66387,31.43722 -21.44276,39.64844 -2.60991,13.16972 -4.10758,40.46738 -4.54391,40.39466 0,0 2.60164,5.12801 3.8029,7.55426 25.41094,14.16919 46.24345,42.44329 56.43292,71.31194 19.15995,38.96952 18.59152,124.9406 17.21147,125.13775 -69.91487,-25.57972 -163.41142,29.15618 -232.75934,-4.27387 -0.6629,0 4.43678,-75.76419 20.06445,-110.96586 8.85721,-31.27651 35.22168,-60.19855 50.2411,-84.26 -5.31056,-13.48953 -3.00269,-25.08718 -1.37108,-35.87779 -10.20434,-15.27731 -9.37658,-29.5504 -6.26329,-44.46892 1.91023,-12.81128 7.57872,-19.40372 7.03791,-19.59657 44.12648,12.49268 110.45341,1.38238 110.45341,1.38238 z" id="path1322" sodipodi:nodetypes="cccccccccccccc" class="shadow"/><path style="display:inline;opacity:1;fill:#333333" sodipodi:nodetypes="cccccaccaccacc" id="path1108-7" d="m 359.85539,224.47865 c 0,0 0.28252,2.9195 1.13622,14.01358 0,0 -5.70201,31.02196 -21.44276,39.64844 -4.05461,12.92894 -4.54391,40.39466 -4.54391,40.39466 0,0 2.60164,5.12801 3.8029,7.55426 23.94861,15.0158 44.54286,43.42784 56.43292,71.31194 16.51533,38.7311 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -9.41353,-15.3492 -7.79397,-29.57811 -6.26329,-44.46892 0.70972,-6.9043 7.03791,-19.59657 7.03791,-19.59657 44.12648,12.49268 110.45341,1.38238 110.45341,1.38238 z"/><path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" id="path1251" class="shadow" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z"/><path d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" id="path1249" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" class="shadow" id="path1244" sodipodi:nodetypes="ccssccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="caaaacc" id="path1108-7-2" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z"/><path sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1282" class="shadow" d="m 318.00391,325.73755 c 0.1662,-0.0684 8.0406,-11.7618 5.42961,-17.15483 -0.9984,-4.15898 -9.59497,-7.10148 -9.61975,-7.06183 0.0569,0.0797 10.47717,-4.52675 10.06153,-9.41841 -0.0685,-4.77393 -10.54117,-8.39289 -10.58006,-8.30214 -0.0526,0.16819 10.25564,-4.52608 11.12513,-10.21762 1.02638,-5.3714 -8.5072,-13.50589 -8.61202,-13.47969 -0.0119,0.17826 11.09595,-3.22828 11.88153,-8.72903 1.155,-4.5223 -7.71736,-10.81305 -7.91075,-10.7647 -0.18835,0.18835 9.25517,-0.42186 11.47755,-4.98693 1.84787,-4.00611 -4.81901,-11.58557 -4.96824,-11.52961 -0.01,0.12732 7.55069,-1.24244 9.10324,-4.91711 1.82315,-3.08035 -1.62605,-9.99671 -1.71582,-9.98549 0.0825,0.0367 5.16407,-1.94852 5.15369,-4.3377 0.60501,-1.54914 -2.18836,-3.99091 -2.28908,-3.97832 0.0908,0.10897 4.0678,-0.15226 4.79507,-1.82593 1.06341,-1.36941 -0.21991,-4.6138 -0.31935,-4.58065 0,0.11423 4.17524,-0.0769 5.19792,-1.9502 0.99558,-1.00322 -0.0412,-3.85994 -0.15909,-3.89362 0.0263,0.10519 4.18456,0.34981 5.20584,-1.40388 1.11122,-1.15275 0.14014,-4.38532 0.077,-4.38532 0.0633,0.0633 4.12591,-0.0432 4.83864,-1.69189 0.81726,-0.94694 -0.16572,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c -0.0716,-0.0398 -3.52027,0.54293 -4.22866,1.88506 -0.85877,0.77377 -0.79145,2.93259 -0.6882,2.93259 0.0551,-0.16527 -3.13346,0.0301 -4.19674,1.3135 -0.99275,0.92921 -0.83191,3.5722 -0.81211,3.56824 -0.2917,-0.11219 -3.72836,0.0448 -4.59896,1.27221 -1.38692,1.22213 -1.40211,4.98076 -1.29971,4.98076 0,-0.0543 -3.63043,0.28826 -4.68112,1.63345 -1.39037,1.63663 -0.95682,5.95733 -0.84379,5.86314 -0.0714,-0.0572 -3.50997,1.34812 -4.13281,2.97367 -0.99363,1.8097 0.0827,5.8256 0.1485,5.78611 0.0286,-0.0107 -3.47409,-2.58144 -5.81788,-2.29945 -2.03561,0.078 -5.00819,3.04217 -4.98536,3.065 0.0894,-0.0383 -3.77398,-2.28548 -6.07463,-1.93646 -2.19936,0.16817 -5.28843,3.26531 -5.24625,3.29062 0.0577,-0.0247 -3.6596,-2.98608 -6.11743,-2.8254 -2.62706,-0.17114 -6.42609,3.37458 -6.37214,3.43623 0.0764,-0.0305 -2.5983,-3.62398 -4.74516,-3.86523 -2.3968,-0.5135 -6.56096,2.67213 -6.54041,2.73377 0.0278,0 -1.86631,-3.79743 -3.84319,-4.39294 -2.1406,-0.8914 -7.08051,1.65543 -7.08312,1.65775 0,0 4.17132,-0.88265 4.32598,-2.62631 0.28337,-1.00061 -1.78574,-2.2873 -1.82858,-2.27124 0.021,0.0349 5.21539,-1.03939 5.23366,-3.24468 0.28059,-1.11065 -2.28712,-1.83524 -2.3211,-1.81583 0.0194,0.0427 4.09634,-0.0764 4.41853,-1.78242 0.37085,-0.98469 -1.73184,-2.21574 -1.77223,-2.1933 0.008,0.0219 2.8764,-0.90334 3.31722,-2.28129 0.32598,-0.62431 -0.37809,-1.9308 -0.43513,-1.92265 l -4.69222,0.72413 c 0.0237,-0.0426 -1.79765,0.46492 -2.63183,1.51492 -0.69936,0.46779 -0.96174,2.2027 -0.94371,2.21712 0.007,-0.0358 -1.88989,0.10067 -2.44519,0.95669 -0.61207,0.66093 -0.26769,2.37608 -0.20536,2.36361 0.012,-0.0419 -2.55183,0.42329 -3.2251,1.69596 -0.77861,1.04606 0.0592,3.62639 0.12616,3.62639 0.0513,-0.094 -2.12186,0.38382 -2.86561,1.6675 -0.82026,1.16209 -0.31411,3.83168 -0.0897,3.71947 -0.2087,-0.14907 -4.50311,2.782 -5.0707,5.30267 -1.45304,2.7823 -0.4393,8.68853 -0.14431,8.57791 -0.11184,-0.19573 -5.61323,4.13251 -6.54891,7.662 -2.01339,4.22462 -0.20242,12.80349 0.12218,12.65594 -0.27988,-0.19992 -6.69779,4.93798 -6.78396,8.84863 -0.72683,3.97856 4.74341,10.55407 4.9951,10.4462 -0.19084,-0.12723 -4.51715,7.94817 -3.68091,12.43969 0.0674,4.53539 6.50495,11.45785 6.7561,11.37413 -0.19797,0.054 -3.09154,6.28983 -2.56163,9.33402 -0.61864,3.0265 1.44599,8.78728 1.66753,8.76266 -0.22155,-0.0738 -2.26451,6.97373 -1.5863,10.76219 -0.2869,2.90595 3.05181,8.88695 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z"/><path d="m 318.00391,325.73755 c 0,0 7.29076,-11.45304 5.42961,-17.15483 -1.23433,-3.78149 -9.61975,-7.06183 -9.61975,-7.06183 0,0 10.26143,-4.82879 10.06153,-9.41841 -0.19507,-4.4786 -10.58006,-8.30214 -10.58006,-8.30214 0,0 10.47399,-5.22482 11.12513,-10.21762 0.68954,-5.28719 -8.61202,-13.47969 -8.61202,-13.47969 0,0 11.1388,-3.87102 11.88153,-8.72903 0.67298,-4.4018 -7.91075,-10.7647 -7.91075,-10.7647 0,0 9.94184,-1.10853 11.47755,-4.98693 1.54066,-3.89091 -4.96824,-11.52961 -4.96824,-11.52961 0,0 7.59479,-1.81571 9.10324,-4.91711 1.47717,-3.0371 -1.71582,-9.98549 -1.71582,-9.98549 0,0 4.76382,-2.12641 5.15369,-4.3377 0.26565,-1.50672 -2.28908,-3.97832 -2.28908,-3.97832 0,0 3.87403,-0.38479 4.79507,-1.82593 0.82425,-1.28969 -0.31935,-4.58065 -0.31935,-4.58065 0,0 4.17524,-0.40787 5.19792,-1.9502 0.71783,-1.08258 -0.15909,-3.89362 -0.15909,-3.89362 0,0 4.10041,0.0132 5.20584,-1.40388 0.89923,-1.15275 0.077,-4.38532 0.077,-4.38532 0,0 3.91403,-0.25505 4.83864,-1.69189 0.60936,-0.94694 -0.30643,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c 0,0 -3.24515,0.69578 -4.22866,1.88506 -0.6399,0.77377 -0.6882,2.93259 -0.6882,2.93259 0,0 -3.20228,0.23661 -4.19674,1.3135 -0.82757,0.89617 -0.81211,3.56824 -0.81211,3.56824 0,0 -3.48252,0.13932 -4.59896,1.27221 -1.20438,1.22213 -1.29971,4.98076 -1.29971,4.98076 0,0 -3.63043,0.3578 -4.68112,1.63345 -1.25533,1.5241 -0.84379,5.86314 -0.84379,5.86314 0,0 -3.37828,1.45347 -4.13281,2.97367 -0.85776,1.72818 0.1485,5.78611 0.1485,5.78611 0,0 -3.74057,-2.48151 -5.81788,-2.29945 -1.94328,0.17031 -4.98536,3.065 -4.98536,3.065 0,0 -3.96616,-2.20312 -6.07463,-1.93646 -2.04797,0.25901 -5.24625,3.29062 -5.24625,3.29062 0,0 -3.87237,-2.89489 -6.11743,-2.8254 -2.41204,0.0746 -6.37214,3.43623 -6.37214,3.43623 0,0 -2.72617,-3.57283 -4.74516,-3.86523 -2.33852,-0.33867 -6.54041,2.73377 -6.54041,2.73377 0,0 -1.99097,-3.79743 -3.84319,-4.39294 -2.30846,-0.74219 -7.08312,1.65775 -7.08312,1.65775 0,0 4.03449,-0.96475 4.32598,-2.62631 0.16794,-0.95733 -1.82858,-2.27124 -1.82858,-2.27124 0,0 5.12196,-1.19511 5.23366,-3.24468 0.0535,-0.98088 -2.3211,-1.81583 -2.3211,-1.81583 0,0 4.01965,-0.24516 4.41853,-1.78242 0.23607,-0.90981 -1.77223,-2.1933 -1.77223,-2.1933 0,0 2.82832,-1.03154 3.31722,-2.28129 0.23939,-0.61194 -0.43513,-1.92265 -0.43513,-1.92265 l -4.69222,0.72413 c 0,0 -1.96023,0.75757 -2.63183,1.51492 -0.53291,0.60095 -0.94371,2.21712 -0.94371,2.21712 0,0 -1.92093,0.25586 -2.44519,0.95669 -0.47372,0.63326 -0.20536,2.36361 -0.20536,2.36361 0,0 -2.61532,0.6455 -3.2251,1.69596 -0.60723,1.04606 0.12616,3.62639 0.12616,3.62639 0,0 -2.30315,0.71618 -2.86561,1.6675 -0.63118,1.06755 -0.0897,3.71947 -0.0897,3.71947 0,0 -4.14105,3.04061 -5.0707,5.30267 -1.08704,2.64505 -0.14431,8.57791 -0.14431,8.57791 0,0 -5.40066,4.5045 -6.54891,7.662 -1.44183,3.96482 0.12218,12.65594 0.12218,12.65594 0,0 -6.39804,5.15209 -6.78396,8.84863 -0.40078,3.83882 4.9951,10.4462 4.9951,10.4462 0,0 -4.21638,8.14869 -3.68091,12.43969 0.54606,4.37584 6.7561,11.37413 6.7561,11.37413 0,0 -2.43294,6.11021 -2.56163,9.33402 -0.1186,2.97094 1.66753,8.76266 1.66753,8.76266 0,0 -1.76447,7.14041 -1.5863,10.76219 0.13408,2.72553 3.17474,8.83426 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z" id="path1280" sodipodi:nodetypes="cacacacacacacacacacacaccacacacacacacacacacacacacacaccacacacacacacacacacscccc" style="display:inline;opacity:1;fill:#ffffff;stroke-width:1.05999994"/><path d="m 315.90803,320.84344 c -2.49311,-12.85797 -3.70847,-24.16935 -4.44214,-39.5634 4.29028,-30.83464 3.35841,-41.06705 21.27809,-72.37945 1.06744,-9.14922 11.65832,-19.70221 22.34434,-31.15738 -2.13976,-0.51067 -4.28423,-0.96012 -6.46482,-0.94005 -11.40402,9.3964 -21.91679,21.41172 -24.91403,32.79713 -21.89276,0.52722 -32.81714,6.37507 -58.48416,-1.54946 3.84727,-8.39874 5.10763,-9.47909 10.78801,-18.40031 -1.05734,0.0265 -2.02266,-0.0784 -3.63549,0.74174 -6.9411,6.67026 -8.04042,9.50969 -12.35955,17.95063 -2.80066,6.10293 -4.61886,11.91112 -5.76436,17.5175 -10.39962,25.33864 -5.9915,43.15772 -3.53361,61.61413 -1.4792,13.13023 -0.30041,25.062 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z" class="shadow" id="path1268" sodipodi:nodetypes="ccccccccccccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccccccccccccc" id="path1108-7-2-2" d="m 315.90803,320.84344 c -2.81213,-13.35423 -5.31598,-26.66992 -4.44214,-39.5634 3.50974,-30.99075 1.84762,-41.36921 21.27809,-72.37945 0.93083,-9.35414 10.94077,-20.77854 22.34434,-31.15738 l -6.46482,-0.94005 c -9.53791,9.58301 -21.68892,21.43451 -24.91403,32.79713 -21.76753,0.94464 -32.29254,8.12373 -58.48416,-1.54946 3.69598,-8.48126 4.421,-9.85362 10.78801,-18.40031 l -3.63549,0.74174 c -6.53986,6.87088 -7.78622,9.63679 -12.35955,17.95063 l -5.76436,17.5175 c -8.96086,25.20784 -5.79542,43.13989 -3.53361,61.61413 -0.5132,12.61008 0.22818,24.77737 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z"/><path d="m 335.13308,318.51346 3.76755,7.52419 c -34.68921,1.29057 -70.68419,18.30652 -92.67015,3.82289 l 3.86668,-6.97285 c 33.13895,8.49273 52.33122,-5.8368 85.03592,-4.37423 z" class="shadow" id="path1246" sodipodi:nodetypes="ccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1108-7-2-7" d="m 335.13308,318.51346 3.76755,7.52419 c -35.36449,0.47083 -72.09797,17.70061 -92.67015,3.82289 l 3.86668,-6.97285 c 30.76253,9.95515 51.75714,-4.70842 85.03592,-4.37423 z"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="cccccccccccccccccccc" id="path2834" d="m 360.49161,241.99223 c 0.15713,0.0673 -4.72159,19.01292 -21.51477,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.42564,15.0158 49.36375,45.91894 56.68292,72.68694 18.09394,39.28852 18.07129,125.05958 17.21147,125.13775 -70.8552,-22.32954 -164.13155,30.03525 -232.75934,-4.27387 -0.19735,-0.0197 4.1265,-76.03991 20.06445,-110.96586 9.2798,-30.93655 35.4953,-60.02101 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -5.47524,-7.9954 -6.36742,-21.28882 -5.88641,-30.59601 -4.05722,-36.73329 30.65665,-66.66209 31.00076,-66.66209 -0.008,-0.0706 2.55382,-1.8267 8.72305,-2.20036 -36.01659,24.46625 -42.13809,58.83696 -39.24643,69.07094 12.14629,3.82492 34.25776,3.67112 87.23879,-1.85132 1.92836,0 6.15865,-6.88279 6.15865,-10.00465 2.71491,-24.25648 8.03999,-35.96111 9.4316,-68.9692 4.553,0.39299 4.95014,-0.2397 9.68823,1.7253 -1.04791,6.23371 0.31824,53.97628 4.75601,64.31785 z"/><path d="m 348.47508,176.56688 c 6.23488,24.59751 4.25162,51.07322 4.99933,76.19448 -42.11798,9.03479 -85.37513,19.71113 -110.63496,3.91432 -1.95782,-18.39591 8.20167,-47.39868 32.21961,-67.27394 42.97585,-9.32822 52.0825,-17.54406 73.41602,-12.83486 z" id="path2836" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 360.49161,241.99223 c 0,0 -6.37282,19.56418 -21.51477,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 44.73213,44.38116 56.68292,72.68694 16.37715,38.78974 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -4.94422,-8.06178 -5.57616,-21.38773 -5.88641,-30.59601 -3.92817,-36.49728 30.67927,-66.58172 31.00076,-66.66209 0,0 2.59939,-1.41654 8.72305,-2.20036 -36.76659,20.96625 -42.13809,58.83696 -39.24643,69.07094 24.85388,-0.61208 66.61629,9.56619 108.02244,-11.10597 1.4423,-26.38913 0.15792,-38.14578 -5.1934,-69.7192 4.57973,0.53998 5.03464,0.22507 9.68823,1.7253 -1.36935,6.31407 -0.62585,54.2123 4.75601,64.31785 z" id="path2838" sodipodi:nodetypes="ccccaccaccccccccccc" style="display:inline;opacity:1;fill:#333333"/><path d="m 306.1115,174.72723 3.10935,13.7728 c -3.58883,0.28907 -4.19632,0.25785 -6.36265,-0.32791 1.00219,-12.04918 3.2533,-13.44489 3.2533,-13.44489 z" id="path2840" sodipodi:nodetypes="cccc" style="display:inline;opacity:1;fill:#ffffff"/><path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2842" d="m 300.08667,172.57237 c -2.03237,3.63344 -2.40946,7.63281 -3.39194,11.16176 -0.11097,2.48059 4.02564,5.20338 6.30994,6.62117 -0.11352,-4.35414 2.20104,-11.31333 2.96606,-15.5101 -2.0837,-0.64114 -4.38743,-1.29276 -5.88406,-2.27283 z"/><path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2844" d="m 333.1721,164.81697 c 3.12234,3.33135 7.8525,6.78145 9.92028,10.58149 -7.93754,9.36149 -23.35479,13.30607 -33.9727,15.90151 -0.57861,-4.86704 -2.13199,-11.9051 -3.13395,-16.71185 8.60186,-2.43964 22.03678,-4.58024 27.18637,-9.77115 z"/><path d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" class="shadow" id="path2846" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" id="path2848" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z"/><path sodipodi:nodetypes="ccssccc" id="path2850" class="shadow" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z"/><path d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" id="path2852" sodipodi:nodetypes="caaaacc" style="display:inline;opacity:1;fill:#ffffff"/><path sodipodi:nodetypes="ccccc" id="path2854" class="shadow" d="m 339.32058,281.76346 c -2.00111,14.61346 -1.45571,28.77753 -0.66995,42.89919 -34.68921,1.29057 -70.43419,19.68152 -92.42015,5.19789 0.75356,-14.0727 1.75763,-29.9734 1.30418,-44.34785 33.13895,8.49273 59.08122,-5.2118 91.78592,-3.74923 z"/><path d="m 339.32058,281.76346 c -2.7968,14.29973 -1.98265,28.59946 -0.66995,42.89919 -35.36449,0.47083 -71.84797,19.07561 -92.42015,5.19789 1.05318,-14.11595 2.82363,-30.2319 1.30418,-44.34785 30.76253,9.95515 58.50714,-4.08342 91.78592,-3.74923 z" id="path2856" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 333.1721,164.81697 9.92028,10.58149 c -8.50147,8.95868 -23.58459,13.14193 -33.9727,15.90151 -0.35332,-4.82062 -1.60248,-11.89123 -3.13395,-16.71185 8.60186,-1.844 22.03678,-4.11883 27.18637,-9.77115 z" id="path2858" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 300.08667,172.57237 -3.39194,11.16176 c 0.27347,2.33273 4.1548,5.1537 6.30994,6.62117 -0.5339,-4.37642 1.60936,-11.42013 2.96606,-15.5101 -2.28233,-0.52764 -4.46978,-1.2457 -5.88406,-2.27283 z" id="path2860" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Torso_Outfit_Maid_Normal.tw b/src/art/vector_revamp/layers/Torso_Outfit_Maid_Normal.tw index 21a9d63d2c2b84bf3190df624a661456c16cf9b4..e7a9c108accadb24f3f95bbcef526f3f539c309a 100644 --- a/src/art/vector_revamp/layers/Torso_Outfit_Maid_Normal.tw +++ b/src/art/vector_revamp/layers/Torso_Outfit_Maid_Normal.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Torso_Outfit_Maid_Normal [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 359.59022,223.85993 c 0,0 0.54769,3.53822 1.40139,14.6323 0.60333,0.24133 1.08137,17.47186 -9.95227,42.07912 -2.60991,13.16972 -1.59807,36.6617 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.41094,14.16919 34.43095,43.81829 44.62042,72.68694 19.15995,38.96952 18.59152,124.9406 17.21147,125.13775 -69.91487,-25.57972 -163.41142,29.15618 -232.75934,-4.27387 -0.6629,0 4.43678,-75.76419 20.06445,-110.96586 8.85721,-31.27651 35.22168,-60.19855 50.2411,-84.26 -5.31056,-13.48953 -3.00269,-25.08718 -1.37108,-35.87779 -10.20434,-15.27731 -9.37658,-29.5504 -6.26329,-44.46892 2.33144,-13.21932 7.5209,-19.83366 7.32405,-19.71802 44.12648,12.49268 109.9021,0.88511 109.9021,0.88511 z" id="path1435" sodipodi:nodetypes="cccccccccccccc" class="shadow"/><path style="display:inline;opacity:1;fill:#333333" sodipodi:nodetypes="cccccaccaccacc" id="path1437" d="m 359.59022,223.85993 c 0,0 0.54769,3.53822 1.40139,14.6323 0,0 -0.31032,17.18918 -9.95227,42.07912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 35.04244,45.91894 44.62042,72.68694 14.18515,39.64386 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -9.41353,-15.3492 -7.87474,-29.58663 -6.26329,-44.46892 0.75479,-6.97069 7.32405,-19.71802 7.32405,-19.71802 44.12648,12.49268 109.9021,0.88511 109.9021,0.88511 z"/><path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" id="path1439" class="shadow" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z"/><path d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" id="path1441" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" class="shadow" id="path1443" sodipodi:nodetypes="ccssccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="caaaacc" id="path1445" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z"/><path sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" id="path1447" class="shadow" d="m 318.00391,325.73755 c 0.1662,-0.0684 8.0406,-11.7618 5.42961,-17.15483 -0.9984,-4.15898 -9.59497,-7.10148 -9.61975,-7.06183 0.0569,0.0797 10.47717,-4.52675 10.06153,-9.41841 -0.0685,-4.77393 -10.54117,-8.39289 -10.58006,-8.30214 -0.0526,0.16819 10.25564,-4.52608 11.12513,-10.21762 1.02638,-5.3714 -8.5072,-13.50589 -8.61202,-13.47969 -0.0119,0.17826 11.09595,-3.22828 11.88153,-8.72903 1.155,-4.5223 -7.71736,-10.81305 -7.91075,-10.7647 -0.18835,0.18835 9.25517,-0.42186 11.47755,-4.98693 1.84787,-4.00611 -4.81901,-11.58557 -4.96824,-11.52961 -0.01,0.12732 7.55069,-1.24244 9.10324,-4.91711 1.82315,-3.08035 -1.62605,-9.99671 -1.71582,-9.98549 0.0825,0.0367 5.16407,-1.94852 5.15369,-4.3377 0.60501,-1.54914 -2.18836,-3.99091 -2.28908,-3.97832 0.0908,0.10897 4.0678,-0.15226 4.79507,-1.82593 1.06341,-1.36941 -0.21991,-4.6138 -0.31935,-4.58065 0,0.11423 4.17524,-0.0769 5.19792,-1.9502 0.99558,-1.00322 -0.0412,-3.85994 -0.15909,-3.89362 0.0263,0.10519 4.18456,0.34981 5.20584,-1.40388 1.11122,-1.15275 0.14014,-4.38532 0.077,-4.38532 0.0633,0.0633 4.12591,-0.0432 4.83864,-1.69189 0.81726,-0.94694 -0.16572,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c -0.0716,-0.0398 -3.52027,0.54293 -4.22866,1.88506 -0.85877,0.77377 -0.79145,2.93259 -0.6882,2.93259 0.0551,-0.16527 -3.13346,0.0301 -4.19674,1.3135 -0.99275,0.92921 -0.83191,3.5722 -0.81211,3.56824 -0.2917,-0.11219 -3.72836,0.0448 -4.59896,1.27221 -1.38692,1.22213 -1.40211,4.98076 -1.29971,4.98076 0,-0.0543 -3.63043,0.28826 -4.68112,1.63345 -1.39037,1.63663 -0.95682,5.95733 -0.84379,5.86314 -0.0714,-0.0572 -3.50997,1.34812 -4.13281,2.97367 -0.99363,1.8097 0.0827,5.8256 0.1485,5.78611 0.0286,-0.0107 -3.47409,-2.58144 -5.81788,-2.29945 -2.03561,0.078 -5.00819,3.04217 -4.98536,3.065 0.0894,-0.0383 -3.77398,-2.28548 -6.07463,-1.93646 -2.19936,0.16817 -5.28843,3.26531 -5.24625,3.29062 0.0577,-0.0247 -3.6596,-2.98608 -6.11743,-2.8254 -2.62706,-0.17114 -6.42609,3.37458 -6.37214,3.43623 0.0764,-0.0305 -2.5983,-3.62398 -4.74516,-3.86523 -2.3968,-0.5135 -6.56096,2.67213 -6.54041,2.73377 0.0278,0 -1.86631,-3.79743 -3.84319,-4.39294 -2.1406,-0.8914 -7.08051,1.65543 -7.08312,1.65775 0,0 4.17132,-0.88265 4.32598,-2.62631 0.28337,-1.00061 -1.78574,-2.2873 -1.82858,-2.27124 0.021,0.0349 5.21539,-1.03939 5.23366,-3.24468 0.28059,-1.11065 -2.28712,-1.83524 -2.3211,-1.81583 0.0194,0.0427 4.09634,-0.0764 4.41853,-1.78242 0.37085,-0.98469 -1.73184,-2.21574 -1.77223,-2.1933 0.008,0.0219 2.8764,-0.90334 3.31722,-2.28129 0.32598,-0.62431 -0.37809,-1.9308 -0.43513,-1.92265 l -4.69222,0.72413 c 0.0237,-0.0426 -1.79765,0.46492 -2.63183,1.51492 -0.69936,0.46779 -0.96174,2.2027 -0.94371,2.21712 0.007,-0.0358 -1.88989,0.10067 -2.44519,0.95669 -0.61207,0.66093 -0.26769,2.37608 -0.20536,2.36361 0.012,-0.0419 -2.55183,0.42329 -3.2251,1.69596 -0.77861,1.04606 0.0592,3.62639 0.12616,3.62639 0.0513,-0.094 -2.12186,0.38382 -2.86561,1.6675 -0.82026,1.16209 -0.31411,3.83168 -0.0897,3.71947 -0.2087,-0.14907 -4.50311,2.782 -5.0707,5.30267 -1.45304,2.7823 -0.4393,8.68853 -0.14431,8.57791 -0.11184,-0.19573 -5.61323,4.13251 -6.54891,7.662 -2.01339,4.22462 -0.20242,12.80349 0.12218,12.65594 -0.27988,-0.19992 -6.69779,4.93798 -6.78396,8.84863 -0.72683,3.97856 4.74341,10.55407 4.9951,10.4462 -0.19084,-0.12723 -4.51715,7.94817 -3.68091,12.43969 0.0674,4.53539 6.50495,11.45785 6.7561,11.37413 -0.19797,0.054 -3.09154,6.28983 -2.56163,9.33402 -0.61864,3.0265 1.44599,8.78728 1.66753,8.76266 -0.22155,-0.0738 -2.26451,6.97373 -1.5863,10.76219 -0.2869,2.90595 3.05181,8.88695 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z"/><path d="m 318.00391,325.73755 c 0,0 7.29076,-11.45304 5.42961,-17.15483 -1.23433,-3.78149 -9.61975,-7.06183 -9.61975,-7.06183 0,0 10.26143,-4.82879 10.06153,-9.41841 -0.19507,-4.4786 -10.58006,-8.30214 -10.58006,-8.30214 0,0 10.47399,-5.22482 11.12513,-10.21762 0.68954,-5.28719 -8.61202,-13.47969 -8.61202,-13.47969 0,0 11.1388,-3.87102 11.88153,-8.72903 0.67298,-4.4018 -7.91075,-10.7647 -7.91075,-10.7647 0,0 9.94184,-1.10853 11.47755,-4.98693 1.54066,-3.89091 -4.96824,-11.52961 -4.96824,-11.52961 0,0 7.59479,-1.81571 9.10324,-4.91711 1.47717,-3.0371 -1.71582,-9.98549 -1.71582,-9.98549 0,0 4.76382,-2.12641 5.15369,-4.3377 0.26565,-1.50672 -2.28908,-3.97832 -2.28908,-3.97832 0,0 3.87403,-0.38479 4.79507,-1.82593 0.82425,-1.28969 -0.31935,-4.58065 -0.31935,-4.58065 0,0 4.17524,-0.40787 5.19792,-1.9502 0.71783,-1.08258 -0.15909,-3.89362 -0.15909,-3.89362 0,0 4.10041,0.0132 5.20584,-1.40388 0.89923,-1.15275 0.077,-4.38532 0.077,-4.38532 0,0 3.91403,-0.25505 4.83864,-1.69189 0.60936,-0.94694 -0.30643,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c 0,0 -3.24515,0.69578 -4.22866,1.88506 -0.6399,0.77377 -0.6882,2.93259 -0.6882,2.93259 0,0 -3.20228,0.23661 -4.19674,1.3135 -0.82757,0.89617 -0.81211,3.56824 -0.81211,3.56824 0,0 -3.48252,0.13932 -4.59896,1.27221 -1.20438,1.22213 -1.29971,4.98076 -1.29971,4.98076 0,0 -3.63043,0.3578 -4.68112,1.63345 -1.25533,1.5241 -0.84379,5.86314 -0.84379,5.86314 0,0 -3.37828,1.45347 -4.13281,2.97367 -0.85776,1.72818 0.1485,5.78611 0.1485,5.78611 0,0 -3.74057,-2.48151 -5.81788,-2.29945 -1.94328,0.17031 -4.98536,3.065 -4.98536,3.065 0,0 -3.96616,-2.20312 -6.07463,-1.93646 -2.04797,0.25901 -5.24625,3.29062 -5.24625,3.29062 0,0 -3.87237,-2.89489 -6.11743,-2.8254 -2.41204,0.0746 -6.37214,3.43623 -6.37214,3.43623 0,0 -2.72617,-3.57283 -4.74516,-3.86523 -2.33852,-0.33867 -6.54041,2.73377 -6.54041,2.73377 0,0 -1.99097,-3.79743 -3.84319,-4.39294 -2.30846,-0.74219 -7.08312,1.65775 -7.08312,1.65775 0,0 4.03449,-0.96475 4.32598,-2.62631 0.16794,-0.95733 -1.82858,-2.27124 -1.82858,-2.27124 0,0 5.12196,-1.19511 5.23366,-3.24468 0.0535,-0.98088 -2.3211,-1.81583 -2.3211,-1.81583 0,0 4.01965,-0.24516 4.41853,-1.78242 0.23607,-0.90981 -1.77223,-2.1933 -1.77223,-2.1933 0,0 2.82832,-1.03154 3.31722,-2.28129 0.23939,-0.61194 -0.43513,-1.92265 -0.43513,-1.92265 l -4.69222,0.72413 c 0,0 -1.96023,0.75757 -2.63183,1.51492 -0.53291,0.60095 -0.94371,2.21712 -0.94371,2.21712 0,0 -1.92093,0.25586 -2.44519,0.95669 -0.47372,0.63326 -0.20536,2.36361 -0.20536,2.36361 0,0 -2.61532,0.6455 -3.2251,1.69596 -0.60723,1.04606 0.12616,3.62639 0.12616,3.62639 0,0 -2.30315,0.71618 -2.86561,1.6675 -0.63118,1.06755 -0.0897,3.71947 -0.0897,3.71947 0,0 -4.14105,3.04061 -5.0707,5.30267 -1.08704,2.64505 -0.14431,8.57791 -0.14431,8.57791 0,0 -5.40066,4.5045 -6.54891,7.662 -1.44183,3.96482 0.12218,12.65594 0.12218,12.65594 0,0 -6.39804,5.15209 -6.78396,8.84863 -0.40078,3.83882 4.9951,10.4462 4.9951,10.4462 0,0 -4.21638,8.14869 -3.68091,12.43969 0.54606,4.37584 6.7561,11.37413 6.7561,11.37413 0,0 -2.43294,6.11021 -2.56163,9.33402 -0.1186,2.97094 1.66753,8.76266 1.66753,8.76266 0,0 -1.76447,7.14041 -1.5863,10.76219 0.13408,2.72553 3.17474,8.83426 3.17474,8.83426 l 0.60329,6.29895 67.29376,-3.51585 z" id="path1449" sodipodi:nodetypes="cacacacacacacacacacacaccacacacacacacacacacacacacacaccacacacacacacacacacscccc" style="display:inline;opacity:1;fill:#ffffff;stroke-width:1.05999994"/><path d="m 315.90803,320.84344 c -2.49311,-12.85797 -3.70847,-24.16935 -4.44214,-39.5634 4.29028,-30.83464 3.35841,-41.06705 21.27809,-72.37945 1.06744,-9.14922 11.65832,-19.70221 22.34434,-31.15738 -2.13976,-0.51067 -4.28423,-0.96012 -6.46482,-0.94005 -11.40402,9.3964 -21.91679,21.41172 -24.91403,32.79713 -21.89276,0.52722 -32.81714,6.37507 -58.48416,-1.54946 3.84727,-8.39874 5.10763,-9.47909 10.78801,-18.40031 -1.05734,0.0265 -2.02266,-0.0784 -3.63549,0.74174 -6.9411,6.67026 -8.04042,9.50969 -12.35955,17.95063 -2.80066,6.10293 -4.61886,11.91112 -5.76436,17.5175 -10.39962,25.33864 -5.9915,43.15772 -3.53361,61.61413 -1.4792,13.13023 -0.30041,25.062 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z" class="shadow" id="path1451" sodipodi:nodetypes="ccccccccccccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccccccccccccc" id="path1453" d="m 315.90803,320.84344 c -2.81213,-13.35423 -5.31598,-26.66992 -4.44214,-39.5634 3.50974,-30.99075 1.84762,-41.36921 21.27809,-72.37945 0.93083,-9.35414 10.94077,-20.77854 22.34434,-31.15738 l -6.46482,-0.94005 c -9.53791,9.58301 -21.68892,21.43451 -24.91403,32.79713 -21.76753,0.94464 -32.29254,8.12373 -58.48416,-1.54946 3.69598,-8.48126 4.421,-9.85362 10.78801,-18.40031 l -3.63549,0.74174 c -6.53986,6.87088 -7.78622,9.63679 -12.35955,17.95063 l -5.76436,17.5175 c -8.96086,25.20784 -5.79542,43.13989 -3.53361,61.61413 -0.5132,12.61008 0.22818,24.77737 1.70304,36.68579 18.49356,5.86562 41.60515,-0.33523 63.48468,-3.31684 z"/><path d="m 349.13308,317.13846 1.58005,7.52419 c -34.68921,1.29057 -82.49669,19.68152 -104.48265,5.19789 l 3.86668,-6.97285 c 33.13895,8.49273 66.33122,-7.2118 99.03592,-5.74923 z" class="shadow" id="path1455" sodipodi:nodetypes="ccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1457" d="m 349.13308,317.13846 1.58005,7.52419 c -35.36449,0.47083 -83.91047,19.07561 -104.48265,5.19789 l 3.86668,-6.97285 c 30.76253,9.95515 65.75714,-6.08342 99.03592,-5.74923 z"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path d="m 360.49161,241.99223 c 0.15713,0.0673 1.09091,14.07542 -9.45227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.42564,15.0158 37.30125,45.91894 44.62042,72.68694 18.09394,39.28852 18.07129,125.05958 17.21147,125.13775 -70.8552,-22.32954 -164.13155,30.03525 -232.75934,-4.27387 -0.19735,-0.0197 4.1265,-76.03991 20.06445,-110.96586 9.2798,-30.93655 35.4953,-60.02101 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -5.47524,-7.9954 -6.36742,-21.28882 -5.88641,-30.59601 -4.05722,-36.73329 30.65665,-66.66209 31.00076,-66.66209 -0.008,-0.0706 2.55382,-1.8267 8.72305,-2.20036 -36.01659,24.46625 -42.13809,58.83696 -39.24643,69.07094 12.14629,3.82492 34.25776,3.67112 87.23879,-1.85132 1.92836,0 6.15865,-6.88279 6.15865,-10.00465 2.71491,-24.25648 8.03999,-35.96111 9.4316,-68.9692 4.553,0.39299 4.95014,-0.2397 9.68823,1.7253 -1.04791,6.23371 0.31824,53.97628 4.75601,64.31785 z" id="path2461" sodipodi:nodetypes="cccccccccccccccccccc" style="display:inline;opacity:1;fill:#000000"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1445-0" d="m 348.47508,176.56688 c 6.23488,24.59751 4.25162,51.07322 4.99933,76.19448 -42.11798,9.03479 -85.37513,19.71113 -110.63496,3.91432 -1.95782,-18.39591 8.20167,-47.39868 32.21961,-67.27394 42.97585,-9.32822 52.0825,-17.54406 73.41602,-12.83486 z"/><path style="display:inline;opacity:1;fill:#333333" sodipodi:nodetypes="ccccaccaccccccccccc" id="path1437" d="m 360.49161,241.99223 c 0,0 0.18968,13.68918 -9.45227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 35.04244,45.91894 44.62042,72.68694 14.18515,39.64386 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.88371,-75.76419 20.06445,-110.96586 11.46675,-30.62413 36.51387,-59.8755 50.2411,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -4.94422,-8.06178 -5.57616,-21.38773 -5.88641,-30.59601 -3.92817,-36.49728 30.67927,-66.58172 31.00076,-66.66209 0,0 2.59939,-1.41654 8.72305,-2.20036 -36.76659,20.96625 -42.13809,58.83696 -39.24643,69.07094 24.85388,-0.61208 66.61629,9.56619 108.02244,-11.10597 1.4423,-26.38913 0.15792,-38.14578 -5.1934,-69.7192 4.57973,0.53998 5.03464,0.22507 9.68823,1.7253 -1.36935,6.31407 -0.62585,54.2123 4.75601,64.31785 z"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cccc" id="path1445-1-7" d="m 306.1115,174.72723 3.10935,13.7728 c -3.58883,0.28907 -4.19632,0.25785 -6.36265,-0.32791 1.00219,-12.04918 3.2533,-13.44489 3.2533,-13.44489 z"/><path d="m 300.08667,172.57237 c -2.03237,3.63344 -2.40946,7.63281 -3.39194,11.16176 -0.11097,2.48059 4.02564,5.20338 6.30994,6.62117 -0.11352,-4.35414 2.20104,-11.31333 2.96606,-15.5101 -2.0837,-0.64114 -4.38743,-1.29276 -5.88406,-2.27283 z" id="path2554" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#000000"/><path d="m 333.1721,164.81697 c 3.12234,3.33135 7.8525,6.78145 9.92028,10.58149 -7.93754,9.36149 -23.35479,13.30607 -33.9727,15.90151 -0.57861,-4.86704 -2.13199,-11.9051 -3.13395,-16.71185 8.60186,-2.43964 22.03678,-4.58024 27.18637,-9.77115 z" id="path2552" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#000000"/><path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" id="path1439" class="shadow" d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z"/><path d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" id="path1441" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" class="shadow" id="path1443" sodipodi:nodetypes="ccssccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="caaaacc" id="path1445" d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z"/><path d="m 351.38308,281.76346 c -2.00111,14.61346 -1.45571,28.77753 -0.66995,42.89919 -34.68921,1.29057 -82.49669,19.68152 -104.48265,5.19789 0.75356,-14.0727 1.75763,-29.9734 1.30418,-44.34785 33.13895,8.49273 71.14372,-5.2118 103.84842,-3.74923 z" class="shadow" id="path1455" sodipodi:nodetypes="ccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1457" d="m 351.38308,281.76346 c -2.7968,14.29973 -1.98265,28.59946 -0.66995,42.89919 -35.36449,0.47083 -83.91047,19.07561 -104.48265,5.19789 1.05318,-14.11595 2.82363,-30.2319 1.30418,-44.34785 30.76253,9.95515 70.56964,-4.08342 103.84842,-3.74923 z"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1445-1" d="m 333.1721,164.81697 9.92028,10.58149 c -8.50147,8.95868 -23.58459,13.14193 -33.9727,15.90151 -0.35332,-4.82062 -1.60248,-11.89123 -3.13395,-16.71185 8.60186,-1.844 22.03678,-4.11883 27.18637,-9.77115 z"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="ccccc" id="path1445-1-4" d="m 300.08667,172.57237 -3.39194,11.16176 c 0.27347,2.33273 4.1548,5.1537 6.30994,6.62117 -0.5339,-4.37642 1.60936,-11.42013 2.96606,-15.5101 -2.28233,-0.52764 -4.46978,-1.2457 -5.88406,-2.27283 z"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Torso_Outfit_Maid_Unnatural.tw b/src/art/vector_revamp/layers/Torso_Outfit_Maid_Unnatural.tw index 713952e5be076bb1662c767edfff232ab6c73e16..33c5a23a2b0abb45ab041c98f1323548e4bdb797 100644 --- a/src/art/vector_revamp/layers/Torso_Outfit_Maid_Unnatural.tw +++ b/src/art/vector_revamp/layers/Torso_Outfit_Maid_Unnatural.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Torso_Outfit_Maid_Unnatural [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path class="shadow" sodipodi:nodetypes="cccccccccccccc" id="path1396" d="m 359.32506,223.68315 c 0,0 0.81285,3.715 1.66655,14.80908 0.60333,0.24133 -10.14395,31.21625 -26.92284,39.42747 -2.60991,13.16972 -1.19,40.93835 -1.62633,40.86563 0,0 5.16414,4.87801 6.3654,7.30426 25.41094,14.16919 46.24345,42.44329 56.43292,71.31194 19.15995,38.96952 18.59152,124.9406 17.21147,125.13775 -69.91487,-25.57972 -163.41142,29.15618 -232.75934,-4.27387 -0.6629,0 4.43678,-75.76419 20.06445,-110.96586 8.85721,-31.27651 38.93399,-60.37533 53.95341,-84.43678 -5.31056,-13.48953 -3.26785,-24.95459 -1.63624,-35.7452 -10.20434,-15.27731 -12.82373,-29.50621 -9.71044,-44.42473 1.68036,-12.73855 7.18619,-19.52847 7.03163,-19.62506 44.12648,12.49268 109.92936,0.61537 109.92936,0.61537 z"/><path d="m 359.32506,223.68315 c 0,0 0.81285,3.715 1.66655,14.80908 0,0 -11.18209,30.80099 -26.92284,39.42747 -4.05461,12.92894 -1.62633,40.86563 -1.62633,40.86563 0,0 5.16414,4.87801 6.3654,7.30426 23.94861,15.0158 44.54286,43.42784 56.43292,71.31194 16.51533,38.7311 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.34105,-75.97218 20.06445,-110.96586 12.19453,-31.09516 40.22618,-60.05228 53.95341,-84.43678 -4.38752,-13.39723 -2.52851,-24.88066 -1.63624,-35.7452 -9.41353,-15.3492 -10.68632,-29.29831 -9.71044,-44.42473 0.44738,-6.9345 7.03163,-19.62506 7.03163,-19.62506 44.12648,12.49268 109.92936,0.61537 109.92936,0.61537 z" id="path1398" sodipodi:nodetypes="cccccaccaccacc" style="display:inline;opacity:1;fill:#333333"/><path d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" class="shadow" id="path1400" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" id="path1402" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z"/><path sodipodi:nodetypes="ccssccc" id="path1404" class="shadow" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z"/><path d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" id="path1415" sodipodi:nodetypes="caaaacc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 318.00391,325.73755 c 0.1662,-0.0684 8.0406,-11.7618 5.42961,-17.15483 -0.9984,-4.15898 -9.59497,-7.10148 -9.61975,-7.06183 0.0569,0.0797 10.47717,-4.52675 10.06153,-9.41841 -0.0685,-4.77393 -10.54117,-8.39289 -10.58006,-8.30214 -0.0526,0.16819 10.25564,-4.52608 11.12513,-10.21762 1.02638,-5.3714 -8.5072,-13.50589 -8.61202,-13.47969 -0.0119,0.17826 11.09595,-3.22828 11.88153,-8.72903 1.155,-4.5223 -7.71736,-10.81305 -7.91075,-10.7647 -0.18835,0.18835 9.25517,-0.42186 11.47755,-4.98693 1.84787,-4.00611 -4.81901,-11.58557 -4.96824,-11.52961 -0.01,0.12732 7.55069,-1.24244 9.10324,-4.91711 1.82315,-3.08035 -1.62605,-9.99671 -1.71582,-9.98549 0.0825,0.0367 5.16407,-1.94852 5.15369,-4.3377 0.60501,-1.54914 -2.18836,-3.99091 -2.28908,-3.97832 0.0908,0.10897 4.0678,-0.15226 4.79507,-1.82593 1.06341,-1.36941 -0.21991,-4.6138 -0.31935,-4.58065 0,0.11423 4.17524,-0.0769 5.19792,-1.9502 0.99558,-1.00322 -0.0412,-3.85994 -0.15909,-3.89362 0.0263,0.10519 4.18456,0.34981 5.20584,-1.40388 1.11122,-1.15275 0.14014,-4.38532 0.077,-4.38532 0.0633,0.0633 4.12591,-0.0432 4.83864,-1.69189 0.81726,-0.94694 -0.16572,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c -0.0716,-0.0398 -3.52027,0.54293 -4.22866,1.88506 -0.85877,0.77377 -0.79145,2.93259 -0.6882,2.93259 0.0551,-0.16527 -3.13346,0.0301 -4.19674,1.3135 -0.99275,0.92921 -0.83191,3.5722 -0.81211,3.56824 -0.2917,-0.11219 -3.72836,0.0448 -4.59896,1.27221 -1.38692,1.22213 -1.40211,4.98076 -1.29971,4.98076 0,-0.0543 -3.63043,0.28826 -4.68112,1.63345 -1.39037,1.63663 -0.95682,5.95733 -0.84379,5.86314 -0.0714,-0.0572 -3.50997,1.34812 -4.13281,2.97367 -0.99363,1.8097 0.0827,5.8256 0.1485,5.78611 0.0286,-0.0107 -3.47409,-2.58144 -5.81788,-2.29945 -2.03561,0.078 -5.00819,3.04217 -4.98536,3.065 0.0894,-0.0383 -3.77398,-2.28548 -6.07463,-1.93646 -2.19936,0.16817 -5.28843,3.26531 -5.24625,3.29062 0.0577,-0.0247 -3.6596,-2.98608 -6.11743,-2.8254 -2.62706,-0.17114 -6.42609,3.37458 -6.37214,3.43623 0.0764,-0.0305 -2.5983,-3.62398 -4.74516,-3.86523 -2.3968,-0.5135 -6.56096,2.67213 -6.54041,2.73377 0.0278,0 -1.86631,-3.79743 -3.84319,-4.39294 -2.1406,-0.8914 -7.08051,1.65543 -7.08312,1.65775 0,0 4.17132,-0.88265 4.32598,-2.62631 0.28337,-1.00061 -1.78574,-2.2873 -1.82858,-2.27124 0.021,0.0349 5.21539,-1.03939 5.23366,-3.24468 0.28059,-1.11065 -2.28712,-1.83524 -2.3211,-1.81583 0.0194,0.0427 4.09634,-0.0764 4.41853,-1.78242 0.37085,-0.98469 -1.73184,-2.21574 -1.77223,-2.1933 0.008,0.0219 2.8764,-0.90334 3.31722,-2.28129 0.32598,-0.62431 -0.37809,-1.9308 -0.43513,-1.92265 l -4.69222,0.72413 c 0.0237,-0.0426 -1.79765,0.46492 -2.63183,1.51492 -0.69936,0.46779 -0.96174,2.2027 -0.94371,2.21712 0.007,-0.0358 -1.88989,0.10067 -2.44519,0.95669 -0.61207,0.66093 -0.26769,2.37608 -0.20536,2.36361 0.012,-0.0419 -2.55183,0.42329 -3.2251,1.69596 -0.77861,1.04606 0.0592,3.62639 0.12616,3.62639 0.0513,-0.094 -2.12186,0.38382 -2.86561,1.6675 -0.82026,1.16209 -0.31411,3.83168 -0.0897,3.71947 -0.2087,-0.14907 -4.50311,2.782 -5.0707,5.30267 -1.45304,2.7823 -0.4393,8.68853 -0.14431,8.57791 -0.11184,-0.19573 -5.61323,4.13251 -6.54891,7.662 -2.01339,4.22462 -0.20242,12.80349 0.12218,12.65594 -0.27988,-0.19992 -6.69779,4.93798 -6.78396,8.84863 -0.72683,3.97856 4.74341,10.55407 4.9951,10.4462 -0.19084,-0.12723 -4.51715,7.94817 -3.68091,12.43969 0.0674,4.53539 6.50495,11.45785 6.7561,11.37413 -0.19797,0.054 -3.09154,6.28983 -2.56163,9.33402 -0.61864,3.0265 1.44599,8.78728 1.66753,8.76266 -0.22155,-0.0738 -2.26451,6.97373 -1.5863,10.76219 -0.2869,2.90595 6.58734,8.62178 6.71027,8.56909 l -2.93224,6.56412 67.29376,-3.51585 z" class="shadow" id="path1417" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/><path style="display:inline;opacity:1;fill:#ffffff;stroke-width:1.05999994" sodipodi:nodetypes="cacacacacacacacacacacaccacacacacacacacacacacacacacaccacacacacacacacacacscccc" id="path1419" d="m 318.00391,325.73755 c 0,0 7.29076,-11.45304 5.42961,-17.15483 -1.23433,-3.78149 -9.61975,-7.06183 -9.61975,-7.06183 0,0 10.26143,-4.82879 10.06153,-9.41841 -0.19507,-4.4786 -10.58006,-8.30214 -10.58006,-8.30214 0,0 10.47399,-5.22482 11.12513,-10.21762 0.68954,-5.28719 -8.61202,-13.47969 -8.61202,-13.47969 0,0 11.1388,-3.87102 11.88153,-8.72903 0.67298,-4.4018 -7.91075,-10.7647 -7.91075,-10.7647 0,0 9.94184,-1.10853 11.47755,-4.98693 1.54066,-3.89091 -4.96824,-11.52961 -4.96824,-11.52961 0,0 7.59479,-1.81571 9.10324,-4.91711 1.47717,-3.0371 -1.71582,-9.98549 -1.71582,-9.98549 0,0 4.76382,-2.12641 5.15369,-4.3377 0.26565,-1.50672 -2.28908,-3.97832 -2.28908,-3.97832 0,0 3.87403,-0.38479 4.79507,-1.82593 0.82425,-1.28969 -0.31935,-4.58065 -0.31935,-4.58065 0,0 4.17524,-0.40787 5.19792,-1.9502 0.71783,-1.08258 -0.15909,-3.89362 -0.15909,-3.89362 0,0 4.10041,0.0132 5.20584,-1.40388 0.89923,-1.15275 0.077,-4.38532 0.077,-4.38532 0,0 3.91403,-0.25505 4.83864,-1.69189 0.60936,-0.94694 -0.30643,-3.36424 -0.30643,-3.36424 l -7.90872,-1.24492 c 0,0 -3.24515,0.69578 -4.22866,1.88506 -0.6399,0.77377 -0.6882,2.93259 -0.6882,2.93259 0,0 -3.20228,0.23661 -4.19674,1.3135 -0.82757,0.89617 -0.81211,3.56824 -0.81211,3.56824 0,0 -3.48252,0.13932 -4.59896,1.27221 -1.20438,1.22213 -1.29971,4.98076 -1.29971,4.98076 0,0 -3.63043,0.3578 -4.68112,1.63345 -1.25533,1.5241 -0.84379,5.86314 -0.84379,5.86314 0,0 -3.37828,1.45347 -4.13281,2.97367 -0.85776,1.72818 0.1485,5.78611 0.1485,5.78611 0,0 -3.74057,-2.48151 -5.81788,-2.29945 -1.94328,0.17031 -4.98536,3.065 -4.98536,3.065 0,0 -3.96616,-2.20312 -6.07463,-1.93646 -2.04797,0.25901 -5.24625,3.29062 -5.24625,3.29062 0,0 -3.87237,-2.89489 -6.11743,-2.8254 -2.41204,0.0746 -6.37214,3.43623 -6.37214,3.43623 0,0 -2.72617,-3.57283 -4.74516,-3.86523 -2.33852,-0.33867 -6.54041,2.73377 -6.54041,2.73377 0,0 -1.99097,-3.79743 -3.84319,-4.39294 -2.30846,-0.74219 -7.08312,1.65775 -7.08312,1.65775 0,0 4.03449,-0.96475 4.32598,-2.62631 0.16794,-0.95733 -1.82858,-2.27124 -1.82858,-2.27124 0,0 5.12196,-1.19511 5.23366,-3.24468 0.0535,-0.98088 -2.3211,-1.81583 -2.3211,-1.81583 0,0 4.01965,-0.24516 4.41853,-1.78242 0.23607,-0.90981 -1.77223,-2.1933 -1.77223,-2.1933 0,0 2.82832,-1.03154 3.31722,-2.28129 0.23939,-0.61194 -0.43513,-1.92265 -0.43513,-1.92265 l -4.69222,0.72413 c 0,0 -1.96023,0.75757 -2.63183,1.51492 -0.53291,0.60095 -0.94371,2.21712 -0.94371,2.21712 0,0 -1.92093,0.25586 -2.44519,0.95669 -0.47372,0.63326 -0.20536,2.36361 -0.20536,2.36361 0,0 -2.61532,0.6455 -3.2251,1.69596 -0.60723,1.04606 0.12616,3.62639 0.12616,3.62639 0,0 -2.30315,0.71618 -2.86561,1.6675 -0.63118,1.06755 -0.0897,3.71947 -0.0897,3.71947 0,0 -4.14105,3.04061 -5.0707,5.30267 -1.08704,2.64505 -0.14431,8.57791 -0.14431,8.57791 0,0 -5.40066,4.5045 -6.54891,7.662 -1.44183,3.96482 0.12218,12.65594 0.12218,12.65594 0,0 -6.39804,5.15209 -6.78396,8.84863 -0.40078,3.83882 4.9951,10.4462 4.9951,10.4462 0,0 -4.21638,8.14869 -3.68091,12.43969 0.54606,4.37584 6.7561,11.37413 6.7561,11.37413 0,0 -2.43294,6.11021 -2.56163,9.33402 -0.1186,2.97094 1.66753,8.76266 1.66753,8.76266 0,0 -1.76447,7.14041 -1.5863,10.76219 0.13408,2.72553 6.71027,8.56909 6.71027,8.56909 l -2.93224,6.56412 67.29376,-3.51585 z"/><path sodipodi:nodetypes="ccccccccccccccc" id="path1421" class="shadow" d="m 315.90803,320.84344 c -2.49311,-12.85797 -3.70847,-24.16935 -4.44214,-39.5634 4.29028,-30.83464 3.35841,-41.06705 21.27809,-72.37945 1.06744,-9.14922 11.65832,-19.70221 22.34434,-31.15738 -2.13976,-0.51067 -4.28423,-0.96012 -6.46482,-0.94005 -11.40402,9.3964 -21.91679,21.41172 -24.91403,32.79713 -21.89276,0.52722 -32.81714,6.37507 -58.48416,-1.54946 3.84727,-8.39874 5.10763,-9.47909 10.78801,-18.40031 -1.05734,0.0265 -2.02266,-0.0784 -3.63549,0.74174 -6.9411,6.67026 -8.04042,9.50969 -12.35955,17.95063 -2.80066,6.10293 -4.61886,11.91112 -5.76436,17.5175 -10.39962,25.33864 -5.9915,43.15772 -3.53361,61.61413 -1.4792,13.13023 1.06961,23.82456 3.07306,35.44835 18.49356,5.86562 40.23513,0.90221 62.11466,-2.0794 z"/><path d="m 315.90803,320.84344 c -2.81213,-13.35423 -5.31598,-26.66992 -4.44214,-39.5634 3.50974,-30.99075 1.84762,-41.36921 21.27809,-72.37945 0.93083,-9.35414 10.94077,-20.77854 22.34434,-31.15738 l -6.46482,-0.94005 c -9.53791,9.58301 -21.68892,21.43451 -24.91403,32.79713 -21.76753,0.94464 -32.29254,8.12373 -58.48416,-1.54946 3.69598,-8.48126 4.421,-9.85362 10.78801,-18.40031 l -3.63549,0.74174 c -6.53986,6.87088 -7.78622,9.63679 -12.35955,17.95063 l -5.76436,17.5175 c -8.96086,25.20784 -5.79542,43.13989 -3.53361,61.61413 -0.5132,12.61008 1.5982,23.53993 3.07306,35.44835 18.49356,5.86562 40.23513,0.90221 62.11466,-2.0794 z" id="path1423" sodipodi:nodetypes="ccccccccccccccc" style="display:inline;opacity:1;fill:#ffffff"/><path sodipodi:nodetypes="ccccc" id="path1425" class="shadow" d="m 332.57058,318.76346 6.33005,7.27419 c -34.68921,1.29057 -66.97188,18.12974 -88.95784,3.64611 l 3.86668,-6.97285 c 33.13895,8.49273 46.05641,-5.41002 78.76111,-3.94745 z"/><path d="m 332.57058,318.76346 6.33005,7.27419 c -35.36449,0.47083 -68.38566,17.52383 -88.95784,3.64611 l 3.86668,-6.97285 c 30.76253,9.95515 45.48233,-4.28164 78.76111,-3.94745 z" id="path1427" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="cccccccccccccccccccc" id="path2798" d="m 360.49161,241.99223 c 0.15713,0.0673 -5.97159,18.38792 -21.70227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 25.42564,15.0158 49.55125,45.91894 56.87042,72.68694 18.09394,39.28852 18.07129,125.05958 17.21147,125.13775 -70.8552,-22.32954 -164.13155,30.03525 -232.75934,-4.27387 -0.19735,-0.0197 4.1265,-76.03991 20.06445,-110.96586 9.2798,-30.93655 38.3703,-60.02101 53.1161,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -5.47524,-7.9954 -9.24242,-21.28882 -8.76141,-30.59601 -4.05722,-36.73329 30.65665,-66.66209 31.00076,-66.66209 -0.008,-0.0706 2.55382,-1.8267 8.72305,-2.20036 -36.01659,24.46625 -42.13809,58.83696 -39.24643,69.07094 12.14629,3.82492 34.25776,3.67112 87.23879,-1.85132 1.92836,0 6.15865,-6.88279 6.15865,-10.00465 2.71491,-24.25648 8.03999,-35.96111 9.4316,-68.9692 4.553,0.39299 4.95014,-0.2397 9.68823,1.7253 -1.04791,6.23371 0.31824,53.97628 4.75601,64.31785 z"/><path d="m 348.47508,176.56688 c 6.23488,24.59751 4.25162,51.07322 4.99933,76.19448 -42.11798,9.03479 -85.37513,19.71113 -110.63496,3.91432 -1.95782,-18.39591 8.20167,-47.39868 32.21961,-67.27394 42.97585,-9.32822 52.0825,-17.54406 73.41602,-12.83486 z" id="path2800" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 360.49161,241.99223 c 0,0 -7.49782,19.06418 -21.70227,38.57912 -4.05461,12.92894 -2.0344,36.58898 -2.0344,36.58898 0,0 0.41414,5.12801 1.6154,7.55426 23.94861,15.0158 44.88197,44.35531 56.87042,72.68694 16.40822,38.7766 17.21147,125.13775 17.21147,125.13775 -70.8552,-28.58878 -164.13155,26.85176 -232.75934,-4.27387 0,0 6.44834,-75.93029 20.06445,-110.96586 12.02699,-30.9466 39.38887,-59.8755 53.1161,-84.26 -4.38752,-13.39723 -2.26335,-25.01325 -1.37108,-35.87779 -4.94422,-8.06178 -8.45116,-21.38773 -8.76141,-30.59601 -3.92817,-36.49728 30.67927,-66.58172 31.00076,-66.66209 0,0 2.59939,-1.41654 8.72305,-2.20036 -36.76659,20.96625 -42.13809,58.83696 -39.24643,69.07094 24.85388,-0.61208 66.61629,9.56619 108.02244,-11.10597 1.4423,-26.38913 0.15792,-38.14578 -5.1934,-69.7192 4.57973,0.53998 5.03464,0.22507 9.68823,1.7253 -1.36935,6.31407 -0.62585,54.2123 4.75601,64.31785 z" id="path2803" sodipodi:nodetypes="ccccaccaccccccccccc" style="display:inline;opacity:1;fill:#333333"/><path d="m 306.1115,174.72723 3.10935,13.7728 c -3.58883,0.28907 -4.19632,0.25785 -6.36265,-0.32791 1.00219,-12.04918 3.2533,-13.44489 3.2533,-13.44489 z" id="path2805" sodipodi:nodetypes="cccc" style="display:inline;opacity:1;fill:#ffffff"/><path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2807" d="m 300.08667,172.57237 c -2.03237,3.63344 -2.40946,7.63281 -3.39194,11.16176 -0.11097,2.48059 4.02564,5.20338 6.30994,6.62117 -0.11352,-4.35414 2.20104,-11.31333 2.96606,-15.5101 -2.0837,-0.64114 -4.38743,-1.29276 -5.88406,-2.27283 z"/><path style="display:inline;opacity:1;fill:#000000" sodipodi:nodetypes="ccccc" id="path2810" d="m 333.1721,164.81697 c 3.12234,3.33135 7.8525,6.78145 9.92028,10.58149 -7.93754,9.36149 -23.35479,13.30607 -33.9727,15.90151 -0.57861,-4.86704 -2.13199,-11.9051 -3.13395,-16.71185 8.60186,-2.43964 22.03678,-4.58024 27.18637,-9.77115 z"/><path d="m 318.99599,327.6899 c 0.0644,-0.16109 8.65228,0.56099 9.61497,4.49727 1.3512,2.8737 -3.34911,7.53093 -3.47797,7.44163 -0.0771,-0.15425 8.84757,-0.64052 10.11034,3.2164 1.02068,3.07865 -5.38909,6.92467 -5.44926,6.82438 0.23172,-0.20855 10.82387,0.0205 11.58201,4.44743 1.38783,4.11242 -6.22864,10.32292 -6.27664,10.17893 0.21991,-0.13745 8.43834,1.21248 9.01294,4.71968 1.2288,3.81779 -4.96917,9.64522 -5.03752,9.48573 0.21257,-0.13285 10.58372,2.34604 11.07464,6.85972 1.25518,3.94064 -6.04041,9.4479 -6.21547,9.33849 0.13515,-0.11263 11.08656,2.58112 11.93526,7.39163 1.71015,4.99964 -7.00879,13.22784 -7.21484,13.15057 0.0942,-0.0157 9.93077,7.19801 9.34405,12.44107 0.10908,5.19779 -9.69913,10.99968 -9.76212,10.93669 0.18533,-0.0824 11.15376,9.91714 7.63971,14.84338 -2.61785,4.65478 -15.08597,-0.32502 -15.15239,-0.59071 0.33431,-0.16715 5.3952,17.15578 -0.85713,21.87287 -6.50245,5.00033 -23.38239,-4.72464 -23.02204,-4.94986 0.22183,0.0246 -1.66191,12.7012 -7.19718,14.88791 -5.5687,2.47972 -16.74854,-6.17807 -16.74854,-6.48015 0.21345,0.4269 -5.07562,9.91879 -10.03403,10.20801 -5.55297,0.42338 -12.95531,-7.17693 -12.56583,-7.44005 0.36032,0.1488 -7.16402,7.27921 -12.8887,6.95808 -4.83568,-0.14563 -10.74277,-8.48059 -10.58851,-8.67342 0.22444,0.19238 -9.22718,7.16136 -14.53666,4.80368 -4.70766,-1.85637 -6.31717,-11.27134 -6.13011,-11.24256 -0.0365,0.3281 -13.14523,5.45055 -17.62156,1.26353 -4.51529,-3.20565 -1.84094,-15.18727 -1.6627,-15.20509 -0.17088,0.0854 -9.60707,-4.8907 -10.3417,-9.69215 -1.57318,-4.62814 3.84701,-13.41306 4.19582,-13.29679 -0.18367,0.0459 -4.13228,-7.96382 -2.49807,-11.98279 0.67111,-3.66494 7.4073,-7.52683 7.53174,-7.42313 -0.10889,0.0545 -2.35187,-7.48617 -0.57345,-11.08065 0.97955,-3.46808 7.81374,-7.23036 7.98116,-7.15861 -0.16474,0.0412 -1.76219,-6.06944 -0.0618,-8.87421 0.86706,-2.57827 5.32018,-4.74225 5.36859,-4.54861 -0.31509,0.0788 -1.63297,-5.0224 -0.33716,-7.38269 1.06746,-2.94953 5.90428,-5.607 5.87412,-5.30544 -0.0593,0 0.14909,-4.63491 1.73435,-6.67977 1.09199,-2.83818 5.23059,-6.49208 5.30213,-6.32515 -0.13193,0.0495 1.90625,-6.4612 4.21952,-9.6367 1.30133,-2.92237 6.34678,-7.9651 6.48509,-7.9651 -0.0721,0.009 1.17726,-4.6058 3.03344,-6.74429 1.47439,-2.92429 5.62888,-6.48189 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z" class="shadow" id="path2812" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc"/><path style="display:inline;opacity:1;fill:#ffffff" sodipodi:nodetypes="cacacacacacacacacacacacacacacacacacacacacacaccc" id="path2814" d="m 318.99599,327.6899 c 0,0 8.40821,1.17117 9.61497,4.49727 0.93385,2.57392 -3.47797,7.44163 -3.47797,7.44163 0,0 9.08388,-0.1679 10.11034,3.2164 0.84491,2.78571 -5.44926,6.82438 -5.44926,6.82438 0,0 10.25836,0.52946 11.58201,4.44743 1.27585,3.77649 -6.27664,10.17893 -6.27664,10.17893 0,0 8.01039,1.47995 9.01294,4.71968 1.05837,3.42011 -5.03752,9.48573 -5.03752,9.48573 0,0 10.15037,2.61688 11.07464,6.85972 0.7959,3.65359 -6.21547,9.33849 -6.21547,9.33849 0,0 10.74466,2.86604 11.93526,7.39163 1.2721,4.83537 -7.21484,13.15057 -7.21484,13.15057 0,0 9.56319,7.25927 9.34405,12.44107 -0.20647,4.88224 -9.76212,10.93669 -9.76212,10.93669 0,0 10.62954,10.15013 7.63971,14.84338 -2.71578,4.26308 -15.15239,-0.59071 -15.15239,-0.59071 0,0 4.90743,17.39967 -0.85713,21.87287 -6.20132,4.81212 -23.02204,-4.94986 -23.02204,-4.94986 0,0 -2.06947,12.86558 -7.19718,14.88791 -5.5687,2.19626 -16.74854,-6.48015 -16.74854,-6.48015 0,0 -5.30284,9.59088 -10.03403,10.20801 -4.82685,0.62961 -12.56583,-7.44005 -12.56583,-7.44005 0,0 -8.02869,7.4243 -12.8887,6.95808 -4.54161,-0.43568 -10.58851,-8.67342 -10.58851,-8.67342 0,0 -9.79032,6.67867 -14.53666,4.80368 -3.96987,-1.56825 -6.13011,-11.24256 -6.13011,-11.24256 0,0 -13.0991,5.03539 -17.62156,1.26353 -3.9155,-3.26563 -1.6627,-15.20509 -1.6627,-15.20509 0,0 -9.14506,-5.1217 -10.3417,-9.69215 -1.17719,-4.49614 4.19582,-13.29679 4.19582,-13.29679 0,0 -3.67873,-8.07721 -2.49807,-11.98279 1.02002,-3.37418 7.53174,-7.42313 7.53174,-7.42313 0,0 -1.99319,-7.66551 -0.57345,-11.08065 1.37185,-3.29995 7.98116,-7.15861 7.98116,-7.15861 0,0 -1.29621,-6.18593 -0.0618,-8.87421 0.97875,-2.13151 5.36859,-4.54861 5.36859,-4.54861 0,0 -1.28579,-5.1092 -0.33716,-7.38269 1.01601,-2.43499 5.87412,-5.30544 5.87412,-5.30544 0,0 0.68057,-4.63491 1.73435,-6.67977 1.26026,-2.44554 5.30213,-6.32515 5.30213,-6.32515 0,0 2.39255,-6.64356 4.21952,-9.6367 1.78378,-2.92237 6.48509,-7.9651 6.48509,-7.9651 0,0 1.69989,-4.67113 3.03344,-6.74429 1.54055,-2.39498 5.63667,-6.41957 5.63667,-6.41957 26.0423,7.35036 46.49273,1.22064 68.57478,-0.66959 z"/><path sodipodi:nodetypes="ccssccc" id="path2816" class="shadow" d="m 317.3515,327.6899 c 0.22023,-0.0832 13.95193,22.40956 15.51755,35.27419 7.4167,28.20029 26.15374,64.2233 5.41963,85.35354 -32.97758,33.60762 -95.87299,40.63263 -128.98295,5.78454 -16.72652,-17.60459 0.50361,-47.60411 11.1802,-71.36249 6.48324,-18.97334 29.03428,-54.79411 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z"/><path d="m 317.3515,327.6899 c 0,0 12.47759,22.79358 15.51755,35.27419 6.74669,27.69865 24.45833,64.13418 5.41963,85.35354 -28.74158,32.03359 -100.27917,37.85201 -128.98295,5.78454 -16.05853,-17.94037 3.26025,-48.62468 11.1802,-71.36249 6.85399,-19.67747 30.78578,-54.40455 30.78578,-54.40455 25.09479,7.08293 44.80116,1.17623 66.07979,-0.64523 z" id="path2818" sodipodi:nodetypes="caaaacc" style="display:inline;opacity:1;fill:#ffffff"/><path sodipodi:nodetypes="ccccc" id="path2820" class="shadow" d="m 339.13308,281.76346 c -2.00111,14.61346 -1.45571,28.77753 -0.66995,42.89919 -34.68921,1.29057 -67.37169,19.68152 -89.35765,5.19789 0.75356,-14.0727 1.75763,-29.9734 1.30418,-44.34785 33.13895,8.49273 56.01872,-5.2118 88.72342,-3.74923 z"/><path d="m 339.13308,281.76346 c -2.7968,14.29973 -1.98265,28.59946 -0.66995,42.89919 -35.36449,0.47083 -68.78547,19.07561 -89.35765,5.19789 1.05318,-14.11595 2.82363,-30.2319 1.30418,-44.34785 30.76253,9.95515 55.44464,-4.08342 88.72342,-3.74923 z" id="path2822" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 333.1721,164.81697 9.92028,10.58149 c -8.50147,8.95868 -23.58459,13.14193 -33.9727,15.90151 -0.35332,-4.82062 -1.60248,-11.89123 -3.13395,-16.71185 8.60186,-1.844 22.03678,-4.11883 27.18637,-9.77115 z" id="path2824" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/><path d="m 300.08667,172.57237 -3.39194,11.16176 c 0.27347,2.33273 4.1548,5.1537 6.30994,6.62117 -0.5339,-4.37642 1.60936,-11.42013 2.96606,-15.5101 -2.28233,-0.52764 -4.46978,-1.2457 -5.88406,-2.27283 z" id="path2827" sodipodi:nodetypes="ccccc" style="display:inline;opacity:1;fill:#ffffff"/></svg></html>' >> \ No newline at end of file diff --git a/src/art/vector_revamp/layers/Torso_Unnatural.tw b/src/art/vector_revamp/layers/Torso_Unnatural.tw index 14a14a2744d1a8f0dbed6d1fa751cfefd9bf3a5d..c9750a158a0b9956341999258821b1c7a629b411 100644 --- a/src/art/vector_revamp/layers/Torso_Unnatural.tw +++ b/src/art/vector_revamp/layers/Torso_Unnatural.tw @@ -1,3 +1,3 @@ :: Art_Vector_Revamp_Torso_Unnatural [nobr] -<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccccccccscccccccsccccccc" id="path1150" class="shadow torso" d="m 246.30911,231.06259 c -8.99453,20.02062 -2.7168,39.82817 6.59033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -15.97966,23.47896 -17.84706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 3.60245,2.72059 6.88662,0.53559 7.11408,-0.30205 l 1.02256,-0.0126 c 0.0456,0.48907 6.30075,4.01813 11.35624,0.16606 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -12.21859,-13.62863 -12.84375,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 19.23508,-11.98202 24.99543,-31.81666 27.02144,-41.33057 -0.50349,-3.50775 -1.32308,-10.70751 -1.45375,-13.44272 -4.53544,-10.77188 -2.3443,-15.76194 -4.6441,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z"/><path d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z" id="path1510" sodipodi:nodetypes="cccccc" class="skin neck"/><path d="m 286.83636,187.18633 c -3.66048,0.80645 -9.84112,2.17312 -15.69027,3.64767 -8.65971,10.94361 -15.77697,17.65654 -24.83698,40.22861 v -2e-5 c -7.97663,19.22419 -2.76769,39.20032 6.84033,56.00881 -1.06764,11.32585 -1.52536,26.55789 1.00056,35.50213 C 242.77941,344.09706 238.25294,346.1 236.05294,366.2 c -1.1,10.1 -2.23235,20.37059 -6.00882,40.87059 1.79918,21.68192 24.06603,28.08577 33.55443,33.19683 14.43169,10.04215 15.75456,13.80608 22.99302,21.72969 2.40278,1.2769 6.48126,0.50828 7.11501,-0.33224 l 1.04511,-0.0119 c 1.31243,1.17872 7.86774,1.71281 11.33041,0.17649 1.25908,-5.51105 3.06465,-22.40272 25.53259,-37.02845 9.99479,-6.9207 28.66527,-25.38509 47.28163,-34.05687 -9.1,-20.7 -12.62279,-28.06765 -19.58456,-39.49706 -3.8841,-8.49646 -20.35009,-24.94863 -20.57655,-24.78256 0.17394,-0.53763 -12.86462,-13.70829 -12.93214,-15.85983 2.56898,-6.32141 6.07307,-31.48845 8.07452,-32.87542 17.10876,-11.85604 23.08362,-25.52016 27.05018,-41.16751 -0.3269,-2.17434 -0.47207,-3.26685 -0.65846,-5.74844 -1.66961,-10.3676 -2.47994,-23.531 -5.32957,-34.10874 0.025,-10.96207 3.83428,-17.95261 3.83428,-17.95261 -3.26688,-0.7913 -9.53184,-1.48469 -12.45487,-1.8114 -33.85358,35.49387 -77.52547,14.10408 -59.48279,10.24576 z" id="path1152" sodipodi:nodetypes="ccccccccccccccccccccccccc" class="skin torso"/><path d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z" class="muscle_tone" id="path1156" sodipodi:nodetypes="ccc"/><path d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z" class="muscle_tone" id="path1158" sodipodi:nodetypes="ccc"/><path d="m 261.07288,408.74028 c -7.12092,-11.56625 -12.80508,-15.26976 -19.3403,-19.6414 12.24468,7.16654 14.68099,9.92914 19.3403,19.6414 z" class="muscle_tone" id="path1160" sodipodi:nodetypes="ccc"/><path d="m 333.87477,277.49678 c -0.45714,-1.47279 -0.073,-7.87231 -6.56962,-12.18972 4.93326,3.3569 6.04008,6.0889 6.56962,12.18972 z" class="muscle_tone" id="path1162" sodipodi:nodetypes="ccc"/><path d="m 303.24363,269.89121 c -3.70542,-3.35104 -8.95604,-6.81165 -14.43619,-10.51034 5.04375,3.22432 11.32129,6.97278 14.43619,10.51034 z" class="muscle_tone" id="path1164" sodipodi:nodetypes="ccc"/><path d="m 249.55985,274.96762 c 2.66686,-3.79298 3.9516,-9.15827 9.43175,-12.85696 -5.04375,3.22432 -7.24493,9.01004 -9.43175,12.85696 z" class="muscle_tone" id="path1166" sodipodi:nodetypes="ccc"/><path d="m 315.32611,381.50405 c -4.37092,10.93375 -5.99229,14.67189 -8.99626,24.269 4.27593,-11.17721 5.6182,-14.98126 8.99626,-24.269 z" class="muscle_tone" id="path1168" sodipodi:nodetypes="ccc"/><path d="m 260.92015,408.4457 c -3.30842,-11.56625 -4.55508,-15.20726 -7.9653,-24.0789 5.24468,9.91654 5.36849,14.36664 7.9653,24.0789 z" class="muscle_tone" id="path1170" sodipodi:nodetypes="ccc"/><path d="m 322.21004,418.07002 c -4.37092,10.93375 -6.6994,16.08611 -9.70337,25.68322 4.27593,-11.17721 6.32531,-16.39548 9.70337,-25.68322 z" class="muscle_tone" id="path1172" sodipodi:nodetypes="ccc"/><path d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" class="muscle_tone" id="path1174" sodipodi:nodetypes="ccc"/><path d="m 325.9149,310.57121 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" class="muscle_tone" id="path1176" sodipodi:nodetypes="ccc"/><path d="m 254.14485,322.53089 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" class="muscle_tone" id="path1178" sodipodi:nodetypes="ccc"/><path d="m 361.02638,237.18777 c -0.94326,-8.05772 -0.78056,-23.30289 -4.75812,-32.08391 2.09688,6.60791 3.01744,21.31058 4.75812,32.08391 z" class="shadow" id="path1180" sodipodi:nodetypes="ccc"/><path d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" class="shadow belly_details" id="path1454" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="cccccc" id="path1459" class="muscle_tone belly_details" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z"/></svg></html>' >> \ No newline at end of file +<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path sodipodi:nodetypes="ccccccccccscccccccsccccccc" id="path1150" class="shadow torso" d="m 246.30911,231.06259 c -8.99453,20.02062 -2.7168,39.82817 6.59033,56.00881 -1.53985,11.7306 -1.87414,26.85685 1.00056,35.50213 -11.85675,21.45408 -15.97966,23.47896 -17.84706,43.62647 -1.27191,10.1573 -2.73211,20.53718 -6.00882,40.87059 2.61719,20.31584 18.31529,25.98218 33.42233,33.28968 14.2695,10.10615 21.87131,20.64462 23.13315,21.60879 3.60245,2.72059 6.88662,0.53559 7.11408,-0.30205 l 1.02256,-0.0126 c 0.0456,0.48907 6.30075,4.01813 11.35624,0.16606 -0.0537,0.63231 -0.0183,-18.66075 25.04236,-35.98144 10.0947,-6.97697 31.55074,-29.06522 47.76148,-35.09887 -8.70897,-20.77821 -12.44162,-28.09997 -19.58456,-39.49315 -2.78089,-8.8422 -20.01148,-25.04261 -20.57655,-24.78256 0.41299,-0.50348 -12.21859,-13.62863 -12.84375,-15.85983 2.68681,-6.22178 7.5538,-32.80103 8.07452,-32.87542 19.23508,-11.98202 24.99543,-31.81666 27.02144,-41.33057 -2.30037,-2.67962 -2.96371,-10.70751 -3.09438,-13.44272 -4.53544,-10.77188 -0.70367,-15.76194 -3.00347,-26.29186 -2.20292,-10.08636 3.79175,-17.91215 3.88445,-17.91215 -15.5475,-3.91931 -28.08011,3.12735 -28.3123,-32.42233 l -33.94646,3.49567 c -0.60044,11.74636 4.52731,21.84761 4.14186,32.15688 -5.80032,4.30093 -13.259,4.44692 -29.51965,8.86728 -10.04843,13.94881 -16.38873,17.64107 -24.82836,40.21314 z"/><path d="m 346.40754,176.85218 c -7.39171,-1.56131 -16.05125,-2.2441 -15.85743,-30.61093 l -33.94646,3.49567 c -0.60023,11.74644 4.71192,22.22273 4.14186,32.15688 -3.83498,2.97182 -5.98014,3.47675 -13.82076,5.20414 -34.91738,8.73668 29.00804,37.23957 59.48279,-10.24576 z" id="path1510" sodipodi:nodetypes="cccccc" class="skin neck"/><path d="m 286.83636,187.18633 c -3.66048,0.80645 -9.84112,2.17312 -15.69027,3.64767 -8.65971,10.94361 -15.77697,17.65654 -24.83698,40.22861 v -2e-5 c -7.97663,19.22419 -2.76769,39.20032 6.84033,56.00881 -1.06764,11.32585 -1.52536,26.55789 1.00056,35.50213 C 242.77941,344.09706 238.25294,346.1 236.05294,366.2 c -1.1,10.1 -2.23235,20.37059 -6.00882,40.87059 1.79918,21.68192 24.06603,28.08577 33.55443,33.19683 14.43169,10.04215 15.75456,13.80608 22.99302,21.72969 2.40278,1.2769 6.48126,0.50828 7.11501,-0.33224 l 1.04511,-0.0119 c 1.31243,1.17872 7.86774,1.71281 11.33041,0.17649 1.25908,-5.51105 3.06465,-22.40272 25.53259,-37.02845 9.99479,-6.9207 28.66527,-25.38509 47.28163,-34.05687 -9.1,-20.7 -12.62279,-28.06765 -19.58456,-39.49706 -3.8841,-8.49646 -20.35009,-24.94863 -20.57655,-24.78256 0.17394,-0.53763 -12.86462,-13.70829 -12.93214,-15.85983 2.56898,-6.32141 6.07307,-31.48845 8.07452,-32.87542 17.10876,-11.85604 23.08362,-25.52016 27.05018,-41.16751 -0.3269,-2.17434 -0.47207,-3.26685 -0.65846,-5.74844 -1.66961,-10.3676 -2.47994,-23.531 -5.32957,-34.10874 0.025,-10.96207 3.83428,-17.95261 3.83428,-17.95261 -3.26688,-0.7913 -9.53184,-1.48469 -12.45487,-1.8114 -33.85358,35.49387 -77.52547,14.10408 -59.48279,10.24576 z" id="path1152" sodipodi:nodetypes="ccccccccccccccccccccccccc" class="skin torso"/><path d="m 317.3521,285.5361 c -7.46191,11.4761 -10.89652,37.14512 -11.1397,41.11412 2.81194,-18.56341 5.72671,-31.01778 11.1397,-41.11412 z" class="muscle_tone" id="path1156" sodipodi:nodetypes="ccc"/><path d="m 333.64545,368.51096 c -5.87092,10.37125 -20.05508,16.48024 -27.5903,38.1711 8.55718,-28.02096 20.05599,-25.82086 27.5903,-38.1711 z" class="muscle_tone" id="path1158" sodipodi:nodetypes="ccc"/><path d="m 261.07288,408.74028 c -7.12092,-11.56625 -12.80508,-15.26976 -19.3403,-19.6414 12.24468,7.16654 14.68099,9.92914 19.3403,19.6414 z" class="muscle_tone" id="path1160" sodipodi:nodetypes="ccc"/><path d="m 333.87477,277.49678 c -0.45714,-1.47279 -0.073,-7.87231 -6.56962,-12.18972 4.93326,3.3569 6.04008,6.0889 6.56962,12.18972 z" class="muscle_tone" id="path1162" sodipodi:nodetypes="ccc"/><path d="m 303.24363,269.89121 c -3.70542,-3.35104 -8.95604,-6.81165 -14.43619,-10.51034 5.04375,3.22432 11.32129,6.97278 14.43619,10.51034 z" class="muscle_tone" id="path1164" sodipodi:nodetypes="ccc"/><path d="m 249.55985,274.96762 c 2.66686,-3.79298 3.9516,-9.15827 9.43175,-12.85696 -5.04375,3.22432 -7.24493,9.01004 -9.43175,12.85696 z" class="muscle_tone" id="path1166" sodipodi:nodetypes="ccc"/><path d="m 315.32611,381.50405 c -4.37092,10.93375 -5.99229,14.67189 -8.99626,24.269 4.27593,-11.17721 5.6182,-14.98126 8.99626,-24.269 z" class="muscle_tone" id="path1168" sodipodi:nodetypes="ccc"/><path d="m 260.92015,408.4457 c -3.30842,-11.56625 -4.55508,-15.20726 -7.9653,-24.0789 5.24468,9.91654 5.36849,14.36664 7.9653,24.0789 z" class="muscle_tone" id="path1170" sodipodi:nodetypes="ccc"/><path d="m 322.21004,418.07002 c -4.37092,10.93375 -6.6994,16.08611 -9.70337,25.68322 4.27593,-11.17721 6.32531,-16.39548 9.70337,-25.68322 z" class="muscle_tone" id="path1172" sodipodi:nodetypes="ccc"/><path d="m 263.39362,428.05063 c 4.93342,11.09 6.0119,9.64861 9.01587,19.24572 -4.27593,-11.17721 -5.63781,-9.95798 -9.01587,-19.24572 z" class="muscle_tone" id="path1174" sodipodi:nodetypes="ccc"/><path d="m 325.9149,310.57121 c -1.2483,3.29428 -1.95746,4.93254 -3.52279,9.12572 0.95249,-4.27451 1.65215,-6.1206 3.52279,-9.12572 z" class="muscle_tone" id="path1176" sodipodi:nodetypes="ccc"/><path d="m 254.14485,322.53089 c 1.2483,3.29428 0.64496,1.83879 2.21029,6.03197 -0.95249,-4.27451 -0.33965,-3.02685 -2.21029,-6.03197 z" class="muscle_tone" id="path1178" sodipodi:nodetypes="ccc"/><path d="m 276.99339,346.1357 c 0.48219,-2.95995 0.50103,-5.52426 -0.57274,-9.24552 l -0.0242,0.001 c -0.78458,4.82879 -0.38541,6.45786 0.59697,9.24433 z" class="shadow belly_details" id="path1454" sodipodi:nodetypes="ccccc"/><path sodipodi:nodetypes="cccccc" id="path1459" class="muscle_tone belly_details" d="m 276.42065,336.89018 c -2.33392,-7.76332 -1.51834,-23.53988 0.81606,-35.04811 -1.74332,-2.38988 -4.44237,-24.92087 -1.47199,-27.6049 -3.61369,4.2787 -0.75808,24.51323 1.47338,27.60765 -2.61353,11.47022 -3.33983,26.27713 -0.84168,35.04655 z"/><path sodipodi:nodetypes="ccc" id="path2543" class="shadow" d="m 334.35262,257.79054 c 18.3821,-10.6129 18.87632,-45.89411 23.20514,-48.39336 -5.22768,3.0182 -6.34343,38.65826 -23.20514,48.39336 z"/></svg></html>' >> \ No newline at end of file diff --git a/src/cheats/PCCheatMenu.tw b/src/cheats/PCCheatMenu.tw new file mode 100644 index 0000000000000000000000000000000000000000..951bcacd79954065453659e28e45aaad5cb66e1e --- /dev/null +++ b/src/cheats/PCCheatMenu.tw @@ -0,0 +1,46 @@ +:: PCCheatMenu [nobr] + +<<set $showEncyclopedia = 0, $nextButton = "Back", $nextLink = "PCCheatMenuCheatDatatypeCleanup">> + +''Surname'': <<textbox "$PC.surname" $PC.surname "PCCheatMenu">> +<br>''Boobs'': <<textbox "$PC.boobs" $PC.boobs "PCCheatMenu">> //0 - masculine chest (if title = 1) or flat chested (if title = 0)(WIP) 1 - feminine bust// +<<if $PC.boobs > 0>> + <br>''BoobsBonus'': <<textbox "$PC.boobsBonus" $PC.boobsBonus "PCCheatMenu">> //breast size -1 - C-cup -0.5 - D-cup 0 - DD-cup 1 - F-cup 2 - G-cup 3 - H-cup// + <br>''BoobsImplant'': <<textbox "$PC.boobsImplant" $PC.boobsImplant "PCCheatMenu">> //do you have breast implants 0 - no 1 - yes// +<</if>> +<br>''Skin'': <<textbox "$PC.skin" $PC.skin "PCCheatMenu">> +<br>''Genetic Skin'': <<textbox "$PC.origSkin" $PC.origSkin "PCCheatMenu">> +<br>''Race'': <<textbox "$PC.race" $PC.race "PCCheatMenu">> +<br>''Genetic Race'': <<textbox "$PC.origRace" $PC.origRace "PCCheatMenu">> +<br>''Eye Color'': <<textbox "$PC.eyeColor" $PC.eyeColor "PCCheatMenu">> +<br>''Genetic Eye Color'': <<textbox "$PC.origEye" $PC.origEye "PCCheatMenu">> +<br>''Hair Color'': <<textbox "$PC.hColor" $PC.hColor "PCCheatMenu">> +<br>''Genetic Hair Color'': <<textbox "$PC.origHColor" $PC.origHColor "PCCheatMenu">> +<br>''ButtSize'': <<textbox "$PC.butt" $PC.butt "PCCheatMenu">> //0 - normal 1 - big 2 - huge 3 - enormous// +<br>''ButtImplant'': <<textbox "$PC.buttImplant" $PC.buttImplant "PCCheatMenu">> //do you have butt implants 0 - no 1 - yes// +<br>''Dick'': <<textbox "$PC.dick" $PC.dick "PCCheatMenu">> +<br>''Vagina'': <<textbox "$PC.vagina" $PC.vagina "PCCheatMenu">> +<<if $PC.dick == 1>> + <br>''BallSize'': <<textbox "$PC.balls" $PC.balls "PCCheatMenu">> //0 - normal 1 - big 2 - huge// + <br>''BallsImplant'': <<textbox "$PC.ballsImplant" $PC.ballsImplant "PCCheatMenu">> //0 - normal 1 - large 2 - huge 3 - enormous 4 - monstrous// +<</if>> + +<br><br>__Age__ +<br>''ActualAge'': <<textbox "$PC.actualAge" $PC.actualAge "PCCheatMenu">> +<br>''PhysicalAge'': <<textbox "$PC.physicalAge" $PC.physicalAge "PCCheatMenu">> +<br>''VisualAge'': <<textbox "$PC.visualAge" $PC.visualAge "PCCheatMenu">> +<br>''OvaryAge'': <<textbox "$PC.ovaryAge" $PC.ovaryAge "PCCheatMenu">> +<br>''AgeImplant'': <<textbox "$PC.ageImplant" $PC.ageImplant "PCCheatMenu">> //0 - no surgery, 1 - age altering surgery// +<br>''PlayerAging'': <<textbox "$playerAging" $playerAging "PCCheatMenu">> //0 - no aging, 1 - no aging, but birthdays, 2 - aging// + +<<if $PC.vagina == 1>> + <<if $PC.preg >= 1>> + __pregnancy__ + <br>''Pregnancy length'': <<textbox "$PC.preg" $PC.preg "PCCheatMenu">> //How far along the your pregnancy is (pregMood kicks in at 24+ weeks) -2 infertile -1 contraceptives 0 not pregnant 1 - 42 pregnant 43+ giving birth//\ + <br>''Belly'': <<textbox "$PC.belly" $PC.belly "PCCheatMenu">> //how big your belly is in CCs (preg only). thresholds 100 - bloated 1500 - early pregnancy 5000 - obviously pregnant 10000 - very pregnant 15000 - full term 30000 - full term twins 45000 - full term triplets 60000 - full term quads 75000 - full term quints 90000 - full term sextuplets 105000 - full term septuplets 120000 - full term octuplets// + <br>''PregSource'': <<textbox "$PC.pregSource" $PC.pregSource "PCCheatMenu">> //who knocked you up 0 - unknown -1 - Societal Elite -2 - client -3 - former master -4 - male arc owner -5 - citizen -6 - self-impreg// + <<else>> + <br>''Contraception'': <<textbox "$PC.preg" $PC.preg "PCCheatMenu">> // 0 -fertile, -1 -contraceptives, -2 -infertile , 1+ -pregnant + <</if>> + <br>''PregMood'': <<textbox "$PC.pregMood" $PC.pregMood "PCCheatMenu">> //how you act when heavily pregnant. 0: no change 1: submissive and motherly 2: aggressive and dominant// +<</if>> diff --git a/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw b/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw new file mode 100644 index 0000000000000000000000000000000000000000..ddbf1141848e17946cbbe19192fb61576989e8bc --- /dev/null +++ b/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw @@ -0,0 +1,42 @@ +:: PCCheatMenuCheatDatatypeCleanup [nobr] + +<<set $nextButton = "Continue", $nextLink = "Manage Personal Affairs">> + +<<if $PC.preg >= 1>> + <<set $PC.preg = Number($PC.preg) || 0>> + <<set $PC.pregSource = Number($PC.pregSource) || 0>> + <<set $PC.pregMood = Number($PC.pregMood) || 0>> +<</if>> +<<set WombNormalizePreg($PC), $PC.pregWeek = $PC.preg>> +<<set $PC.belly = WombGetVolume($PC)>> +<<if $PC.boobs == 0>> + <<set $PC.boobsBonus = 0>> + <<set $PC.boobsImplant = 0>> +<<else>> + <<set $PC.boobsBonus = Number($PC.boobsBonus) || 0>> + <<set $PC.boobsImplant = Number($PC.boobsImplant) || 0>> +<</if>> +<<set $PC.butt = Number($PC.butt) || 0>> +<<if $PC.butt == 0>> + <<set $PC.buttImplant = 0>> +<<else>> + <<set $PC.buttImplant = Math.clamp($PC.buttImplant, 0, 1)>> +<</if>> +<<if $PC.dick == 1>> + <<set $PC.balls = Number($PC.balls) || 0>> + <<set $PC.ballsImplant = Number($PC.ballsImplant) || 0>> +<<else>> + <<set $PC.balls = 0>> + <<set $PC.ballsImplant = 0>> +<</if>> + +<<set $PC.dick = Math.clamp($PC.dick, 0, 1)>> +<<set $PC.vagina = Math.clamp($PC.vagina, 0, 1)>> + +<<set $PC.ageImplant = Number($PC.ageImplant) || 0>> +<<set $playerAging = Number($playerAging) || 0>> +<<set $PC.ageImplant = Number($PC.ageImplant) || 0>> +<<set $PC.physicalAge = Number($PC.physicalAge) || 14>> +<<set $PC.visualAge = Number($PC.visualAge) || 14>> +<<set $PC.actualAge = Number($PC.actualAge) || 14>> +<<set $PC.ovaryAge = Number($PC.ovaryAge) || 14>> \ No newline at end of file diff --git a/src/cheats/mod_EditArcologyCheat.tw b/src/cheats/mod_EditArcologyCheat.tw index a207da4fe4656d4e8c60c86876ca601552f766f8..56933e38cabc2ef84db48aaf57717eb3c4fd4bb5 100644 --- a/src/cheats/mod_EditArcologyCheat.tw +++ b/src/cheats/mod_EditArcologyCheat.tw @@ -425,56 +425,8 @@ __Player Character__ <</if>> <br><br>__Arcologies:__ -<br> __''$arcologies[0].name''__ is your arcology. +<br> __'' $arcologies[0].name''__ is your arcology. <br>You own: ''$arcologies[0].ownership%'' of the arcology <<textbox "$arcologies[0].ownership" $arcologies[0].ownership>> <br>Other minority ownership: ''$arcologies[0].minority%'' <<textbox "$arcologies[0].minority" $arcologies[0].minority>> <br>$arcologies[0].name's GSP is @@.yellowgreen;<<print cashFormat(Math.trunc(0.1*$arcologies[0].prosperity))>>m@@. -<<if $arcologies.length > 1>> - <<set _neighbors = $arcologies.length-1>> - <br><br>Your arcology has _neighbors - <<if _neighbors == 1>>neighbor<<else>>neighbors<</if>>. -<<else>> - Your arcology has no neighbors. -<</if>> - -<<if $arcologies.length <= 8>> -<<link "Add neighbor">> - <<set _seed = ["north", "northeast", "east", "southeast", "south", "southwest", "west", "northwest"]>> - <<for _eca = 0; _eca < $arcologies.length; _eca++>> - <<set _seed.delete($arcologies[_eca].direction)>> /* remove directions already in use */ - <</for>> - <<set _govtypes = ["elected officials", "a committee", "an oligarchy", "an individual", "a corporation", "direct democracy"]>> - <<set $activeArcology = {name: "Arcology X-", direction: _seed.random(), government: _govtypes.random(), honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor:0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", FSRepopulationFocus: "unset", FSRestart: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0}>> - - <<if $arcologies.length < 4>> /* X-4 is reserved for player's arcology, so X-1 is available */ - <<set $activeArcology.name += ($arcologies.length)>> - <<else>> - <<set $activeArcology.name += ($arcologies.length+1)>> - <</if>> - - <<set $activeArcology.prosperity += random(-20,20)>> - <<set $activeArcology.ownership += random(-10,0)>> - <<set $activeArcology.minority += random(-5,5)>> - <<set $arcologies.push($activeArcology)>> - - <<goto "MOD_Edit Arcology Cheat">> -<</link>> -<</if>> - -<br> -<<set $averageProsperity = 0, _seed = 0>> -<<for _eca = 0; _eca < $arcologies.length; _eca++>> - <<set $averageProsperity += $arcologies[_eca].prosperity, _seed++>> -<</for>> -<<set $averageProsperity = $averageProsperity/_seed>> - -<<for $i = 0; $i < $arcologies.length; $i++>> - <<if $arcologies[$i].direction != 0>> - <<include "Neighbor Description">> /* uses $arcologies[$i] */ - <</if>> - - <<if $i != 0>> - <<print "[[Remove neighbor|MOD_Edit Arcology Cheat][$arcologies.deleteAt(" + $i + ")]]">> - <</if>> -<</for>> diff --git a/src/cheats/mod_EditFSCheat.tw b/src/cheats/mod_EditFSCheat.tw index 541aa1b204f56c7b9da29ccebfddce107b5f5842..33b7592888a3323f7aea603cf344bf92054ae60c 100644 --- a/src/cheats/mod_EditFSCheat.tw +++ b/src/cheats/mod_EditFSCheat.tw @@ -532,7 +532,7 @@ <<radiobutton "$arcologies[0].FSEgyptianRevivalistLaw" 0>> 0 (Not passed.) | <<radiobutton "$arcologies[0].FSEgyptianRevivalistLaw" 1>> 1 (Passed.) - <br>[[Apply and reset other Revivalisms|MOD_Edit FS Cheat][$arcologies[0].FSRomanRevivalist = "unset",$arcologies[0].FSRomanRevivalistDecoration = 20,$arcologies[0].FSRomanRevivalistLaw = 0,$arcologies[0].FSAztecRevivalist = "unset",$arcologies[0].FSAztecRevivalistDecoration = 20,$arcologies[0].FSAztecRevivalistLaw = 0,$arcologies[0].FSEdoRevivalistDecoration = 20,$arcologies[0].FSEdoRevivalistLaw = 0,$arcologies[0].FSArabianRevivalist = "unset",$arcologies[0].FSArabianRevivalistDecoration = 20,$arcologies[0].FSArabianRevivalistLaw = 0,$arcologies[0].FSChineseRevivalist = "unset",$arcologies[0].FSChineseRevivalistDecoration = 20,$arcologies[0].FSChineseRevivalistLaw = 0]] + <br>[[Apply and reset other Revivalisms|MOD_Edit FS Cheat][$arcologies[0].FSRomanRevivalist = "unset",$arcologies[0].FSRomanRevivalistDecoration = 20,$arcologies[0].FSRomanRevivalistLaw = 0,$arcologies[0].FSAztecRevivalist = "unset",$arcologies[0].FSAztecRevivalistDecoration = 20,$arcologies[0].FSAztecRevivalistLaw = 0,$arcologies[0].FSEdoRevivalistDecoration = 20,$arcologies[0].FSEdoRevivalistLaw = 0,$arcologies[0].FSArabianRevivalist = "unset",$arcologies[0].FSArabianRevivalistDecoration = 20,$arcologies[0].FSArabianRevivalistLaw = 0,$arcologies[0].FSChineseRevivalist = "unset",$arcologies[0].FSChineseRevivalistDecoration = 20,$arcologies[0].FSChineseRevivalistLaw = 0,$arcologies[0].FSEgyptianRevivalistIncestPolicy = 0]] <br><br> diff --git a/src/cheats/mod_EditNeighborArcologyCheat.tw b/src/cheats/mod_EditNeighborArcologyCheat.tw new file mode 100644 index 0000000000000000000000000000000000000000..ce9b21bd67f9755cc6cd3f5e0d5cdd6dcde4b7ec --- /dev/null +++ b/src/cheats/mod_EditNeighborArcologyCheat.tw @@ -0,0 +1,58 @@ +:: MOD_Edit Neighbor Arcology Cheat [nobr] + +<<set $nextButton = "Continue", $nextLink = "MOD_Edit Neighbor Arcology Cheat Datatype Cleanup">> + +<<if $arcologies.length > 1>> + <<set _neighbors = $arcologies.length-1>> + <br><br>Your arcology has _neighbors + <<if _neighbors == 1>>neighbor<<else>>neighbors<</if>>. +<<else>> + Your arcology has no neighbors. +<</if>> + +<<if $arcologies.length <= 8>> +<<link "Add neighbor">> + <<set _seed = ["north", "northeast", "east", "southeast", "south", "southwest", "west", "northwest"]>> + <<for _eca = 0; _eca < $arcologies.length; _eca++>> + <<set _seed.delete($arcologies[_eca].direction)>> /* remove directions already in use */ + <</for>> + <<set _govtypes = ["elected officials", "a committee", "an oligarchy", "an individual", "a corporation", "direct democracy"]>> + <<set $activeArcology = {name: "Arcology X-", direction: _seed.random(), government: _govtypes.random(), honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor:0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", FSRepopulationFocus: "unset", FSRestart: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0}>> + + <<if $arcologies.length < 4>> /* X-4 is reserved for player's arcology, so X-1 is available */ + <<set $activeArcology.name += ($arcologies.length)>> + <<else>> + <<set $activeArcology.name += ($arcologies.length+1)>> + <</if>> + + <<set $activeArcology.prosperity += random(-20,20)>> + <<set $activeArcology.ownership += random(-10,0)>> + <<set $activeArcology.minority += random(-5,5)>> + <<set $arcologies.push($activeArcology)>> + + <<goto "MOD_Edit Neighbor Arcology Cheat">> +<</link>> +<</if>> + +<br> +<<set $averageProsperity = 0, _seed = 0>> +<<for _eca = 0; _eca < $arcologies.length; _eca++>> + <<set $averageProsperity += $arcologies[_eca].prosperity, _seed++>> +<</for>> +<<set $averageProsperity = $averageProsperity/_seed>> + +<<for $i = 1; $i < $arcologies.length; $i++>> + <<if $arcologies[$i].direction != 0>> + <<include "Neighbor Description">> /* uses $arcologies[$i] */ + <</if>> + + <br><br> + + <<set _span = "arc"+$i>> + + <<print "<span id=\"" + _span + "\"><<link \"Cheat Edit Arcology " + $i + " (" + $arcologies[$i].name + ")\">><<replace #arc" + $i + ">><<EditNeighborCheat " + $i + ">><</replace>><</link>></span>">> | + + <<if $i != 0>> + <<print "[[Remove neighbor|MOD_Edit Neighbor Arcology Cheat][$arcologies.deleteAt(" + $i + ")]]">> + <</if>> +<</for>> diff --git a/src/cheats/mod_EditNeighborArcologyCheatDatatypeCleanup.tw b/src/cheats/mod_EditNeighborArcologyCheatDatatypeCleanup.tw new file mode 100644 index 0000000000000000000000000000000000000000..ddb116c035ebc063902767aa2464588ce2dec13f --- /dev/null +++ b/src/cheats/mod_EditNeighborArcologyCheatDatatypeCleanup.tw @@ -0,0 +1,112 @@ +:: MOD_Edit Neighbor Arcology Cheat Datatype Cleanup [nobr] + +<<set $nextButton = "Continue", $nextLink = "Main">> + +<<set _l = $arcologies.length>> +<<for _i = 1; _i < _l; _i++>> + <<set $arcologies[_i].honeymoon = Number($arcologies[_i].honeymoon) || 0>> + <<set $arcologies[_i].prosperity = Number($arcologies[_i].prosperity) || 0>> + <<set $arcologies[_i].ownership = Number($arcologies[_i].ownership) || 0>> + <<set $arcologies[_i].minority = Number($arcologies[_i].minority) || 0>> + <<set $arcologies[_i].PCminority = Number($arcologies[_i].PCminority) || 0>> + <<set $arcologies[_i].demandFactor = Number($arcologies[_i].demandFactor) || 0>> + <<if $arcologies[_i].FSSupremacist != "unset">> + <<set $arcologies[_i].FSSupremacist = Number($arcologies[_i].FSSupremacist) || 0>> + <</if>> + <<if $arcologies[_i].FSSubjugationist != "unset">> + <<set $arcologies[_i].FSSubjugationist = Number($arcologies[_i].FSSubjugationist) || 0>> + <</if>> + <<if $arcologies[_i].FSGenderRadicalist != "unset">> + <<set $arcologies[_i].FSGenderRadicalist = Number($arcologies[_i].FSGenderRadicalist) || 0>> + <<set $arcologies[_i].FSGenderFundamentalist = "unset">> + <</if>> + <<if $arcologies[_i].FSGenderFundamentalist != "unset">> + <<set $arcologies[_i].FSGenderFundamentalist = Number($arcologies[_i].FSGenderFundamentalist) || 0>> + <<set $arcologies[_i].FSGenderRadicalist = "unset">> + <</if>> + <<if $arcologies[_i].FSPaternalist != "unset">> + <<set $arcologies[_i].FSPaternalist = Number($arcologies[_i].FSPaternalist) || 0>> + <<set $arcologies[_i].FSDegradationist = "unset">> + <</if>> + <<if $arcologies[_i].FSDegradationist != "unset">> + <<set $arcologies[_i].FSDegradationist = Number($arcologies[_i].FSDegradationist) || 0>> + <<set $arcologies[_i].FSPaternalist = "unset">> + <</if>> + <<if $arcologies[_i].FSBodyPurist != "unset">> + <<set $arcologies[_i].FSBodyPurist = Number($arcologies[_i].FSBodyPurist) || 0>> + <<set $arcologies[_i].FSTransformationFetishist = "unset">> + <</if>> + <<if $arcologies[_i].FSTransformationFetishist != "unset">> + <<set $arcologies[_i].FSTransformationFetishist = Number($arcologies[_i].FSTransformationFetishist) || 0>> + <<set $arcologies[_i].FSBodyPurist = "unset">> + <</if>> + <<if $arcologies[_i].FSYouthPreferentialist != "unset">> + <<set $arcologies[_i].FSYouthPreferentialist = Number($arcologies[_i].FSYouthPreferentialist) || 0>> + <<set $arcologies[_i].FSMaturityPreferentialist = "unset">> + <</if>> + <<if $arcologies[_i].FSMaturityPreferentialist != "unset">> + <<set $arcologies[_i].FSMaturityPreferentialist = Number($arcologies[_i].FSMaturityPreferentialist) || 0>> + <<set $arcologies[_i].FSYouthPreferentialist = "unset">> + <</if>> + <<if $arcologies[_i].FSSlimnessEnthusiast != "unset">> + <<set $arcologies[_i].FSSlimnessEnthusiast = Number($arcologies[_i].FSSlimnessEnthusiast) || 0>> + <<set $arcologies[_i].FSAssetExpansionist = "unset">> + <</if>> + <<if $arcologies[_i].FSAssetExpansionist != "unset">> + <<set $arcologies[_i].FSAssetExpansionist = Number($arcologies[_i].FSAssetExpansionist) || 0>> + <<set $arcologies[_i].FSSlimnessEnthusiast = "unset">> + <</if>> + <<if $arcologies[_i].FSPastoralist != "unset">> + <<set $arcologies[_i].FSPastoralist = Number($arcologies[_i].FSPastoralist) || 0>> + <</if>> + <<if $arcologies[_i].FSPhysicalIdealist != "unset">> + <<set $arcologies[_i].FSPhysicalIdealist = Number($arcologies[_i].FSPhysicalIdealist) || 0>> + <</if>> + <<if $arcologies[_i].FSChattelReligionist != "unset">> + <<set $arcologies[_i].FSChattelReligionist = Number($arcologies[_i].FSChattelReligionist) || 0>> + <</if>> + <<if $arcologies[_i].FSRomanRevivalist != "unset">> + <<set $arcologies[_i].FSRomanRevivalist = Number($arcologies[_i].FSRomanRevivalist) || 0>> + <<set $arcologies[_i].FSArabianRevivalist = $arcologies[_i].FSAztecRevivalist = $arcologies[_i].FSChineseRevivalist = $arcologies[_i].FSEdoRevivalist = $arcologies[_i].FSEgyptianRevivalist = "unset">> + <</if>> + <<if $arcologies[_i].FSAztecRevivalist != "unset">> + <<set $arcologies[_i].FSAztecRevivalist = Number($arcologies[_i].FSAztecRevivalist) || 0>> + <<set $arcologies[_i].FSArabianRevivalist = $arcologies[_i].FSChineseRevivalist = $arcologies[_i].FSEdoRevivalist = $arcologies[_i].FSEgyptianRevivalist = $arcologies[_i].FSRomanRevivalist = "unset">> + <</if>> + <<if $arcologies[_i].FSEgyptianRevivalist != "unset">> + <<set $arcologies[_i].FSEgyptianRevivalist = Number($arcologies[_i].FSEgyptianRevivalist) || 0>> + <<set $arcologies[_i].FSArabianRevivalist = $arcologies[_i].FSAztecRevivalist = $arcologies[_i].FSChineseRevivalist = $arcologies[_i].FSEdoRevivalist = $arcologies[_i].FSRomanRevivalist = "unset">> + <</if>> + <<if $arcologies[_i].FSEdoRevivalist != "unset">> + <<set $arcologies[_i].FSEdoRevivalist = Number($arcologies[_i].FSEdoRevivalist) || 0>> + <<set $arcologies[_i].FSArabianRevivalist = $arcologies[_i].FSAztecRevivalist = $arcologies[_i].FSChineseRevivalist = $arcologies[_i].FSEgyptianRevivalist = $arcologies[_i].FSRomanRevivalist = "unset">> + <</if>> + <<if $arcologies[_i].FSArabianRevivalist != "unset">> + <<set $arcologies[_i].FSArabianRevivalist = Number($arcologies[_i].FSArabianRevivalist) || 0>> + <<set $arcologies[_i].FSAztecRevivalist = $arcologies[_i].FSChineseRevivalist = $arcologies[_i].FSEdoRevivalist = $arcologies[_i].FSEgyptianRevivalist = $arcologies[_i].FSRomanRevivalist = "unset">> + <</if>> + <<if $arcologies[_i].FSChineseRevivalist != "unset">> + <<set $arcologies[_i].FSChineseRevivalist = Number($arcologies[_i].FSChineseRevivalist) || 0>> + <<set $arcologies[_i].FSArabianRevivalist = $arcologies[_i].FSAztecRevivalist = $arcologies[_i].FSEdoRevivalist = $arcologies[_i].FSEgyptianRevivalist = $arcologies[_i].FSRomanRevivalist = "unset">> + <</if>> + <<if $arcologies[_i].FSNull != "unset">> + <<set $arcologies[_i].FSNull = Number($arcologies[_i].FSNull) || 0>> + <</if>> + <<if $arcologies[_i].FSRepopulationFocus != "unset">> + <<set $arcologies[_i].FSRepopulationFocus = Number($arcologies[_i].FSRepopulationFocus) || 0>> + <<set $arcologies[_i].FSRestart = "unset">> + <</if>> + <<if $arcologies[_i].FSRestart != "unset">> + <<set $arcologies[_i].FSRestart = Number($arcologies[_i].FSRestart) || 0>> + <<set $arcologies[_i].FSRepopulationFocus = "unset">> + <</if>> + <<set $arcologies[_i].embargo = Number($arcologies[_i].embargo) || 0>> + <<set $arcologies[_i].embargoTarget = Number($arcologies[_i].embargoTarget) || 0>> + <<set $arcologies[_i].influenceTarget = Number($arcologies[_i].influenceTarget) || 0>> + <<set $arcologies[_i].influenceBonus = Number($arcologies[_i].influenceBonus) || 0>> + <<set $arcologies[_i].rival = Number($arcologies[_i].rival) | 0>> +<</for>> + +You have CHEATED your way to influencing the neighboring arcologies. They have been unscrupulously directed according to your CHEAT whims. + +<br><br>The Eldritch horrors feast upon your CHEATING soul and look forward to more future dealings with you. The repercussions may be far reaching and the consquences dire. \ No newline at end of file diff --git a/src/cheats/mod_EditNeighborArcologyCheatWidget.tw b/src/cheats/mod_EditNeighborArcologyCheatWidget.tw new file mode 100644 index 0000000000000000000000000000000000000000..34df6f4138f7e8a950fbe3d6d6ed061c66208907 --- /dev/null +++ b/src/cheats/mod_EditNeighborArcologyCheatWidget.tw @@ -0,0 +1,240 @@ +:: MOD_Edit Neighbor Arcology Cheat Widget [widget nobr] + +/% + Call as <<EditNeighborCheat>> +%/ +<<widget "EditNeighborCheat">> + <<set _i = $args[0]>> + + ''Arcology _i name:'' $arcologies[_i].name + <br><<textbox "$arcologies[_i].name" $arcologies[_i].name "MOD_Edit Neighbor Arcology Cheat">> + + <br> + + '' $arcologies[_i].name direction:'' $arcologies[_i].direction + <br><<radiobutton "$arcologies[_i].direction" "north">> north + | <<radiobutton "$arcologies[_i].direction" "northeast">> northeast + | <<radiobutton "$arcologies[_i].direction" "east">> east + | <<radiobutton "$arcologies[_i].direction" "southeast">> southeast + | <<radiobutton "$arcologies[_i].direction" "south">> south + | <<radiobutton "$arcologies[_i].direction" "southwest">> southeast + | <<radiobutton "$arcologies[_i].direction" "west">> west + | <<radiobutton "$arcologies[_i].direction" "northwest">> northwest + + <br> + + '' $arcologies[_i].name government:'' $arcologies[_i].government + <br><<radiobutton "$arcologies[_i].government" "elected officials">> elected officials + | <<radiobutton "$arcologies[_i].government" "a committee">> a committee + | <<radiobutton "$arcologies[_i].government" "an oligarchy">> an oligarchy + | <<radiobutton "$arcologies[_i].government" "an individual">> an individual + | <<radiobutton "$arcologies[_i].government" "a corporation">> a corporation + | <<radiobutton "$arcologies[_i].government" "direct democracy">> direct democracy + | <<radiobutton "$arcologies[_i].government" "your trustees">> your trustees + | <<radiobutton "$arcologies[_i].government" "your agent">> your agent + + <br> + + '' $arcologies[_i].name honeymoon:'' $arcologies[_i].honeymoon + <br><<textbox "$arcologies[_i].honeymoon" $arcologies[_i].honeymoon>> + + <br> + + '' $arcologies[_i].name prosperity:'' $arcologies[_i].prosperity + <br><<textbox "$arcologies[_i].prosperity" $arcologies[_i].prosperity>> + + <br> + + '' $arcologies[_i].name ownership:'' $arcologies[_i].ownership + <br><<textbox "$arcologies[_i].ownership" $arcologies[_i].ownership>> + + <br> + + '' $arcologies[_i].name minority ownership:'' $arcologies[_i].minority + <br><<textbox "$arcologies[_i].minority" $arcologies[_i].minority>> + + <br> + + '' $arcologies[_i].name player ownership:'' $arcologies[_i].PCminority + <br><<textbox "$arcologies[_i].PCminority" $arcologies[_i].PCminority>> + + <br> + '' $arcologies[_i].name demand factor:'' $arcologies[_i].demandFactor + <br><<textbox "$arcologies[_i].demandFactor" $arcologies[_i].demandFactor>> + + <br> + '' $arcologies[_i].name Supremacist (unset or 1-100):'' $arcologies[_i].FSSupremacist + <br><<textbox "$arcologies[_i].FSSupremacist" $arcologies[_i].FSSupremacist>> + + <br> + '' $arcologies[_i].name Supremacist race:'' $arcologies[_i].FSSupremacistRace + <br><<radiobutton "$arcologies[_i].FSSupremacistRace" white>> White | + <<radiobutton "$arcologies[_i].FSSupremacistRace" asian>> Asian | + <<radiobutton "$arcologies[_i].FSSupremacistRace" latina>> Latina | + <<radiobutton "$arcologies[_i].FSSupremacistRace" middle eastern>> Middle Eastern | + <<radiobutton "$arcologies[_i].FSSupremacistRace" black>> Black | + <<radiobutton "$arcologies[_i].FSSupremacistRace" indo-aryan>> Indo-Aryan | + <<radiobutton "$arcologies[_i].FSSupremacistRace" amerindian>> Amerindian | + <<radiobutton "$arcologies[_i].FSSupremacistRace" pacific islander>> Pacific Islander | + <<radiobutton "$arcologies[_i].FSSupremacistRace" southern european>> Southern European | + <<radiobutton "$arcologies[_i].FSSupremacistRace" semitic>> Semitic | + <<radiobutton "$arcologies[_i].FSSupremacistRace" mixed race>> Mixed Race + + <br> + + '' $arcologies[_i].name Subjugationist (unset or 1-100):'' $arcologies[_i].FSSubjugationist + <br><<textbox "$arcologies[_i].FSSubjugationist" $arcologies[_i].FSSubjugationist>> + + <br> + + '' $arcologies[_i].name Subjugationist race:'' $arcologies[_i].FSSubjugationistRace + <br><<radiobutton "$arcologies[_i].FSSubjugationistRace" white>> White | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" asian>> Asian | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" latina>> Latina | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" middle eastern>> Middle Eastern | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" black>> Black | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" indo-aryan>> Indo-Aryan | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" amerindian>> Amerindian | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" pacific islander>> Pacific Islander | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" southern european>> Southern European | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" semitic>> Semitic | + <<radiobutton "$arcologies[_i].FSSubjugationistRace" mixed race>> Mixed Race + + <br> + + '' $arcologies[_i].name Gender Radicalist (unset or 1-100):'' $arcologies[_i].FSGenderRadicalist + <br><<textbox "$arcologies[_i].FSGenderRadicalist" $arcologies[_i].FSGenderRadicalist>> + + <br> + + '' $arcologies[_i].name Gender Fundamentalist (unset or 1-100):'' $arcologies[_i].FSGenderFundamentalist + <br><<textbox "$arcologies[_i].FSGenderFundamentalist" $arcologies[_i].FSGenderFundamentalist>> + + <br> + + '' $arcologies[_i].name Paternalist (unset or 1-100):'' $arcologies[_i].FSPaternalist + <br><<textbox "$arcologies[_i].FSPaternalist" $arcologies[_i].FSPaternalist>> + + <br> + + '' $arcologies[_i].name Degradationist (unset or 1-100):'' $arcologies[_i].FSDegradationist + <br><<textbox "$arcologies[_i].FSDegradationist" $arcologies[_i].FSDegradationist>> + + <br> + + '' $arcologies[_i].name Body Purist (unset or 1-100):'' $arcologies[_i].FSBodyPurist + <br><<textbox "$arcologies[_i].FSBodyPurist" $arcologies[_i].FSBodyPurist>> + + <br> + + '' $arcologies[_i].name Transformation Fetishist (unset or 1-100):'' $arcologies[_i].FSTransformationFetishist + <br><<textbox "$arcologies[_i].FSTransformationFetishist" $arcologies[_i].FSTransformationFetishist>> + + <br> + + '' $arcologies[_i].name Youth Preferentialist (unset or 1-100):'' $arcologies[_i].FSYouthPreferentialist + <br><<textbox "$arcologies[_i].FSYouthPreferentialist" $arcologies[_i].FSYouthPreferentialist>> + + <br> + + '' $arcologies[_i].name Maturity Preferentialist (unset or 1-100):'' $arcologies[_i].FSMaturityPreferentialist + <br><<textbox "$arcologies[_i].FSMaturityPreferentialist" $arcologies[_i].FSMaturityPreferentialist>> + + <br> + + '' $arcologies[_i].name Slimness Enthusiast (unset or 1-100):'' $arcologies[_i].FSSlimnessEnthusiast + <br><<textbox "$arcologies[_i].FSSlimnessEnthusiast" $arcologies[_i].FSSlimnessEnthusiast>> + + <br> + + '' $arcologies[_i].name Asset Expansionist (unset or 1-100):'' $arcologies[_i].FSAssetExpansionist + <br><<textbox "$arcologies[_i].FSAssetExpansionist" $arcologies[_i].FSAssetExpansionist>> + + <br> + + '' $arcologies[_i].name Pastoralist (unset or 1-100):'' $arcologies[_i].FSPastoralist + <br><<textbox "$arcologies[_i].FSPastoralist" $arcologies[_i].FSPastoralist>> + + <br> + + '' $arcologies[_i].name Physical Idealist (unset or 1-100):'' $arcologies[_i].FSPhysicalIdealist + <br><<textbox "$arcologies[_i].FSPhysicalIdealist" $arcologies[_i].FSPhysicalIdealist>> + + <br> + + '' $arcologies[_i].name Chattel Religionist (unset or 1-100):'' $arcologies[_i].FSChattelReligionist + <br><<textbox "$arcologies[_i].FSChattelReligionist" $arcologies[_i].FSChattelReligionist>> + + <br> + + '' $arcologies[_i].name Roman Revivalist (unset or 1-100):'' $arcologies[_i].FSRomanRevivalist + <br><<textbox "$arcologies[_i].FSRomanRevivalist" $arcologies[_i].FSRomanRevivalist>> + + <br> + + '' $arcologies[_i].name Aztec Revivalist (unset or 1-100):'' $arcologies[_i].FSAztecRevivalist + <br><<textbox "$arcologies[_i].FSAztecRevivalist" $arcologies[_i].FSAztecRevivalist>> + + <br> + + '' $arcologies[_i].name Egyptian Revivalist (unset or 1-100):'' $arcologies[_i].FSEgyptianRevivalist + <br><<textbox "$arcologies[_i].FSEgyptianRevivalist" $arcologies[_i].FSEgyptianRevivalist>> + + <br> + + '' $arcologies[_i].name Edo Revivalist (unset or 1-100):'' $arcologies[_i].FSEdoRevivalist + <br><<textbox "$arcologies[_i].FSEdoRevivalist" $arcologies[_i].FSEdoRevivalist>> + + <br> + + '' $arcologies[_i].name Arabian Revivalist (unset or 1-100):'' $arcologies[_i].FSArabianRevivalist + <br><<textbox "$arcologies[_i].FSArabianRevivalist" $arcologies[_i].FSArabianRevivalist>> + + <br> + + '' $arcologies[_i].name Chinese Revivalist (unset or 1-100):'' $arcologies[_i].FSChineseRevivalist + <br><<textbox "$arcologies[_i].FSChineseRevivalist" $arcologies[_i].FSChineseRevivalist>> + + <br> + + '' $arcologies[_i].name FSNull (unset or 1-100):'' $arcologies[_i].FSNull + <br><<textbox "$arcologies[_i].FSNull" $arcologies[_i].FSNull>> + + <br> + + '' $arcologies[_i].name Repopulation Focus (unset or 1-100):'' $arcologies[_i].FSRepopulationFocus + <br><<textbox "$arcologies[_i].FSRepopulationFocus" $arcologies[_i].FSRepopulationFocus>> + + <br> + + '' $arcologies[_i].name FSRestart (unset or 1-100):'' $arcologies[_i].FSRestart + <br><<textbox "$arcologies[_i].FSRestart" $arcologies[_i].FSRestart>> + + <br> + + '' $arcologies[_i].name embargo (1 to 3):'' $arcologies[_i].embargo + <br><<textbox "$arcologies[_i].embargo" $arcologies[_i].embargo>> + + <br> + + '' $arcologies[_i].name embargoTarget (0 to 7):'' $arcologies[_i].embargoTarget + <br><<textbox "$arcologies[_i].embargoTarget" $arcologies[_i].embargoTarget>> + + <br> + + '' $arcologies[_i].name influenceTarget:'' $arcologies[_i].influenceTarget + <br><<textbox "$arcologies[_i].influenceTarget" $arcologies[_i].influenceTarget>> + + <br> + + '' $arcologies[_i].name influenceBonus:'' $arcologies[_i].influenceBonus + <br><<textbox "$arcologies[_i].influenceBonus" $arcologies[_i].influenceBonus>> + + <br> + + '' $arcologies[_i].name rival (0 or 1):'' $arcologies[_i].rival + <br><<textbox "$arcologies[_i].rival" $arcologies[_i].rival>> + + <br> + +<</widget>> diff --git a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw index 4c046021e01fe0486d6be010fb50cb5fdd12b16f..2bb08c572ba9ff4dc492d52c3696ffa77f3401ac 100644 --- a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw +++ b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw @@ -66,10 +66,13 @@ <<set $tempSlave.vaginaLube = Number($tempSlave.vaginaLube) || 0>> <<set $tempSlave.pubertyAgeXX = Number($tempSlave.pubertyAgeXX) || 13>> <<set $tempSlave.preg = Number($tempSlave.preg) || 0>> +<<set $tempSlave.pregWeek = Number($tempSlave.pregWeek) || 0>> <<set $tempSlave.pregType = Number($tempSlave.pregType) || 0>> <<set $tempSlave.pregSource = Number($tempSlave.pregSource) || 0>> <<if $tempSlave.preg < 0>> <<set $tempSlave.pregKnown = 0>> +<<elseif $tempSlave.preg > 0>> + <<set $tempSlave.pregKnown = 1>> <</if>> <<set $tempSlave.dick = Number($tempSlave.dick) || 0>> <<set $tempSlave.clit = Number($tempSlave.clit) || 0>> diff --git a/src/cheats/mod_editSlaveCheatNew.tw b/src/cheats/mod_editSlaveCheatNew.tw index 63f281af6f6692f33ea312e2b6b985e22c089d58..76105b5f5248b929736e897466927be4f17202a9 100644 --- a/src/cheats/mod_editSlaveCheatNew.tw +++ b/src/cheats/mod_editSlaveCheatNew.tw @@ -1819,6 +1819,10 @@ @@.yellow;Sterile@@. <</if>> <<textbox "$tempSlave.preg" $tempSlave.preg>> + + <br> + ''Pregnancy Week (Literal number of weeks pregnant):'' + <<textbox "$tempSlave.pregWeek" $tempSlave.pregWeek>> <br> ''Number of babies (0: none, 1 - 5):'' diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw index 594304f73c794d9fc4eaba8cf0b91fd3067e7a9d..bda92bc8960edba086655227934ddc500fdd0530 100644 --- a/src/events/intro/initNationalities.tw +++ b/src/events/intro/initNationalities.tw @@ -38,8 +38,10 @@ <<elseif $PC.career == "servant">> <<set $trinkets.push("a framed picture of your late Master")>> <<elseif $PC.career == "gang">> -<<set $trinkets.push("your favorite handgun, whose sight has instilled fear in many")>> -<<set $minimumSlaveCost -= 1000>> + <<set $trinkets.push("your favorite handgun, whose sight has instilled fear in many")>> + <<set $minimumSlaveCost -= 1000>> +<<elseif $PC.career == "BlackHat">> + <<set $trinkets.push("a news clipping of your first successful live hack")>> <</if>> <<if $PC.rumor == "wealth">> @@ -88,11 +90,11 @@ <<unset $nationalitiescheck>> /* Removes unique nationalities array to avoid var bloat */ <<if ndef $customVariety>> /* If non-custom variety, empties or defines $nationalities */ -<<set $nationalities = []>> +<<set $nationalities = {}>> <</if>> <<if $terrain == "oceanic">> <<if ndef $customVariety>> - <<set $nationalities = clone(setup.baseNationalities)>> + <<set $nationalities = arr2obj(setup.baseNationalities)>> <</if>> <<set $arcologies[0].FSSupremacistRace = "white">> <<set $arcologies[0].FSSubjugationistRace = "middle eastern">> @@ -102,409 +104,479 @@ <<set $arcologies[0].FSSupremacistRace = "white">> <<set $arcologies[0].FSSubjugationistRace = "black">> <<if ndef $customVariety>> /* If non-custom variety, adds regional $nationalities */ - <<set $nationalities.push("American","American","American","American","American","American")>> - <<set $nationalities.push("Mexican","Mexican","Mexican")>> - <<set $nationalities.push("Dominican","Dominican")>> - <<set $nationalities.push("Canadian","Canadian")>> - <<set $nationalities.push("Haitian")>> - <<set $nationalities.push("Cuban")>> - <<set $nationalities.push("Puerto Rican")>> - <<set $nationalities.push("Jamaican")>> - <<set $nationalities.push("Guatemalan")>> - <<set $nationalities.push("Bermudian")>> - <<set $nationalities.push("Greenlandic")>> - <<set $nationalities.push("Belizean")>> - <<set $nationalities.push("Grenadian")>> - <<set $nationalities.push("Honduran")>> - <<set $nationalities.push("Costa Rican")>> - <<set $nationalities.push("Salvadoran")>> - <<set $nationalities.push("Nicaraguan")>> - <<set $nationalities.push("Panamanian")>> + <<set hashPush($nationalities, "American", "American", "American", "American", "American", "American")>> + <<set hashPush($nationalities, "Mexican", "Mexican", "Mexican")>> + <<set hashPush($nationalities, "Dominican", "Dominican")>> + <<set hashPush($nationalities, "Canadian", "Canadian")>> + <<set hashPush($nationalities, "Haitian")>> + <<set hashPush($nationalities, "Cuban")>> + <<set hashPush($nationalities, "Puerto Rican")>> + <<set hashPush($nationalities, "Jamaican")>> + <<set hashPush($nationalities, "Guatemalan")>> + <<set hashPush($nationalities, "Bermudian")>> + <<set hashPush($nationalities, "Greenlandic")>> + <<set hashPush($nationalities, "Belizean")>> + <<set hashPush($nationalities, "Grenadian")>> + <<set hashPush($nationalities, "Honduran")>> + <<set hashPush($nationalities, "Costa Rican")>> + <<set hashPush($nationalities, "Salvadoran")>> + <<set hashPush($nationalities, "Nicaraguan")>> + <<set hashPush($nationalities, "Panamanian")>> <</if>> <<case "South America">> <<set $arcologies[0].FSSupremacistRace = "latina">> <<set $arcologies[0].FSSubjugationistRace = "black">> <<if ndef $customVariety>> - <<set $nationalities.push("Brazilian","Brazilian","Brazilian","Brazilian")>> - <<set $nationalities.push("Argentinian","Argentinian")>> - <<set $nationalities.push("Colombian","Colombian")>> - <<set $nationalities.push("Peruvian")>> - <<set $nationalities.push("Venezuelan")>> - <<set $nationalities.push("Bolivian")>> - <<set $nationalities.push("Chilean")>> - <<set $nationalities.push("Guatemalan")>> - <<set $nationalities.push("Uruguayan")>> - <<set $nationalities.push("Ecuadorian")>> - <<set $nationalities.push("French Guianan")>> - <<set $nationalities.push("Guyanese")>> - <<set $nationalities.push("Paraguayan")>> - <<set $nationalities.push("Surinamese")>> + <<set hashPush($nationalities, "Brazilian", "Brazilian", "Brazilian", "Brazilian")>> + <<set hashPush($nationalities, "Argentinian", "Argentinian")>> + <<set hashPush($nationalities, "Colombian", "Colombian")>> + <<set hashPush($nationalities, "Peruvian")>> + <<set hashPush($nationalities, "Venezuelan")>> + <<set hashPush($nationalities, "Bolivian")>> + <<set hashPush($nationalities, "Chilean")>> + <<set hashPush($nationalities, "Guatemalan")>> + <<set hashPush($nationalities, "Uruguayan")>> + <<set hashPush($nationalities, "Ecuadorian")>> + <<set hashPush($nationalities, "French Guianan")>> + <<set hashPush($nationalities, "Guyanese")>> + <<set hashPush($nationalities, "Paraguayan")>> + <<set hashPush($nationalities, "Surinamese")>> <</if>> <<case "Brazil">> <<set $arcologies[0].FSSupremacistRace = "white">> <<set $arcologies[0].FSSubjugationistRace = "black">> <<if ndef $customVariety>> - <<set $nationalities.push("Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian","Brazilian")>> - <<set $nationalities.push("Argentinian","Argentinian")>> - <<set $nationalities.push("Colombian","Colombian")>> - <<set $nationalities.push("Peruvian")>> - <<set $nationalities.push("Venezuelan")>> - <<set $nationalities.push("Bolivian")>> - <<set $nationalities.push("Chilean")>> - <<set $nationalities.push("Guatemalan")>> - <<set $nationalities.push("Uruguayan")>> - <<set $nationalities.push("Ecuadorian")>> - <<set $nationalities.push("French Guianan")>> - <<set $nationalities.push("Guyanese")>> - <<set $nationalities.push("Paraguayan")>> - <<set $nationalities.push("Surinamese")>> + <<set hashPush($nationalities, "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian", "Brazilian")>> + <<set hashPush($nationalities, "Argentinian", "Argentinian")>> + <<set hashPush($nationalities, "Colombian", "Colombian")>> + <<set hashPush($nationalities, "Peruvian")>> + <<set hashPush($nationalities, "Venezuelan")>> + <<set hashPush($nationalities, "Bolivian")>> + <<set hashPush($nationalities, "Chilean")>> + <<set hashPush($nationalities, "Guatemalan")>> + <<set hashPush($nationalities, "Uruguayan")>> + <<set hashPush($nationalities, "Ecuadorian")>> + <<set hashPush($nationalities, "French Guianan")>> + <<set hashPush($nationalities, "Guyanese")>> + <<set hashPush($nationalities, "Paraguayan")>> + <<set hashPush($nationalities, "Surinamese")>> <</if>> <<case "the Middle East">> <<set $arcologies[0].FSSupremacistRace = "middle eastern">> <<set $arcologies[0].FSSubjugationistRace = "asian">> <<if ndef $customVariety>> - <<set $nationalities.push("Egyptian", "Egyptian", "Egyptian")>> - <<set $nationalities.push("Iranian", "Iranian")>> - <<set $nationalities.push("Saudi", "Saudi")>> - <<set $nationalities.push("Turkish", "Turkish")>> - <<set $nationalities.push("Lebanese")>> - <<set $nationalities.push("Emirati")>> - <<set $nationalities.push("Jordanian")>> - <<set $nationalities.push("Omani")>> - <<set $nationalities.push("Israeli")>> - <<set $nationalities.push("Armenian")>> - <<set $nationalities.push("Iraqi")>> - <<set $nationalities.push("Afghan")>> - <<set $nationalities.push("Yemeni")>> - <<set $nationalities.push("Syrian")>> - <<set $nationalities.push("Azerbaijani")>> - <<set $nationalities.push("Bahraini")>> - <<set $nationalities.push("Cypriot")>> - <<set $nationalities.push("Georgian")>> - <<set $nationalities.push("Kuwaiti")>> - <<set $nationalities.push("Qatari")>> - <<set $nationalities.push("Palestinian")>> + <<set hashPush($nationalities, "Egyptian", "Egyptian", "Egyptian")>> + <<set hashPush($nationalities, "Iranian", "Iranian")>> + <<set hashPush($nationalities, "Saudi", "Saudi")>> + <<set hashPush($nationalities, "Turkish", "Turkish")>> + <<set hashPush($nationalities, "Lebanese")>> + <<set hashPush($nationalities, "Emirati")>> + <<set hashPush($nationalities, "Jordanian")>> + <<set hashPush($nationalities, "Omani")>> + <<set hashPush($nationalities, "Israeli")>> + <<set hashPush($nationalities, "Armenian")>> + <<set hashPush($nationalities, "Iraqi")>> + <<set hashPush($nationalities, "Afghan")>> + <<set hashPush($nationalities, "Yemeni")>> + <<set hashPush($nationalities, "Syrian")>> + <<set hashPush($nationalities, "Azerbaijani")>> + <<set hashPush($nationalities, "Bahraini")>> + <<set hashPush($nationalities, "Cypriot")>> + <<set hashPush($nationalities, "Georgian")>> + <<set hashPush($nationalities, "Kuwaiti")>> + <<set hashPush($nationalities, "Qatari")>> + <<set hashPush($nationalities, "Palestinian")>> + <<set hashPush($nationalities, "Kurdish")>> <</if>> <<case "Africa">> <<set $arcologies[0].FSSupremacistRace = "black">> <<set $arcologies[0].FSSubjugationistRace = "white">> <<if ndef $customVariety>> - <<set $nationalities.push("Nigerian", "Nigerian", "Nigerian")>> - <<set $nationalities.push("South African","South African","South African")>> - <<set $nationalities.push("Kenyan", "Kenyan")>> - <<set $nationalities.push("Congolese", "Congolese")>> - <<set $nationalities.push("Ethiopian", "Ethiopian")>> - <<set $nationalities.push("Algerian","Algerian")>> - <<set $nationalities.push("Sudanese","Sudanese")>> - <<set $nationalities.push("Moroccan")>> - <<set $nationalities.push("Ghanan")>> - <<set $nationalities.push("Tunisian")>> - <<set $nationalities.push("Malian")>> - <<set $nationalities.push("Libyan")>> - <<set $nationalities.push("Zimbabwean")>> - <<set $nationalities.push("Tanzanian")>> - <<set $nationalities.push("Ugandan")>> - <<set $nationalities.push("Cameroonian")>> - <<set $nationalities.push("Gabonese")>> - <<set $nationalities.push("Djiboutian")>> - <<set $nationalities.push("Zambian")>> - <<set $nationalities.push("Malagasy")>> - <<set $nationalities.push("Nigerien")>> - <<set $nationalities.push("Burundian")>> - <<set $nationalities.push("Seychellois")>> + <<set hashPush($nationalities, "Nigerian", "Nigerian", "Nigerian")>> + <<set hashPush($nationalities, "South African", "South African", "South African")>> + <<set hashPush($nationalities, "Kenyan", "Kenyan")>> + <<set hashPush($nationalities, "Zairian", "Zairian")>> + <<set hashPush($nationalities, "Ethiopian", "Ethiopian")>> + <<set hashPush($nationalities, "Algerian", "Algerian")>> + <<set hashPush($nationalities, "Sudanese", "Sudanese")>> + <<set hashPush($nationalities, "Moroccan")>> + <<set hashPush($nationalities, "Ghanan")>> + <<set hashPush($nationalities, "Tunisian")>> + <<set hashPush($nationalities, "Malian")>> + <<set hashPush($nationalities, "Libyan")>> + <<set hashPush($nationalities, "Zimbabwean")>> + <<set hashPush($nationalities, "Tanzanian")>> + <<set hashPush($nationalities, "Ugandan")>> + <<set hashPush($nationalities, "Cameroonian")>> + <<set hashPush($nationalities, "Gabonese")>> + <<set hashPush($nationalities, "Djiboutian")>> + <<set hashPush($nationalities, "Zambian")>> + <<set hashPush($nationalities, "Malagasy")>> + <<set hashPush($nationalities, "Nigerien")>> + <<set hashPush($nationalities, "Burundian")>> + <<set hashPush($nationalities, "Seychellois")>> + <<set hashPush($nationalities, "Equatoguinean")>> + <<set hashPush($nationalities, "Bissau-Guinean")>> + <<set hashPush($nationalities, "Chadian")>> + <<set hashPush($nationalities, "Comorian")>> + <<set hashPush($nationalities, "Ivorian")>> + <<set hashPush($nationalities, "Mauritanian")>> + <<set hashPush($nationalities, "Mauritian")>> + <<set hashPush($nationalities, "Mosotho")>> + <<set hashPush($nationalities, "Sierra Leonean")>> + <<set hashPush($nationalities, "Swazi")>> + <<set hashPush($nationalities, "Angolan")>> + <<set hashPush($nationalities, "Sahrawi")>> + <<set hashPush($nationalities, "Burkinabé")>> + <<set hashPush($nationalities, "Cape Verdean")>> + <<set hashPush($nationalities, "Motswana")>> + <<set hashPush($nationalities, "Somali")>> + <<set hashPush($nationalities, "Rwandan")>> + <<set hashPush($nationalities, "São Toméan")>> + <<set hashPush($nationalities, "Beninese")>> + <<set hashPush($nationalities, "Central African")>> + <<set hashPush($nationalities, "Gambian")>> + <<set hashPush($nationalities, "Senegalese")>> + <<set hashPush($nationalities, "Togolese")>> + <<set hashPush($nationalities, "Eritrean")>> + <<set hashPush($nationalities, "Guinean")>> + <<set hashPush($nationalities, "Malawian")>> + <<set hashPush($nationalities, "Congolese")>> + <<set hashPush($nationalities, "Liberian")>> + <<set hashPush($nationalities, "Mozambican")>> + <<set hashPush($nationalities, "Namibian")>> + <<set hashPush($nationalities, "South Sudanese")>> <</if>> <<case "Asia">> <<set $arcologies[0].FSSupremacistRace = "asian">> <<set $arcologies[0].FSSubjugationistRace = "indo-aryan">> <<if ndef $customVariety>> - <<set $nationalities.push("Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese")>> - <<set $nationalities.push("Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian")>> - <<set $nationalities.push("Indonesian","Indonesian","Indonesian")>> - <<set $nationalities.push("Bangladeshi","Bangladeshi","Bangladeshi")>> - <<set $nationalities.push("Thai","Thai")>> - <<set $nationalities.push("Vietnamese","Vietnamese")>> - <<set $nationalities.push("Korean","Korean")>> - <<set $nationalities.push("Pakistani","Pakistani")>> - <<set $nationalities.push("Filipina","Filipina")>> - <<set $nationalities.push("Japanese","Japanese")>> - <<set $nationalities.push("Burmese","Burmese")>> - <<set $nationalities.push("Malaysian", "Malaysian")>> - <<set $nationalities.push("Uzbek")>> - <<set $nationalities.push("Nepalese")>> - <<set $nationalities.push("Kazakh")>> - <<set $nationalities.push("Cambodian")>> - <<set $nationalities.push("Bruneian")>> - <<set $nationalities.push("Singaporean")>> - <<set $nationalities.push("Laotian")>> - <<set $nationalities.push("Mongolian")>> - <<set $nationalities.push("Taiwanese")>> - <<set $nationalities.push("Maldivian")>> - <<set $nationalities.push("Bhutanese")>> - <<set $nationalities.push("East Timorese")>> - <<set $nationalities.push("Kyrgyz")>> - <<set $nationalities.push("Sri Lankan")>> - <<set $nationalities.push("Tajik")>> - <<set $nationalities.push("Turkmen")>> + <<set hashPush($nationalities, "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese")>> + <<set hashPush($nationalities, "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian")>> + <<set hashPush($nationalities, "Indonesian", "Indonesian", "Indonesian")>> + <<set hashPush($nationalities, "Bangladeshi", "Bangladeshi", "Bangladeshi")>> + <<set hashPush($nationalities, "Thai", "Thai")>> + <<set hashPush($nationalities, "Vietnamese", "Vietnamese")>> + <<set hashPush($nationalities, "Korean", "Korean")>> + <<set hashPush($nationalities, "Pakistani", "Pakistani")>> + <<set hashPush($nationalities, "Filipina", "Filipina")>> + <<set hashPush($nationalities, "Japanese", "Japanese")>> + <<set hashPush($nationalities, "Burmese", "Burmese")>> + <<set hashPush($nationalities, "Malaysian", "Malaysian")>> + <<set hashPush($nationalities, "Uzbek")>> + <<set hashPush($nationalities, "Nepalese")>> + <<set hashPush($nationalities, "Kazakh")>> + <<set hashPush($nationalities, "Cambodian")>> + <<set hashPush($nationalities, "Bruneian")>> + <<set hashPush($nationalities, "Singaporean")>> + <<set hashPush($nationalities, "Laotian")>> + <<set hashPush($nationalities, "Mongolian")>> + <<set hashPush($nationalities, "Taiwanese")>> + <<set hashPush($nationalities, "Maldivian")>> + <<set hashPush($nationalities, "Bhutanese")>> + <<set hashPush($nationalities, "East Timorese")>> + <<set hashPush($nationalities, "Kyrgyz")>> + <<set hashPush($nationalities, "Sri Lankan")>> + <<set hashPush($nationalities, "Tajik")>> + <<set hashPush($nationalities, "Turkmen")>> + <<set hashPush($nationalities, "Tibetan")>> <</if>> <<case "Europe">> <<set $arcologies[0].FSSupremacistRace = "white">> <<set $arcologies[0].FSSubjugationistRace = "middle eastern">> <<if ndef $customVariety>> - <<set $nationalities.push("Russian", "Russian", "Russian", "Russian")>> - <<set $nationalities.push("German", "German", "German")>> - <<set $nationalities.push("Belarusian","Belarusian")>> - <<set $nationalities.push("Ukrainian", "Ukrainian")>> - <<set $nationalities.push("French", "French")>> - <<set $nationalities.push("Italian", "Italian")>> - <<set $nationalities.push("Spanish", "Spanish")>> - <<set $nationalities.push("British", "British")>> - <<set $nationalities.push("Polish", "Polish")>> - <<set $nationalities.push("Swedish")>> - <<set $nationalities.push("Romanian")>> - <<set $nationalities.push("Lithuanian")>> - <<set $nationalities.push("Irish")>> - <<set $nationalities.push("Scottish")>> - <<set $nationalities.push("Icelandic")>> - <<set $nationalities.push("Finnish")>> - <<set $nationalities.push("Greek")>> - <<set $nationalities.push("Belgian")>> - <<set $nationalities.push("Danish")>> - <<set $nationalities.push("Czech")>> - <<set $nationalities.push("Serbian")>> - <<set $nationalities.push("Slovak")>> - <<set $nationalities.push("Norwegian")>> - <<set $nationalities.push("Dutch")>> - <<set $nationalities.push("Austrian")>> - <<set $nationalities.push("Swiss")>> - <<set $nationalities.push("Portuguese")>> - <<set $nationalities.push("Hungarian")>> - <<set $nationalities.push("Estonian")>> - <<set $nationalities.push("Sammarinese")>> - <<set $nationalities.push("Monégasque")>> - <<set $nationalities.push("Montenegrin")>> - <<set $nationalities.push("Albanian")>> - <<set $nationalities.push("Bosnian")>> - <<set $nationalities.push("Croatian")>> - <<set $nationalities.push("Kosovan")>> - <<set $nationalities.push("Macedonian")>> - <<set $nationalities.push("Maltese")>> - <<set $nationalities.push("Andorran")>> - <<set $nationalities.push("Bulgarian")>> - <<set $nationalities.push("Luxembourgian")>> - <<set $nationalities.push("Moldovan")>> - <<set $nationalities.push("a Liechtensteiner")>> - <<set $nationalities.push("Vatican")>> - <<set $nationalities.push("Belarusian")>> - <<set $nationalities.push("Latvian")>> - <<set $nationalities.push("Slovene")>> + <<set hashPush($nationalities, "Russian", "Russian", "Russian", "Russian")>> + <<set hashPush($nationalities, "German", "German", "German")>> + <<set hashPush($nationalities, "Belarusian", "Belarusian")>> + <<set hashPush($nationalities, "Ukrainian", "Ukrainian")>> + <<set hashPush($nationalities, "French", "French")>> + <<set hashPush($nationalities, "Italian", "Italian")>> + <<set hashPush($nationalities, "Spanish", "Spanish")>> + <<set hashPush($nationalities, "British", "British")>> + <<set hashPush($nationalities, "Polish", "Polish")>> + <<set hashPush($nationalities, "Swedish")>> + <<set hashPush($nationalities, "Romanian")>> + <<set hashPush($nationalities, "Lithuanian")>> + <<set hashPush($nationalities, "Irish")>> + <<set hashPush($nationalities, "Scottish")>> + <<set hashPush($nationalities, "Icelandic")>> + <<set hashPush($nationalities, "Finnish")>> + <<set hashPush($nationalities, "Greek")>> + <<set hashPush($nationalities, "Belgian")>> + <<set hashPush($nationalities, "Danish")>> + <<set hashPush($nationalities, "Czech")>> + <<set hashPush($nationalities, "Serbian")>> + <<set hashPush($nationalities, "Slovak")>> + <<set hashPush($nationalities, "Norwegian")>> + <<set hashPush($nationalities, "Dutch")>> + <<set hashPush($nationalities, "Austrian")>> + <<set hashPush($nationalities, "Swiss")>> + <<set hashPush($nationalities, "Portuguese")>> + <<set hashPush($nationalities, "Hungarian")>> + <<set hashPush($nationalities, "Estonian")>> + <<set hashPush($nationalities, "Sammarinese")>> + <<set hashPush($nationalities, "Monégasque")>> + <<set hashPush($nationalities, "Montenegrin")>> + <<set hashPush($nationalities, "Albanian")>> + <<set hashPush($nationalities, "Bosnian")>> + <<set hashPush($nationalities, "Croatian")>> + <<set hashPush($nationalities, "Kosovan")>> + <<set hashPush($nationalities, "Macedonian")>> + <<set hashPush($nationalities, "Maltese")>> + <<set hashPush($nationalities, "Andorran")>> + <<set hashPush($nationalities, "Bulgarian")>> + <<set hashPush($nationalities, "Luxembourgian")>> + <<set hashPush($nationalities, "Moldovan")>> + <<set hashPush($nationalities, "a Liechtensteiner")>> + <<set hashPush($nationalities, "Vatican")>> + <<set hashPush($nationalities, "Belarusian")>> + <<set hashPush($nationalities, "Latvian")>> + <<set hashPush($nationalities, "Slovene")>> + <<set hashPush($nationalities, "Catalan")>> <</if>> <<case "Australia">> <<set $arcologies[0].FSSupremacistRace = "white">> <<set $arcologies[0].FSSubjugationistRace = "asian">> - <<set $nationalities.push("Australian","Australian","Australian")>> - <<set $nationalities.push("a New Zealander")>> - <<set $nationalities.push("Marshallese")>> - <<set $nationalities.push("Tuvaluan")>> - <<set $nationalities.push("I-Kiribati")>> - <<set $nationalities.push("Nauruan")>> - <<set $nationalities.push("Micronesian")>> - <<set $nationalities.push("Palauan")>> - <<set $nationalities.push("Papua New Guinean")>> - <<set $nationalities.push("a Cook Islander")>> - <<set $nationalities.push("Fijian")>> - <<set $nationalities.push("Ni-Vanuatu")>> - <<set $nationalities.push("Niuean")>> - <<set $nationalities.push("Samoan")>> - <<set $nationalities.push("a Solomon Islander")>> - <<set $nationalities.push("Tongan")>> + <<set hashPush($nationalities, "Australian", "Australian", "Australian")>> + <<set hashPush($nationalities, "a New Zealander")>> + <<set hashPush($nationalities, "Marshallese")>> + <<set hashPush($nationalities, "Tuvaluan")>> + <<set hashPush($nationalities, "I-Kiribati")>> + <<set hashPush($nationalities, "Nauruan")>> + <<set hashPush($nationalities, "Micronesian")>> + <<set hashPush($nationalities, "Palauan")>> + <<set hashPush($nationalities, "Papua New Guinean")>> + <<set hashPush($nationalities, "a Cook Islander")>> + <<set hashPush($nationalities, "Fijian")>> + <<set hashPush($nationalities, "Ni-Vanuatu")>> + <<set hashPush($nationalities, "Niuean")>> + <<set hashPush($nationalities, "Samoan")>> + <<set hashPush($nationalities, "a Solomon Islander")>> + <<set hashPush($nationalities, "Tongan")>> + <<set hashPush($nationalities, "French Polynesian")>> <<case "Japan">> <<set $arcologies[0].FSSupremacistRace = "asian">> <<set $arcologies[0].FSSubjugationistRace = "asian">> <<if ndef $customVariety>> - <<set $nationalities.push("Japanese","Japanese","Japanese")>> + <<set hashPush($nationalities, "Japanese", "Japanese", "Japanese")>> <</if>> <</switch>> <</if>> <<if ndef $customVariety>> /* If non-custom variety, runs international trade restrictions script */ <<if $internationalTrade != 0>> - <<set $nationalities = clone(setup.baseNationalities)>> + <<set $nationalities = arr2obj(setup.baseNationalities)>> <<if $internationalVariety == 0>> - <<set $nationalities.push("Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese")>> - <<set $nationalities.push("Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian")>> - <<set $nationalities.push("American","American","American","American")>> - <<set $nationalities.push("Indonesian","Indonesian","Indonesian","Indonesian")>> - <<set $nationalities.push("Bangladeshi","Bangladeshi","Bangladeshi")>> - <<set $nationalities.push("Russian","Russian","Russian")>> - <<set $nationalities.push("Belarusian","Belarusian","Belarusian")>> - <<set $nationalities.push("Nigerian","Nigerian","Nigerian")>> - <<set $nationalities.push("South African","South African","South African")>> - <<set $nationalities.push("Brazilian","Brazilian","Brazilian")>> - <<set $nationalities.push("Mexican","Mexican","Mexican")>> - <<set $nationalities.push("Dominican","Dominican","Dominican")>> - <<set $nationalities.push("Argentinian","Argentinian")>> - <<set $nationalities.push("Egyptian","Egyptian")>> - <<set $nationalities.push("Pakistani","Pakistani")>> - <<set $nationalities.push("Filipina","Filipina")>> - <<set $nationalities.push("Vietnamese","Vietnamese")>> - <<set $nationalities.push("Iranian","Iranian")>> - <<set $nationalities.push("Korean","Korean")>> - <<set $nationalities.push("Japanese","Japanese")>> - <<set $nationalities.push("Thai","Thai")>> - <<set $nationalities.push("Turkish","Turkish")>> - <<set $nationalities.push("Ethiopian","Ethiopian")>> - <<set $nationalities.push("Kenyan", "Kenyan")>> - <<set $nationalities.push("Congolese","Congolese")>> - <<set $nationalities.push("Colombian","Colombian")>> - <<set $nationalities.push("Venezuelan","Venezuelan")>> - <<set $nationalities.push("German","German")>> - <<set $nationalities.push("French","French")>> - <<set $nationalities.push("British","British")>> - <<set $nationalities.push("Italian","Italian")>> - <<set $nationalities.push("Spanish","Spanish")>> - <<set $nationalities.push("Ukrainian","Ukrainian")>> - <<set $nationalities.push("Polish","Polish")>> - <<set $nationalities.push("Burmese","Burmese")>> - <<set $nationalities.push("Algerian","Algerian")>> - <<set $nationalities.push("Sudanese","Sudanese")>> - <<set $nationalities.push("Malaysian", "Malaysian")>> - <<set $nationalities.push("Lebanese")>> - <<set $nationalities.push("Tunisian")>> - <<set $nationalities.push("Emirati")>> - <<set $nationalities.push("Libyan")>> - <<set $nationalities.push("Jordanian")>> - <<set $nationalities.push("Omani")>> - <<set $nationalities.push("Malian")>> - <<set $nationalities.push("Iraqi")>> - <<set $nationalities.push("Uzbek")>> - <<set $nationalities.push("Nepalese")>> - <<set $nationalities.push("Afghan")>> - <<set $nationalities.push("Yemeni")>> - <<set $nationalities.push("Saudi")>> - <<set $nationalities.push("Australian")>> - <<set $nationalities.push("Ghanan")>> - <<set $nationalities.push("Canadian")>> - <<set $nationalities.push("Peruvian")>> - <<set $nationalities.push("Chilean")>> - <<set $nationalities.push("Guatemalan")>> - <<set $nationalities.push("a New Zealander")>> - <<set $nationalities.push("Irish")>> - <<set $nationalities.push("Scottish")>> - <<set $nationalities.push("Icelandic")>> - <<set $nationalities.push("Finnish")>> - <<set $nationalities.push("Israeli")>> - <<set $nationalities.push("Armenian")>> - <<set $nationalities.push("Greek")>> - <<set $nationalities.push("Moroccan")>> - <<set $nationalities.push("Zimbabwean")>> - <<set $nationalities.push("Tanzanian")>> - <<set $nationalities.push("Ugandan")>> - <<set $nationalities.push("Romanian")>> - <<set $nationalities.push("Swedish")>> - <<set $nationalities.push("Belgian")>> - <<set $nationalities.push("Danish")>> - <<set $nationalities.push("Czech")>> - <<set $nationalities.push("Serbian")>> - <<set $nationalities.push("Slovak")>> - <<set $nationalities.push("Norwegian")>> - <<set $nationalities.push("Dutch")>> - <<set $nationalities.push("Austrian")>> - <<set $nationalities.push("Swiss")>> - <<set $nationalities.push("Portuguese")>> - <<set $nationalities.push("Hungarian")>> - <<set $nationalities.push("Estonian")>> - <<set $nationalities.push("Lithuanian")>> - <<set $nationalities.push("Bolivian")>> - <<set $nationalities.push("Haitian")>> - <<set $nationalities.push("Puerto Rican")>> - <<set $nationalities.push("Jamaican")>> - <<set $nationalities.push("Cuban")>> - <<set $nationalities.push("Kazakh")>> - <<set $nationalities.push("Sammarinese")>> - <<set $nationalities.push("Marshallese")>> - <<set $nationalities.push("Syrian")>> - <<set $nationalities.push("Bermudian")>> - <<set $nationalities.push("Uruguayan")>> - <<set $nationalities.push("Monégasque")>> - <<set $nationalities.push("Montenegrin")>> - <<set $nationalities.push("Cambodian")>> - <<set $nationalities.push("Cameroonian")>> - <<set $nationalities.push("Gabonese")>> - <<set $nationalities.push("Djiboutian")>> - <<set $nationalities.push("Greenlandic")>> - <<set $nationalities.push("Tuvaluan")>> - <<set $nationalities.push("Zambian")>> - <<set $nationalities.push("Albanian")>> - <<set $nationalities.push("Bruneian")>> - <<set $nationalities.push("Singaporean")>> - <<set $nationalities.push("Laotian")>> - <<set $nationalities.push("Mongolian")>> - <<set $nationalities.push("Taiwanese")>> - <<set $nationalities.push("Belizean")>> - <<set $nationalities.push("Grenadian")>> - <<set $nationalities.push("I-Kiribati")>> - <<set $nationalities.push("Malagasy")>> - <<set $nationalities.push("Maldivian")>> - <<set $nationalities.push("Bosnian")>> - <<set $nationalities.push("Croatian")>> - <<set $nationalities.push("Kosovan")>> - <<set $nationalities.push("Macedonian")>> - <<set $nationalities.push("Honduran")>> - <<set $nationalities.push("Maltese")>> - <<set $nationalities.push("Nauruan")>> - <<set $nationalities.push("Micronesian")>> - <<set $nationalities.push("Costa Rican")>> - <<set $nationalities.push("Salvadoran")>> - <<set $nationalities.push("Nicaraguan")>> - <<set $nationalities.push("Panamanian")>> - <<set $nationalities.push("Nigerien")>> - <<set $nationalities.push("Andorran")>> - <<set $nationalities.push("Bulgarian")>> - <<set $nationalities.push("Luxembourgian")>> - <<set $nationalities.push("Moldovan")>> - <<set $nationalities.push("Bahamian")>> - <<set $nationalities.push("Barbadian")>> - <<set $nationalities.push("Dominiquais")>> - <<set $nationalities.push("Trinidadian")>> - <<set $nationalities.push("Palauan")>> - <<set $nationalities.push("Papua New Guinean")>> - <<set $nationalities.push("Kittitian")>> - <<set $nationalities.push("Ecuadorian")>> - <<set $nationalities.push("French Guianan")>> - <<set $nationalities.push("Guyanese")>> - <<set $nationalities.push("Paraguayan")>> - <<set $nationalities.push("Surinamese")>> - <<set $nationalities.push("Bhutanese")>> - <<set $nationalities.push("East Timorese")>> - <<set $nationalities.push("Kyrgyz")>> - <<set $nationalities.push("Sri Lankan")>> - <<set $nationalities.push("a Liechtensteiner")>> - <<set $nationalities.push("Vatican")>> - <<set $nationalities.push("Belarusian")>> - <<set $nationalities.push("Burundian")>> - <<set $nationalities.push("Latvian")>> - <<set $nationalities.push("Seychellois")>> - <<set $nationalities.push("Slovene")>> - <<set $nationalities.push("Antiguan")>> - <<set $nationalities.push("Saint Lucian")>> - <<set $nationalities.push("Aruban")>> - <<set $nationalities.push("Azerbaijani")>> - <<set $nationalities.push("Bahraini")>> - <<set $nationalities.push("Cypriot")>> - <<set $nationalities.push("Georgian")>> - <<set $nationalities.push("Kuwaiti")>> - <<set $nationalities.push("Qatari")>> - <<set $nationalities.push("Tajik")>> - <<set $nationalities.push("Turkmen")>> - <<set $nationalities.push("Vincentian")>> - <<set $nationalities.push("a Cook Islander")>> - <<set $nationalities.push("Fijian")>> - <<set $nationalities.push("Ni-Vanuatu")>> - <<set $nationalities.push("Niuean")>> - <<set $nationalities.push("Palestinian")>> - <<set $nationalities.push("Samoan")>> - <<set $nationalities.push("a Solomon Islander")>> - <<set $nationalities.push("Tongan")>> + <<set hashPush($nationalities, "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese", "Chinese")>> + <<set hashPush($nationalities, "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian", "Indian")>> + <<set hashPush($nationalities, "American", "American", "American", "American")>> + <<set hashPush($nationalities, "Indonesian", "Indonesian", "Indonesian", "Indonesian")>> + <<set hashPush($nationalities, "Bangladeshi", "Bangladeshi", "Bangladeshi")>> + <<set hashPush($nationalities, "Russian", "Russian", "Russian")>> + <<set hashPush($nationalities, "Belarusian", "Belarusian", "Belarusian")>> + <<set hashPush($nationalities, "Nigerian", "Nigerian", "Nigerian")>> + <<set hashPush($nationalities, "South African", "South African", "South African")>> + <<set hashPush($nationalities, "Brazilian", "Brazilian", "Brazilian")>> + <<set hashPush($nationalities, "Mexican", "Mexican", "Mexican")>> + <<set hashPush($nationalities, "Dominican", "Dominican", "Dominican")>> + <<set hashPush($nationalities, "Argentinian", "Argentinian")>> + <<set hashPush($nationalities, "Egyptian", "Egyptian")>> + <<set hashPush($nationalities, "Pakistani", "Pakistani")>> + <<set hashPush($nationalities, "Filipina", "Filipina")>> + <<set hashPush($nationalities, "Vietnamese", "Vietnamese")>> + <<set hashPush($nationalities, "Iranian", "Iranian")>> + <<set hashPush($nationalities, "Korean", "Korean")>> + <<set hashPush($nationalities, "Japanese", "Japanese")>> + <<set hashPush($nationalities, "Thai", "Thai")>> + <<set hashPush($nationalities, "Turkish", "Turkish")>> + <<set hashPush($nationalities, "Ethiopian", "Ethiopian")>> + <<set hashPush($nationalities, "Kenyan", "Kenyan")>> + <<set hashPush($nationalities, "Zairian", "Zairian")>> + <<set hashPush($nationalities, "Colombian", "Colombian")>> + <<set hashPush($nationalities, "Venezuelan", "Venezuelan")>> + <<set hashPush($nationalities, "German", "German")>> + <<set hashPush($nationalities, "French", "French")>> + <<set hashPush($nationalities, "British", "British")>> + <<set hashPush($nationalities, "Italian", "Italian")>> + <<set hashPush($nationalities, "Spanish", "Spanish")>> + <<set hashPush($nationalities, "Ukrainian", "Ukrainian")>> + <<set hashPush($nationalities, "Polish", "Polish")>> + <<set hashPush($nationalities, "Burmese", "Burmese")>> + <<set hashPush($nationalities, "Algerian", "Algerian")>> + <<set hashPush($nationalities, "Sudanese", "Sudanese")>> + <<set hashPush($nationalities, "Malaysian", "Malaysian")>> + <<set hashPush($nationalities, "Lebanese")>> + <<set hashPush($nationalities, "Tunisian")>> + <<set hashPush($nationalities, "Emirati")>> + <<set hashPush($nationalities, "Libyan")>> + <<set hashPush($nationalities, "Jordanian")>> + <<set hashPush($nationalities, "Omani")>> + <<set hashPush($nationalities, "Malian")>> + <<set hashPush($nationalities, "Iraqi")>> + <<set hashPush($nationalities, "Uzbek")>> + <<set hashPush($nationalities, "Nepalese")>> + <<set hashPush($nationalities, "Afghan")>> + <<set hashPush($nationalities, "Yemeni")>> + <<set hashPush($nationalities, "Saudi")>> + <<set hashPush($nationalities, "Australian")>> + <<set hashPush($nationalities, "Ghanan")>> + <<set hashPush($nationalities, "Canadian")>> + <<set hashPush($nationalities, "Peruvian")>> + <<set hashPush($nationalities, "Chilean")>> + <<set hashPush($nationalities, "Guatemalan")>> + <<set hashPush($nationalities, "a New Zealander")>> + <<set hashPush($nationalities, "Irish")>> + <<set hashPush($nationalities, "Scottish")>> + <<set hashPush($nationalities, "Icelandic")>> + <<set hashPush($nationalities, "Finnish")>> + <<set hashPush($nationalities, "Israeli")>> + <<set hashPush($nationalities, "Armenian")>> + <<set hashPush($nationalities, "Greek")>> + <<set hashPush($nationalities, "Moroccan")>> + <<set hashPush($nationalities, "Zimbabwean")>> + <<set hashPush($nationalities, "Tanzanian")>> + <<set hashPush($nationalities, "Ugandan")>> + <<set hashPush($nationalities, "Romanian")>> + <<set hashPush($nationalities, "Swedish")>> + <<set hashPush($nationalities, "Belgian")>> + <<set hashPush($nationalities, "Danish")>> + <<set hashPush($nationalities, "Czech")>> + <<set hashPush($nationalities, "Serbian")>> + <<set hashPush($nationalities, "Slovak")>> + <<set hashPush($nationalities, "Norwegian")>> + <<set hashPush($nationalities, "Dutch")>> + <<set hashPush($nationalities, "Austrian")>> + <<set hashPush($nationalities, "Swiss")>> + <<set hashPush($nationalities, "Portuguese")>> + <<set hashPush($nationalities, "Hungarian")>> + <<set hashPush($nationalities, "Estonian")>> + <<set hashPush($nationalities, "Lithuanian")>> + <<set hashPush($nationalities, "Bolivian")>> + <<set hashPush($nationalities, "Haitian")>> + <<set hashPush($nationalities, "Puerto Rican")>> + <<set hashPush($nationalities, "Jamaican")>> + <<set hashPush($nationalities, "Cuban")>> + <<set hashPush($nationalities, "Kazakh")>> + <<set hashPush($nationalities, "Sammarinese")>> + <<set hashPush($nationalities, "Marshallese")>> + <<set hashPush($nationalities, "Syrian")>> + <<set hashPush($nationalities, "Bermudian")>> + <<set hashPush($nationalities, "Uruguayan")>> + <<set hashPush($nationalities, "Monégasque")>> + <<set hashPush($nationalities, "Montenegrin")>> + <<set hashPush($nationalities, "Cambodian")>> + <<set hashPush($nationalities, "Cameroonian")>> + <<set hashPush($nationalities, "Gabonese")>> + <<set hashPush($nationalities, "Djiboutian")>> + <<set hashPush($nationalities, "Greenlandic")>> + <<set hashPush($nationalities, "Tuvaluan")>> + <<set hashPush($nationalities, "Zambian")>> + <<set hashPush($nationalities, "Albanian")>> + <<set hashPush($nationalities, "Bruneian")>> + <<set hashPush($nationalities, "Singaporean")>> + <<set hashPush($nationalities, "Laotian")>> + <<set hashPush($nationalities, "Mongolian")>> + <<set hashPush($nationalities, "Taiwanese")>> + <<set hashPush($nationalities, "Belizean")>> + <<set hashPush($nationalities, "Grenadian")>> + <<set hashPush($nationalities, "I-Kiribati")>> + <<set hashPush($nationalities, "Malagasy")>> + <<set hashPush($nationalities, "Maldivian")>> + <<set hashPush($nationalities, "Bosnian")>> + <<set hashPush($nationalities, "Croatian")>> + <<set hashPush($nationalities, "Kosovan")>> + <<set hashPush($nationalities, "Macedonian")>> + <<set hashPush($nationalities, "Honduran")>> + <<set hashPush($nationalities, "Maltese")>> + <<set hashPush($nationalities, "Nauruan")>> + <<set hashPush($nationalities, "Micronesian")>> + <<set hashPush($nationalities, "Costa Rican")>> + <<set hashPush($nationalities, "Salvadoran")>> + <<set hashPush($nationalities, "Nicaraguan")>> + <<set hashPush($nationalities, "Panamanian")>> + <<set hashPush($nationalities, "Nigerien")>> + <<set hashPush($nationalities, "Andorran")>> + <<set hashPush($nationalities, "Bulgarian")>> + <<set hashPush($nationalities, "Luxembourgian")>> + <<set hashPush($nationalities, "Moldovan")>> + <<set hashPush($nationalities, "Bahamian")>> + <<set hashPush($nationalities, "Barbadian")>> + <<set hashPush($nationalities, "Dominiquais")>> + <<set hashPush($nationalities, "Trinidadian")>> + <<set hashPush($nationalities, "Palauan")>> + <<set hashPush($nationalities, "Papua New Guinean")>> + <<set hashPush($nationalities, "Kittitian")>> + <<set hashPush($nationalities, "Ecuadorian")>> + <<set hashPush($nationalities, "French Guianan")>> + <<set hashPush($nationalities, "Guyanese")>> + <<set hashPush($nationalities, "Paraguayan")>> + <<set hashPush($nationalities, "Surinamese")>> + <<set hashPush($nationalities, "Bhutanese")>> + <<set hashPush($nationalities, "East Timorese")>> + <<set hashPush($nationalities, "Kyrgyz")>> + <<set hashPush($nationalities, "Sri Lankan")>> + <<set hashPush($nationalities, "a Liechtensteiner")>> + <<set hashPush($nationalities, "Vatican")>> + <<set hashPush($nationalities, "Belarusian")>> + <<set hashPush($nationalities, "Burundian")>> + <<set hashPush($nationalities, "Latvian")>> + <<set hashPush($nationalities, "Seychellois")>> + <<set hashPush($nationalities, "Slovene")>> + <<set hashPush($nationalities, "Antiguan")>> + <<set hashPush($nationalities, "Saint Lucian")>> + <<set hashPush($nationalities, "Aruban")>> + <<set hashPush($nationalities, "Azerbaijani")>> + <<set hashPush($nationalities, "Bahraini")>> + <<set hashPush($nationalities, "Cypriot")>> + <<set hashPush($nationalities, "Georgian")>> + <<set hashPush($nationalities, "Kuwaiti")>> + <<set hashPush($nationalities, "Qatari")>> + <<set hashPush($nationalities, "Tajik")>> + <<set hashPush($nationalities, "Turkmen")>> + <<set hashPush($nationalities, "Vincentian")>> + <<set hashPush($nationalities, "a Cook Islander")>> + <<set hashPush($nationalities, "Fijian")>> + <<set hashPush($nationalities, "Ni-Vanuatu")>> + <<set hashPush($nationalities, "Niuean")>> + <<set hashPush($nationalities, "Palestinian")>> + <<set hashPush($nationalities, "Samoan")>> + <<set hashPush($nationalities, "a Solomon Islander")>> + <<set hashPush($nationalities, "Tongan")>> + <<set hashPush($nationalities, "Catalan")>> + <<set hashPush($nationalities, "Equatoguinean")>> + <<set hashPush($nationalities, "French Polynesian")>> + <<set hashPush($nationalities, "Kurdish")>> + <<set hashPush($nationalities, "Tibetan")>> + <<set hashPush($nationalities, "Bissau-Guinean")>> + <<set hashPush($nationalities, "Chadian")>> + <<set hashPush($nationalities, "Comorian")>> + <<set hashPush($nationalities, "Ivorian")>> + <<set hashPush($nationalities, "Mauritanian")>> + <<set hashPush($nationalities, "Mauritian")>> + <<set hashPush($nationalities, "Mosotho")>> + <<set hashPush($nationalities, "Sierra Leonean")>> + <<set hashPush($nationalities, "Swazi")>> + <<set hashPush($nationalities, "Angolan")>> + <<set hashPush($nationalities, "Sahrawi")>> + <<set hashPush($nationalities, "Burkinabé")>> + <<set hashPush($nationalities, "Cape Verdean")>> + <<set hashPush($nationalities, "Motswana")>> + <<set hashPush($nationalities, "Somali")>> + <<set hashPush($nationalities, "Rwandan")>> + <<set hashPush($nationalities, "São Toméan")>> + <<set hashPush($nationalities, "Beninese")>> + <<set hashPush($nationalities, "Central African")>> + <<set hashPush($nationalities, "Gambian")>> + <<set hashPush($nationalities, "Senegalese")>> + <<set hashPush($nationalities, "Togolese")>> + <<set hashPush($nationalities, "Eritrean")>> + <<set hashPush($nationalities, "Guinean")>> + <<set hashPush($nationalities, "Malawian")>> + <<set hashPush($nationalities, "Congolese")>> + <<set hashPush($nationalities, "Liberian")>> + <<set hashPush($nationalities, "Mozambican")>> + <<set hashPush($nationalities, "Namibian")>> + <<set hashPush($nationalities, "South Sudanese")>> <</if>> <</if>> <</if>> @@ -522,11 +594,11 @@ <<set $neighboringArcologies = Math.clamp($neighboringArcologies, 0, 8)>> <<for $i = 0; $i <= $neighboringArcologies; $i++>> - <<set $activeArcology = {name: "Arcology X-", direction: "north", government: "an individual", leaderID: 0, honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor: 0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0, FSRestart: "unset", FSRepopulationFocus: "unset", FSHedonisticDecadence: "unset", FSCummunism: "unset", FSGenderRadicalistResearch: 0, FSGenderFundamentalistResearch: 0, FSPaternalistResearch: 0, FSDegradationistResearch: 0, FSBodyPuristResearch: 0, FSTransformationFetishistResearch: 0, FSYouthPreferentialistResearch: 0, FSMaturityPreferentialistResearch: 0, FSSlimnessEnthusiastResearch: 0, FSAssetExpansionistResearch: 0, FSPastoralistResearch: 0, FSPhysicalIdealistResearch: 0, FSRepopulationFocusResearch: 0, FSRestartResearch: 0, FSHedonisticDecadenceResearch: 0, FSHedonisticDecadenceDietResearch: 0, FSCummunismResearch: 0}>> + <<set $activeArcology = {name: "Arcology X-", direction: "north", government: "an individual", leaderID: 0, honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor: 0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0, FSRestart: "unset", FSRepopulationFocus: "unset", FSHedonisticDecadence: "unset", FSCummunism: "unset", FSIncestFetishist: "unset", FSGenderRadicalistResearch: 0, FSGenderFundamentalistResearch: 0, FSPaternalistResearch: 0, FSDegradationistResearch: 0, FSBodyPuristResearch: 0, FSTransformationFetishistResearch: 0, FSYouthPreferentialistResearch: 0, FSMaturityPreferentialistResearch: 0, FSSlimnessEnthusiastResearch: 0, FSAssetExpansionistResearch: 0, FSPastoralistResearch: 0, FSPhysicalIdealistResearch: 0, FSRepopulationFocusResearch: 0, FSRestartResearch: 0, FSHedonisticDecadenceResearch: 0, FSHedonisticDecadenceDietResearch: 0, FSCummunismResearch: 0, FSIncestFetishistResearch: 0}>> <<if $i == 0>> <<set $activeArcology.direction = 0>> <<set $activeArcology.name = "Arcology X-4">> - <<set $activeArcology.FSSupremacistDecoration = 20, $activeArcology.FSSubjugationistDecoration = 20, $activeArcology.FSGenderRadicalistDecoration = 20, $activeArcology.FSGenderFundamentalistDecoration = 20, $activeArcology.FSPaternalistDecoration = 20, $activeArcology.FSDegradationistDecoration = 20, $activeArcology.FSBodyPuristDecoration = 20, $activeArcology.FSTransformationFetishistDecoration = 20, $activeArcology.FSYouthPreferentialistDecoration = 20, $activeArcology.FSMaturityPreferentialistDecoration = 20, $activeArcology.FSSlimnessEnthusiastDecoration = 20, $activeArcology.FSAssetExpansionistDecoration = 20, $activeArcology.FSPastoralistDecoration = 20, $activeArcology.FSPhysicalIdealistDecoration = 20, $activeArcology.FSChattelReligionistDecoration = 20, $activeArcology.FSRomanRevivalistDecoration = 20, $activeArcology.FSAztecRevivalistDecoration = 20, $activeArcology.FSEgyptianRevivalistDecoration = 20, $activeArcology.FSEdoRevivalistDecoration = 20, $activeArcology.FSArabianRevivalistDecoration = 20, $activeArcology.FSChineseRevivalistDecoration = 20, $activeArcology.FSRepopulationFocusDecoration = 20, $activeArcology.FSRestartDecoration = 20, $activeArcology.FSHedonisticDecadenceDecoration = 20, $activeArcology.FSCummunismDecoration = 20>> + <<set $activeArcology.FSSupremacistDecoration = 20, $activeArcology.FSSubjugationistDecoration = 20, $activeArcology.FSGenderRadicalistDecoration = 20, $activeArcology.FSGenderFundamentalistDecoration = 20, $activeArcology.FSPaternalistDecoration = 20, $activeArcology.FSDegradationistDecoration = 20, $activeArcology.FSBodyPuristDecoration = 20, $activeArcology.FSTransformationFetishistDecoration = 20, $activeArcology.FSYouthPreferentialistDecoration = 20, $activeArcology.FSMaturityPreferentialistDecoration = 20, $activeArcology.FSSlimnessEnthusiastDecoration = 20, $activeArcology.FSAssetExpansionistDecoration = 20, $activeArcology.FSPastoralistDecoration = 20, $activeArcology.FSPhysicalIdealistDecoration = 20, $activeArcology.FSChattelReligionistDecoration = 20, $activeArcology.FSRomanRevivalistDecoration = 20, $activeArcology.FSAztecRevivalistDecoration = 20, $activeArcology.FSEgyptianRevivalistDecoration = 20, $activeArcology.FSEdoRevivalistDecoration = 20, $activeArcology.FSArabianRevivalistDecoration = 20, $activeArcology.FSChineseRevivalistDecoration = 20, $activeArcology.FSRepopulationFocusDecoration = 20, $activeArcology.FSRestartDecoration = 20, $activeArcology.FSHedonisticDecadenceDecoration = 20, $activeArcology.FSCummunismDecoration = 20, $activeArcology.FSIncestFetishistDecoration = 20>> <<if $targetArcology.type != "New">> <<set $FSAnnounced = 1>> <<set $FSGotRepCredits = 1>> @@ -674,6 +746,10 @@ <<set $arcologies[0].FSHedonisticDecadenceResearch = 0>> <<set $arcologies[0].FSHedonisticDecadenceDietResearch = 0>> <<set $arcologies[0].FSCummunismResearch = 0>> +<<set $arcologies[0].FSIncestFetishistResearch = 0>> + +<<set $arcologies[0].FSEgyptianRevivalistIncestPolicy = 0>> +<<set $arcologies[0].FSEgyptianRevivalistInterest = 0>> <<set $showStartingGirlsExplanation = 1>> <<goto "Starting Girls">> diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index cc646203e62256de7978442fb562b6a776b3adcf..7c1afe1462074f1761f95c6dc9d71c3e3ffd5571 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -75,10 +75,10 @@ You are using standardized slave trading channels. [[Customize the slave trade|C <<silently>><<include "Customize Slave Trade">><</silently>> <</if>> <br style="clear:both" /><hr style="margin:0"> - <<for _i = 0; _i < $nationalitiescheck.length; _i++>> - <<set _nation = $nationalitiescheck[_i]>> - <<print _nation>> @@.orange;<<print (($nationalities.count(_nation)/$nationalities.length)*100).toFixed(2)>>%@@ - <<if _i < $nationalitiescheck.length-1>> | <</if>> + <<set _len = Object.keys($nationalitiescheck).length>> + <<for _nation, _i range $nationalitiescheck>> + <<print _nation>> @@.orange;<<print (($nationalities[_nation]/hashSum($nationalities))*100).toFixed(2)>>%@@ + <<if _i < _len-1>> | <</if>> <</for>> <br style="clear:both" /><hr style="margin:0"> <</if>> /* closes $customVariety is defined */ @@ -420,9 +420,9 @@ The lingua franca of your arcology is <<textbox "$language" $language "Intro Sum Arabic | <</if>> <<if $language != "Chinese">> - [[Chinese|Intro Summary][$language = "Chinese"]] | + [[Chinese|Intro Summary][$language = "Chinese"]] <<else>> - Chinese | + Chinese <</if>> <</if>> @@ -456,16 +456,16 @@ __''Player Character''__ <<if $PCCreationSex != "masculine ''Master''">> [[masculine Master|Intro Summary][$PC.title = 1, $PCCreationSex = "masculine ''Master''"]] <<elseif $PCCreationSex != "feminine ''Mistress''">> - [[feminine Mistress|Intro Summary][$PC.title = 0, $PCCreationSex = "feminine ''Mistress'"]] + [[feminine Mistress|Intro Summary][$PC.title = 0, $PCCreationSex = "feminine ''Mistress''"]] <</if>> - <br>Everyone calls you ''<<textbox "$PC.name" $PC.name>>'' <<if $PC.surname == 1>> ''<<textbox "$PC.surname" $PC.surname>>'' <</if>> + <br>Everyone calls you ''<<textbox "$PC.name" $PC.name>>'' <<if $PC.surname>> ''<<textbox "$PC.surname" $PC.surname>>'' <</if>> <br> <<if $PC.surname == 0>> <<link "Add a surname">> - <<set $PC.surname = 1>> + <<set $PC.surname = "Anon">> <<goto "Intro Summary">> - <</link>> //Surnames cannot be changed during the game outisde of special circumstances// + <</link>> //Surnames cannot be changed during the game outside of special circumstances.// <</if>> <<if $PC.surname != 0>> @@ -474,7 +474,6 @@ __''Player Character''__ <<goto "Intro Summary">> <</link>> <</if>> - . <br> You are <<textbox "$PC.actualAge" $PC.actualAge "Intro Summary">> years old which is @@ -489,7 +488,7 @@ __''Player Character''__ <</if>> <<set $PC.physicalAge = $PC.actualAge, $PC.visualAge = $PC.actualAge>> - Your birthday will be in <<textbox "$PC.birthWeek" $PC.birthWeek "Intro Summary">> weeks + Your birthday was <<textbox "$PC.birthWeek" $PC.birthWeek "Intro Summary">> weeks ago. <<if $playerAging == 2>> and you ''age naturally''. @@ -575,28 +574,30 @@ __''Player Character''__ <<switch $PC.career>> <<case "capitalist">> - <<set $PCCreationCareer = "business leader">> + <<set $PCCreationCareer = "a business leader">> <<case "mercenary">> - <<set $PCCreationCareer = "mercenary">> + <<set $PCCreationCareer = "a mercenary">> <<case "slaver">> - <<set $PCCreationCareer = "slaver">> + <<set $PCCreationCareer = "a slaver">> <<case "engineer">> - <<set $PCCreationCareer = "engineer">> + <<set $PCCreationCareer = "an engineer">> <<case "medicine">> - <<set $PCCreationCareer = "doctor">> + <<set $PCCreationCareer = "a doctor">> <<case "celebrity">> - <<set $PCCreationCareer = "minor celebrity">> + <<set $PCCreationCareer = "a minor celebrity">> <<case "escort">> - <<set $PCCreationCareer = "escort">> + <<set $PCCreationCareer = "an escort">> <<case "servant">> - <<set $PCCreationCareer = "servant">> + <<set $PCCreationCareer = "a servant">> <<case "gang">> - <<set $PCCreationCareer = "gang leader">> + <<set $PCCreationCareer = "a gang leader">> + <<case "BlackHat">> + <<set $PCCreationCareer = "an incursion specialist">> <<default>> - <<set $PCCreationCareer = "member of the idle wealthy">> + <<set $PCCreationCareer = "a member of the idle wealthy">> <</switch>> <br> - Before you came to the free cities, you were a ''$PCCreationCareer'' and it is rumoured that you acquired your arcology through ''$PC.rumor''. + Before you came to the free cities, you were ''$PCCreationCareer'' and it is rumoured that you acquired your arcology through ''$PC.rumor''. <br>__Past career:__ <<if $PC.career != "arcology owner">> @@ -606,6 +607,7 @@ __''Player Character''__ [[slaver|Intro Summary][$PC.career = "slaver"]] | [[engineer|Intro Summary][$PC.career = "engineer"]] | [[doctor|Intro Summary][$PC.career = "medicine"]] | + [[hacker|Intro Summary][$PC.career = "BlackHat"]] | [[minor celebrity|Intro Summary][$PC.career = "celebrity"]] | [[escort|Intro Summary][$PC.career = "escort"]] | [[servant|Intro Summary][$PC.career = "servant"]] | @@ -784,6 +786,8 @@ __''Player Character''__ Prior to being an arcology owner, you were a surgeon. <<case "celebrity">> Prior to being an arcology owner, you were a minor celebrity. + <<case "BlackHat">> + Prior to being an arcology owner, you specialized in cracking databases and making mockeries of cyber security. <<case "arcology owner">> Being an arcology owner defines your life now. <<case "escort">> @@ -953,7 +957,7 @@ __''Mods''__ [[Enable|Intro Summary][$SFMODToggle = 1]] <</if>> <br> -// This mod initally from anon1888 but expanded by SFanon offers a lategame special (initally, security but changed to Special in order to try and reduce confusion with crimeanon's seperate Security Expansion mod) force, triggered around week 80. It is non-canon where it conflicts with canonical updates to the base game.// +// This mod initially from anon1888 but expanded by SFanon offers a lategame special (initially, security but changed to Special in order to try and reduce confusion with crimeanon's separate Security Expansion mod) force, triggered around week 80. It is non-canon where it conflicts with canonical updates to the base game.// <br><br> @@ -994,14 +998,16 @@ __''Mods''__ <<set $PC.engineering = 100>> <<case "medicine">> <<set $PC.medicine = 100>> + <<case "BlackHat">> + <<set $PC.hacking = 100>> <<case "arcology owner">> - <<set $PC.trading = 100, $PC.warfare = 100, $PC.slaving = 100, $PC.engineering = 100, $PC.medicine = 100>> + <<set $PC.trading = 100, $PC.warfare = 100, $PC.hacking = 100, $PC.slaving = 100, $PC.engineering = 100, $PC.medicine = 100>> <<case "escort">> - <<set $PC.trading = 50, $PC.warfare = -100, $PC.slaving = -100, $PC.engineering = -100, $PC.medicine = 10>> + <<set $PC.trading = 50, $PC.warfare = -100, $PC.slaving = -100, $PC.engineering = -100, $PC.medicine = 10, $PC.hacking = 10>> <<case "servant">> - <<set $PC.trading = -100, $PC.warfare = -100, $PC.slaving = -100, $PC.engineering = -100, $PC.medicine = -100>> + <<set $PC.trading = -100, $PC.warfare = -100, $PC.slaving = -100, $PC.engineering = -100, $PC.medicine = -100, $PC.hacking = -100>> <<case "gang">> - <<set $PC.trading = 50, $PC.warfare = 50, $PC.slaving = 50, $PC.engineering = -100, $PC.medicine = 0>> + <<set $PC.trading = 50, $PC.warfare = 50, $PC.slaving = 50, $PC.engineering = -100, $PC.medicine = 0, $PC.hacking = 50>> <</switch>> <</if>> <<if $saveImported == 1 && $freshPC == 0 && $girls < 3>> @@ -1022,4 +1028,4 @@ __''Mods''__ <</if>> <br><br> -[[Cheat Start|init Nationalities][$cash += 1000000,$girls = 3,$rep += 10000,$dojo += 1,$cheatMode = 1,$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1,$abbreviateDevotion = 1,$abbreviateRules = 1,$abbreviateClothes = 2,$abbreviateHealth = 1,$abbreviateDiet = 1,$abbreviateDrugs = 1,$abbreviateRace = 1,$abbreviateNationality = 1,$abbreviateGenitalia = 1,$abbreviatePhysicals = 1,$abbreviateSkills = 1,$abbreviateMental = 2,$PC.trading = 100,$PC.warfare = 100,$PC.slaving = 100,$PC.engineering = 100,$PC.medicine = 100]] | //Intended for debugging: may have unexpected effects// +[[Cheat Start|init Nationalities][$cash += 1000000,$girls = 3,$rep += 10000,$dojo += 1,$cheatMode = 1,$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1,$abbreviateDevotion = 1,$abbreviateRules = 1,$abbreviateClothes = 2,$abbreviateHealth = 1,$abbreviateDiet = 1,$abbreviateDrugs = 1,$abbreviateRace = 1,$abbreviateNationality = 1,$abbreviateGenitalia = 1,$abbreviatePhysicals = 1,$abbreviateSkills = 1,$abbreviateMental = 2,$PC.trading = 100,$PC.warfare = 100,$PC.slaving = 100,$PC.engineering = 100,$PC.medicine = 100,$PC.hacking = 100]] | //Intended for debugging: may have unexpected effects// diff --git a/src/events/intro/pcBodyIntro.tw b/src/events/intro/pcBodyIntro.tw index 8fc251732d0631eced47d8f8b91c5572f8f3ff6d..44e64275faa80b6c9b7d6283cd1414d9d8f1c25a 100644 --- a/src/events/intro/pcBodyIntro.tw +++ b/src/events/intro/pcBodyIntro.tw @@ -6,10 +6,10 @@ Most slaveowners in the Free Cities are male. The preexisting power structures o <br> <<if $PC.title > 0>> - You have a masculine figure and will be refered to as ''Master.'' + You have a masculine figure and will be referred to as ''Master.'' [[Switch to a feminine appearance|PC Body Intro][$PC.title = 0]] <<else>> - You have a feminine figure and will be refered to as ''Mistress.'' + You have a feminine figure and will be referred to as ''Mistress.'' [[Switch to a masculine appearance|PC Body Intro][$PC.title = 1]] <</if>> <br> diff --git a/src/events/intro/pcExperienceIntro.tw b/src/events/intro/pcExperienceIntro.tw index c489b08d4527def51035e6ede4c3c12eef5b1550..38d236c903f73ad7926c14c735232bb737150e44 100644 --- a/src/events/intro/pcExperienceIntro.tw +++ b/src/events/intro/pcExperienceIntro.tw @@ -12,7 +12,7 @@ You're a relative unknown in the Free Cities, but it's clear you're already acco <br>[[Venture capitalism|PC Rumor Intro][$PC.career = "capitalist"]] <br> //You will be more effective at business pursuits<<if $showSecExp == 1>> and upgrades in the propaganda hub will be cheaper<</if>>. Your starting slaves will have a free level of prostitution skill available.// <br>[[Private military work|PC Rumor Intro][$PC.career = "mercenary"]] -<br> //You retain mercenary contacts<<if $showSecExp == 1>> and your security skills will make it easier to keep the arcology safe. Plus upgrades in the security HQ will be cheaper<<else>> and security skills.<</if>>. Your starting slaves will have free trust available.// +<br> //You retain mercenary contacts<<if $showSecExp == 1>> and your security skills will make it easier to keep the arcology safe. Plus upgrades in the security HQ will be cheaper<<else>> and security skills<</if>>. Your starting slaves will have free trust available.// <br>[[Slaving|PC Rumor Intro][$PC.career = "slaver"]] <br> //Your slave breaking experience will be useful<<if $showSecExp == 1>> and authority will be easier to maintain. Plus upgrades in the security HQ will be cheaper<</if>>. Your starting slaves will have free devotion available.// <br>[[Arcology engineering|PC Rumor Intro][$PC.career = "engineer"]] @@ -27,6 +27,8 @@ You're a relative unknown in the Free Cities, but it's clear you're already acco <br> //As an ex-servant, you will find it hard to maintain reputation<<if $showSecExp == 1>> and authority<</if>>. You know how to lower your upkeep, but not conduct business. Your starting slaves will have free trust and devotion.// <br>[[Gang Leader|PC Rumor Intro][$PC.career = "gang"]] <br> //As a gang leader, you know how to haggle slaves<<if $showSecExp == 1>> and assert your authority. Plus upgrades in the security HQ will be cheaper<</if>>, but you will find reputation quite hard to maintain. Your starting slaves will be fitter and posses a free level of combat skill.// +<br>[[Incursion Specialist|PC Rumor Intro][$PC.career = "BlackHat"]] +<br> //As a hacker for hire, you know how to gain access computer systems and other devices. Certain upgrades may be cheaper, and you may find alternative approaches to problems<<if $showSecExp == 1>>, but you will find authority quite hard to maintain<</if>>. Your starting slaves will have a free level of intelligence// <</if>> diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index bb826b682e41ececb38b9fbf10f05bf1f7a811f5..181f44f9c2e1aa81228cda5b66f2231993a466b8 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -2562,7 +2562,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr <br>''Wahn'' wrote numerous generic recruitment events. <br>''PregModder'' has modded extensively, including descriptive embellishments for pregnant slaves, various asset descriptions, Master Suite reporting, the Wardrobe, a pack of facility leader interactions, options for Personal Assistant appearances, birthing scenes, fake pregnancy accessories, many other preg mechanics, blind content, expanded chubby belly descriptions, several new surgeries, neon and metallic makeup, better descriptive support for different refreshments, work on choosesOwnJob, many bugfixes, an expansion to the hostage corruption event chain, slave specific player titles, gagging and several basic gags, extended family mode, oversized sex toys, buttplug attachment system, and other, likely forgotten, things. <br>''Lolimodder'' your loli expertise will be missed. -<br>''pregmodfan'' for tremendous amounts of work with compilers, decompilers, etc. Single-handedly kicked this mod into its new git home. Contributed lots of bugfixes as well as fixed the RA considerably. Also for ppmod, ramod, implmod, cfpmod and psmod (preg speed). +<br>''pregmodfan'' for tremendous amounts of work with compilers, decompilers, etc. Single-handedly kicked this mod into its new git home. Contributed lots of bugfixes as well as fixed the RA considerably. Revamped pregnancy tracking as well. Also for ppmod, ramod, implmod, cfpmod and psmod (preg speed). <br>''FCGudder'' for advanced economy reports, image improvements, cleaning and fixing extended-extended family mode, extending building widgets, anaphrodisiacs, name cleaning, height overhauling, proper slave summary caching, new shelter slaves, some crazy ass shit with vector art, fixing seDeath, coding jquery in ui support and likely one to two of these other anon credits. <br>''family mod anon'' for extending extended family mode. <br>''anon'' for lolimod content, new slave careers, new pubestyles, and general improvements. @@ -2615,6 +2615,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr <br>''anon'' for master slaving's multi slave training. <br>''Faraen'' for a full vector art variant. <br>''anon'' for more hair vectors for the external art. +<br>''Vas'' for massive JS work. <br>''Bane70'' optimized huge swaths of code with notable professionalism. <br>''Circle Tritagonist'' provided several new collars and outfits. <br>''Qotsafan'' submitted bugfixes. diff --git a/src/init/dummy.tw b/src/init/dummy.tw index 7bbd91ccd077517f16945dc2332222e275883980..cc831191cdf59cfa1561f6725f9390ecee75ecb6 100644 --- a/src/init/dummy.tw +++ b/src/init/dummy.tw @@ -22,9 +22,10 @@ $belarusianSlaveNames, $dominicanSlaveNames, $scottishSlaveNames $ArcologyNamesEugenics, $ArcologyNamesRepopulationist, $ArcologyNamesHedonisticDecadence $hare1, $hare2, $hare3, $hareSpeed, $hareSpeed1, $hareSpeed2, $hareSpeed3, $origin1, $origin2, $origin3, $LurcherSpeed $$i -$activeSlave.bodySwap, $activeSlave.customImageFormat, $activeSlave.customHairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.HasBeenAssignedToFacilitySupport +$activeSlave.bodySwap, $activeSlave.customImageFormat, $activeSlave.customHairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.HasBeenAssignedToFacilitySupport, $activeSlave.nipplesAccessory $drugs $PC.origRace, $PC.origSkin $FacilitySupportCapacity $modded, $XY, $XX, $old, $young, $pregYes, $pregNo, $implanted, $unmodded +$isReady, $fatherID, */ diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index ebc975daa32cacf021b79430dbcd7caf5a27671e..f3ca9f46c92f3be8461131e3b5d4a88efebc1017 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -15,19 +15,19 @@ <<set setup.broodSizeOneShutDown = [0, 13090, 25340, 36760, 47360, 57160, 66030, 73960, 81060, 87400, 93040, 98040, 102440, 106290, 109620, 112460, 114860, 116850, 118470, 119760, 120760, 121520, 122070, 122460, 122720, 122880, 122980, 123030, 123050, 123060, 123060, 123060, 123060, 123060, 123060, 123060, 123060, 123060]>> /* START Custom Nationalities region filter */ -<<set setup.northamericaNationalities = ["American", "Mexican", "Dominican", "Canadian", "Haitian", "Cuban", "Puerto Rican", "Jamaican", "Guatemalan", "Bermudian", "Greenlandic", "Belizean", "Grenadian", "Honduran", "Costa Rican", "Salvadoran", "Nicaraguan", "Panamanian"]>> +<<set setup.northamericaNationalities = ["American", "Belizean", "Bermudian", "Canadian", "Costa Rican", "Cuban", "Dominican", "Greenlandic", "Grenadian", "Guatemalan", "Haitian", "Honduran", "Jamaican", "Mexican", "Nicaraguan", "Panamanian", "Puerto Rican", "Salvadoran"]>> -<<set setup.southamericaNationalities = ["Argentinian", "Bolivian", "Brazilian", "Chilean", "Colombian", "Guatemalan", "Peruvian", "Venezuelan", "Uruguayan", "Ecuadorian", "French Guianan", "Guyanese", "Paraguayan", "Surinamese"]>> +<<set setup.southamericaNationalities = ["Argentinian", "Bolivian", "Brazilian", "Chilean", "Colombian", "Ecuadorian", "French Guianan", "Guatemalan", "Guyanese", "Paraguayan", "Peruvian", "Surinamese", "Uruguayan", "Venezuelan"]>> -<<set setup.europeNationalities = ["Austrian", "Belarusian", "Belgian", "British", "Czech", "Danish", "Dutch", "Estonian", "Finnish", "French", "German", "Greek", "Hungarian", "Icelandic", "Irish", "Italian", "Lithuanian", "Norwegian", "Polish", "Portuguese", "Romanian", "Russian", "Scottish", "Serbian", "Slovak", "Spanish", "Swedish", "Swiss", "Ukrainian", "Sammarinese", "Monégasque", "Montenegrin", "Albanian", "Bosnian", "Croatian", "Kosovan", "Macedonian", "Maltese", "Andorran", "Bulgarian", "Luxembourgian", "Moldovan", "a Liechtensteiner", "Vatican", "Latvian", "Slovene"]>> +<<set setup.europeNationalities = ["Albanian", "Andorran", "Austrian", "Belarusian", "Belgian", "Bosnian", "British", "Bulgarian", "Catalan", "Croatian", "Czech", "Danish", "Dutch", "Estonian", "Finnish", "French", "German", "Greek", "Hungarian", "Icelandic", "Irish", "Italian", "Kosovan", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Macedonian", "Maltese", "Moldovan", "Monégasque", "Montenegrin", "Norwegian", "Polish", "Portuguese", "Romanian", "Russian", "Sammarinese", "Scottish", "Serbian", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Ukrainian", "Vatican"]>> -<<set setup.asiaNationalities = ["Bangladeshi", "Burmese", "Chinese", "Filipina", "Indian", "Indonesian", "Japanese", "Kazakh", "Korean", "Malaysian", "Nepalese", "Pakistani", "Thai", "Uzbek", "Vietnamese", "Cambodian", "Bruneian", "Singaporean", "Laotian", "Mongolian", "Taiwanese", "Maldivian", "Bhutanese", "East Timorese", "Kyrgyz", "Sri Lankan", "Tajik", "Turkmen"]>> +<<set setup.asiaNationalities = ["Bangladeshi", "Bhutanese", "Bruneian", "Burmese", "Cambodian", "Chinese", "East Timorese", "Filipina", "Indian", "Indonesian", "Japanese", "Kazakh", "Korean", "Kyrgyz", "Laotian", "Malaysian", "Maldivian", "Mongolian", "Nepalese", "Pakistani", "Singaporean", "Sri Lankan", "Taiwanese", "Tajik", "Thai", "Tibetan", "Turkmen", "Uzbek", "Vietnamese"]>> -<<set setup.middleeastNationalities = ["Afghan", "Armenian", "Egyptian", "Emirati", "Iranian", "Iraqi", "Israeli", "Jordanian", "Lebanese", "Omani", "Saudi", "Turkish", "Yemeni", "Syrian", "Azerbaijani", "Bahraini", "Cypriot", "Georgian", "Kuwaiti", "Qatari", "Palestinian"]>> +<<set setup.middleeastNationalities = ["Afghan", "Armenian", "Azerbaijani", "Bahraini", "Cypriot", "Egyptian", "Emirati", "Georgian", "Iranian", "Iraqi", "Israeli", "Jordanian", "Kurdish", "Kuwaiti", "Lebanese", "Omani", "Palestinian", "Qatari", "Saudi", "Syrian", "Turkish", "Yemeni"]>> -<<set setup.africaNationalities = ["Algerian", "Congolese", "Ethiopian", "Ghanan", "Kenyan", "Libyan", "Malian", "Moroccan", "Nigerian", "South African", "Sudanese", "Tanzanian", "Tunisian", "Ugandan", "Zimbabwean", "Cameroonian", "Gabonese", "Djiboutian", "Zambian", "Malagasy", "Nigerien", "Burundian", "Seychellois"]>> +<<set setup.africaNationalities = ["Algerian", "Angolan", "Beninese", "Bissau-Guinean", "Burkinabé", "Burundian", "Cameroonian", "Cape Verdean", "Central African", "Chadian", "Comorian", "Congolese", "Djiboutian", "Equatoguinean", "Eritrean", "Ethiopian", "Gabonese", "Gambian", "Ghanan", "Guinean", "Ivorian", "Kenyan", "Liberian", "Libyan", "Malagasy", "Malawian", "Malian", "Mauritanian", "Mauritian", "Moroccan", "Mosotho", "Motswana", "Mozambican", "Namibian", "Nigerian", "Nigerien", "Rwandan", "Sahrawi", "São Toméan", "Senegalese", "Seychellois", "Sierra Leonean", "Somali", "South African", "South Sudanese", "Sudanese", "Swazi", "Tanzanian", "Togolese", "Tunisian", "Ugandan", "Zambian", "Zimbabwean"]>> -<<set setup.australiaNationalities = ["Australian", "a New Zealander", "Marshallese", "Tuvaluan", "I-Kiribati", "Nauruan", "Micronesian", "Palauan", "Papua New Guinean", "a Cook Islander", "Fijian", "Ni-Vanuatu", "Niuean", "Samoan", "a Solomon Islander", "Tongan"]>> +<<set setup.australiaNationalities = ["a Cook Islander", "Australian", "Fijian", "French Polynesian", "I-Kiribati", "Marshallese", "Micronesian", "Nauruan", "a New Zealander", "Ni-Vanuatu", "Niuean", "Palauan", "Papua New Guinean", "Samoan", "a Solomon Islander", "Tongan", "Tuvaluan"]>> /* Nationalities based on $continent value. Note that $continent can be undefined! */ <<set setup.nationalityPoolSelector = { @@ -45,187 +45,219 @@ /*** pregmod exclusive end ***/ -/* Helper method to turn objects like {white: 5, black: 2, asian: 1} into weighted arrays */ -<<set window.weightedArray = function(obj) { return _(obj).toPairs().filter(p => _.isSafeInteger(p[1]) && p[1] > 0).flatMap(p => Array(p[1]).fill(p[0])).value(); }>> - -/* Nationality-to-race weighted arrays */ +/* Nationality-to-race weighted objects */ <<set setup.raceSelector = { - "Afghan": weightedArray({"indo-aryan": 9, "middle eastern": 9, "mixed race": 2}), - "Algerian": weightedArray({"middle eastern": 9, "mixed race": 1}), - "American": weightedArray({black: 1, "middle eastern": 1, white: 3, latina: 2, asian: 1, amerindian: 1, "mixed race": 2}), - "Argentinian": weightedArray({white: 3, latina: 6, "mixed race": 1}), - "Armenian": weightedArray({"indo-aryan": 9, semitic: 9, "mixed race": 2}), - "Australian": weightedArray({white: 14, black: 2, asian: 4, "mixed race": 1}), - "Austrian": weightedArray({white: 9, "mixed race": 1}), - "Bangladeshi": weightedArray({"indo-aryan": 9, "mixed race": 1}), - "Belarusian": weightedArray({white: 9, "mixed race": 1}), - "Belgian": weightedArray({white: 9, "mixed race": 1}), - "Bolivian": weightedArray({latina: 9, amerindian: 9, "mixed race": 2}), - "Brazilian": weightedArray({black: 1, latina: 1, "mixed race": 3, amerindian: 1, white: 2, asian: 1}), - "British": weightedArray({"indo-aryan": 1, black: 1, white: 8, semitic: 1, "mixed race": 1}), - "Burmese": weightedArray({asian: 6, "indo-aryan": 3, "mixed race": 1}), - "Canadian": weightedArray({white: 16, asian: 2, amerindian: 2, "mixed race": 1}), - "Chilean": weightedArray({white: 2, latina: 6, "mixed race": 1}), - "Chinese": weightedArray({asian: 9, "mixed race": 1}), - "Colombian": weightedArray({latina: 9, "mixed race": 1}), - "Congolese": weightedArray({black: 9, "mixed race": 1}), - "Cuban": weightedArray({latina: 9, black: 9, "mixed race": 2}), - "Czech": weightedArray({white: 9, "mixed race": 1}), - "Danish": weightedArray({white: 9, "mixed race": 1}), - "Dominican": weightedArray({"mixed race": 7, white: 2, black: 1}), - "Dutch": weightedArray({white: 9, "mixed race": 1}), - "Egyptian": weightedArray({black: 2, "middle eastern": 6, semitic: 2, "mixed race": 1}), - "Emirati": weightedArray({"middle eastern": 9, "indo-aryan": 9, "mixed race": 2}), - "Estonian": weightedArray({white: 9, "mixed race": 1}), - "Ethiopian": weightedArray({black: 6, "middle eastern": 2, semitic: 2, "mixed race": 1}), - "Filipina": weightedArray({asian: 2, malay: 4, "pacific islander": 2, "mixed race": 1}), - "Finnish": weightedArray({white: 9, "mixed race": 1}), - "French": weightedArray({black: 1, "middle eastern": 1, white: 5, "southern european": 1, "mixed race": 1}), - "German": weightedArray({black: 1, "middle eastern": 1, white: 6, "mixed race": 1}), - "Ghanan": weightedArray({black: 6, semitic: 2, "mixed race": 1}), - "Greek": weightedArray({"southern european": 9, "mixed race": 1}), - "Guatemalan": weightedArray({latina: 9, amerindian: 9, "mixed race": 2}), - "Haitian": weightedArray({black: 9, "mixed race": 1}), - "Hungarian": weightedArray({white: 8, "indo-aryan": 2, "mixed race": 1}), - "Icelandic": weightedArray({white: 9, "mixed race": 1}), - "Indian": weightedArray({"indo-aryan": 9, "mixed race": 1}), - "Indonesian": weightedArray({asian: 2, malay: 6, "pacific islander": 2, "mixed race": 1}), - "Iraqi": weightedArray({semitic: 2, "middle eastern": 8, "mixed race": 1}), - "Iranian": weightedArray({"indo-aryan": 6, semitic: 2, "mixed race": 1}), - "Irish": weightedArray({white: 9, "mixed race": 1}), - "Israeli": weightedArray({white: 2, "middle eastern": 2, semitic: 4, "mixed race": 1}), - "Italian": weightedArray({"middle eastern": 2, "southern european": 4, white: 4, "mixed race": 1}), - "Jamaican": weightedArray({black: 9, "mixed race": 1}), - "Japanese": weightedArray({asian: 49, "mixed race": 1}), - "Jordanian": weightedArray({"middle eastern": 9, semitic: 9, "mixed race": 2}), - "Kazakh": weightedArray({asian: 6, semitic: 2, "indo-aryan": 2, "mixed race": 1}), - "Kenyan": weightedArray({black: 9, "mixed race": 1}), - "Korean": weightedArray({asian: 19, "mixed race": 1}), - "Lebanese": weightedArray({"middle eastern": 9, semitic: 9, "mixed race": 2}), - "Libyan": weightedArray({"middle eastern": 9, "mixed race": 1}), - "Lithuanian": weightedArray({white: 49, "mixed race": 1}), - "Malaysian": weightedArray({asian: 2, malay: 6, "mixed race": 1}), - "Malian": weightedArray({black: 10, "middle eastern": 2, "mixed race": 1}), - "Mexican": weightedArray({latina: 5, amerindian: 1, "mixed race": 1}), - "Moroccan": weightedArray({"middle eastern": 6, black: 2, "mixed race": 1}), - "Nepalese": weightedArray({asian: 6, "indo-aryan": 3, "mixed race": 1}), - "a New Zealander": weightedArray({white: 15, asian: 2, "pacific islander": 3, "mixed race": 1}), - "Nigerian": weightedArray({black: 9, "mixed race": 1}), - "Norwegian": weightedArray({white: 9, "mixed race": 1}), - "Omani": weightedArray({"middle eastern": 9, "indo-aryan": 9, "mixed race": 2}), - "Pakistani": weightedArray({"indo-aryan": 6, semitic: 2, "mixed race": 1}), - "Peruvian": weightedArray({latina: 9, amerindian: 9, "mixed race": 2}), - "Polish": weightedArray({white: 49, "mixed race": 1}), - "Portuguese": weightedArray({white: 9, "mixed race": 1}), - "Puerto Rican": weightedArray({latina: 9, "mixed race": 1}), - "Romanian": weightedArray({semitic: 8, white: 33, "indo-aryan": 8, "mixed race": 1}), - "Russian": weightedArray({white: 9, "mixed race": 1}), - "Saudi": weightedArray({black: 2, asian: 2, "middle eastern": 4, "mixed race": 1}), - "Scottish": weightedArray({"middle eastern": 1, "indo-aryan": 1, white: 7, "mixed race": 1}), - "Serbian": weightedArray({white: 9, "mixed race": 1}), - "Slovak": weightedArray({white: 8, "indo-aryan": 2, "mixed race": 1}), - "South African": weightedArray({black: 6, white: 3, "mixed race": 1}), - "Spanish": weightedArray({semitic: 3, "southern european": 6, "mixed race": 1}), - "Sudanese": weightedArray({black: 6, "middle eastern": 3, "mixed race": 1}), - "Swedish": weightedArray({"middle eastern": 2, white: 8, "mixed race": 1}), - "Swiss": weightedArray({white: 9, "mixed race": 1}), - "Tanzanian": weightedArray({black: 6, semitic: 2, "mixed race": 1}), - "Thai": weightedArray({asian: 6, malay: 3, "mixed race": 1}), - "Tunisian": weightedArray({"middle eastern": 9, "mixed race": 1}), - "Turkish": weightedArray({"middle eastern": 6, semitic: 2, "mixed race": 1}), - "Ugandan": weightedArray({black: 9, "mixed race": 1}), - "Ukrainian": weightedArray({white: 9, "mixed race": 1}), - "Uzbek": weightedArray({asian: 9, "mixed race": 1}), - "Venezuelan": weightedArray({latina: 9, "mixed race": 1}), - "Vietnamese": weightedArray({asian: 9, "mixed race": 1}), - "Yemeni": weightedArray({black: 2, semitic: 2, "middle eastern": 6, "mixed race": 1}), - "Zimbabwean": weightedArray({black: 8, white: 2, "mixed race": 1}), + "Afghan": {"indo-aryan": 9, "middle eastern": 9, "mixed race": 2}, + "Algerian": {"middle eastern": 9, "mixed race": 1}, + "American": {black: 1, "middle eastern": 1, white: 3, latina: 2, asian: 1, amerindian: 1, "mixed race": 2}, + "Argentinian": {white: 3, latina: 6, "mixed race": 1}, + "Armenian": {"indo-aryan": 9, semitic: 9, "mixed race": 2}, + "Australian": {white: 14, black: 2, asian: 4, "mixed race": 1}, + "Austrian": {white: 9, "mixed race": 1}, + "Bangladeshi": {"indo-aryan": 9, "mixed race": 1}, + "Belarusian": {white: 9, "mixed race": 1}, + "Belgian": {white: 9, "mixed race": 1}, + "Bolivian": {latina: 9, amerindian: 9, "mixed race": 2}, + "Brazilian": {black: 1, latina: 1, "mixed race": 3, amerindian: 1, white: 2, asian: 1}, + "British": {"indo-aryan": 1, black: 1, white: 8, semitic: 1, "mixed race": 1}, + "Burmese": {asian: 6, "indo-aryan": 3, "mixed race": 1}, + "Canadian": {white: 16, asian: 2, amerindian: 2, "mixed race": 1}, + "Chilean": {white: 2, latina: 6, "mixed race": 1}, + "Chinese": {asian: 9, "mixed race": 1}, + "Colombian": {latina: 9, "mixed race": 1}, + "Congolese": {black: 9, "mixed race": 1}, + "Cuban": {latina: 9, black: 9, "mixed race": 2}, + "Czech": {white: 9, "mixed race": 1}, + "Danish": {white: 9, "mixed race": 1}, + "Dominican": {"mixed race": 7, white: 2, black: 1}, + "Dutch": {white: 9, "mixed race": 1}, + "Egyptian": {black: 2, "middle eastern": 6, semitic: 2, "mixed race": 1}, + "Emirati": {"middle eastern": 9, "indo-aryan": 9, "mixed race": 2}, + "Estonian": {white: 9, "mixed race": 1}, + "Ethiopian": {black: 6, "middle eastern": 2, semitic: 2, "mixed race": 1}, + "Filipina": {asian: 2, malay: 4, "pacific islander": 2, "mixed race": 1}, + "Finnish": {white: 9, "mixed race": 1}, + "French": {black: 1, "middle eastern": 1, white: 5, "southern european": 1, "mixed race": 1}, + "German": {black: 1, "middle eastern": 1, white: 6, "mixed race": 1}, + "Ghanan": {black: 6, semitic: 2, "mixed race": 1}, + "Greek": {"southern european": 9, "mixed race": 1}, + "Guatemalan": {latina: 9, amerindian: 9, "mixed race": 2}, + "Haitian": {black: 9, "mixed race": 1}, + "Hungarian": {white: 8, "indo-aryan": 2, "mixed race": 1}, + "Icelandic": {white: 9, "mixed race": 1}, + "Indian": {"indo-aryan": 9, "mixed race": 1}, + "Indonesian": {asian: 2, malay: 6, "pacific islander": 2, "mixed race": 1}, + "Iraqi": {semitic: 2, "middle eastern": 8, "mixed race": 1}, + "Iranian": {"indo-aryan": 6, semitic: 2, "mixed race": 1}, + "Irish": {white: 9, "mixed race": 1}, + "Israeli": {white: 2, "middle eastern": 2, semitic: 4, "mixed race": 1}, + "Italian": {"middle eastern": 2, "southern european": 4, white: 4, "mixed race": 1}, + "Jamaican": {black: 9, "mixed race": 1}, + "Japanese": {asian: 49, "mixed race": 1}, + "Jordanian": {"middle eastern": 9, semitic: 9, "mixed race": 2}, + "Kazakh": {asian: 6, semitic: 2, "indo-aryan": 2, "mixed race": 1}, + "Kenyan": {black: 9, "mixed race": 1}, + "Korean": {asian: 19, "mixed race": 1}, + "Lebanese": {"middle eastern": 9, semitic: 9, "mixed race": 2}, + "Libyan": {"middle eastern": 9, "mixed race": 1}, + "Lithuanian": {white: 49, "mixed race": 1}, + "Malaysian": {asian: 2, malay: 6, "mixed race": 1}, + "Malian": {black: 10, "middle eastern": 2, "mixed race": 1}, + "Mexican": {latina: 5, amerindian: 1, "mixed race": 1}, + "Moroccan": {"middle eastern": 6, black: 2, "mixed race": 1}, + "Nepalese": {asian: 6, "indo-aryan": 3, "mixed race": 1}, + "a New Zealander": {white: 15, asian: 2, "pacific islander": 3, "mixed race": 1}, + "Nigerian": {black: 9, "mixed race": 1}, + "Norwegian": {white: 9, "mixed race": 1}, + "Omani": {"middle eastern": 9, "indo-aryan": 9, "mixed race": 2}, + "Pakistani": {"indo-aryan": 6, semitic: 2, "mixed race": 1}, + "Peruvian": {latina: 9, amerindian: 9, "mixed race": 2}, + "Polish": {white: 49, "mixed race": 1}, + "Portuguese": {white: 9, "mixed race": 1}, + "Puerto Rican": {latina: 9, "mixed race": 1}, + "Romanian": {semitic: 8, white: 33, "indo-aryan": 8, "mixed race": 1}, + "Russian": {white: 9, "mixed race": 1}, + "Saudi": {black: 2, asian: 2, "middle eastern": 4, "mixed race": 1}, + "Scottish": {"middle eastern": 1, "indo-aryan": 1, white: 7, "mixed race": 1}, + "Serbian": {white: 9, "mixed race": 1}, + "Slovak": {white: 8, "indo-aryan": 2, "mixed race": 1}, + "South African": {black: 6, white: 3, "mixed race": 1}, + "Spanish": {semitic: 3, "southern european": 6, "mixed race": 1}, + "Sudanese": {black: 6, "middle eastern": 3, "mixed race": 1}, + "Swedish": {"middle eastern": 2, white: 8, "mixed race": 1}, + "Swiss": {white: 9, "mixed race": 1}, + "Tanzanian": {black: 6, semitic: 2, "mixed race": 1}, + "Thai": {asian: 6, malay: 3, "mixed race": 1}, + "Tunisian": {"middle eastern": 9, "mixed race": 1}, + "Turkish": {"middle eastern": 6, semitic: 2, "mixed race": 1}, + "Ugandan": {black: 9, "mixed race": 1}, + "Ukrainian": {white: 9, "mixed race": 1}, + "Uzbek": {asian: 9, "mixed race": 1}, + "Venezuelan": {latina: 9, "mixed race": 1}, + "Vietnamese": {asian: 9, "mixed race": 1}, + "Yemeni": {black: 2, semitic: 2, "middle eastern": 6, "mixed race": 1}, + "Zimbabwean": {black: 8, white: 2, "mixed race": 1}, /* these need some love, for now they are default */ - "Albanian": weightedArray({white: 9, "mixed race": 1}), - "Andorran": weightedArray({"southern european": 6, white: 2, "mixed race": 1}), - "Antiguan": weightedArray({black: 8, white: 1, "mixed race": 1}), - "Aruban": weightedArray({latina: 7, black: 3, "mixed race": 1}), - "Azerbaijani": weightedArray({semitic: 6, "indo-aryan": 4, "mixed race": 1}), - "Bahamian": weightedArray({black: 8, white: 1, "mixed race": 1}), - "Bahraini": weightedArray({"indo-aryan": 9, "middle eastern": 9, "mixed race": 2}), - "Barbadian": weightedArray({black: 8, "mixed race": 2}), - "Belizean": weightedArray({latina: 7, black: 2, amerindian: 1, "mixed race": 1}), - "Bermudian": weightedArray({black: 8, white: 2, "mixed race": 1}), - "Bhutanese": weightedArray({asian: 9, "mixed race": 1}), - "Bosnian": weightedArray({white: 9, "mixed race": 1}), - "Bruneian": weightedArray({malay: 30, asian: 12, "indo-aryan": 8, "mixed race": 1}), - "Bulgarian": weightedArray({white: 44, "middle eastern": 4, "indo-aryan": 1, "mixed race": 1}), - "Burundian": weightedArray({black: 9, "mixed race": 1}), - "Cambodian": weightedArray({asian: 9, "mixed race": 1}), - "Cameroonian": weightedArray({black: 9, "mixed race": 1}), - "a Cook Islander": weightedArray({"pacific islander": 29, "mixed race": 1}), - "Costa Rican": weightedArray({latina: 7, white: 2, "mixed race": 1}), - "Croatian": weightedArray({white: 49, "mixed race": 1}), - "Cypriot": weightedArray({"southern european": 6, "middle eastern": 3, "mixed race": 1}), - "Djiboutian": weightedArray({black: 8, "middle eastern": 2, "mixed race": 1}), - "Dominiquais": weightedArray({black: 8, "mixed race": 3}), - "East Timorese": weightedArray({malay: 6, "pacific islander": 6, "mixed race": 1}), - "Ecuadorian": weightedArray({latina: 8, black: 2, white: 2, amerindian: 2, "mixed race": 1}), - "Fijian": weightedArray({"indo-aryan": 6, "pacific islander": 6, "mixed race": 1}), - "French Guianan": weightedArray({black: 8, white: 2, "mixed race": 1}), - "Gabonese": weightedArray({black: 9, "mixed race": 1}), - "Georgian": weightedArray({semitic: 6, "indo-aryan": 5, "mixed race": 1}), - "Greenlandic": weightedArray({amerindian: 40, white: 9, "mixed race": 1}), - "Grenadian": weightedArray({black: 9, "mixed race": 1}), - "Guyanese": weightedArray({black: 4, "indo-aryan": 3, amerindian: 2, "mixed race": 1}), - "Honduran": weightedArray({latina: 40, amerindian: 8, "mixed race": 2}), - "I-Kiribati": weightedArray({"pacific islander": 49, "mixed race": 1}), - "Kittitian": weightedArray({black: 9, "mixed race": 1}), - "Kosovan": weightedArray({white: 9, "mixed race": 1}), - "Kuwaiti": weightedArray({"middle eastern": 7, "indo-aryan": 4, "mixed race": 1}), - "Kyrgyz": weightedArray({asian: 8, white: 2, "mixed race": 1}), - "Laotian": weightedArray({asian: 9, "mixed race": 1}), - "Latvian": weightedArray({white: 49, "mixed race": 1}), - "a Liechtensteiner": weightedArray({white: 10, "middle eastern": 3, "mixed race": 1}), - "Luxembourgian": weightedArray({white: 6, "southern european": 2, "mixed race": 1}), - "Macedonian": weightedArray({white: 9, "mixed race": 1}), - "Malagasy": weightedArray({black: 4, "indo-aryan": 4, "mixed race": 1}), - "Maldivian": weightedArray({"indo-aryan": 9, "mixed race": 1}), - "Maltese": weightedArray({"southern european": 9, "mixed race": 1}), - "Marshallese": weightedArray({"pacific islander": 9, "mixed race": 1}), - "Micronesian": weightedArray({"pacific islander": 9, "mixed race": 1}), - "Moldovan": weightedArray({white: 9, "mixed race": 1}), - "Monégasque": weightedArray({"southern european": 9, "mixed race": 1}), - "Mongolian": weightedArray({asian: 49, "mixed race": 1}), - "Montenegrin": weightedArray({white: 9, "mixed race": 1}), - "Nauruan": weightedArray({"pacific islander": 49, "mixed race": 1}), - "Ni-Vanuatu": weightedArray({"pacific islander": 49, "mixed race": 1}), - "Nicaraguan": weightedArray({latina: 10, white: 6, black: 3, "mixed race": 1}), - "Nigerien": weightedArray({black: 9, "mixed race": 1}), - "Niuean": weightedArray({"pacific islander": 15, white: 7, asian: 7, "mixed race": 1}), - "Palauan": weightedArray({"pacific islander": 25, asian: 7, "mixed race": 1}), - "Palestinian": weightedArray({"middle eastern": 6, semitic: 2, "mixed race": 1}), - "Panamanian": weightedArray({latina: 10, white: 3, black: 3, amerindian: 3, "mixed race": 1}), - "Papua New Guinean": weightedArray({malay: 6, "pacific islander": 3, "mixed race": 1}), - "Paraguayan": weightedArray({latina: 9, "mixed race": 1}), - "Qatari": weightedArray({"middle eastern": 10, "indo-aryan": 5, asian: 2, "mixed race": 1}), - "Saint Lucian": weightedArray({black: 9, "mixed race": 1}), - "Salvadoran": weightedArray({latina: 7, white: 2, "mixed race": 1}), - "Sammarinese": weightedArray({"southern european": 9, "mixed race": 1}), - "Samoan": weightedArray({"pacific islander": 49, "mixed race": 1}), - "Seychellois": weightedArray({black: 9, "mixed race": 1}), - "Singaporean": weightedArray({asian: 30, malay: 12, "indo-aryan": 8, "mixed race": 1}), - "Slovene": weightedArray({white: 9, "mixed race": 1}), - "a Solomon Islander": weightedArray({"pacific islander": 49, "mixed race": 1}), - "Sri Lankan": weightedArray({"indo-aryan": 9, "mixed race": 1}), - "Surinamese": weightedArray({black: 6, malay: 3, "indo-aryan": 6, "mixed race": 2}), - "Syrian": weightedArray({semitic: 2, "middle eastern": 8, "mixed race": 1}), - "Taiwanese": weightedArray({asian: 9, "mixed race": 1}), - "Tajik": weightedArray({"indo-aryan": 6, asian: 2, "mixed race": 1}), - "Tongan": weightedArray({"pacific islander": 49, "mixed race": 1}), - "Trinidadian": weightedArray({black: 3, "indo-aryan": 3, white: 2, "mixed race": 1}), - "Turkmen": weightedArray({"indo-aryan": 10, white: 3, "mixed race": 1}), - "Tuvaluan": weightedArray({"pacific islander": 9, "mixed race": 1}), - "Uruguayan": weightedArray({white: 2, latina: 6, "mixed race": 1}), - "Vatican": weightedArray({white: 5, "southern european": 5, "mixed race": 1}), - "Vincentian": weightedArray({black: 10, "indo-aryan": 2, "mixed race": 5}), - "Zambian": weightedArray({black: 9, "mixed race": 1}), - "": weightedArray({white: 9, "mixed race": 1}), /* default mix */ + "Albanian": {white: 9, "mixed race": 1}, + "Angolan": {black: 9, "mixed race": 1}, + "Andorran": {"southern european": 6, white: 2, "mixed race": 1}, + "Antiguan": {black: 8, white: 1, "mixed race": 1}, + "Aruban": {latina: 7, black: 3, "mixed race": 1}, + "Azerbaijani": {semitic: 6, "indo-aryan": 4, "mixed race": 1}, + "Bahamian": {black: 8, white: 1, "mixed race": 1}, + "Bahraini": {"indo-aryan": 9, "middle eastern": 9, "mixed race": 2}, + "Barbadian": {black: 8, "mixed race": 2}, + "Belizean": {latina: 7, black: 2, amerindian: 1, "mixed race": 1}, + "Beninese": {black: 9, "mixed race": 1}, + "Bermudian": {black: 8, white: 2, "mixed race": 1}, + "Bhutanese": {asian: 9, "mixed race": 1}, + "Bissau-Guinean": {black: 9, "mixed race": 1}, + "Bosnian": {white: 9, "mixed race": 1}, + "Bruneian": {malay: 30, asian: 12, "indo-aryan": 8, "mixed race": 1}, + "Bulgarian": {white: 44, "middle eastern": 4, "indo-aryan": 1, "mixed race": 1}, + "Burkinabé": {black: 9, "mixed race": 1}, + "Burundian": {black: 9, "mixed race": 1}, + "Cambodian": {asian: 9, "mixed race": 1}, + "Cameroonian": {black: 9, "mixed race": 1}, + "Cape Verdean": {black: 1, "mixed race": 4}, + "Catalan": {"southern european": 9, "mixed race": 1}, + "Central African": {black: 9, "mixed race": 1}, + "Chadian": {black: 8, "middle eastern": 1, "mixed race": 1}, + "Comorian": {black: 6, "middle eastern": 3, "mixed race": 1}, + "a Cook Islander": {"pacific islander": 29, "mixed race": 1}, + "Costa Rican": {latina: 7, white: 2, "mixed race": 1}, + "Croatian": {white: 49, "mixed race": 1}, + "Cypriot": {"southern european": 6, "middle eastern": 3, "mixed race": 1}, + "Djiboutian": {black: 8, "middle eastern": 2, "mixed race": 1}, + "Dominiquais": {black: 8, "mixed race": 3}, + "East Timorese": {malay: 6, "pacific islander": 6, "mixed race": 1}, + "Ecuadorian": {latina: 8, black: 2, white: 2, amerindian: 2, "mixed race": 1}, + "Equatoguinean": {black: 9, "mixed race": 1}, + "Eritrean": {black: 6, "middle eastern": 3, "mixed race": 1}, + "Fijian": {"indo-aryan": 6, "pacific islander": 6, "mixed race": 1}, + "French Guianan": {black: 8, white: 2, "mixed race": 1}, + "French Polynesian": {"pacific islander": 9, asian: 1, "mixed race": 1}, + "Gabonese": {black: 9, "mixed race": 1}, + "Gambian": {black: 9, "mixed race": 1}, + "Georgian": {semitic: 6, "indo-aryan": 5, "mixed race": 1}, + "Greenlandic": {amerindian: 40, white: 9, "mixed race": 1}, + "Grenadian": {black: 9, "mixed race": 1}, + "Guinean": {black: 9, "mixed race": 1}, + "Guyanese": {black: 4, "indo-aryan": 3, amerindian: 2, "mixed race": 1}, + "Honduran": {latina: 40, amerindian: 8, "mixed race": 2}, + "I-Kiribati": {"pacific islander": 49, "mixed race": 1}, + "Ivorian": {black: 9, "mixed race": 1}, + "Kittitian": {black: 9, "mixed race": 1}, + "Kosovan": {white: 9, "mixed race": 1}, + "Kurdish": {"indo-aryan": 8, semitic: 1, "middle eastern": 1, "mixed race": 1}, + "Kuwaiti": {"middle eastern": 7, "indo-aryan": 4, "mixed race": 1}, + "Kyrgyz": {asian: 8, white: 2, "mixed race": 1}, + "Laotian": {asian: 9, "mixed race": 1}, + "Latvian": {white: 49, "mixed race": 1}, + "Liberian": {black: 9, "mixed race": 1}, + "a Liechtensteiner": {white: 10, "middle eastern": 3, "mixed race": 1}, + "Luxembourgian": {white: 6, "southern european": 2, "mixed race": 1}, + "Macedonian": {white: 9, "mixed race": 1}, + "Malagasy": {black: 4, "indo-aryan": 4, "mixed race": 1}, + "Malawian": {black: 9, "mixed race": 1}, + "Maldivian": {"indo-aryan": 9, "mixed race": 1}, + "Maltese": {"southern european": 9, "mixed race": 1}, + "Marshallese": {"pacific islander": 9, "mixed race": 1}, + "Mauritanian": {black: 6, "middle eastern": 3, "mixed race": 1}, + "Mauritian": {"indo-aryan": 6, black: 2, "mixed race": 2}, + "Micronesian": {"pacific islander": 9, "mixed race": 1}, + "Moldovan": {white: 9, "mixed race": 1}, + "Monégasque": {"southern european": 9, "mixed race": 1}, + "Mongolian": {asian: 49, "mixed race": 1}, + "Montenegrin": {white: 9, "mixed race": 1}, + "Mosotho": {black: 9, "mixed race": 1}, + "Motswana": {black: 9, "mixed race": 1}, + "Mozambican": {black: 9, "mixed race": 1}, + "Namibian": {black: 9, white: 1, "mixed race": 1}, + "Nauruan": {"pacific islander": 49, "mixed race": 1}, + "Ni-Vanuatu": {"pacific islander": 49, "mixed race": 1}, + "Nicaraguan": {latina: 10, white: 6, black: 3, "mixed race": 1}, + "Nigerien": {black: 9, "mixed race": 1}, + "Niuean": {"pacific islander": 15, white: 7, asian: 7, "mixed race": 1}, + "Palauan": {"pacific islander": 25, asian: 7, "mixed race": 1}, + "Palestinian": {"middle eastern": 6, semitic: 2, "mixed race": 1}, + "Panamanian": {latina: 10, white: 3, black: 3, amerindian: 3, "mixed race": 1}, + "Papua New Guinean": {malay: 6, "pacific islander": 3, "mixed race": 1}, + "Paraguayan": {latina: 9, "mixed race": 1}, + "Qatari": {"middle eastern": 10, "indo-aryan": 5, asian: 2, "mixed race": 1}, + "Rwandan": {black: 9, "mixed race": 1}, + "Sahrawi": {black: 5, "middle eastern": 5, "mixed race": 1}, + "Saint Lucian": {black: 9, "mixed race": 1}, + "Salvadoran": {latina: 7, white: 2, "mixed race": 1}, + "Sammarinese": {"southern european": 9, "mixed race": 1}, + "Samoan": {"pacific islander": 49, "mixed race": 1}, + "São Toméan": {black: 4, "mixed race": 1}, + "Senegalese": {black: 9, "mixed race": 1}, + "Seychellois": {black: 9, "mixed race": 1}, + "Sierra Leonean": {black: 9, "mixed race": 1}, + "Singaporean": {asian: 30, malay: 12, "indo-aryan": 8, "mixed race": 1}, + "Slovene": {white: 9, "mixed race": 1}, + "a Solomon Islander": {"pacific islander": 49, "mixed race": 1}, + "Somali": {black: 9, "middle eastern": 1, "mixed race": 1}, + "South Sudanese": {black: 9, "mixed race": 1}, + "Sri Lankan": {"indo-aryan": 9, "mixed race": 1}, + "Surinamese": {black: 6, malay: 3, "indo-aryan": 6, "mixed race": 2}, + "Swazi": {black: 9, white: 1, "mixed race": 1}, + "Syrian": {semitic: 2, "middle eastern": 8, "mixed race": 1}, + "Taiwanese": {asian: 9, "mixed race": 1}, + "Tajik": {"indo-aryan": 6, asian: 2, "mixed race": 1}, + "Tibetan": {asian: 9, "mixed race": 1}, + "Togolese": {black: 9, "mixed race": 1}, + "Tongan": {"pacific islander": 49, "mixed race": 1}, + "Trinidadian": {black: 3, "indo-aryan": 3, white: 2, "mixed race": 1}, + "Turkmen": {"indo-aryan": 10, white: 3, "mixed race": 1}, + "Tuvaluan": {"pacific islander": 9, "mixed race": 1}, + "Uruguayan": {white: 2, latina: 6, "mixed race": 1}, + "Vatican": {white: 5, "southern european": 5, "mixed race": 1}, + "Vincentian": {black: 10, "indo-aryan": 2, "mixed race": 5}, + "Zairian": {black: 9, "mixed race": 1}, + "Zambian": {black: 9, "mixed race": 1}, + "": {"white": 9, "mixed race": 1}, /* default mix */ }>> <<set setup.servantMilkersJobs = ["be a servant", "work as a servant", "take classes", "please you", "be a subordinate slave", "stay confined", "recruit girls", "rest"]>> @@ -276,31 +308,31 @@ <<set setup.recruiterCareers = ["a club recruiter", "a college scout", "a cult leader", "a girl scout", "a military recruiter", "a missionary", "a political activist", "a princess"]>> /* pregmod */ -<<set setup.baseNationalities = ["Afghan", "Albanian", "Algerian", "American", "Andorran", "Antiguan", "Argentinian", "Armenian", "Aruban", "Australian", "Austrian", "Azerbaijani", "Bahamian", "Bahraini", "Bangladeshi", "Barbadian", "Belarusian", "Belgian", "Belizean", "Bermudian", "Bhutanese", "Bolivian", "Bosnian", "Brazilian", "British", "Bruneian", "Bulgarian", "Burmese", "Burundian", "Cambodian", "Cameroonian", "Canadian", "Chilean", "Chinese", "Colombian", "Congolese", "a Cook Islander", "Costa Rican", "Croatian", "Cuban", "Cypriot", "Czech", "Danish", "Djiboutian", "Dominican", "Dominiquais", "Dutch", "East Timorese", "Ecuadorian", "Egyptian", "Emirati", "Estonian", "Ethiopian", "Fijian", "Filipina", "Finnish", "French", "French Guianan", "Gabonese", "Georgian", "German", "Ghanan", "Greek", "Greenlandic", "Grenadian", "Guatemalan", "Guyanese", "Haitian", "Honduran", "Hungarian", "I-Kiribati", "Icelandic", "Indian", "Indonesian", "Iranian", "Iraqi", "Irish", "Israeli", "Italian", "Jamaican", "Japanese", "Jordanian", "Kazakh", "Kenyan", "Kittitian", "Korean", "Kosovan", "Kuwaiti", "Kyrgyz", "Laotian", "Latvian", "Lebanese", "Libyan", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Macedonian", "Malagasy", "Malaysian", "Maldivian", "Malian", "Maltese", "Marshallese", "Mexican", "Micronesian", "Moldovan", "Monégasque", "Mongolian", "Montenegrin", "Moroccan", "Nauruan", "Nepalese", "a New Zealander", "Ni-Vanuatu", "Nicaraguan", "Nigerian", "Nigerien", "Niuean", "Norwegian", "Omani", "Pakistani", "Palauan", "Palestinian", "Panamanian", "Papua New Guinean", "Paraguayan", "Peruvian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Saint Lucian", "Salvadoran", "Sammarinese", "Samoan", "Saudi", "Scottish", "Serbian", "Seychellois", "Singaporean", "Slovak", "Slovene", "a Solomon Islander", "South African", "Spanish", "Sri Lankan", "Sudanese", "Surinamese", "Swedish", "Swiss", "Syrian", "Taiwanese", "Tajik", "Tanzanian", "Thai", "Tongan", "Trinidadian", "Tunisian", "Turkish", "Turkmen", "Tuvaluan", "Ugandan", "Ukrainian", "Uruguayan", "Uzbek", "Vatican", "Venezuelan", "Vietnamese", "Vincentian", "Yemeni", "Zambian", "Zimbabwean"]>> +<<set setup.baseNationalities = ["Afghan", "Albanian", "Algerian", "American", "Andorran", "Angolan", "Antiguan", "Argentinian", "Armenian", "Aruban", "Australian", "Austrian", "Azerbaijani", "Bahamian", "Bahraini", "Bangladeshi", "Barbadian", "Belarusian", "Belgian", "Belizean", "Bermudian", "Bhutanese", "Bissau-Guinean", "Bolivian", "Bosnian", "Brazilian", "British", "Bruneian", "Bulgarian", "Burkinabé", "Burmese", "Burundian", "Cambodian", "Cameroonian", "Canadian", "Cape Verdean", "Catalan", "Central African", "Chadian", "Chilean", "Chinese", "Colombian", "Comorian", "Congolese", "a Cook Islander", "Costa Rican", "Croatian", "Cuban", "Cypriot", "Czech", "Danish", "Djiboutian", "Dominican", "Dominiquais", "Dutch", "East Timorese", "Ecuadorian", "Egyptian", "Emirati", "Equatoguinean", "Eritrean", "Estonian", "Ethiopian", "Fijian", "Filipina", "Finnish", "French Guianan", "French Polynesian", "French", "Gabonese", "Gambian", "Georgian", "German", "Ghanan", "Greek", "Greenlandic", "Grenadian", "Guatemalan", "Guinean", "Guyanese", "Haitian", "Honduran", "Hungarian", "I-Kiribati", "Icelandic", "Indian", "Indonesian", "Iranian", "Iraqi", "Irish", "Israeli", "Italian", "Ivorian", "Jamaican", "Japanese", "Jordanian", "Kazakh", "Kenyan", "Kittitian", "Korean", "Kosovan", "Kurdish", "Kuwaiti", "Kyrgyz", "Laotian", "Latvian", "Lebanese", "Liberian", "Libyan", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Macedonian", "Malagasy", "Malawian", "Malaysian", "Maldivian", "Malian", "Maltese", "Marshallese", "Mauritanian", "Mauritian", "Mexican", "Micronesian", "Moldovan", "Monégasque", "Mongolian", "Montenegrin", "Moroccan", "Mosotho", "Motswana", "Mozambican", "Namibian", "Nauruan", "Nepalese", "a New Zealander", "Ni-Vanuatu", "Nicaraguan", "Nigerian", "Nigerien", "Niuean", "Norwegian", "Omani", "Pakistani", "Palauan", "Palestinian", "Panamanian", "Papua New Guinean", "Paraguayan", "Peruvian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Rwandan", "Sahrawi", "Saint Lucian", "Salvadoran", "Sammarinese", "Samoan", "São Toméan", "Saudi", "Scottish", "Senegalese", "Serbian", "Seychellois", "Sierra Leonean", "Singaporean", "Slovak", "Slovene", "a Solomon Islander", "Somali", "South African", "South Sudanese", "Spanish", "Sri Lankan", "Sudanese", "Surinamese", "Swazi", "Swedish", "Swiss", "Syrian", "Taiwanese", "Tajik", "Tanzanian", "Thai", "Tibetan", "Togolese", "Tongan", "Trinidadian", "Tunisian", "Turkish", "Turkmen", "Tuvaluan", "Ugandan", "Ukrainian", "Uruguayan", "Uzbek", "Vatican", "Venezuelan", "Vietnamese", "Vincentian", "Yemeni", "Zairian", "Zambian", "Zimbabwean"]>> -<<set setup.whiteNationalities = ["Albanian", "American", "Andorran", "Antiguan", "Argentinian", "Australian", "Austrian", "Bahamian", "Belarusian", "Belgian", "Belizean", "Bermudian", "Bosnian", "Brazilian", "British", "Bulgarian", "Canadian", "Chilean", "Costa Rican", "Croatian", "Czech", "Danish", "Djiboutian", "Dutch", "Ecuadorian", "Estonian", "Finnish", "French Guianan", "French", "German", "Greenlandic", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Kosovan", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Macedonian", "Moldovan", "Montenegrin", "a New Zealander", "Nicaraguan", "Niuean", "Norwegian", "Panamanian", "Polish", "Romanian", "Russian", "Salvadoran", "Scottish", "Serbian", "Slovak", "Slovene", "South African", "Swiss", "Trinidadian", "Turkmen", "Ukrainian", "Uruguayan", "Vatican"]>> +<<set setup.whiteNationalities = ["Albanian", "American", "Andorran", "Antiguan", "Argentinian", "Australian", "Austrian", "Bahamian", "Belarusian", "Belgian", "Belizean", "Bermudian", "Bosnian", "Brazilian", "British", "Bulgarian", "Canadian", "Chilean", "Costa Rican", "Croatian", "Czech", "Danish", "Djiboutian", "Dominican", "Dutch", "Ecuadorian", "Estonian", "Finnish", "French Guianan", "French", "German", "Greenlandic", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Kosovan", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Macedonian", "Moldovan", "Montenegrin", "Namibian", "a New Zealander", "Nicaraguan", "Niuean", "Norwegian", "Panamanian", "Polish", "Romanian", "Russian", "Salvadoran", "Scottish", "Serbian", "Slovak", "Slovene", "South African", "Swazi", "Swedish", "Swiss", "Trinidadian", "Turkmen", "Ukrainian", "Uruguayan", "Vatican"]>> -<<set setup.asianNationalities = ["Bruneian", "Burmese", "Cambodian", "Chinese", "Filipina", "Indonesian", "Japanese", "Kazakh", "Korean", "Laotian", "Malaysian", "Mongolian", "Nepalese", "Singaporean", "Taiwanese", "Thai", "Uzbek", "Vietnamese"]>> +<<set setup.asianNationalities = ["American", "Australian", "Bhutanese", "Bruneian", "Burmese", "Cambodian", "Canadian", "Chinese", "Filipina", "French Polynesian", "Indonesian", "Japanese", "Kazakh", "Korean", "Kyrgyz", "Laotian", "Malaysian", "Mongolian", "Nepalese", "a New Zealander", "Niuean", "Palauan", "Qatari", "Saudi", "Singaporean", "Taiwanese", "Tajik", "Thai", "Tibetan", "Turkmen", "Uzbek", "Vietnamese"]>> <<set setup.latinaNationalities = ["American", "Argentinian", "Aruban", "Belizean", "Bolivian", "Brazilian", "Chilean", "Colombian", "Costa Rican", "Cuban", "Dominican", "Ecuadorian", "Guatemalan", "Honduran", "Mexican", "Nicaraguan", "Panamanian", "Paraguayan", "Peruvian", "Puerto Rican", "Salvadoran", "Uruguayan", "Venezuelan"]>> -<<set setup.middleeasternNationalities = ["Afghan", "Algerian", "American", "Bahraini", "Cypriot", "Djiboutian", "Egyptian", "Emirati", "Ethiopian", "French", "German", "Iraqi", "Israeli", "Italian", "Jordanian", "Kuwaiti", "Lebanese", "Libyan", "Malian", "Moroccan", "Omani", "Palestinian", "Qatari", "Saudi", "Sudanese", "Swedish", "Syrian", "Tunisian", "Turkish", "Yemeni"]>> +<<set setup.middleeasternNationalities = ["Afghan", "Algerian", "American", "Bahraini", "Chadian", "Comorian", "Cypriot", "Djiboutian", "Egyptian", "Emirati", "Eritrean", "Ethiopian", "French", "German", "Iraqi", "Israeli", "Italian", "Jordanian", "Kurdish", "Kuwaiti", "Lebanese", "Libyan", "Malian", "Mauritanian", "Moroccan", "Omani", "Palestinian", "Qatari", "Sahrawi", "Saudi", "Somali", "Sudanese", "Swedish", "Syrian", "Tunisian", "Turkish", "Yemeni"]>> -<<set setup.blackNationalities = ["American", "Antiguan", "Aruban", "Australian", "Bahamian", "Barbadian", "Belizean", "Bermudian", "Brazilian", "British", "Burundian", "Cameroonian", "Congolese", "Cuban", "Djiboutian", "Dominican", "Dominiquais", "Ecuadorian", "Egyptian", "Ethiopian", "French Guianan", "French", "Gabonese", "German", "Ghanan", "Grenadian", "Guyanese", "Haitian", "Jamaican", "Kenyan", "Kittitian", "Malagasy", "Malian", "Moroccan", "Nicaraguan", "Nigerian", "Nigerien", "Panamanian", "Saint Lucian", "Saudi", "Seychellois", "South African", "Sudanese", "Surinamese", "Swedish", "Tanzanian", "Trinidadian", "Ugandan", "Vincentian", "Yemeni", "Zambian", "Zimbabwean"]>> +<<set setup.blackNationalities = ["American", "Angolan", "Antiguan", "Aruban", "Australian", "Bahamian", "Barbadian", "Belizean", "Beninese", "Bermudian", "Bissau-Guinean", "Brazilian", "British", "Burkinabé", "Burundian", "Cameroonian", "Cape Verdean", "Central African", "Chadian", "Comorian", "Congolese", "Cuban", "Djiboutian", "Dominican", "Dominiquais", "Ecuadorian", "Egyptian", "Equatoguinean", "Eritrean", "Ethiopian", "French Guianan", "French", "Gabonese", "Gambian", "German", "Ghanan", "Grenadian", "Guinean", "Guyanese", "Haitian", "Ivorian", "Jamaican", "Kenyan", "Kittitian", "Liberian", "Malagasy", "Malawian", "Malian", "Mauritanian", "Mauritian", "Moroccan", "Mosotho", "Motswana", "Mozambican", "Namibian", "Nicaraguan", "Nigerian", "Nigerien", "Panamanian", "Rwandan", "Sahrawi", "Saint Lucian", "São Toméan", "Saudi", "Senegalese", "Seychellois", "Sierra Leonean", "Somali", "South African", "South Sudanese", "Sudanese", "Surinamese", "Swazi", "Tanzanian", "Togolese", "Trinidadian", "Ugandan", "Vincentian", "Yemeni", "Zairian", "Zambian", "Zimbabwean"]>> -<<set setup.indoaryanNationalities = ["Afghan", "Armenian", "Azerbaijani", "Bahraini", "Bangladeshi", "British", "Bruneian", "Burmese", "Emirati", "Fijian", "Georgian", "Guyanese", "Hungarian", "Indian", "Iranian", "Kazakh", "Kuwaiti", "Malagasy", "Maldivian", "Nepalese", "Omani", "Pakistani", "Qatari", "Romanian", "Singaporean", "Slovak", "Sri Lankan", "Surinamese", "Tajik", "Trinidadian", "Vincentian"]>> +<<set setup.indoaryanNationalities = ["Afghan", "Armenian", "Azerbaijani", "Bahraini", "Bangladeshi", "British", "Bruneian", "Burmese", "Emirati", "Fijian", "Georgian", "Guyanese", "Hungarian", "Indian", "Iranian", "Kazakh", "Kurdish", "Kuwaiti", "Malagasy", "Maldivian", "Mauritian", "Nepalese", "Omani", "Pakistani", "Qatari", "Romanian", "Singaporean", "Slovak", "Sri Lankan", "Surinamese", "Tajik", "Trinidadian", "Vincentian"]>> -<<set setup.pacificislanderNationalities = ["a Cook Islander", "East Timorese", "Fijian", "Filipina", "I-Kiribati", "Indonesian", "Marshallese", "Micronesian", "Nauruan", "a New Zealander", "Ni-Vanuatu", "Niuean", "Palauan", "Papua New Guinean", "Samoan", "a Solomon Islander", "Tongan", "Tuvaluan"]>> +<<set setup.pacificislanderNationalities = ["a Cook Islander", "East Timorese", "Fijian", "Filipina", "French Polynesian", "I-Kiribati", "Indonesian", "Marshallese", "Micronesian", "Nauruan", "a New Zealander", "Ni-Vanuatu", "Niuean", "Palauan", "Papua New Guinean", "Samoan", "a Solomon Islander", "Tongan", "Tuvaluan"]>> <<set setup.malayNationalities = ["Bruneian", "East Timorese", "Filipina", "Indonesian", "Malaysian", "Papua New Guinean", "Singaporean", "Surinamese", "Thai"]>> <<set setup.amerindianNationalities = ["American", "Belizean", "Bolivian", "Brazilian", "Canadian", "Ecuadorian", "Greenlandic", "Guatemalan", "Guyanese", "Honduran", "Mexican", "Panamanian", "Peruvian"]>> -<<set setup.southerneuropeanNationalities = ["Andorran", "Cypriot", "French", "Greek", "Italian", "Luxembourgian", "Maltese", "Monégasque", "Portuguese", "Sammarinese", "Spanish", "Vatican"]>> +<<set setup.southerneuropeanNationalities = ["Andorran", "Catalan", "Cypriot", "French", "Greek", "Italian", "Luxembourgian", "Maltese", "Monégasque", "Portuguese", "Sammarinese", "Spanish", "Vatican"]>> -<<set setup.semiticNationalities = ["Armenian", "Azerbaijani", "British", "Egyptian", "Ethiopian", "Georgian", "Ghanan", "Iranian", "Iraqi", "Israeli", "Jordanian", "Kazakh", "Lebanese", "Pakistani", "Palestinian", "Romanian", "Spanish", "Syrian", "Tanzanian", "Turkish", "Yemeni"]>> +<<set setup.semiticNationalities = ["Armenian", "Azerbaijani", "British", "Egyptian", "Ethiopian", "Georgian", "Ghanan", "Iranian", "Iraqi", "Israeli", "Jordanian", "Kazakh", "Kurdish", "Lebanese", "Pakistani", "Palestinian", "Romanian", "Spanish", "Syrian", "Tanzanian", "Turkish", "Yemeni"]>> @@ -343,7 +375,7 @@ <<set setup.japaneseSlaveNames = ["Ai", "Aika", "Aiko", "Aimi", "Aina", "Airi", "Akane", "Akari", "Akemi", "Aki", "Akiko", "Akira", "Ami", "Anna", "Aoi", "Asuka", "Atsuko", "Aya", "Ayaka", "Ayako", "Ayame", "Ayane", "Ayano", "Ayumi", "Chidori", "Chie", "Chihiro", "Chika", "Chikako", "Chinatsu", "Chiyo", "Chiyoko", "Cho", "Chou", "Chouko", "Emi", "Erika", "Etsuko", "Futaba", "Fuuka", "Hana", "Hanae", "Hanako", "Haru", "Haruka", "Haruko", "Haruna", "Hibiki", "Hikari", "Hikaru", "Hina", "Hinata", "Hiroko", "Hitomi", "Honoka", "Hoshi", "Hoshiko", "Hotaru", "Izumi", "Junko", "Kaede", "Kana", "Kanako", "Kanon", "Kaori", "Kaoru", "Kasumi", "Kazue", "Kazuko", "Keiko", "Kiku", "Kimiko", "Kiyoko", "Kohaku", "Koharu", "Kokoro", "Kotone", "Kumiko", "Kyo", "Kyou", "Mai", "Maki", "Makoto", "Mami", "Manami", "Mao", "Mari", "Mariko", "Marina", "Masami", "Masuyo", "Mayu", "Megumi", "Mei", "Michi", "Michiko", "Midori", "Miho", "Mika", "Miki", "Miku", "Minako", "Minami", "Minato", "Minoru", "Mio", "Misaki", "Mitsuko", "Mitsuru", "Miu", "Miyako", "Miyu", "Mizuki", "Moe", "Momoka", "Momoko", "Moriko", "Nana", "Nanako", "Nanami", "Nao", "Naoko", "Naomi", "Naoto", "Natsuki", "Natsuko", "Natsumi", "Noa", "Noriko", "Ran", "Rei", "Ren", "Riko", "Rin", "Rina", "Rio", "Risa", "Sachiko", "Sadayo", "Sae", "Saeko", "Saki", "Sakura", "Sakurako", "Satomi", "Saya", "Sayaka", "Sayuri", "Setsuko", "Shiho", "Shinju", "Shinobu", "Shiori", "Shizuka", "Shun", "Sora", "Sumiko", "Suzu", "Suzume", "Takako", "Takara", "Tamiko", "Tomiko", "Tomoko", "Tomomi", "Tsubaki", "Tsubame", "Tsubasa", "Tsukiko", "Ulala", "Ume", "Umeko", "Wakana", "Yasu", "Yoko", "Yoshi", "Yoshiko", "Youko", "Yua", "Yui", "Yuina", "Yuka", "Yukari", "Yuki", "Yukiko", "Yukino", "Yuko", "Yumi", "Yumiko", "Yuri", "Yuu", "Yuuka", "Yuuki", "Yuuko", "Yuuna", "Yuzuki"]>> <<set setup.japaneseSlaveSurnames = ["Abe", "Adachi", "Akechi", "Amada", "Amagi", "Amano", "Ando", "Aoki", "Aragaki", "Arai", "Arisato", "Ayase", "Dojima", "Ebihara", "Endo", "Fujii", "Fujita", "Fujiwara", "Fukuda", "Fukuda", "Goto", "Hara", "Harada", "Hasegawa", "Hashimoto", "Hayashi", "Honda", "Hoshi", "Ikeda", "Imai", "Inaba", "Inoue", "Iori", "Ishida", "Ishii", "Ishikawa", "Ito", "Kan", "Kaneko", "Kashiwagi", "Kato", "Kawakami", "Kawamura", "Kido", "Kikichu", "Kimura", "Kirijo", "Kirishima", "Kitagawa", "Kobayashi", "Koizumi", "Kondo", "Kos", "Kujikawa", "Kurusu", "Li", "Maeda", "Masuda", "Matsuda", "Matsumoto", "Matsunaga", "Mayuzumi", "Mishima", "Mishina", "Miura", "Miyamoto", "Miyazaki", "Mori", "Morita", "Mtsui", "Murakami", "Murata", "Nakagawa", "Nakajima", "Nakamura", "Nakano", "Nakayama", "Nanjo", "Narukami", "Niijima", "Nishimura", "Noda", "Ogawa", "Okada", "Okamoto", "Ono", "Ota", "Ozawa", "Saito", "Sakai", "Sakamoto", "Sakura", "Sakurai", "Sanada", "Sasaki", "Sato", "Satonaka", "Serizawa", "Shibata", "Shimada", "Shimizu", "Shirogane", "Sonomura", "Sudou", "Suou", "Suzuki", "Takagi", "Takahashi", "Takami", "Takeba", "Takeda", "Takeuchi", "Tamura", "Tanaka", "Tatsumi", "Toudou", "Uchida", "Ueda", "Ueno", "Ueseugi", "Wada", "Wang", "Watanabe", "Yamada", "Yamagishi", "Yamaguchi", "Yamamoto", "Yamashita", "Yamazaki", "Yokoyama", "Yoshida", "Yoshino", "Yuuki"]>> -<<set setup.nigerianSlaveNames = ["Abigail", "Ayomide", "Chinelo", "Dorcas", "Doris", "Esther", "Habeeba", "Hadiza", "Hannah", "Hellen", "Kebe", "Kemi", "Linda", "Marie", "Maris", "Mary", "Mercy", "Michelle", "Olabisi", "Promise", "Redeem", "Rose", "Stella", "Stephanie", "Temitope", "Theresa", "Wendy", "Wisfavour"]>> +<<set setup.nigerianSlaveNames = ["Abigail", "Amina", "Ayomide", "Chinelo", "Dorcas", "Doris", "Esther", "Habeeba", "Hadiza", "Hannah", "Hellen", "Kebe", "Kemi", "Linda", "Marie", "Maris", "Mary", "Mercy", "Michelle", "Olabisi", "Promise", "Redeem", "Rose", "Stella", "Stephanie", "Temitope", "Theresa", "Wendy", "Wisfavour"]>> <<set setup.nigerianSlaveSurnames = ["Abdullahi", "Abu", "Abubakar", "Adebayo", "Adebowale", "Adekoya", "Adekunle", "Adeleye", "Adeniyi", "Adepoju", "Adesina", "Adewumi", "Adeyemi", "Adeyemo", "Afolabi", "Agboola", "Agu", "Ahmed", "Ajayi", "Ajiboye", "Akinola", "Akpan", "Alabi", "Aliyu", "Anyanwu", "Augustine", "Ayoola", "Azeez", "Babalola", "Babatunde", "Balogun", "Bamidele", "Bashir", "Bassey", "Bello", "Brown", "Chukwu", "Daramola", "Dauda", "Effiong", "Emmanuel", "Etim", "Eze", "Garba", "Godwin", "Hassan", "Ibe", "Ibrahim", "Idowu", "Idris", "Ige", "Igwe", "Inyang", "Isah", "Ishola", "Issac", "Jimoh", "John", "Johnson", "Joseph", "Kalu", "Kolawole", "Lawal", "Madu", "Martins", "Michael", "Mohammed", "Momoh", "Moses", "Muhammad", "Musa", "Mustapha", "Nelson", "Njoku", "Nwachukwu", "Nwankwo", "Obi", "Ojo", "Okafor", "Oke", "Okeke", "Okereke", "Okoli", "Okon", "Okonkwo", "Okoro", "Oladipo", "Oladopo", "Olaniyan", "Olanrewaju", "Olayiwola", "Opara", "Orji", "Owolabi", "Paul", "Peter", "Peters", "Raji", "Sadiq", "Salami", "Samuel", "Sani", "Sanni", "Sanusi", "Shehu", "Smith", "Solomon", "Suleiman", "Taiwo", "Tijani", "Uche", "Udoh", "Umar", "Umoh", "Usman", "Williams", "Yahaya", "Yusuf"]>> <<set setup.pakistaniSlaveNames = ["Aanya", "Aisha", "Alayna", "Ameria", "Anam", "Areeba", "Asma", "Asmi", "Ayesha", "Eraj", "Faiza", "Hajra", "Haniya", "Ifrah", "Imama", "Kainat", "Karen", "Kheezran", "Komal", "Krishma", "Leah", "Lintah", "Mahrukh", "Mariam", "Mariyam", "Mishael", "Mizha", "Momna", "Neha", "Noor", "Rabia", "Rameen", "Riasat", "Rida", "Ruby", "Rue", "Saima", "Sajida", "Sana", "Sana", "Sara", "Sarah", "Tooba", "Umara", "Unsa", "Usmaan", "Zainab", "Zainnah", "Zakia", "Zuny"]>> @@ -379,8 +411,8 @@ <<set setup.iranianSlaveNames = ["Aeen", "Angel", "Ashraf", "Assal", "Atousa", "Azin", "Banu", "Bita", "Boshra", "Donya", "Elisa", "Fatemeh", "Fatima", "Ghazaleh", "Goli", "Haniye", "Jaleh", "Katy", "Kiana", "Laleh", "Leila", "Mahdie", "Mandana", "Mania", "Mari", "Maria", "Marjan", "Maryam", "Mehrnaz", "Mina", "Mino", "Mojan", "Nasrin", "Nazanin", "Nazi", "Neda", "Negin", "Nikki", "Niloofar", "Nooshin", "Pani", "Parinaz", "Payvand", "Poone", "Raha", "Raheleh", "Reyhan", "Romi", "Rozhin", "Saba", "Sabs", "Saedeh", "Sajedeh", "Sara", "Sarah", "Saye", "Setareaseman", "Shaghayegh", "Sima", "Soha", "Somaye", "Tooska", "Touska", "Tuska", "Yasamin", "Yasmin", "Zahra", "Zaynab", "Zhila"]>> <<set setup.iranianSlaveSurnames = ["Abbasi", "Ahmadi", "Akbari", "Alizadeh", "Amini", "Amiri", "Asadi", "Ayari", "Azizi", "Bagheri", "Boroumand", "Darvish", "Ebrahimi", "Eftekhari", "Farzan", "Ghasemi", "Gholami", "Ghorbani", "Gilani", "Hashemi", "Heidari", "Hosseini", "Jafari", "Jahangiri", "Karimi", "Kazemi", "Lashgari", "Mahabadi", "Maleki", "Mohamadi", "Mohammadi", "Moradi", "Mousavi", "Mustafazadeh", "Najafi", "Najafzadeh", "Nazari", "Rafati", "Rahimi", "Rahmani", "Razaei", "Rouhani", "Sadeghi", "Salehi", "Satrapi", "Sharifi", "Soltani", "Taheri", "Veisi", "Yousefi", "Zadeh", "Zamani", "Zare"]>> -<<set setup.congoleseSlaveNames = ["Aicha", "Amba", "Aminata", "Andreche", "Belcha", "Belinda", "Belvie", "Claire", "Claudia", "Clavidia", "Dan", "Delande", "Divine", "Dorsia", "Duchel", "Durcia", "Fiavina", "Franchelyn", "Frichnelle", "Genicka", "Grace", "Grasnie", "Ingrid", "Isabelle", "Japhet", "Jeanny", "Jodrey", "Julie", "Junelle", "Keicha", "Lady", "Léonie", "Liu", "Lolie", "Lylie", "Maguy", "Marvine", "Mayifa", "Merveille", "Mholie", "Mich", "Nada", "Nicole", "Nuptia", "Patrique", "Pauline", "Peniel", "Reine", "Rihanna", "Ruth", "Sabrina", "Sandra", "Sarah", "Sereine", "Sidorelle", "Stael", "Staelle", "Sylvie", "Valdinelle", "Valentina", "Valerie"]>> -<<set setup.congoleseSlaveSurnames = ["Bahati", "Banza", "Beya", "Bisimwa", "Bokese", "Bokungu", "Botende", "Bukasa", "Elia", "Ibaka", "Ilunga", "Kabamba", "Kabangu", "Kabeya", "Kabongo", "Kadima", "Kalala", "Kalenga", "Kalombo", "Kalonji", "Kambale", "Kasongo", "Kayembe", "Kazadi", "Kazembe", "Kitenge", "Kongolo", "Kyenge", "Lukusa", "Malango", "Matondo", "Mbaya", "Mbuyi", "Mika", "Mondeko", "Mpeko", "Muamba", "Mukendi", "Mulamba", "Mulumba", "Mutombo", "Mvouba", "Mwamba", "Ngandu", "Ngoie", "Ngoma", "Ngoy", "Ntumba", "Nyembo", "Olomide", "Tambwe", "Tshibangu", "Tshimanga", "Youlou", "Zakuani", "Zola"]>> +<<set setup.zairianSlaveNames = ["Aicha", "Amba", "Aminata", "Andreche", "Belcha", "Belinda", "Belvie", "Claire", "Claudia", "Clavidia", "Dan", "Delande", "Divine", "Dorsia", "Duchel", "Durcia", "Fiavina", "Franchelyn", "Frichnelle", "Genicka", "Grace", "Grasnie", "Ingrid", "Isabelle", "Japhet", "Jeanny", "Jodrey", "Julie", "Junelle", "Keicha", "Lady", "Léonie", "Liu", "Lolie", "Lylie", "Maguy", "Marvine", "Mayifa", "Merveille", "Mholie", "Mich", "Nada", "Nicole", "Nuptia", "Patrique", "Pauline", "Peniel", "Reine", "Rihanna", "Ruth", "Sabrina", "Sandra", "Sarah", "Sereine", "Sidorelle", "Stael", "Staelle", "Sylvie", "Valdinelle", "Valentina", "Valerie"]>> +<<set setup.zairianSlaveSurnames = ["Amani", "Amisi", "Assani", "Augustin", "Badibanga", "Bahati", "Banza", "Banze", "Beya", "Bisimwa", "Bokese", "Bokungu", "Bondo", "Botende", "Buhendwa", "Bukasa", "Byamungu", "Congo", "Dieudonné", "Elia", "Fataki", "Ibaka", "Ilunga", "Jean", "Junior", "Kabala", "Kabamba", "Kabambi", "Kabanga", "Kabangu", "Kabasele", "Kabemba", "Kabengele", "Kabeya", "Kabila", "Kabongo", "Kabulo", "Kabuya", "Kabwe", "Kadima", "Kahindo", "Kakule", "Kalala", "Kalambay", "Kalenga", "Kalombo", "Kalonji", "Kalubi", "Kalume", "Kalunga", "Kamba", "Kambale", "Kanda", "Kandolo", "Kaniki", "Kankolongo", "Kanku", "Kanyinda", "Kapinga", "Kasereka", "Kashala", "Kasonga", "Kasongo", "Katanga", "Katembo", "Katende", "Kayembe", "Kayumba", "Kazadi", "Kazembe", "Kinkela", "Kitenge", "Kitoko", "Kongolo", "Kwete", "Kyenge", "Kyungu", "Landu", "Lelo", "Lubamba", "Luboya", "Lukusa", "Lumbala", "Lumbu", "Lutete", "Lutumba", "Luzolo", "Lwamba", "Mabiala", "Mafuta", "Makengo", "Malango", "Maloba", "Mamba", "Mambu", "Mampuya", "Manda", "Mande", "Masengo", "Masiala", "Massamba", "Masudi", "Mata", "Matadi", "Matondo", "Mavinga", "Mavungu", "Mbaki", "Mbala", "Mbaya", "Mbayo", "Mbikayi", "Mbiya", "Mbo", "Mboma", "Mbombo", "Mbula", "Mbumba", "Mbungu", "Mbuya", "Mbuyamba", "Mbuyi", "Mbuyu", "Mika", "Mirindi", "Moke", "Mondeko", "Monga", "Mpeko", "Mpiana", "Mpoyi", "Mputu", "Muamba", "Muanda", "Mubenga", "Muganza", "Mugisho", "Muhindo", "Mujinga", "Mukadi", "Mukalay", "Mukanya", "Mukeba", "Mukendi", "Mukenge", "Mukoko", "Mukuna", "Mulamba", "Mulenda", "Mulongo", "Mulumba", "Mulunda", "Mumba", "Mumbere", "Musafiri", "Mushagalusa", "Mutamba", "Muteba", "Mutombo", "Muyumba", "Mvouba", "Mwamba", "Mwanza", "Mwenze", "Mwepu", "Nawej", "Ndala", "Ndaya", "Ngalamulume", "Ngalula", "Ngandu", "Ngimbi", "Ngoie", "Ngoma", "Ngongo", "Ngoy", "Ngoyi", "Nkongolo", "Nkulu", "Nlandu", "Nsenga", "Nsimba", "Nsumbu", "Ntambwe", "Ntumba", "Numbi", "Nyembo", "Nzau", "Nzuzi", "Olomide", "Omari", "Omba", "Patel", "Ramazani", "Saidi", "Salumu", "Samba", "Sangwa", "Selemani", "Senga", "Shabani", "Tambwe", "Tsasa", "Tshibanda", "Tshibangu", "Tshilumba", "Tshimanga", "Tumba", "Umba", "Vangu", "Wa", "Youlou", "Yumba", "Zakuani", "Zola"]>> <<set setup.frenchSlaveNames = ["Aaliyah", "Abigael", "Adèle", "Adriana", "Adrienne", "Agathe", "Aicha", "Albane", "Alessia", "Alexandra", "Alexia", "Aleyna", "Alia", "Alice", "Alicia", "Alienor", "Aline", "Alix", "Aliya", "Aliyah", "Alizee", "Alya", "Alycia", "Alyssa", "Alyssia", "Amandine", "Ambre", "Ambrine", "Amel", "Amelia", "Amélie", "Amina", "Aminata", "Amira", "Amy", "Ana", "Anae", "Anaelle", "Anaïs", "Anastasia", "Andrea", "Angela", "Angèle", "Angelina", "Angeline", "Anissa", "Anna", "Annabelle", "Annaelle", "Anouk", "Apolline", "Ashley", "Asma", "Assia", "Assya", "Astrid", "Athénaïs", "Audrey", "Augustine", "Aurélie", "Aurore", "Ava", "Awa", "Axelle", "Aya", "Berenice", "Bertille", "Blanche", "Cali", "Calie", "Camelia", "Camille", "Candice", "Capucine", "Carla", "Carmen", "Caroline", "Cassandra", "Cassandre", "Cassie", "Cécile", "Cecilia", "Céleste", "Célestine", "Celia", "Céline", "Celya", "Chahinez", "Chaima", "Charlene", "Charlie", "Charline", "Charlotte", "Chayma", "Chiara", "Chloé", "Claire", "Clara", "Clarisse", "Clea", "Clelia", "Clémence", "Clementine", "Cleo", "Cloé", "Clotilde", "Coline", "Constance", "Coralie", "Cyrielle", "Daphné", "Deborah", "Diana", "Diane", "Dina", "Dounia", "Eden", "Ela", "Elea", "Eleana", "Elena", "Eléonore", "Elia", "Elif", "Elina", "Eline", "Elisa", "Élisabeth", "Élise", "Elissa", "Ella", "Eloane", "Élodie", "Éloïse", "Elona", "Elora", "Elsa", "Elya", "Elyna", "Elyne", "Ema", "Emeline", "Emie", "Émilie", "Emily", "Emma", "Emmanuelle", "Emmie", "Emmy", "Emna", "Emy", "Enola", "Enora", "Erine", "Estelle", "Esther", "Eugénie", "Eva", "Eve", "Eya", "Fanny", "Fantine", "Farah", "Fatima", "Fatma", "Fatoumata", "Faustine", "Flavie", "Fleur", "Flora", "Flore", "Florine", "Gabriella", "Gabrielle", "Gaëlle", "Garance", "Genevieve", "Giulia", "Grace", "Gwenaëlle", "Gwendoline", "Hafsa", "Hajar", "Halima", "Hana", "Hanae", "Hanna", "Hannah", "Hawa", "Helena", "Hélène", "Héloïse", "Hermine", "Hiba", "Hind", "Hortense", "Ibtissem", "Ilana", "Iliana", "Ilona", "Ilyana", "Imane", "Imen", "Imene", "Inaya", "Inès", "Irina", "Iris", "Isaure", "Isis", "Isra", "Izia", "Jade", "Jana", "Janelle", "Janna", "Jasmine", "Jeanne", "Jenna", "Jessica", "Jihane", "Joan", "Joana", "Johanna", "Joséphine", "Joy", "Joyce", "Judith", "Julia", "Julie", "Juliette", "Juline", "Justine", "Kahina", "Kaina", "Kamelia", "Kayla", "Kayna", "Kelia", "Kelly", "Kelya", "Kenza", "Kessy", "Khadija", "Kiara", "Kim", "Kimberley", "Kyara", "Laetitia", "Lalie", "Laly", "Lamia", "Lana", "Lara", "Laura", "Laure", "Laurine", "Layana", "Léa", "Leana", "Leane", "Leanne", "Leelou", "Leia", "Leila", "Leina", "Lena", "Leona", "Léonie", "Leyna", "Lia", "Liana", "Lila", "Lilas", "Lili", "Lilia", "Lilie", "LiliRose", "Lilly", "Lilou", "Lilwenn", "Lily", "Lilya", "LilyRose", "Lina", "Linda", "Lindsay", "Line", "Lisa", "Lise", "Lison", "Livia", "Liya", "Loane", "Loanne", "Lois", "Lola", "Lorena", "Lou", "Louane", "Louann", "LouAnn", "Louanne", "LouAnne", "Louisa", "Louise", "Louison", "Louna", "Luce", "Lucia", "Lucie", "Lucile", "Lucille", "Lucy", "Ludivine", "Luna", "Lya", "Lyana", "Lydia", "Lylia", "Lylou", "Lyna", "Madeleine", "Mae", "Maelia", "Maelie", "Maeline", "Maëlle", "Maelly", "Maellys", "Maely", "Maelyne", "Maëlys", "Maelyss", "Maeva", "Maia", "Maily", "Mailys", "Maimouna", "Maina", "Maissa", "Maissane", "Maiwenn", "Malak", "Malia", "Manel", "Manelle", "Manon", "Margaux", "Margot", "Maria", "Mariam", "Marie", "Marilou", "Marina", "Marine", "Marion", "Marwa", "Maryam", "Marylou", "Mathilde", "Maud", "Maya", "Maylis", "Mayssa", "Meissa", "Mélanie", "Melia", "Melina", "Melinda", "Méline", "Mélissa", "Mellina", "Melodie", "Melody", "Melyna", "Melyne", "Meriem", "Meryem", "Mia", "Mila", "Milla", "Mina", "Mona", "Morgane", "Mya", "Myriam", "Nada", "Naelle", "Naia", "Naila", "Naima", "Nais", "Naomi", "Naomie", "Nawel", "Naya", "Nayla", "Neila", "Nelia", "Nell", "Nesrine", "Neyla", "Nina", "Ninon", "Nisa", "Noa", "Noelie", "Noeline", "Noémie", "Nola", "Nora", "Norah", "Nour", "Océane", "Olivia", "Ophélie", "Oriane", "Orlane", "Ornella", "Paloma", "Paola", "Pauline", "Pénélope", "Perrine", "Philippine", "Philomène", "Prune", "Rachel", "Rahma", "Rania", "Raphaëlle", "Rébecca", "Romane", "Romy", "Rosalie", "Rose", "Roxane", "Sabrina", "Sacha", "Safa", "Safia", "Safiya", "Sakina", "Salma", "Salomé", "Samia", "Sana", "Sara", "Sarah", "Sasha", "Savannah", "Selena", "Selene", "Selma", "Serena", "Shaima", "Shaina", "Shana", "Shanna", "Shayna", "Sherine", "Sidonie", "Sirine", "Sixtine", "Sofia", "Solène", "Soline", "Sonia", "Sophia", "Sophie", "Soraya", "Soukaina", "Soumaya", "Stella", "Suzanne", "Suzie", "Syrine", "Taina", "Talia", "Tamara", "Tania", "Tatiana", "Tess", "Tessa", "Thais", "Thalia", "Thea", "Tiffany", "Tina", "Tiphaine", "Valentine", "Vanessa", "Victoire", "Victoria", "Violette", "Wendy", "Yael", "Yaelle", "Yasmina", "Yasmine", "Youna", "Yousra", "Yuna", "Yvette", "Yvonne", "Zahra", "Zelie", "Zia", "Zoé"]>> <<set setup.frenchSlaveSurnames = ["Andre", "Arnaud", "Arsenault", "Barbier", "Benoit", "Bernard", "Bertrand", "Blanc", "Blanchard", "Bonnet", "Bouvier", "Boyer", "Brun", "Chevalier", "Clement", "Cohen", "Cousteau", "David", "Denis", "Deschamps", "Dubois", "Dufour", "Dumas", "Dumont", "Dupont", "Durand", "Duval", "Fabre", "Faure", "Favreau", "Fontaine", "Fournier", "Francois", "Gaillard", "Garnier", "Gauthier", "Gautier", "Gerard", "Girard", "Giraud", "Guerin", "Henry", "Jean", "Joly", "Lacroix", "Lambert", "Laurent", "Leclerc", "Lefebvre", "Lefevre", "Legrand", "Lemaire", "Leroux", "Leroy", "Levy", "Lucas", "Marchand", "Marie", "Martin", "Masson", "Mathieu", "Mercier", "Meunier", "Michel", "Moreau", "Morel", "Morin", "Nicolas", "Noel", "Olivier", "Paris", "Perrin", "Petit", "Phillipe", "Picard", "Pierre", "Renaud", "Richard", "Robert", "Robin", "Roche", "Rousseau", "Roussel", "Roux", "Roy", "Simon", "Thomas", "Vidal", "Vincent"]>> @@ -548,7 +580,7 @@ <<set setup.sudaneseSlaveNames = ["Amina", "Awmima", "Bakhita", "Fatima", "Halima", "Hawa", "Jalila", "Leila", "Malkat", "Mariam", "Mhadsin", "Muna", "Muram", "Nahid", "Nawal", "Safa", "Tasabih", "Widad", "Yamilé", "Zina"]>> <<set setup.sudaneseSlaveSurnames = ["Abass", "Abbas", "Abd", "Abdalla", "Abdallah", "Abdel", "Abdelbagi", "Abdelgadir", "Abdelrahim", "Abdelrahman", "Abdelwahab", "Abdullah", "Abu", "Adam", "Adil", "Ahmad", "Ahmed", "Alamin", "Ali", "Awad", "Aziz", "Babiker", "Babikir", "Badr", "Bashir", "Dafalla", "Deng", "Elamin", "Elhassan", "Elmahi", "Elsayed", "Elsheikh", "Elsir", "Eltayeb", "Fadul", "Gamal", "Gasim", "Hamid", "Hashim", "Hassan", "Hussein", "Ibrahim", "Idris", "Imam", "Ismail", "Juma", "Kamal", "Khalifa", "Magzoub", "Mahgoub", "Mahmoud", "Makki", "Malik", "Mansour", "Mohamed", "Mohammed", "Mohmed", "Mukhtar", "Musa", "Mustafa", "Nasr", "Nour", "Omar", "Omer", "Osman", "Saad", "Saeed", "Salah", "Salih", "Salim", "Satti", "Sudan", "Suleiman", "Sulieman", "Suliman", "Taban", "Taha", "Yassin", "Younis", "Yousif", "Zain"]>> -<<set setup.iraqiSlaveNames = ["Affifa", "Aida", "Alaa", "Alia", "Amal", "Atika", "Awatef", "Bahija", "Basimah", "Bedia", "Betool", "Danah", "Dunya", "Eaman", "Farida", "Gulustan", "Haifa", "Houzan", "Huda", "Inam", "Kenza", "Leila", "Lihadh", "Maysar", "Maysoon", "Nahla", "Naziha", "Nazik", "Noor", "Nuha", "Raghad", "Rahma", "Rana", "Rihab", "Sahar", "Sajida", "Sajida", "Salima", "Samira", "Shatha", "Sondul", "Suaad", "Sundus", "Thumal", "Thura", "Toba", "Wasma'a", "Yanar", "Zaha", "Zainab"]>> +<<set setup.iraqiSlaveNames = ["Affifa", "Aida", "Alaa", "Alia", "Amal", "Atika", "Awatef", "Bahija", "Basimah", "Bedia", "Betool", "Danah", "Dunya", "Eaman", "Farida", "Gulustan", "Haifa", "Houzan", "Huda", "Inam", "Kenza", "Leila", "Lihadh", "Maysar", "Maysoon", "Nahla", "Nayir", "Naziha", "Nazik", "Noor", "Nuha", "Raghad", "Rahma", "Rana", "Rihab", "Sahar", "Sajida", "Sajida", "Salima", "Samira", "Shatha", "Sondul", "Suaad", "Sundus", "Thumal", "Thura", "Toba", "Wasma'a", "Yanar", "Zaha", "Zainab"]>> <<set setup.iraqiSlaveSurnames = ["Abas", "Abbas", "Abd", "Abdul", "Abdulla", "Abdullah", "Abdulrahman", "Abed", "Abnan", "Abo", "Abood", "Ahmad", "Alani", "Alasadi", "Alazzawi", "Albayati", "Aljanabi", "Amin", "Anwar", "Asaad", "Azad", "Azeez", "Aziz", "Baban", "Emad", "Fadhil", "Faris", "Ghazi", "Hadi", "Haider", "Hama", "Hamed", "Hameed", "Hasan", "Hashim", "Hussain", "Hussein", "Hussien", "Ibrahim", "Ismail", "Issa", "Jaafar", "Jabbar", "Jalal", "Jamal", "Jameel", "Jasim", "Jawad", "Kadhim", "Kadhum", "Kaka", "Kamal", "Kamil", "Kareem", "Khoshnaw", "Kurdi", "Mahdi", "Mahmood", "Mahmoud", "Mahmud", "Majeed", "Mohamad", "Mohamed", "Mohammad", "Mohammed", "Mousa", "Muhamad", "Muhammad", "Muhammed", "Mustafa", "Naji", "Noori", "Omar", "Omer", "Othman", "Qadir", "Qasim", "Qassim", "Raad", "Raheem", "Rahman", "Rasheed", "Saad", "Saadi", "Saeed", "Salah", "Salam", "Saleem", "Saleh", "Salem", "Salih", "Salim", "Salman", "Sami", "Sharif", "Sulaiman", "Sultan", "Taha", "Taher", "Yahya", "Yaseen", "Yassin", "Yousif", "Zangana"]>> <<set setup.uzbekSlaveNames = ["Anora", "Chinara", "Durdona", "Elnura", "Feruza", "Firuza", "Guldasta", "Guli", "Gulnara", "Gulnora", "Indira", "Nargiza", "Olma", "Ona", "Parizoda", "Shahlo", "Shahnoza", "Tahmina", "Umida", "Yulduz", "Zarina", "Zeb"]>> @@ -845,6 +877,112 @@ <<set setup.tonganSlaveNames = ["Ana", "Anaseini", "Angelika", "Cassandra", "Dorothy", "Elisiva", "FakafÄnua", "Fekitamoeloa", "Fifita", "Fusipala", "Hala'evalu", "Halaevalu", "Heu'ifanga", "Hoamofaleono", "Irene", "Kalolaine", "LÄtÅ«fuipeka", "Lavinia", "Luani", "Lusitania", "Mata'aho", "Mele", "Melenaite", "Nanasipau'u", "Neomai", "Papiloa", "Pilolevu", "Rose", "Salote", "SÄlote", "Seini", "Siatukimoana", "Sinaitakala", "Siosiana", "Taina", "Tongovua", "Tuputupu", "Uluvalu", "Virginia"]>> <<set setup.tonganSlaveSurnames = ["Afeaki", "Afu", "Aho", "Ahoafi", "Aholelei", "Akau'ola", "Akauola", "Akolo", "Aleamotua", "Bloomfield", "Cama", "Chen", "Cocker", "Emberson", "Esau", "Fakahua", "Fakaosi", "Fakatava", "Fakatou", "Fakatulolo", "Falekaono", "Faletau", "Fangupo", "Fanua", "Faupula", "Fe'ao", "Fetokai", "Fifita", "Filiai", "Finau", "Fineanganofo", "Folau", "Foliaki", "Fonokalafi", "Fonua", "Fotu", "Fukofuka", "Fulivai", "Funaki", "Fusimalohi", "Guttenbeil", "Hafoka", "Hakaumotu", "Halapua", "Hansen", "Hausia", "Havea", "Havili", "Heimuli", "Helu", "Hoeft", "Hufanga", "Huni", "Ika", "Ilangana", "John", "Jones", "Kaho", "Kaitapu", "Kalaniuvalu", "Kamoto", "Katoa", "Kaufusi", "Kautoke", "Kava", "Kavaliku", "Kim", "Kioa", "Koloamatangi", "Lakai", "Langi", "Latu", "Lavaka", "Lavaki", "Lavemai", "Lee", "Leger", "Leha", "Lemoto", "Leone", "Liava'a", "Lino", "Lokotui", "Lolohea", "Lui", "Lutui", "Maasi", "Mafi", "Mafileo", "Mahe", "Maka", "Malupo", "Manu", "Manuofetoa", "Masila", "Mataele", "Matangi", "Matoto", "Mau", "Mele", "Miller", "Mo'unga", "Moa", "Moala", "Mone", "Moses", "Mounga", "Nadan", "Nakao", "Nau", "Ngauamo", "Nishi", "Niu", "Niukapu", "Ofa", "Oko", "Otuafi", "Otukolo", "Otunuku", "Pahulu", "Palavi", "Palu", "Panuve", "Paongo", "Pasikala", "Paunga", "Pele", "Penitani", "Petelo", "Pohiva", "Polota", "Pongia", "Prasad", "Pulini", "Puloka", "Pulu", "Ramlu", "Salesi", "Schaumkel", "Sela", "Sika", "Smith", "Soakai", "Ta'ai", "Tai", "Taione", "Takai", "Takau", "Talau", "Tangi", "Tapueluelu", "Tatafu", "Taufa", "Taufatofua", "Taukolo", "Taumoepeau", "Taungakava", "Tausinga", "Tautua'a", "Tei", "Telefoni", "Thomas", "Toa", "Tohi", "Tongia", "Toutai", "Tu'inukuafe", "Tu'ipulotu", "Tu'ivakano", "Tuakoi", "Tufui", "Tuihalamaka", "Tuineau", "Tuionetoa", "Tuipulotu", "Tuita", "Tuitupou", "Tuivai", "Tuku'aho", "Tukuafu", "Tupou", "Tupouniua", "Ulakai", "Vaenuku", "Vailea", "Vaipulu", "Vaipuna", "Vaisima", "Vaitai", "Vaka", "Vakasiuola", "Vakauta", "Vave", "Vea", "Vehikite", "Veikoso", "Vete", "Vi", "Wang", "Wolfgramm"]>> +<<set setup.catalanSlaveNames = ["Aina", "Ana", "Àngels", "Anna", "Annabel", "Antònia", "Carla", "Carmen", "Clara", "Cristina", "Elisabeth", "Elvira", "Emma", "Empar", "Esther", "Irene", "Isabel", "Julià ", "Júlia", "Laia", "Laura", "Lola", "Lucia", "Lydia", "MagalÃ", "Marcella", "Maria del Pilar", "Maria", "MarÃa", "Martina", "Maruja", "Mercedes", "Mònica", "Noa", "Núria", "Olga", "Paula", "Rosa", "Roser", "Samanta", "Soledad", "Teresa", "Zenobia"]>> +<<set setup.catalanSlaveSurnames = ["Altafaj", "Amela", "Andreu", "BadÃa", "Ballesta", "Bertran", "Canal", "Carret", "Casamajó", "Castarà ", "Cubas", "Fà brega", "Farran", "Folguera", "Forns", "González", "Guillamon", "Junqueras", "Karr", "Mas", "Moliner", "Monserdà ", "Montalbán", "Montanyà ", "Monzó", "Mulder", "Nopca", "Pagans", "Partal", "Pla", "Plaja", "Polo", "Puig", "Puigdemont", "Puyal", "Sagi", "Sala", "Saladrigas", "Sancho", "Sanllorente", "Terribas", "Tortajada", "Villar", "Xammar"]>> + +<<set setup.equatoguineanSlaveNames = ["Adriana", "Ana", "Bibiana", "Blessing", "Camila", "Carmen", "Carolina", "Christelle", "Constancia", "Cristina", "Dorine", "Emilia", "Emiliana", "Esperanza", "Flor", "Genoveva", "Gloria", "Isabel", "Jade", "Juliana", "Laetitia", "Lúcia", "Lucrecia", "Magdalena", "Mari", "MarÃa del Carmen", "MarÃa Teresa", "MarÃa", "Marlene", "Milagrosa", "Natalia", "Paula", "Paz", "Pilar", "Raquel", "Rosa", "Ruth", "Sinforosa", "Teresa"]>> +<<set setup.equatoguineanSlaveSurnames = ["Abaga", "Abeso", "Ada", "Adugu", "Aguilera", "Ahmad", "Akapo", "Alo", "Alogo", "Alvarez", "Andeme", "Angono", "Angue", "Aniceto", "Antai", "Asumu", "Avomo", "Ba", "Bacale", "Bah", "Bakale", "Barleycorn", "Bela", "Belope", "Bibang", "Bielo", "Bindang", "Bioko", "Biyogo", "Blanco", "Boho", "Borico", "Cabrera", "Camara", "Chicampo", "Cisse", "Collins", "Conde", "Conten", "Coulibaly", "Cruz", "Davies", "Diallo", "Diawara", "Diaz", "Diop", "Diouf", "Dominguez", "Doucoure", "Dougan", "Ebang", "Ebong", "Ebuka", "Edjang", "Edu", "Efa", "Eg", "Ela", "Ele", "Elo", "Eneme", "Engo", "Engonga", "Engono", "Esono", "Esteban", "Esuba", "Eyama", "Eyang", "Eyene", "Fakih", "Fernandes", "Fernandez", "Ferreira", "Garca", "Garcia", "Gomez", "Gonzalez", "Gueye", "Guinee", "Hassan", "Hernandez", "Ibrahim", "Iyanga", "Jackson", "Jean", "Jimenez", "Johnson", "Jones", "Jose", "Keita", "King", "Koffi", "Kouassi", "Lawson", "Lee", "Lima", "Lohoba", "Lopez", "Luna", "Malabo", "Man", "Mane", "Manga", "Mangue", "Martin", "Martinez", "Martins", "Maye", "Mba", "Mbana", "Mbang", "Mbo", "Mbomio", "Medja", "Memba", "Mengue", "Micha", "Miko", "Mitogo", "Modjo", "Molina", "Molongua", "Momese", "Monsuy", "Motu", "Mpanga", "Muñoz", "Nana", "Nchama", "Ncogo", "Ndjeng", "Ndong", "Ndongo", "Ngo", "Ngomo", "Ngua", "Nguema", "Niang", "Njoya", "Nkulu", "Nsang", "Nsue", "Ntongono", "Ntutumu", "Nzang", "Nze", "Obama", "Obiang", "Obono", "Okenve", "Oko", "Okomo", "Oliveira", "Olo", "Oma", "Ona", "Ondo", "Onguene", "Orichi", "Orobiyi", "Osa", "Ovono", "Owono", "Oyana", "Oyono", "Paz", "Pereira", "Perez", "Ramirez", "Rivas", "Rodrigues", "Rodriguez", "Rojas", "Roku", "Rondo", "Saleh", "Salomon", "Sam", "Sanchez", "Santos", "Segorbe", "Seriche", "Shaw", "Silva", "Sima", "Sissoko", "Slabý", "Smith", "Sow", "Teixeira", "Thomas", "Thompson", "Toichoa", "Traore", "Wafo", "Williams", "Wong", "Yao", "Young"]>> + +<<set setup.frenchPolynesianSlaveNames = ["Béatrice", "Célestine", "Cheyenne", "Gina", "Heikapu", "Henriette", "Hereiti", "Hina", "Hinano", "Hinarere", "Jeanne", "Jocelyne", "Karina", "Maeva", "Mareva", "Marie", "Moea", "Moeata", "Poema", "Rita", "Taïna", "Tarita", "Teura", "Tiare", "Titaina", "Titaua", "Vaea", "Vaitiare"]>> +<<set setup.frenchPolynesianSlaveSurnames = ["Adams", "Alexandre", "Amaru", "Amo", "Arai", "Atger", "Aumeran", "Bambridge", "Barff", "Bellais", "Bennett", "Bernard", "Bessert", "Bonnefin", "Bonnet", "Bonno", "Boosie", "Bordes", "Brodien", "Brothers", "Brotherson", "Buchin", "Buillard", "Chan", "Chang", "Chansin", "Chen", "Cheung", "Chin", "Chong", "Chung", "Clark", "Colombani", "Cowan", "Dauphin", "David", "Deane", "Dexter", "Domingo", "Doom", "Doucet", "Drollet", "Dubois", "Dupont", "Durand", "Estall", "Ferrand", "Flohr", "Flores", "Frogier", "Fuller", "Garbutt", "Garcia", "Garnier", "Gooding", "Grand", "Guilloux", "Guyot", "Haiti", "Hamblin", "Hapairai", "Hart", "Hauata", "Haumani", "Ho", "Holman", "Hunter", "Ioane", "Itchner", "Jamet", "Johnston", "Juventin", "Lai", "Laille", "Lao", "Lau", "Laurent", "Law", "le Gall", "Leboucher", "Lee", "Lehartel", "Lemaire", "Lenoir", "Leou", "Li", "Liao", "Lo", "Lucas", "Ly", "Mai", "Maitere", "Mamatui", "Manate", "Manea", "Manutahi", "Mare", "Marie", "Mariteragi", "Martin", "Martinez", "Maurin", "Mercier", "Michel", "Mou", "Mu", "Nicolas", "Nouveau", "Nui", "Pambrun", "Paofai", "Parker", "Pasquier", "Peni", "Perez", "Perry", "Petit", "Picard", "Putoa", "Quesnot", "Raapoto", "Raoulx", "Rey", "Richard", "Richmond", "Robert", "Roche", "Rochette", "Sacault", "Sage", "Salmon", "Sandford", "Sanford", "Shan", "Siu", "Smith", "Taerea", "Tahuhuterani", "Taiarui", "Tama", "Tamarii", "Tang", "Tapi", "Taputu", "Taputuarai", "Tarahu", "Taruoura", "Tauatiti", "Tauraa", "Tauru", "Tautu", "Tchen", "Teai", "Teamo", "Teamotuaitau", "Teariki", "Tefaatau", "Tehahe", "Teheiura", "Tehoiri", "Teihotaata", "Teihotu", "Teinauri", "Teissier", "Teiva", "Temaiana", "Temarii", "Temauri", "Tepa", "Terai", "Teriierooiterai", "Teriipaia", "Teriitahi", "Teriitehau", "Terorotua", "Tetuanui", "Teuira", "Thomas", "Tihoni", "Tinorua", "Tixier", "Toomaru", "Tuairau", "Tuheiava", "Tumahai", "Tunutu", "Utia", "Vaiho", "Vernaudon", "Vidal", "Viriamu", "Vivish", "Voirin", "Vongue", "Wan", "Williams", "Wöhler", "Wong", "Yau", "Yu"]>> + +<<set setup.kurdishSlaveNames = ["Ajamê", "Aynur", "AyÅŸe", "Bahîya", "Dashni", "Dilek", "Dillberê", "Fehriye", "Fidan", "Gulhat", "Helan", "Houzan", "Hozan", "Ismahan", "Lana", "Leyla", "Najla", "Nalin", "Nayir", "Neda", "Nur", "Perwin", "Rojda", "Sakine", "Sebahat", "Sihadet", "Soraya", "Widad", "Xafshê", "Zînê", "Zuhal"]>> +<<set setup.kurdishSlaveSurnames = ["Ahmad", "Ahmed", "Al-Atrushi", "Al-Maliki", "Ali", "Amin", "Ata", "Ayna", "Baban", "Bapir", "Barzanji", "Baydemir", "Birdal", "Buldan", "Dabagh", "Demir", "Güven", "Huso", "Irmak", "Kalkan", "Karima", "Krekar", "Kurtulan", "Mahmoud", "Mamand", "Muhammed", "Mustafa", "Nouri", "Omar", "Omer", "Othman", "Özsökmenler", "Rahim", "Ramazan", "Saleh", "Salih", "Sayfour", "Shaways", "Sindi", "Tuncel", "Uthman", "Wahby", "Zana", "Ziad"]>> + +<<set setup.tibetanSlaveNames = ["Bhuti", "Chingdrol", "Choedon", "Choenyi", "Chokey", "Chokphel", "Damchoe", "Dawa", "Dema", "Dhundup", "Dickey", "Dicki", "Dolkar", "Dolma", "Dorjee", "Drolma", "Gyatso", "Gyurmey", "Jampa", "Jamyang", "Jangchup", "Jetsun", "Jungney", "Karma", "Kelsang", "Khando", "Kunchok", "Kunga", "Lekhshey", "Lhakpa", "Lhamo", "Lhawang", "Magyal", "Metok", "Namdak", "Namdol", "Namgyal", "Ngonga", "Norbu", "Nyima", "Paljor", "Passang", "Pema", "Pemba", "Phuntsok", "Rabgyal", "Rabten", "Rangdol", "Rigsang", "Rigzin", "Rinchen", "Samdup", "Samten", "Sangyal", "Sonam", "Soname", "Tashi", "Tenzin", "Tsering", "Tseten", "Tsomo", "Tsundue", "Wangchuk", "Wangmo", "Wangyag", "Woeser", "Woeten", "Yangkey", "Yuying"]>> +<<set setup.tibetanSlaveSurnames = ["Beru", "Bumsa", "Cezhug", "Chang", "Chen", "Choephel", "Choeyang", "Choling", "Chungtak", "Cui", "Dhondup", "Dhundup", "Dolma", "Dongkar", "Dorje", "Dorjee", "Gyalpo", "Gyaltsen", "Gyatso", "Jamcan", "Jigme", "Khyentse", "Kyab", "Kyi", "Lhamo", "Li", "Losal", "Losang", "Ming", "Mipham", "Namdak", "Namgyal", "Ngapoi", "Norbu", "Nyatri", "Nyidron", "Nyingpo", "Pema", "Phagpa", "Puncog", "Rinpoche" "Chhoyang", "Sangay", "Songtsen", "Tashi", "Tenzin", "Tethong", "Thondup", "Tobgyal", "Topgyal", "Trizin", "Tsechu", "Tsemo", "Tsering", "Wangdi", "Wangyal", "Wong", "Yang", "Yangchen", "Zheng"]>> + +<<set setup.bissauGuineanSlaveNames = ["Adiato", "Anhel", "Anne", "Antonieta", "Cadi", "Carlina", "Carmen", "Domingas", "Fatumata", "Fidelma", "Filomena", "Francisca", "Graciela", "Isabel", "Jacira", "Jessica", "Leopoldina", "Maria", "Odete", "Rebecca", "Rosa", "Salomea", "Sona", "Sylvia", "Taciana", "Tamara", "Zinha"]>> +<<set setup.bissauGuineanSlaveSurnames = ["Abulai", "Aguayo", "Ake", "Albino", "Alfredo", "Almeida", "Alvarenga", "Alves", "Amancio", "Ano", "Antonio", "Araujo", "Attebi", "Augusto", "Ba", "Bacar", "Bafata", "Bah", "Bald", "Balde", "Baltazar", "Bamba", "Banjai", "Barai", "Barbosa", "Bari", "Barros", "Barry", "Batista", "Bernardo", "Biague", "Biai", "Bissau", "Boissy", "Brakwah", "Brandao", "Ca", "Cabral", "Caetano", "Camara", "Campal", "Campos", "Cande", "Cante", "Cardoso", "Carlos", "Carvalho", "Casimiro", "Cassama", "Coly", "Conte", "Correia", "Costa", "Coumbassa", "Cuino", "Cunha", "da Costa", "da Cunha", "da Silva", "Daba", "Dabo", "Danfa", "Danso", "Darame", "Dauda", "de Carvalho", "de Pina", "Delgado", "Diallo", "Diamanka", "Dias", "Diatta", "Dieme", "Djalo", "Djassi", "Djata", "Djau", "Djeme", "Domingos", "dos Reis", "dos Santos", "Duarte", "Embalo", "Esteves", "Evora", "Fati", "Fernandes", "Fernando", "Ferreira", "Fonseca", "Fortes", "Furtado", "Gama", "Goia", "Gomes", "Gomis", "Goncalves", "Gonzalez", "Gueye", "Guine", "Handem", "Henriques", "Iala", "Ie", "Indami", "Indi", "Indjai", "Injai", "Jalo", "Jamanca", "Jaquite", "Jassi", "Joao", "Jose", "Junior", "Keita", "Konan", "Lima", "Lopes", "Lourenço", "Luis", "Malam", "Mamadu", "Manafa", "Mane", "Manga", "Mango", "Manuel", "Mario", "Marques", "Martinho", "Martins", "Master", "Mendes", "Mendonça", "Mendy", "Miranda", "Monteiro", "Moreira", "Nancassa", "Nanque", "Ndiaye", "Nhaga", "Nunes", "Ocante", "Oliveira", "Paralta", "Pedro", "Pereira", "Piña", "Pinto", "Pires", "Quade", "Quebe", "Queita", "Quintino", "Raj", "Ramos", "Reis", "Ribeiro", "Robalo", "Rocha", "Rodrigues", "Sa", "Saliu", "Sambu", "Sampa", "Sanca", "Sanches", "Sane", "Sanha", "Sani", "Sano", "Santos", "Saqui", "Seco", "Seide", "Seidi", "Semedo", "Sene", "Sharma", "Siga", "Sila", "Silva", "So", "Soares", "Sousa", "Souza", "Sow", "Stevens", "Tamba", "Tavares", "Tchuda", "Te", "Teixeira", "Traore", "Türe", "Varela", "Vaz", "Vieira"]>> + +<<set setup.chadianSlaveNames = ["Agnes", "Albertine", "Amani", "Angela", "Arafa", "Bibiro", "Bourkou", "Carine", "Christine", "Delphine", "Elsie", "Fadoul", "Fatime", "Georges", "Hadjé", "Hinda", "Hinikissia", "Jacqueline", "Jodie", "Kalthouma", "Kaltouma", "Louise", "Luiza", "Prudence", "Rosalie", "Sylviane"]>> +<<set setup.chadianSlaveSurnames = ["Abakar", "Abass", "Abba", "Abbas", "Abbo", "Abdallah", "Abdel", "Abdel-Aziz", "Abdelaziz", "Abdelkerim", "Abdelrahim", "Abdelsalam", "Abderaman", "Abderamane", "Abdou", "Abdoulaye", "Abdramane", "Aboubakar", "Adam", "Adamou", "Adannou", "Adoudou", "Adoum", "Ahamat", "Ahmat", "Ahmed", "Alain", "Ali", "Alio", "Alladoum", "Allamine", "Allarassem", "Amine", "Annour", "Appolinaire", "Arabi", "Assane", "Ayoub", "Baba", "Babikir", "Bachar", "Badaoui", "Barka", "Barkai", "Batran", "Beassoum", "Bechir", "Bedoum", "Beguy", "Belem", "Benam", "Beninga", "Beral", "Bichara", "Blague", "Bouba", "Boukar", "Bourma", "Brahim", "Cherif", "Choukou", "Clement", "Commelin", "Constant", "Coulibaly", "Dadi", "Dahab", "Daoud", "Diallo", "Dieudonné", "Djarma", "Djerane", "Djibrine", "Djidda", "Djikoloum", "Djimadoum", "Djimadoumbaye", "Djimbaye", "Djimet", "Doumde", "Doungous", "Dounia", "Elie", "Emmanuel", "Eric", "Fadoul", "Fall", "Fatimé", "Felix", "Fidele", "Fils", "Frederic", "Goni", "Goudja", "Goukouni", "Habib", "Haggar", "Hamat", "Hamdan", "Hamid", "Hamit", "Hamza", "Haroun", "Hassaballah", "Hassan", "Hassane", "Hissein", "Hisseine", "Ibrahim", "Idriss", "Innocent", "Issa", "Jacques", "Jean", "Josiane", "Kabir", "Kanika", "Kara", "Katir", "Khalil", "Khamis", "Kumar", "Li", "Madingar", "Mahamat", "Mahdi", "Maissala", "Malick", "Mallah", "Malloum", "Manga", "Mangue", "Masra", "Matar", "Mbaigoto", "Mbainaissem", "Mbairamadji", "Mbodou", "Mohamed", "Moukhtar", "Moursal", "Moussa", "Moustapha", "Mouta", "Nabia", "Nadji", "Nadjingar", "Narcisse", "Nassour", "Ndouba", "Ngaba", "Ngakoutou", "Ngaro", "Noudjalbaye", "Nour", "Olivier", "Ouchar", "Oumar", "Ousman", "Ousmane", "Outman", "Palebele", "Ramadan", "Ramadane", "Ramat", "Remadji", "Richard", "Rodrigue", "Roland", "Ronel", "Sakal", "Saleh", "Sanoussi", "Seid", "Seidou", "Senoussi", "Sidick", "Silva", "Smith", "Soudy", "Sougui", "Souleyman", "Souleymane", "Soumaine", "Sow", "Taha", "Tahir", "Tao", "Tidjani", "Toko", "Toure", "Traore", "Wang", "Yacoub", "Yaya", "Yerima", "Younous", "Youssouf", "Zakaria", "Zhang"]>> + +<<set setup.comorianSlaveNames = ["Ahamada", "Anlia", "Asmayat", "Ayidat", "Ayouba", "Bahia", "Chamsia", "Coralie", "Denika", "Djoueria", "Faïza", "Feta", "Hadidja", "Hadjira", "Housnati", "Liane", "Nazlati", "Rafida", "Rifka", "Safia", "Salhate", "Sandjema", "Tina", "Touhfat"]>> +<<set setup.comorianSlaveSurnames = ["Abbas", "Abdallah", "Abderemane", "Abdillah", "Abdillahi", "Abdou", "Abdoul", "Abdoul-Karim", "Abdoulkarim", "Abdouroihamane", "Abdullatuf", "Abou", "Aboubacar", "Aboudou", "Adam", "Adinani", "Ahamad", "Ahamada", "Ahamadi", "Ahamed", "Ahmada", "Ahmed", "Alhadhur", "Ali", "Allaoui", "Amina", "Anli", "Assani", "Assoumani", "Athoumani", "Attoumane", "Attoumani", "Azali", "Bacar", "Bazi", "Bedja", "Ben", "ben Abdallah", "ben Abdou", "ben Ali", "Boina", "Boinaheri", "Boinali", "Boura", "Bourhane", "Bourhani", "Chakir", "Chami", "Chamsidine", "Chanfi", "Charif", "Cheikh", "Correa", "Cortes", "Daniel", "Daoud", "Daroueche", "Diaz", "Djae", "Djoumoi", "El-Aziz", "Elamine", "Elarif", "Farhane", "Farid", "Farouk", "Fatima", "Fatouma", "Garcia", "Gomez", "Gonzalez", "Hachim", "Hadidja", "Hadji", "Hafidhou", "Hakim", "Halidi", "Halifa", "Hamada", "Hamadi", "Hamidou", "Hamza", "Harisy", "Haruna", "Hassan", "Hassane", "Hassani", "Himidi", "Houbabi", "Houmadi", "Humblot", "Ibouroi", "Ibrahim", "Ibrahima", "Idarousse", "Idriss", "Ismael", "Issa", "Kalfane", "Kamal", "Kassim", "Khodidas", "Lopes", "Lopez", "Loutfi", "M'Madi", "Maamoune", "Madi", "Mahamoud", "Mahamoudou", "Mansour", "Maoulida", "Marco", "Mari", "Martinez", "Martins", "Massoudi", "Massoundi", "Mbae", "Mbaraka", "Mchangama", "Mdahoma", "Mgomri", "Mhoma", "Mhoudine", "Mhoumadi", "Mina", "Miradji", "Mirghane", "Mlanao", "Mmadi", "Mogne", "Mogni", "Mohamadi", "Mohamed", "Moina", "Moindjie", "Moindze", "Mouhidine", "Mouhtar", "Mouigni", "Moumine", "Mourchid", "Mourdi", "Moussa", "Moustoifa", "Mroivili", "Msahazi", "Msaidie", "Nadjim", "Nakib", "Nashmi", "Nassor", "Nassuf", "Nassur", "Nourdine", "Omar", "Oumouri", "Ousseni", "Papa", "Perez", "Quintero", "Rachad", "Rachid", "Reyes", "Rodrguez", "Roukia", "Saadi", "Saandi", "Sahimi", "Said", "Saidali", "Saindou", "Salim", "Sanchez", "Sidi", "Silai", "Silva", "Sitti", "Smith", "Soidri", "Soidridine", "Soilihi", "Soudjay", "Souef", "Soulaimana", "Soule", "Suarez", "Tabibou", "Taoufik", "Tourqui", "Toybou", "Wu", "Yahaya", "Youssouf", "Zaid", "Zainati", "Zakaria", "Zen", "Zoubert"]>> + +<<set setup.ivorianSlaveNames = ["Adé", "Adjoua", "Affoussiata", "Alimata", "Amenan", "Angèle", "Anna", "Annabelle", "Anne-Marie", "Anne", "Audrey", "Aya", "Chantal", "Christelle", "Christiane", "Christine", "Claudia", "Constance", "Desiree", "Dobet", "Dominique", "Elise", "Emma", "Fatou", "Fatoumata", "Grace", "Henriette", "Jacqueline", "Joana", "Josette", "Maimouna", "Marguerite", "Mariam", "Marie-Thérèse", "Marie", "Mathilde", "Micheline", "Nayanka", "Pascale", "Paula", "Priscilla", "Rachelle", "Regina", "Rose", "Simone", "Sonia", "Tanella", "Thérèse", "Vanessa", "Véronique", "Virgine", "Werewere", "Yohou"]>> +<<set setup.ivorianSlaveSurnames = ["Abou", "Achi", "Adingra", "Adje", "Adon", "Adou", "Ahoua", "Ake", "Akpa", "Akre", "Alla", "Allou", "Aman", "Amani", "Amon", "Ange", "Anoh", "Assamoi", "Assemien", "Assi", "Assoumou", "Atse", "Atta", "Bah", "Bakayoko", "Ballo", "Bamba", "Beda", "Benie", "Berte", "Beugre", "Bi", "Bile", "Bini", "Ble", "Boa", "Bogui", "Bohoussou", "Boka", "Bolou", "Boni", "Bosson", "Boua", "Brou", "Camara", "Cherif", "Cisse", "Coulibaly", "Dadie", "Dagnogo", "Dago", "Danho", "Dao", "Dembele", "Diabagate", "Diabate", "Diaby", "Diakite", "Diallo", "Diarra", "Diarrassouba", "Dibi", "Diby", "Die", "Digbeu", "Diomande", "Diop", "Djaha", "Dje", "Djedje", "Dosso", "Doumbia", "Dubois", "Ehouman", "Ehui", "Ekra", "Essoh", "Ettien", "Fadiga", "Fofana", "Gbane", "Gnagne", "Gnahore", "Gnamien", "Goli", "Guede", "Guehi", "Guei", "Gueu", "Gueye", "Irie", "Issa", "Jean", "Kaba", "Kablan", "Kabore", "Kabran", "Kacou", "Kadio", "Kadjo", "Kakou", "Kamagate", "Kamara", "Kanga", "Kangah", "Kante", "Karamoko", "Kassi", "Keita", "Kipre", "Kobenan", "Kodjo", "Koffi", "Komenan", "Kon", "Konan", "Konate", "Kone", "Kore", "Kossonou", "Koua", "Kouacou", "Kouadio", "Kouakou", "Kouam", "Kouame", "Kouao", "Kouassi", "Koudou", "Kouman", "Kourouma", "Koutouan", "Kouyate", "Kpan", "Lago", "Lasme", "Loba", "Loukou", "Maiga", "Malan", "Marie", "Meite", "Mel", "Meledje", "Miezan", "Mobio", "N'Cho", "N'Da", "N'Dri", "N'Goran", "N'Guessan", "N'Zi", "Ncho", "Nda", "Ndri", "Ngoran", "Nguessan", "Niamien", "Niamke", "Oka", "Okou", "Ouattara", "Ouedraogo", "Oulai", "Sako", "Sangare", "Sanogo", "Savane", "Sawadogo", "Seka", "Sekongo", "Seri", "Sery", "Sidibe", "Sie", "Silue", "Soro", "Soumahoro", "Sow", "Sylla", "Tano", "Tanoh", "Tape", "Tia", "Timite", "Toure", "Tra", "Traor", "Traore", "Tuo", "Yao", "Yapi", "Yapo", "Yavo", "Yeboue", "Yeo", "Yoboue", "Yoro", "Zadi", "Zamble"]>> + +<<set setup.mauritanianSlaveNames = ["Aicha", "Aïchetou", "Aïssata", "Aminata", "Bounkou", "Cheikha", "Coumba", "Couro", "Dimi", "Diouma", "Fati", "Fatimatou", "Fatou", "Hawa", "Houleye", "Keera", "Khatou", "Malouma", "Maria", "Mariam", "Maty", "Melissa", "Mintata", "Mubarkah", "Naha", "Um", "Vatma", "Zeina"]>> +<<set setup.mauritanianSlaveSurnames = ["Abd", "Abdallahi", "Abdella", "Abdellahi", "Abderrahmane", "Abdi", "Abdy", "Abeid", "Abeidi", "Abeidy", "Abidine", "Achour", "Ahaimed", "Aheimed", "Ahmed", "Ahmedou", "Alioune", "Allah", "Aly", "Amar", "Anne", "Aw", "Ba", "Baba", "Babah", "Babe", "Babou", "Bah", "Barka", "Barry", "Beibou", "Beilil", "Belkhair", "Belkheir", "Beye", "Bilal", "Blal", "Boilil", "Boubacar", "Boubou", "Bouh", "Bouna", "Boushab", "Brahim", "Camara", "Cheikh", "Cheine", "Cisse", "Cissokho", "Coulibaly", "Dah", "Dahi", "Deh", "Dem", "Demba", "Dia", "Diagne", "Diakite", "Diallo", "Diarra", "Diaw", "Diawara", "Didi", "Dieng", "Dine", "Diop", "Ebeid", "El Abd", "El Abed", "El Barka", "El Bechir", "El Boukhary", "El Hacen", "El Hadj", "El Hassen", "El Hor", "El Id", "El Khair", "El Kheir", "El Kory", "El Mamy", "El Moctar", "El Mokhtar", "El Moustapha", "Elemine", "Eleyatt", "Ely", "Ethmane", "Fall", "Gaye", "Gueye", "Habib", "Haiballa", "Hamadi", "Hamady", "Hamed", "Hamoud", "Hemed", "Imijine", "Issa", "Jeddou", "Jedou", "Jiddou", "Jidou", "Kane", "Kebe", "Keita", "Konate", "Labeid", "Laghdaf", "Lam", "Lebeid", "Lehbib", "Lemine", "Lemrabott", "Limam", "Ly", "M'Bareck", "M'Barek", "M'Baye", "M'Beirick", "M'Beirik", "M'Bodj", "M'Boirick", "M'Haimid", "M'Hamed", "M'Heimid", "Maatalla", "Magha", "Maham", "Mahmoud", "Maleck", "Maouloud", "Massa", "Massoud", "Matalla", "Mbareck", "Meilid", "Meissa", "Merzoug", "Messaoud", "Messoud", "Moctar", "Mohamed", "Mohamedou", "Moussa", "N'Diaye", "N'Dongo", "N'Gaidé", "Najem", "Niang", "Niass", "Oubeid", "Ould", "Oumar", "R'Chid", "Ramdhane", "Sabar", "Said", "Saleck", "Saleh", "Salek", "Salem", "Sall", "Samba", "Sambe", "Sarr", "Seck", "Sghair", "Sid'ahmed", "Sidi", "Sidibe", "Sidiya", "Sleimane", "Sokhona", "Soueidi", "Soueidy", "Soueilem", "Soule", "Soumare", "Sow", "Sy", "Sylla", "Taher", "Taleb", "Tall", "Thiam", "Toure", "Traore", "Vadel", "Val", "Vall", "Wane", "Weiss", "Werzeg", "Yahya", "Yarg", "Zeidane", "Zein", "Zeine"]>> + +<<set setup.mauritianSlaveNames = ["Aimée", "Ameeksha", "Ameenah", "Anais", "Anaïs", "Ananda", "Anita", "Annabelle", "Anne", "Aurelie", "Bessika", "Carole", "Caroline", "Cheyenne", "Christiane", "Christianne", "Cindy", "Daisy", "Dalysha", "Danielle", "Danika", "Dhandevy", "Diya", "Florence", "Françoise", "Geneviève", "Geraldine", "Jacky", "Jenny", "Karen", "Kushboo", "Laetitia", "Leena", "Lindsey", "Maria", "Marie-Aimée", "Marie-Anne", "Marie-Geraldine", "Marie-Natacha", "Marie-Thérèse", "Marie", "Mariella", "Marinne", "Maryse", "Maya", "Melody", "Micaella", "Michelle", "Monique", "Natacha", "Nathacha", "Nirmala", "Nita", "Olivia", "Oona", "Pallavi", "Priscilla", "Ranini", "Sabine", "Sheila", "Shenaz", "Shirin", "Stephanie", "Sylvie", "Thérèse", "Veronique", "Viveka"]>> +<<set setup.mauritianSlaveSurnames = ["Abdool", "Adam", "Angel", "Antoine", "Appadoo", "Appadu", "Armoogum", "Ash", "Atchia", "Aubeeluck", "Augustin", "Babajee", "Bahadoor", "Baichoo", "Balgobin", "Balloo", "Beeharry", "Begue", "Bholah", "Bhoyroo", "Bhujun", "Bhunjun", "Bhurtun", "Bissessur", "Boodhoo", "Boodhun", "Boojhawon", "Boolaky", "Bucktowar", "Bundhoo", "Bundhun", "Carver", "Catherine", "Caunhye", "Chan", "Chetty", "Cheung", "Chummun", "Chung", "Curpen", "Daby", "Damree", "David", "Desvaux", "Devi", "Domah", "Domun", "Dowlut", "Duval", "Dwarka", "Edoo", "Emrith", "Fong", "Francois", "Gilbert", "Gobin", "Goburdhun", "Goder", "Gokhool", "Gokool", "Gopal", "Gopaul", "Gopee", "Govinden", "Gujadhur", "Gungah", "Gungaram", "Gunnoo", "Hardy", "Harel", "Heerah", "Hosany", "Hossen", "How", "Hurry", "Ip", "Jankee", "Jean", "Jeebun", "Jeetoo", "Jeetun", "Jhugroo", "Jhurry", "Jolicoeur", "Joomun", "Joseph", "Jugoo", "Khadaroo", "Khan", "Khodabocus", "Khodabux", "Koenig", "Kowlessur", "Kumar", "Labonne", "Lafleur", "Lagesse", "Lai", "Lam", "Lan", "Lebon", "Lee", "Leung", "Li", "Lim", "Louis", "Luchmun", "Luximon", "Mamet", "Mamode", "Marie", "Maurel", "Maurice", "Michel", "Mohabeer", "Mohamed", "Mohit", "Mohun", "Mootoosamy", "Moutou", "Mudhoo", "Mungroo", "Mungur", "Murday", "Narain", "Narrainen", "Ng", "Nowbuth", "Nunkoo", "Oozeer", "Padaruth", "Panchoo", "Patel", "Paul", "Peerally", "Peerbux", "Peeroo", "Permal", "Perrine", "Persand", "Pierre", "Pillay", "Prayag", "Purmessur", "Raggoo", "Raj", "Rajcoomar", "Ram", "Ramasamy", "Ramasawmy", "Ramchurn", "Ramdenee", "Ramdhony", "Ramdin", "Ramen", "Ramessur", "Ramful", "Ramgoolam", "Ramjaun", "Ramkissoon", "Ramloll", "Ramlugun", "Ramnarain", "Ramphul", "Ramsaha", "Ramsahye", "Ramsamy", "Ramsurrun", "Ramtohul", "Rawat", "Rey", "Rose", "Rughoobur", "Seebaluck", "Seeboruth", "Seechurn", "Seegoolam", "Seeruttun", "Seetohul", "Shah", "Sham", "Sharma", "Sheik", "Singh", "Smith", "Soobarah", "Sookun", "Sunassee", "Sungkur", "Teeluck", "Thomas", "Toolsee", "Tsang", "Tse", "Ujoodha", "Veerapen", "Veerasamy", "Wan", "Wong", "Yan"]>> + +<<set setup.mosothoSlaveNames = ["Alice", "Amelia", "Anna", "Bereng", "Christina", "Constance", "Deborah", "Khauhelo", "Lineo", "Lipolelo", "Litsitso", "M'apotlaki", "Mamokete", "Mamorallo", "Masempe", "Mathato", "Michelle", "Mohato", "Moipone", "Nteboheleng", "Nthona", "Ntlhoi", "Pontso", "Priscilla", "Reitumetse", "Sebongile", "Selloane", "Sheila", "Tabitha", "Tsepang"]>> +<<set setup.mosothoSlaveSurnames = ["Bereng", "Chabeli", "Chobokoane", "Diaho", "Hlalele", "Kabi", "Kali", "Khaketla", "Khalema", "Khetsi", "Khoabane", "Khoeli", "Khomari", "Kolobe", "Lebaka", "Lebesa", "Lebitsa", "Leboela", "Lebona", "Lebusa", "Lechesa", "Lehloenya", "Lehohla", "Lejaha", "Lekhanya", "Lenka", "Lepheana", "Lephoto", "Lepota", "Lerotholi", "Lesaoana", "Lesenyeho", "Letete", "Letseka", "Letsie", "Letsoela", "Letuka", "Lipholo", "Liphoto", "Maama", "Mabaleha", "Mabathoana", "Mabote", "Macheli", "Mafa", "Mafatle", "Mafisa", "Mahao", "Mahase", "Mahloane", "Majara", "Majoro", "Makakole", "Makara", "Makhakhe", "Makhele", "Makhetha", "Makoa", "Makoae", "Malebo", "Malefane", "Maleke", "Maliehe", "Mapetla", "Masilo", "Masoabi", "Masupha", "Matela", "Matete", "Mathaba", "Matla", "Matlali", "Matlanyane", "Matsepe", "Matsoso", "Metsing", "Moabi", "Moahloli", "Moeketsi", "Moeletsi", "Moeti", "Mofoka", "Mofokeng", "Mofolo", "Mohale", "Mohapeloa", "Mohapi", "Mohasi", "Mohasoa", "Mohau", "Mohlomi", "Moiloa", "Mokete", "Mokhele", "Mokhesi", "Mokhethi", "Mokhothu", "Mokitimi", "Mokoena", "Mokoma", "Mokone", "Mokose", "Mokuoane", "Molapo", "Molefe", "Molefi", "Moleko", "Moleleki", "Molelekoa", "Moletsane", "Molisana", "Molise", "Moloi", "Molupe", "Monaheng", "Monare", "Monethi", "Montsi", "Monyake", "Monyane", "Moorosi", "Mopeli", "Moremoholo", "Morojele", "Mosala", "Moshabesha", "Moshoeshoe", "Mosito", "Mosoeunyane", "Mosothoane", "Mota", "Mothae", "Mothibe", "Mothibeli", "Motlomelo", "Motsamai", "Motseki", "Motsoane", "Moyo", "Mphana", "Mpholo", "Mphutlane", "Mpota", "Nhlapo", "Nkhabu", "Nkhahle", "Nkhasi", "Nkoe", "Nkuebe", "Nkune", "Ntaote", "Ntene", "Nteso", "Nthako", "Ntho", "Nthunya", "Ntoi", "Ntsane", "Ntsekhe", "Phafoli", "Phakisi", "Phamotse", "Pheko", "Pitso", "Posholi", "Pule", "Pulumo", "Putsoa", "Putsoane", "Qhobela", "Ramaisa", "Rampai", "Sebatane", "Seboka", "Seeiso", "Sefali", "Sehloho", "Seitlheko", "Sekese", "Sekhesa", "Sekhonyana", "Sekoati", "Sekonyela", "Selebalo", "Sello", "Sephelane", "Shale", "Taoana", "Tau", "Thabane", "Thamae", "Theko", "Thoahlane", "Thokoa", "Thulo", "Tlali", "Tlebere", "Tshabalala", "Tsiu", "Tsolo"]>> + +<<set setup.sierraLeoneanSlaveNames = ["Adelaide", "Aminata", "Baba", "Bernadette", "Bunturabie", "Christiana", "Claudetta", "Constance", "Delia", "Doris", "Elizabeth", "Ella", "Estella", "Eugenia", "Eunice", "Fatmata", "Favour", "Gladys", "Hafsatu", "Haja", "Hassanatou", "Hawanatu", "Isata", "Isha", "Jeillo", "Kadi", "Lucy", "Mabinty", "Maggie", "Marai", "Mariatu", "Mary", "Melrose", "Michaela", "Nenneh", "Ola", "Olivette", "Patricia", "Sama", "Shirley", "Sia", "Yaema", "Youkie", "Zainab"]>> +<<set setup.sierraLeoneanSlaveSurnames = ["Abdulai", "Abu", "Allen", "Allieu", "Alpha", "Amara", "Ansumana", "Aruna", "Augustine", "Bah", "Bakarr", "Bangura", "Banya", "Barrie", "Bassie", "Bayoh", "Beckley", "Bendu", "Blake", "Bockarie", "Boima", "Brewah", "Brima", "Browne", "Bull", "Bundu", "Campbell", "Carew", "Caulker", "Charles", "Coker", "Cole", "Collier", "Conteh", "Coomber", "Daboh", "Daramy", "Dauda", "Davies", "Deen", "Dumbuya", "During", "Faulkner", "Foday", "Fofana", "Fofanah", "Fomba", "Foray", "Fornah", "Freeman", "French", "Ganda", "Gassama", "Gbla", "Gbondo", "Gborie", "George", "Harding", "Hassan", "Hughes", "Ibrahim", "Jabati", "Jabbie", "Jackson", "Jah", "Jalloh", "James", "Janneh", "Jarrett", "Jawara", "Jaward", "John", "Johnny", "Johnson", "Jonah", "Jones", "Juana", "Jusu", "Kabba", "Kabia", "Kaikai", "Kailie", "Kallay", "Kallon", "Kalokoh", "Kamanda", "Kamara", "Kandeh", "Kanneh", "Kanu", "Kargbo", "Karim", "Karimu", "Katta", "Kawa", "Kebbie", "King", "Köker", "Komba", "Konneh", "Konteh", "Koroma", "Kpaka", "Kuyateh", "Lahai", "Lamin", "Lansana", "Lebbie", "Leigh", "Leone", "Lewis", "Luseni", "Macarthy", "Macauley", "Macfoy", "Mansaray", "Marah", "Marrah", "Mason", "Massaquoi", "Mattia", "Mbayo", "Momoh", "Moore", "Moriba", "Moseray", "Musa", "Mustapha", "Nelson-Williams", "Ngegba", "Ngobeh", "Nicol", "Palmer", "Pearce", "Pessima", "Pratt", "Quee", "Rashid", "Renner", "Roberts", "Rogers", "Saccoh", "Saffa", "Saidu", "Sam", "Sama", "Samah", "Samai", "Samba", "Samuels", "Samura", "Sandy", "Sankoh", "Sannoh", "Savage", "Sawaneh", "Sawyerr", "Scott", "Seisay", "Sellu", "Senesie", "Sesay", "Sheriff", "Sierra", "Sillah", "Smart", "Smith", "Sow", "Sowa", "Squire", "Stevens", "Sulaiman", "Suma", "Swaray", "Swarray", "Sylvester", "Tamba", "Tarawali", "Tarawalie", "Tarawallie", "Tarawally", "Taylor", "Tejan", "Tengbeh", "Tholley", "Thomas", "Thompson", "Thoronka", "Timbo", "Tommy", "Tucker", "Turay", "Vandi", "Vandy", "Walker", "Williams", "Wilson", "Wright", "Wurie", "Yambasu"]>> + +<<set setup.swaziSlaveNames = ["Constance", "Gcinile", "Gina", "Hlengiwe", "Jane", "Joy", "Labotsibeni", "Lisa", "Lojiba", "Lomawa", "Lomvula", "Msindvose", "Nicole", "Nosibusiso", "Ntfombi", "Nukwase", "Patricia", "Phumlile", "Priscilla", "Robyn", "Sarah", "Senele", "Seneleleni", "Seneleni", "Sibonelo", "Sikhanyiso", "Sisile", "Sophie", "Taylor", "Temalangeni", "Thuli", "Tibati", "Tinah", "Tsandzile", "Zenani", "Zihlathi"]>> +<<set setup.swaziSlaveSurnames = ["Adams", "Banda", "Bennett", "Bhembe", "Brown", "Bulunga", "Buthelezi", "de Sousa", "Dhladhla", "Dladla", "Dlamini", "Dludlu", "Du-Pont", "Dube", "Earnshaw", "Fakudze", "Gama", "Gamedze", "Gina", "Ginindza", "Groening", "Gule", "Gumbi", "Gumede", "Gumedze", "Gwebu", "Hadebe", "Henwood", "Hlanze", "Hlatshwako", "Hlatshwayo", "Hleta", "Hlope", "Hlophe", "Jele", "Johnson", "Khanyile", "Khoza", "Khumalo", "Kim", "Kunene", "Langa", "Langwenya", "Lee", "Lukhele", "Lushaba", "Mabaso", "Mabila", "Mabilisa", "Mabuza", "Madonsela", "Magagula", "Magongo", "Mahlalela", "Makama", "Makhanya", "Makhubu", "Malambe", "Malaza", "Malindzisa", "Malinga", "Mamba", "Manana", "Manyatsi", "Maphalala", "Maphanga", "Maphosa", "Masango", "Maseko", "Mashwama", "Masilela", "Masina", "Masinga", "Masuku", "Mathabela", "Mathonsi", "Mathunjwa", "Matse", "Matsebula", "Matsenjwa", "Mavimbela", "Mavuso", "Mayisela", "Mazibuko", "Maziya", "Mbatha", "Mbhamali", "Mbingo", "Mbuli", "Mdlovu", "Mdluli", "Mdziniso", "Methula", "Mhlanga", "Mhlongo", "Mkhabela", "Mkhaliphi", "Mkhatshwa", "Mkhombe", "Mkhonta", "Mkhwanazi", "Mkoko", "Mlambo", "Mlangeni", "Mlotsa", "Mncina", "Mndzebele", "Mngometulu", "Mngomezulu", "Mnisi", "Mordaunt", "Motsa", "Moyo", "Mpanza", "Msibi", "Mtetwa", "Mthembu", "Mthethwa", "Mthimkhulu", "Mthupha", "Mtsetfwa", "Mtshali", "Mvubu", "Myeni", "Mzileni", "Ncongwane", "Ncube", "Ndaba", "Ndlangamandla", "Ndlela", "Ndlovu", "Ndwandwe", "Ndzimandze", "Ndzinisa", "Ngcamphalala", "Ngcobo", "Ngozo", "Ngubane", "Ngubeni", "Ngwenya", "Nhlabatsi", "Nhleko", "Nhlengethwa", "Nkabinde", "Nkambule", "Nkonyane", "Nkosi", "Nkwanyana", "Nsibande", "Nsibandze", "Ntshalintshali", "Ntshangase", "Ntuli", "Nxumalo", "Nyawo", "Nyoni", "Nzima", "Patel", "Phiri", "Phungwayo", "Radebe", "Rudd", "Sacolo", "Shabalala", "Shabangu", "Shiba", "Shin", "Shongwe", "Sibanda", "Sibandze", "Sibanyoni", "Sibiya", "Sifundza", "Sigudla", "Sigwane", "Sihlongonyane", "Sikhondze", "Simelane", "Sithole", "Smith", "Stewart", "Sukati", "Taylor", "Tembe", "Tfwala", "Thomo", "Thring", "Thwala", "Tsabedze", "Tshabalala", "Twala", "Vilakati", "Vilakazi", "Vilane", "Xaba", "Zikalala", "Zitha", "Zondo", "Zulu", "Zwane"]>> + +<<set setup.angolanSlaveNames = ["Adriana", "Albina", "Ana", "Anália", "Ângela", "Antónia", "Astrida", "Birgite", "Carla", "Catarina", "Cristina", "Efigênia", "Elsa", "Felismina", "Felizarda", "Fineza", "Guilhermina", "Helga", "Isménia", "Italee", "Jurema", "Kimpa", "Lauriela", "Leila", "Lesliana", "Liliana", "Lourdes", "LuÃsa", "Luzia", "Madalena", "Marcelina", "Maria", "Mariana", "Micaela", "Michele", "Nacissela", "Nádia", "Nadir", "Neide", "Nelsa", "Nguendula", "Palmira", "Paula", "Rosa", "Sofia", "Stiviandra", "Teresa", "Whitney", "Zuleica"]>> +<<set setup.angolanSlaveSurnames = ["Abreu", "Adriano", "Afonso", "Agostinho", "Aguiar", "Alberto", "Alexandre", "Alfredo", "Almeida", "Alves", "Amado", "Amaral", "Amaro", "Ambrosio", "Andrade", "Andre", "Antonio", "Antunes", "Araujo", "Armando", "Assis", "Augusto", "Avelino", "Azevedo", "Baltazar", "Baptista", "Barbosa", "Barros", "Bartolomeu", "Bastos", "Bento", "Bernardo", "Borges", "Brito", "Bumba", "Cabral", "Caetano", "Candido", "Capita", "Cardoso", "Carlos", "Carneiro", "Casimiro", "Celestino", "Chaves", "Clemente", "Coelho", "Conceição", "Conde", "Cordeiro", "Correia", "Cristovao", "Cunha", "da Costa", "da Cruz", "da Silva", "Dala", "de Almeida", "de Carvalho", "de Oliveira", "de Sousa", "Dias", "Dinis", "Diogo", "Domingos", "dos Santos", "Duarte", "Eduardo", "Ernesto", "Estevao", "Esteves", "Faria", "Faustino", "Feliciano", "Felix", "Fernandes", "Fernando", "Ferraz", "Ferreira", "Figueira", "Figueiredo", "Filipe", "Fonseca", "Fortes", "Fortunato", "Francisco", "Franco", "Freitas", "Gabriel", "Gama", "Gaspar", "Gil", "Gomes", "Gonalves", "Goncalves", "Gonga", "Gourgel", "Gouveia", "Guedes", "Guimaraes", "Henrique", "Henriques", "Inacio", "Ingles", "Jacinto", "Jesus", "Joao", "Joaquim", "Joo", "Jorge", "Julio", "Junior", "Justino", "Kiala", "Leite", "Lelo", "Lemos", "Lima", "Lopes", "Lourenço", "Luemba", "Luis", "Macedo", "Machado", "Magalhaes", "Manuel", "Mario", "Marques", "Martinho", "Martins", "Mateus", "Matias", "Matos", "Melo", "Mendes", "Menezes", "Miguel", "Miranda", "Moniz", "Monteiro", "Morais", "Moreira", "Mota", "Moura", "Nascimento", "Neto", "Neves", "Ngola", "Nicolau", "Nogueira", "Nunes", "Oliveira", "Pacheco", "Paim", "Paiva", "Panzo", "Pascoal", "Paulino", "Paulo", "Pedro", "Pereira", "Pimentel", "Pinheiro", "Pinto", "Pires", "Pitra", "Prata", "Quintas", "Rafael", "Reis", "Ricardo", "Rocha", "Rosa", "Salvador", "Sambo", "Sampaio", "Samuel", "Saraiva", "Sardinha", "Sebastiao", "Silvestre", "Simao", "Simoes", "Tati", "Tavares", "Teixeira", "Tomas", "Trindade", "Valente", "Van-Dúnem", "Varela", "Vasconcelos", "Vaz", "Vemba", "Ventura", "Victor", "Viegas", "Vunge", "Xavier", "Zau"]>> + +<<set setup.sahrawiSlaveNames = ["Abba", "Aicha", "Aminatou", "Aziza", "Chafia", "Chaiaa", "Ebhaiya", "Embarka", "Fala", "Fatma", "Fennina", "Khadija", "Luisa", "Mahfuda", "Mayra", "Minatou", "Muieina", "Nadhira", "Thawra"]>> +<<set setup.sahrawiSlaveSurnames = ["Abdelaziz", "Admi", "Ahmed", "Ali", "Allal", "Ameidan", "Amidane", "Bachir", "Badi", "Bassiri", "Bayoun", "Beiba", "Biadillah", "Boukhreis", "Brahim", "Daddach", "Dahane", "Elmoutaoikil", "Fadel", "Ghali", "Haidar", "Hassan", "Kentaui", "Lakhrif", "Lamin", "Mojtar", "Mouloud", "Omar", "Oumar", "Rguibi", "Salem", "Sayed", "Tamek"]>> + +<<set setup.burkinabeSlaveNames = ["Adiza", "Aïssata", "Angèle", "Angelika", "Béatrice", "Bernadette", "Blandine", "Célestine", "Céline", "Chantal", "Elisabeth", "Élodie", "Fanta", "Françoise", "Hanatou", "Irène", "Joséphine", "Karidjatou", "Lætitia", "Mariam", "Mariama", "Marie", "Marlène", "Marthe", "Monique", "Pon-Karidjatou", "Régina", "Rosine", "Salimata", "Sarah", "Séverine", "Sobonfu", "Yao"]>> +<<set setup.burkinabeSlaveSurnames = ["Amadou", "Badini", "Bado", "Badolo", "Bagaya", "Baguian", "Bako", "Balima", "Balma", "Bambara", "Bamogo", "Bance", "Bande", "Bara", "Barro", "Barry", "Bationo", "Bayala", "Bazie", "Belem", "Bikienga", "Birba", "Bolly", "Boly", "Bonkoungou", "Bouda", "Bougma", "Bourgou", "Cisse", "Combari", "Combary", "Compaore", "Congo", "Coulibaly", "Coulidiati", "Dabire", "Dabourgou", "Dabre", "Dah", "Damiba", "Dao", "Dayamba", "Dembele", "Derra", "Diabate", "Diallo", "Dianda", "Diande", "Diao", "Diarra", "Dicko", "Dipama", "Drabo", "Fofana", "Ganame", "Gansonre", "Gnoumou", "Gouba", "Guebre", "Guigma", "Guira", "Guiro", "Hama", "Hamadou", "Hamidou", "Hema", "Hien", "Ilboudo", "Ima", "Kabore", "Kabre", "Kafando", "Kagambega", "Kam", "Kambire", "Kambou", "Kanazoe", "Kando", "Kere", "Ki", "Kiema", "Kiemde", "Kiemtore", "Kiendrebeogo", "Kienou", "Kientega", "Kinda", "Kindo", "Koala", "Koanda", "Kologo", "Konate", "Kone", "Konfe", "Konkobo", "Koudougou", "Kouraogo", "Lankoande", "Lompo", "Maiga", "Mande", "Mano", "Meda", "Millogo", "Naba", "Nabaloum", "Nacanabo", "Nacoulma", "Nadinga", "Namoano", "Nana", "Nare", "Nebie", "Neya", "Niampa", "Nignan", "Nikiema", "Ouali", "Ouattara", "Oubda", "Ouedraogo", "Ouermi", "Ouoba", "Pafadnam", "Pale", "Palenfo", "Pare", "Poda", "Porgo", "Rabo", "Ramde", "Rouamba", "Sagnon", "Sakande", "Sama", "Sana", "Sandwidi", "Sanfo", "Sangare", "Sankara", "Sanogo", "Sanou", "Sare", "Savadogo", "Sawadogo", "Sebgo", "Segda", "Sere", "Sia", "Sidibe", "Simpore", "Sinare", "Soma", "Somda", "Some", "Sonde", "Sore", "Sorgho", "Soro", "Sory", "Soulama", "Sow", "Tall", "Tamboura", "Tankoano", "Tao", "Tapsoba", "Thiombiano", "Tiemtore", "Tiendrebeogo", "Tindano", "Toe", "Tonde", "Tou", "Tougma", "Toure", "Traore", "Yabre", "Yameogo", "Yarga", "Yaro", "Yattara", "Ye", "Yoda", "Yonli", "Yougbare", "Zabre", "Zagre", "Zalle", "Zango", "Zangre", "Zerbo", "Zida", "Zidouemba", "Zongo", "Zore", "Zorome", "Zougmore", "Zoundi", "Zoungrana"]>> + +<<set setup.capeVerdeanSlaveNames = ["Adysângela", "Almada", "Ana", "Bela", "Belinda", "Carla", "Carmen", "Celina", "Cesária", "Crispina", "Cristina", "Débora", "Dulce", "Eileen", "Elida", "Elyane", "Eva", "Fátima", "Francelina", "Gardénia", "Helena", "HermÃnia", "Isaura", "Isménia", "Ivone", "Jade", "Janira", "Karin", "Lenira", "LetÃcia, "Lidiane", "Louisa", "Maria", "Mayra", "Nancy", "Orlanda", "Paula", "Rosângela", "Sónia", "Tatianne", "Vera", "Verona", "Wania", "Yara", "Yolanda"]>> +<<set setup.capeVerdeanSlaveSurnames = ["Abreu", "Afonso", "Aguiar", "Alberto", "Alfama", "Almada", "Almeida", "Alves", "Amado", "Amarante", "Andrade", "Antonio", "Antunes", "Araujo", "Arteaga", "Azevedo", "Baessa", "Balde", "Baptista", "Barbosa", "Barreto", "Barros", "Batalha", "Batista", "Bento", "Bettencourt", "Borges", "Brito", "Cabo", "Cabral", "Camara", "Canuto", "Cardoso", "Carlos", "Carvalho", "Castro", "Centeio", "Cesar", "Chantre", "Coelho", "Correia", "Costa", "Coutinho", "Cruz", "Cunha", "da Cruz", "da Graca", "da Luz", "da Silva", "da Veiga", "David", "de Pina", "Delgado", "Dias", "do Rosario", "Domingos", "dos Reis", "dos Santos", "Duarte", "Dupret", "Estrela", "Evora", "Faria", "Fernandes", "Ferreira", "Ferro", "Fidalgo", "Figueiredo", "Firmino", "Fogo", "Fonseca", "Fontes", "Fortes", "Frederico", "Freire", "Freitas", "Furtado", "Garcia", "Gil", "Gomes", "Gonalves", "Goncalves", "Gonzalez", "Graça", "Helena", "Hernandez", "Horta", "Inocencio", "Jesus", "Joao", "Jorge", "Jose", "Junior", "Landim", "Leal", "Leite", "Levy", "Lima", "Livramento", "Lizardo", "Lobo", "Lopes", "Lubrano", "Luis", "Luz", "Machado", "Maio", "Manuel", "Maria", "Marques", "Martins", "Mascarenhas", "Matos", "Mauricio", "Medina", "Melicio", "Melo", "Mendes", "Mendonça", "Miranda", "Modesto", "Moniz", "Monteiro", "Montrond", "Morais", "Moreira", "Moreno", "Mosso", "Mota", "Moura", "Nascimento", "Nelson", "Neves", "Nobre", "Nogueira", "Nunes", "Oliveira", "Ortet", "Osorio", "Paiva", "Paulo", "Pedro", "Pereira", "Perez", "Pimenta", "Piña", "Pinheiro", "Pinto", "Pires", "Praia", "Querido", "Ramalho", "Ramos", "Rebelo", "Reis", "Rendall", "Ribeiro", "Robalo", "Rocha", "Rodrigues", "Rodriguez", "Rosa", "Rosario", "Sa", "Sanca", "Sancha", "Sanches", "Santana", "Santiago", "Santos", "Semedo", "Sena", "Sequeira", "Silva", "Silveira", "Silves", "Sita", "Smith", "Soares", "Soule", "Sousa", "Spencer", "Spinola", "Tavares", "Teixeira", "Timas", "Tomar", "Varela", "Vasconcelos", "Vaz", "Veiga", "Vera-Cruz", "Verde", "Verissimo", "Vicente", "Vieira", "Vora", "Wahnon", "Wilson", "Xavier"]>> + +<<set setup.motswanaSlaveNames = ["Amantle", "Amelia", "Athaliah", "Barbara", "Bessie", "Botho", "Caitlin", "Carolyn", "Christine", "Deandra", "Emma", "Galefele", "Gaositwe", "Gladys", "Goitseone", "Karabo", "Larona", "Lesego", "Lydia", "Mable", "Makabelo", "Malebogo", "Margaret", "Mmasekgoa", "Mosadi", "Mpule", "Naomi", "Pelonomi", "Ruth", "Samantha", "Sanji", "Sheila", "Shirley", "Siyanda", "Sumaiyah", "Tshotlego", "Unity"]>> +<<set setup.motswanaSlaveSurnames = ["Bagwasi", "Bakwena", "Banda", "Bogatsu", "Boikanyo", "Botha", "Brown", "Busang", "Butale", "Daniel", "David", "Dikgang", "Dintwe", "Disang", "Dube", "Gaborone", "Isaacs", "John", "Johnson", "Joseph", "Kabelo", "Kaisara", "Kenosi", "Kepaletswe", "Kgaodi", "Kgari", "Kgomotso", "Kgosi", "Kgosiemang", "Kgosietsile", "Khama", "Khan", "Khumalo", "Khupe", "Koontse", "Kumar", "Leburu", "Lekoko", "Lesetedi", "Lesole", "Letsholo", "Letshwiti", "Mabote", "Mabutho", "Madisa", "Mafoko", "Magosi", "Maikano", "Malope", "Mangole", "Mannathoko", "Maphane", "Marope", "Marumo", "Maruping", "Masala", "Masalila", "Maseko", "Masilo", "Masole", "Masuku", "Maswabi", "Matenge", "Matlapeng", "Matlhare", "Matlho", "Mbaiwa", "Mbulawa", "Medupe", "Mfolwe", "Mmereki", "Mmolawa", "Mmopi", "Mmusi", "Moagi", "Moalosi", "Moatlhodi", "Moatshe", "Moatswi", "Modisane", "Modise", "Moeng", "Moeti", "Mogapi", "Mogomotsi", "Mogorosi", "Mogotsi", "Moilwa", "Moipolai", "Mokalake", "Mokgethi", "Mokgosi", "Mokgwathi", "Mokobi", "Mokone", "Mokotedi", "Mokwena", "Molapisi", "Molatlhegi", "Molebatsi", "Molefe", "Molefhe", "Molefi", "Molelekwa", "Moloi", "Molosiwa", "Monageng", "Monare", "Monthe", "Montshiwa", "Montsho", "Monyatsi", "Mooketsi", "Mookodi", "Morake", "Morapedi", "Moremi", "Moreri", "Moroka", "Morolong", "Mosarwa", "Mosarwe", "Moseki", "Moses", "Mosinyi", "Mosweu", "Mothibi", "Motlhabane", "Motlhagodi", "Motlogelwa", "Motsamai", "Motsumi", "Motswagole", "Moyo", "Mpofu", "Mudongo", "Ncube", "Ndaba", "Ndlovu", "Nfila", "Ngwako", "Ngwenya", "Nkomo", "Nkwe", "Ntshole", "Nyathi", "Nyoni", "Obuseng", "Oitsile", "Oteng", "Othusitse", "Otukile", "Patel", "Pelaelo", "Phale", "Pheko", "Pheto", "Phiri", "Phuthego", "Pilane", "Pitso", "Pule", "Samuel", "Sebele", "Sebina", "Sebonego", "Sechele", "Segokgo", "Seitshiro", "Sejoe", "Seleka", "Seleke", "Selelo", "Sello", "Seretse", "Serumola", "Sesinyi", "Setlhare", "Sibanda", "Simon", "Singh", "Sithole", "Smith", "Solomon", "Tafa", "Tau", "Tebogo", "Tembo", "Thapelo", "Thebe", "Thekiso", "Thipe", "Thomas", "Tiro", "Tladi", "Tlale", "Tlhalerwa", "Toteng", "Tshekiso", "Tsheko", "Tshukudu"]>> + +<<set setup.somaliSlaveNames = ["Amina", "Amira", "Asha", "Ayaan", "Ayan", "Dada", "Edna", "Elisa", "Fadumo", "Fartun", "Fathia", "Fatima", "Fatimo", "Guduuda", "Halima", "Hawa", "Hawo", "Hibo", "Idil", "Jawahir", "Khadija", "Manal", "Maryam", "Maryan", "Nadifa", "Nasra", "Qamar", "Saado", "Saba", "Safia", "Sahra", "Samia", "Samira", "Saynab", "Sofia", "Ubah", "Waris", "Warsan", "Yasmin", "Yasmine", "Zahra", "Zamzam", "Zara"]>> +<<set setup.somaliSlaveSurnames = ["Aadam", "Aadan", "Abas", "Abdalla", "Abdallah", "Abdi", "Abdikadir", "Abdikarim", "Abdilaahi", "Abdilahi", "Abdillahi", "Abdinoor", "Abdinur", "Abdirahman", "Abdukadir", "Abdulahi", "Abdulkadir", "Abdullahi", "Abdulle", "Abdulrahman", "Abokor", "Abshir", "Abukar", "Abuukar", "Adam", "Adan", "Addow", "Aden", "Ahmad", "Ahmed", "Aidarus", "Aideed", "Alasow", "Ali", "Amiin", "Amin", "Arab", "Arahman", "Artan", "Askar", "Awad", "Awale", "Awed", "Awil", "Axmed", "Barre", "Bashiir", "Bashir", "Bile", "Billow", "Botan", "Cabdalla", "Cabdi", "Cabdilaahi", "Cabdiraxmaan", "Cabdulaahi", "Cadde", "Cade", "Cali", "Cige", "Ciise", "Cilmi", "Cismaan", "Cumar", "Daahir", "Dahir", "Daud", "Dirie", "Diriye", "Duale", "Dualeh", "Egal", "Egeh", "Elmi", "Essa", "Faarah", "Faarax", "Farah", "Gedi", "Geedi", "Gelle", "Gulaid", "Guled", "Gure", "Gutale", "Hagi", "Haji", "Hamud", "Hared", "Hasan", "Hashi", "Hassan", "Hersi", "Hirsi", "Husein", "Hussein", "Ibraahim", "Ibraahin", "Ibrahim", "Iimaan", "Iman", "Isak", "Ismael", "Ismail", "Issa", "Isse", "Jaamac", "Jama", "Jamac", "Jibril", "Jimale", "Kaariye", "Kahin", "Kasim", "Kassim", "Khadar", "Khalif", "Khaliif", "Macalin", "Madar", "Magan", "Mahad", "Mahamed", "Mahamud", "Mahdi", "Maxamed", "Maxamud", "Maxamuud", "Mayow", "Mire", "Mo'alim", "Moalim", "Moallim", "Mohamed", "Mohammed", "Mohamoud", "Mohamud", "Muhumed", "Mukhtar", "Mursal", "Musa", "Muse", "Musse", "Mustafa", "Muumin", "Muuse", "Noor", "Nor", "Nour", "Nur", "Nuur", "Olad", "Olow", "Omar", "Omer", "Osmaan", "Osman", "Qalinle", "Rage", "Roble", "Rooble", "Saciid", "Saed", "Saeed", "Sagal", "Sahal", "Said", "Salaad", "Salad", "Salah", "Saleebaan", "Samatar", "Samater", "Sharif", "Shariif", "Sheik", "Sheikh", "Shire", "Siad", "Siciid", "Singh", "Siyad", "Som", "Suleiman", "Tahlil", "Ugaas", "Warsame", "Weheliye", "Xaaji", "Xaashi", "Xasan", "Xassan", "Xuseen", "Yare", "Yasin", "Yassin", "Yousuf", "Yussuf", "Yusuf", "Yuusuf"]>> + +<<set setup.rwandanSlaveNames = ["Agathe", "Agnes", "Agnès", "Akaliza", "Alice", "Alphonsine", "Alvera", "Anne-Marie", "Anne", "Apollinarie", "Beatha", "Béatrice", "Christine", "Clare", "Claudette", "Daphrose", "Donnatille", "Épiphanie", "Espérance", "Esther", "Fanfan", "Francine", "Gérardine", "Germaine", "Immaculée", "Inmaculle", "Jacqueline", "Jeanne", "Jeannette", "Johanna", "Joy", "Judith", "Julienne", "Laurence", "Louise", "Marcianne", "Maria", "Marie-Solange", "Marie", "Monique", "Odette" "Diane", "Pamela", "Pauline", "Rose", "Rosemary", "Salome", "Scholastique", "Solange", "Sonia", "Stella", "Thérèse", "Valentine", "Victoire", "Yolande"]>> +<<set setup.rwandanSlaveSurnames = ["Asiimwe", "Augustin", "Bahati", "Bayingana", "Bigirimana", "Bimenyimana", "Bizimana", "Bosco", "Bugingo", "Butera", "Byiringiro", "Byukusenge", "Celestin", "Cyubahiro", "Damascene", "Deo", "Dieudonné", "Dusabe", "Dusabimana", "Dusenge", "Dushimimana", "Emmanuel", "Eric", "Gakuba", "Gakwaya", "Gasana", "Gasore", "Gatera", "Gatete", "Habimana", "Habineza", "Habinshuti", "Habiyambere", "Habiyaremye", "Habumugisha", "Habyarimana", "Hagenimana", "Hakizimana", "Harelimana", "Harerimana", "Hategekimana", "Havugimana", "Hirwa", "Hitimana", "Ingabire", "Innocent", "Ishimwe", "Iyakaremye", "Iyamuremye", "Janvier", "Jean", "Kabanda", "Kabera", "Kagabo", "Kalisa", "Kamali", "Kamana", "Kamanzi", "Kanamugire", "Kaneza", "Karangwa", "Karekezi", "Karemera", "Karenzi", "Kayihura", "Kayiranga", "Kayitare", "Kayitesi", "Kayumba", "Kimenyi", "Kubwimana", "Kwizera", "Mahoro", "Maniraguha", "Manzi", "Marie", "Mazimpaka", "Mbabazi", "Mbarushimana", "Minani", "Mucyo", "Mugabe", "Mugabo", "Mugiraneza", "Mugisha", "Mugwaneza", "Muhawenimana", "Muhire", "Muhirwa", "Muhizi", "Muhoza", "Mukamana", "Mukeshimana", "Mukiza", "Munezero", "Munyaneza", "Mupenzi", "Murekatete", "Murenzi", "Musabyimana", "Musafiri", "Mushimiyimana", "Musonera", "Musoni", "Mutabaruka", "Mutabazi", "Mutangana", "Mutesi", "Mutoni", "Muvunyi", "Mwizerwa", "Nahimana", "Ndagijimana", "Ndahayo", "Ndahimana", "Ndahiro", "Ndayambaje", "Ndayisaba", "Ndayisenga", "Ndayishimiye", "Ndikumana", "Ndizeye", "Ngabo", "Ngabonziza", "Ngarambe", "Ngendahayo", "Ngendahimana", "Ngoga", "Nikuze", "Nishimwe", "Niyibizi", "Niyigena", "Niyitegeka", "Niyomugabo", "Niyonkuru", "Niyonsaba", "Niyonsenga", "Niyonshuti", "Niyonzima", "Nizeyimana", "Nkubito", "Nkurunziza", "Nkusi", "Nsabimana", "Nsanzimana", "Nsengimana", "Nsengiyumva", "Nshimiyimana", "Nshuti", "Ntaganda", "Ntakirutimana", "Ntambara", "Ntirenganya", "Ntwali", "Nyandwi", "Nyiraneza", "Nzabonimpa", "Nzayisenga", "Nzeyimana", "Olivier", "Rudasingwa", "Rugamba", "Rukundo", "Rurangwa", "Rutagengwa", "Rutayisire", "Ruzindana", "Shema", "Shyaka", "Sibomana", "Tuyisenge", "Tuyishime", "Tuyishimire", "Tuyizere", "Twagirayezu", "Twahirwa", "Twizeyimana", "Umubyeyi", "Umugwaneza", "Umuhire", "Umuhoza", "Umulisa", "Umurerwa", "Umutesi", "Umutoni", "Uwamahoro", "Uwamariya", "Uwanyirigira", "Uwase", "Uwayezu", "Uwera", "Uwimana", "Uwimbabazi", "Uwineza", "Uwingabire", "Uwiragiye", "Uwitonze", "Uwizeye", "Uwizeyimana", "Valens"]>> + +<<set setup.saoTomeanSlaveNames = ["Alda", "Amelia", "Amélia", "Célia", "Celma", "Conceição", "Elsa", "Francisca", "Fumilay", "Isabel", "Lecabela", "Leopoldina", "Margarida", "Maria", "Naide", "Nana", "Olinda", "Sara", "Sarah", "Sortelina"]>> +<<set setup.saoTomeanSlaveSurnames = ["Abreu", "Afonso", "Agostinho", "Aguiar", "Alcantara", "Alcntara", "Alegre", "Almeida", "Alves", "Amado", "Amorim", "Andrade", "Anjos", "Antunes", "Aragao", "Arago", "Augusto", "Aurelio", "Baguide", "Baia", "Bandeira", "Barbosa", "Barreto", "Barros", "Barroso", "Batista", "Bernard", "Boa", "Bom", "Bonfim", "Borges", "Botelho", "Bragança", "Branco", "Bueno", "Cabral", "Capela", "Cardoso", "Carlos", "Carneiro", "Carvalho", "Castro", "Ceita", "Coelho", "Copinet", "Correia", "Costa", "Couto", "Cravid", "Cristo", "Cruz", "D'Alva", "da Costa", "da Graca", "da Mata", "da Silva", "Daio", "Das", "de Carvalho", "de Castro", "de Ceita", "de Sousa", "del Pino", "Dias", "Diogo", "do Espirito", "Domingos", "Doria", "dos Prazeres", "dos Ramos", "dos Santos", "Espirito", "Esteves", "Fahe", "Fernandes", "Ferreira", "Fonseca", "Fortes", "Franco", "Garcia", "Garrido", "Godinho", "Gomes", "Goncalves", "Gonzales", "Graa", "Graça", "Havenga", "Henriques", "Jesus", "Jose", "Laura", "Leal", "Leite", "Lima", "Loloum", "Lopes", "Loureiro", "Luis", "Major", "Managem", "Mandinga", "Manuel", "Maquengo", "Marques", "Martinho", "Martins", "Mata", "Matata", "Matias", "Matos", "May", "Mendes", "Menezes", "Metzger", "Moita", "Moniz", "Monteiro", "Monteverde", "Morais", "Mota", "Nascimento", "Nazare", "Neto", "Neves", "Novo", "Nunes", "Oliveira", "Paquete", "Paraiso", "Pedroso", "Pereira", "Pimentel", "Piña", "Pinheiro", "Pinto", "Pires", "Pontes", "Posser", "Prado", "Prazeres", "Principe", "Quaresma", "Quintas", "Ramos", "Raposo", "Ratinho", "Reis", "Ribeiro", "Rita", "Rodrigo", "Rodrigues", "Rolim", "Rosamonte", "Rosario", "Sacramento", "Salvaterra", "Sanoussi", "Santana", "Santiago", "Santo", "Santos", "Sarea", "Seca", "Semedo", "Sequeira", "Serodio", "Silva", "Silveira", "Smith", "Soares", "Solange", "Sole", "Sousa", "Stassen", "Tavares", "Tebus", "Teixeira", "Teles", "Timteo", "Tome", "Torres", "Trigueiros", "Trindade", "Trovoada", "Umbelina", "van Gijn", "Varela", "Vaz", "Veiga", "Vera", "Viana", "Vicente", "Viegas", "Vieira", "Vila", "Vilanova", "Vilhete", "Wagner", "Will"]>> + +<<set setup.benineseSlaveNames = ["Adelaide", "Angélique", "Béatrice", "Berthe-Evelyne", "Berthe", "Chantal", "Christine", "Colette", "Edwige", "Elise", "Evelyne", "Fabienne", "Felicia", "Félicite", "Gloria", "Grace", "Isabelle", "Laraïba", "Laure", "Lydia", "Margaret", "Mariam", "Marie-Elise", "Marie", "Noélie", "Odile", "Rafiatou", "Rosine", "Sonya"]>> +<<set setup.benineseSlaveSurnames = ["Aballo", "Abdoulaye", "Aboudou", "Accrombessi", "Adam", "Adamou", "Adande", "Adjagba", "Adjaho", "Adjanohoun", "Adjibi", "Adjovi", "Adoukonou", "Affo", "Agbessi", "Agbo", "Agboton", "Agossa", "Agossou", "Aho", "Ahossi", "Ahouandjinou", "Ahouansou", "Ahounou", "Akadiri", "Akakpo", "Akanni", "Akplogan", "Akpo", "Akpovo", "Alao", "Alapini", "Ali", "Allagbe", "Amadou", "Aminou", "Amoussa", "Amoussou", "Anago", "Anagonou", "Anani", "Anato", "Aniambossou", "Aplogan", "Assani", "Assogba", "Atchade", "Atindehou", "Bada", "Badarou", "Badou", "Bakary", "Balogoun", "Bankole", "Behanzin", "Bello", "Biaou", "Bio", "Boco", "Boko", "Boni", "Bonou", "Bossou", "Boukari", "Bouraima", "Boussari", "Cakpo", "Capo-Chichi", "Chabi", "Chitou", "Codjia", "Codjo", "Codo", "Coffi", "D'Almeida", "da Silva", "Dagba", "Dalmeida", "Dandjinou", "Dansou", "Daouda", "de Souza", "Degbe", "Deguenon", "Djidonou", "Djossa", "Djossou", "do Rego", "Dohou", "Domingo", "Dossa", "Dossou", "Dossou-Yovo", "Dovonou", "Ezin", "Falade", "Fanou", "Fassinou", "Feliho", "Gandaho", "Gandonou", "Gbadamassi", "Gbaguidi", "Gbedo", "Gbenou", "Glele", "Gnacadja", "Gnansounou", "Gnonlonfoun", "Godonou", "Gogan", "Guedegbe", "Hazoume", "Hessou", "Hodonou", "Houenou", "Houessinon", "Houessou", "Houeto", "Houndjo", "Houngbedji", "Houngbo", "Houngue", "Hounkanrin", "Hounkpatin", "Hounkpe", "Hounkponou", "Hounmenou", "Hounnou", "Hounsa", "Hounsinou", "Hounsou", "Hountondji", "Houssou", "Ibrahim", "Idohou", "Idrissou", "Imorou", "Issa", "Kakpo", "Kiki", "Koffi", "Kora", "Kouassi", "Koukoui", "Kouton", "Kpadonou", "Kpanou", "Laleye", "Lassissi", "Lawani", "Legba", "Ligan", "Loko", "Lokonon", "Lokossou", "Mensah", "Migan", "Montcho", "Moussa", "Moustapha", "Nobime", "Odjo", "Oke", "Orou", "Osseni", "Oussou", "Padonou", "Paraiso", "Quenum", "Radji", "Raimi", "Sagbo", "Sagbohan", "Saizonou", "Saka", "Salami", "Salifou", "Sanni", "Senou", "Sessou", "Soglo", "Sossa", "Sossou", "Soule", "Soumanou", "Tchibozo", "Tidjani", "Togbe", "Tossa", "Tossou", "Vigan", "Vodounou", "Yessoufou", "Zannou", "Zinsou", "Zinzindohoue", "Zohoun", "Zossou", "Zounon"]>> + +<<set setup.centralAfricanSlaveNames = ["Adrienne", "Ambroisine", "Andrée", "Anne-Marie", "Anne", "Antoinette", "Béatrice", "Bertille", "Brigitte", "Catherine", "Chloe", "Denise", "Elisabeth", "Emilie", "Henriette", "Jeanne-Marie", "Jeanne", "Joëlle", "Joséphe", "Judith", "Léonie", "Maria-Joëlle", "Maria", "Marie-Joséphe", "Marie", "Mireille", "Solange", "Sylvie"]>> +<<set setup.centralAfricanSlaveSurnames = ["Abakar", "Abdel", "Abdoulaye", "Adam", "Adoum", "Ahamat", "Ahmat", "Aime", "Akondja", "Alain", "Ali", "Anderson", "Anibie", "Anne", "Antoinette", "Awal", "Baba", "Baguida", "Baidou", "Banga", "Bango", "Bangui", "Barthelemy", "Bata", "Bekangba", "Benam", "Bero", "Biamba", "Bienvenu", "Binga", "Bokassa", "Bondo", "Bouba", "Brice", "Bruce", "Bruno", "Camara", "Chaou", "Charles", "Cisse", "Dacko", "Damango", "Darlan", "Diallo", "Dibert", "Dieudonné", "Dimanche", "Djeguede", "Doko", "Donald", "Dondon", "Doumbia", "Ekolo", "Elenga", "Evrard", "Fakhoury", "Fatimé", "Ferdinand", "Florentin", "Foulou", "Gabita", "Gamba", "Garba", "Gervais", "Gilbert", "Gombe", "Gonda", "Gondje", "Goniaga", "Grothe", "Guegbelet", "Guerendo", "Gueret", "Guiyama", "Guy", "Hamidou", "Hassan", "Issa", "Jackson", "Jean", "Joseph", "Junior", "Kaimba", "Kaine", "Kakesa", "Kamach", "Kanga", "Kassa", "Kassai", "Kaya", "Kazangba", "Keita", "Kette", "Khan", "Khatim", "Kodongo", "Koe", "Koffi", "Kombo", "Kone", "Kongbo", "Kongo", "Kopati", "Kossi", "Kossingou", "Koumba", "Magale", "Magba", "Magna", "Mahamat", "Maliki", "Malot", "Mamadou", "Mandaba", "Mandazou", "Mapouka", "Martin", "Matongo", "Mavoungou", "Mayan", "Mbami", "Mbombo", "Mbondji", "Mingala", "Mohamadou", "Moussa", "Nakombo", "Nana", "Ndaoulet", "Ndedi", "Ndiaye", "Ndongo", "Ndouba", "Nembi", "Ngaba", "Ngakola", "Ngana", "Ngaya", "Ngoma", "Ngomba", "Niang", "Nicaise", "Nimaga", "Nyame", "Oria", "Otto", "Ouilibona", "Oumarou", "Ousman", "Patrick", "Perriere", "Pierre", "Poumale", "Poumaye", "Pounaba", "Ramadan", "Rca", "Renaud", "Richard", "Rock", "Rodrigue", "Sakanga", "Sale", "Saleh", "Samba", "Sambo", "Sana", "Sanga", "Sanze", "Sekola", "Serge", "Serville", "Sibiro", "Singa", "Siolo", "Smith", "Sokambi", "Soupene", "Sow", "Sylvestre", "Tanga", "Tete", "Teteya", "Teya", "Thomas", "Vondo", "Wilson", "Yabanda", "Yabouri", "Yadjindji", "Yamale", "Yamba", "Yamissi", "Yamodo", "Yangana", "Yapende", "Yerima", "Zakari", "Zama", "Zanga"]>> + +<<set setup.gambianSlaveNames = ["Adama", "Amie", "Angela", "Augusta", "Belinda", "Bintanding", "Claudiana", "Dolly", "Elizabeth", "Fatim", "Fatima", "Fatou", "Fatoumata", "Georgiana", "Gina", "Hawa", "Isatou", "Jabou", "Janet", "Julia", "Louise", "Mariam", "Marie", "Nancy", "Neneh", "Nyimasata", "Saffie", "Sally", "Sarjo", "Saruba", "Susan", "Teneng", "Victoria", "Zeinab"]>> +<<set setup.gambianSlaveSurnames = ["Adeyemi", "Baba", "Badjan", "Badjie", "Bah", "Bahoum", "Bajo", "Balajo", "Baldeh", "Bangura", "Barry", "Bass", "Bayo", "Bensouda", "Beyai", "Bittaye", "Bobb", "Bojang", "Boy", "Boye", "Buba", "Camara", "Ceesay", "Cham", "Chorr", "Coker", "Colley", "Conteh", "Corr", "Correa", "Daffeh", "Dampha", "Danso", "Darbo", "Darboe", "Dawda", "Deen", "Dem", "Demba", "Diallo", "Diatta", "Dibba", "Diop", "Drammeh", "Dukureh", "Dumbuya", "Faal", "Fadera", "Fatajo", "Fatty", "Faye", "Fofana", "Foon", "Fye", "Gai", "Gassama", "Gaye", "Gibba", "Gitteh", "Hydara", "Jabang", "Jabbi", "Jabbie", "Jadama", "Jagne", "Jah", "Jahateh", "Jaiteh", "Jalloh", "Jallow", "Jammeh", "Janko", "Janneh", "Jarjou", "Jarju", "Jarjue", "Jarjusey", "Jarra", "Jasseh", "Jassey", "Jatta", "Jaw", "Jawara", "Jawla", "Jawneh", "Jawo", "Jaye", "Jeng", "Jobarteh", "Jobe", "Joof", "Jow", "Juwara", "Kabba", "Kah", "Kamara", "Kambi", "Kandeh", "Kanteh", "Kanu", "Kanuteh", "Kanyi", "Kargbo", "Kassama", "Kebbeh", "Keita", "Khan", "Kijera", "Kinteh", "Kolley", "Konateh", "Konteh", "Koroma", "Krubally", "Kujabi", "Kuyateh", "Lamin", "Loum", "Lowe", "Makalo", "Manga", "Manjang", "Manka", "Manneh", "Mansaray", "Marenah", "Marong", "Mballow", "Mbaye", "Mbenga", "Mboge", "Mboob", "Mbowe", "Mbye", "Mendy", "Minteh", "Musa", "Ndiaye", "Ndong", "Ndow", "Ndure", "Ngum", "Nicol", "Njai", "Njie", "Nyang", "Nyass", "Nyassi", "Pa", "Sabally", "Sagnia", "Saho", "Saidy", "Saidykhan", "Saine", "Sallah", "Sama", "Samateh", "Samba", "Sambou", "Sankareh", "Sanneh", "Sanyang", "Sarr", "Sawaneh", "Sawo", "Secka", "Senghore", "Sesay", "Sey", "Sheriff", "Sidibeh", "Sillah", "Sima", "Singhateh", "Sinyan", "Sisawo", "Sisay", "Sise", "Sissoho", "Sohna", "Sonko", "Sosseh", "Sow", "Sowe", "Sumareh", "Suso", "Susso", "Suwareh", "Sylva", "Taal", "Tamba", "Tambajang", "Touray", "Trawally", "Tunkara", "Turay", "Wadda", "Waggeh", "Wally"]>> + +<<set setup.senegaleseSlaveNames = ["Adama", "Adja", "Aicha", "Aida", "Aïda", "Aïssa", "Aissatou", "Aïssatou", "Amina", "Aminata", "Amy", "Angèle", "Annette", "Arame", "Astou", "Awa", "Aya", "Bineta", "Binta", "Bintou", "Caroline", "Catherine", "Cécile", "Constance", "Coumba", "Diana", "Fama", "Fatim", "Fatima", "Fatou", "Fatoumata", "Françoise", "Germaine", "Gisèle", "Gnima", "Hortense", "Isabelle", "Jacqueline", "Jeanne", "Julia", "Julie", "Kéné", "Khadi", "Khadidiatou", "Khadija", "Khady", "Khathia", "Khoudia", "Kiné", "Korka", "Lala", "Lalya", "Maimouna", "Maïmouna", "Mame-Marie", "Mame", "Mamy", "Mareme", "Mariama", "Marie-Sadio", "Marie", "Marieme", "Marième", "Mariètou", "Mata", "Mbarika", "Mbissine", "Myriam", "N'Deye", "Nafi", "Nafissatou", "Ndew", "Ndeye", "Ndèye", "Ndialou", "Ndoye", "Oumou", "Oumoul", "Penda", "Rama", "Ramata", "Ramatoulaye", "Sadio", "Safi", "Safiatou", "Seni", "Sokhna", "Thérèse", "Viviane", "Zeïna"]>> +<<set setup.senegaleseSlaveSurnames = ["Aidara", "Amar", "Anne", "Aw", "Ba", "Babou", "Badiane", "Badji", "Bah", "Bakhoum", "Balde", "Barro", "Barry", "Basse", "Bassene", "Bathily", "Bayo", "Beye", "Biaye", "Biteye", "Bodian", "Boiro", "Bop", "Bousso", "Boye", "Camara", "Ciss", "Cisse", "Cissokho", "Coly", "Correa", "Coulibaly", "Dabo", "Daffe", "Danfa", "Danfakha", "Deh", "Demba", "Dembele", "Deme", "Dia", "Diaby", "Diack", "Diagne", "Diakhate", "Diakhite", "Diakite", "Diallo", "Diamanka", "Diame", "Diane", "Diankha", "Diao", "Diarra", "Diasse", "Diassy", "Diatta", "Diaw", "Diawara", "Diba", "Diedhiou", "Dieme", "Diene", "Dieng", "Dieye", "Diome", "Dione", "Diongue", "Diop", "Diouf", "Dioum", "Djiba", "Djigo", "Djitte", "Doucoure", "Drame", "Fall", "Faty", "Faye", "Fofana", "Gadiaga", "Gano", "Gassama", "Gaye", "Gning", "Gningue", "Gomis", "Goudiaby", "Gueye", "Guisse", "Hane", "Hanne", "Ka", "Kama", "Kamara", "Kande", "Kandji", "Kane", "Kanoute", "Kante", "Kasse", "Kebe", "Keita", "Khoule", "Khouma", "Konate", "Kone", "Konte", "Lam", "Leye", "Lo", "Loum", "Ly", "Mandiang", "Mane", "Manga", "Mangane", "Mansaly", "Mar", "Marone", "Mbacke", "Mballo", "Mbaye", "Mbengue", "Mbodj", "Mbodji", "Mboup", "Mbow", "Mendy", "Ndao", "Ndaw", "Ndiaye", "Ndione", "Ndir", "Ndong", "Ndongo", "Ndour", "Ndoye", "Ngom", "Nguer", "Niane", "Niang", "Niass", "Niasse", "Pene", "Pouye", "Preira", "Sabaly", "Sadio", "Sagna", "Sagne", "Sakho", "Sall", "Samb", "Samba", "Sambe", "Sambou", "Sane", "Sarr", "Seck", "Segnane", "Sene", "Senghor", "Seydi", "Seye", "Sidibe", "Sock", "Sonko", "Souare", "Soumare", "Sow", "Sy", "Syll", "Sylla", "Tall", "Tamba", "Tendeng", "Thiam", "Thiandoum", "Thiao", "Thiare", "Thiaw", "Thiombane", "Thiongane", "Thior", "Thioub", "Thioune", "Thioye", "Tine", "Top", "Tounkara", "Toure", "Traore", "Vilane", "Wade", "Wagne", "Wane", "Wilane", "Willane", "Yade"]>> + +<<set setup.togoleseSlaveNames = ["Abra", "Adjaratou", "Adzo", "Alessia", "Alifatou", "Ama", "Améyo", "Amivi", "Anne-Laure", "Anne", "Bamab", "Christiane", "Cina", "Claire", "Direma", "Florence", "Germaine", "Isabelle", "Jeannette", "Laure", "Mathilde-Amivi", "Mathilde", "Patricia", "Prenam", "Pyabelo", "Sandrine"]>> +<<set setup.togoleseSlaveSurnames = ["Abalo", "Abbey", "Abdel", "Abotchi", "Abotsi", "Adam", "Adamou", "Adams", "Adjivon", "Adom", "Adote", "Afanou", "Affo", "Agba", "Agbessi", "Agbo", "Agbobli", "Agbodjan", "Agboh", "Agbokou", "Agossou", "Ahadji", "Ahmed", "Aholou", "Ajavon", "Akakpo", "Akouete", "Akpo", "Akue", "Alassani", "Ali", "Amadou", "Amah", "Amavi", "Amega", "Amegah", "Amegan", "Ameganvi", "Ametepe", "Amevor", "Amoussou", "Amouzou", "Anani", "Anthony", "Apedo", "Aquereburu", "Arouna", "Assignon", "Assih", "Assogba", "Atayi", "Atsou", "Atsu", "Attiogbe", "Attipoe", "Attisso", "Awesso", "Ayeva", "Ayite", "Ayivi", "Baba", "Barr", "Barry", "Bello", "Benson", "Bodjona", "Bonfoh", "Boukari", "Bouraima", "Bruce", "Camara", "Coulibaly", "D'Almeida", "da Silveira", "Dadzie", "Dansou", "David", "de Souza", "Degbe", "Degboe", "Diallo", "Djagba", "Djobo", "Dogbe", "Dosseh", "Dossou", "Dotse", "Douti", "Dovi", "Edoh", "Edorh", "Eklou", "Eklu", "Ekoue", "Ekue", "Emmanuel", "Esso", "Etse", "Fofana", "Foli", "Folly", "Foster", "Freitas", "Gaba", "Gbati", "George", "Gnassingbe", "Godwin", "Homawoo", "Ibrahim", "Idrissou", "Issa", "Issifou", "John", "Johnson", "Jones", "Joseph", "Kalu", "Kangni", "Kao", "Kassegne", "Klutse", "Kodjo", "Koffi", "Kokou", "Koku", "Kola", "Kolani", "Kombate", "Komi", "Komla", "Komlan", "Kondo", "Kone", "Kossi", "Kouassi", "Kouevi", "Kpade", "Kpadenou", "Kpatcha", "Kpodar", "Kponton", "Kueviakoe", "Lamboni", "Lare", "Lassey", "Lawani", "Lawson", "Lemou", "Locoh", "Logossou", "Lome", "Mark", "Martins", "Mensah", "Messan", "Mohamed", "Morgan", "Moussa", "Mouzou", "Nabine", "Olympio", "Ong", "Ouedraogo", "Ouro", "Palanga", "Prince", "Robert", "Rodrigue", "Salami", "Sam", "Sama", "Sani", "Sassou", "Sedjro", "Sessou", "Smith", "Sodji", "Sokpoh", "Sossou", "Tagba", "Tchalim", "Tchalla", "Tchamdja", "Tchedre", "Teko", "Tengue", "Tete", "Togbe", "Tomety", "Tossou", "Toure", "Traore", "Tsogbe", "William", "Williams", "Wilson", "Yao", "Yaya", "Yovo"]>> + +<<set setup.congoleseSlaveNames = ["Adama", "Addo", "Adélaïde", "Adèle", "Aimée", "Aminata", "Angèle", "Angélique", "Bellore", "Brigitte", "Cecilia", "Céline", "Claudine", "Edith", "Émilienne", "Flore", "Florence", "Francine", "Françoise", "Ghislaine", "Jeanette", "Jeanne", "Jennifer", "Judith", "Julienne", "Lasnet", "Leontine", "Léontine", "Lorène", "Lucie", "Mambou", "Marie-Leontine", "Marie", "Mélanie", "Michelle", "Monika", "Natacha", "Pamela", "Tatiana"]>> +<<set setup.congoleseSlaveSurnames = ["Akouala", "Alain", "Babingui", "Badila", "Bakala", "Balou", "Bantsimba", "Banzouzi", "Batchi", "Bayonne", "Bemba", "Bidounga", "Bienvenu", "Bikindou", "Bilongo", "Bitsindou", "Biyoudi", "Bongo", "Bouanga", "Bouesso", "Bouiti", "Bouity", "Bouka", "Boukaka", "Boumba", "Bounda", "Boungou", "Congo", "Diafouka", "Diallo", "Dibala", "Dieudonné", "Dinga", "Diop", "Doucoure", "Elenga", "Foutou", "Ganga", "Gatse", "Goma", "Ibara", "Ibata", "Ikonga", "Ilunga", "Itoua", "Jean", "Junior", "Kaba", "Kabongo", "Kalala", "Kalonji", "Kasongo", "Kassa", "Kaya", "Kengue", "Kibamba", "Kibangou", "Kimbembe", "Kinouani", "Kitoko", "Kiyindou", "Kodia", "Kokolo", "Kombo", "Kongo", "Koubaka", "Koubemba", "Kouka", "Kouma", "Koumba", "Kounkou", "Landry", "Likibi", "Locko", "Loemba", "Loembe", "Loembet", "Loko", "Loubaki", "Loubassou", "Louzolo", "Mabanza", "Mabiala", "Mabika", "Mabonzo", "Madzou", "Mafouta", "Mahoukou", "Mahoungou", "Makanga", "Makaya", "Makita", "Makosso", "Makouangou", "Makoumbou", "Malanda", "Malela", "Malonga", "Mampassi", "Mampouya", "Mananga", "Mankou", "Massala", "Massamba", "Massanga", "Massengo", "Matoko", "Matondo", "Mavoungou", "Mayala", "Mbama", "Mbani", "Mbemba", "Mberi", "Mboko", "Mbongo", "Mboumba", "Mboungou", "Mendes", "Mfoutou", "Milandou", "Milongo", "Missamou", "Mizere", "Mokoko", "Mombo", "Mongo", "Mouanda", "Mouandza", "Mouanga", "Mouele", "Moukala", "Moukoko", "Mounzeo", "Moussounda", "Moutou", "Mouyabi", "Mpandzou", "Mpassi", "Mpika", "Mulumba", "Nanitelamio", "Ndala", "Ndinga", "Ndongo", "Ndzaba", "Ngakosso", "Nganga", "Ngassaki", "Ngatse", "Ngoma", "Ngouaka", "Ngouala", "Ngoulou", "Ngouma", "Ngoy", "Ngoyi", "Nguimbi", "Nkaya", "Nkodia", "Nkouka", "Nkounkou", "Nombo", "Nsonde", "Nzaba", "Nzambi", "Nzaou", "Nzingoula", "Oba", "Obambi", "Okemba", "Oko", "Okoko", "Okombi", "Ondongo", "Ossebi", "Paka", "Pambou", "Pandi", "Pandzou", "Pangou", "Poaty", "Rodrigue", "Samba", "Sita", "Sitou", "Sylla", "Tati", "Taty", "Tchibinda", "Tchicaya", "Tchikaya", "Tchissambo", "Tchissambou", "Tchitembo", "Traore", "Tsiba", "Tsoumou", "Yengo", "Yoka"]>> + +<<set setup.eritreanSlaveNames = ["Amna", "Askalu", "Aster", "Elsa", "Fozia", "Furtuna", "Hanna", "Hannah", "Ileni", "Marina", "Meraf", "Miriam", "Mossana", "Nazret", "Nebiat", "Rehaset", "Ruth", "Saba", "Selma", "Simret", "Wehazit", "Wogahta", "Worku", "Zeudi"]>> +<<set setup.eritreanSlaveSurnames = ["Abdu", "Abraha", "Abraham", "Adem", "Adhanom", "Afewerki", "Ahmad", "Ahmed", "Alem", "Ali", "Aman", "Amare", "Ande", "Andebrhan", "Andemariam", "Andom", "Araia", "Araya", "As", "Asefaw", "Asfaha", "Asmara", "Asmelash", "Asrat", "Bahta", "Basha", "Belay", "Beraki", "Bereket", "Berhane", "Berhe", "Beyene", "Brhane", "Daniel", "Dawit", "Demoz", "Desta", "Estifanos", "Eyassu", "Eyob", "Fekadu", "Fernandez", "Fessehaye", "Fessehazion", "Fesshaye", "Fisseha", "Fitwi", "Franco", "Gebre", "Gebreab", "Gebrehiwet", "Gebrekidan", "Gebremariam", "Gebremedhin", "Gebremeskel", "Gebremicael", "Gebremichael", "Gebrewold", "Gebreyohannes", "Ghebre", "Ghebrehiwet", "Ghebrekidan", "Ghebremariam", "Ghebremedhin", "Ghebremeskel", "Ghebremicael", "Ghebremichael", "Ghebreyohannes", "Ghebru", "Gherezghiher", "Ghide", "Ghirmay", "Gmichael", "Goitom", "Habtai", "Habte", "Habtemariam", "Habtemichael", "Hadera", "Hadgu", "Hagos", "Hailai", "Haile", "Hailemariam", "Hailemichael", "Hailom", "Hassen", "Ibrahim", "Idris", "Isaac", "John", "Joseph", "Kahsai", "Kahsay", "Kebede", "Keleta", "Kesete", "Khan", "Kibreab", "Kidane", "Kiflay", "Kifle", "Kiflemariam", "Kiros", "Kumar", "Lee", "Li", "Mahmud", "Mebrahtu", "Medhanie", "Mehari", "Mehreteab", "Mekonnen", "Melake", "Melles", "Mengistu", "Mesfin", "Michael", "Mohammed", "Muller", "Munir", "Mussie", "Naib", "Naizghi", "Negash", "Negassi", "Negusse", "Nemariam", "Ogbazghi", "Ogbe", "Osman", "Palla", "Perez", "Russom", "Saleh", "Samson", "Sebhatu", "Semere", "Seyoum", "Sibhatu", "Simon", "Sium", "Smith", "Solomon", "Sultan", "Tadesse", "Taha", "Tareke", "Teame", "Tecle", "Tecleab", "Teclu", "Tedla", "Tekeste", "Tekie", "Teklay", "Tekle", "Tekleab", "Teklehaimanot", "Teklu", "Tesfa", "Tesfagaber", "Tesfai", "Tesfamariam", "Tesfamicael", "Tesfamichael", "Tesfatsion", "Tesfay", "Tesfazghi", "Tewelde", "Teweldebrhan", "Teweldemedhin", "Tewolde", "Tsegai", "Tsegay", "Tsehaie", "Tsehaye", "Tsighe", "Welday", "Weldemichael", "Weldu", "Woldeab", "Woldemichael", "Woldeselassie", "Woldu", "Yacob", "Yebio", "Yemane", "Yohannes", "Yonas", "Yoseph", "Yosief", "Zecarias", "Zekarias", "Zemichael", "Zerai", "Zeratsion", "Zere", "Zeremariam", "Zeru"]>> + +<<set setup.guineanSlaveNames = ["Aïcha", "Aissata", "Aissatou", "Aïssatou", "Aminata", "Dede", "Djene", "Fatmata", "Fatoumata", "Hadja", "Jeanne", "Kesso", "Koumanthio", "Lofo", "M'Balia", "M'mah", "Mahawa", "Makalé", "Makoura", "Malado", "Mamadama", "Mamadie", "Mariama", "Oumou", "Sirah", "Siré", "Sylla", "Zeinab"]>> +<<set setup.guineanSlaveSurnames = ["Abdoulaye", "Abou", "Alpha", "Amadou", "Aribot", "Aziz", "Ba", "Baba", "Bah", "Bakayoko", "Balamou", "Bald", "Balde", "Bamba", "Bangoura", "Barry", "Bayo", "Beavogui", "Berete", "Boiro", "Bokoum", "Bongono", "Camara", "Cherif", "Ciss", "Cisse", "Cissoko", "Conakry", "Cond", "Conde", "Conte", "Coulibaly", "Coumbassa", "Curtis", "Dabo", "Daffe", "Damba", "Damey", "Dansoko", "Delamou", "Dia", "Diabate", "Diaby", "Diakhaby", "Diakit", "Diakite", "Diallo", "Diane", "Diaoune", "Diarra", "Diawara", "Dieng", "Diop", "Dioubate", "Donzo", "Dopavogui", "Dore", "Doukoure", "Doumbia", "Doumbouya", "Douno", "Drame", "Dramou", "Faber", "Fadiga", "Fall", "Faye", "Feindouno", "Fofana", "Gbanamou", "Gomez", "Goumou", "Guemou", "Gueye", "Guilao", "Guilavogui", "Guinea", "Guinee", "Guisse", "Haba", "Haidara", "Hann", "Hassan", "Ibrahima", "Issa", "Jalloh", "Jallow", "Johnson", "Kaba", "Kadouno", "Kake", "Kalil", "Kalivogui", "Kallo", "Kaloga", "Kamano", "Kamara", "Kande", "Kane", "Kann", "Kante", "Kebe", "Keita", "Koita", "Koivogui", "Kolie", "Koly", "Komara", "Kon", "Konat", "Konate", "Kone", "Koroma", "Kouadio", "Kouame", "Koulemou", "Koulibaly", "Koumbassa", "Koundouno", "Kourouma", "Kouyate", "Kpoghomou", "Lama", "Lamah", "Leno", "Loua", "Ly", "Magassouba", "Malkoun", "Mamadou", "Mamy", "Mane", "Manet", "Mansare", "Maomou", "Mara", "Millimono", "Millimouno", "Mohamed", "Monemou", "Moussa", "N'Diaye", "Nabe", "Ndiaye", "Niang", "Nimaga", "Onivogui", "Ouendeno", "Oulare", "Oumar", "Oury", "Sacko", "Sagno", "Sakho", "Sako", "Sall", "Samoura", "Sampil", "Sandouno", "Sangare", "Sano", "Sanoh", "Sarl", "Savane", "Seck", "Sesay", "Sidibe", "Sidime", "Singh", "Sompare", "Soropogui", "Souar", "Souare", "Soumah", "Soumahoro", "Soumaoro", "Sow", "Sy", "Sylla", "Tall", "Thea", "Thiam", "Thierno", "Tolno", "Tonguino", "Tounkara", "Toupou", "Toure", "Traor", "Traore", "Turay", "Wague", "Wann", "Yansane", "Yaradouno", "Yattara", "Yombouno", "Youla", "Zogbelemou", "Zoumanigui"]>> + +<<set setup.malawianSlaveNames = ["Agnes", "Angela", "Anita", "Annie", "Callista", "Catherine", "Cecelia", "Cecilia", "Chanju", "Chrissie", "Connie", "Emesia", "Emily", "Emmie", "Ethel", "Etta", "Eunice", "Flora", "Flossie", "Gertrude", "Grace", "Jane", "Jean", "Joyce", "Lilian", "Lucia", "Mary", "Mwayi", "Nancy", "Patricia", "Prisca", "Rose", "Samantha", "Seodi", "Tabitha", "Taonere", "Tapiwa", "Tereza", "Tujilane", "Vera", "Walije"]>> +<<set setup.malawianSlaveSurnames = ["Banda", "Bandawe", "Bonongwe", "Botha", "Butao", "Bwanali", "Chabwera", "Chanza", "Chauluka", "Chavula", "Chawinga", "Chibwana", "Chihana", "Chikoko", "Chikopa", "Chikuse", "Chilemba", "Chimaliro", "Chimenya", "Chimombo", "Chimwala", "Chimwaza", "Chinyama", "Chipeta", "Chipofya", "Chirambo", "Chirombo", "Chirwa", "Chisale", "Chisi", "Chitsulo", "Chiumia", "Chiwaula", "Chiwaya", "Chunga", "Gama", "Gausi", "Gomani", "Gondwe", "Hara", "Harawa", "Ibrahim", "Issa", "Jambo", "Jere", "Juma", "Jumbe", "Jussab", "Kachala", "Kachale", "Kachingwe", "Kaliati", "Kalima", "Kalonga", "Kalua", "Kaluwa", "Kamanga", "Kambalame", "Kamoto", "Kamwana", "Kamwendo", "Kandulu", "Kanyenda", "Kaonga", "Kapalamula", "Kapito", "Karim", "Katunga", "Kaunda", "Kawonga", "Kayange", "Kayira", "Kayuni", "Kazembe", "Khan", "Khonje", "Kondowe", "Kumwenda", "Kunje", "Lipenga", "Longwe", "Luhanga", "Lungu", "Maganga", "Magombo", "Mahomed", "Majawa", "Makawa", "Makina", "Makwinja", "Malata", "Malenga", "Maliro", "Malunga", "Maluwa", "Manda", "Mandala", "Mangani", "Mapemba", "Masamba", "Maseko", "Mataka", "Mataya", "Matemba", "Matewere", "Matola", "Maulidi", "Mbale", "Mbendera", "Mbewe", "Mbwana", "Mdala", "Mfune", "Mhango", "Mhone", "Milanzi", "Misomali", "Mkandawire", "Mlenga", "Moyo", "Mphande", "Mponda", "Msiska", "Msosa", "Msowoya", "Msuku", "Msukwa", "Mtambo", "Mtawali", "Mtenje", "Mtonga", "Mughogho", "Mulenga", "Mumba", "Munthali", "Mussa", "Mvula", "Mwafulirwa", "Mwale", "Mwalwanda", "Mwandira", "Mwangonde", "Mwanza", "Mwase", "Mwenda", "Mwenelupembe", "Mwenifumbo", "Mzembe", "Mzumara", "Ndalama", "Ndau", "Ndhlovu", "Ndovi", "Ng'ambi", "Ng'oma", "Ngalande", "Ngoma", "Ngosi", "Ngulube", "Ngwira", "Nhlane", "Nkhata", "Nkhoma", "Nkhonjera", "Nkhwazi", "Nkosi", "Nyangulu", "Nyasulu", "Nyirenda", "Nyirongo", "Nyondo", "Nyoni", "Omar", "Osman", "Patel", "Phiri", "Rashid", "Saidi", "Saka", "Sakala", "Sambo", "Sattar", "Selemani", "Shaba", "Shawa", "Sibale", "Sibande", "Sichinga", "Sikwese", "Simwaka", "Singini", "Soko", "Tambala", "Tembo", "Thindwa", "Thole", "Zgambo", "Ziba", "Zimba", "Zulu"]>> + +<<set setup.liberianSlaveNames = ["Angie", "Ann", "Antoinette", "Cheryl", "Comfort", "Cyvette", "Dorothy", "Ellen", "Fatima", "Gladys", "Gloria", "Grace-Ann", "Grace", "Hannah", "Hawa", "Izetta", "Jewel", "Kia", "Kirat", "Kou", "Leymah", "Margaret", "Mariam", "Martha", "Mary", "Matee", "Melvina", "Michaela", "Olubanke", "Ophelia", "Phobay", "Raasin", "Ruth", "Sie-A-Nyene", "Suah"]>> +<<set setup.liberianSlaveSurnames = ["Akoi", "Allen", "Allison", "Anderson", "Augustine", "Bah", "Ballah", "Bangura", "Barclay", "Barry", "Baysah", "Bedell", "Benson", "Bestman", "Beyan", "Bility", "Blamo", "Boakai", "Borbor", "Bright", "Brooks", "Bropleh", "Brown", "Browne", "Bryant", "Carter", "Cassell", "Chea", "Clarke", "Cole", "Coleman", "Collins", "Conteh", "Cooper", "Cummings", "Dahn", "Daniels", "David", "Davies", "Davis", "Dennis", "Diallo", "Diggs", "Dixon", "Doe", "Dolo", "Donzo", "Dorbor", "Dorley", "Dukuly", "Dunbar", "Duncan", "Dweh", "Eid", "Fahnbulleh", "Fallah", "Fayiah", "Flomo", "Fofana", "Freeman", "Gaye", "Gayflor", "George", "Gibson", "Goll", "Gono", "Gray", "Greaves", "Greene", "Harmon", "Harris", "Hill", "Hinneh", "Howard", "Howe", "Jabateh", "Jackson", "Jacobs", "Jah", "Jallah", "Jalloh", "James", "Joe", "Johnson", "Jones", "Jusu", "Kaba", "Kamara", "Kandakai", "Kanneh", "Keita", "Kemokai", "Kennedy", "Kenneh", "Kesselly", "Kiazolu", "King", "Koffa", "Kollie", "Konneh", "Kpadeh", "Kpoto", "Kromah", "Kumar", "Lewis", "Lloyd", "Logan", "Marshall", "Martin", "Mason", "Massaley", "Massaquoi", "Mensah", "Miller", "Mitchell", "Momo", "Momoh", "Monger", "Moore", "Morgan", "Morris", "Mulbah", "Myers", "Nagbe", "Nah", "Nelson", "Neufville", "Nimely", "Nimley", "Nyemah", "Nyumah", "Paasewe", "Paye", "Payne", "Peters", "Quaye", "Reeves", "Richards", "Roberts", "Rogers", "Ross", "Saah", "Sackie", "Sackor", "Sampson", "Sando", "Saydee", "Saye", "Scott", "Sesay", "Sherif", "Sheriff", "Sherman", "Sieh", "Singh", "Sirleaf", "Smith", "Solomon", "Somah", "Stewart", "Suah", "Sumo", "Swaray", "Swen", "Tamba", "Tarpeh", "Tarr", "Taylor", "Teah", "Thomas", "Thompson", "Toe", "Togba", "Togbah", "Tokpa", "Tokpah", "Tolbert", "Tucker", "Turay", "Tweh", "Vah", "Varney", "Walker", "Wallace", "Washington", "Watson", "Weah", "Wesseh", "Wiah", "Williams", "Willie", "Wilson", "Wisseh", "Wleh", "Woods", "Wreh", "Wright", "Young", "Zayzay", "Zinnah"]>> + +<<set setup.mozambicanSlaveNames = ["Acacia", "Alcinda", "Anabela", "Angelina", "Berry", "Bertina", "Binta", "Carolina", "Cátia", "Clarisse", "Deolinda", "Elisa", "Ermelinda", "Esperança", "Frances", "Gisela", "Graça", "Helena", "Iolanda", "Isabel", "Isaura", "Ivone", "Jannah", "Jessica", "Josina", "Leda", "Leia", "Leonor", "Lidia", "LÃlia", "Lina", "Ludovina", "LuÃsa", "Marcelina", "Maria", "Miriam", "Neidy", "Noémia", "Paulina", "Sara", "Silvia", "Tânia", "Tanya", "Tina", "Valerdina", "Verónica", "Ximene"]>> +<<set setup.mozambicanSlaveSurnames = ["Abdula", "Afonso", "Agostinho", "Alberto", "Albino", "Ali", "Almeida", "Alves", "Amade", "Amaral", "Andrade", "Antonio", "Araujo", "Armando", "Assane", "Augusto", "Bacar", "Bambo", "Banze", "Baptista", "Bento", "Bernardo", "Bila", "Brito", "Buque", "Caetano", "Cardoso", "Carimo", "Carlos", "Carvalho", "Cassamo", "Chauque", "Chemane", "Chirindza", "Chissano", "Chongo", "Coelho", "Conceição", "Correia", "Cossa", "Costa", "Cruz", "Cuamba", "Cuambe", "Cumbana", "Cumbane", "Cumbe", "Cuna", "da Costa", "da Silva", "Daniel", "David", "de Sousa", "Dias", "Dimande", "Dinis", "Domingos", "dos Santos", "Duarte", "Ernesto", "Fernandes", "Fernando", "Ferrao", "Ferreira", "Filipe", "Fonseca", "Francisco", "Fumo", "Gimo", "Gomes", "Goncalves", "Guambe", "Ibraimo", "Inacio", "Ismael", "Issufo", "Jaime", "Jamal", "Joao", "Joaquim", "Jorge", "Jose", "Juma", "Junior", "Khan", "Langa", "Lopes", "Lourenço", "Luis", "Mabjaia", "Mabote", "Mabunda", "Macamo", "Macaringue", "Machado", "Machava", "Macie", "Macuacua", "Madeira", "Magaia", "Mahomed", "Mahumane", "Malate", "Mambo", "Mandlate", "Manhica", "Manhique", "Manjate", "Manuel", "Mario", "Marques", "Martins", "Massango", "Massinga", "Massingue", "Matavel", "Matavele", "Mate", "Mateus", "Matola", "Matos", "Matsinhe", "Matusse", "Mausse", "Mavie", "Mazive", "Mendes", "Meque", "Miguel", "Miranda", "Moçambique", "Moiane", "Moises", "Momade", "Mondlane", "Monjane", "Monteiro", "Morais", "Mucavele", "Muchanga", "Muianga", "Munguambe", "Mussa", "Mussagy", "Nelson", "Neves", "Nhaca", "Nhampossa", "Nhancale", "Nhantumbo", "Novela", "Nunes", "Nuvunga", "Oliveira", "Omar", "Paulino", "Paulo", "Pedro", "Pelembe", "Pereira", "Pinto", "Pires", "Rafael", "Ramos", "Ribeiro", "Rocha", "Rodrigues", "Rosario", "Rungo", "Sambo", "Samuel", "Santos", "Sigauque", "Silva", "Simango", "Simao", "Simbine", "Sitoe", "Soares", "Sousa", "Tamele", "Teixeira", "Tembe", "Timana", "Tivane", "Tomas", "Uamusse", "Ubisse", "Ussene", "Vasco", "Vaz", "Vieira", "Vilanculo", "Vilanculos", "Wilson", "Xavier", "Xerinda", "Zacarias", "Zandamela", "Zimba"]>> + +<<set setup.namibianSlaveNames = ["Agnes", "Angelika", "Barbara", "Behati", "Clara", "Doreen", "Elaine", "Elma", "Gustaphine", "Hansina", "Hilma", "Ida", "Kanuni", "Katrina", "Kovambo", "Laura", "Lempy", "Libertina", "Loide", "Lucia", "Lydia", "Marelize", "Margaret", "Marichen", "Marlene", "Michelle", "Monica", "Netumbo", "Ngohauvi", "Nora", "Pashukeni", "Pendukeni", "Penehupifo", "Petrina", "Priscilla", "Rebecca", "Rosa", "Rosalia", "Rosina", "Saara", "Sophia", "Suné", "Uilika", "Venantia"]>> +<<set setup.namibianSlaveSurnames = ["Abrahams", "Adams", "Alberts", "Amadhila", "Amakali", "Amunyela", "Amupolo", "Amutenya", "Anderson", "Andreas", "Angula", "Apollus", "Ashipala", "Barnard", "Basson", "Beukes", "Bezuidenhout", "Blaauw", "Bock", "Boois", "Booysen", "Boshoff", "Botes", "Botha", "Brand", "Brandt", "Britz", "Burger", "Claasen", "Cloete", "Coetzee", "David", "Davids", "de Jager", "de Klerk", "de Villiers", "de Waal", "Diergaardt", "Dreyer", "du Plessis", "du Preez", "du Toit", "Ekandjo", "Elago", "Emvula", "Endjala", "Engelbrecht", "Erasmus", "Farmer", "Feris", "Ferreira", "Fourie", "Fredericks", "Gabriel", "Gariseb", "Garises", "Gertze", "Greeff", "Grobler", "Groenewald", "Haimbodi", "Haingura", "Haipinge", "Hamukwaya", "Hamunyela", "Hamutenya", "Hango", "Hangula", "Hansen", "Haufiku", "Hausiku", "Hauwanga", "Heita", "Horn", "Husselmann", "Iileka", "Iipinge", "Iipumbu", "Iiyambo", "Indongo", "Ipinge", "Isaacs", "Iyambo", "Izaaks", "Jacobs", "Jansen", "Johannes", "Jordaan", "Joseph", "Joubert", "Kamati", "Kambonde", "Kandjii", "Kanime", "Kavari", "Kisting", "Kotze", "Kruger", "Labuschagne", "le Roux", "Liebenberg", "Louw", "Lukas", "Maasdorp", "Manuel", "Marais", "Maritz", "Martin", "Matengu", "Matheus", "Mbango", "Meyer", "Moller", "Moses", "Mostert", "Mouton", "Moyo", "Muller", "Murangi", "Muteka", "Nakale", "Nambahu", "Nangolo", "Nangombe", "Negumbo", "Nekongo", "Nel", "Ntinda", "Nuuyoma", "Nyambe", "Olivier", "Oosthuizen", "Opperman", "Paulus", "Petrus", "Pienaar", "Pieters", "Platt", "Plessis", "Potgieter", "Pretorius", "Prinsloo", "Rossouw", "Sakaria", "Samuel", "Schmidt", "Scholtz", "Shaanika", "Sheehama", "Sheya", "Shifotoka", "Shigwedha", "Shiimi", "Shikongo", "Shilongo", "Shipanga", "Shivute", "Shuuya", "Simasiku", "Simataa", "Simon", "Sinvula", "Smit", "Smith", "Snyman", "Steenkamp", "Stephanus", "Steyn", "Strauss", "Strydom", "Swanepoel", "Swart", "Swartbooi", "Swartz", "Theron", "Thomas", "Titus", "Uugwanga", "Uushona", "van der Merwe", "van der Westhuizen", "van Niekerk", "van Rensburg", "van Rooi", "van Rooyen", "van Schalkwyk", "van Staden", "van Wyk", "van Zyl", "Venter", "Vermeulen", "Viljoen", "Visagie", "Visser", "Vries", "Willemse", "Williams", "Witbooi", "Wyk", "Zyl"]>> + +<<set setup.southSudaneseSlaveNames = ["Adut", "Agnes", "Aheu", "Alek", "Angelina", "Anisia", "Anjelina", "Ann", "Anne", "Ataui", "Atek", "Awiei", "Awien", "Awut", "Betty", "Dorothy", "Emma", "Hellen", "Jemma", "Josephine", "Juliet", "Margret", "Mary", "Nyandeng", "Pricilla", "Rebecca", "Rose", "Suzanne", "Theresa"]>> +<<set setup.southSudaneseSlaveSurnames = ["Abraham", "Abugo", "Achieng", "Acuil", "Agor", "Akol", "Akot", "Akuong", "Aleu", "Aligo", "Atem", "Awan", "Baki", "Bakosoro", "Barsan", "Batali", "Bok", "Bola", "Boyoi", "Bureng", "Dau", "Deliech", "Deng", "Echom", "Frances", "Gai", "Gakmar", "Gale", "Garang", "Gatluak", "Gilo", "Hassan", "Ifeny", "Igga", "Ija", "Jaden", "Jang", "Jok", "Kiir", "Koang", "Konga", "Konya", "Ladu", "Lam", "Legge", "Lojore", "Lokuron", "Loluke", "Lom", "Lomong", "Loweth", "Machar", "Madut", "Majok", "Makana", "Makuach", "Malou", "Mawut", "Mayardit", "Mayen", "Michael", "Miskin", "Monday", "Monytuil", "Nhial", "Nyipuoc", "Ohure", "Okwaci", "Pacifo", "Paperture", "Peuok", "Piol", "Puoch", "Raphael", "Rassas", "Taban", "Tong", "Ubur", "Uguak", "Wako", "Wal", "Wani", "Wanji", "Waya", "Wol", "Worju", "Yak"]>> + + <<set setup.cowSlaveNames = ["Anna", "Annabelle", "Annie", "Arabella", "Baby", "Bella", "Bella", "Bella", "Bertha", "Bessie", "Betty Sue", "Big Mac", "Blue", "Brown Cow", "Candie", "Cinnamon", "Clarabelle", "Clover", "Cocoa", "Cookie", "Cowlick", "Cupcake", "Dahlia", "Daisy", "Darla", "Diamond", "Dorothy", "Ella", "Emma", "Esmeralda", "Flower", "Gertie", "Hamburger", "Heifer", "Henrietta", "Honeybun", "Jasmayne", "Jasmine", "Lois", "Madonna", "Maggie", "Margie", "Meg", "Minnie", "Molly", "MooMoo", "Moscow", "Muffin", "Nettie", "Penelope", "Penny", "Pinky", "Precious", "Princess", "Rose", "Sasha", "Shelly", "Sugar", "Sunny", "Sunshine", "Sweetie", "Sweetpea", "Swiss Miss", "Waffles"]>> @@ -878,6 +1016,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Albanian": setup.albanianSlaveNames, "Algerian": setup.algerianSlaveNames, "Andorran": setup.andorranSlaveNames, + "Angolan": setup.angolanSlaveNames, "Antiguan": setup.antiguanSlaveNames, "American.black": setup.africanAmericanSlaveNames, "American.latina": setup.latinaSlaveNames, "American.asian": setup.asianAmericanSlaveNames, "American.middle eastern": setup.egyptianSlaveNames, "American": setup.whiteAmericanSlaveNames, @@ -894,22 +1033,30 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Belarusian": setup.belarusianSlaveNames, "Belgian": setup.belgianSlaveNames, "Belizean.white": setup.germanSlaveNames, "Belizean": setup.belizeanSlaveNames, + "Beninese": setup.benineseSlaveNames, "Bermudian": setup.bermudianSlaveNames, "Bhutanese": setup.bhutaneseSlaveNames, + "Bissau-Guinean": setup.bissauGuineanSlaveNames, "Bolivian": setup.bolivianSlaveNames, "Bosnian": setup.bosnianSlaveNames, "Brazilian": setup.brazilianSlaveNames, "British.indo-aryan": setup.indianSlaveNames, "British": setup.britishSlaveNames, "Bruneian": setup.bruneianSlaveNames, "Bulgarian": setup.bulgarianSlaveNames, + "Burkinabé": setup.burkinabeSlaveNames, "Burmese": setup.burmeseSlaveNames, "Burundian": setup.burundianSlaveNames, "Cambodian": setup.cambodianSlaveNames, "Cameroonian": setup.cameroonianSlaveNames, "Canadian.Asian": setup.asianAmericanSlaveNames, "Canadian": setup.canadianSlaveNames, + "Cape Verdean": setup.capeVerdeanSlaveNames, + "Catalan": setup.catalanSlaveNames, + "Central African": setup.centralAfricanSlaveNames, + "Chadian": setup.chadianSlaveNames, "Chilean": setup.chileanSlaveNames, "Chinese": setup.chineseSlaveNames, "Colombian": setup.colombianSlaveNames, + "Comorian": setup.comorianSlaveNames, "Congolese": setup.congoleseSlaveNames, "a Cook Islander": setup.cookIslanderSlaveNames, "Costa Rican": setup.costaRicanSlaveNames, @@ -926,6 +1073,8 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Ecuadorian": setup.ecuadorianSlaveNames, "Egyptian": setup.egyptianSlaveNames, "Emirati": setup.emiratiSlaveNames, + "Equatoguinean": setup.equatoguineanSlaveNames, + "Eritrean": setup.eritreanSlaveNames, "Estonian": setup.estonianSlaveNames, "Ethiopian": setup.ethiopianSlaveNames, "Fijian": setup.fijianSlaveNames, @@ -933,7 +1082,9 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Finnish": setup.finnishSlaveNames, "French": setup.frenchSlaveNames, "French Guianan": setup.frenchGuiananSlaveNames, + "French Polynesian": setup.frenchPolynesianSlaveNames, "Gabonese": setup.gaboneseSlaveNames, + "Gambian": setup.gambianSlaveNames, "Georgian": setup.georgianSlaveNames, "German.middle eastern": setup.turkishSlaveNames, "German": setup.germanSlaveNames, "Ghanan": setup.ghananSlaveNames, @@ -941,6 +1092,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Greenlandic": setup.greenlandicSlaveNames, "Grenadian": setup.grenadianSlaveNames, "Guatemalan": setup.guatemalanSlaveNames, + "Guinean": setup.guineanSlaveNames, "Guyanese": setup.guyaneseSlaveNames, "Haitian": setup.haitianSlaveNames, "Honduran": setup.honduranSlaveNames, @@ -954,6 +1106,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Irish": setup.irishSlaveNames, "Israeli": setup.israeliSlaveNames, "Italian": setup.italianSlaveNames, + "Ivorian": setup.ivorianSlaveNames, "Jamaican": setup.jamaicanSlaveNames, "Japanese": setup.japaneseSlaveNames, "Jordanian": setup.jordanianSlaveNames, @@ -962,22 +1115,27 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Kittitian": setup.kittitianSlaveNames, "Korean": setup.koreanSlaveNames, "Kosovan": setup.kosovanSlaveNames, + "Kurdish": setup.kurdishSlaveNames, "Kuwaiti": setup.kuwaitiSlaveNames, "Kyrgyz": setup.kyrgyzSlaveNames, "Laotian": setup.laotianSlaveNames, "Latvian": setup.latvianSlaveNames, "Lebanese": setup.lebaneseSlaveNames, + "Liberian": setup.liberianSlaveNames, "Libyan": setup.libyanSlaveNames, "a Liechtensteiner": setup.liechtensteinerSlaveNames, "Lithuanian": setup.lithuanianSlaveNames, "Luxembourgian": setup.luxembourgianSlaveNames, "Macedonian": setup.macedonianSlaveNames, "Malagasy": setup.malagasySlaveNames, + "Malawian": setup.malawianSlaveNames, "Malaysian": setup.malaysianSlaveNames, "Maldivian": setup.maldivianSlaveNames, "Malian": setup.malianSlaveNames, "Maltese": setup.malteseSlaveNames, "Marshallese": setup.marshalleseSlaveNames, + "Mauritanian": setup.mauritanianSlaveNames, + "Mauritian": setup.mauritianSlaveNames, "Mexican": setup.mexicanSlaveNames, "Micronesian": setup.micronesianSlaveNames, "Moldovan": setup.moldovanSlaveNames, @@ -985,6 +1143,10 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Mongolian": setup.mongolianSlaveNames, "Montenegrin": setup.montenegrinSlaveNames, "Moroccan": setup.moroccanSlaveNames, + "Mosotho": setup.mosothoSlaveNames, + "Motswana": setup.motswanaSlaveNames, + "Mozambican": setup.mozambicanSlaveNames, + "Namibian": setup.namibianSlaveNames, "Nauruan": setup.nauruanSlaveNames, "Nepalese": setup.nepaleseSlaveNames, "a New Zealander.asian": setup.asianAmericanSlaveNames, "a New Zealander": setup.newZealanderSlaveNames, @@ -1008,23 +1170,31 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Qatari": setup.qatariSlaveNames, "Romanian": setup.romanianSlaveNames, "Russian": setup.russianSlaveNames, + "Rwandan": setup.rwandanSlaveNames, + "Sahrawi": setup.sahrawiSlaveNames, "Saint Lucian": setup.saintLucianSlaveNames, "Salvadoran": setup.salvadoranSlaveNames, "Sammarinese": setup.sammarineseSlaveNames, "Samoan": setup.samoanSlaveNames, + "São Toméan": setup.saoTomeanSlaveNames, "Saudi": setup.saudiSlaveNames, "Scottish": setup.scottishSlaveNames, + "Senegalese": setup.senegaleseSlaveSurnames, "Serbian": setup.serbianSlaveNames, "Seychellois": setup.seychelloisSlaveNames, + "Sierra Leonean": setup.sierraLeoneanSlaveSurnames, "Singaporean": setup.singaporeanSlaveNames, "Slovak": setup.slovakSlaveNames, "Slovene": setup.sloveneSlaveNames, "a Solomon Islander": setup.solomonIslanderSlaveNames, + "Somali": setup.somaliSlaveNames, "South African.black": setup.blackSouthAfricanSlaveNames, "South African": setup.whiteSouthAfricanSlaveNames, + "South Sudanese": setup.southSudaneseSlaveNames, "Spanish": setup.spanishSlaveNames, "Sri Lankan": setup.sriLankanSlaveNames, "Sudanese": setup.sudaneseSlaveNames, "Surinamese": setup.surinameseSlaveNames, + "Swazi": setup.swaziSlaveNames, "Swedish": setup.swedishSlaveNames, "Swiss": setup.swissSlaveNames, "Syrian": setup.syrianSlaveNames, @@ -1032,6 +1202,8 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Tajik": setup.tajikSlaveNames, "Tanzanian": setup.tanzanianSlaveNames, "Thai": setup.thaiSlaveNames, + "Tibetan": setup.tibetanSlaveNames, + "Togolese": setup.togoleseSlaveNames, "Tongan": setup.tonganSlaveNames, "Trinidadian": setup.trinidadianSlaveNames, "Tunisian": setup.tunisianSlaveNames, @@ -1047,6 +1219,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Vietnamese": setup.vietnameseSlaveNames, "Vincentian": setup.vincentianSlaveNames, "Yemeni": setup.yemeniSlaveNames, + "Zairian": setup.zairianSlaveNames, "Zambian": setup.zambianSlaveNames, "Zimbabwean.white": setup.whiteSouthAfricanSlaveNames, "Zimbabwean": setup.zimbabweanSlaveNames, }>> @@ -1055,6 +1228,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Albanian": setup.albanianSlaveSurnames, "Algerian": setup.algerianSlaveSurnames, "Andorran": setup.andorranSlaveSurnames, + "Angolan": setup.angolanSlaveSurnames, "Antiguan": setup.antiguanSlaveSurnames, "American.black": setup.africanAmericanSlaveSurnames, "American.latina": setup.latinaSlaveSurnames, "American.asian": setup.asianAmericanSlaveSurnames, "American.middle eastern": setup.egyptianSlaveSurnames, "American": setup.whiteAmericanSlaveSurnames, @@ -1071,22 +1245,30 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Belarusian": setup.belarusianSlaveSurnames, "Belgian": setup.belgianSlaveSurnames, "Belizean.white": setup.germanSlaveSurnames, "Belizean": setup.belizeanSlaveSurnames, + "Beninese": setup.benineseSlaveSurnames, "Bermudian": setup.bermudianSlaveSurnames, "Bhutanese": setup.bhutaneseSlaveSurnames, + "Bissau-Guinean": setup.bissauGuineanSlaveSurnames, "Bolivian": setup.bolivianSlaveSurnames, "Bosnian": setup.bosnianSlaveSurnames, "Brazilian": setup.brazilianSlaveSurnames, "British.indo-aryan": setup.indianSlaveSurnames, "British": setup.britishSlaveSurnames, "Bruneian": setup.bruneianSlaveSurnames, "Bulgarian": setup.bulgarianSlaveSurnames, + "Burkinabé": setup.burkinabeSlaveSurnames, "Burmese": setup.burmeseSlaveSurnames, "Burundian": setup.burundianSlaveSurnames, "Cambodian": setup.cambodianSlaveSurnames, "Cameroonian": setup.cameroonianSlaveSurnames, "Canadian.Asian": setup.asianAmericanSlaveSurnames, "Canadian": setup.canadianSlaveSurnames, + "Cape Verdean": setup.capeVerdeanSlaveSurnames, + "Catalan": setup.catalanSlaveSurnames, + "Central African": setup.centralAfricanSlaveSurnames, + "Chadian": setup.chadianSlaveSurnames, "Chilean": setup.chileanSlaveSurnames, "Chinese": setup.chineseSlaveSurnames, "Colombian": setup.colombianSlaveSurnames, + "Comorian": setup.comorianSlaveSurnames, "Congolese": setup.congoleseSlaveSurnames, "a Cook Islander": setup.cookIslanderSlaveSurnames, "Costa Rican": setup.costaRicanSlaveSurnames, @@ -1103,6 +1285,8 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Ecuadorian": setup.ecuadorianSlaveSurnames, "Egyptian": setup.egyptianSlaveSurnames, "Emirati": setup.emiratiSlaveSurnames, + "Equatoguinean": setup.equatoguineanSlaveSurnames, + "Eritrean": setup.eritreanSlaveSurnames, "Estonian": setup.estonianSlaveSurnames, "Ethiopian": setup.ethiopianSlaveSurnames, "Fijian": setup.fijianSlaveSurnames, @@ -1110,7 +1294,9 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Finnish": setup.finnishSlaveSurnames, "French": setup.frenchSlaveSurnames, "French Guianan": setup.frenchGuiananSlaveSurnames, + "French Polynesian": setup.frenchPolynesianSlaveSurnames, "Gabonese": setup.gaboneseSlaveSurnames, + "Gambian": setup.gambianSlaveSurnames, "Georgian": setup.georgianSlaveSurnames, "German.middle eastern": setup.turkishSlaveSurnames, "German": setup.germanSlaveSurnames, "Ghanan": setup.ghananSlaveSurnames, @@ -1118,6 +1304,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Greenlandic": setup.greenlandicSlaveSurnames, "Grenadian": setup.grenadianSlaveSurnames, "Guatemalan": setup.guatemalanSlaveSurnames, + "Guinean": setup.guineanSlaveSurnames, "Guyanese": setup.guyaneseSlaveSurnames, "Haitian": setup.haitianSlaveSurnames, "Honduran": setup.honduranSlaveSurnames, @@ -1131,6 +1318,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Irish": setup.irishSlaveSurnames, "Israeli": setup.israeliSlaveSurnames, "Italian": setup.italianSlaveSurnames, + "Ivorian": setup.ivorianSlaveSurnames, "Jamaican": setup.jamaicanSlaveSurnames, "Japanese": setup.japaneseSlaveSurnames, "Jordanian": setup.jordanianSlaveSurnames, @@ -1139,22 +1327,27 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Kittitian": setup.kittitianSlaveSurnames, "Korean": setup.koreanSlaveSurnames, "Kosovan": setup.kosovanSlaveSurnames, + "Kurdish": setup.kurdishSlaveSurnames, "Kuwaiti": setup.kuwaitiSlaveSurnames, "Kyrgyz": setup.kyrgyzSlaveSurnames, "Laotian": setup.laotianSlaveSurnames, "Latvian": setup.latvianSlaveSurnames, "Lebanese": setup.lebaneseSlaveSurnames, + "Liberian": setup.liberianSlaveSurnames, "Libyan": setup.libyanSlaveSurnames, "a Liechtensteiner": setup.liechtensteinerSlaveSurnames, "Lithuanian": setup.lithuanianSlaveSurnames, "Luxembourgian": setup.luxembourgianSlaveSurnames, "Macedonian": setup.macedonianSlaveSurnames, "Malagasy": setup.malagasySlaveSurnames, + "Malawian": setup.malawianSlaveSurnames, "Malaysian": setup.malaysianSlaveSurnames, "Maldivian": setup.maldivianSlaveSurnames, "Malian": setup.malianSlaveSurnames, "Maltese": setup.malteseSlaveSurnames, "Marshallese": setup.marshalleseSlaveSurnames, + "Mauritanian": setup.mauritanianSlaveSurnames, + "Mauritian": setup.mauritianSlaveSurnames, "Mexican": setup.mexicanSlaveSurnames, "Micronesian": setup.micronesianSlaveSurnames, "Moldovan": setup.moldovanSlaveSurnames, @@ -1162,6 +1355,10 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Mongolian": setup.mongolianSlaveSurnames, "Montenegrin": setup.montenegrinSlaveSurnames, "Moroccan": setup.moroccanSlaveSurnames, + "Mosotho": setup.mosothoSlaveSurnames, + "Motswana": setup.motswanaSlaveSurnames, + "Mozambican": setup.mozambicanSlaveSurnames, + "Namibian": setup.namibianSlaveSurnames, "Nauruan": setup.nauruanSlaveSurnames, "Nepalese": setup.nepaleseSlaveSurnames, "a New Zealander.asian": setup.asianAmericanSlaveSurnames, "a New Zealander": setup.newZealanderSlaveSurnames, @@ -1185,23 +1382,31 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Qatari": setup.qatariSlaveSurnames, "Romanian": setup.romanianSlaveSurnames, "Russian": setup.russianSlaveSurnames, + "Rwandan": setup.rwandanSlaveSurnames, + "Sahrawi": setup.sahrawiSlaveSurnames, "Saint Lucian": setup.saintLucianSlaveSurnames, "Salvadoran": setup.salvadoranSlaveSurnames, "Sammarinese": setup.sammarineseSlaveSurnames, "Samoan": setup.samoanSlaveSurnames, + "São Toméan": setup.saoTomeanSlaveSurnames, "Saudi": setup.saudiSlaveSurnames, "Scottish": setup.scottishSlaveSurnames, + "Senegalese": setup.senegaleseSlaveSurnames, "Serbian": setup.serbianSlaveSurnames, "Seychellois": setup.seychelloisSlaveSurnames, + "Sierra Leonean": setup.sierraLeoneanSlaveSurnames, "Singaporean": setup.singaporeanSlaveSurnames, "Slovak": setup.slovakSlaveSurnames, "Slovene": setup.sloveneSlaveSurnames, "a Solomon Islander": setup.solomonIslanderSlaveSurnames, + "Somali": setup.somaliSlaveSurnames, "South African.black": setup.blackSouthAfricanSlaveSurnames, "South African": setup.whiteSouthAfricanSlaveSurnames, + "South Sudanese": setup.southSudaneseSlaveSurnames, "Spanish": setup.spanishSlaveSurnames, "Sri Lankan": setup.sriLankanSlaveSurnames, "Sudanese": setup.sudaneseSlaveSurnames, "Surinamese": setup.surinameseSlaveSurnames, + "Swazi": setup.swaziSlaveSurnames, "Swedish": setup.swedishSlaveSurnames, "Swiss": setup.swissSlaveSurnames, "Syrian": setup.syrianSlaveSurnames, @@ -1209,6 +1414,8 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Tajik": setup.tajikSlaveSurnames, "Tanzanian": setup.tanzanianSlaveSurnames, "Thai": setup.thaiSlaveSurnames, + "Tibetan": setup.tibetanSlaveSurnames, + "Togolese": setup.togoleseSlaveSurnames, "Tongan": setup.tonganSlaveSurnames, "Trinidadian": setup.trinidadianSlaveSurnames, "Tunisian": setup.tunisianSlaveSurnames, @@ -1224,6 +1431,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do "Vietnamese": setup.vietnameseSlaveSurnames, "Vincentian": setup.vincentianSlaveSurnames, "Yemeni": setup.yemeniSlaveSurnames, + "Zairian": setup.zairianSlaveSurnames, "Zambian": setup.zambianSlaveSurnames, "Zimbabwean.white": setup.whiteSouthAfricanSlaveSurnames, "Zimbabwean": setup.zimbabweanSlaveSurnames, }>> @@ -1278,6 +1486,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do <<set setup.ArcologyNamesRepopulationist = ["Hope", "The Womb", "Holders of the Future", "Future", "Haven of the Pregnant", "Sacred Womb", "Glorious Mother"]>> <<set setup.ArcologyNamesHedonisticDecadence = ["Sloth", "Gluttony", "New Wisconsin", "Indulgence", "Stuffedtopia", "Plumpland", "Decadence", "All You Can Eat"]>> <<set setup.ArcologyNamesCummunism = ["Cumstantine", "Mother Cumtry", "Crusty Cummies", "Cummunist Russwhore", "Jizzington upon Wank", "Arscrotzka", "Free Slave Central", "Da Cumrade", "Cumstantinople"]>> +<<set setup.ArcologyNamesIncestFetishist = ["Oedipal City", "Oeditropolis", "Sib City", "Incestral Home", "Family Fortunes", "Familial Embrace", "Pure Blood"]>> <<set setup.badWords = ["fuck", "shit", "ass", "cock", "piss", "dick", "slut", "cum", "whore", "butt", "boob", "cunt", "cunny", "pussy", "junk", "trash", "slave"]>> diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index c0672310e9ebe6bbb3845a96375dea5dd1b75c90..7c57c70ae38e169ef4f3600db4e79bd694b25eb3 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with thi <<set $returnTo = "init", $nextButton = "Continue", $nextLink = "Alpha disclaimer">> <<unset $releaseID>> -<<set $ver = "0.10.7", $releaseID = 1021>> -<<if ndef $releaseID>><<set $releaseID = 1021>><</if>> +<<set $ver = "0.10.7", $releaseID = 1022>> +<<if ndef $releaseID>><<set $releaseID = 1022>><</if>> /* This needs to be broken down into individual files that can be added to StoryInit instead. */ @@ -342,6 +342,8 @@ You should have received a copy of the GNU General Public License along with thi <<set $headGirlSoftensFlaws = 1>> <<set $headGirlTrainsParaphilias = 1>> <<set $retainCareer = 1>> + <<set $useSlaveSummaryTabs = 0>> + <<set $useSlaveSummaryOverviewTab = 0>> <<include "Init Rules">> @@ -353,7 +355,7 @@ You should have received a copy of the GNU General Public License along with thi <</if>> <<set $cash = Math.clamp(1000*Math.trunc($cash/100000), 5000, 1000000)>> <<if $retainCareer == 0>> - <<set $PC.career = "arcology owner", $PC.trading = 100, $PC.warfare = 100, $PC.slaving = 100, $PC.engineering = 100, $PC.medicine = 100>> + <<set $PC.career = "arcology owner", $PC.trading = 100, $PC.warfare = 100, $PC.hacking = 100, $PC.slaving = 100, $PC.engineering = 100, $PC.medicine = 100>> <</if>> <<if $PC.mother > 0>> <<set $PC.mother += 1200000>> @@ -855,8 +857,10 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $dietXXY = 0>> <<set $dietCleanse = 0>> <<set $cumProDiet = 0>> +<<set $dietFertility = 0>> <<set $curativeUpgrade = 0>> <<set $growthStim = 0>> +<<set $reproductionFormula = 0>> <<set $aphrodisiacUpgrade = 0>> <<set $aphrodisiacUpgradeRefine = 0>> <<set $healthyDrugsUpgrade = 0>> @@ -1220,7 +1224,7 @@ FertilityAge($fertilityAge) /* FacilitySupport */ <<set $Lieutenantcolonel = 0>> /* Has a slave been selected to be a Lieutenant colonel? */ <<set $FacilitySupportSlaves = 0>> /* How many slaves are assiting in the facility support? */ -<<set $FacilitySupportfficiency = 0>> /* How efficent is the support facility? */ +<<set $FacilitySupportEfficiency = 0>> /* How efficient is the support facility? */ <<set $FacilitySupportUpgrade = 0>> /* How many support facility upgrades has the play brought? */ <<set $FacilitySupportCapacity = 5>> /* How many slaves can the support facility house? */ @@ -1294,6 +1298,10 @@ ocularImplant: 0, erectileImplant: 0 } >> +<<if ndef $PC.hacking>> + <<set $PC.hacking = 0>> +<</if>> + /* Security Expansion */ <<set $secExp = 0>> <<set $showSecExp = 0>> diff --git a/src/interaction/cyberConfig.tw b/src/interaction/cyberConfig.tw index 51ac5a01124190fe3051354356bd5170dd103615..4033214b7ea0fcf13bf98bf317aa7adab944d0a7 100644 --- a/src/interaction/cyberConfig.tw +++ b/src/interaction/cyberConfig.tw @@ -4,7 +4,7 @@ <<case 0>> This room is lined with shelves and cabinets, it could be easily mistaken for a storage room if it were not for examination table in its center.<br> - <<set $nextButton to "Back", $nextLink to "Slave Interact">> + <<set $nextButton = "Back", $nextLink = "Slave Interact">> <<if $activeSlave.amp != 1>> Your slave $activeSlave.slaveName is obediently waiting for your instructions. <<else>> @@ -21,47 +21,47 @@ They are turned off. <</if>> <br><br> - <<if $activeSlave.eyes != 1>>[[Restore vision|cyberConfig][$activeSlave.eyes to 1,$temp to 3]] | <</if>> - <<if $activeSlave.eyes != -1>>[[Blur|cyberConfig][$activeSlave.eyes to -1,$temp to 3]] | <</if>> - <<if $activeSlave.eyes != -2>>[[Disable|cyberConfig][$activeSlave.eyes to -2,$temp to 3]]<</if>> + <<if $activeSlave.eyes != 1>>[[Restore vision|cyberConfig][$activeSlave.eyes = 1,$temp = 3]] | <</if>> + <<if $activeSlave.eyes != -1>>[[Blur|cyberConfig][$activeSlave.eyes = -1,$temp = 3]] | <</if>> + <<if $activeSlave.eyes != -2>>[[Disable|cyberConfig][$activeSlave.eyes = -2,$temp = 3]]<</if>> $pronounCap currently has $activeSlave.eyeColor lenses equipped. <br> Swap out $possessive lenses: - [[Blue|cyberConfig][$activeSlave.eyeColor to "blue",$temp to 2,$cash -= $modCost]] - | [[Black|cyberConfig][$activeSlave.eyeColor to "black",$temp to 2,$cash -= $modCost]] - | [[Brown|cyberConfig][$activeSlave.eyeColor to "brown",$temp to 2,$cash -= $modCost]] - | [[Green|cyberConfig][$activeSlave.eyeColor to "green",$temp to 2,$cash -= $modCost]] - | [[Turquoise|cyberConfig][$activeSlave.eyeColor to "turquoise",$temp to 2,$cash -= $modCost]] - | [[Sky-blue|cyberConfig][$activeSlave.eyeColor to "sky-blue",$temp to 2,$cash -= $modCost]] - | [[Hazel|cyberConfig][$activeSlave.eyeColor to "hazel",$temp to 2,$cash -= $modCost]] - | [[Pale-grey|cyberConfig][$activeSlave.eyeColor to "pale-grey",$temp to 2,$cash -= $modCost]] - | [[White|cyberConfig][$activeSlave.eyeColor to "white",$temp to 2,$cash -= $modCost]] - | [[Pink|cyberConfig][$activeSlave.eyeColor to "pink",$temp to 2,$cash -= $modCost]] - | [[Amber|cyberConfig][$activeSlave.eyeColor to "amber",$temp to 2,$cash -= $modCost]] - | [[Red|cyberConfig][$activeSlave.eyeColor to "red",$temp to 2,$cash -= $modCost]] - | [[Catlike|cyberConfig][$activeSlave.eyeColor to "catlike",$temp to 2,$cash -= $modCost]] - | [[Serpent-like|cyberConfig][$activeSlave.eyeColor to "serpent-like",$temp to 2,$cash -= $modCost]] - | [[Devilish|cyberConfig][$activeSlave.eyeColor to "devilish",$temp to 2,$cash -= $modCost]] - | [[Demonic|cyberConfig][$activeSlave.eyeColor to "demonic",$temp to 2,$cash -= $modCost]] - | [[Hypnotic|cyberConfig][$activeSlave.eyeColor to "hypnotic",$temp to 2,$cash -= $modCost]] - | [[Heart-shaped|cyberConfig][$activeSlave.eyeColor to "heart-shaped",$temp to 2,$cash -= $modCost]] + [[Blue|cyberConfig][$activeSlave.eyeColor = "blue",$temp = 2,$cash -= $modCost]] + | [[Black|cyberConfig][$activeSlave.eyeColor = "black",$temp = 2,$cash -= $modCost]] + | [[Brown|cyberConfig][$activeSlave.eyeColor = "brown",$temp = 2,$cash -= $modCost]] + | [[Green|cyberConfig][$activeSlave.eyeColor = "green",$temp = 2,$cash -= $modCost]] + | [[Turquoise|cyberConfig][$activeSlave.eyeColor = "turquoise",$temp = 2,$cash -= $modCost]] + | [[Sky-blue|cyberConfig][$activeSlave.eyeColor = "sky-blue",$temp = 2,$cash -= $modCost]] + | [[Hazel|cyberConfig][$activeSlave.eyeColor = "hazel",$temp = 2,$cash -= $modCost]] + | [[Pale-grey|cyberConfig][$activeSlave.eyeColor = "pale-grey",$temp = 2,$cash -= $modCost]] + | [[White|cyberConfig][$activeSlave.eyeColor = "white",$temp = 2,$cash -= $modCost]] + | [[Pink|cyberConfig][$activeSlave.eyeColor = "pink",$temp = 2,$cash -= $modCost]] + | [[Amber|cyberConfig][$activeSlave.eyeColor = "amber",$temp = 2,$cash -= $modCost]] + | [[Red|cyberConfig][$activeSlave.eyeColor = "red",$temp = 2,$cash -= $modCost]] + | [[Catlike|cyberConfig][$activeSlave.eyeColor = "catlike",$temp = 2,$cash -= $modCost]] + | [[Serpent-like|cyberConfig][$activeSlave.eyeColor = "serpent-like",$temp = 2,$cash -= $modCost]] + | [[Devilish|cyberConfig][$activeSlave.eyeColor = "devilish",$temp = 2,$cash -= $modCost]] + | [[Demonic|cyberConfig][$activeSlave.eyeColor = "demonic",$temp = 2,$cash -= $modCost]] + | [[Hypnotic|cyberConfig][$activeSlave.eyeColor = "hypnotic",$temp = 2,$cash -= $modCost]] + | [[Heart-shaped|cyberConfig][$activeSlave.eyeColor = "heart-shaped",$temp = 2,$cash -= $modCost]] <</if>> <<if $activeSlave.PLimb > 0>><br><br> $pronounCap has PLimb interface installed. You can assign and adjust $possessive prosthetics here. <<if $activeSlave.amp <= -1>><br> $possessiveCap prosthetics are currently attached, if you wish to change them you will first need to detach them.<br> - [[Detach|cyberConfig][$temp to 1,$nextButton to "Continue", $nextLink to "cyberConfig"]] + [[Detach|cyberConfig][$temp = 1,$nextButton = "Continue", $nextLink = "cyberConfig"]] <<else>><br> - <<if $stockpile.basicPLimb > 0>>[[Attach basic limbs|cyberConfig][$temp to 4, $activeSlave.amp to -1, $stockpile.basicPLimb -= 1]]<</if>> - <<if $stockpile.advSexPLimb > 0>>[[Attach sex limbs|cyberConfig][$temp to 4, $activeSlave.amp to -2, $stockpile.advSexPLimb -= 1]]<</if>> - <<if $stockpile.advGracePLimb > 0>>[[Attach beauty limbs|cyberConfig][$temp to 4, $activeSlave.amp to -3, $stockpile.advGracePLimb -= 1]]<</if>> - <<if $stockpile.advCombatPLimb > 0>>[[Attach combat limbs|cyberConfig][$temp to 4, $activeSlave.amp to -4, $stockpile.advCombatPLimb -= 1]]<</if>> + <<if $stockpile.basicPLimb > 0>>[[Attach basic limbs|cyberConfig][$temp = 4, $activeSlave.amp = -1, $stockpile.basicPLimb -= 1]]<</if>> + <<if $stockpile.advSexPLimb > 0>>[[Attach sex limbs|cyberConfig][$temp = 4, $activeSlave.amp = -2, $stockpile.advSexPLimb -= 1]]<</if>> + <<if $stockpile.advGracePLimb > 0>>[[Attach beauty limbs|cyberConfig][$temp = 4, $activeSlave.amp = -3, $stockpile.advGracePLimb -= 1]]<</if>> + <<if $stockpile.advCombatPLimb > 0>>[[Attach combat limbs|cyberConfig][$temp = 4, $activeSlave.amp = -4, $stockpile.advCombatPLimb -= 1]]<</if>> <<if $activeSlave.PLimb == 2>> - <<if $stockpile.cyberneticPLimb > 0>>[[Attach cybernetic limbs|cyberConfig][$temp to 4, $activeSlave.amp to -5, $stockpile.cyberneticPLimb -= 1]]<</if>> + <<if $stockpile.cyberneticPLimb > 0>>[[Attach cybernetic limbs|cyberConfig][$temp = 4, $activeSlave.amp = -5, $stockpile.cyberneticPLimb -= 1]]<</if>> <<else>> //To equip more advanced prosthetics you will need to upgrade your slaves' PLimb interface.// <</if>> @@ -76,14 +76,14 @@ <</if>> <<case 1>> - <<set $temp to 0, $nextButton to "Continue", $nextLink to "cyberConfig">> - <<if $activeSlave.amp is -1>><<set $stockpile.basicPLimb += 1>> - <<elseif $activeSlave.amp is -2>><<set $stockpile.advSexPLimb += 1>> - <<elseif $activeSlave.amp is -3>><<set $stockpile.advGracePLimb += 1>> - <<elseif $activeSlave.amp is -4>><<set $stockpile.advCombatPLimb += 1>> - <<elseif $activeSlave.amp is -5>><<set $stockpile.cyberneticPLimb += 1>> + <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> + <<if $activeSlave.amp == -1>><<set $stockpile.basicPLimb += 1>> + <<elseif $activeSlave.amp == -2>><<set $stockpile.advSexPLimb += 1>> + <<elseif $activeSlave.amp == -3>><<set $stockpile.advGracePLimb += 1>> + <<elseif $activeSlave.amp == -4>><<set $stockpile.advCombatPLimb += 1>> + <<elseif $activeSlave.amp == -5>><<set $stockpile.cyberneticPLimb += 1>> <</if>> - <<set $activeSlave.amp to 1>> + <<set $activeSlave.amp = 1>> Due to built-in safeties it is necessary to remove each limb separately, first releasing the lock and then waiting for automated seal release.<br> <<if ($activeSlave.devotion > 20)>> You instruct $possessive to lie down on the table and proceed to remove $possessive limbs. $pronounCap <<if canSee($activeSlave)>>watches<<else>>listens<</if>> with interest as you work.<<if ($activeSlave.devotion > 50)>> As you remove the last limb $pronoun playfully wiggles $possessive stumps at you.<</if>> @@ -92,10 +92,10 @@ <</if>> <<case 2>> - <<set $temp to 0, $nextButton to "Continue", $nextLink to "cyberConfig">> + <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> <<if $activeSlave.amp != 1>>You have $possessive lie down and<<else>>You<</if>> use speculum to keep $possessive eyes open while you disengage $possessive lenses remotely and swap them out with $possessive new $activeSlave.eyeColor lenses. <<case 3>> - <<set $temp to 0, $nextButton to "Continue", $nextLink to "cyberConfig">> + <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> <<if $activeSlave.eyes == 1>> $pronounCap blinks as $possessive vision returns. <<elseif $activeSlave.eyes == -1>> @@ -104,7 +104,7 @@ $pronounCap has a panicked expression when $possessive vision suddenly goes out. <</if>> <<case 4>> - <<set $temp to 0, $nextButton to "Continue", $nextLink to "cyberConfig">> + <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> Attaching $possessive limbs is a simple procedure, simply push connector on each limb into the socket in $possessive implants until lock engages.<<if $activeSlave.PLimb == 2>> $pronounCap jumps a bit as limbs connect to $possessive nerves.<</if>> When you are done, $pronoun sits up and <<if $activeSlave.amp == -2>>experimentally engages the vibe function in $possessive fingers. <<elseif $activeSlave.amp == -3>>runs a hand over the smooth skin of $possessive new legs. diff --git a/src/js/SFJS.tw b/src/js/SFJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..d016e96b98ec6fb448bb8e1061c6bcde578d654a --- /dev/null +++ b/src/js/SFJS.tw @@ -0,0 +1,15 @@ +:: SFJS [script] + +window.simpleWorldEconomyCheck = function() { + var n1 = 4; + var n2 = 3; + var n3 = 2; + if(State.variables.economy === .5) { + return n1; + } else if(State.variables.economy === 1.5) { + return n3; + } else { + return n2; + } +} + diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw index fbffa54784b166f9256b7b1cfe2165536e7893a4..3aa63c5df81ddaacdc6c79ad1dc4583ef1121c5d 100644 --- a/src/js/assayJS.tw +++ b/src/js/assayJS.tw @@ -189,4 +189,28 @@ window.slimPass = function(slave) { } return slimPass; -} \ No newline at end of file +} + +window.sameAssignmentP = function sameAssignmentP(A, B) { + return A.assignment === B.assignment +} + +window.haveRelationP = function haveRelationP(slave, target) { + return slave.relationTarget === target.ID +} + +window.haveRelationshipP = function haveRelationshipP(slave, target) { + return slave.relationshipTarget === target.ID +} + +window.isRivalP = function isRivalP(slave, target) { + return slave.rivalryTarget === target.ID +} + +window.supremeRaceP = function supremeRaceP(slave) { + return SugarCube.State.variables.arcologies[0].FSSupremacistRace === slave.race +} + +window.inferiorRaceP = function inferiorRaceP(slave) { + return SugarCube.State.variables.arcologies[0].FSSubjugationistRace === slave.race +} diff --git a/src/js/clothingSelectionJS.tw b/src/js/clothingSelectionJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..ee39543f5b90f8ee60f45ef2e248a26f4277d095 --- /dev/null +++ b/src/js/clothingSelectionJS.tw @@ -0,0 +1,711 @@ +:: clothingSelectionJS [script] + +window.todaysOutfit = function(slave) { + + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var clothing = []; + var wardrobeAssignment = []; + var wardrobeFS = []; + var wardrobeTastes = []; + var selection; + + /*for the time being, this will use female pronouns until the system is updated.*/ + + if(slave.fetish == 'mindbroken') { + if(ArcologyZero.FSChattelReligionist > 0) { + selection = {text: "she commonly sees others wearing chattel habits and is drawn to doing so herself.", clothes: "a chattel habit"}; + } else { + clothing.push('panties'); + if(ArcologyZero.FSEgyptianRevivalist > 0) { + clothing.push('egyptian'); + } else if(ArcologyZero.FSRomanRevivalist > 0) { + clothing.push('roman'); + } else if(ArcologyZero.FSAztecRevivalist > 0) { + clothing.push('aztec'); + } else if(ArcologyZero.FSEdoRevivalist > 0) { + clothing.push('edo'); + } else if(ArcologyZero.FSArabianRevivalist > 0) { + clothing.push('arabic'); + } else if(ArcologyZero.FSChineseRevivalist > 0) { + clothing.push('chinese'); + } + if(ArcologyZero.FSGenderFundamentalist > 0) { + clothing.push('genderFund'); + } + if(ArcologyZero.FSPaternalist > 0) { + clothing.push('paternalist'); + } else if(ArcologyZero.FSDegradationist > 0) { + clothing.push('degradationist'); + } + if(ArcologyZero.FSMaturityPreferentialist > 0) { + clothing.push('mature'); + } else if(ArcologyZero.FSYouthPreferentialist > 0) { + clothing.push('youth'); + } + if(ArcologyZero.FSPhysicalIdealist > 0) { + clothing.push('physicalIdealist'); + } + if(ArcologyZero.FSPastoralist > 0) { + clothing.push('pastoralist'); + } + if(ArcologyZero.FSBodyPurist > 0) { + clothing.push('bodyPurist'); + } + clothing = jsEither(clothing); + switch(clothing) { + case 'egyptian': + selection = {text: "she commonly sees others wearing nothing but jewelry and is drawn to doing so herself.", clothes: "slutty jewelry"}; + break; + case 'roman': + selection = {text: "she commonly sees others wearing togas and is drawn to doing so herself.", clothes: "a toga"}; + break; + case 'aztec': + selection = {text: "she commonly sees others wearing huipils and is drawn to doing so herself.", clothes: "a huipil"}; + break; + case 'edo': + selection = {text: "she commonly sees others wearing kimonos and is drawn to doing so herself.", clothes: "a kimono"}; + break; + case 'arabic': + selection = {text: "she commonly sees others wearing silk and is drawn to doing so herself.", clothes: "harem gauze"}; + break; + case 'chinese': + selection = {text: "she commonly sees others wearing qipaos and is drawn to doing so herself.", clothes: "a slutty qipao"}; + break; + case 'genderFund': + if(jsRandom(1,2) == 1) { + selection = {text: "she commonly sees cheerleaders around and instinctually follows along.", clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])}; + } else { + selection = {text: "she commonly sees bunnies around and instinctually follows along.", clothes: "a bunny outfit"}; + } + break; + case 'paternalist': + selection = {text: "she commonly sees others wearing clothing and is drawn to doing so herself.", clothes: "conservative clothing"}; + break; + case 'degradationist': + selection = {text: "she commonly sees others wearing chains and is drawn to doing so herself.", clothes: jsEither(['chains', 'uncomfortable straps', 'shibari ropes'])}; + break; + case 'mature': + selection = {text: "she commonly sees others wearing suits and is drawn to doing so herself.", clothes: jsEither(['slutty business attire', 'a nice maid outfit', 'a military uniform', 'nice business attire'])}; + break; + case 'youth': + selection = {text: "she commonly sees schoolgirls around and instinctually follows along.", clothes: jsEither(['a schoolgirl outfit', 'a cheerleader outfit'])}; + break; + case 'physicalIdealist': + selection = {text: "she commonly sees naked girls around and seldom realizes they are coated in oil.", clothes: jsEither(['body oil', 'no clothing', 'no clothing'])}; + break; + case 'pastoralist': + selection = {text: "she commonly sees cowgirls around and instinctually follows along.", clothes: "Western clothing"}; + break; + case 'bodyPurist': + selection = {text: "she commonly sees others wearing tight, form-fitting clothes and is drawn to doing so herself.", clothes: jsEither(['a leotard', 'a string bikini', 'a slave gown', 'a comfortable bodysuit', 'restrictive latex', 'clubslut netting', 'a leotard', 'a halter top dress'])}; + break; + default: + selection = {text: "she chooses to put on underwear, the reasons lost to her, and moves on.", clothes: "attractive lingerie"}; + break; + } + } + } else if(slave.devotion <= 20) { + clothing.push({text: "She uses the ability to select outfits to cover up with comfortable cut-offs and a t-shirt,", clothes: "cutoffs and a t-shirt"}); + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "She uses the ability to select outfits to cover up with the most conservative clothing she can find.", clothes: "conservative clothing"}); + } + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "She uses the ability to select outfits to cover herself with a kimono.", clothes: "a kimono"}); + } + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "She uses the ability to select outfits to cover up with stretch pants and a crop-top, though she wishes it didn't have lewd comments printed on it.", clothes: "stretch pants and a crop-top"}); + } + selection = jsEither(clothing); + } else { + if(ArcologyZero.FSChattelReligionist > 0) { + clothing.push({text: "and wears a chattel habit to conform to your arcology's culture.", clothes: "a chattel habit"}); + } + /*Chooses clothes according to assignment (no exceptions)*/ + else if(slave.assignment == "be the Nurse") { + if(slave.energy > 95 || slave.need > 100) { + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to make it clear just how much this nurse needs her daily lay.", clothes: "a slutty nurse outfit"}); + } else if(slave.energy > 80) { + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to show off her body and arouse her patients.", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and wears a nice nurse outfit to look professional before her patients.", clothes: "a nice nurse outfit"}); + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to show to a little skin as she cares for her patients.", clothes: "a slutty nurse outfit"}); + } else { + wardrobeAssignment.push({text: "and wears a nice nurse outfit to look professional before her patients.", clothes: "a nice nurse outfit"}); + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to show to a little skin as she cares for her patients.", clothes: "a slutty nurse outfit"}); + } + } else if(slave.assignment == "be the Madam") { + if(slave.energy > 95 || slave.need > 100) { + wardrobeAssignment.push({text: "and wears a slutty suit to be certain nothing blocks her from getting the sex she needs.", clothes: "slutty business attire"}); + } else if(slave.energy > 80) { + wardrobeAssignment.push({text: "and wears a nice suit to show she means business.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to entice and arouse while still looking managerial.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to entice and arouse while still looking managerial.", clothes: "slutty business attire"}); + } else { + wardrobeAssignment.push({text: "and wears a nice suit to show she means business.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to entice and arouse while still looking managerial.", clothes: "slutty business attire"}); + } + } else if(slave.assignment == "be the Milkmaid") { + if(slave.energy > 95 || slave.need > 100) { + if(isItemAccessible("body oil")) { + wardrobeAssignment.push({text: "and coats herself with oil to better slip between her cows as she pleasures them.", clothes: "body oil"}); + } + wardrobeAssignment.push({text: "but goes nude to not be slowed down while moving between her charges.", clothes: "no clothing"}); + } else { + wardrobeAssignment.push({text: "and wears a sturdy maid outfit, since anything else might be damaged by her hard work with the cows.", clothes: "a nice maid outfit"}); + wardrobeAssignment.push({text: "and decides to call it casual friday and wear nothing but cutoffs and a t-shirt. Not like the cows will mind.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and opts to don a cheerleader outfit to help cheer the cows on.", clothes: "a cheerleader outfit"}); + wardrobeAssignment.push({text: "and dresses up as a succubus since she'll be drawing plenty of fluids.", clothes: "a succubus outfit"}); + wardrobeAssignment.push({text: "and slips into some spats and a tanktop since she feels a workout coming on.", clothes: "spats and a tank top"}); + if(isItemAccessible("Western clothing")) { + wardrobeAssignment.push({text: "and wears an appropriate cowgirl outift. Her bare ass walking past is sure to amuse her charges.", clothes: "Western clothing"}); + } + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and slips into some comfy stretch pants to relax as she works the cows.", clothes: "stretch pants and a crop-top"}); + } + if(State.variables.cumSlaves > 2) { + wardrobeAssignment.push({text: "and wears a slutty nurse outfit to help keep her charges hard.", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and wears nothing but sexy lingerie to help keep her charges hard.", clothes: "attractive lingerie"}); + wardrobeAssignment.push({text: "and wears the skimpiest bikini on hand to help keep her charges hard.", clothes: "a string bikini"}); + if(isItemAccessible("body oil")) { + wardrobeAssignment.push({text: "and coats herself in oil for her charges to savor.", clothes: "body oil"}); + } + } + } + } else if(slave.assignment == "be your Head Girl") { + wardrobeAssignment.push({text: "and wears a military uniform to give her that extra touch of authority.", clothes: "a military uniform"}); + wardrobeAssignment.push({text: "and wears a handsome suit to give her that extra touch of authority.", clothes: "nice business attire"}); + if(canPenetrate(slave)){ + wardrobeAssignment.push({text: "and wears a slutty suit to make it perfectly clear that her dick is her main tool in her job.", clothes: "slutty business attire"}); + } + } else if(slave.assignment == "be the Schoolteacher") { + wardrobeAssignment.push({text: "and wears a handsome suit to give her that teacherly authority.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a slutty suit to give her an air of authority will keeping all eyes focused on her.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and wears a schoolgirl outfit to help keep her charges focused on her.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and dresses up as a succubus to give her sex lessons an extra kick.", clothes: "a succubus outfit"}); + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "and wears conservative clothes to not detract from this week's lesson.", clothes: "conservative clothing"}); + } + if(isItemAccessible("a toga")) { + wardrobeAssignment.push({text: "and wraps herself in a toga to model herself after the philosophers of yore.", clothes: "a toga"}); + } + if(isItemAccessible("a maternity dress") && slave.belly >= 10000) { + wardrobeAssignment.push({text: "and settles for a comfortable maternity dress to support her middle while she lectures in front of the class all week.", clothes: "a maternity dress"}); + } + } else if(slave.assignment == "be the Wardeness") { + wardrobeAssignment.push({text: "and dons battledress, the better to intimidate the prisoners.", clothes: "battledress"}); + wardrobeAssignment.push({text: "and slips into a scalemail bikini, the better to intimidate the prisoners.", clothes: "a scalemail bikini"}); + wardrobeAssignment.push({text: "and dons a scandalous habit to make it perfectly clear that crossing this nun will result in sexual punishment.", clothes: "a fallen nun's habit"}); + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and decides to take it easy by slipping into some stretch pants. They come off just as quickly as they come on, just in case.", clothes: "stretch pants and a crop-top"}); + } + } else if(slave.assignment == "be the Attendant") { + wardrobeAssignment.push({text: "and wears a string bikini, since it's all she can wear that won't be ruined by all the moisture in the spa.", clothes: "a string bikini"}); + wardrobeAssignment.push({text: "but decides to go nude, since she'll be spending so much time in the water.", clothes: "no clothing"}); + } else if(slave.assignment == "rest") { + wardrobeAssignment.push({text: "and wears a comfortable t-shirt and cutoffs to relax.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and slips into some attractive lingerie to enjoy herself as she unwinds.", clothes: "attractive lingerie"}); + wardrobeAssignment.push({text: "but decides that clothing takes too much work and would rather sleep nude.", clothes: "no clothing"}); + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and slips into some comfy stretch pants to relax.", clothes: "stretch pants and a crop-top"}); + } + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { + wardrobeAssignment.push({text: "and slips into some attractive lingerie to enjoy herself as she unwinds.", clothes: "attractive lingerie for a pregnant woman"}); + } + if(slave.fetish == "submissive") { + wardrobeAssignment.push({text: "and decides the best way to relax is tied up nice and tight.", clothes: "shibari ropes"}); + } + } else if(slave.assignment == "get milked" || slave.assignment == "work in the dairy") { + wardrobeAssignment.push({text: "and wears sturdy lingerie to offer the best support to her sore, milk-filled udders.", clothes: "attractive lingerie"}); + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { + wardrobeAssignment.push({text: "and wears lingerie designed for milky mothers.", clothes: "attractive lingerie for a pregnant woman"}); + } + if(isItemAccessible("a maternity dress") && slave.belly >= 10000) { + wardrobeAssignment.push({text: "and chooses a maternity dress since it is easy to free her breasts from.", clothes: "a maternity dress"}); + } + wardrobeAssignment.push({text: "and wears a string bikini for easy access to her udders.", clothes: "a string bikini"}); + if(slave.lactation > 1) { + wardrobeAssignment.push({text: "but goes nude. There's no time for clothing, her udders need to be drained now!", clothes: "no clothing"}); + } + wardrobeAssignment.push({text: "and dons a slutty outfit. If her breasts are going to hang out, might as well wear something to complement them.", clothes: "a slutty outfit"}); + } else if(slave.assignment == "guard you") { + wardrobeAssignment.push({text: "and wears a bodysuit to show off her curves without hindering her deadliness.", clothes: "a comfortable bodysuit"}); + wardrobeAssignment.push({text: "and wears a military uniform to look the part of the honor guard.", clothes: "a military uniform"}); + wardrobeAssignment.push({text: "and wears a nice suit to make it clear you mean business.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a scalemail bikini to make herself look fierce.", clothes: "a scalemail bikini"}); + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "and wears a nice kimono to add an air of elegance to your presence.", clothes: "a kimono"}); + } + } else { + /*Chooses clothes according to assignment (exceptions allowed)*/ + if(slave.assignment == "recruit girls") { + wardrobeAssignment.push({text: "and wears a flattering mini dress to appear sexy and carefree before those desperately seeking a better life.", clothes: "a mini dress"}); + wardrobeAssignment.push({text: "and wears a cutoffs and a t-shirt to appear sexy and carefree before those desperately seeking a better life.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and wears a nice suit to appear trustworthy before those desperately seeking a better life.", clothes: "nice business attire"}); + wardrobeAssignment.push({text: "and wears a schoolgirl outfit to appear sexy and carefree before those desperately seeking a better life.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and wears an opulent gown to showcase your wealth before those desperately seeking a better life.", clothes: "a ball gown"}); + wardrobeAssignment.push({text: "and dresses as a succubus to attempt to lure any potential catches.", clothes: "a succubus outfit"}); + if(isItemAccessible("harem gauze")) { + wardrobeAssignment.push({text: "and dons her finest silks to showcase the luxuries waiting would-be slaves.", clothes: "harem gauze"}); + } + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and wears comfortable stretch pants to and crop-top to appear carefree before those desperately seeking a better life.", clothes: "stretch pants and a crop-top"}); + } + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "and wears normal clothing to suggest to those desperately seeking a better life that they can find it here with you.", clothes: "conservative clothing"}); + } + } else if(slave.assignment == "be the DJ") { + wardrobeAssignment.push({text: "and wears clubslut netting to look like the perfect easy club girl.", clothes: "clubslut netting"}); + wardrobeAssignment.push({text: "and wears cutoffs and a t-shirt to look like the perfect easy club girl.", clothes: "cutoffs and a t-shirt"}); + wardrobeAssignment.push({text: "and wears the slutty outfit she can find to look like the perfect easy club girl.", clothes: "a slutty outfit"}); + wardrobeAssignment.push({text: "and wears nothing but slutty jewelry since she loves the way it jingles to her moves.", clothes: "slutty jewelry"}); + wardrobeAssignment.push({text: "and wears a skin tight bodysuit so nothing gets in the way of her moves.", clothes: "a comfortable bodysuit"}); + if(slave.boobs > 1000) { + wardrobeAssignment.push({text: "but decides to go naked and let her girls bounce free as she dances.", clothes: "no clothing"}); + } + if(isItemAccessible("harem gauze")) { + wardrobeAssignment.push({text: "and wears the finest available silks to give her moves a sensual grace.", clothes: "harem gauze"}); + } + } else if(slave.assignment == "be your Concubine") { + wardrobeAssignment.push({text: "and goes naked, since it's her honored role to be the chief object of your desire.", clothes: "no clothing"}); + wardrobeAssignment.push({text: "and dresses as a slutty nurse as your genitals are always in need of her special treatment.", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and dresses as a schoolgirl in the hopes that you teach her how to be a woman.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and dresses as a cheerleader so she may cheer you on as you blow her mind.", clothes: "a cheerleader outfit"}); + if(player.dick == 1) { + wardrobeAssignment.push({text: "and dresses as a slutty maid as you always come home with a stiff package that needs a thorough polishing.", clothes: "a slutty maid outfit"}); + } + wardrobeAssignment.push({text: "and, since you personally see that she never goes hungry, she dresses like the sex demoness she is.", clothes: "a succubus outfit"}); + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 10000 && slave.pregSource == -1) { + wardrobeAssignment.push({text: "and chooses attractive lingerie to showcase the body you've given her in the hopes that you ravish her.", clothes: "attractive lingerie for a pregnant woman"}); + } + if(slave.toyHole == "dick" && canPenetrate(slave)) { + wardrobeAssignment.push({text: "and slips into a scalemail bikini so she can act the role of your conqueror as she bends you over.", clothes: "a scalemail bikini"}); + } + } else if(slave.assignment == "be a subordinate slave") { + wardrobeAssignment.push({text: "but gives up and goes naked after the other slaves constantly tear whatever she's wearing off her.", clothes: "no clothing"}); + if(isItemAccessible("Western clothing")) { + wardrobeAssignment.push({text: "and chooses a pair of crotchless chaps so your other slaves don't have to waste time undressing her.", clothes: "Western clothing"}); + } + if(slave.fetish == "submissive") { + wardrobeAssignment.push({text: "and chooses to slip on a pair of spats and a tanktop in the hopes that she gets to be a violated schoolgirl.", clothes: "spats and a tank top"}); + wardrobeAssignment.push({text: "and chooses to slip on a schoolgirl outfit in the hope that she gets held down and raped.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and chooses to wear the sluttiest outfit available to make it clear what she wants done to her.", clothes: "a slutty outfit"}); + } + } else if(slave.assignment == "work a glory hole") { + wardrobeAssignment.push({text: "but doesn't bother wearing anything, since no one can see her clothing when she's immured inside a glory hole.", clothes: "no clothing"}); + } else if(slave.assignment == "take classes" || slave.assignment == "learn in the schoolroom") { + wardrobeAssignment.push({text: "and wears a schoolgirl outfit, since it seems most appropriate.", clothes: "a schoolgirl outfit"}); + wardrobeAssignment.push({text: "and wears a cheerleader outfit, since she might as well be one of the popular girls.", clothes: "a cheerleader outfit"}); + if(isItemAccessible("conservative clothing")) { + wardrobeAssignment.push({text: "and wears normal clothing to not distract from her lessons.", clothes: "conservative clothing"}); + } + } else if((slave.assignment == "whore") || (slave.assignment == "work in the brothel")) { + if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { + wardrobeAssignment.push({text: "and wears pretty lingerie to show off her merchandise and accentuate her pregnancy while still looking a little classy.", clothes: "attractive lingerie for a pregnant woman"}); + } + wardrobeAssignment.push({text: "and wears pretty lingerie to show off her merchandise and still look a little classy.", clothes: "attractive lingerie"}); + if(isItemAccessible("harem gauze")) { + wardrobeAssignment.push({text: "and dresses herself with harem gauze to add an exotic charm to her display.", clothes: "harem gauze"}); + } + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "and wraps herself in a kimono to add some elegance to her display.", clothes: "a kimono"}); + } + wardrobeAssignment.push({text: "and adorns herself in fine dress to show off how much of a high class whore she is.", clothes: "a slave gown"}); + wardrobeAssignment.push({text: "and dresses herself in a slutty suit to show she's in it for the ¤.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and wears a flattering mini dress to really strut her stuff.", clothes: "a mini dress"}); + } else if(slave.assignment == "serve the public" || slave.assignment == "serve in the club") { + wardrobeAssignment.push({text: "and wears string lingerie to look fun and fuckable.", clothes: "a string bikini"}); + wardrobeAssignment.push({text: "and throws together the sluttiest outfit since if you're going to slut you might as well go all out.", clothes: "a slutty outfit"}); + wardrobeAssignment.push({text: "and tosses on a slutty suit that screams she needs a good fuck after a long day.", clothes: "slutty business attire"}); + wardrobeAssignment.push({text: "and dresses up as a slutty nurse. She knows just how to fix penile swelling", clothes: "a slutty nurse outfit"}); + wardrobeAssignment.push({text: "and wears a cheerleader outfit to look energetic and fuckable.", clothes: "a cheerleader outfit"}); + if(isItemAccessible("a bunny outfit")) { + wardrobeAssignment.push({text: "and slips into a teddy to add some class to her post.", clothes: "a bunny outfit"}); + } + wardrobeAssignment.push({text: "and dresses up as a succubus to clearly advertise her promiscuity.", clothes: "a succubus outfit"}); + if(slave.bellyPreg >= 10000) { + wardrobeAssignment.push({text: "and struggles into a schoolgirl outfit. Her gravid belly just screams that she is a slutty little student who cares more for dick than lessons.", clothes: "a succubus outfit"}); + } + } else if(slave.assignment == "be a servant" || slave.assignment == "work as a servant") { + if(slave.energy > 95 || slave.need > 100) { + wardrobeAssignment.push({text: "and wears a skimpy maid outfit hoping that someone sneaks up behind her as she works and fulfills her desires.", clothes: "a slutty maid outfit"}); + } else if(slave.energy > 80) { + wardrobeAssignment.push({text: "and wears a skimpy maid outfit to tempt anyone watching her work.", clothes: "a slutty maid outfit"}); + wardrobeAssignment.push({text: "and wears a sturdy maid outfit, since anything else might be damaged by her hard work around the penthouse.", clothes: "a nice maid outfit"}); + wardrobeAssignment.push({text: "and wears a skimpy maid outfit to tempt anyone watching her work.", clothes: "a slutty maid outfit"}); + } else { + wardrobeAssignment.push({text: "and wears a sturdy maid outfit, since anything else might be damaged by her hard work around the penthouse.", clothes: "a nice maid outfit"}); + wardrobeAssignment.push({text: "and wears a skimpy maid outfit to tempt anyone watching her work.", clothes: "a slutty maid outfit"}); + } + } + + /* Chooses clothes according to FS*/ + if(ArcologyZero.FSEgyptianRevivalist > 0) { + wardrobeFS.push({text: "and complements it with golden bangles, since no clothing is necessary for a sex slave in your warm and sunny arcology.", clothes: "slutty jewelry"}); + } else if(ArcologyZero.FSRomanRevivalist > 0) { + wardrobeFS.push({text: "and wears a toga to take part in your Roman revivalism.", clothes: "a toga"}); + } else if(ArcologyZero.FSEdoRevivalist > 0) { + wardrobeFS.push({text: "and wears a kimono, overjoyed that such lovely clothing is now appropriate.", clothes: "a kimono"}); + } else if(ArcologyZero.FSArabianRevivalist > 0) { + wardrobeFS.push({text: "and wears a harem outfit to look like a slave girl fit for a Sultan.", clothes: "harem gauze"}); + } else if(ArcologyZero.FSChineseRevivalist > 0) { + wardrobeFS.push({text: "and wears a brief qipao to show off and look Chinese at the same time.", clothes: "a slutty qipao"}); + } else if(ArcologyZero.FSAztecRevivalist > 0) { + wardrobeFS.push({text: "and drapes a huipil over herself to fit in with your Aztec revivalism.", clothes: "a huipil"}); + } + if(ArcologyZero.FSGenderFundamentalist > 0) { + wardrobeFS.push({text: "and wears a cheerleader outfit to look like a hot slut.", clothes: "a cheerleader outfit"}); + wardrobeFS.push({text: "and wears a bunny outfit to look like a slut from the glory days.", clothes: "a bunny outfit"}); + if(slave.bellyPreg >= 5000) { + wardrobeFS.push({text: "but decides to wear nothing at all; she's already pregnant, so she just needs to be barefoot and naked to complete her look.", clothes: "no clothing"}); + } + } else if(ArcologyZero.FSGenderRadicalist > 0) { + wardrobeFS.push({text: "and eagerly slips into a skimpy maid outfit so she can take advantage of its short skirt and her lack of underwear", clothes: "a slutty maid outfit"}); + wardrobeFS.push({text: "and wears a cheerleader outfit that clearly shows off her ass.", clothes: "a cheerleader outfit"}); + wardrobeFS.push({text: "and settles for some sexy succubutt.", clothes: "a succubus outfit"}); + } + if(ArcologyZero.FSPaternalist > 0) { + wardrobeFS.push({text: "and wears conservative clothing, as permitted by your paternalism.", clothes: "conservative clothing"}); + if(isItemAccessible("stretch pants and a crop-top")) { + wardrobeAssignment.push({text: "and wears the most comfortable stretch pants she can find.", clothes: "stretch pants and a crop-top"}); + } + } else if(ArcologyZero.FSDegradationist > 0) { + wardrobeFS.push({text: "and wears chains, to degrade herself as required by your societal goals.", clothes: "chains"}); + } + if(ArcologyZero.FSMaturityPreferentialist > 0) { + if(slave.visualAge >= 30) { + wardrobeFS.push({text: "and wears a slutty suit to look like the ideal horny older woman.", clothes: "slutty business attire"}); + } else { + wardrobeFS.push({text: "and wears a formal suit to look more mature.", clothes: "nice business attire"}); + } + } else if(ArcologyZero.FSYouthPreferentialist > 0) { + wardrobeFS.push({text: "and wears a schoolgirl outfit to look younger.", clothes: "a schoolgirl outfit"}); + wardrobeFS.push({text: "and wears a cheerleader outfit to look younger and more energetic.", clothes: "a cheerleader outfit"}); + wardrobeFS.push({text: "and wears spats and a tank top to look younger and more energetic.", clothes: "spats and a tank top"}); + } + if(ArcologyZero.FSPhysicalIdealist > 0) { + wardrobeFS.push({text: "and coats herself in body oil to show off how she's part of your physical idealism.", clothes: "body oil"}); + wardrobeFS.push({text: "and slips into some spats for her next workout.", clothes: "spats and a tank top"}); + } else if(ArcologyZero.FSHedonisticDecadence > 0) { + wardrobeFS.push({text: "and throws on a very casual getup.", clothes: "stretch pants and a crop-top"}); + wardrobeFS.push({text: "but decides against putting forth the effort and goes nude.", clothes: "no clothing"}); + } + if(ArcologyZero.FSPastoralist > 0) { + wardrobeFS.push({text: "and wears Western clothing, since she thinks it fits with pastoralism.", clothes: "Western clothing"}); + if(slave.lactation > 0) { + wardrobeFS.push({text: "and dresses up as a slutty wet nurse.", clothes: "a slutty nurse outfit"}); + } + wardrobeFS.push({text: "but decides to let her breasts be free. Clothes will just get in the way.", clothes: "no clothing"}); + } + if(ArcologyZero.FSBodyPurist > 0) { + wardrobeFS.push({text: "and wears a leotard to show off the purity of her body.", clothes: "a leotard"}); + wardrobeFS.push({text: "but decides her body is too nice to hide with clothing.", clothes: "no clothing"}); + } else if(ArcologyZero.FSTransormationFetishest > 0) { + if(isItemAccessible("body oil")) { + wardrobeAssignment.push({text: "and coats her assets in body oil to give them some extra shine.", clothes: "body oil"}); + } + wardrobeFS.push({text: "and decides squeezing into a latex suit will only complement her unnatural appearance.", clothes: "restrictive latex"}); + } + if(ArcologyZero.FSAssetExpansioninst > 0) { + wardrobeFS.push({text: "and decides to dress up like a young man's wet dream.", clothes: "a succubus outfit"}); + wardrobeFS.push({text: "and decides to wear a skimpy bikini to make her assets look even larger.", clothes: "a string bikini"}); + wardrobeFS.push({text: "and decides to throw together a slutty outfit that highlight her assets.", clothes: "a slutty outfit"}); + } else if(ArcologyZero.FSSlimnessEnthusiast > 0) { + if(slave.boobs < 300) { + wardrobeFS.push({text: "and wears s string bikini to show off just how flat she is.", clothes: "a string bikini"}); + } + if(slave.boobs < 600 && slave.butt < 3) { + wardrobeFS.push({text: "and wears a leotard to show off her lithe body.", clothes: "a leotard"}); + wardrobeFS.push({text: "and wears a form fitting bodysuit to show off her lithe figure.", clothes: "a comfortable bodysuit"}); + wardrobeFS.push({text: "and wears spats to hug her tight butt.", clothes: "spats and a tank top"}); + } else { + wardrobeFS.push({text: "and squeezes into a form fitting bodysuit in the hopes that it squishes down her assets.", clothes: "restrictive latex"}); + } + } + + /*Chooses clothes according to fetishes, quirks, etc.*/ + if(slave.attrXY > 70) { + if(slave.attrKnown == 1) { + wardrobeTastes.push({text: "and wears a schoolgirl outfit to show off a some T&A to attract boys.", clothes: "a schoolgirl outfit"}); + wardrobeTastes.push({text: "and wears nothing but pretty lingerie to attract boys.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and selects a slutty outfit that's sure to have men drooling.", clothes: "a slutty outfit"}); + if(slave.butt > 3){ + wardrobeTastes.push({text: "and slips on some cuttoffs that are sure to have men checking out her ass.", clothes: "cutoffs and a t-shirt"}); + } + if(isItemAccessible("a bunny outfit")) { + wardrobeAssignment.push({text: "and slips into a bunny outfit that she knows will have men lining up.", clothes: "a bunny outfit"}); + } + if(slave.boobs > 800) { + wardrobeTastes.push({text: "and dresses up as a busty succubus that pulls eyes the her chest and leaves pants feeling tight.", clothes: "a succubus outfit"}); + } + } else { + wardrobeTastes.push({text: "and selects a schoolgirl outfit that shows off some T&A.", clothes: "a schoolgirl outfit"}); + wardrobeTastes.push({text: "and wears pretty lingerie that shows off her body.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and selects a slutty outfit that's sure to draw attention.", clothes: "a slutty outfit"}); + if(slave.butt > 3){ + wardrobeTastes.push({text: "and slips on some cuttoffs that shows off her ass.", clothes: "cutoffs and a t-shirt"}); + } + if(isItemAccessible("a bunny outfit")) { + wardrobeAssignment.push({text: "and slips into a bunny outfit that hugs her curves.", clothes: "a bunny outfit"}); + } + if(slave.boobs > 800) { + wardrobeTastes.push({text: "and dresses up as a busty succubus that's sure to draw eyes.", clothes: "a succubus outfit"}); + } + } + } + if(slave.attrXX > 70) { + if(slave.attrKnown == 1) { + wardrobeTastes.push({text: "and wears a fashionable gown, since girls appreciate nice clothes.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears nothing but pretty lingerie to give the girls a show.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and wears a nice suit, since girls appreciate nice clothes.", clothes: "nice business attire"}); + } else { + wardrobeTastes.push({text: "and wears a fashionable gown.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears pretty lingerie that shows off her body.", clothes: "attractive lingerie"}); + wardrobeTastes.push({text: "and wears a nice suit, the reasons not entirely clear to you.", clothes: "nice business attire"}); + } + } + + /* need */ + if(slave.need > 90) { + wardrobeTastes.push({text: "but goes naked. She needs sex now and clothing will only get in the way.", clothes: "no clothing"}); + wardrobeTastes.push({text: "and throws on a slutty suit. She hopes that it gets the point across that she needs sex now.", clothes: "slutty business attire"}); + wardrobeTastes.push({text: "and dons a slutty nurse outfit. She's been infected and the only cure is a strong dicking.", clothes: "a slutty nurse outfit"}); + wardrobeTastes.push({text: "and dresses up as a slutty maid. Maybe if she does her job poorly enough, someone will bend her over and fuck some sense into her.", clothes: "a slutty maid outfit"}); + wardrobeTastes.push({text: "and dresses up as a succubus in the hopes it screams that she needs sex now.", clothes: "a succubus outfit"}); + } + + /* quirks n flaws */ + if(slave.behavioralQuirk == "sinful") { + wardrobeTastes.push({text: "and dresses up like a succubus because it makes $object feel naughty.", clothes: "a succubus outfit"}); + } else if(slave.behavioralQuirk == "fitness") { + wardrobeTastes.push({text: "and wears spats and a tank top to give herself a sporty look.", clothes: "spats and a tank top"}); + } + + /* age stuff */ + if(slave.actualAge < 10) { + wardrobeTastes.push({text: "and puts on a pretty dress so she can be a princess.", clothes: "a ball gown"}); + wardrobeTastes.push({text: "and dresses up like a cheerleader since she thinks it looks cute.", clothes: "a cheerleader outfit"}); + if(isItemAccessible("a kimono")) { + wardrobeAssignment.push({text: "and wraps herself in a kimono, since it feels so good on her skin.", clothes: "a kimono"}); + } + } + + /* fetishes */ + if(slave.fetishKnown == 1) { + if(slave.fetish == "submissive") { + wardrobeTastes.push({text: "and wears restrictive latex to encourage others to dominate her.", clothes: "restrictive latex"}); + wardrobeTastes.push({text: "and wears shibari ropes to encourage others to dominate her.", clothes: "shibari ropes"}); + } else if(slave.fetish == "dom") { + wardrobeTastes.push({text: "and wears a handsome suit, since she likes other slaves to look up to her.", clothes: "nice business attire"}); + wardrobeTastes.push({text: "and wears a full body latex catsuit to look the part of the whip cracking domme.", clothes: "a latex catsuit"}); + } else if(slave.fetish == "masochist") { + wardrobeTastes.push({text: "and wears painfully restrictive bondage gear, since she likes the torment.", clothes: "uncomfortable straps"}); + if(isItemAccessible("chains")) { + wardrobeAssignment.push({text: "and wears painfully tight chains, since she likes the torment.", clothes: "chains"}); + } + } else if(slave.fetish == "sadist") { + wardrobeTastes.push({text: "and wears an elegant gown, since she thinks it makes her look the part of the femme fatale.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears a scalemail bikini, since she thinks it makes her look fierce.", clothes: "a scalemail bikini"}); + } else if(slave.fetish == "cumslut") { + wardrobeTastes.push({text: "and wears cut-offs and a t-shirt, because the fun yet relatively conservative outfit seems to encourage others to ask her for blowjobs.", clothes: "cutoffs and a t-shirt"}); + } else if(slave.fetish == "humiliation") { + wardrobeTastes.push({text: "and wears leather straps with rings over her private parts because she enjoys the embarrassment such a humiliating outfit causes her.", clothes: "uncomfortable straps"}); + } else if(slave.fetish == "buttslut") { + wardrobeTastes.push({text: "and wears nothing other than slutty bangles, because she likes to catch the eye without putting anything between cocks and her rear end.", clothes: "slutty jewelry"}); + } else if(slave.fetish == "pregnancy") { + wardrobeTastes.push({text: "and wears a short maid dress, because she wants to look motherly and fuckable at the same time.", clothes: "a slutty maid outfit"}); + if(isItemAccessible("a maternity dress") && canGetPregnant(slave)) { + wardrobeAssignment.push({text: "and wears a maternity dress in the hope someone fills out its middle.", clothes: "a maternity dress"}); + } + } else if(slave.fetish == "boobs") { + wardrobeAssignment.push({text: "and wears a cheerleader outfit, since she loves the way it hugs her tits as she moves.", clothes: "a cheerleader outfit"}); + } + } else { + if(slave.fetish == "submissive") { + wardrobeTastes.push({text: "and strangely opts for restrictive latex.", clothes: "restrictive latex"}); + wardrobeTastes.push({text: "and strangely opts for shibari ropes.", clothes: "shibari ropes"}); + } else if(slave.fetish == "dom") { + wardrobeTastes.push({text: "and wears a handsome suit; she seems to think highly of herself in it.", clothes: "nice business attire"}); + wardrobeTastes.push({text: "and wears a full body latex catsuit; there is a strange look on her face as she wears it.", clothes: "a latex catsuit"}); + } else if(slave.fetish == "masochist") { + wardrobeTastes.push({text: "and strangely opts for painfully restrictive bondage gear.", clothes: "uncomfortable straps"}); + if(isItemAccessible("chains")) { + wardrobeAssignment.push({text: "and strangely opts for painfully tight chains.", clothes: "chains"}); + } + } else if(slave.fetish == "sadist") { + wardrobeTastes.push({text: "and wears an elegant gown for some reason.", clothes: "a slave gown"}); + wardrobeTastes.push({text: "and wears a scalemail bikini; an odd choice.", clothes: "a scalemail bikini"}); + } else if(slave.fetish == "cumslut") { + wardrobeTastes.push({text: "and wears cut-offs and a t-shirt; she can't stop licking her lips.", clothes: "cutoffs and a t-shirt"}); + } else if(slave.fetish == "humiliation") { + wardrobeTastes.push({text: "and strangely opts for leather straps with rings over her private parts.", clothes: "uncomfortable straps"}); + } else if(slave.fetish == "buttslut") { + wardrobeTastes.push({text: "and wears nothing other than slutty bangles, an odd choice; her ass is completely exposed.", clothes: "slutty jewelry"}); + } else if(slave.fetish == "pregnancy") { + wardrobeTastes.push({text: "and wears a short maid dress; you frequently notice her observing her stomach.", clothes: "a slutty maid outfit"}); + if(isItemAccessible("a maternity dress") && canGetPregnant(slave)) { + wardrobeAssignment.push({text: "and wears a maternity dress even though she isn't pregnant.", clothes: "a maternity dress"}); + } + } else if(slave.fetish == "boobs") { + wardrobeAssignment.push({text: "and wears a cheerleader outfit; she seems to enjoy jiggling her breasts in it.", clothes: "a cheerleader outfit"}); + } + } + + /* energy */ + if(slave.energy > 95) { + wardrobeTastes.push({text: "but goes nude, since as a nympho she gets plenty of attention anyway, and considers clothes an unnecessary hindrance.", clothes: "no clothing"}); + } + + /* pregnancy */ + if(slave.belly >= 5000) { + wardrobeTastes.push({text: "and wears pretty lingerie to show off her merchandise while giving her protruding belly plenty of room to hang free.", clothes: "attractive lingerie"}); + if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.energy > 70) { + wardrobeTastes.push({text: "and wears pretty lingerie to show off her merchandise and accentuate her pregnancy while giving it plenty of room to hang free.", clothes: "attractive lingerie for a pregnant woman"}); + } else if(isItemAccessible("a maternity dress")) { + wardrobeTastes.push({text: "and wears a conservative dress with plenty of give for her belly to stretch it.", clothes: "a maternity dress"}); + } + wardrobeTastes.push({text: "and wears string lingerie to look fun and fuckable while giving her protruding belly plenty of room to hang free.", clothes: "a string bikini"}); + } else { + wardrobeTastes.push({text: "and wears string lingerie to show off her body.", clothes: "a string bikini"}); + } + } + /*Separated in three categories in case you want to, say, increase the probability of choosing _wardrobeAssignment to look more professional*/ + if(wardrobeAssignment.length > 0) { + for (var i = 0; i < wardrobeAssignment.length; i++) { + clothing.push(wardrobeAssignment[i]); + } + } + if(wardrobeFS.length > 0) { + for (var i = 0; i < wardrobeFS.length; i++) { + clothing.push(wardrobeFS[i]); + } + } + if(wardrobeTastes.length > 0) { + for (var i = 0; i < wardrobeTastes.length; i++) { + clothing.push(wardrobeTastes[i]); + } + } + selection = jsEither(clothing); + } + + return selection; +} + +window.todaysShoes = function(slave) { + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var shoes = []; + + if(slave.fetish == 'mindbroken') { + if(slave.amp != 1 && slave.heels == 1) { + shoes.push({text: "She finds she can inexplicably walk if she wears heels; a daily lesson for her, as she forgets shortly after leaving.", shoes: jsEither(["heels", "extreme heels", "boots"])}); + } + shoes.push({text: "She vaguely remembers putting things on her feet, so she does.", shoes: jsEither(["heels", "extreme heels", "boots", "flats"])}); + shoes.push({text: "She entered without shoes, and will leave the same.", shoes: "none"}); + } else if(slave.devotion <= 20) { + if(slave.heels == 0) { + shoes.push({text: "and wears comfortable flats,", shoes: "flats"}); + } else { + shoes.push({text: "and angrily wears the heels she needs to walk,", shoes: "heels"}); + } + } else { + if(slave.fetishKnown == 1 && slave.fetish == "dom") { + shoes.push({text: "She wears boots to look like a proper dominant.", shoes: "boots"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "sadist") { + shoes.push({text: "She wears boots, since she thinks they make her look dangerous.", shoes: "boots"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "masochist") { + shoes.push({text: "She wears painfully tall heels, since she enjoys the twinge of pain with each step.", shoes: "extreme heels"}); + } else if(slave.heels == 1) { + shoes.push({text: "She wears the heels she needs to walk.", shoes: "heels"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "pregnancy" && slave.bellyPreg >= 500) { + shoes.push({text: "She goes barefoot to complement her pregnancy.", shoes: "none"}); + } else if(slave.fetishKnown == 1 && slave.fetish == "none") { + shoes.push({text: "She wears comfortable flats, since she doesn't have a fetish to show off.", shoes: "flats"}); + } else if(slave.actualAge < 13){ + shoes.push({text: "She puts on boots so she can stomp around.", shoes: "boots"}); + shoes.push({text: "She playfully puts on heels to be like all the other girls.", shoes: "heels"}); + shoes.push({text: "She wears flats as they are comfortable and easy to take on and off.", shoes: "flats"}); + shoes.push({text: "Going barefoot is fun, so no shoes for her.", shoes: "none"}); + } else { + shoes.push({text: "She wears heels to strut her stuff.", shoes: "heels"}); + shoes.push({text: "She wears comfortable flats to take it easy.", shoes: "flats"}); + shoes.push({text: "She goes barefoot to show off her toes.", shoes: "none"}); + } + } + return jsEither(shoes); +} + +window.todaysCollar = function(slave) { + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var neck = []; + + if(slave.fetish == 'mindbroken') { + + } else if(slave.devotion <= 20) { + + } else { + if(ArcologyZero.FSEgyptianRevivalist > 0) { + neck.push({text: "dons a wesekh to support your ancient Egyptian pretensions,", collar: "ancient Egyptian"}); + } + if(slave.fetish == "masochist") { + neck.push({text: "dons a tight steel collar around her neck,", collar: "tight steel"}); + neck.push({text: "dons a painful leather collar,", collar: "uncomfortable leather"}); + neck.push({text: "dons a painfully tight neck corset,", collar: "satin choker"}); + } else if(slave.fetish == "pregnancy" && (canGetPregnant(slave) || slave.pregKnown == 1)) { + neck.push({text: "dons a digital display that tells everything about her womb,", collar: "preg biometrics"}); + } else if(slave.fetish == "boobs" && slave.boobs >= 1000) { + neck.push({text: "dons a cowbell to draw attention to her luscious udders,", collar: "leather with cowbell"}); + } + neck.push({text: "decides her neck needs no accenting,", collar: "none"}); + neck.push({text: "dons some pretty jewelry,", collar: "pretty jewelry"}); + neck.push({text: "dons a lovely gold collar,", collar: "heavy gold"}); + neck.push({text: "dons a simple silk ribbon around her neck,", collar: "silk ribbon"}); + } + return jsEither(neck); +} + +window.todaysCorset = function(slave) { + var ArcologyZero = State.variables.arcologies[0]; + var player = State.variables.PC; + var belly = []; + var empathyBellies = ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]; + + if(slave.fetish == 'mindbroken') { + if(ArcologyZero.FSRepopulationFocus > 0 && slave.belly < 1500) { + if(slave.weight > 130) { + belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one. She struggles to fit it around her huge gut, only stopping when another slave takes it away from her so she moves on and stops blocking the wardrobe with her fat ass.", bellyAccessory: "none"}); + } else { + belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one.", bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])}); + } + } else { + belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatibility for no output, will likely get deprecated in the future as content is added*/ + } + } else if(slave.devotion <= 20) { + + } else { + if(ArcologyZero.FSRepopulationFocus > 0 && slave.belly < 1500 && slave.sexualFlaw != "breeder") { + if(slave.weight > 130) { + belly.push({text: "struggles to fit a fake pregnant belly around her gut before giving up and hoping she can pass as fecund,", bellyAccessory: "none"}); + } else { + belly.push({text: "straps on a fake pregnant belly to fit in with all the other pregnant girls,", bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])}); + } + } else if(slave.belly < 1500 && slave.fetish == "pregnancy" && isItemAccessible("a small empathy belly") && slave.sexualFlaw != "breeder" && slave.weight <= 130) { + if(slave.fetishStrength <= 30) { + belly.push({text: "straps on a 1st trimester belly to sate her curiosity,", bellyAccessory: "a small empathy belly"}); + belly.push({text: "straps on a 2nd trimester belly to sate her curiosity,", bellyAccessory: "a medium empathy belly"}); + belly.push({text: "straps on a 3rd trimester belly to sate her curiosity,", bellyAccessory: "a large empathy belly"}); + } else if(slave.fetishStrength <= 95) { + belly.push({text: "straps on a 3rd trimester belly to satisfy her pregnancy fetish,", bellyAccessory: "a large empathy belly"}); + } else if(slave.fetishStrength > 95) { + belly.push({text: "straps on the largest belly she can find to satisfy her pregnancy fetish,", bellyAccessory: "a huge empathy belly"}); + } + } else if(empathyBellies.includes(slave.bellyAccessory) && slave.fetish != "pregnancy") { + belly.push({text: "removes her fake belly, since she dislikes it,", bellyAccessory: "none"}); + } else if(empathyBellies.includes(slave.bellyAccessory) && slave.sexualFlaw == "breeder") { + belly.push({text: "pulls her fake belly off, disgusted by it,", bellyAccessory: "none"}); + } else { + belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatibility for no output, will likely get deprecated in the future as content is added*/ + } + } + return jsEither(belly); +} \ No newline at end of file diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw index 6a49f2af96229a2b1a2865ebd658af0f4d7dfd80..6d9ddd969221a09066c9dc76fc88a032ded56075 100644 --- a/src/js/economyJS.tw +++ b/src/js/economyJS.tw @@ -7,7 +7,7 @@ window.Job = Object.freeze({ SERVANT: 'work as a servant', SERVER: 'be a servant', STEWARD: 'be the Stewardess', CLUB: 'serve in the club', DJ: 'be the DJ', JAIL: 'be confined in the cellblock', WARDEN: 'be the Wardeness', CLINIC: 'get treatment in the clinic', NURSE: 'be the Nurse', HGTOY: 'live with your Head Girl', SCHOOL: 'learn in the schoolroom', TEACHER: 'be the Schoolteacher', SPA: 'rest in the spa', ATTEND: 'be the Attendant'}); -window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVEING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep'}); +window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVEING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep', HACKING: 'hacking'}); window.getCost = function(array) { var rulesCost = State.variables.rulesCost; @@ -269,6 +269,8 @@ window.getCost = function(array) { costs += 10000*State.variables.AgeEffectOnTrainerPricingPC; } else if(State.variables.personalAttention === PersonalAttention.MEDICINE) { costs += 10000*State.variables.AgeEffectOnTrainerPricingPC; + } else if(State.variables.personalAttention === PersonalAttention.HACKING) { + costs += 10000*State.variables.AgeEffectOnTrainerPricingPC; } } @@ -441,7 +443,7 @@ window.getSlaveCost = function(s) { cost += foodCost * s.pregType * (s.pregControl === 'speed up' ? 3 : 1); } } - if(s.diet === 'XX' || s.diet === 'XY') { + if(s.diet === 'XX' || s.diet === 'XY' || s.diet === 'fertility') { cost += 25; } else if(s.diet === 'cleansing') { cost += 50; diff --git a/src/js/eventSelectionJS.tw b/src/js/eventSelectionJS.tw index e1317557a9c62a87f3028d642877e28446f7dbed..a5d188bb2603d82923fe24f31ce30f706c557d8c 100644 --- a/src/js/eventSelectionJS.tw +++ b/src/js/eventSelectionJS.tw @@ -1512,6 +1512,16 @@ if(eventSlave.fetish != "mindbroken") { } } } + + if(eventSlave.vagina == 0) { + if(eventSlave.devotion > 50) { + if(eventSlave.trust > 20) { + if(eventSlave.speechRules != "restrictive") { + State.variables.RESSevent.push("devoted virgin"); + } + } + } + } if(eventSlave.anus == 0) { if(eventSlave.devotion > 50) { @@ -1567,7 +1577,9 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.aphrodisiacs > 1 || eventSlave.inflationType == "aphrodisiac") { if(eventSlave.speechRules == "restrictive" && eventSlave.releaseRules !== "permissive") { - State.variables.RESSevent.push("extreme aphrodisiacs"); + if(eventSlave.amp != 1) { + State.variables.RESSevent.push("extreme aphrodisiacs"); + } } } @@ -1579,10 +1591,12 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.releaseRules != "restrictive") { if(eventSlave.dick > 4) { - if(canAchieveErection(eventSlave)) { - if(eventSlave.belly < 10000) { - if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { - State.variables.RESSevent.push("slave dick huge"); + if(eventSlave.amp != 1){ + if(canAchieveErection(eventSlave)) { + if(eventSlave.belly < 10000) { + if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { + State.variables.RESSevent.push("slave dick huge"); + } } } } @@ -2716,6 +2730,16 @@ if(eventSlave.fetish != "mindbroken") { } } } + + if(eventSlave.vagina == 0) { + if(eventSlave.devotion > 50) { + if(eventSlave.trust > 20) { + if(eventSlave.speechRules != "restrictive") { + State.variables.RESSevent.push("devoted virgin"); + } + } + } + } if(eventSlave.anus == 0) { if(eventSlave.devotion > 50) { @@ -2743,7 +2767,9 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.aphrodisiacs > 1 || eventSlave.inflationType == "aphrodisiac") { if(eventSlave.speechRules == "restrictive" && eventSlave.releaseRules !== "permissive") { - State.variables.RESSevent.push("extreme aphrodisiacs"); + if(eventSlave.amp != 1) { + State.variables.RESSevent.push("extreme aphrodisiacs"); + } } } @@ -2755,10 +2781,12 @@ if(eventSlave.fetish != "mindbroken") { if(eventSlave.releaseRules != "restrictive") { if(eventSlave.dick > 4) { - if(canAchieveErection(eventSlave)) { - if(eventSlave.belly < 10000) { - if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { - State.variables.RESSevent.push("slave dick huge"); + if(eventSlave.amp != 1){ + if(canAchieveErection(eventSlave)) { + if(eventSlave.belly < 10000) { + if(eventSlave.dickAccessory != "chastity" && eventSlave.dickAccessory != "combined chastity") { + State.variables.RESSevent.push("slave dick huge"); + } } } } diff --git a/src/js/extendedFamilyModeJS.tw b/src/js/extendedFamilyModeJS.tw index 29aab10992026f75be937dc4448c286c795bb50c..2075e0b3b4491a44f8a3696b001d5ddf502cc5bf 100644 --- a/src/js/extendedFamilyModeJS.tw +++ b/src/js/extendedFamilyModeJS.tw @@ -2,6 +2,18 @@ /* see documentation for details /devNotes/Extended Family Mode Explained.txt */ +window.isMotherP = function isMotherP(daughter, mother) { + return daughter.mother === mother.ID +} + +window.isFatherP = function isFatherP(daughter, father) { + return daughter.father === father.ID +} + +window.isParentP = function isParentP(daughter, parent) { + return isMotherP(daughter,parent) || isFatherP(daughter,parent) +} + window.sameDad = function(slave1, slave2){ if ((slave1.father == slave2.father) && (slave1.father != 0 && slave1.father != -2)) { return true; @@ -20,7 +32,7 @@ window.sameMom = function(slave1, slave2){ // testtest catches the case if a mother is a father or a father a mother - thank you familyAnon, for this code window.sameTParent = function(slave1, slave2) { - if (slave1.mother == -1 && slave1.father == 1 && slave2.mother == -1 && slave2.father == -1) { + if (slave1.mother == -1 && slave1.father == -1 && slave2.mother == -1 && slave2.father == -1) { return 1; } else if (slave1.mother == slave2.father && slave1.father == slave2.mother && slave1.mother != 0 && slave1.mother != -2 && slave1.father != 0 && slave1.father != -2 && slave1.mother != slave1.father) { return 2; @@ -56,7 +68,9 @@ window.areTwins = function(slave1, slave2) { window.areSisters = function(slave1, slave2) { if (slave1.ID == slave2.ID) { return 0; //you are not your own sister - } else if ((slave1.father != 0 && slave1.father != -2) || (slave1.mother != 0 && slave1.mother != -2)) { + } else if (((slave1.father == 0) || (slave1.father == -2)) && ((slave1.mother == 0) || (slave1.mother == -2))) { + return 0; //not related + } else { if (sameDad(slave1, slave2) == false && sameMom(slave1, slave2) == true) { return 3; //half sisters } else if (sameDad(slave1, slave2) == true && sameMom(slave1, slave2) == false) { @@ -74,8 +88,6 @@ window.areSisters = function(slave1, slave2) { } else { return 0; //not related } - } else { - return 0; //not related } }; @@ -103,6 +115,10 @@ window.areSisters = function(c1, c2) { } */ +window.areRelated = function(slave1, slave2) { + return (slave1.father == slave2.ID || slave1.mother == slave2.ID || slave2.father == slave1.ID || slave2.mother == slave1.ID || areSisters(slave1, slave2) > 0); +} + window.totalRelatives = function(slave) { var relatives = 0; if (slave.mother > 0) { @@ -133,7 +149,7 @@ window.isSlaveAvailable = function(slave) { return false; } else if (slave.assignment == "be confined in the arcade") { return false; - } else if (slave.assignment == "work in the dairy" && SugarCube.State.variables.DairyRestraintsSetting >= 2) { + } else if (slave.assignment == "work in the dairy" && State.variables.DairyRestraintsSetting >= 2) { return false; } else { return true; @@ -155,7 +171,7 @@ if (typeof DairyRestraintsSetting == "undefined") { window.randomRelatedSlave = function(slave, filterFunction) { if(!slave || !SugarCube) { return undefined; } if(typeof filterFunction !== 'function') { filterFunction = function(s, index, array) { return true; }; } - return SugarCube.State.variables.slaves.filter(filterFunction).shuffle().find(function(s, index, array) {return areSisters(slave, s) || s.mother == slave.ID || s.father == slave.ID || slave.ID == s.mother || slave.ID == s.father; }) + return State.variables.slaves.filter(filterFunction).shuffle().find(function(s, index, array) {return areSisters(slave, s) || s.mother == slave.ID || s.father == slave.ID || slave.ID == s.mother || slave.ID == s.father; }) } */ @@ -164,7 +180,7 @@ window.randomRelatedSlave = function(slave, filterFunction) { if(typeof filterFunction !== 'function') { filterFunction = function(s, index, array) { return true; }; } - var arr = SugarCube.State.variables.slaves.filter(filterFunction) + var arr = State.variables.slaves.filter(filterFunction) arr.shuffle() return arr.find(function(s, index, array) { return areSisters(slave, s) @@ -227,3 +243,21 @@ window.totalPlayerRelatives = function(pc) { } return relatives }; + +window.relativeTerm = function(slave1, slave2) { + if(slave2.mother == slave1.ID || slave2.father == slave1.ID) { + return "daughter"; + } else if(slave1.mother == slave2.ID) { + return "mother"; + } else if(slave1.father == slave2.ID) { + return "father"; + } else if(areSisters(slave2, slave1) == 1) { + return "twin"; + } else if(areSisters(slave2, slave1) == 2) { + return "sister"; + } else if(areSisters(slave2, slave1) == 3) { + return "half-sister"; + } else { + return "some unknown blood connection"; + } +} diff --git a/src/js/familyTree.tw b/src/js/familyTree.tw index 6f783ff53daec4a862e3afc1b3cb3f1dcc653c11..45fd882a312fc408906a85bc4a8a73941b2a9726 100644 --- a/src/js/familyTree.tw +++ b/src/js/familyTree.tw @@ -200,7 +200,7 @@ window.renderFamilyTree = function(slaves, filterID) { } }; -window.buildFamilyTree = function(slaves = SugarCube.State.variables.slaves, filterID) { +window.buildFamilyTree = function(slaves = State.variables.slaves, filterID) { var family_graph = { nodes: [], links: [] @@ -218,20 +218,20 @@ window.buildFamilyTree = function(slaves = SugarCube.State.variables.slaves, fil var kids = {}; var fake_pc = { - slaveName: SugarCube.State.variables.PC.name + '(You)', - mother: SugarCube.State.variables.PC.mother, - father: SugarCube.State.variables.PC.father, - dick: SugarCube.State.variables.PC.dick, - vagina: SugarCube.State.variables.PC.vagina, - ID: SugarCube.State.variables.PC.ID + slaveName: State.variables.PC.name + '(You)', + mother: State.variables.PC.mother, + father: State.variables.PC.father, + dick: State.variables.PC.dick, + vagina: State.variables.PC.vagina, + ID: State.variables.PC.ID }; var charList = [fake_pc]; charList.push.apply(charList, slaves); - charList.push.apply(charList, SugarCube.State.variables.tanks); + charList.push.apply(charList, State.variables.tanks); var unborn = {}; - for(var i = 0; i < SugarCube.State.variables.tanks.length; i++) { - unborn[SugarCube.State.variables.tanks[i].ID] = true; + for(var i = 0; i < State.variables.tanks.length; i++) { + unborn[State.variables.tanks[i].ID] = true; } for(var i = 0; i < charList.length; i++) { diff --git a/src/js/fresult.tw b/src/js/fresult.tw new file mode 100644 index 0000000000000000000000000000000000000000..4eeb8a9e3c4cee5d054e4935798a991e99c380f6 --- /dev/null +++ b/src/js/fresult.tw @@ -0,0 +1,274 @@ +:: FResult [script] + +// this is a port of the FResult widget +// it has been broken up into several functions, because it grew too long +// it has been wrapped in a closure so as not to polute the global namespace +// and so that nested functions are only evaluated once + +window.FResult = (function() { + "use strict"; + // we can't initialise our global variables on load, because SugarCube.State isn't initialised + // instead, declare them and initialise on run time + let V, incest_bonus; + function FResult(slave) { + V = State.variables; + incest_bonus = V.arcologies[0].FSEgyptianRevivalist > 20 || V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1; + + calcUseWeights(slave); + if (!slave.fuckdoll) + calcNotFuckdoll(slave); + else + V.FResult += slave.fuckdoll/10; + + V.FResult += Math.max(0, slave.aphrodisiacs) * 2; + + if (slave.inflationType === "aphrodisiac") + V.FResult += slave.inflation*4; + + if (slave.lactation > 0) + V.FResult += 1; + + if (V.seeAge === 1) + calcAge(slave); + if (slave.fetish === "mindbroken") + V.FResult = Math.trunc(V.FResult*0.4); + else + V.FResult = Math.trunc(V.FResult*0.7); + + if (slave.pregWeek < 0) + V.FResult -= Math.trunc(V.FResult*slave.pregWeek/10); // reduced the most just after birth + + calcAmputation(slave); + + if (V.arcologies[0].FSHedonisticDecadence > 20) + calcHedonismWeight(slave); + if (V.FResult < 2) { + if (supremeRaceP(slave)) + V.FResult = 0; + else + V.FResult = 2; + } + } + + function calcUseWeights(slave) { + V.FResult = (3 - slave.anus)+(slave.muscles/30); + if (slave.muscles < -95) + V.FResult -= 5; + else if (slave.muscle < -30) + V.FResult -= 2; + + V.seed = V.oralUseWeight + V.vaginalUseWeight + V.analUseWeight; + if (V.seed <= 0) return; + + V.FResult += (6+slave.tonguePiercing) * (V.oralUseWeight/V.seed) * (slave.oralSkill/30); + if (slave.sexualFlaw === "cum addict") + V.FResult += (V.oralUseWeight/V.seed) * (slave.oralSkill/30); + if (canDoVaginal(slave)) { + V.FResult += 6 * (V.vaginalUseWeight/V.seed) * (slave.vaginalSkill/30); + V.FResult += (3 - slave.vagina); + V.FResult += slave.vaginaLube; + } + if (canDoAnal(slave)) { + V.FResult += 6 * (V.analUseWeight/V.seed) * (slave.analSkill/30); + if (slave.sexualFlaw === "anal addict") + V.FResult += (V.analUseWeight/V.seed) * (slave.analSkill/30); + if (slave.inflationType === "aphrodisiac") + V.FResult += (V.analUseWeight/V.seed) * (slave.inflation * 3); + } + } + + function calcWorksWithRelatives(slave) { + V.slaves.forEach(islave => { + if (isParentP(slave, islave) && sameAssignmentP(slave, islave)) { + V.FResult += 1; + if (incest_bonus) V.FResult += 1; + } + if (areSisters(slave, islave) > 0 && sameAssignmentP(slave, islave)) { + V.FResult += 1; + if (incest_bonus) V.FResult += 1; + } + }); + } + + function calcWorksWithRelativesVanilla(slave) { + const fre = V.slaves.findIndex(s => { + return haveRelationP(slave, s) && sameAssignmentP(slave, s); + }); + if (fre !== -1) { + V.FResult += 2; + if (incest_bonus) V.FResult += 2; + } + } + + function calcWorksWithRelationship(slave) { + const fre = V.slaves.findIndex(s => { + return haveRelationshipP(slave, s) && sameAssignmentP(slave, s); + }); + if (fre !== -1) V.FResult += 1; + } + + function calcWorksWithRival(slave) { + const en = V.slaves.findIndex(s => { + return isRivalP(slave, s) && sameAssignmentP(slave, s); + }); + if (en !== -1) V.FResult -= 1; + } + + function calcHInjectionsDiet(slave) { + if (slave.drugs === "male hormone injections" || slave.drugs === "female hormone injections") + V.FResult -= 10; + if (slave.diet === "XXY") + V.FResult += 2; + else if (slave.diet === "XY" || slave.diet === "XX") + V.FResult += 1; + else if (slave.diet === "cum production") + V.FResult += 1; + else if (slave.diet === "fertility") + V.FResult += 1; + } + function calcPreg(slave) { + if (V.arcologies[0].FSRepopulationFocus > 20) { + if (slave.preg > 10) V.FResult += 2; + else V.FResult -= 2; + } else if (V.arcologies[0].FSRestart > 20) { + if (slave.bellyPreg >= 500 && slave.breedingMark === 1) + V.FResult += 1; + else if (slave.preg > 10) + V.FResult -= 10; + else + V.FResult += 0; + } + } + + function calcRace(slave) { + if (V.arcologies[0].FSSupremacist !== "unset" && supremeRaceP(slave)) + V.FResult -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10); + if (V.arcologies[0].FSSubjugationist !== "unset" && inferiorRaceP(slave)) + V.FResult += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME); + } + + function calcSexAttributes(slave) { + if (slave.clitPiercing > 2) V.FResult += 1; + if (slave.fetishKnown === 1 && slave.fetishStrength > 60 && slave.fetish != "none") + V.FResult += slave.fetishStrength/5; + + if (slave.attrKnown === 1) { + V.FResult += Math.trunc(slave.attrXX/20); + V.FResult += Math.trunc(slave.attrXY/20); + if (slave.energy > 95) V.FResult += 3; + else if (slave.energy > 80) V.FResult += 2; + else if (slave.energy > 60) V.FResult += 1; + else if (slave.energy <= 20) V.FResult -= 2; + else if (slave.energy <= 40) V.FResult -= 1; + } + if (slave.sexualFlaw !== "none") V.FResult -= 2; + if (slave.sexualQuirk !== "none") V.FResult += 2; + if (slave.behavioralFlaw !== "none") V.FResult -= 2; + if (slave.behavioralQuirk !== "none") V.FResult += 2; + } + + function calcCareer(slave) { + if (setup.whoreCareers.includes(slave.career)) + V.FResult += 1; + else if (slave.oralCount + slave.analCount + slave.vaginalCount + slave.mammaryCount + slave.penetrativeCount > 1000) + V.FResult += 1; + } + + function calcSight(slave) { + if (!canSee(slave)) V.FResult -= 3; + else if (slave.eyes <= -1) { + if (slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts") + V.FResult -= 1; + } else if (slave.eyewear === "blurring glasses") + V.FResult -= 1; + else if (slave.eyewear === "blurring contacts") + V.FResult -= 1; + } + + function calcEgyptianBonus(slave) { + if (V.racialVarieties === undefined) V.racialVarieties = []; + V.seed = 0; + V.racialVarieties.forEach(race => { + if (slave.race === race) V.seed = 1; + }); + if (V.seed === 0) + V.racialVarieties.push(slave.race); + } + + function calcYouthBonus(slave) { + if (slave.visualAge < 30) { + if (slave.actualAge > 30) + V.FResult += 5; // experienced for her apparent age + if (slave.physicalAge > 30) + V.FResult -= slave.physicalAge/2; // too old :( + } + } + + function calcMatureBonus(slave) { + if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge < slave.visualAge) + V.FResult += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); // looks and acts mature, but has a body that just won't quit + } + + function calcNotFuckdoll(slave) { + if (V.familyTesting === 1 && totalRelatives(slave) > 0) + calcWorksWithRelatives(slave); + else if(!V.familyTesting && slave.relation !==0) + calcWorksWithRelativesVanilla(slave); + if (slave.relationship > 0) calcWorksWithRelationship(slave); + if (slave.rivalry !== 0) calcWorksWithRival(slave); + calcHInjectionsDiet(slave); + calcPreg(slave); + calcRace(slave); + calcSexAttributes(slave); + calcCareer(slave); + calcSight(slave); + if (V.arcologies[0].FSEgyptianRevivalist !== "unset") + calcEgyptianBonus(slave); + if (V.arcologies[0].FSYouthPreferentialist !== "unset") + calcYouthBonus(slave); + else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") + calcMatureBonus(slave); + } + + function calcAge(slave) { + if ((V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset") && slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave)) { + V.FResult += 1; + if (slave.birthWeek === 0) V.FResult += V.FResult; + else if (slave.birthWeek < 4) V.FResult += 0.2*V.FResult; + } else if (slave.physicalAge === V.minimumSlaveAge) { + V.FResult += 1; + if (slave.birthWeek === 0 ) V.FResult += 0.5*V.FResult; + else if (slave.birthWeek < 4) V.FResult += 0.1*V.FResult; + } else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset")) { + V.FResult += 1; + if (slave.birthWeek === 0) + V.FResult += 0.5*V.FResult; + else if (slave.birthWeek < 4) + V.FResult += 0.1*V.FResult; + } + } + + function calcAmputation(slave) { + switch(slave.amp) { + case 0: + break; + case 1: + V.FResult -= 2; + break; + case -2: + break; + case -5: + break; + default: + V.FResult -= 1; + } + } + + function calcHedonismWeight(slave) { + if (slave.weight < 10) + V.FResult -= 2; + else if (slave.weight > 190) + V.FResult -= 5; // too fat + } + return FResult; +})(); diff --git a/src/js/pregJS.tw b/src/js/pregJS.tw index bc319c2cdce7f4e325fe5bfd39b30285ce5929a6..c43af5c64ab68481d66a56a7610a0f467a0d7e7c 100644 --- a/src/js/pregJS.tw +++ b/src/js/pregJS.tw @@ -59,4 +59,81 @@ window.bellyAdjective = function(slave) { } else { return ''; } +} + +/* calculates and returns expected ovum count during conception*/ +window.setPregType = function(actor) { + /* IMHO rework is posssible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */ + + var ovum = 1; + var fertilityStack = 0; // adds an increasing bonus roll for stacked fertility drugs + + if(actor.broodmother < 1) { // Broodmothers should be not processed here. Necessary now. + if(typeof actor.readyOva == "number" && actor.readyOva != 0) { + ovum = actor.readyOva; //just single override; for delayed impregnation cases + } else if(actor.ID == -1) { + if(actor.birthMaster > 0) { // Predisposed to twins + if(actor.fertDrugs == 1) { + ovum += jsEither([1, 1, 2, 2, 2, 2, 3, 3]); + } else { + ovum += jsEither([0, 0, 0, 1, 1, 1, 1, 1, 1, 2]); + } + if(actor.forcedFertDrugs > 0) { + ovum += jsEither([1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4]); + } + } else { + if(actor.fertDrugs == 1) { + ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3]); + } else { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); + } + if(actor.forcedFertDrugs > 0) { + ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]); + } + } + } else if(actor.pregType == 0) { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); //base chance for twins + if(actor.hormones == 2) { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2]); + fertilityStack++; + } + if(actor.hormoneBalance >= 400) { + ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3]); + fertilityStack++; + } + if(actor.diet == "fertility") { + ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); + fertilityStack++; + } + if(State.variables.masterSuitePregnancyFertilitySupplements == 1 && ((actor.assignment == "serve in the master suite" || actor.assignment == "be your Concubine"))) { + ovum += jsEither([0, 0, 0, 1, 1, 2, 2, 2, 3, 3]); + fertilityStack++; + fertilityStack++; + } + if(actor.drugs == "super fertility drugs") { + ovum += jsEither([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5]); + fertilityStack++; + fertilityStack++; + fertilityStack++; + fertilityStack++; + fertilityStack++; + } else if(actor.drugs == "fertility drugs") { + ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3]); + fertilityStack++; + } + if(State.variables.seeHyperPreg == 1) { + if(actor.drugs == "super fertility drugs") { + ovum += jsRandom(0, fertilityStack*2); + } else { + ovum += jsRandom(0, fertilityStack); + } + } else { + ovum += jsRandom(0, fertilityStack); + if(ovum > 12) { + ovum = jsRandom(6, 12); + } + } + } + } + return ovum; } \ No newline at end of file diff --git a/src/js/raJS.tw b/src/js/raJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..55de79d75324387528d864bbce0911b6a16ee3a5 --- /dev/null +++ b/src/js/raJS.tw @@ -0,0 +1,165 @@ +:: RA JS [script] + +window.ruleApplied = function(slave, ID) { + if (!slave || !slave.currentRules) + return null; + return slave.currentRules.includes(ID); +}; + +window.ruleSlaveSelected = function(slave, rule) { + if (!slave || !rule || !rule.selectedSlaves) + return false; + return rule.selectedSlaves.includes(slave.ID); +}; + +window.ruleSlaveExcluded = function(slave, rule) { + if (!slave || !rule || !rule.excludedSlaves) + return false; + return rule.excludedSlaves.includes(slave.ID); +}; + +window.ruleAssignmentSelected = function(slave, rule) { + if (!slave || !rule || (!rule.assignment && !rule.facility)) + return false; + var assignment = rule.assignment.concat(expandFacilityAssignments(rule.facility)); + return assignment.includes(slave.assignment); +} + +window.ruleAssignmentExcluded = function(slave, rule) { + if (!slave || !rule || (!rule.excludeAssignment && !rule.excludeFacility)) + return false; + var excludeAssignment = rule.excludeAssignment.concat(expandFacilityAssignments(rule.excludeFacility)); + return excludeAssignment.includes(slave.assignment); +} + +window.hasSurgeryRule = function(slave, rules) { + if (!slave || !rules || !slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; d--) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d].autoSurgery > 0) { + return true; + } + } + } + return false; +}; + +window.hasRuleFor = function(slave, rules, what) { + if (!slave || !rules || !slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; d--) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d][what] !== "no default setting") { + return true; + } + } + } + return false; +}; + +window.hasHColorRule = function(slave, rules) { + return hasRuleFor(slave, rules, "hColor"); +} + +window.hasHStyleRule = function(slave, rules) { + return hasRuleFor(slave, rules, "hStyle"); +}; + +window.hasEyeColorRule = function(slave, rules) { + return hasRuleFor(slave, rules, "eyeColor"); +}; + +window.lastPregRule = function(slave, rules) { + if (!slave || !rules) + return null; + if (!slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; d--) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d].preg == -1) { + return true; + } + } + } + + return null; +}; + +window.autoSurgerySelector = function(slave, ruleset) +{ + + var appRules = ruleset.filter(function(rule){ + return (rule.autoSurgery == 1) && this.currentRules.contains(rule.ID); + }, slave); + + var surgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds", bodyhair: "nds", hair: "nds", bellyImplant: "no default setting"}; + var i, key, ruleSurgery; + + for (i in appRules) + { + ruleSurgery = appRules[i].surgery; + for (key in ruleSurgery) + { + if (ruleSurgery[key] != "no default setting" || ruleSurgery[key] != "nds") + { + surgery[key] = ruleSurgery[key]; + } + } + } + + return surgery; +} + +window.mergeRules = function(rules) { + var combinedRule = {}; + + for (var i = 0; i < rules.length; i++) { + for (var prop in rules[i]) { + // A rule overrides any preceding ones if, + // * there are no preceding ones, + // * or it sets autoBrand, + // * or it does not set autoBrand and is not "no default setting" + var applies = ( + combinedRule[prop] === undefined + || (prop === "autoBrand" && rules[i][prop]) + || (prop !== "autoBrand" && rules[i][prop] !== "no default setting") + ); + + if (applies) + { + + //Objects in JS in operations "=" pass by reference, so we need a completely new object to avoid messing up previous rules. + if ("object" == typeof rules[i][prop] && "object" != typeof combinedRule[prop]) + combinedRule[prop] = new Object(); + + //If we already have object - now we will process its properties, but object itself should be skipped. + if ("object" != typeof combinedRule[prop]) + combinedRule[prop] = rules[i][prop]; + + /*Some properties of rules now have second level properties. We need to check it, and change ones in combinedRule. (Good example - growth drugs. Breasts, butt, etc...) */ + if ( "object" == typeof rules[i][prop]) + { + for (var subprop in rules[i][prop]) + { + var subapplies = ( + combinedRule[prop][subprop] === undefined + || (rules[i][prop][subprop] !== "no default setting") + ); + + if (subapplies) + combinedRule[prop][subprop] = rules[i][prop][subprop]; + } + + } + } + + } + + } + + return combinedRule; +} \ No newline at end of file diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index 2ece4f56c10e9f6a26b8a31e4c015da55b2d4356..724825972bd832fe9ca3ccfe9eb75abf50a4d0a3 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -191,7 +191,7 @@ if (typeof SlaveStatsChecker == "undefined") { var SlaveStatsChecker = { checkForLisp: function (slave) { /* Begin mod section: toggle whether slaves lisp. */ - if (SugarCube.State && SugarCube.State.variables.disableLisping == 1) { + if (State && State.variables.disableLisping == 1) { return false; } /* End mod section: toggle whether slaves lisp. */ @@ -293,7 +293,11 @@ window.canImpreg = function(slave1, slave2) { window.isFertile = function(slave) { if (!slave) { return null; - } else if (slave.preg > 0) { /* currently pregnant */ + } + + WombInit(slave); + + if (slave.womb.length > 0 || slave.broodmother > 0) { /* currently pregnant or broodmother */ return false; } else if (slave.preg < -1) { /* sterile */ return false; @@ -704,11 +708,6 @@ window.isItemAccessible = function(string) { } }; -window.ruleApplied = function(slave, ID) { - if (!slave || !slave.currentRules) - return null; - return slave.currentRules.includes(ID); -}; window.expandFacilityAssignments = function(facilityAssignments) { var assignmentPairs = { @@ -734,139 +733,6 @@ window.expandFacilityAssignments = function(facilityAssignments) { return fullList.flatten(); }; -window.ruleSlaveSelected = function(slave, rule) { - if (!slave || !rule || !rule.selectedSlaves) - return false; - return rule.selectedSlaves.includes(slave.ID); -}; - -window.ruleSlaveExcluded = function(slave, rule) { - if (!slave || !rule || !rule.excludedSlaves) - return false; - return rule.excludedSlaves.includes(slave.ID); -}; - -window.ruleAssignmentSelected = function(slave, rule) { - if (!slave || !rule || (!rule.assignment && !rule.facility)) - return false; - var assignment = rule.assignment.concat(expandFacilityAssignments(rule.facility)); - return assignment.includes(slave.assignment); -} - -window.ruleAssignmentExcluded = function(slave, rule) { - if (!slave || !rule || (!rule.excludeAssignment && !rule.excludeFacility)) - return false; - var excludeAssignment = rule.excludeAssignment.concat(expandFacilityAssignments(rule.excludeFacility)); - return excludeAssignment.includes(slave.assignment); -} - -window.hasSurgeryRule = function(slave, rules) { - if (!slave || !rules || !slave.currentRules) - return false; - - for (var d = rules.length-1; d >= 0; d--) { - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d].autoSurgery > 0) { - return true; - } - } - } - return false; -}; - -window.hasRuleFor = function(slave, rules, what) { - if (!slave || !rules || !slave.currentRules) - return false; - - for (var d = rules.length-1; d >= 0; d--) { - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d][what] !== "no default setting") { - return true; - } - } - } - return false; -}; - -window.hasHColorRule = function(slave, rules) { - return hasRuleFor(slave, rules, "hColor"); -} - -window.hasHStyleRule = function(slave, rules) { - return hasRuleFor(slave, rules, "hStyle"); -}; - -window.hasEyeColorRule = function(slave, rules) { - return hasRuleFor(slave, rules, "eyeColor"); -}; - -window.lastPregRule = function(slave, rules) { - if (!slave || !rules) - return null; - if (!slave.currentRules) - return false; - - for (var d = rules.length-1; d >= 0; d--) { - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d].preg == -1) { - return true; - } - } - } - - return null; -}; - -window.lastSurgeryRuleFor = function(slave, rules, what) { - if (!slave || !rules || !slave.currentRules) - return null; - - for (var d = rules.length-1; d >= 0; d--) { - if (!rules[d].surgery) - return null; - - if (ruleApplied(slave, rules[d].ID)) { - if (rules[d].surgery[what] != "no default setting") { - return rules[d]; - } - } - } - - return null; -}; - -window.lastEyeSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "eyes"); -} - -window.lastLactationSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "lactation"); -} - -window.lastProstateSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "prostate"); -} - -window.lastLipSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "lips"); -}; - -window.lastBoobSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "boobs"); -}; - -window.lastButtSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "butt"); -}; - -window.lastHairSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "hair"); -} - -window.lastBodyHairSurgeryRule = function(slave, rules) { - return lastSurgeryRuleFor(slave, rules, "bodyhair"); -} - window.milkAmount = function(slave) { var milk; var calcs; @@ -1038,56 +904,6 @@ window.nameReplace = function(name) return name; } -window.mergeRules = function(rules) { - var combinedRule = {}; - - for (var i = 0; i < rules.length; i++) { - for (var prop in rules[i]) { - // A rule overrides any preceding ones if, - // * there are no preceding ones, - // * or it sets autoBrand, - // * or it does not set autoBrand and is not "no default setting" - var applies = ( - combinedRule[prop] === undefined - || (prop === "autoBrand" && rules[i][prop]) - || (prop !== "autoBrand" && rules[i][prop] !== "no default setting") - ); - - if (applies) - { - - //Objects in JS in operations "=" pass by reference, so we need a completely new object to avoid messing up previous rules. - if ("object" == typeof rules[i][prop] && "object" != typeof combinedRule[prop]) - combinedRule[prop] = new Object(); - - //If we already have object - now we will process its properties, but object itself should be skipped. - if ("object" != typeof combinedRule[prop]) - combinedRule[prop] = rules[i][prop]; - - /*Some properties of rules now have second level properties. We need to check it, and change ones in combinedRule. (Good example - growth drugs. Breasts, butt, etc...) */ - if ( "object" == typeof rules[i][prop]) - { - for (var subprop in rules[i][prop]) - { - var subapplies = ( - combinedRule[prop][subprop] === undefined - || (rules[i][prop][subprop] !== "no default setting") - ); - - if (subapplies) - combinedRule[prop][subprop] = rules[i][prop][subprop]; - } - - } - } - - } - - } - - return combinedRule; -} - window.isVegetable = function(slave) { slave = slave || State.variables.activeSlave; if(!slave) { return false; } @@ -1111,7 +927,7 @@ window.bodyguardSuccessorEligible = function(slave) { }; window.ngUpdateGenePool = function(genePool) { - var transferredSlaveIds = (SugarCube.State.variables.slaves || []) + var transferredSlaveIds = (State.variables.slaves || []) .filter(function(s) { return s.ID >= 1200000; }) .map(function(s) { return s.ID - 1200000; }); return (genePool || []) diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw index e3a908dc92173cad6816bea9a3dbe9c4d5945b62..33448f8fa5097948a1415034b80efa76949873f0 100644 --- a/src/js/utilJS.tw +++ b/src/js/utilJS.tw @@ -414,11 +414,23 @@ window.jsRandomMany = function (arr, count) { return result; } +//This function wants an array - which explains why it works like array.random(). Give it one or you'll face a NaN window.jsEither = function(choices) { var index = Math.floor(Math.random() * choices.length); return choices[index]; } +//This function is alternative to clone - usage needed if nested objects present. Slower but result is separate object tree, not with reference to source object. +window.deepCopy = function (o) { + var output, v, key; + output = Array.isArray(o) ? [] : {}; + for (key in o) { + v = o[key]; + output[key] = (typeof v === "object") ? deepCopy(v) : v; + } + return output; +} + /* Make everything waiting for this execute. Usage: @@ -432,3 +444,46 @@ if(typeof Categorizer === 'function') { } */ jQuery(document).trigger('categorizer.ready'); + +window.hashChoice = function hashChoice(obj) { + let randint = Math.floor(Math.random()*hashSum(obj)); + let ret; + Object.keys(obj).some(key => { + if (randint < obj[key]) { + ret = key; + return true; + } else { + randint -= obj[key]; + return false; + } + }); + return ret; +}; + +window.hashSum = function hashSum(obj) { + let sum = 0; + Object.keys(obj).forEach(key => { sum += obj[key]; }); + return sum; +}; + +window.arr2obj = function arr2obj(arr) { + const obj = {}; + arr.forEach(item => { obj[item] = 1; }); + return obj; +}; + +window.hashPush = function hashPush(obj, ...rest) { + rest.forEach(item => { + if (obj[item] === undefined) obj[item] = 1; + else obj[item] += 1; + }); +}; + +window.weightedArray2HashMap = function weightedArray2HashMap(arr) { + const obj = {}; + arr.forEach(item => { + if (obj[item] === undefined) obj[item] = 1; + else obj[item] += 1; + }) + return obj; +}; diff --git a/src/js/vectorRevampedArtControlJS.tw b/src/js/vectorRevampedArtControlJS.tw index efa5032d977d21f1453fa4caacb711ce367aa6b4..2017d7345d2c050ad974d17a1c642b5e921abcac 100644 --- a/src/js/vectorRevampedArtControlJS.tw +++ b/src/js/vectorRevampedArtControlJS.tw @@ -126,42 +126,10 @@ class ArtStyleControl { } } - getLipsColorBySkinColorName(colorName) { - var skinPalette = [ - ["light", "#ce6876"], - ["white", "#ce6876"], - ["fair", "#ce6876"], - ["lightened", "#ce6876"], - ["extremely pale", "#ffb9ca"], - ["pale", "#ffb9ca"], - ["tanned", "#9e4c44"], - ["natural", "#9e4c44"], - ["olive", "#c1a785"], - ["light brown", "#5d2f1b"], - ["dark", "#714536"], - ["brown", "#714536"], - ["black", "#403030"], - ["camouflage patterned", "#708050"], - ["red dyed", "#b04040"], - ["dyed red", "#b04040"], - ["green dyed", "#A0C070"], - ["dyed green", "#A0C070"], - ["blue dyed", "#5080b0"], - ["dyed blue", "#5080b0"], - ["tiger striped", "#e0d050"] - ]; - - var skinPaletteMap = new Map(skinPalette); - colorName = colorName.toLowerCase(); - var colorValue = skinPaletteMap.get(colorName); - if (!colorValue) { - return parseColorFromName(colorName); - } - - return colorValue; - } - parseColorFromName(colorName) { + if (colorName == null) + return "#000000"; + var colorPalette = [ ["auburn", "#7e543e"], ["black", "#3F4040"], @@ -186,7 +154,18 @@ class ArtStyleControl { ["blazing red", "#E00E2B"], ["neon green", "#25d12b"], ["neon blue", "#2284C3"], - ["neon pink", "#cc26aa"] + ["neon pink", "#cc26aa"], + ["demonic", "#aa0000"], + ["devilish", "#ffd42a"], + ["hypnotic", "#ff5599"], + ["catlike", "#555555"], + ["serpent-like", "#555555"], + ["heart-shaped", "#555555"], + ["wide-eyed", "#555555"], + ["almond-shaped", "#555555"], + ["bright", "#555555"], + ["teary", "#555555"], + ["vacant", "#555555"], ]; var colorPaletteMap = new Map(colorPalette); @@ -203,8 +182,49 @@ class ArtStyleControl { return colorValue; } + + getLipsColorBySkinColorName(colorName) { + if (colorName == null) + return "#000000"; + + var lipsPalette = [ + ["light", "#ce6876"], + ["white", "#ce6876"], + ["fair", "#ce6876"], + ["lightened", "#ce6876"], + ["extremely pale", "#ffb9ca"], + ["pale", "#ffb9ca"], + ["tanned", "#9e4c44"], + ["natural", "#9e4c44"], + ["olive", "#c1a785"], + ["light brown", "#5d2f1b"], + ["dark", "#714536"], + ["brown", "#714536"], + ["black", "#403030"], + ["camouflage patterned", "#708050"], + ["red dyed", "#b04040"], + ["dyed red", "#b04040"], + ["green dyed", "#A0C070"], + ["dyed green", "#A0C070"], + ["blue dyed", "#5080b0"], + ["dyed blue", "#5080b0"], + ["tiger striped", "#e0d050"] + ]; + + var lipsPaletteMap = new Map(lipsPalette); + colorName = colorName.toLowerCase(); + var colorValue = lipsPaletteMap.get(colorName); + if (!colorValue) { + return this.parseColorFromName(colorName); + } + + return colorValue; + } parseSkinColorFromName(colorName) { + if (colorName == null) + return "#000000"; + var skinPalette = [ ["light", "#feebe5"], ["white", "#feebe5"], @@ -233,7 +253,7 @@ class ArtStyleControl { colorName = colorName.toLowerCase(); var colorValue = skinPaletteMap.get(colorName); if (!colorValue) { - return parseColorFromName(colorName); + return this.parseColorFromName(colorName); } return colorValue; @@ -357,6 +377,8 @@ class ArtStyleControl { this.shadowBoobInnerUpperShadow = new ArtStyleEntry("shadow.boob_inner_upper_shadow"); this.shadowBoobInnerUpperShadow["fill-opacity"] = 1; + this.gag = new ArtStyleEntry("gag"); + this.gag.fill = "#bf2126"; } get StylesCss() { @@ -405,7 +427,7 @@ class ArtStyleControl { this.styles.push(this.feetSkin); this.styles.push(this.shadowBoobInnerLowerShadow); this.styles.push(this.shadowBoobInnerUpperShadow); - + this.styles.push(this.gag); var stylesValues = []; var artDisplayClass = this.artDisplayClass; @@ -642,6 +664,9 @@ class RevampedArtControl { this.styleControl = new ArtStyleControl(artDisplayClass, artSlave); this.clothingControl = new ClothingControl(); this.artTransform = ""; + this.boobRightArtTransform = ""; + this.boobLeftArtTransform = ""; + this.boobOutfitArtTransform = ""; this.showArmHair = true; this.showHair = true; @@ -656,6 +681,9 @@ class RevampedArtControl { this.showEyes = true; this.showMouth = true; + this.leftArmType = this.getLeftArmPosition; + this.rightArmType = this.getRightArmPosition; + this.hairLength = this.getHairLength; this.torsoSize = this.getTorsoSize; this.bellyLevel = this.getBellyLevel; @@ -780,6 +808,50 @@ class RevampedArtControl { return torsoSize; } + get getLeftArmPosition() { + var leftArmType = "Low"; + + if (this.artSlave.devotion > 50) { + leftArmType = "High"; + } + else if (this.artSlave.trust >= -20) { + if (this.artSlave.devotion <= 20) { + leftArmType = "Low"; + } + else + { + leftArmType = "Mid"; + } + } + else { + leftArmType = "Mid"; + } + + return leftArmType; + } + + get getRightArmPosition() { + var rightArmType = "Low"; + + if (this.artSlave.devotion > 50) { + rightArmType = "High"; + } + else if (this.artSlave.trust >= -20) { + if (this.artSlave.devotion <= 20) { + rightArmType = "Low"; + } + else + { + rightArmType = "High"; + } + } + else { + rightArmType = "Mid"; + } + + return rightArmType; + } + get getBellyLevel() { var bellyLevel = 0; if (this.artSlave.belly >= 120000) @@ -867,40 +939,15 @@ class RevampedArtControl { var leftArmType = ""; var rightArmType = ""; - if (this.artSlave.amp) { + if (this.artSlave.amp == 1) { result.push("Art_Vector_Revamp_Arm_Stump"); } else { - var leftArmType = ""; - var rightArmType = ""; - if (this.artSlave.devotion > 50) { - leftArmType = "High" - rightArmType = "High" - } - else if (this.artSlave.trust >= -20) { - if (this.artSlave.devotion < -20) { - leftArmType = "Low" - rightArmType = "Low" - } - else if (this.artSlave.devotion <= 20) { - leftArmType = "Low" - rightArmType = "Low" - } - else - { - leftArmType = "Mid" - rightArmType = "High" - } - } - else { - leftArmType = "Mid" - rightArmType = "Mid" - } - result.push("Art_Vector_Revamp_Arm_Right_"+rightArmType); - result.push("Art_Vector_Revamp_Arm_Left_"+leftArmType); + result.push("Art_Vector_Revamp_Arm_Right_"+this.rightArmType); + result.push("Art_Vector_Revamp_Arm_Left_"+this.leftArmType); } - if (this.showArmHair && (this.artSlave.amp || leftArmType == "High")) + if (this.showArmHair && (this.artSlave.amp == 1 || (this.leftArmType == "High" && this.artSlave.amp != 1))) { switch(this.artSlave.underArmHStyle) { @@ -940,7 +987,7 @@ class RevampedArtControl { get legLayer() { var result = []; - if (this.artSlave.amp) { + if (this.artSlave.amp == 1) { result.push("Art_Vector_Revamp_Stump"); } else { @@ -971,7 +1018,7 @@ class RevampedArtControl { get feetLayer() { var result = []; - if (this.artSlave.amp) { + if (this.artSlave.amp == 1) { return result; } @@ -1007,7 +1054,7 @@ class RevampedArtControl { result.push("Art_Vector_Revamp_Torso_Highlights1"); } - if (this.showArmHair) + if (this.showArmHair && this.leftArmType != "High" && this.artSlave.amp != 1) { switch(this.artSlave.underArmHStyle) { @@ -1243,37 +1290,113 @@ class RevampedArtControl { get boobLayer() { var result = []; - - var artScaleFactor = 0.255622*Math.log(0.0626767*this.artSlave.boobs); - - var artTranslationX = -283.841*artScaleFactor+280.349; - var artTranslationY = -198.438*artScaleFactor+208.274; + + var artScaleFactor = 0.804354*Math.log(0.00577801*this.artSlave.boobs); + + var boobRightArtTranslationX = 270*((-1*artScaleFactor) + 1); + var boobLeftArtTranslationX = 320*((-1*artScaleFactor) + 1); + var artTranslationX = -283.841*artScaleFactor+285.349; + var artTranslationY = 198*((-1*artScaleFactor) + 1); var artBoobTransform = "matrix(" + artScaleFactor +",0,0," + artScaleFactor + "," + artTranslationX + "," + artTranslationY + ")"; - + this.artTransform = artBoobTransform; if (this.artSlave.boobs < 300) { - artBoobTransform = "matrix(1,0,0,1,0,0)"; - this.artTransform = artBoobTransform; - if (this.showNipples) - result.push("Art_Vector_Revamp_Boob_Areola_NoBoob"); + { + var areolaeShape = "Normal"; + + switch(this.artSlave.areolae) + { + case 0: + areolaeShape = "Normal"; + break; + case 1: + areolaeShape = "Large"; + break; + case 2: + areolaeShape = "Wide"; + break; + case 3: + areolaeShape = "Huge"; + break; + case 4: + areolaeShape = "Heart"; + break; + case 5: + areolaeShape = "Star"; + break; + } + + result.push("Art_Vector_Revamp_Boob_None_Areola_" + areolaeShape); + } + + } else { if (!this.showBoobs) return result; + + var size = "Small"; + + if (this.artSlave.boobs < 600) + { + artScaleFactor = 0.360674*Math.log(0.0266667*this.artSlave.boobs); + + boobRightArtTranslationX = 240*((-1*artScaleFactor) + 1); + boobLeftArtTranslationX = 300*((-1*artScaleFactor) + 1); + artTranslationY = 250*((-1*artScaleFactor) + 1); + size = "Small"; + } + else if (this.artSlave.boobs < 15000) + { + size = "Medium"; + } + else { + size = "Huge"; + boobRightArtTranslationX = 252*((-1*artScaleFactor) + 1); + boobLeftArtTranslationX = 315*((-1*artScaleFactor) + 1); + } - result.push("Art_Vector_Revamp_Boob"); + this.boobRightArtTransform = "matrix(" + artScaleFactor +",0,0," + artScaleFactor + "," + boobRightArtTranslationX + "," + artTranslationY + ")"; + this.boobLeftArtTransform = "matrix(" + artScaleFactor +",0,0," + artScaleFactor + "," + boobLeftArtTranslationX + "," + artTranslationY + ")"; + result.push("Art_Vector_Revamp_Boob_" + size); if (this.showNipples) - result.push("Art_Vector_Revamp_Boob_Areola"); - + { + var areolaeShape = "Normal"; + + switch(this.artSlave.areolae) + { + case 0: + areolaeShape = "Normal"; + break; + case 1: + areolaeShape = "Large"; + break; + case 2: + areolaeShape = "Wide"; + break; + case 3: + areolaeShape = "Huge"; + break; + case 4: + areolaeShape = "Heart"; + break; + case 5: + areolaeShape = "Star"; + break; + } + + result.push("Art_Vector_Revamp_Boob_" + size + "_Areolae_" + areolaeShape); + result.push("Art_Vector_Revamp_Boob_" + size + "_Nipples"); + } if (this.showBoobsHighlight) { - result.push("Art_Vector_Revamp_Boob_Highlights2"); - result.push("Art_Vector_Revamp_Boob_Highlights1"); + result.push("Art_Vector_Revamp_Boob_" + size + "_Highlights2"); + result.push("Art_Vector_Revamp_Boob_" + size + "_Highlights1"); } } @@ -1286,34 +1409,48 @@ class RevampedArtControl { if (this.showNipplesPiercings) { + var size = "Small"; + + if (this.artSlave.boobs < 600) + { + size = "Small"; + } + else if (this.artSlave.boobs < 15000) + { + size = "Medium"; + } + else { + size = "Huge"; + } + if (this.artSlave.nipplesPiercing == 1) { if (this.artSlave.boobs < 300) - result.push("Art_Vector_Revamp_Boob_Piercing_NoBoob"); + result.push("Art_Vector_Revamp_Boob_None_Piercing"); else - result.push("Art_Vector_Revamp_Boob_Piercing"); + result.push("Art_Vector_Revamp_Boob_" + size + "_Piercing"); } else if (this.artSlave.nipplesPiercing == 2) { if (this.artSlave.boobs < 300) - result.push("Art_Vector_Revamp_Boob_Piercing_NoBoob_Heavy"); + result.push("Art_Vector_Revamp_Boob_None_Piercing_Heavy"); else - result.push("Art_Vector_Revamp_Boob_Piercing_Heavy"); + result.push("Art_Vector_Revamp_Boob_" + size + "_Piercing_Heavy"); } if (this.artSlave.areolaePiercing == 1) { if (this.artSlave.boobs < 300) - result.push("Art_Vector_Revamp_Boob_Areola_Piercing_NoBoob"); + result.push("Art_Vector_Revamp_Boob_None_Areola_Piercing"); else - result.push("Art_Vector_Revamp_Boob_Areola_Piercing"); + result.push("Art_Vector_Revamp_Boob_" + size + "_Areola_Piercing"); } else if (this.artSlave.areolaePiercing == 2) { if (this.artSlave.boobs < 300) - result.push("Art_Vector_Revamp_Boob_Areola_Piercing_NoBoob_Heavy"); + result.push("Art_Vector_Revamp_Boob_None_Areola_Piercing_Heavy"); else - result.push("Art_Vector_Revamp_Boob_Areola_Piercing_Heavy"); + result.push("Art_Vector_Revamp_Boob_" + size + "_Areola_Piercing_Heavy"); } } @@ -1321,11 +1458,43 @@ class RevampedArtControl { { case "uncomfortable straps": if (this.artSlave.boobs >= 300) - result.push("Art_Vector_Revamp_Boob_Outfit_Straps"); + //result.push("Art_Vector_Revamp_Boob_Outfit_Straps"); break; case "a nice maid outfit": if (this.artSlave.boobs >= 300) - result.push("Art_Vector_Revamp_Boob_Outfit_Maid"); + { + if (this.artSlave.boobs < 600) + { + var artScaleFactor = 0.288539*Math.log(0.106667*this.artSlave.boobs); + var artTranslationX = 270*((-1*artScaleFactor) + 1); + var artTranslationY = 198*((-1*artScaleFactor) + 1);//-198.438*artScaleFactor+203.274; + var artBoobTransform = "matrix(" + artScaleFactor +",0,0," + artScaleFactor + "," + artTranslationX + "," + artTranslationY + ")"; + + this.boobOutfitArtTransform = artBoobTransform; + + result.push("Art_Vector_Revamp_Boob_Small_Outfit_Maid"); + } + else if (this.artSlave.boobs < 15000) + { + var artScaleFactor = 0.155334*Math.log(1.04167*this.artSlave.boobs); + var artTranslationX = 270*((-1.25*artScaleFactor) + 1.25); + var artTranslationY = 198*((-0.8*artScaleFactor) + 0.8);//-198.438*artScaleFactor+203.274; + var artBoobTransform = "matrix(" + artScaleFactor +",0,0," + artScaleFactor + "," + artTranslationX + "," + artTranslationY + ")"; + + this.boobOutfitArtTransform = artBoobTransform; + result.push("Art_Vector_Revamp_Boob_Medium_Outfit_Maid"); + } + else { + var artScaleFactor = 1.56609*Math.log(0.00017373*this.artSlave.boobs); + var artTranslationX = 340*((-1*artScaleFactor) + 1); + var artTranslationY = 153*((-1*artScaleFactor) + 1);//-198.438*artScaleFactor+203.274; + var artBoobTransform = "matrix(" + artScaleFactor +",0,0," + artScaleFactor + "," + artTranslationX + "," + artTranslationY + ")"; + + this.boobOutfitArtTransform = artBoobTransform; + result.push("Art_Vector_Revamp_Boob_Huge_Outfit_Maid"); + } + + } break; default: @@ -1618,6 +1787,7 @@ class RevampedArtControl { Array.prototype.push.apply(layers, this.legLayer); Array.prototype.push.apply(layers, this.feetLayer); Array.prototype.push.apply(layers, this.torsoLayer); + Array.prototype.push.apply(layers, this.clavicleLayer); Array.prototype.push.apply(layers, this.pussyLayer); Array.prototype.push.apply(layers, this.pubicLayer); Array.prototype.push.apply(layers, this.pussyPiercingsLayer); @@ -1628,7 +1798,6 @@ class RevampedArtControl { Array.prototype.push.apply(layers, this.penisLayer); Array.prototype.push.apply(layers, this.boobLayer); Array.prototype.push.apply(layers, this.boobAddonLayer); - Array.prototype.push.apply(layers, this.clavicleLayer); Array.prototype.push.apply(layers, this.collarLayer); Array.prototype.push.apply(layers, this.headLayer); Array.prototype.push.apply(layers, this.eyesLayer); diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..6c4816bac8ec760b7478f7147a9bb26746cb6f68 --- /dev/null +++ b/src/js/wombJS.tw @@ -0,0 +1,327 @@ +:: wombJS [script] + +/* +This is womb processor/simulator script. It's take care about calculation of belly sizes based on individual foetus sizes, +with full support of broodmothers implant random turning on and off possibility. Also this can be expanded to store more parents data in each individual fetus in future. +Design limitations: +- Mother can't gestate children with different speeds at same time. All speed changes apply to all fetuses. +- Sizes of inividual fetuses updated only on call of WombGetVolume - not every time as called WombProgress. This is for better overail code speed. +- For broodmothers we need actual "new ova release" code now. But it's possible to control how many children will be added each time, and so - how much children is ready to birth each time. + +Usage from sugarcube code (samples): + +WombInit($slave) - before first pregnancy, at slave creation, of as backward compatibility update. + +WombImpregnate($slave, $fetus_count, $fatherID, $initial_age) - should be added after normal impregnation code, with already calcualted fetus count. ID of father - can be used in future for prcess children from different fathers in one pregnancy. Initial age normally 1 (as .preg normally set to 1), but can be raised if needed. Also should be called at time as broodmother implant add another fetus(es), or if new fetuses added from other sources in future (transplanting maybe?) + +WombProgress($slave, $time_to_add_to_fetuses) - after code that update $slave.preg, time to add should be the same. + +$isReady = WombBirthReady($slave, $birth_ready_age) - how many children ready to be birthed if their time to be ready is $birth_ready_age (40 is for normal length pregnancy). Return int - count of ready to birth children, or 0 if no ready exists. + +$children = WombBirth($slave, $birth_ready_age) - for actual birth. Return array with fetuses objects that birthed (can be used in future) and remove them from womb array of $slave. Should be called at actual birth code in sugarcube. fetuses that not ready remained in womb (array). + +WombFlush($slave) - clean womb (array). Can be used at broodmother birthstorm or abortion situations in game. But birthstorm logicaly should use WombBirth($slave, 35) or so before - some children in this event is live capable, others is not. + +$slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volume in CC - for updating $slave.bellyPreg, or if need to update individual fetuses sizes. +*/ + +window.WombInit = function(actor) //Init womb system. +{ + + if (!Array.isArray(actor.womb)) + { + //alert("creating new womb"); //debugging + actor.womb = []; + } + +// console.log("broodmother:" + typeof actor.broodmother); + + if ( typeof actor.broodmother != "number" ) + { + actor.broodmother = 0; + actor.broodmotherFetuses = 0; + } + + if ( typeof actor.readyOva != "number" ) + { + actor.readyOva = 0; + } + + if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother == 0) //backward compatibility setup. Fully accurate for normal pregnancy only. + { + WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg); + } + else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used. + { + var i, pw = actor.preg, bCount, bLeft; + if (pw > 40) + pw = 40; //to avoid disaster. + bCount = Math.floor(actor.pregType/pw); + bLeft = actor.pregType - (bCount*pw); + if (pw > actor.pregType) + { + pw = actor.pregType // low children count broodmothers not supported here. It's emergency/backward compatibility code, and they not in game anyway. So minimum is 1 fetus in week. + actor.preg = pw; // fixing initial pregnancy week. + } + for (i=0; i<pw; i++) + { + WombImpregnate(actor, bCount, actor.pregSource, i); // setting fetuses for every week, up to 40 week at max. + } + + if (bLeft > 0) + { + WombImpregnate(actor, bLeft, actor.pregSource, i+1); // setting up leftower of fetuses. + } + } +} + +window.WombImpregnate = function(actor, fCount, fatherID, age) +{ + var i; + var tf; + for (i=0; i<fCount; i++) + { + tf = {}; //new Object + tf.age = age; //initial age + tf.fatherID = fatherID; //We can store who is father too. + tf.sex = Math.round(Math.random())+1; // 1 = male, 2 = female. For possible future usage, just as concept now. + tf.volume = 1; //Initial, to create property. Updated with actual data after WombGetVolume call. + + try { + if (actor.womb.length == 0) + { + actor.pregWeek = age; + actor.preg = age; + } + + actor.womb.push(tf); + }catch(err){ + WombInit(actor); + actor.womb.push(tf); + alert("WombImpregnate warning - " + actor.slaveName+" "+err); + } + + } + +} + +window.WombProgress = function(actor, ageToAdd) +{ + var i, ft; + ageToAdd = Math.ceil(ageToAdd*10)/10; + try { + for (i in actor.womb) + { + ft = actor.womb[i]; + ft.age += ageToAdd; + } + }catch(err){ + WombInit(actor); + alert("WombProgress warning - " + actor.slaveName+" "+err); + } +} + +window.WombBirth = function(actor, readyAge) +{ + try{ + actor.womb.sort(function (a, b){return b.age - a.age}); //For normal processing fetuses that more old should be first. Now - they are. + }catch(err){ + WombInit(actor); + alert("WombBirth warning - " + actor.slaveName+" "+err); + } + + var birthed = []; + var ready = WombBirthReady(actor, readyAge); + var i; + + for (i=0; i<ready; i++) //here can't be used "for .. in .." syntax. + { + birthed.push(actor.womb.shift()); + } + + return birthed; +} + +window.WombFlush = function(actor) +{ + actor.womb = []; +} + +window.WombBirthReady = function(actor, readyAge) +{ + + var i, ft; + var readyCnt = 0; + try { + for (i in actor.womb) + { + ft = actor.womb[i]; + if (ft.age >= readyAge) + readyCnt++; + } + }catch(err){ + WombInit(actor); + alert("WombBirthReady warning - " + actor.slaveName+" "+err); + + return 0; + } + + return readyCnt; +} + +window.WombGetVolume = function(actor) //most code from pregJS.tw with minor adaptation. +{ + var i, ft; + var gestastionWeek; + var phi = 1.618; + var targetLen; + var wombSize = 0; + + try{ + + for (i in actor.womb) + { + ft = actor.womb[i]; + gestastionWeek = ft.age; + + if (gestastionWeek <= 32) + { + targetLen = (0.00006396 * Math.pow(gestastionWeek, 4)) - (0.005501 * Math.pow(gestastionWeek, 3)) + (0.161 * Math.pow(gestastionWeek, 2)) - (0.76 * gestastionWeek) + 0.208; + } + else if (gestastionWeek <= 106) + { + targetLen = (-0.0000004675 * Math.pow(gestastionWeek, 4)) + (0.0001905 * Math.pow(gestastionWeek, 3)) - (0.029 * Math.pow(gestastionWeek, 2)) + (2.132 * gestastionWeek) - 16.575; + } + else + { + targetLen = (-0.00003266 * Math.pow(gestastionWeek,2)) + (0.076 * gestastionWeek) + 43.843; + } + + ft.volume = ((4 / 3) * (Math.PI) * (phi / 2) * (Math.pow((targetLen / 2), 3))); + + wombSize += ft.volume; + } + }catch(err){ + WombInit(actor); + alert("WombGetVolume warning - " + actor.slaveName + " " + err); + } + + if (wombSize < 0) //catch for strange cases, to avoid messing with outside code. + wombSize = 0; + + return wombSize; +} + +window.WombUpdatePregVars = function(actor) { + + actor.womb.sort(function (a, b){return b.age - a.age}); + if (actor.womb.length > 0) + { + if (actor.preg > 0 && actor.womb[0].age > 0) + { + actor.preg = actor.womb[0].age; + } + + actor.pregType = actor.womb.length; + + actor.bellyPreg = WombGetVolume(actor); + + } + +} + +window.WombMinPreg = function(actor) +{ + actor.womb.sort(function (a, b){return b.age - a.age}); + + if (actor.womb.length > 0) + return actor.womb[actor.womb.length-1].age; + else + return 0; +} + +window.WombMaxPreg = function(actor) +{ + actor.womb.sort(function (a, b){return b.age - a.age}); + if (actor.womb.length > 0) + return actor.womb[0].age; + else + return 0; +} + +window.WombNormalizePreg = function(actor) +{ +// console.log("New actor: " + actor.slaveName + " ===============" + actor.name); + WombInit(actor); + + if (actor.womb.length == 0 && actor.broodmother >= 1) // this is broodmother on hold. + { + actor.pregType = 0; + actor.pregKnown = 0; + + if (actor.preg >= 0) + actor.preg = 0.1; //to avoid legacy code conflicts - broodmother on hold can't be impregnated, but she not on normal contraceptives. So we set this for special case. + + if (actor.pregSource > 0) + actor.pregSource = 0; + + if (actor.pregWeek > 0) + actor.pregWeek = 0; + + actor.broodmotherCountDown = 0; + } + + if (actor.womb.length > 0) + { + var max = WombMaxPreg(actor); +// console.log("max: " + max); +// console.log(".preg: "+ actor.preg); + if (actor.pregWeek < 1 ) + actor.pregWeek = 1 + + if (max < actor.preg) + { + WombProgress(actor, actor.preg - max); +// console.log("progressin womb"); + } + else if ( max > actor.preg) + { + actor.preg = max; +// console.log("advancing .preg"); + } + + actor.pregType = actor.womb.length; + actor.pregSource = actor.womb[0].fatherID; + } + else if (actor.womb.length == 0 && actor.broodmother < 1) //not broodmother + { +// console.log("preg fixing"); + actor.pregType = 0; + actor.pregKnown = 0; + + if (actor.preg > 0) + actor.preg = 0; + + if (actor.pregSource > 0) + actor.pregSource = 0; + + if (actor.pregWeek > 0) // We can't properly set postpartum here, but can normalize obvious error with forgotten property. + actor.pregWeek = 0; + } + + actor.bellyPreg = WombGetVolume(actor); +} + +window.WombZeroID = function(actor, id) +{ + WombInit(actor); + var i, ft; + for (i in actor.womb) + { + ft = actor.womb[i]; + if (ft.fatherID == id) + ft.fatherID = 0; + } + + WombNormalizePreg(actor); +} diff --git a/src/npc/abort.tw b/src/npc/abort.tw index bea1a9cb386989f6cd4d3e43e5f84da373504713..c92c485f7799d629e8302279afdfcfce2f8b7d86 100644 --- a/src/npc/abort.tw +++ b/src/npc/abort.tw @@ -6,25 +6,22 @@ The remote surgery makes aborting a pregnancy quick and efficient. $activeSlave.slaveName is <<if $activeSlave.fetish == "pregnancy">> @@.red;fundamentally broken.@@ Her entire concept of self and sexuality was wrapped up in the life growing within her, and now it is gone. - <<set $activeSlave.fetish to "mindbroken">> + <<set $activeSlave.fetish = "mindbroken">> <<elseif $activeSlave.devotion < -50>> @@.mediumorchid;filled with violent, consuming hatred@@. Even though she knew her baby was destined for a slave orphanage, it seems she cared for it and views you as its killer. She is @@.gold;terrified of your power@@ over her body. - <<set $activeSlave.trust -= 10>> - <<set $activeSlave.devotion -= 25>> + <<set $activeSlave.trust -= 10, $activeSlave.devotion -= 25>> <<elseif $activeSlave.devotion < -20>> @@.mediumorchid;afflicted by desperate, inconsolable sobbing@@. Even though she knew her baby was destined for a slave orphanage, it seems she cared for it. She is @@.gold;terrified of your power@@ over her body. - <<set $activeSlave.trust -= 10>> - <<set $activeSlave.devotion -= 10>> + <<set $activeSlave.trust -= 10, $activeSlave.devotion -= 10>> <<elseif $activeSlave.devotion <= 20>> @@.mediumorchid;consumed by muted weeping and enduring sorrow@@. Even though she knew her baby was destined for a slave orphanage, it seems she cared for it. She is @@.gold;terrified of your power@@ over her body. - <<set $activeSlave.trust -= 10>> - <<set $activeSlave.devotion -= 5>> + <<set $activeSlave.trust -= 10, $activeSlave.devotion -= 5>> <<elseif $activeSlave.devotion <= 50>> dully obedient. She has been broken to slave life so thoroughly that even this is neither surprising nor affecting. She is @@.gold;terrified of your power@@ over her body. - <<set $activeSlave.trust -= 10>> + <<set $activeSlave.trust -= 10>> <<else>> @@.hotpink;pleased by this stark development@@, since she is so attentive to your will. She also expects she'll be able to fuck better now. - <<set $activeSlave.devotion += 4>> + <<set $activeSlave.devotion += 4>> <</if>> <<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>> @@ -36,4 +33,5 @@ The remote surgery makes aborting a pregnancy quick and efficient. $activeSlave. <<set $activeSlave.pregSource = 0>> <<set $activeSlave.pregKnown = 0>> <<set $activeSlave.pregWeek = -2>> +<<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw index 6752eb488ed760fdcdc6b4021e429ae944f1d376..6a27be9e7fd38e8e45a18afc322fd43a69a5bd87 100644 --- a/src/npc/acquisition.tw +++ b/src/npc/acquisition.tw @@ -41,13 +41,17 @@ <</for>> <</if>> <<if $PC.preg > 0>> + <<set $PC.pregWeek = $PC.preg>> + <<set $PC.pregType = 1>> <<if $PC.career == "servant">> <<set $PC.pregSource = -3>> + <<set $PC.pregType += random(0,0,1)>> <<elseif $PC.career == "escort">> <<set $PC.pregSource = -2>> <</if>> <<set $PC.pregKnown = 1>> <<set $PC.belly = getPregBellySize($PC)>> + <<set WombImpregnate($PC, $PC.pregType, $PC.pregSource, $PC.preg)>> <</if>> <</if>> <<set $PC.ovaryAge = $PC.physicalAge>> diff --git a/src/npc/agent/agentWorkaround.tw b/src/npc/agent/agentWorkaround.tw index c90c342ac768ff45fe9105e62bd4026fa57f7689..859280c64c0e5ef375b885799bdeb994737a0f33 100644 --- a/src/npc/agent/agentWorkaround.tw +++ b/src/npc/agent/agentWorkaround.tw @@ -62,5 +62,5 @@ You order $slaves[$i].slaveName to come into your office for orders. The devoted <</switch>> It will mean that she'll see much less of you, something such a devoted slave may struggle with. Oppressed by the confusion and strength of her feelings, she begins to cry. -<br><br>"Thank you, <<Master $slaves[i]>>," she gasps out. "I'll do my be<<s>>t." +<br><br>"Thank you, <<Master $slaves[$i]>>," she gasps out. "I'll do my be<<s>>t." diff --git a/src/npc/descriptions/fButt.tw b/src/npc/descriptions/fButt.tw index 56f7458224b430142b9f04a91fc531e75a326af0..0065c85373112c7d7b4eeefc8ec611e152dc3b3b 100644 --- a/src/npc/descriptions/fButt.tw +++ b/src/npc/descriptions/fButt.tw @@ -3,7 +3,7 @@ <<ClearSummaryCache $activeSlave>> You call her over so you can -<<if ($activeSlave.vagina == -1)>> +<<if !canDoVaginal($activeSlave)>> use her sole fuckhole. <<elseif ($activeSlave.vagina > 3)>> fuck her gaping holes. @@ -126,15 +126,29 @@ Her anus is invitingly bleached, <</if>> <<BothVCheck>> <<else>> - <<if ($activeSlave.amp != 1)>>She kneels on the floor<<else>>You lay her on the floor<</if>> so you can take her at will<<if ($PC.dick == 0)>>, and don a strap-on<</if>>. You finger her <<if $seeRace == 1>>$activeSlave.race <</if>>ass while <<if ($activeSlave.vagina != -1)>>fucking her pussy<<else>>frotting her<</if>> for a bit and then switch to her now-ready anus. <<if ($activeSlave.anus == 1)>>Her ass is so tight that you have to work yourself in.<<elseif ($activeSlave.anus == 2)>>Your cock slides easily up her ass.<<else>>You slide into her already-gaping asspussy with ease.<</if>> You fuck her there for a while before repeatedly pulling out and stuffing yourself back in. She moans each time you fill a waiting hole. + <<if ($activeSlave.amp != 1)>>She kneels on the floor<<else>>You lay her on the floor<</if>> so you can take her at will<<if ($PC.dick == 0)>>, and don a strap-on<</if>>. You finger her <<if $seeRace == 1>>$activeSlave.race <</if>>ass while + <<if canDoVaginal($activeSlave)>> + fucking her pussy + <<else>> + frotting her + <</if>> + for a bit and then switch to her now-ready anus. + <<if ($activeSlave.anus == 1)>> + Her ass is so tight that you have to work yourself in. + <<elseif ($activeSlave.anus == 2)>> + Your cock slides easily up her ass. + <<else>> + You slide into her already-gaping asspussy with ease. + <</if>> + You fuck her there for a while before repeatedly pulling out and stuffing yourself back in. She moans each time you fill <<if canDoVaginal($activeSlave)>>a<<else>>her<</if>> waiting hole. <<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>> - <<if $activeSlave.dickAccessory == "chastity">> + <<if ["chastity", "combined chastity"].includes($activeSlave.dickAccessory)>> Whenever she starts to get hard, her dick chastity gives her an awful twinge of pain. You do your best to be up her butt when this happens so you can experience the resulting spasm. <<else>> Every time you penetrate, her erect dick jerks up and slaps her stomach. <</if>> <<elseif ($activeSlave.dick !== 0)>> - <<if $activeSlave.dickAccessory == "chastity">> + <<if ["chastity", "combined chastity"].includes($activeSlave.dickAccessory)>> Her dick chastity keeps her girly bitchclit hidden, just like it belongs. <<else>> Every time you penetrate, her limp dick flops around lamely. @@ -221,10 +235,6 @@ Her anus is invitingly bleached, <</if>> <<if passage() !== "Slave Interact">> -<<for _i = 0; _i < $slaves.length; _i++>> - <<if $slaves[_i].ID == $activeSlave.ID>> + <<set _i = $slaves.findIndex(function(s) { return s.ID == $activeSlave.ID; })>> <<set $slaves[_i] = $activeSlave>> - <<break>> - <</if>> -<</for>> <</if>> diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw index 7e74c311bd1104b5b554953ca44731f38e529802..4a377fbfda33e7344bd857ac4b7c71ebd37c9099 100644 --- a/src/npc/descriptions/fVagina.tw +++ b/src/npc/descriptions/fVagina.tw @@ -60,7 +60,7 @@ You call her over so you can Her huge labia are almost dripping with arousal. <</if>> <<if $activeSlave.vaginaLube > 1>> - A steady stream of lube leaks from her pussy in preparation to recieve you. + A steady stream of lube leaks from her pussy in preparation to receive you. <</if>> <</if>> @@ -99,9 +99,9 @@ You call her over so you can <<if (_fPosition <= 20)>> in the missionary position. You tell her to lie down on the couch next to your desk. <<if $activeSlave.bellyPreg >= 600000>> - A position that will be a challange due to her immense pregnancy. + A position that will be a challenge due to her immense pregnancy. <<elseif $activeSlave.belly >= 600000>> - A position that will be a challange due to her immense stomach. + A position that will be a challenge due to her immense stomach. <<elseif $activeSlave.bellyPreg >= 300000>> A position that will be difficult due to her massive pregnancy. <<elseif $activeSlave.belly >= 300000>> @@ -120,7 +120,7 @@ You call her over so you can <<elseif $activeSlave.belly >= 300000>> A position that will allow you to tease her massive belly as you fuck her. <<elseif $activeSlave.belly+$PC.belly >= 20000 && $activeSlave.belly >= 1500 && $PC.belly >= 1500>> - A position that will be akward with the combined size of your rounded middles. + A position that will be awkward with the combined size of your rounded middles. <</if>> <<elseif (_fPosition <= 60)>> doggy-style. You tell her to get on the couch beside your desk on her hands and knees. diff --git a/src/npc/exportSlave.tw b/src/npc/exportSlave.tw index 4fcde403165ff0df5f3104bfc93e96060c1bcea9..b4a2464c1433d99b18cfc81722804187870e5d34 100644 --- a/src/npc/exportSlave.tw +++ b/src/npc/exportSlave.tw @@ -8,9 +8,7 @@ <<if (ndef $activeSlave.currentRules) || ($activeSlave.currentRules.length < 1)>><<set _currentRules = "[]">><<else>><<set _currentRules = "$activeSlave.currentRules">><</if>> -slaveName: "$activeSlave.slaveName", slaveSurname: "$activeSlave.slaveName", birthName: "$activeSlave.birthName", birthSurname: "$activeSlave.birthSurname", genes: "$activeSlave.genes", weekAcquired: 1, origin: "$activeSlave.origin", career: "$activeSlave.career", ID: $activeSlave.ID, pornFame: $activeSlave.pornFame, pornFameSpending: $activeSlave.pornFameSpending, prestige: $activeSlave.prestige, prestigeDesc: "$activeSlave.prestigeDesc", recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: $activeSlave.birthWeek, age: $activeSlave.age, ageImplant: $activeSlave.ageImplant, health: $activeSlave.health, minorInjury: 0, trust: $activeSlave.trust, oldTrust: $activeSlave.trust, devotion: $activeSlave.devotion, oldDevotion: $activeSlave.devotion, weight: $activeSlave.weight, muscles: $activeSlave.muscles, height: $activeSlave.height, heightImplant: $activeSlave.heightImplant, nationality: "$activeSlave.nationality", race: "$activeSlave.race", markings: "none", eyes: 1, eyeColor: "$activeSlave.eyeColor", eyewear: "none", hColor: "$activeSlave.hColor", pubicHColor: "$activeSlave.pubicHColor", skin: "$activeSlave.skin", hLength: $activeSlave.hLength, hStyle: "$activeSlave.hStyle", pubicHStyle: "$activeSlave.pubicHStyle", waist: $activeSlave.waist, corsetPiercing: $activeSlave.corsetPiercing, amp: $activeSlave.amp, heels: $activeSlave.heels, voice: $activeSlave.voice, voiceImplant: $activeSlave.voiceImplant, accent: $activeSlave.accent, shoulders: $activeSlave.shoulders, shouldersImplant: $activeSlave.shouldersImplant, boobs: $activeSlave.boobs, boobsImplant: $activeSlave.boobsImplant, boobsImplantType: $activeSlave.boobsImplantType, boobShape: "normal", nipples: "$activeSlave.nipples", nipplesPiercing: $activeSlave.nipplesPiercing, nipplesAccessory: "$activeSlave.nipplesAccessory", areolae: $activeSlave.areolae, areolaePiercing: $activeSlave.areolaePiercing, boobsTat: "$activeSlave.boobsTat", lactation: $activeSlave.lactation, lactationAdaptation: $activeSlave.lactationAdaptation, milk: 0, cum: 0, hips: $activeSlave.hips, hipsImplant: $activeSlave.hipsImplant, butt: $activeSlave.butt, buttImplant: $activeSlave.buttImplant, buttImplantType: $activeSlave.buttImplantType, buttTat: "$activeSlave.buttTat", face: $activeSlave.face, faceImplant: $activeSlave.faceImplant, faceShape: "normal", lips: $activeSlave.lips, lipsImplant: $activeSlave.lipsImplant, lipsPiercing: $activeSlave.lipsPiercing, lipsTat: "$activeSlave.lipsTat", teeth: "$activeSlave.teeth", tonguePiercing: $activeSlave.tonguePiercing, vagina: $activeSlave.vagina, vaginaLube: $activeSlave.vaginaLube, vaginaPiercing: $activeSlave.vaginaPiercing, vaginaTat: "$activeSlave.vaginaTat", preg: $activeSlave.preg, pregSource: 0, pregType: $activeSlave.pregType, broodmother: $activeSlave.broodmother, broodmotherCountDown: $activeSlave.broodmotherCountDown, labor: $activeSlave.labor, births: $activeSlave.births, cSec: $activeSlave.cSec, bellyAccessory: "none", labia: $activeSlave.labia, clit: $activeSlave.clit, clitPiercing: $activeSlave.clitPiercing, clitSetting: "$activeSlave.clitSetting", foreskin: $activeSlave.foreskin, anus: $activeSlave.anus, dick: $activeSlave.dick, analArea: 1, dickPiercing: $activeSlave.dickPiercing, dickTat: "$activeSlave.dickTat", balls: $activeSlave.balls, scrotum: $activeSlave.scrotum, ovaries: $activeSlave.ovaries, anusPiercing: $activeSlave.anusPiercing, anusTat: "$activeSlave.anusTat", makeup: $activeSlave.makeup, nails: $activeSlave.nails, brand: "$activeSlave.brand", brandLocation: "$activeSlave.brandLocation", earPiercing: $activeSlave.earPiercing, nosePiercing: $activeSlave.nosePiercing, eyebrowPiercing: $activeSlave.eyebrowPiercing, navelPiercing: $activeSlave.navelPiercing, shouldersTat: "$activeSlave.shouldersTat", armsTat: "$activeSlave.armsTat", legsTat: "$activeSlave.legsTat", backTat: "$activeSlave.backTat", stampTat: "$activeSlave.stampTat", vaginalSkill: $activeSlave.vaginalSkill, oralSkill: $activeSlave.oralSkill, analSkill: $activeSlave.analSkill, whoreSkill: $activeSlave.whoreSkill, entertainSkill: $activeSlave.entertainSkill, combatSkill: $activeSlave.combatSkill, livingRules: "$activeSlave.livingRules", speechRules: "$activeSlave.speechRules", releaseRules: "$activeSlave.releaseRules", relationshipRules: "$activeSlave.relationshipRules", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "$activeSlave.diet", dietCum: $activeSlave.dietCum, dietMilk: $activeSlave.dietMilk, tired: 0, hormones: 0, drugs: "$activeSlave.drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: $activeSlave.addict, fuckdoll: $activeSlave.fuckdoll, choosesOwnClothes: 0, clothes: "$activeSlave.clothes", collar: "$activeSlave.collar", shoes: "$activeSlave.shoes", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: $activeSlave.intelligence, intelligenceImplant: $activeSlave.intelligenceImplant, energy: $activeSlave.energy, need: 0, attrXX: $activeSlave.attrXX, attrXY: $activeSlave.attrXY, attrKnown: $activeSlave.attrKnown, fetish: "$activeSlave.fetish", fetishStrength: $activeSlave.fetishStrength, fetishKnown: $activeSlave.fetishKnown, behavioralFlaw: "$activeSlave.behavioralFlaw", behavioralQuirk: "none", sexualFlaw: "$activeSlave.sexualFlaw", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "$activeSlave.customTat", customLabel: "", customDesc: "$activeSlave.customDesc", customImage: 0, currentRules: _currentRules, actualAge: $activeSlave.actualAge, visualAge: $activeSlave.visualAge, physicalAge: $activeSlave.physicalAge, bellyTat: "$activeSlave.bellyTat", induce: 0, mpreg: $activeSlave.mpreg, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: $activeSlave.pregKnown, belly: $activeSlave.belly, bellyPreg: $activeSlave.bellyPreg, bellyFluid: $activeSlave.bellyFluid, bellyImplant: $activeSlave.bellyImplant, bellySag: $activeSlave.bellySag, bellySagPreg: $activeSlave.bellySagPreg, bellyPain: 0, cervixImplant: $activeSlave.cervixImplant, birthsTotal: $activeSlave.birthsTotal, pubertyXX: $activeSlave.pubertyXX, pubertyAgeXX: $activeSlave.pubertyAgeXX, pubertyXY: $activeSlave.pubertyXY, pubertyAgeXY: $activeSlave.pubertyAgeXY, scars: $activeSlave.scars, breedingMark: 0, underArmHStyle: "waxed", underArmHColor: "$activeSlave.underArmHColor", bodySwap: $activeSlave.bodySwap, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "$activeSlave.ballType", eggType: "$activeSlave.eggType", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: $activeSlave.ageAdjust, bald: $activeSlave.bald, origBodyOwner: "", death: "", hormoneBalance: $activeSlave.hormoneBalance, vasectomy: $activeSlave.vasectomy, ovaryAge: $activeSlave.ovaryAge, haircuts: $activeSlave.haircuts, newGamePlus: 1, skillHG: $activeSlave.skillHG, skillRC: $activeSlave.skillRC, skillBG: $activeSlave.skillBG, skillMD: $activeSlave.skillMD, skillDJ: $activeSlave.skillDJ, skillNU: $activeSlave.skillNU, skillTE: $activeSlave.skillTE, skillAT: $activeSlave.skillAT, skillST: $activeSlave.skillST, skillMM: $activeSlave.skillMM, skillWA: $activeSlave.skillWA - -<br><br><br> __Direct JSON export method__: <br><br> +/* <br><br><br> __Direct JSON export method__: <br><br> */ <div class="output"> <<set _jsonText = toJson($activeSlave)>> diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw index b23dbe5a3e83244b6475df023c4ec62fa24005ac..2ec5faaf907d9503df113154f41697fae2cbbc05 100644 --- a/src/npc/fFeelings.tw +++ b/src/npc/fFeelings.tw @@ -609,6 +609,16 @@ My favorite part of my body i<<s>> <</if>> <</if>> +<<switch $activeSlave.diet>> +<<case "fertility">> + My <<s>>tomach feel<<s>> tingly, e<<s>>pe<<c>>ially when I think of dick<<s>>, but that'<<s>> normal, right? + <<if $PC.dick > 0>>Oh! It'<<s>> happening now! I bet we both know why...<</if>> +<<case "cum production">> + My load<<s>> have been bigger lately. That diet mu<<s>>t be having an effect on me. +<<case "cleansing">> + I'm feeling really good, <<Master>>, the diet mu<<s>>t be working. It really ta<<s>>te<<s>> horrible, though... +<</switch>> + <<switch $activeSlave.drugs>> <<case "intensive penis enhancement">> <<if ($activeSlave.dick > 0)>> diff --git a/src/npc/fSlaveImpregConsummate.tw b/src/npc/fSlaveImpregConsummate.tw index 9256422b8fa7afcb7199bbe328d74bd56b5e5285..095f5c62862b7860749d498d2dba13d0f916be39 100644 --- a/src/npc/fSlaveImpregConsummate.tw +++ b/src/npc/fSlaveImpregConsummate.tw @@ -128,7 +128,7 @@ Next, you see to $activeSlave.slaveName. <</if>> -<<KnockMeUp $activeSlave 100 2 $impregnatrix.ID>> +<<KnockMeUp $activeSlave 100 2 $impregnatrix.ID 1>> <br><br> @@ -177,7 +177,9 @@ Next, you see to $activeSlave.slaveName. $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including it being her @@.lime;first time@@ as she inseminated $activeSlave.slaveName. <<set $impregnatrix.devotion += 4, $impregnatrix.vagina = 1>> <</if>> - <<KnockMeUp $impregnatrix 10 0 -1 1>> + <<if $PC.dick == 1 && $impregnatrix.eggType == "human" && canGetPregnant($impregnatrix)>> + <<KnockMeUp $impregnatrix 10 0 -1 1>> + <</if>> <<set $impregnatrix.vaginalCount += _penCountBonus, $vaginalTotal += _penCountBonus>> <<elseif canDoAnal($impregnatrix)>> Pulling out, you flip them again so that $impregnatrix.slaveName is on top and switch to her ass instead, stimulating her <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good assfuck until she blows her load into $activeSlave.slaveName's fertile <<if $activeSlave.mpreg == 1>>ass<<else>>cunt<</if>>. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh with three loads inside them. @@ -185,7 +187,9 @@ Next, you see to $activeSlave.slaveName. $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including taking her @@.lime;first buttfuck@@ as she inseminated $activeSlave.slaveName. <<set $impregnatrix.devotion += 4, $impregnatrix.anus = 1>> <</if>> - <<KnockMeUp $impregnatrix 10 1 -1 1>> + <<if $PC.dick == 1 && $impregnatrix.eggType == "human" && canGetPregnant($impregnatrix)>> + <<KnockMeUp $impregnatrix 10 1 -1 1>> + <</if>> <<set $impregnatrix.analCount += _penCountBonus, $analTotal += _penCountBonus>> <<else>> The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh. @@ -197,7 +201,6 @@ Next, you see to $activeSlave.slaveName. $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including it being her @@.lime;first time@@ as she inseminated $activeSlave.slaveName. <<set $impregnatrix.devotion += 4, $impregnatrix.vagina = 1>> <</if>> - <<KnockMeUp $impregnatrix 10 0 -1 1>> <<set $impregnatrix.vaginalCount += _penCountBonus, $vaginalTotal += _penCountBonus>> <<elseif canDoAnal($impregnatrix)>> Pulling back, you flip them again so that $impregnatrix.slaveName is on top and don a strapon. You begin stimulating her <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good assfuck until she blows her load into $activeSlave.slaveName's fertile <<if $activeSlave.mpreg == 1>>ass<<else>>cunt<</if>>. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh. @@ -231,7 +234,9 @@ Next, you see to $activeSlave.slaveName. <<set $impregnatrix.devotion += 4, $impregnatrix.vagina = 1>> <</if>> <<set $impregnatrix.vaginalCount += _penCountBonus, $vaginalTotal += _penCountBonus>> - <<KnockMeUp $impregnatrix 10 0 -1 1>> + <<if $PC.dick == 1 && $impregnatrix.eggType == "human" && canGetPregnant($impregnatrix)>> + <<KnockMeUp $impregnatrix 10 0 -1 1>> + <</if>> <<elseif canDoAnal($activeSlave)>> ass instead, stimulating her <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good assfuck <<if ($impregnatrix.anus == 0)>> @@ -239,7 +244,9 @@ Next, you see to $activeSlave.slaveName. <<set $impregnatrix.devotion += 4, $impregnatrix.anus = 1>> <</if>> <<set $impregnatrix.analCount += _penCountBonus, $analTotal += _penCountBonus>> - <<KnockMeUp $impregnatrix 10 1 -1 1>> + <<if $PC.dick == 1 && $impregnatrix.eggType == "human" && canGetPregnant($impregnatrix)>> + <<KnockMeUp $impregnatrix 10 1 -1 1>> + <</if>> <<else>> mouth instead, giving her a good facefuck <<set $impregnatrix.oralCount += _penCountBonus, $oralTotal += _penCountBonus>> @@ -277,7 +284,7 @@ Throughout the week, you keep $activeSlave.slaveName's <<if $activeSlave.mpreg = <br><br> -You prepare the necessary file on their possible offspring. Upon birth, it will be remanded to a slave orphanage to be raised to the age of $fertilityAge and then sold, but its likely appearance and traits are already worth noting. +You prepare the necessary file on their possible offspring. Upon birth, it will be remanded to a slave orphanage to be raised to the age of $minimumSlaveAge and then sold, but its likely appearance and traits are already worth noting. $activeSlave.slaveName and $impregnatrix.slaveName are likely to produce diff --git a/src/npc/newSlaveIncestSex.tw b/src/npc/newSlaveIncestSex.tw new file mode 100644 index 0000000000000000000000000000000000000000..49b6946098011cd98ebbfaa25791ca2282702cad --- /dev/null +++ b/src/npc/newSlaveIncestSex.tw @@ -0,0 +1,112 @@ +:: newSlaveIncestSex [nobr] + +<br/><br/> + +/* setup pronouns (switch on vagina for sisters and herms regardless of genes) */ +<<set _oneshe = "she" >> +<<set _oneher = "her" >> +<<if $sissy.vagina == -1 >> + <<set _oneshe = "he" >> + <<set _oneher = "his" >> +<</if>> +<<set _othershe = "she" >> +<<set _otherher = "her" >> +<<if $activeSlave.vagina == -1 >> + <<set _othershe = "he" >> + <<set _otherher = "his" >> +<</if>> + +/* setup identifiers */ +<<if $familyTesting == 1 >> + <<set _one = relativeTerm($activeSlave, $sissy)>> /* sissy is active's blank */ + <<set _other = relativeTerm($sissy, $activeSlave)>> /* active is sissy's blank */ +<<else>> + <<set _one = $sissy.relation >> + <<set _other = $activeSlave.relation >> +<</if>> + +/* gender relation descriptions */ +/* TODO: is there a function for gender-aware relationships? */ +<<if $sissy.vagina == -1 >> + <<set _one = _one.replace("mother","father").replace("sister","brother").replace("daughter","son") >> +<</if>> +<<if $activeSlave.vagina == -1 >> + <<set _other = _other.replace("mother","father").replace("sister","brother").replace("daughter","son") >> +<</if>> + +<<if _one == _other >> + /* two sisters / brothers: idenfy by age - no support for twins */ + <<if $sissy.actualAge > $activeSlave.actualAge >> + <<set _one = "older "+_one >> + <<set _other = "younger "+_other >> + <<else>> + /* Note: this is never true (at least without extended family mode) */ + <<set _one = "younger "+_one >> + <<set _other = "older "+_other >> + <</if>> +<</if>> + +/* prepare some text passages based on options */ +<<set _actions = [] >> +<<set _secretions = [] >> +<<set _genitals = [] >> +<<if ($sissy.dick == 0) || ($activeSlave.dick == 0) >> + /* at least one vagina is present */ + <<run _actions.push("clit-flinging tongue-action") >> /* TODO: check oral skill of slaves */ + <<run _secretions.push("femcum") >> + <<run _genitals.push("licked wet cunt") >> +<</if>> +<<if ($sissy.dick != 0) || ($activeSlave.dick != 0) >> + /* at least one penis is present */ + <<run _actions.push("nose-pressed-against-balls deep-throats") >> /* TODO: check oral skill of slaves */ + <<run _secretions.push("semen") >> + <<run _genitals.push("limp dangling cock") >> +<</if>> +<<if _genitals.length == 1 >> + <<set _genitals = _genitals[0]+"s" >> +<<else>> + <<set _genitals = _genitals.join(" and ") >> +<</if>> + +<<if $debugMode >> +SISSY SLAVE (FIRST): <br/> +_one ($sissy.relation) <br/> +$sissy.physicalAge <br/> +_oneshe / _oneher <br/> +ACTIVE SLAVE (SECOND): <br/> +_other ($activeSlave.relation) <br/> +$activeSlave.physicalAge <br/> +_othershe / _otherher <br/> +<</if>> + +<span id="result"> +<<link "Order them to demonstrate their love for each other">> +<<replace "#result">> +Now that you own them, you want to see proof of their love for each other. You order them to perform mutual oral sex in front of you. +Hesitantly they assume 69 position on your couch. They either never did this in front of a stranger or never had sex this way before. You remind them that they are sex slaves now. They need to follow all orders, especially sexual ones, so this is a comparatively gentle start. +<br/><br/> +The _one shows more boldness as _oneshe lowers _oneher head towards _oneher _other's privates. +<<if $activeSlave.dick == 0 >> +Carefully, _oneshe spreads _oneher _other's labia. Then _oneshe continues to give _oneher _other's exposed pussy a few experimental licks. At first, _oneher efforts seem to be futile, but after a while the _other's clit becomes engorged and _otherher juices start flowing. +<<else>> +Uncertain, _oneshe grabs _oneher _other's penis. Then _oneshe puts _oneher _other's flaccid member into _oneher mouth and gives it an experimental sucke. At first, _oneher efforts seem to be futile, but after a while the _other sports a nice, hard erection. +<</if>> +As the _other's arousal grows, _othershe becomes more eager to please _otherher _one, too. Going down on _otherher's lover's genitals, _othershe starts to mimic _otherher ministrations. + <<if ($sissy.dick == 0) != ($activeSlave.dick == 0) >> + Of course, _othershe has to adapt _otherher actions <<if $sissy.dick == 0 >>from the feelings on _otherher dick to the pussy pressed against _otherher lips.<<else>>from the feelings at _otherher pussy to the dick in _otherher mouth.<</if>> + <</if>> +<br/><br/> +You can tell how uncomfortable they are with you watching them, but as they become increasingly worked up, they lose their inhibitions. Soon, you watch really enthralling <<print $RecETSevent.replace("incest","") >> incest action at your office<<if _actions.length >>, including some enthusiastic <<print _actions.join(" and ")>><</if>>. Eventually, they bring each other to an impressive mutual orgasm. Their lusty moans are only muffled by each others crotches. Spent, exhausted, and with their faces covered in each others <<print _secretions.join(" and ")>> respectively, they untangle to rest comfortably on your couch. +<br/><br/> +You indicate them to present themselves to you. Still shaking from the aftershocks of their orgasms, they are standing side by side in front of you. Panting, naked and with their _genitals dripping mixed juices. You simply nod, showing your approval. They are visibly relieved, not only sexually. They are more confident of having made the right choice in enslaving themselves to you since you seem @@.mediumaquamarine;trustworthy@@ and @@.hotpink;sympathetic.@@ They hug again, kissing and licking the sexual fluids off each others stained faces. +<</replace>> +<<set $sissy.devotion += 4>> +<<set $sissy.trust += 4>> +<<set $sissy.oralCount += 1>> +<<set $oralTotal += 1>> +<<set $activeSlave.devotion += 4>> +<<set $activeSlave.trust += 4>> +<<set $activeSlave.oralCount += 1>> +<<set $oralTotal += 1>> +<</link>> +</span> diff --git a/src/npc/removeActiveSlave.tw b/src/npc/removeActiveSlave.tw index 91ed24b3bebe8bfe3bfad949ea5b2996640f2e0d..c7e2ee0387c82b534d3ae03f810ffff0cfc90dfd 100644 --- a/src/npc/removeActiveSlave.tw +++ b/src/npc/removeActiveSlave.tw @@ -2,9 +2,7 @@ <<set _ID = $activeSlave.ID, _SL = $slaves.length, _x = $slaves.findIndex(function(s) { return s.ID == _ID; })>> -<<if _ID == $PC.pregSource>> - <<set $PC.pregSource = 0>> -<</if>> +<<set WombZeroID($PC, _ID)>> <<if $activeSlave.reservedChildren > 0>> <<set $reservedChildren -= $activeSlave.reservedChildren>> <</if>> @@ -41,9 +39,7 @@ <</for>> <</if>> <<for _y = 0; _y < _SL; _y++>> - <<if _ID == $slaves[_y].pregSource>> - <<set $slaves[_y].pregSource = 0>> - <</if>> + <<set WombZeroID($slaves[_y], _ID)>> /* This check is complex, should be done in JS now, all needed will be done here. */ <<if $activeSlave.daughters > 0>> <<if $slaves[_y].mother == _ID>> <<set $slaves[_y].mother = $missingParentID>> diff --git a/src/npc/rgASDump.tw b/src/npc/rgASDump.tw index da07cf54af75f1f3b6368bc8d94a4a3aaefac610..0b3a6b42ad9ab8fa50d60c1297b0266cfb5dcf94 100644 --- a/src/npc/rgASDump.tw +++ b/src/npc/rgASDump.tw @@ -55,6 +55,11 @@ <<if $activeSlave.combatSkill < 1>> <<set $activeSlave.combatSkill += 1>> <</if>> + <<elseif $PC.career == "BlackHat">> + <<set $activeSlave.intelligence++>> + <<if $activeSlave.intelligence > 3>> + <<set $activeSlave.intelligence = 3>> + <</if>> <<elseif $PC.career == "escort">> <<if $activeSlave.entertainSkill < 60>> <<set $activeSlave.entertainSkill += 20>> diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw index 5f9cdca3a6b74f284f9997a241eff8a8448c4cd4..7afaf888e781f569c8dd20c3842c9c740faae0ac 100644 --- a/src/npc/startingGirls/startingGirls.tw +++ b/src/npc/startingGirls/startingGirls.tw @@ -148,7 +148,7 @@ __You are customizing this slave:__ <<set $activeSlave.vaginaLube = 0>> <</if>> <<if ($activeSlave.ovaries == 0)>> - <<set $activeSlave.preg = 0>> + <<set $activeSlave.preg = 0, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>> <<set $activeSlave.belly = 0, $activeSlave.bellyPreg = 0>> <</if>> <<set $activeSlave.actualAge = Math.clamp($activeSlave.actualAge, $minimumSlaveAge, $retirementAge-1) || 18>> @@ -249,7 +249,7 @@ __You are customizing this slave:__ <</if>> <<elseif $PC.career == "gang">> <<if $activeSlave.mother == -1 && $activeSlave.father == -1>> - <<set $activeSlave.origin = "She was the result of a night of hard drugs and unprotected sex after a big score. It took quite abit of alcohol to come to terms with drunkenly knocking yourself up.">> + <<set $activeSlave.origin = "She was the result of a night of hard drugs and unprotected sex after a big score. It took quite a bit of alcohol to come to terms with drunkenly knocking yourself up.">> <<set $activeSlave.customTat = "She has your former gang's sign tattooed on her neck.">> <<elseif $activeSlave.mother == -1>> <<set $activeSlave.origin = "She was the result of a night of hard drugs and unprotected sex after a big score.">> @@ -269,7 +269,7 @@ __You are customizing this slave:__ <<set $activeSlave.origin = "She was another of your late master's servants. She spent nine months in your womb, courtesy of your master.">> <<set $activeSlave.customTat = "She has your master's brand on her left breast.">> <<elseif $activeSlave.father == -1>> - <<set $activeSlave.origin = "She was another of your late master's servants. Your master permited you to knock up her mother.">> + <<set $activeSlave.origin = "She was another of your late master's servants. Your master permitted you to knock up her mother.">> <<set $activeSlave.customTat = "She has your master's brand on her left breast.">> <<elseif $PC.vagina == 1>> <<set $activeSlave.origin = "She was another of your late master's servants. She helped you give birth to his child.">> @@ -283,7 +283,7 @@ __You are customizing this slave:__ <<set $activeSlave.origin = "She was conceived after a successful experiment in hermaphrodite self-reproduction.">> <<set $activeSlave.customTat = "She has your personal symbol tattooed on the back of her neck: it's invisible to the naked eye, but shows up starkly on medical imaging.">> <<elseif $activeSlave.mother == -1>> - <<set $activeSlave.origin = "She was conceived after a botched birth control expirement early in your career.">> + <<set $activeSlave.origin = "She was conceived after a botched birth control experiment early in your career.">> <<set $activeSlave.customTat = "She has your personal symbol tattooed on the back of her neck: it's invisible to the naked eye, but shows up starkly on medical imaging.">> <<elseif $activeSlave.father == -1>> <<set $activeSlave.origin = "She is the product of an affair with a cute nurse who assisted you in more ways than one.">> @@ -320,6 +320,20 @@ __You are customizing this slave:__ <<set $activeSlave.origin = "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.">> <<set $activeSlave.customTat = "She has a small tattoo of a winning hand of cards on the nape of her neck.">> <</if>> + <<elseif $PC.career == "BlackHat">> + <<if $activeSlave.mother == -1 && $activeSlave.father == -1>> + <<set $activeSlave.origin = "She was the result of a night of hard celebration after a big score under the glow of monitors and the calming hum of 750 RPM fans. It took quite abit of alcohol to come to terms with drunkenly knocking yourself up.">> + <<set $activeSlave.customTat = "She has your former digital calling card tattooed on her neck.">> + <<elseif $activeSlave.mother == -1>> + <<set $activeSlave.origin = "She was the result of an intruder brute forcing your firewall, overloading your pleasure sensors, and allowing a corrupted packet to slip by. With a quick wipe of your RAM and cache with some pwerful liquor, you have no idea who planted her in your womb.">> + <<set $activeSlave.customTat = "She has your former digital calling card tattooed on her neck.">> + <<elseif $activeSlave.father == -1>> + <<set $activeSlave.origin = "She was born out of a trade for secure data access. Nine months later, your daughter was born.">> + <<set $activeSlave.customTat = "She has your former digital calling card tattooed on her neck.">> + <<else>> + <<set $activeSlave.origin = "She was a case officer you captured after going dark.">> + <<set $activeSlave.customTat = "She has your former digital calling card tattooed on her neck.">> + <</if>> <<else>> <<set $activeSlave.origin = "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.">> <<set $activeSlave.customTat = "She has the silhouette of an arcology tattooed on the nape of her neck.">> @@ -387,7 +401,7 @@ __You are customizing this slave:__ | [[More customization options]] | <<link "Start over with a random slave">> -<<set $fixedNationality = $nationalities.random()>> +<<set $fixedNationality = hashChoice($nationalities)>> <<StartingGirlsWorkaround>> <<StartingGirlsRefresh>> <<SaleDescription>> @@ -879,7 +893,7 @@ Her nationality is $activeSlave.nationality. <<else>>Gaping. <</if>> </span> -<<link "No vagina">><<set $activeSlave.vagina = -1, $activeSlave.preg = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0>><<replace "#vagina">>//No vagina.//<</replace>><<StartingGirlsCost>><</link>> | +<<link "No vagina">><<set $activeSlave.vagina = -1, $activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.belly = 0,$activeSlave.bellyPreg = 0, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0,$activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0>><<replace "#vagina">>//No vagina.//<</replace>><<StartingGirlsCost>><</link>> | <<link "Virgin">><<set $activeSlave.vagina = 0, $activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1>><<replace "#vagina">>@@.lime;Virgin.@@<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><<StartingGirlsWarnings>><</link>> | <<link "Normal">><<set $activeSlave.vagina = 1, $activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1>><<replace "#vagina">>Normal.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><<StartingGirlsWarnings>><</link>> | <<link "Veteran">><<set $activeSlave.vagina = 2, $activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1>><<replace "#vagina">>Veteran.<</replace>><<StartingGirlsVaginalSkill>><<StartingGirlsCost>><<StartingGirlsWarnings>><</link>> | @@ -936,12 +950,12 @@ Her nationality is $activeSlave.nationality. <<else>>Barren. <</if>> </span> -<<link "Ready to Drop">><<set $activeSlave.preg = 40,$activeSlave.pregType = 1,$activeSlave.belly = 15000,$activeSlave.bellyPreg = 15000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Ready to drop.<</replace>><<StartingGirlsCost>><</link>> | -<<link "Advanced">><<set $activeSlave.preg = 34,$activeSlave.pregType = 1,$activeSlave.belly = 10000,$activeSlave.bellyPreg = 10000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Advanced.<</replace>><<StartingGirlsCost>><</link>> | -<<link "Showing">><<set $activeSlave.preg = 27,$activeSlave.pregType = 1,$activeSlave.belly = 5000,$activeSlave.bellyPreg = 5000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Showing.<</replace>><<StartingGirlsCost>><</link>> | -<<link "Early">><<set $activeSlave.preg = 12,$activeSlave.pregType = 1,$activeSlave.belly = 100,$activeSlave.bellyPreg = 100,$activeSlave.pubertyXX = 1>><<replace "#preg">>Early.<</replace>><<StartingGirlsCost>><</link>> | -<<link "None">><<set $activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0>><<replace "#preg">>None.<</replace>><<StartingGirlsCost>><</link>> | -<<link "Barren">><<set $activeSlave.preg = -2,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0>><<replace "#preg">>Barren.<</replace>><<StartingGirlsCost>><</link>> +<<link "Ready to Drop">><<set $activeSlave.preg = 40,$activeSlave.pregType = 1,$activeSlave.pregWeek = 40,$activeSlave.pregKnown = 1,$activeSlave.belly = 15000,$activeSlave.bellyPreg = 15000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Ready to drop.<</replace>><<StartingGirlsCost>><</link>> | +<<link "Advanced">><<set $activeSlave.preg = 34,$activeSlave.pregType = 1,$activeSlave.pregWeek = 34,$activeSlave.pregKnown = 1,$activeSlave.belly = 10000,$activeSlave.bellyPreg = 10000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Advanced.<</replace>><<StartingGirlsCost>><</link>> | +<<link "Showing">><<set $activeSlave.preg = 27,$activeSlave.pregType = 1,$activeSlave.pregWeek = 27,$activeSlave.pregKnown = 1,$activeSlave.belly = 5000,$activeSlave.bellyPreg = 5000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Showing.<</replace>><<StartingGirlsCost>><</link>> | +<<link "Early">><<set $activeSlave.preg = 12,$activeSlave.pregType = 1,$activeSlave.pregWeek = 12,$activeSlave.pregKnown = 1,$activeSlave.belly = 100,$activeSlave.bellyPreg = 100,$activeSlave.pubertyXX = 1>><<replace "#preg">>Early.<</replace>><<StartingGirlsCost>><</link>> | +<<link "None">><<set $activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0>><<replace "#preg">>None.<</replace>><<run WombFlush($activeSlave)>><<StartingGirlsCost>><</link>> | +<<link "Barren">><<set $activeSlave.preg = -2,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0>><<replace "#preg">>Barren.<</replace>><<run WombFlush($activeSlave)>><<StartingGirlsCost>><</link>> <br>''Puberty:'' <span id="pub"> <<if $activeSlave.pubertyXX == 1>>Postpubescent. @@ -949,7 +963,7 @@ Her nationality is $activeSlave.nationality. <</if>> </span> <<textbox "$activeSlave.pubertyAgeXX" $activeSlave.pubertyAgeXX "Starting Girls">> -<<link "Postpubescent">><<set $activeSlave.pubertyXX = 1>><<replace "#pub">>Postpubescent.<</replace>><<StartingGirlsCost>><</link>> | <<link "Prepubescent">><<set $activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge,$activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0>><<replace "#pub">>Prepubescent.<</replace>><<StartingGirlsCost>><</link>> +<<link "Postpubescent">><<set $activeSlave.pubertyXX = 1>><<replace "#pub">>Postpubescent.<</replace>><<StartingGirlsCost>><</link>> | <<link "Prepubescent">><<set $activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge,$activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0>><<run WombFlush($activeSlave)>><<replace "#pub">>Prepubescent.<</replace>><<StartingGirlsCost>><</link>> <<if $PC.dick == 1>> <br> ''Father:'' <span id="father"> @@ -1458,6 +1472,8 @@ Her nationality is $activeSlave.nationality. @@.green;+5 health@@ and one free level of @@.cyan;combat skill.@@ <<elseif $PC.career == "wealth">> two free levels of @@.cyan;sex skills.@@ + <<elseif $PC.career == "BlackHat">> + one free level of @@.cyan;intelligence.@@ <<else>> @@.hotpink;+10 devotion,@@ one free level of @@.cyan;prostitution skill@@ and @@.cyan;entertainment skill,@@ and two free levels of @@.cyan;sex skills.@@ <</if>>// diff --git a/src/npc/takeoverTarget.tw b/src/npc/takeoverTarget.tw index 8f8f2b1e043746e3b44625a58d1d69d59eb5efca..4e19234fc503d16c79cd77873915858dc426a43c 100644 --- a/src/npc/takeoverTarget.tw +++ b/src/npc/takeoverTarget.tw @@ -2,7 +2,31 @@ <<set $ui = "start", $showBodyMods = 1>> -Before you deploy the <<if $PC.rumor == "wealth">>financial reserves that<<elseif $PC.rumor == "diligence">>carefully constructed plan that<<elseif $PC.rumor == "force">>mercenaries and <<if $continent == "Europe">>//maskirovka//<<else>>cover plan<</if>> that<<elseif $PC.rumor == "social engineering">>clever social manipulation that<<else>>optimistic plan you hope<</if>> will allow you to take over an arcology, you need to select a target. There are a number of vulnerable arcologies that you could <<if $PC.rumor == "wealth">>attempt a hostile takeover of<<elseif $PC.rumor == "diligence">>work to take over<<elseif $PC.rumor == "force">>attack<<elseif $PC.rumor == "social engineering">>infiltrate<<else>>aspire to take over<</if>> with a reasonable chance of success. Free Cities are volatile places, even compared to the troubled state of the rest of the world. There are always arcologies whose owners are on the brink of failure, and you could target one of them. +Before you deploy the +<<if $PC.rumor == "wealth">> + financial reserves that +<<elseif $PC.rumor == "diligence">> + carefully constructed plan that +<<elseif $PC.rumor == "force">> + mercenaries and <<if $continent == "Europe">>//maskirovka//<<else>>cover plan<</if>> that +<<elseif $PC.rumor == "social engineering">> + clever social manipulation that +<<else>> + optimistic plan you hope +<</if>> +will allow you to take over an arcology, you need to select a target. There are a number of vulnerable arcologies that you could +<<if $PC.rumor == "wealth">> + attempt a hostile takeover of +<<elseif $PC.rumor == "diligence">> + work to take over +<<elseif $PC.rumor == "force">> + attack +<<elseif $PC.rumor == "social engineering">> + infiltrate +<<else>> + aspire to take over +<</if>> +with a reasonable chance of success. Free Cities are volatile places, even compared to the troubled state of the rest of the world. There are always arcologies whose owners are on the brink of failure, and you could target one of them. <<if $PC.career == "arcology owner">>(Since you've @@.springgreen;owned an arcology before,@@ you identify more potential target arcologies than a novice might.)<</if>> Alternatively, arcologies are being built every day, and their owners' control is often uncertain. @@.orange;Which arcology will you target?@@ <br><br> diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw index deed9a9488b3b0628a945d8a5ae1f6c40e14d55c..f8f4d2ae3d80708f425c06676f56e9803d194146 100644 --- a/src/npc/uploadSlave.tw +++ b/src/npc/uploadSlave.tw @@ -107,6 +107,8 @@ preg: $activeSlave.preg, pregSource: 0, pregType: $activeSlave.pregType, broodmother: $activeSlave.broodmother, +broodmotherFetuses: $activeSlave.broodmotherFetuses, +broodmotherOnHold: $activeSlave.broodmotherOnHold, broodmotherCountDown: $activeSlave.broodmotherCountDown, labor: $activeSlave.labor, births: $activeSlave.births, diff --git a/src/pregmod/Jquery/CSS.tw b/src/pregmod/Jquery/CSS.tw new file mode 100644 index 0000000000000000000000000000000000000000..47b288174bb6cd331925d8c5804890485fda83c7 --- /dev/null +++ b/src/pregmod/Jquery/CSS.tw @@ -0,0 +1,8 @@ +:: JQuery UI stylesheet [stylesheet] +/*! jQuery UI - v1.12.1 - 2017-05-29 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=ui-darkness&cornerRadiusShadow=8px&offsetLeftShadow=-7px&offsetTopShadow=-7px&thicknessShadow=7px&opacityShadow=60&bgImgOpacityShadow=30&bgTextureShadow=flat&bgColorShadow=cccccc&opacityOverlay=80&bgImgOpacityOverlay=50&bgTextureOverlay=flat&bgColorOverlay=5c5c5c&iconColorError=a83300&fcError=111111&borderColorError=ffb73d&bgImgOpacityError=40&bgTextureError=glass&bgColorError=ffc73d&iconColorHighlight=4b8e0b&fcHighlight=2e7db2&borderColorHighlight=cccccc&bgImgOpacityHighlight=80&bgTextureHighlight=highlight_soft&bgColorHighlight=eeeeee&iconColorActive=222222&fcActive=ffffff&borderColorActive=ffaf0f&bgImgOpacityActive=30&bgTextureActive=inset_soft&bgColorActive=f58400&iconColorHover=ffffff&fcHover=ffffff&borderColorHover=59b4d4&bgImgOpacityHover=40&bgTextureHover=glass&bgColorHover=0078a3&iconColorDefault=cccccc&fcDefault=eeeeee&borderColorDefault=666666&bgImgOpacityDefault=20&bgTextureDefault=glass&bgColorDefault=555555&iconColorContent=cccccc&fcContent=ffffff&borderColorContent=666666&bgImgOpacityContent=25&bgTextureContent=inset_soft&bgColorContent=000000&iconColorHeader=ffffff&fcHeader=ffffff&borderColorHeader=333333&bgImgOpacityHeader=25&bgTextureHeader=gloss_wave&bgColorHeader=333333&cornerRadius=6px&fsDefault=1.1em&fwDefault=bold&ffDefault=Segoe%20UI%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Segoe UI,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Segoe UI,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #666}.ui-widget-content{border:1px solid #666;background:#000 url("images/ui-bg_inset-soft_25_000000_1x100.png") 50% bottom repeat-x;color:#fff}.ui-widget-content a{color:#fff}.ui-widget-header{border:1px solid #333;background:#333 url("images/ui-bg_gloss-wave_25_333333_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #666;background:#555 url("images/ui-bg_glass_20_555555_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eee}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#eee;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #59b4d4;background:#0078a3 url("images/ui-bg_glass_40_0078a3_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#fff;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #ffaf0f;background:#f58400 url("images/ui-bg_inset-soft_30_f58400_1x100.png") 50% 50% repeat-x;font-weight:bold;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#ffaf0f;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #ccc;background:#eee url("images/ui-bg_highlight-soft_80_eeeeee_1x100.png") 50% top repeat-x;color:#2e7db2}.ui-state-checked{border:1px solid #ccc;background:#eee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#2e7db2}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #ffb73d;background:#ffc73d url("images/ui-bg_glass_40_ffc73d_1x400.png") 50% 50% repeat-x;color:#111}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#111}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#111}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_cccccc_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_4b8e0b_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_a83300_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_cccccc_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:6px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:6px}.ui-widget-overlay{background:#5c5c5c;opacity:.8;filter:Alpha(Opacity=80)}.ui-widget-shadow{-webkit-box-shadow:-7px -7px 7px #ccc;box-shadow:-7px -7px 7px #ccc} \ No newline at end of file diff --git a/src/pregmod/Jquery/JS.tw b/src/pregmod/Jquery/JS.tw new file mode 100644 index 0000000000000000000000000000000000000000..11083196707bd337c77f0f07884607402b619530 --- /dev/null +++ b/src/pregmod/Jquery/JS.tw @@ -0,0 +1,16 @@ +:: JQuery UI [script] +(function (window, define, exports) { +/*! jQuery UI - v1.12.1 - 2016-09-14 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),I=e(k.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=I[0],D.top+=I[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+I[0],u[1]+I[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-l,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n) +}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n; +this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) +}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"'")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?" ":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+(X?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())} +},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog +},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1 +},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td> </td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter; +this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); +}).call(window, window); \ No newline at end of file diff --git a/src/pregmod/SecForceEX/SpecialForceBarracksAdditionalColonelInteractions.tw b/src/pregmod/SecForceEX/SpecialForceBarracksAdditionalColonelInteractions.tw new file mode 100644 index 0000000000000000000000000000000000000000..9b9171e5f8bbaf5af7ec0dcf1c5ec885c57052bf --- /dev/null +++ b/src/pregmod/SecForceEX/SpecialForceBarracksAdditionalColonelInteractions.tw @@ -0,0 +1,328 @@ +:: SpecialForceBarracksAdditionalColonelInteractions [nobr] + +<<if $securityForceColonelToken == 0 && $securityForceSexedColonelToken == 0 && $CurrentTradeShowAttendance == 0>> + <br><br> + <span id="result3"> + Where do you want to spend time with The Colonel this week? + <<if $ColonelRelationship >= 200>> + <br><<link "Up on the surface, along with an escort of course.">> + <<set $securityForceColonelToken = 1>> + <<replace "#result3">> + You ask The Colonel if she would like to stretch her legs up on the surface. It doesn't take much effort for her to agree. + <<if $PC.warfare < 10>> + <br>Your complete lack of skill at warfare ensures that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName, <</if>>you need; two full squads of $securityForceName on foot, a squadron of fighters, a small convoy of $securityForceName's ground vehicles. + <<elseif $PC.warfare >= 100 && $PC.career == "mercenary">> + <br>Your mastery of wet work and prior experience in a PMC satisfies The Colonel that you only need one soldier and a single vehicle<<if $Bodyguard != 0>> plus $Bodyguard.slaveName<</if>>. Being able to see and interact with the arcology owner even more directly if they so wish boosts the mood of your citizen's while also giving them an increased opportunity to try gaining favour with you. + <<set $rep += 10, $cash += $EnvCash2>> + <<elseif $PC.warfare >= 100>> + <br>Your mastery of wet work satisfies The Colonel that you only need two soldiers and a single vehicle<<if $Bodyguard != 0>> plus $Bodyguard.slaveName<</if>>. Being able to see and interact with the arcology owner directly if they so wish boosts the mood of your citizens while also giving them the opportunity to try gaining favor with you. + <<set $rep += 5, $cash += $EnvCash3>> + <<elseif $PC.warfare >= 60>> + <br>Your expertise in warfare means that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName <</if>>you need; two full squads of $securityForceName on foot, a squadron of fighters and a large convoy of $securityForceName's ground vehicles. + <<elseif $PC.warfare >= 30>> + <br>As you have some skill in warfare, you only need<<if $Bodyguard != 0>> in addition to $Bodyguard.slaveName<</if>>; two full squads of $securityForceName on foot, a squadron of fighters, a small convoy of $securityForceName's ground vehicles. + <<elseif $PC.warfare >= 10>> + <br>Your F.N.G. tier skill in warfare ensures that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName, <</if>>you need; two full squads of $securityForceName on foot, a squadron of fighters, a small convoy of $securityForceName's ground vehicles. + <</if>> + <<if $arcologies[0].FSPaternalist != "unset">> + Stopping at a paternalist shop, you help The Colonel select some luxurious and relaxing treatments for her main slave. + <<if $PC.slaving < 10>> + Your total lack of slavery skill (which is very unusual and very concerning for an arcology owner), means that you are of little to no help or even a hindrance. + <<elseif $PC.slaving >= 100>> + Your mastery of slaving allows you assist The Colonel greatly. However the shop owner is so impressed by your understanding of slavery that she is more than happy for an endorsement from you. As you are exiting the shop you hear your pre-recorded message which bears the slogan "This is (<<if def $PC.customTitle>>$PC.customTitle <</if>> <<PlayerName>>) and this is my favorite Paternalist shop in $arcologies[0].name." + <<if $arcologies[0].prosperity < 20>> + <<set $arcologies[0].prosperity++>> + <</if>> + <<elseif $PC.slaving >= 60>> + Your expertise in slavery allows you to be more useful. + <<elseif $PC.slaving >= 30>> + Possing some skill you are slightly helpful. + <<elseif $PC.slaving >= 10>> + Your basic skill at slavery, allows you to neither be a hindrance or helpful. + <</if>> + <<else>> + Stopping at a shop. + <</if>> + <br>Soon the entourage heads back to the HQ of $securityForceName. Along the route you see a homeless citizen in great pain. + <<if $PC.medicine < 10>> + Your total lack of medical skill causes the death of the citizen. + <<set $arcologies[0].prosperity -= .25>> + <<elseif $PC.medicine >= 100 && $PC.career == "medicine">> + Your expertise in medicine ensures that the citizen is probably the best they have ever been. They are so grateful that they are more than happy to try and compensate your time. Word quickly spreads of the kindly medically trained arcology owner who took the time to heal a citizen, providing confidence to the rest of the citizens. + <<set $rep += 10, $cash += $EnvCash4>> + <<elseif $PC.medicine >= 100>> + Your expertise in medicine ensures that the citizen is probably the best they have ever been. Word quickly spreads of the kindly arcology owner who took the time to heal a citizen. + <<set $rep += 5>> + <<elseif $PC.medicine >= 60>> + Your mastery of medicine ensures that the citizen's condition is noticeably better. + <<elseif $PC.medicine >= 30>> + Your moderate skill in medicine ensures that the citizen's condition ever so slightly improves. + <<elseif $PC.medicine >= 10>> + Your basic skill in medicine is sufficient only to stabilize the citizen. + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + <</if>> + + <br><<link "In the HQ of $securityForceName.">> + <<replace "#result3">> + <span id="result10"> + What do you want to do with The Colonel in the HQ of $securityForceName? + <<link "Go back">> + <<goto "SFM Barracks">> + <<set $securityForceColonelToken = 0>> + <</link>> + <br><<link "Learn">> + <<replace "#result10">> + <<set $securityForceColonelToken = 1>> + <<link "Go back">> + <<goto "SFM Barracks">> + <<set $securityForceColonelToken = 0>> + <</link>> + <br>"Sure, boss." she says, nodding. "I can use a break from all of this." She laughs. + She can try teaching you a bit about; + <span id="result4"> + <<link "field medicine">> + <<set $PC.medicine += 4>> + <<replace "#result4">> + <br> + <<if $PC.medicine < 10>> + //Hopefully now, you are less likely to cut yourself on the sharp things.// + <<elseif $PC.medicine >= 100>> + //Feel free to play 'doctor' with me any time.// + <<elseif $PC.medicine >= 60>> + //Feel free to apply 'pressure' any where.// + <<elseif $PC.medicine >= 30>> + //Yes that is how you use a tourniquet, good job.// + <<elseif $PC.medicine >= 10>> + //Yes that is a bandage, good job.// + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + , + <<link "trading">> + <<set $PC.trading += 3>> + <<replace "#result4">> + <br> + <<if $PC.trading < 10>> + //Congratulations you have just passed economics 101, "black and red should balance".// + <<elseif $PC.trading >= 100>>// + //Now let's go crash some markets.// + <<elseif $PC.trading >= 60>>// + //Your auditing skills aren't half bad.// + <<elseif $PC.trading >= 30>>// + //Good, you can now spot numerical errors, most of the time.// + <<elseif $PC.trading >= 10>>// + //Now Good job you now know what NPV stands for.// + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + , + <<link "slaving">> + <<set $PC.slaving += 3>> + <<replace "#result4">> + <br> + <<if $PC.slaving < 10>> + //Yes, the rope normally goes around the wrist first and no where near the mouth.// + <<elseif $PC.slaving >= 100>> + //Now should we go out and capture some slaves, master?// + <<elseif $PC.slaving >= 60>> + //Feel feel to tie me up any time.// + <<elseif $PC.slaving >= 30>> + //You can finally tie a knot correctly, most of the time anyway.// + <<elseif $PC.slaving >= 10>> + //Yes, having your slaves die on you is generally considered a bad thing, unless you are into that kind of thing you sick fuck.But who am I to judge.// + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + , + <<link "combat engineering">> + <<set $PC.engineering += 3>> + <<replace "#result4">> + <br> + <<if $PC.engineering < 10>> + //Good job, you know what a hammer now looks like.// + <<elseif $PC.engineering >= 100>> + //Time to for you go out and build something.// + <<elseif $PC.engineering >= 60>> + //Feel free to 'nail' me any time.// + <<elseif $PC.engineering >= 30>> + //Yes that is the correct hammering position.// + <<elseif $PC.engineering >= 10>> + //Hammer meet nail.// + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + , + <<link "hacking">> + <<set $PC.hacking += 3>> + <<replace "#result4">> + <br> + <<if $PC.hacking < 10>> + //Good job you know what pushing the power button does.// + <<elseif $PC.hacking >= 100>> + //Time to for you go out and tinker with a system.// + <<elseif $PC.hacking >= 60>> + //Feel free to 'plug into' me any time.// + <<elseif $PC.hacking >= 30>> + //Correct screw driver holding procedure acquired.// + <<elseif $PC.hacking >= 10>> + //You can now somewhat use a mouse.// + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + , + <<link "general skills">> + <<set $PC.engineering + 2>> + <<set $PC.slaving += 2>> + <<set $PC.trading += 2>> + <<set $PC.warfare += 2>> + <<set $PC.medicine += 2>> + <<set $PC.hacking += 2>> + <<replace "#result4">> + //Hopefully this general education I could provide may be of use.// + <</replace>> + <<set $ColonelRelationship += 1>> + <</link>> + or you can <<link "listen to some war stories.">> + <<set $PC.warfare += 5>> + <<replace "#result4">> + <br> + <<if $PC.warfare < 10>> + //There, now you hopefully can hit the broad side of a barn, most of the time. What am I kidding you still suck.// + <<elseif $PC.warfare >= 100>> + //Now why don't you go deal with those dangerous watermelons?// + <<elseif $PC.warfare >= 60>> + //Feel free to shoot at or up me, any time.// + <<elseif $PC.warfare >= 30>> + //Grouping is slightly better.// + <<elseif $PC.warfare >= 10>> + //Slightly better but you still have a long way to go.// + <</if>> + <<set $ColonelRelationship += 1>> + <</replace>> + <</link>> + </span> + <</replace>> + <</link>> + + <<if $ColonelRelationship >= 300>> + <br><<link "Have some fun">> + <<link "Go back">> + <<goto "SFM Barracks">> + <<set $securityForceSexedColonel = 0, $securityForceColonelToken = 0>> + <</link>> + <<replace "#result10">> + <<set $securityForceSexedColonel = 1, $securityForceColonelToken = 1>> + <span id="result11"> + Where should this fun take place? + <<link "Go back">> + <<goto "SFM Barracks">> + <<set $securityForceSexedColonel = 0, $securityForceColonelToken = 0>> + <</link>> + <br><<link "In private">> + <<replace "#result11">> + <span id="result6"> + Which ofice do you wish to target? + <<link "Go back">> + <<goto "SFM Barracks">> + <</link>> + <br> + <<link "Pussy">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 1, $ColonelRelationship += 1>> + <</link>> + + <br><<link "Ass">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 1, $ColonelRelationship += 1>> + <</link>> + + <br><<link "Both pussy and ass">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 2, $ColonelRelationship += 1>> + <</link>> + + <br><<link "Mouth">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 1, $ColonelRelationship += 1>> + <</link>> + + <br><<link "All three holes">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 3, $ColonelRelationship += 1>> + <</link>> + </span> + <</replace>> + <</link>> + + <br><<link "On The Colonel's throne.">> + <<replace "#result11">> + <span id="result6"> + Which ofice do you wish to target? + <<link "Go back">> + <<goto "SFM Barracks">> + <<set $securityForceSexedColonel = 0, $securityForceColonelToken = 0>> + <</link>> + <br><<link "Pussy">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 1, $ColonelRelationship += 1>> + <</link>> + + <br><<link "Ass">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 1, $ColonelRelationship += 1>> + <</link>> + + <br><<link "Both pussy and ass">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 2, $ColonelRelationship += 1>> + <</link>> + + <br><<link "Mouth">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 1, $ColonelRelationship += 1>> + <</link>> + + <br><<link "All three holes">> + <<replace "#result6">> + <<include "SpecialForceColonelSexDec">> + <</replace>> + <<set $securityForceSexedColonel += 3, $ColonelRelationship += 1>> + <</link>> + </span> + <</replace>> + <</link>> + </span> + <</replace>> + <</link>> + <</if>> + </span> + <</replace>> + <</link>> + </span> +<</if>> \ No newline at end of file diff --git a/src/pregmod/SecForceEX/SpecialForceBarracksCheatEdit.tw b/src/pregmod/SecForceEX/SpecialForceBarracksCheatEdit.tw index bdcbca4e6286dbf9fcb70b0d9bc4c3c30849f9fd..854c2049ac16706a3b29ed0c635de9a951786499 100644 --- a/src/pregmod/SecForceEX/SpecialForceBarracksCheatEdit.tw +++ b/src/pregmod/SecForceEX/SpecialForceBarracksCheatEdit.tw @@ -5,60 +5,60 @@ __Values__ Upgrades: $SFAO/_max -''Barracks:'' <<textbox "$securityForceArcologyUpgrades" $securityForceArcologyUpgrades "SFMSpecialForceBarracksCheatEditBarracks">> +''Barracks:'' <<textbox "$securityForceArcologyUpgrades" $securityForceArcologyUpgrades "SpecialForceBarracksCheatEdit">> <br>Max: _BarracksMax -''FacilitySupport:'' <<textbox "$FacilitySupport" $FacilitySupport "SFMSpecialForceBarracksCheatEditBarracks">> +''FacilitySupport:'' <<textbox "$FacilitySupport" $FacilitySupport "SpecialForceBarracksCheatEdit">> -''Armory:'' <<textbox "$securityForceInfantryPower" $securityForceInfantryPower "SFMSpecialForceBarracksCheatEditBarracks">> +''Armory:'' <<textbox "$securityForceInfantryPower" $securityForceInfantryPower "SpecialForceBarracksCheatEdit">> <br>Max: _ArmouryMax -''Stimulant Lab:'' <<textbox "$securityForceStimulantPower" $securityForceStimulantPower "SFMSpecialForceBarracksCheatEditBarracks">> +''Stimulant Lab:'' <<textbox "$securityForceStimulantPower" $securityForceStimulantPower "SpecialForceBarracksCheatEdit">> <br>Max: _StimulantLabMax <<if _Garage > 0 && $securityForceArcologyUpgrades >= 1>> ''Garage:'' - ''LightAndMedium:'' <<textbox "$securityForceVehiclePower" $securityForceVehiclePower "SFMSpecialForceBarracksCheatEditBarracks">> + ''LightAndMedium:'' <<textbox "$securityForceVehiclePower" $securityForceVehiclePower "SpecialForceBarracksCheatEdit">> <br>Max: _LightAndMediumVehiclesMax - ''HeavyBattleTank:'' <<textbox "$securityForceHeavyBattleTank" $securityForceHeavyBattleTank "SFMSpecialForceBarracksCheatEditBarracks">> + ''HeavyBattleTank:'' <<textbox "$securityForceHeavyBattleTank" $securityForceHeavyBattleTank "SpecialForceBarracksCheatEdit">> <br>Max: _HeavyBattleTankMax <</if>> <<if $securityForceArcologyUpgrades >= 4>> ''Hangar:'' - ''Aircraft:'' <<textbox "$securityForceAircraftPower" $securityForceAircraftPower "SFMSpecialForceBarracksCheatEditBarracks">> + ''Aircraft:'' <<textbox "$securityForceAircraftPower" $securityForceAircraftPower "SpecialForceBarracksCheatEdit">> <br>Max: _AircraftMax - 'Space Plane'': <<textbox "$securityForceSpacePlanePower" $securityForceSpacePlanePower "SFMSpecialForceBarracksCheatEditBarracks">> + ''Space Plane'': <<textbox "$securityForceSpacePlanePower" $securityForceSpacePlanePower "SpecialForceBarracksCheatEdit">> <br>Max: _SpacePlaneMax - ''Fortress Zeppelin:'' <<textbox "$securityForceFortressZeppelin" $securityForceFortressZeppelin "SFMSpecialForceBarracksCheatEditBarracks">> + ''Fortress Zeppelin:'' <<textbox "$securityForceFortressZeppelin" $securityForceFortressZeppelin "SpecialForceBarracksCheatEdit">> <br>Max: _FortressZeppelinMax - ''AC130:'' <<textbox "$securityForceAC130" $securityForceAC130 "SFMSpecialForceBarracksCheatEditBarracks">> + ''AC130:'' <<textbox "$securityForceAC130" $securityForceAC130 "SpecialForceBarracksCheatEdit">> <br>Max: _AC130Max - ''Heavy Transport:'' <<textbox "$securityForceHeavyTransport" $securityForceHeavyTransport "SFMSpecialForceBarracksCheatEditBarracks">> + ''Heavy Transport:'' <<textbox "$securityForceHeavyTransport" $securityForceHeavyTransport "SpecialForceBarracksCheatEdit">> <br>Max: _heavyTransportMax <</if>> - ''DroneBay:'' <<textbox "$securityForceDronePower" $securityForceDronePower "SFMSpecialForceBarracksCheatEditBarracks">> + ''DroneBay:'' <<textbox "$securityForceDronePower" $securityForceDronePower "SpecialForceBarracksCheatEdit">> <br>Max: _DroneBayMax <<if (_LaunchBayNO > 0 || _LaunchBayO > 0) && $securityForceArcologyUpgrades >= 4>> ''LauchBay:'' <<if $terrain != "oceanic" && $terrain != "marine">> - ''Satellite:'' <<textbox "$securityForceSatellitePower" $securityForceSatellitePower "SFMSpecialForceBarracksCheatEditBarracks">> + ''Satellite:'' <<textbox "$securityForceSatellitePower" $securityForceSatellitePower "SpecialForceBarracksCheatEdit">> <br>Max: _SatelliteMax - ''GiantRobot:'' <<textbox "$securityForceGiantRobot" $securityForceGiantRobot "SFMSpecialForceBarracksCheatEditBarracks">> + ''GiantRobot:'' <<textbox "$securityForceGiantRobot" $securityForceGiantRobot "SpecialForceBarracksCheatEdit">> <br>Max: _GiantRobotMax - ''MissileSilo:'' <<textbox "$securityForceMissileSilo" $securityForceMissileSilo "SFMSpecialForceBarracksCheatEditBarracks">> + ''MissileSilo:'' <<textbox "$securityForceMissileSilo" $securityForceMissileSilo "SpecialForceBarracksCheatEdit">> <br>Max: _MissileSiloMax <<elseif $terrain == "oceanic" || $terrain == "marine">> - ''Satellite:'' <<textbox "$securityForceSatellitePower" $securityForceSatellitePower "SFMSpecialForceBarracksCheatEditBarracks">> + ''Satellite:'' <<textbox "$securityForceSatellitePower" $securityForceSatellitePower "SpecialForceBarracksCheatEdit">> <br>Max: _SatelliteMax <</if>> <</if>> @@ -66,12 +66,12 @@ Upgrades: $SFAO/_max <<if $terrain == "oceanic" || $terrain == "marine">> ''Naval Yard:'' - ''AircraftCarrier:'' <<textbox "$securityForceAircraftCarrier" $securityForceAircraftCarrier "SFMSpecialForceBarracksCheatEditBarracks">> + ''AircraftCarrier:'' <<textbox "$securityForceAircraftCarrier" $securityForceAircraftCarrier "SpecialForceBarracksCheatEdit">> <br>Max: _AircraftCarrierMax - ''Submarine:'' <<textbox "$securityForceSubmarine" $securityForceSubmarine "SFMSpecialForceBarracksCheatEditBarracks">> + ''Submarine:'' <<textbox "$securityForceSubmarine" $securityForceSubmarine "SpecialForceBarracksCheatEdit">> <br>Max: _SubmarineMax - ''Amphibious Transport:'' <<textbox "$securityForceHeavyAmphibiousTransport" $securityForceHeavyAmphibiousTransport "SFMSpecialForceBarracksCheatEditBarracks">> + ''Amphibious Transport:'' <<textbox "$securityForceHeavyAmphibiousTransport" $securityForceHeavyAmphibiousTransport "SpecialForceBarracksCheatEdit">> <br>Max: _HeavyAmphibiousTransportMax <</if>> \ No newline at end of file diff --git a/src/pregmod/SecForceEX/SpecialForceBarracksFlavourText.tw b/src/pregmod/SecForceEX/SpecialForceBarracksFlavourText.tw index 431fbd97f4b9f43dfa44c9b6feb0fb70231cb7b7..72fdf1e14761481333a0f673198c1985c63071c5 100644 --- a/src/pregmod/SecForceEX/SpecialForceBarracksFlavourText.tw +++ b/src/pregmod/SecForceEX/SpecialForceBarracksFlavourText.tw @@ -49,7 +49,7 @@ The amenities are staffed by menial slaves, captured by the soldiers on their excursions. They are topless, wearing only utilitarian shorts and steel collars to set them apart from the soldiers, and often shoot fearful looks at the soldiers. The soldiers themselves socialize at the bars, or in large groups around tables, leering at and heavily groping slaves of interest as they pass by. Many of them can be seen entering or leaving the dens occupied by the sexual slaves they have acquired, and often emerge stark naked, sometimes pulling naked slaves out with them for one last servicing in public. A few soldiers stagger around in drunken hazes or drugged-out stupors. <<elseif $securityForceDepravity <= 1.2>> The amenities are staffed by menial slaves, captured by the soldiers on their excursions. They are topless, wearing only a single undergarment and heavy steel collars to set them apart from the soldiers, and often shoot fearful looks at the soldiers. The soldiers occupy themselves primarily with sex, pulling slaves onto benches and fucking them hard in public. Many soldiers stagger around or lie passed out from drug and alcohol abuse. -<<elseif $securityForceDepravity >= 1.5 && $ColonelCore == "Warmonger" || $ColonelCore != "Shell Shocked">> +<<elseif $securityForceDepravity >= 1.5 && ($ColonelCore == "Warmonger" || $ColonelCore != "Shell Shocked")>> The amenities are staffed by menial slaves, captured by the soldiers on their excursions. To a one, they are naked, and are wearing heavy shock collars to force obedience. Most are wild-eyed with fear or dull-eyed from mental collapse, and many others bear marks of abuse. Few of the slaves are here long-term, the depraved pleasures of the soldiers resulting in enormous turnover and loss of 'damaged' stock. The extreme libations of the soldiers are ever-present. Drunken soldiers stagger around everywhere, beating slaves too slow to get out of their way. Others lie sprawled out on the ground, rendered senseless from heavy drug abuse. Some walk around naked, and hold slaves down on the benches scattered around, raping or sodomizing them with their cocks or their personal strap-ons as they desire. In alcoves, some soldier-lover pairs fuck loudly, moaning in pleasure. <<if random(1,100) > 50>> Off to the side, a group of soldiers brutally gangbang a very young slave girl, with one soldier buried balls-deep in her ass, another brutally sawing a barbed strap-on in and out of her pussy, and a third with his cock forced deep down her throat. The slave girl struggles and gags, desperate for breath or relief. @@ -75,8 +75,8 @@ <<if random(1,100) > 50>> _Name raises a hand in greeting and nods as you approach. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave girl kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the girl's head, forcing the girl to service her if she wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body thus gripping the girl even tighter and throws her head back in ecstasy as she orgasms. She lets out a long breath finally releasing the girl, giving her a hard smack and shouting at her to fuck off.<br><br> The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia in with a very large and hard clit peaking out. Beads of moisture are visible, the result of her excitation and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, boss?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?" <<elseif random(1,100) > 50>> - _Name is in no condition initially, to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, boss," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.<br><br> She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, boss," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "excellent" she laughs. "I have to say, it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So - I'm assuming you want something?" -<<elseif random(1,100) > 70 && $securityForceDepravity >= 1.5>> + _Name is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, boss," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.<br><br> She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, boss," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "excellent" she laughs. "I have to say, it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So - I'm assuming you want something?" +<<elseif random(1,100) > 70 && $securityForceDepravity >= 1.5 && ($ColonelCore == "cruel")>> _Name is relaxing on her couch stark naked, greeting you with a raised hand. Between her tightly clenched legs is a slave girl being forced to eat her out. "Hey, boss, what's -" she breaks off as a flash of pain crosses her features. "Fucking bitch!" she exclaims, pulling her legs away and punching the slave girl in the face. She pushes the girl to the ground, straddling her then begins hitting. You hear one crunch after another as The Colonel's powerful blows shatter the girl's face. She hisses from between clenched teeth, each word accompanied by a brutal punch. "How. Many. Fucking. Times. Have. I. Told. You. To. Watch. Your. Fucking. Teeth. On. My. Fucking. Clit!" She leans back, exhaling heavily. Before leaning back down to grip apply pressure onto the girl's neck with her powerful hands. Wordlessly, she increases the pressure and soon the girl begins to turn blue as she struggles to draw breath. Eventually her struggles weaken and then finally, end.<br><br> The Colonel relaxes her grip then wipes her brow, clearing away the sweat from her exertion. Finally rising from the girl's body, relaxing back on the couch and putting her feet back up on the table. "Sorry about that boss," she says, shrugging. "So many of these bitches we pick up from the outside don't understand that they have to behave." Shaking her head in frustration, "Now I need to find another one. But that's not your problem, you're here to talk business. So, what's up?" <<else>> _Name is topless while reviewing the particulars of her unit on a tablet as you approach. She raises a hand in greeting. "Hey boss," she says, noticing you looking at her chest. She laughs. "Nice, aren't they? But they're not for you or them." She throws a thumb at the plaza around her. "You're down here for a reason, though. What can I do for you?" diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw old mode 100755 new mode 100644 index 8c6e7b33bb34bc8bd2311ef372cc45e44f9bc3c9..57b6f194c7468c68455089d45a27bd8c5536f372 --- a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw +++ b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw @@ -25,21 +25,21 @@ <<case 10>> Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. <<case 11>> - Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, dual barreled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. + Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, double-barrelled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. <<case 12>> - Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri barreled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. + Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri-barrelled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. <<case 13>> - Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri barreled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. + Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri-barrelled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network. <<case 14>> - Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri barreled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. - <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network.<br>'Borowed' old world designs for a kill house. + Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri-barrelled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. + <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network. <br>'Borrowed' old world designs for a kill house. <<case 15>> - Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri barreled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. - <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network.<br>Added electronics to the kill house. + Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri-barrelled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. + <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network. <br>Added electronics to the kill house. <<case 16>> - Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri barreled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. - <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network.<br>Added VR support to the kill house. + Has (mostly) taken on the appearance of a professional military installation, with clearly defined soldier and logistical areas, dedicated support and recreation facilities, and advanced command and control apparatus. As final measures, quad heavy, long range, tri-barrelled electromagnetic railgun artillery 406 cm pieces have been installed in fortified EMP/jammer resistant casemates along the aerial launch pads and a powerful arcology wide electromagnetic forcefield has been installed, giving $securityForceName an immense superiority in local firepower. + <br>After pooling resources between several departmental R&D teams, $securityForceName now has a faster and much more efficient custom network. <br>Added VR support to the kill house. <</switch>> <br><br> @@ -68,7 +68,7 @@ */ <br><br> - ''Armory:'' + ''armoury:'' <<switch $securityForceInfantryPower>> <<case 0>> Is well-stocked with high-quality personal weapons and light armour, but contains little in the way of exceptional armament. @@ -108,22 +108,22 @@ <<case 2>> Replaced the soldiers' stimulants with methamphetamine-based variants, greatly increasing their alertness and aggressiveness when under their influence. <<case 3>> - Improved and concentrated the methamphetamine-based stimulants, and has also begun providing soldiers with phenylcyclidine-based dissociatives, allowing the soldiers to excuse their actions in the field and reducing any reluctance to follow severe orders. + Improved and concentrated the methamphetamine-based stimulants, and has also begun providing soldiers with phencyclidine-based dissociatives, allowing the soldiers to excuse their actions in the field and reducing any reluctance to follow severe orders. <<case 4>> - Has further refined the formulas of the methamphetamine-based stimulants and phenylcyclidine-based dissociatives, and has also begun providing tryptamine-based psychedelics to the soldiers, allowing them to avoid traumatic stress in the field. + Has further refined the formulas of the methamphetamine-based stimulants and phencyclidine-based dissociatives, and has also begun providing tryptamine-based psychedelics to the soldiers, allowing them to avoid traumatic stress in the field. <<case 5>> - Has maximally refined the formulas of the methamphetamine-based stimulants, phenylcyclidine-based dissociatives, and tryptamine-based psychedelics, increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). + Has maximally refined the formulas of the methamphetamine-based stimulants, phencyclidine-based dissociatives, and tryptamine-based psychedelics, increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). <<case 6>> - Has slightly refined the formulas of higher purity methamphetamine-based stimulants, phenylcyclidine-based dissociatives, and tryptamine-based psychedelics, increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). + Has slightly refined the formulas of higher purity methamphetamine-based stimulants, phencyclidine-based dissociatives, and tryptamine-based psychedelics, increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). <<case 7>> - Has maximally refined the formulas of higher purity methamphetamine-based stimulants, phenylcyclidine-based dissociatives, and tryptamine-based psychedelics, increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). + Has maximally refined the formulas of higher purity methamphetamine-based stimulants, phencyclidine-based dissociatives, and tryptamine-based psychedelics, increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). <<case 8>> - Has mixed the higher purity methamphetamine-based stimulants, phenylcyclidine-based dissociatives, and tryptamine-based psychedelics into a single dose further increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). However side effects may include (no particular order): Dissociative Identity Disorder , severe clincal depresssion, unstopabble vomitting, extreme paranoia, PTSD, finally total organ failfure. Recommended by 9/10 doctors*. <br>* Only the doctors of $securityForceName were consulted to ensure a completely unbiased result. + Has mixed the higher purity methamphetamine-based stimulants, phencyclidine-based dissociatives, and tryptamine-based psychedelics into a single dose further increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). However side effects may include (no particular order): Dissociative Identity Disorder , severe clinical depression, unstoppable vomiting, extreme paranoia, PTSD, finally total organ failure. Recommended by 9/10 doctors*. <br>* Only the doctors of $securityForceName were consulted to ensure a completely unbiased result. <<case 9>> - Has mixed the higher purity methamphetamine-based stimulants, phenylcyclidine-based dissociatives, and tryptamine-based psychedelics into a single dose further increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). Potentinal side effects have been reduced slightly to "only mildly" severe ones: Dissociative Identity Disorder , severe clincal depresssion, unstopabble vomitting, extreme paranoia and PTSD. Now recommended by 15/10 doctors*. <br>* Only the doctors of $securityForceName were consulted to ensure a completely unbiased result. + Has mixed the higher purity methamphetamine-based stimulants, phencyclidine-based dissociatives, and tryptamine-based psychedelics into a single dose further increasing their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed). Potential side effects have been reduced slightly to “only mildly†severe ones: Dissociative Identity Disorder , severe clinical depression, unstoppable vomiting, extreme paranoia and PTSD. Now recommended by 15/10 doctors*. <br>* Only the doctors of $securityForceName were consulted to ensure a completely unbiased result. <<case 10>> - Has increased the single dose strength of the mixture of higher purity methamphetamine-based stimulants, phenylcyclidine-based dissociatives, and tryptamine-based psychedelics which further increases their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed) at the cost of lengthing the effects. - <br>Potentinal side effects have been reduced slightly to "only mildly" severe ones: Dissociative Identity Disorder , severe clincal depresssion, unstopabble vomitting, extreme paranoia and PTSD. Now recommended by 15/10 doctors*. <br>* Only the doctors of $securityForceName were consulted to ensure a completely unbiased result. + Has increased the single dose strength of the mixture of higher purity methamphetamine-based stimulants, phencyclidine-based dissociatives, and tryptamine-based psychedelics which further increases their effectiveness in all aspects and ensuring that the soldiers of $securityForceName go into combat wired, aggressive, and euphoric (if needed) at the cost of lengthening the effects. + <br>Potentinal side effects have been reduced slightly to "only mildly" severe ones: Dissociative Identity Disorder , severe clinical depression, unstoppable vomiting, extreme paranoia and PTSD. Now recommended by 15/10 doctors*. <br>* Only the doctors of $securityForceName were consulted to ensure a completely unbiased result. <</switch>> <<if _Garage > 0 && $securityForceArcologyUpgrades >= 1>> @@ -156,9 +156,9 @@ <<case 1>> A basic heavy battle tank has been 'borrowed' from the old world. <<case 2>> - Modernised the armor. + Modernised the armour. <<case 3>> - Modernised the armor and upgradeded the main gun to a 356 cm barrel. + Modernised the armour and upgraded the main gun to a 356 cm barrel. <</switch>> <</if>> <</if>> @@ -170,68 +170,68 @@ ''Airforce:'' <<switch $securityForceAircraftPower>> <<case 0>> - Primarily consists of light transport VTOLs equipped with non-lethal weaponry. + Primarily consists of light transport VTOL's equipped with non-lethal weaponry. <<case 1>> - Upgraded light transport VTOLs with additional fire-power and lethal weaponry. + Upgraded light transport VTOL's with additional fire-power and lethal weaponry. <<case 2>> - The VTOLs have been upgraded to higher-capacity variants with heavier weaponry. + The VTOL's have been upgraded to higher-capacity variants with heavier weaponry. <<case 3>> - The medium transport VTOLs have been upgraded with enhanced armour and customized cargo compartments to better transport captured stock. + The medium transport VTOL's have been upgraded with enhanced armour and customized cargo compartments to better transport captured stock. <<case 4>> - Acquired specialized attack VTOLs to complement and escort its advanced transport fleet, as well as to provide close air support. + Acquired specialized attack VTOL's to complement and escort its advanced transport fleet, as well as to provide close air support. <<case 5>> - Upgraded its attack VTOLs for enhanced lethality, and further improved the armour and armament of its transport VTOLs, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. + Upgraded its attack VTOL's for enhanced lethality, and further improved the armour and armament of its transport VTOL's, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. <<case 6>> - Upgraded its attack VTOLs for enhanced lethality/speed, and further improved the armour and armament of its transport VTOLs, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. + Upgraded its attack VTOL's for enhanced lethality/speed, and further improved the armour and armament of its transport VTOL's, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. <<case 7>> - Upgraded its attack VTOLs for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOLs, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. + Upgraded its attack VTOL's for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOL's, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. <<case 8>> - Upgraded its attack VTOLs for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOLs, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area.<br>Also It now possesses a basic old world bomber. + Upgraded its attack VTOL's for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOL's, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. <br>Also It now possesses a basic old world bomber. <<case 9>> - Upgraded its attack VTOLs for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOLs, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area.<br>Improved the bomber's engines. + Upgraded its attack VTOL's for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOL's, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. <br>Improved the bomber's engines. <<case 10>> - Upgraded its attack VTOLs for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOLs, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area.<br>Improved the bomber's engines and armour. + Upgraded its attack VTOL's for enhanced lethality/speed/armour, and further improved the armour and armament of its transport VTOL's, ensuring that the airfleet of $securityForceName is amongst the most capable still in operation in the area. <br>Improved the bomber's engines and armour. <</switch>> <<if $securityForceSpacePlanePower > 0>> <br>''Space Plane:'' <<switch $securityForceSpacePlanePower>> <<case 1>> - A basic two engine SpacePlane has been 'borrowed' from the old world. + A basic twin engine space plane has been 'borrowed' from the old world. <<case 2>> Upgraded the shielding, reducing both potential heat damage and radar signature. <<case 3>> - Upgraded the shielding, reducing both potential heat damage and radar signature,also mounted another engine on top of the tail. + Upgraded the shielding, reducing both potential heat damage and radar signature, also mounted another engine on top of the tail. <<case 4>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail and modernized the electronics. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail and modernized the electronics. <<case 5>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail,modernized the electronics in addition to the fuel lines to increase efficiency. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail, modernized the electronics in addition to the fuel lines to increase efficiency. <<case 6>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. <<case 7>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel.Reduced the weight and reworked the body to reduce drag. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. Reduced the weight and reworked the body to reduce drag. <<case 8>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel.Reduced the weight and reworked the body to reduce drag.Increased the crew comfort and life support systems to increase operational time. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. Reduced the weight and reworked the body to reduce drag. Increased the crew comfort and life support systems to increase operational time. <<case 9>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel.Reduced the weight and reworked the body to reduce drag.Increased the crew comfort and life support systems to increase operational time.Added an additional engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. Reduced the weight and reworked the body to reduce drag. Increased the crew comfort and life support systems to increase operational time. Added an engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable. <<case 10>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel.Reduced the weight and reworked the body to reduce drag.Increased the crew comfort and life support systems to increase operational time.Added an additional engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable.Replaced the skin of $securityForceName Space Plane with a basic optical illusion kit. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. Reduced the weight and reworked the body to reduce drag. Increased the crew comfort and life support systems to increase operational time. Added an engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable. Replaced the skin with a basic optical illusion kit. <<case 11>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel.Reduced the weight and reworked the body to reduce drag.Increased the crew comfort and life support systems to increase operational time.Added an additional engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable.Replaced the skin of $securityForceName Space Plane with an advanced optical illusion kit. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. Reduced the weight and reworked the body to reduce drag. Increased the crew comfort and life support systems to increase operational time. Added an engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable. Replaced the skin with an advanced optical illusion kit. <<case 12>> - Upgraded the shielding, reducing both potential heat damage and radar signature,mounted another engine on top of the tail.Modernized; the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel.Reduced the weight and reworked the body to reduce drag.Increased the crew comfort and life support systems to increase operational time.Added VTOL capabilites into an additional engine per wing which greatly increases acceleration and raises the top speed to mach 15, making the Space Plane of $securityForceName untouchable.Replaced the skin of $securityForceName Space Plane with an advanced optical illusion kit. + Upgraded the shielding, reducing both potential heat damage and radar signature, mounted another engine on top of the tail. Modernized the electronics in addition to the fuel lines to increase efficiency and the engines to allow for more efficient fuel. Reduced the weight and reworked the body to reduce drag. Increased the crew comfort and life support systems to increase operational time. Added VTOL capabilities into an additional engine per wing which greatly increases acceleration and raises the top speed to Mach 15, making the Space Plane of $securityForceName untouchable. Replaced the skin with an advanced optical illusion kit. <</switch>> <</if>> <<if $securityForceFortressZeppelin > 0>> <br>''Fortress Zeppelin:'' <<switch $securityForceFortressZeppelin>> <<case 1>> - A basic fortress zeppelin has been 'borrowed' from the old world. + A basic fortress Zeppelin has been 'borrowed' from the old world. <<case 2>> - Modernized the armor. + Modernized the armour. <<case 3>> - Modernized the armor and weaponry. + Modernized the armour and weaponry. <<case 4>> - Modernized the armor and weaponry. Improved the speaker system. + Modernized the armour and weaponry. Improved the speaker system. <</switch>> <</if>> <<if $securityForceAC130 > 0>> @@ -240,15 +240,15 @@ <<case 1>> A basic AC-130 has been 'borrowed' from the old world. <<case 2>> - Modernized the armor. + Modernized the armour. <<case 3>> - Modernized the armor and weaponry. + Modernized the armour and weaponry. <<case 4>> - Modernized the armor, weaponry and electronics. + Modernized the armour, weaponry and electronics. <<case 5>> - Modernized the armor, weaponry, electronics and crew seating. + Modernized the armour, weaponry, electronics and crew seating. <<case 6>> - Modernized the armor, weaponry, electronics and crew seating. Increased the speed and moverability. + Modernized the armour, weaponry, electronics and crew seating. Increased the speed and moverability. <</switch>> <</if>> <<if $securityForceHeavyTransport > 0>> @@ -257,11 +257,11 @@ <<case 1>> A basic heavy transport has been 'borrowed' from the old world. <<case 2>> - Modernized the armor. + Modernized the armour. <<case 3>> - Modernized the armor and engines. + Modernized the armour and engines. <<case 4>> - Modernized the armor and engines. Replaced the ballistic gun mounts with electromagnetic ones. + Modernized the armour and engines. Replaced the ballistic gun mounts with electromagnetic ones. <</switch>> <</if>> <</if>> @@ -281,7 +281,7 @@ <<case 4>> Has acted to upgrade both the standard and support models of drones to carry basic electromagnetic weaponry, improving their overall combat effectiveness. <<case 5>> - Improved the electromagnetic armament of it's drones by mounting both miniaturized and heavy railguns on them. In addition further sourcing numerous models of drones for roles as diverse as reconnaissance, independent slave capture and swarming tactics. + Improved the electromagnetic armament of its drones by mounting both miniaturized and heavy railguns on them. In addition further sourcing numerous models of drones for roles as diverse as reconnaissance, independent slave capture and swarming tactics. <<case 6>> Acquired even lighter advanced armoured combat Drones with electromagnetic weaponry, advanced heavy Drones with electromagnetic support weaponry along with specialized Drones for reconnaissance, capture, and swarm tactics. <<case 7>> @@ -304,39 +304,41 @@ <<case 3>> Modernized the electronics, wiring and circuitry. <<case 4>> - Modernized the electronics, wiring and circuitry.Installed a basic localized communications jammer to the Satellite (excludes your own frequencies with little to no leeway) that will "slightly" anger locals until it is deactivated. + Modernized the electronics, wiring and circuitry. Installed a basic localized communications jammer to the Satellite (excludes your own frequencies with little to no leeway) that will "slightly" anger locals until it is deactivated. <<case 5>> - Modernized the electronics, wiring and circuitry.An advanced communications jammer is installed in the Satellite, increasing the AO localization, reducing the number of effected equipment. + Modernized the electronics, wiring and circuitry. An advanced communications jammer is installed in the Satellite, increasing the AO localization, reducing the number of affected equipment. <<case 6>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer power by 25% (now can damage effected equipment). + Modernized the electronics, wiring and circuitry. Boosted the advanced comms jammer power by 25% (now can damage affected equipment). <<case 7>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment). + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment). <<case 8>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment).The Satellite is now equipped with a basic EMP generator (advanced EMP hardening was applied before the insulation and activation) will "slightly" anger locals until it is deactivated. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment). The Satellite is now equipped with a basic EMP generator (advanced EMP hardening was applied before the insulation and activation) that will "slightly" anger locals until it is deactivated. <<case 9>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment).The Satellite is now equipped with an advanced EMP generator by, increasing the AO localization which reduces the quantity of effected equipment. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment). The Satellite is now equipped with an advanced EMP generator by, increasing the AO localization which reduces the quantity of affected equipment. <<case 10>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 25% (now can damage effected equipment). + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 25% (now can damage affected equipment). <<case 11>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment). + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). <<case 12>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to be able to shoot a concentrated beam of pure energy that is able to level an entire city block. It required overhauling the battery system and shielding. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to be able to shoot a concentrated beam of pure energy that is able to level an entire city block. It required overhauling the battery system and shielding. <<case 13>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to focus the bean enough to level a suburb. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to focus the beam enough to level a suburb. <<case 14>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to focus the beam enough to level a box of houses. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to focus the beam enough to level a block of houses. <<case 15>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to focus the beam enough to level a single house. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to focus the beam enough to level a single house. <<case 16>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to focus the beam enough to level 366 cm. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to focus the beam enough to level 366 cm. <<case 17>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to focus the beam enough to level 30 cm. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to focus the beam enough to level 30 cm. <<case 18>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to focus the beam enough to level 15 cm. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to focus the beam enough to level 15 cm. <<case 19>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to switch the 15 cm wide beam from lazer to nanites. + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to switch the 15 cm wide beam from laser to nanites. <<case 20>> - Modernized the electronics, wiring and circuitry.Boosted the advanced comms jammer's power by 50% (now can destroy effected equipment) and the output of the advanced EMP generator by 50% (now can destroy effected equipment).Provided R&D funds to switch the 15 cm wide beam from lazer to nanites and allow the bleam to be split (if needed) + Modernized the electronics, wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to switch the 15 cm wide beam from laser to nanites and allow the beam to be split (if needed). + <<case 21>> + Modernized the electronics (in addition to overclocking), wiring and circuitry. Boosted the power of the advanced comms jammer by 50% (now can destroy affected equipment) and the output of the advanced EMP generator by 50% (now can destroy affected equipment). Provided R&D funds to switch the 15 cm wide beam from laser to nanites and allow the beam to be split (if needed). <</switch>> <</if>> <<if $securityForceGiantRobot > 0>> @@ -349,29 +351,31 @@ <<case 3>> Upgraded the wiring, circuitry and power efficiency. <<case 4>> - Upgraded the wiring, circuitry and power efficiency.Reduced the weight. + Upgraded the wiring, circuitry and power efficiency. Reduced the weight. <<case 5>> - Upgraded the wiring, circuitry, power efficiency and battery capacity.Reduced the weight. + Upgraded the wiring, circuitry, power efficiency and battery capacity. Reduced the weight. <<case 6>> - Upgraded the wiring, circuitry, power efficiency,battery capacity and armour.Reduced the weight. + Upgraded the wiring, circuitry, power efficiency, battery capacity and armour. Reduced the weight. <<case 7>> Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. <<case 8>> Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons and the amount of pilots to two via a synced neural link. <<case 9>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. <<case 10>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time.Replaced the skin of $securityForceName's giant robot with a basic optical illusion kit. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with a basic optical illusion kit. <<case 11>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time.Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles plus a massive long sword in addition to quad 356 cm back mounted electromagnetic cannons. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. <<case 12>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time.Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. <<case 13>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time.Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilites. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilities. <<case 14>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons and a massive wrist mounted shield. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time.Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilites. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons and a massive wrist mounted shield. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilities. <<case 15>> - Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons,a massive wrist mounted shield and eletric fists. Increased the number of pilots to two via a synced neural link.Improved the life support systems, allowing for longer operational time.Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilites. + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons, a massive wrist mounted shield and electric fists. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilities. + <<case 16>> + Upgraded the wiring, circuitry, power efficiency, battery capacity, armour and weapons to include heat seeking missiles, a massive long sword, quad 356 cm back mounted nanite rather than electromagnetic cannons, a massive wrist mounted shield and electric fists. Increased the number of pilots to two via a synced neural link. Improved the life support systems, allowing for longer operational time. Replaced the skin of $securityForceName's giant robot with an advanced optical illusion kit. Added hover capabilities. Overclocked the movement systems allowing for greater mobility. <</switch>> <</if>> <<if $securityForceMissileSilo > 0>> @@ -399,29 +403,31 @@ Modernized the electronics. <<case 3>> Modernized the electronics and weaponry. - <<case4>> + <<case 4>> Modernized the electronics, weaponry and armour. <<case 5>> Modernized the electronics, weaponry and armour. Added an EMP generator. <<case 6>> - Modernized the electronics, weaponry and armour. Added an EMP generator and lazer designator. + Modernized the electronics, weaponry and armour. Added an EMP generator and laser designator. <</switch>> <</if>> <<if $securityForceSubmarine > 0>> <br>''Submarine:'' <<switch $securityForceSubmarine>> <<case 1>> - A basic submarine has been 'borrowed' from the old world. + A basic submarine has been 'borrowed' from the old world. <<case 2>> - Modernized the engines for speed. + Modernized the engines for speed. <<case 3>> - Modernized the engines for speed and silence. + Modernized the engines for speed and silence. <<case 4>> - Modernized the engines for speed and silence.Upgraded the hull for silence. + Modernized the engines for speed and silence. Upgraded the hull for silence. <<case 5>> - Modernized the engines for speed and silence.Upgraded the hull for silence and weaponry. + Modernized the engines for speed and silence. Upgraded the hull for silence and weaponry. <<case 6>> - Modernized the engines for speed and silence.Upgraded the hull for silence, weaponry and air scrubbers, allowing it to stay submerged for longer. + Modernized the engines for speed and silence. Upgraded the hull for silence, weaponry and air scrubbers, allowing it to stay submerged for longer. + <<case 7>> + Modernized the engines for speed and silence. Upgraded the hull for silence, weaponry and air scrubbers, allowing it to stay submerged for longer. Overclocked the sonar, increasing its ping speed. <</switch>> <</if>> <<if $securityForceHeavyAmphibiousTransport > 0>> @@ -430,15 +436,15 @@ <<case 1>> A basic heavy amphibious transport has been 'borrowed' from the old world. <<case 2>> - Modernized the armor. + Modernized the armour. <<case 3>> - Modernized the armor and speed. + Modernized the armour and speed. <<case 4>> - Modernized the armor and speed. Added miniaturized railguns in all four corners. + Modernized the armour and speed. Added miniaturized railguns in all four corners. <<case 5>> - Modernized the armor and speed. Added miniaturized railguns in all four corners and a lazer designator in the midle. + Modernized the armour and speed. Added miniaturized railguns in all four corners and a laser designator in the middle. <<case 6>> - Modernized the armor and speed. Replaced the corner miniaturized railguns with nanite ones while keeping the lazer designator in the midle. + Modernized the armour and speed. Replaced the corner miniaturized railguns with nanite ones while keeping the laser designator in the middle. <</switch>> <</if>> -<</if>> +<</if>> \ No newline at end of file diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw old mode 100755 new mode 100644 index d4d810f3d368f01d8f45f022787611db109bcd61..c6b18ddafd3379ab948f8956b626a1c1ff7de4be --- a/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw +++ b/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw @@ -1,63 +1,63 @@ -:: SpecialForceUpgradeOptions - -<<nobr>> +:: SpecialForceUpgradeOptions [nobr] +<<set _costDebuff = 1>> +<<HSM>> <<if ($SFAO < _max) && $securityForceUpgradeToken == 0>> <span id="resultX"> - <br><br>Which facility or equipment do you wish _Name to upgrade this week? + <br>Which facility or equipment do you wish _Name to upgrade this week? <<if _Barracks < 1 || _Barracks < 2 || _Barracks < 4>><br> More barracks upgrades are required to unlock further options.<</if>> <<if $securityForceUpgradeToken == 0 && _Barracks < 5>> <br><<link "Barracks">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "Expanding the facilities here should help us support more cool shit." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= 100000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= 100000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(100000*$Env)>> // + <</link>> // Costs <<print cashFormat(100000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceArcologyUpgrades < _BarracksMax && $TierTwoUnlock == 1>> <<switch _Barracks>> <<case 5>> - <<set _arcCost = 15000000>> + <<set _arcCost = 1500000>> <<case 6>> - <<set _arcCost = 20000000>> + <<set _arcCost = 2000000>> <<case 7>> - <<set _arcCost = 35000000>> + <<set _arcCost = 3500000>> <<case 8>> - <<set _arcCost = 55000000>> + <<set _arcCost = 5500000>> <<case 9>> - <<set _arcCost = 125000000>> + <<set _arcCost = 1250000>> <<case 10>> - <<set _arcCost = 350000000>> + <<set _arcCost = 3500000>> <<case 11>> - <<set _arcCost = 600000000>> + <<set _arcCost = 6000000>> <<case 12>> - <<set _arcCost = 2500000000>> + <<set _arcCost = 25000000>> <<case 13>> - <<set _arcCost = 5000000000>> + <<set _arcCost = 50000000>> <<case 14>> - <<set _arcCost = 6000000000>> + <<set _arcCost = 60000000>> <<case 15>> - <<set _arcCost = 16000000000>> + <<set _arcCost = 95000000>> <</switch>> <br><<link "Barracks">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "Expanding the facilities here should help us support more cool shit." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= _arcCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= _arcCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_arcCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_arcCost*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceArcologyUpgrades == 12 && _Armoury >= 11 && _StimulantLab >= 7 && $securityForceVehiclePower >= 7 && $securityForceAircraftPower >= 8 && $securityForceSpacePlanePower >= 11 && $securityForceFortressZeppelin >= 3 && $securityForceAC130 >= 5 && _DroneBay >= 6 && $securityForceSatellitePower >= 16>> <br><<link "Barracks">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "Expanding the facilities here should help us support more cool shit." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= _arcCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= _arcCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_arcCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_arcCost*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceArcologyUpgrades == 13>> <br><<link "Barracks">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "Expanding the facilities here should help us support more cool shit." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= _arcCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceArcologyUpgrades++, $cash -= _arcCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_arcCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_arcCost*$Env*_costDebuff)>> // <</if>> <<if _Barracks == _BarracksMax>> <br>//$securityForceName has fully upgraded the barracks to support it's activities// @@ -66,28 +66,28 @@ /* <<if $securityForceUpgradeToken == 0 && $TierTwoUnlock == 1 && $FacilitySupport == 0>> <br><<link "Facility Support">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "Creating a specialised area for any slaves you send to assist us will benefical to everyone." - <<set $securityForceUpgradeToken = 1, $FacilitySupport++, $cash -= Math.trunc(150000000*(Math.max(0.99,$SFAO)/10)*$Env)>> + <<set $securityForceUpgradeToken = 1, $FacilitySupport++, $cash -= Math.trunc(15000000*(Math.max(0.99,$SFAO)/10)*$Env*_costDebuff)>> <</replace>> - <</link>> // Costs <<print cashFormat(Math.trunc(150000000*(Math.max(0.99,$SFAO)/10)*$Env))>> // + <</link>> // Costs <<print cashFormat(Math.trunc(15000000*(Math.max(0.99,$SFAO)/10)*$Env)*_costDebuff)>> // <</if>> */ <<if $securityForceUpgradeToken == 0 && _Armoury < 5>> <br><<link "Armoury">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "The boys'll like having some new guns and armour to help them out there." She laughs. "Don't think the poor bastards they'll be shooting will thank you though." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceInfantryPower++, $cash -= 40000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceInfantryPower++, $cash -= 40000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(40000*$Env)>> // + <</link>> // Costs <<print cashFormat(40000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && _Armoury < _ArmouryMax && $TierTwoUnlock == 1>> <br><<link "Armoury">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "The boys'll like having some new guns and armour to help them out there." She laughs. "Don't think the poor bastards they'll be shooting will thank you though." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceInfantryPower++, $cash -= 4500000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceInfantryPower++, $cash -= 450000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(4500000*$Env)>> // + <</link>> // Costs <<print cashFormat(450000*$Env*_costDebuff)>> // <</if>> <<if _Armoury == _ArmouryMax>> <br>//$securityForceName has fully upgraded the armoury to support it's activities.// @@ -95,72 +95,72 @@ <<if $securityForceUpgradeToken == 0 && _StimulantLab < 5>> <br><<link "Stimulant Lab">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "The boys are going to like hearing that they'll be getting new stims. Some of them can't get enough." She laughs, sweeping her arm at a corner of the throne, where dozens of empty stimulant injectors are piled. "I might be one of them. Either way, the fucks out there aren't going to like us once we're on the new juice." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceStimulantPower++, $cash -= 40000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceStimulantPower++, $cash -= 40000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(40000*$Env)>> // + <</link>> // Costs <<print cashFormat(40000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && _StimulantLab < _StimulantLabMax && $TierTwoUnlock == 1>> <<switch _StimulantLab>> <<case 5>> - <<set _drugCost = 1265000>> + <<set _drugCost = 126500>> <<case 6>> - <<set _drugCost = 2265000>> + <<set _drugCost = 226500>> <<case 7>> - <<set _drugCost = 200000000000>> + <<set _drugCost = 20000000>> <<case 8>> - <<set _drugCost = 250000000000>> + <<set _drugCost = 25000000>> <<case 9>> - <<set _drugCost = 350000000000>> + <<set _drugCost = 35000000>> <</switch>> <br><<link "Stimulant Lab">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "The boys are going to like hearing that they'll be getting new stims. Some of them can't get enough." She laughs, sweeping her arm at a corner of the throne, where dozens of empty stimulant injectors are piled. "I might be one of them. Either way, the fucks out there aren't going to like us once we're on the new juice." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceStimulantPower++, $cash -= _drugCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceStimulantPower++, $cash -= _drugCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_drugCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_drugCost*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && _StimulantLab == 7 && _Armoury >= 11 && $securityForceVehiclePower >= 7 && $securityForceAircraftPower >= 8 && $securityForceSpacePlanePower >= 11 && $securityForceFortressZeppelin >= 3 && $securityForceAC130 >= 5 && _DroneBay >= 6 && $securityForceSatellitePower >= 16 && _Barracks >= 13>> <br><<link "Stimulant Lab">> - <<replace "#resultX">><br><br> + <<replace "#resultX">><br> "Sure, boss." she says, nodding. "The boys are going to like hearing that they'll be getting new stims. Some of them can't get enough." She laughs, sweeping her arm at a corner of the throne, where dozens of empty stimulant injectors are piled. "I might be one of them. Either way, the fucks out there aren't going to like us once we're on the new juice." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceStimulantPower++, $cash -= _drugCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceStimulantPower++, $cash -= _drugCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_drugCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_drugCost*$Env*_costDebuff)>> // <</if>> <<if _StimulantLab == _StimulantLabMax>> <br>//$securityForceName has fully upgraded the stimulant lab to support it's activities.// <</if>> - <<if $securityForceUpgradeToken == 0 && _Barracks >= 1 && _Garage < _GarageMax>> + <<if $securityForceUpgradeToken == 0 && _Barracks >= 1 && _Garage < _GarageMax && (_T1FullUpgradesGarage != "True" || $TierTwoUnlock == 1)>> <br><<link "Garage">> <<replace "#resultX">> <span id="resultB"> - <br><br>"Which unit do you wish to upgrade or 'borrow'?" + <br>"Which unit do you wish to upgrade or 'borrow'?" <<link "Go back">> <<goto "SFM Barracks">> <</link>> <<if $securityForceUpgradeToken == 0 && $securityForceVehiclePower < 5>> <br><<link "Light and medium vehicles">> - <<replace "#resultB">><br><br> + <<replace "#resultB">><br> "Sure, boss." she says, nodding. "Some new wheels should help a lot." She laughs. "The scum out there don't seem to like it when we roll up on them in something better than their piece of shit junkers." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceVehiclePower++, $cash -= 60000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceVehiclePower++, $cash -= 60000*$Env*_costDebuff>> <</replace>> - <</link>>// Costs <<print cashFormat(60000*$Env)>> // + <</link>>// Costs <<print cashFormat(60000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceVehiclePower < _LightAndMediumVehiclesMax && $TierTwoUnlock == 1>> <<if $securityForceVehiclePower < 6>> - <<set _vehCost = 2500000>> + <<set _vehCost = 250000>> <<elseif $securityForceVehiclePower == 6>> - <<set _vehCost = 3000000>> + <<set _vehCost = 300000>> <<elseif $securityForceVehiclePower == 7>> - <<set _vehCost = 4900000>> + <<set _vehCost = 490000>> <</if>> <br><<link "Light and medium vehicles">> - <<replace "#resultB">><br><br> + <<replace "#resultB">><br> "Sure, boss." she says, nodding. "Some new wheels should help a lot." She laughs. "The scum out there don't seem to like it when we roll up on them in something better than their piece of shit junkers." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceVehiclePower++, $cash -= _vehCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceVehiclePower++, $cash -= _vehCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_vehCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_vehCost*$Env*_costDebuff)>> // <</if>> <<if $securityForceVehiclePower == _LightAndMediumVehiclesMax>> <br>//$securityForceName has fully upgraded the vehicle fleet to support it's activities.// @@ -168,23 +168,23 @@ <<if $securityForceUpgradeToken == 0 && $securityForceHeavyBattleTank < 1 && $TierTwoUnlock == 1>> <br><<link "A heavy battle tank">> - <<replace "#resultB">><br><br> + <<replace "#resultB">><br> "Sure, boss." she says, nodding. "A heavy battle tank should help a lot." She laughs. "The scum out there don't seem to like it when we roll up on them in something better than their piece of shit junkers." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceHeavyBattleTank++, $cash -= 60000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceHeavyBattleTank++, $cash -= 6000000*$Env*_costDebuff>> <</replace>> - <</link>>// Costs <<print cashFormat(60000000*$Env)>> // + <</link>>// Costs <<print cashFormat(6000000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceHeavyBattleTank >= 1 && $securityForceHeavyBattleTank < _HeavyBattleTankMax>> <<if $securityForceHeavyBattleTank < 2>> - <<set _hbtCost = 75000000>> + <<set _hbtCost = 7500000>> <<elseif $securityForceHeavyBattleTank == 2>> - <<set _hbtCost = 8500000>> + <<set _hbtCost = 850000>> <</if>> <br><<link "heavy battle tank">> - <<replace "#resultB">><br><br> + <<replace "#resultB">><br> "Sure, boss." she says, nodding. "Upgrading the heavy battle tank should help a lot." She laughs. "The scum out there don't seem to like it when we roll up on them in something better than their piece of shit junkers." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceHeavyBattleTank++, $cash -= _hbtCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceHeavyBattleTank++, $cash -= _hbtCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_hbtCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_hbtCost*$Env*_costDebuff)>> // <</if>> <<if $securityForceHeavyBattleTank == _HeavyBattleTankMax>> <br>//$securityForceName has fully upgraded the heavy battle tank to support it's activities.// @@ -196,41 +196,41 @@ <</if>> <<if _Garage >= _GarageMax>>//<br>$securityForceName has fully upgraded the garage to support it's activities.//<</if>> - <<if $securityForceUpgradeToken == 0 && _Barracks >= 4 && _Hangar < _HangarMax>> + <<if $securityForceUpgradeToken == 0 && _Barracks >= 4 && _Hangar < _HangarMax && (_T1FullUpgradesAirforce != "True" || $TierTwoUnlock == 1)>> <br><<link "Hangar">> <<replace "#resultX">> <span id="resultY"> - <br><br>"Which unit do you wish to upgrade or 'borrow'?" + <br>"Which unit do you wish to upgrade or 'borrow'?" <<link "Go back">> <<goto "SFM Barracks">> <</link>> <<if $securityForceUpgradeToken == 0 && $securityForceAircraftPower < 5>> <br><<link "Light and medium aircraft">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "Some new VTOLs would be great." She laughs. "They're the real multiplier over the scum out there. Not much a looter gang can do against air support." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceAircraftPower++, $cash -= 70000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceAircraftPower++, $cash -= 70000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(70000*$Env)>> // + <</link>> // Costs <<print cashFormat(70000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceAircraftPower < _AircraftMax && $TierTwoUnlock == 1>> <<switch $securityForceAircraftPower>> <<case 5>> - <<set _airCost = 2750000>> + <<set _airCost = 275000>> <<case 6>> - <<set _airCost = 3250000>> + <<set _airCost = 325000>> <<case 7>> - <<set _airCost = 5750000>> + <<set _airCost = 575000>> <<case 8>> - <<set _airCost = 6750000>> + <<set _airCost = 675000>> <<case 9>> - <<set _airCost = 7750000>> + <<set _airCost = 775000>> <</switch>> <br><<link "Light and medium aircraft">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "Some new VTOLs would be great." She laughs. "They're the real multiplier over the scum out there. Not much a looter gang can do against air support." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceAircraftPower++, $cash -= _airCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceAircraftPower++, $cash -= _airCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_airCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_airCost*$Env*_costDebuff)>> // <</if>> <<if $securityForceAircraftPower == _AircraftMax>> <br>//$securityForceName has fully upgraded the air fleet to support it's activities.// @@ -238,39 +238,39 @@ <<if $securityForceUpgradeToken == 0 && $TierTwoUnlock == 1 && $securityForceSpacePlanePower < 1>> <br><<link "A space plane">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "A orbital plane should help a lot." She laughs. "The scum out there don't seem to like it when we have eyes they can't hit." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceSpacePlanePower++, $cash -= 4750000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceSpacePlanePower++, $cash -= 475000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(4750000*$Env)>> // + <</link>> // Costs <<print cashFormat(475000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceSpacePlanePower >= 1 && $securityForceSpacePlanePower < _SpacePlaneMax>> <<if $securityForceSpacePlanePower < 4>> - <<set _spCost = 50000000>> + <<set _spCost = 5000000>> <<elseif $securityForceSpacePlanePower == 4>> - <<set _spCost = 75000000>> + <<set _spCost = 7500000>> <<elseif $securityForceSpacePlanePower == 5>> - <<set _spCost = 85000000>> + <<set _spCost = 8500000>> <<elseif $securityForceSpacePlanePower == 6>> - <<set _spCost = 95000000>> + <<set _spCost = 9500000>> <<elseif $securityForceSpacePlanePower == 7>> - <<set _spCost = 125000000>> + <<set _spCost = 1250000>> <<elseif $securityForceSpacePlanePower == 8>> - <<set _spCost = 175000000>> + <<set _spCost = 1750000>> <<elseif $securityForceSpacePlanePower == 9 && $securityForceInfantryPower >= 10>> - <<set _spCost = 250000000>> + <<set _spCost = 2500000>> <<elseif $securityForceSpacePlanePower == 10>> - <<set _spCost = 350000000>> + <<set _spCost = 3500000>> <<elseif $securityForceSpacePlanePower == 10>> - <<set _spCost = 650000000>> + <<set _spCost = 6500000>> <<elseif $securityForceSpacePlanePower == 11>> - <<set _spCost = 950000000>> + <<set _spCost = 9500000>> <</if>> <br><<link "Space plane">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "Upgrading the orbital plane should help a lot." She laughs. "The scum out there don't seem to like it when we have eyes they can't hit." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceSpacePlanePower++, $cash -= _spCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceSpacePlanePower++, $cash -= _spCost*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_spCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_spCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if $securityForceSpacePlanePower == _SpacePlaneMax>> <br>//$securityForceName has fully upgraded the space plane to support it's activities.// @@ -278,17 +278,17 @@ <<if $securityForceUpgradeToken == 0 && $TierTwoUnlock == 1 && $securityForceFortressZeppelin < 1>> <br><<link "A fortress zeppelin">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "A fortress zeppelin would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceFortressZeppelin++, $cash -= 30000000*$Env>> - <</replace>><</link>> // Costs <<print cashFormat(30000000*$Env)>> // + <<set $securityForceUpgradeToken = 1, $securityForceFortressZeppelin++, $cash -= 3000000*$Env*_costDebuff>> + <</replace>><</link>> // Costs <<print cashFormat(3000000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceFortressZeppelin >= 1 && $securityForceFortressZeppelin < _FortressZeppelinMax>> <br><<link "Fortress zeppelin">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "Upgrading the Fortress Zeppelin, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceFortressZeppelin++, $cash -= 20000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceFortressZeppelin++, $cash -= 2000000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat( 20000000*$Env)>> // + <</link>> // Costs <<print cashFormat( 2000000*$Env*_costDebuff)>> // <</if>> <<if $securityForceFortressZeppelin == _FortressZeppelinMax>> <br>//$securityForceName has fully upgraded the fortress zeppelin to support it's activities.// @@ -296,18 +296,18 @@ <<if $securityForceUpgradeToken == 0 && $TierTwoUnlock == 1 && $securityForceAC130 < 1>> <br><<link "An AC-130">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "An AC-130 would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceAC130++, $cash -= 35000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceAC130++, $cash -= 3500000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(35000000*$Env)>> // - <<elseif $securityForceAC130 > 1 && $securityForceAC130 < _AC130Max>> + <</link>> // Costs <<print cashFormat(3500000*$Env*$HackingSkillMultiplier*_costDebuff)>> // + <<elseif $securityForceAC130 >= 1 && $securityForceAC130 < _AC130Max>> <br><<link "AC-130">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "Upgrading the AC-130, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceAC130++, $cash -= 25000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceAC130++, $cash -= 2500000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(25000000*$Env)>> // + <</link>> // Costs <<print cashFormat(2500000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if $securityForceAC130 == _AC130Max>> <br>//$securityForceName has fully upgraded the AC-130 to support it's activities.// @@ -315,17 +315,17 @@ <<if $securityForceUpgradeToken == 0 && $TierTwoUnlock == 1 && $securityForceHeavyTransport < 1>> <br><<link "A heavy transport">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "A heavy transport would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceHeavyTransport++, $cash -= 40000000*$Env>> - <</replace>><</link>> // Costs <<print cashFormat(40000000*$Env)>> // + <<set $securityForceUpgradeToken = 1, $securityForceHeavyTransport++, $cash -= 4000000*$Env*_costDebuff>> + <</replace>><</link>> // Costs <<print cashFormat(4000000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceHeavyTransport >= 1 && $securityForceHeavyTransport < _heavyTransportMax>> <br><<link "Heavy transport">> - <<replace "#resultY">><br><br> + <<replace "#resultY">><br> "Sure, boss." she says, nodding. "Upgrading the heavy transport, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceHeavyTransport++, $cash -= 30000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceHeavyTransport++, $cash -= 3000000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat( 30000000*$Env)>> // + <</link>> // Costs <<print cashFormat( 3000000*$Env*_costDebuff)>> // <</if>> <<if $securityForceHeavyTransport == _heavyTransportMax>> <br>//$securityForceName has fully upgraded the heavy transport to support it's activities.// @@ -341,66 +341,75 @@ <br><<link "Drone bay">> <<replace "#resultX">> "Sure, boss." she says, nodding. "Some new drones would be nice." She laughs. "The poor bastards out there shit themselves when they see combat drones fly over the horizon." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceDronePower++, $cash -= 45000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceDronePower++, $cash -= 45000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(45000*$Env)>> // + <</link>> // Costs <<print cashFormat(45000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && _DroneBay < _DroneBayMax && $TierTwoUnlock == 1>> <br><<link "Drone bay">> <<replace "#resultX">> "Sure, boss." she says, nodding. "Some new drones would be nice." She laughs. "The poor bastards out there shit themselves when they see combat drones fly over the horizon." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceDronePower++, $cash -= 2000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceDronePower++, $cash -= 2000000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat( 2000000*$Env)>> // + <</link>> // Costs <<print cashFormat(2000000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if _DroneBay == _DroneBayMax>> <br>//$securityForceName has fully upgraded the drone bay to support it's activities.// <</if>> - <<if $securityForceUpgradeToken == 0 && (_LaunchBayNO < _LaunchBayNOMax || _LaunchBayO < _LaunchBayNOMax) && $TierTwoUnlock == 1>> + <<if $securityForceUpgradeToken == 0 && (_LaunchBayNO < _LaunchBayNOMax || _LaunchBayO < _LaunchBayOMax) && $TierTwoUnlock == 1>> <br><<link "Launch Bay">> <<replace "#resultX">> <span id="resultZ"> - <br><br>"Which unit do you wish to upgrade or 'borrow'?" + <br>"Which unit do you wish to upgrade or 'borrow'?" <<link "Go back">> <<goto "SFM Barracks">> <</link>> <<if $securityForceUpgradeToken == 0 && $securityForceSatellitePower < 1>> <br><<link "A Satellite">> - <<replace "#resultZ">><br><br> + <<replace "#resultZ">><br> "Sure, boss." she says, nodding. "A Satellite should help a lot." She laughs. "The scum out there don't seem to like it when we have eyes they can't hit." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceSatellitePower++, $cash -= 3750000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceSatellitePower++, $cash -= 3750000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(3750000*$Env)>> // + <</link>> // Costs <<print cashFormat(3750000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceSatellitePower >= 1 && $securityForceSatellitePower < _SatelliteMax>> <<switch $securityForceSatellitePower>> <<case 11>> - <<set _satCost = 150000000>> + <<set _satCost = 1500000>> <<case 12>> - <<set _satCost = 160000000>> + <<set _satCost = 1600000>> <<case 13>> - <<set _satCost = 170000000>> + <<set _satCost = 1700000>> <<case 14>> - <<set _satCost = 180000000>> + <<set _satCost = 1800000>> <<case 15>> - <<set _satCost = 190000000>> + <<set _satCost = 1900000>> <<case 16>> - <<set _satCost = 250000000000>> + <<set _satCost = 25000000>> <<case 17>> - <<set _satCost = 250000000000>> + <<set _satCost = 25000000>> <<case 18>> - <<set _satCost = 300000000000>> + <<set _satCost = 30000000>> <<case 19>> - <<set _satCost = 450000000000>> + <<set _satCost = 45000000>> + <<case 20 && $PC.hacking >= 75>> + <<set _satCost = 55000000>> <<default>> <<set _satCost = 2350000>> <</switch>> <br><<link "Satellite">> - <<replace "#resultZ">><br><br> + <<replace "#resultZ">><br> "Sure, boss." she says, nodding. "Upgrading the Satellite should help a lot." She laughs. "The scum out there don't seem to like it when we have eyes they can't hit." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceSatellitePower++, $cash -= _satCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceSatellitePower++, $cash -= _satCost*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_satCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_satCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // + <<elseif $securityForceUpgradeToken == 0 && $securityForceSatellitePower == 20 && $PC.hacking >= 75>> + <br><<link "Satellite">> + <<replace "#resultZ">><br> + "Sure, boss." she says, nodding. "Upgrading the Satellite should help a lot." She laughs. "The scum out there don't seem to like it when we have eyes they can't hit." She picks up a tablet and taps a few commands on it. "I'll get right on it." + <<set $securityForceUpgradeToken = 1, $securityForceSatellitePower++, $cash -= _satCost*$Env*$HackingSkillMultiplier*_costDebuff>> + <</replace>> + <</link>> // Costs <<print cashFormat(_satCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if $securityForceSatellitePower == _SatelliteMax>> <br>//$securityForceName has fully upgraded the Satellite to support it's activities.// @@ -408,71 +417,80 @@ <<if $securityForceUpgradeToken == 0 && $securityForceGiantRobot < 1 && ($terrain != "oceanic" && $terrain != "marine")>> <br><<link "A giant robot">> - <<replace "#resultZ">><br><br> + <<replace "#resultZ">><br> "Sure, boss." she says, nodding. "A giant robot would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceGiantRobot++, $cash -= 50000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceGiantRobot++, $cash -= 50000000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(50000000*$Env)>> // + <</link>> // Costs <<print cashFormat(50000000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceGiantRobot >= 1 && $securityForceGiantRobot < _GiantRobotMax>> <<if $securityForceGiantRobot < 3>> <<set _robCost = 25000000>> - <<elseif $securityForceGiantRobot == 9 && $securityForceInfantryPower >= 10>> - <<set _robCost = 2750000000>> <</if>> <<switch $securityForceGiantRobot>> <<case 3>> - <<set _robCost = 45000000>> + <<set _robCost = 4500000>> <<case 4>> - <<set _robCost = 45000000>> + <<set _robCost = 4500000>> <<case 5>> - <<set _robCost = 65000000>> + <<set _robCost = 6500000>> <<case 6>> - <<set _robCost = 85000000>> + <<set _robCost = 8500000>> <<case 7>> - <<set _robCost = 95000000>> + <<set _robCost = 9500000>> <<case 8>> - <<set _robCost = 105000000>> + <<set _robCost = 1050000>> + <<case 9 && $securityForceInfantryPower >= 10>> + <<set _robCost = 27500000>> <<case 10>> - <<set _robCost = 3150000000>> + <<set _robCost = 3150000>> <<case 11>> - <<set _robCost = 3200000000>> + <<set _robCost = 3200000>> <<case 12>> - <<set _robCost = 4550000000>> + <<set _robCost = 4550000>> <<case 13>> - <<set _robCost = 6550000000>> + <<set _robCost = 6550000>> <<case 14>> - <<set _robCost = 8550000000>> + <<set _robCost = 8550000>> + <<case 15 $PC.hacking >= 75>> + <<set _robCost = 9550000>> <</switch>> <br><<link "Giant robot">> - <<replace "#resultZ">><br><br> + <<replace "#resultZ">><br> + "Sure, boss." she says, nodding. "Upgrading the giant robot, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." + <<set $securityForceUpgradeToken = 1, $securityForceGiantRobot++, $cash -= _robCost*$Env*$HackingSkillMultiplier*_costDebuff>> + <</replace>> + <</link>> // Costs <<print cashFormat(_robCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // + <<elseif $securityForceUpgradeToken == 0 && $securityForceGiantRobot == 15 && $PC.hacking >= 75>> + <br><<link "Giant robot">> + <<replace "#resultZ">><br> "Sure, boss." she says, nodding. "Upgrading the giant robot, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceGiantRobot++, $cash -= _robCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceGiantRobot++, $cash -= _robCost*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_robCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_robCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> - <<if $securityForceGiantRobot == 9 || $securityForceGiantRobot == _GiantRobotMax && ($terrain != "oceanic" && $terrain != "marine")>> + <<if $securityForceGiantRobot == _GiantRobotMax && ($terrain != "oceanic" && $terrain != "marine")>> <br>//$securityForceName has fully upgraded the giant robot to support it's activities.// <</if>> <<if $securityForceUpgradeToken == 0 && $securityForceMissileSilo < 1 && ($terrain != "oceanic" && $terrain != "marine")>> <br><<link "A missile silo">> - <<replace "#resultZ">><br><br> + <<replace "#resultZ">><br> "Sure, boss." she says, nodding. "A missile silo would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceMissileSilo++, $cash -= 200000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceMissileSilo++, $cash -= 20000000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(200000000*$Env)>> // + <</link>> // Costs <<print cashFormat(20000000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceMissileSilo >= 1 && $securityForceMissileSilo < _MissileSiloMax>> <<if $securityForceMissileSilo == 1>> - <<set _msCost = 250000000>> + <<set _msCost = 2500000>> <<elseif $securityForceMissileSilo == 2>> - <<set _msCost = 295000000>> + <<set _msCost = 2950000>> <</if>> <br><<link "Missile silo">> - <<replace "#resultZ">><br><br> + <<replace "#resultZ">><br> "Sure, boss." she says, nodding. "Upgrading the missile silo, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceMissileSilo++, $cash -= _msCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceMissileSilo++, $cash -= _msCost*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_msCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_msCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if $securityForceMissileSilo == _MissileSiloMax && ($terrain != "oceanic" && $terrain != "marine")>><br>//$securityForceName has fully upgraded the missile silo to support it's activities.//<</if>> @@ -486,25 +504,25 @@ <br><<link "Naval Yard">> <<replace "#resultX">> <span id="resultA"> - <br><br>"Which unit do you wish to upgrade or 'borrow'?" + <br>"Which unit do you wish to upgrade or 'borrow'?" <<link "Go back">> <<goto "SFM Barracks">> <</link>> <<if $securityForceUpgradeToken == 0 && $securityForceAircraftCarrier < 1>> <br><<link "An aircraft carrier">> - <<replace "#resultA">><br><br> + <<replace "#resultA">><br> "Sure, boss." she says, nodding. "An aircraft carrier would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceAircraftCarrier++, $cash -= 1500000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceAircraftCarrier++, $cash -= 1500000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(1500000*$Env)>> // + <</link>> // Costs <<print cashFormat(1500000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceAircraftCarrier >= 1 && $securityForceAircraftCarrier < _AircraftCarrierMax>> <br><<link "Aircraft carrier">> - <<replace "#resultA">><br><br> + <<replace "#resultA">><br> "Sure, boss." she says, nodding. "Upgrading the aircraft carrier should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceAircraftCarrier++, $cash -= 25000000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceAircraftCarrier++, $cash -= 25000000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(25000000*$Env)>> // + <</link>> // Costs <<print cashFormat(25000000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if $securityForceAircraftCarrier == _AircraftCarrierMax && ($terrain == "oceanic" || $terrain == "marine")>> <br>//$securityForceName has fully upgraded the aircraft carrier to support it's activities.// @@ -512,52 +530,63 @@ <<if $securityForceUpgradeToken == 0 && $securityForceSubmarine < 1>> <br><<link "A submarine">> - <<replace "#resultA">><br><br> + <<replace "#resultA">><br> "Sure, boss." she says, nodding. "A submarine would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceSubmarine++, $cash -= 1500000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceSubmarine++, $cash -= 1500000*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(1500000*$Env)>> // + <</link>> // Costs <<print cashFormat(1500000*$Env*$HackingSkillMultiplier*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0 && $securityForceSubmarine >= 1 && $securityForceSubmarine < _SubmarineMax>> <<if $securityForceSubmarine < 4>> - <<set _subCost = 25000000>> + <<set _subCost = 2500000>> <<elseif $securityForceSubmarine == 4>> - <<set _subCost = 85000000>> + <<set _subCost = 8500000>> + <<elseif $securityForceSubmarine == 5>> + <<set _subCost = 8650000>> + <<elseif $securityForceSubmarine == 6 && $PC.hacking >= 75>> + <<set _subCost = 8780000>> <</if>> <br><<link "Submarine">> - <<replace "#resultA">><br><br> + <<replace "#resultA">><br> + "Sure, boss." she says, nodding. "Upgrading the submarine, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." + <<set $securityForceUpgradeToken = 1, $securityForceSubmarine++, $cash -= _subCost*$Env*$HackingSkillMultiplier*_costDebuff>> + <</replace>> + <</link>> // Costs <<print cashFormat(_subCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // + <<elseif $securityForceUpgradeToken == 0 && $securityForceSubmarine == 6 && $PC.hacking >= 75>> + <br><<link "Submarine">> + <<replace "#resultA">><br> "Sure, boss." she says, nodding. "Upgrading the submarine, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceSubmarine++, $cash -= _subCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceSubmarine++, $cash -= _subCost*$Env*$HackingSkillMultiplier*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_subCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_subCost*$Env*$HackingSkillMultiplier*_costDebuff)>> // <</if>> <<if $securityForceSubmarine == _SubmarineMax && ($terrain == "oceanic" || $terrain == "marine")>><br>//$securityForceName has fully upgraded the submarine to support it's activities.//<</if>> <<if $securityForceUpgradeToken == 0 && $securityForceHeavyAmphibiousTransport < 1>> <br><<link "A heavy amphibious transport">> - <<replace "#resultA">><br><br> + <<replace "#resultA">><br> "Sure, boss." she says, nodding. "A heavy amphibious transport would help a lot." She laughs. "The scum out there don't seem to like it when we have things that their shit equipment can't damage." She picks up a tablet and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceHeavyAmphibiousTransport++, $cash -= 1500000*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceHeavyAmphibiousTransport++, $cash -= 1500000*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(1500000*$Env)>> // + <</link>> // Costs <<print cashFormat(1500000*$Env*_costDebuff)>> // <<elseif $securityForceUpgradeToken == 0&& $securityForceHeavyAmphibiousTransport >= 1 && $securityForceHeavyAmphibiousTransport < _HeavyAmphibiousTransportMax>> <<switch $securityForceHeavyAmphibiousTransport>> <<case 1>> - <<set _hatCost = 150000000>> + <<set _hatCost = 1500000>> <<case 2>> - <<set _hatCost = 250000000>> + <<set _hatCost = 2500000>> <<case 3>> - <<set _hatCost = 300000000>> + <<set _hatCost = 3000000>> <<case 4>> - <<set _hatCost = 350000000>> + <<set _hatCost = 3500000>> <<case 5>> - <<set _hatCost = 400000000>> + <<set _hatCost = 4000000>> <</switch>> <br><<link "Heavy amphibious transport">> - <<replace "#resultA">><br><br> + <<replace "#resultA">><br> "Sure, boss." she says, nodding. "Upgrading the heavy amphibious transport, should help us gain a massive advantage." She laughs, picks up a tablet, and taps a few commands on it. "I'll get right on it." - <<set $securityForceUpgradeToken = 1, $securityForceHeavyAmphibiousTransport++, $cash -= _hatCost*$Env>> + <<set $securityForceUpgradeToken = 1, $securityForceHeavyAmphibiousTransport++, $cash -= _hatCost*$Env*_costDebuff>> <</replace>> - <</link>> // Costs <<print cashFormat(_hatCost*$Env)>> // + <</link>> // Costs <<print cashFormat(_hatCost*$Env*_costDebuff)>> // <</if>> <<if $securityForceHeavyAmphibiousTransport == _HeavyAmphibiousTransportMax && ($terrain == "oceanic" || $terrain == "marine")>><br>//$securityForceName has fully upgraded the heavy amphibious transport to support it's activities.//<</if>> @@ -568,5 +597,4 @@ <<if ($terrain == "oceanic" || $terrain == "marine") && (_NavalYard >= _NavalYardMax)>><br>$securityForceName has fully upgraded the naval yard to support it's activities.//<</if>> </span> -<</if>> -<</nobr>> +<</if>> \ No newline at end of file diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeTree.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeTree.tw index b1678b993236921dba8c2623c46f8e906c25b91f..971b6e542524dfe4800a1c9814224b8c1ad0797a 100644 --- a/src/pregmod/SecForceEX/SpecialForceUpgradeTree.tw +++ b/src/pregmod/SecForceEX/SpecialForceUpgradeTree.tw @@ -29,17 +29,30 @@ <<set _DroneBay = $securityForceDronePower>> <<set _DroneBayMax = 8>> -<<set _LaunchBayNO = $securityForceSatellitePower+$securityForceGiantRobot+$securityForceMissileSilo>> - <<set _SatelliteMax = 20>> - <<set _GiantRobotMax = 15>> +/* Launch Bay */ + <<if $PC.hacking >= 75>> + <<set _SatelliteMax = 21>> + <<set _GiantRobotMax = 16>> + <<else>> + <<set _SatelliteMax = 20>> + <<set _GiantRobotMax = 15>> + <</if>> <<set _MissileSiloMax = 3>> -<<set _LaunchBayNOMax = _SatelliteMax+_GiantRobotMax+_MissileSiloMax>> + <<set _LaunchBayNO = $securityForceSatellitePower+$securityForceGiantRobot+$securityForceMissileSilo, _LaunchBayNOMax = _SatelliteMax+_GiantRobotMax+_MissileSiloMax>> -<<set _LaunchBayO = $securityForceSatellitePower>> - <<set _LaunchBayOMax = 20>> + <<set _LaunchBayO = $securityForceSatellitePower>> + <<if $PC.hacking >= 75>> + <<set _LaunchBayOMax = 21>> + <<else>> + <<set _LaunchBayOMax = 20>> + <</if>> <<set _AircraftCarrierMax = 6>> - <<set _SubmarineMax = 6>> + <<if $PC.hacking >= 75>> + <<set _SubmarineMax = 7>> + <<else>> + <<set _SubmarineMax = 6>> + <</if>> <<set _HeavyAmphibiousTransportMax = 6>> <<set _NavalYardMax = _AircraftCarrierMax+_SubmarineMax+_HeavyAmphibiousTransportMax>> diff --git a/src/pregmod/SecForceEX/securityForceTradeShow.tw b/src/pregmod/SecForceEX/securityForceTradeShow.tw index 658fe3396d11487d617a3b8526b940aafb832c7d..7977ca5a82c3346a112d5cb8802eff41b6acbcc0 100644 --- a/src/pregmod/SecForceEX/securityForceTradeShow.tw +++ b/src/pregmod/SecForceEX/securityForceTradeShow.tw @@ -1,28 +1,17 @@ :: securityForceTradeShow [nobr] <<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check", $returnTo = "RIE Eligibility Check">> - -<<set _N1 = 2>> -<<set _N2 = 2>> -<<set _N3 = 2>> - -<<if $economy == .5>> - <<set $Env = _N1>> -<<elseif $economy == 1>> - <<set $Env = _N2>> -<<elseif $economy == 1.5>> - <<set $Env = _N3>> -<</if>> +<<set $Env = simpleWorldEconomyCheck()>> +<<if ndef $TradeShowAttendanceGranted>> <<set $TradeShowAttendanceGranted = 0>> <</if>> <<if $OverallTradeShowAttendance == 0>> + <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, back when I was a major before I joined $securityForceName. Me and a couple of colleagues went to a bi-yearly international security trade show, I would very much like to continue doing so. Can I?<span id="choice1"> <<link "Yes,">> <<replace "#choice1">> <br><br>"Thank you <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>sir<<else>>ma'am<</if>>." - <<set $OverallTradeShowAttendance += 1>> - <<set $CurrentTradeShowAttendanceGranted = 1>> - <<set $TradeShowAttendanceGranted = 1>> + <<set $OverallTradeShowAttendance += 1, $CurrentTradeShowAttendanceGranted = 1, $TradeShowAttendanceGranted = 1>> <</replace>> <</link>> @@ -33,7 +22,6 @@ <</link>> </span> - <<elseif $OverallTradeShowAttendance >= 1>> The (bi-yearly) security trade show has finally come around and even though you've already granted The Colonel permission to attend, she's decided to come and ask for the leave personally. @@ -115,7 +103,7 @@ The (bi-yearly) security trade show has finally come around and even though you' <<set _MenialSlaves = Math.ceil(random(0,_TradeShowAttendes)*_BonusProviderPercentage*_MenialSlavesPerAttendee*_PersuationBonus)>> <<set _Profit = Math.ceil($cash*.010*$SFNO || $SFO*$arcologies[0].prosperity*$Env)*_PersuationBonus>> - <br>During a break, The Colonel manages to sell some generic scematics to the _TradeShowAttendes people peresent, some decided to also give her some menial slaves as a bonus. + <br>During a break, The Colonel manages to sell some generic schematics to the _TradeShowAttendes people present, some decided to also give her some menial slaves as a bonus. <<set $helots = $helots+_MenialSlaves>> <<set $TradeShowHelots += _MenialSlaves>> @@ -124,16 +112,24 @@ The (bi-yearly) security trade show has finally come around and even though you' <<set $cash = $cash+_Profit>> <<set $TradeShowIncome += _Profit>> <<set $TotalTradeShowIncome += _Profit>> - + + <<if $ColonelRelationship >= 400 && $LieutenantColonel == 1 && $ColonelCore == "brazen">> + <br><br> + <<link "Have sex with The Colonel in a bathroom stall">> + The crowd are shocked by the loud noises coming from a bathroom stall. + <<set $rep -= 150, $securityForceSexedColonel += 1>> + <</link>> + <</if>> + <</replace>> <</link>> <<link "Request she remain on base">> <<replace "#choice2">> - <br>The look of disappointement is bearly noticable on The Colonel's face. + <br>The look of disappointement is barely noticeable on The Colonel's face. <</replace>> <</link>> </span> -<</if>> +<</if>> \ No newline at end of file diff --git a/src/pregmod/basenationalitiesControls.tw b/src/pregmod/basenationalitiesControls.tw index a4ca9501ff17042828615842b7f652e7870c9c02..e0dd96ed016cc57bee36c00d9cde82d45eb95fed 100644 --- a/src/pregmod/basenationalitiesControls.tw +++ b/src/pregmod/basenationalitiesControls.tw @@ -1,6 +1,6 @@ :: Basenationalities Controls [nobr] -<<if $nationalities.length < 1>> +<<if hashSum($nationalities) < 1>> //You cannot be a slave owner without a slave trade. Please add nationalities to continue.// <<else>> <<link "Confirm customization">> @@ -15,14 +15,14 @@ <br> /* Generates cloned array of $nationalities, removing duplicates and then sorting */ -<<set $nationalitiescheck = _.uniq($nationalities, false).sort()>> +<<set $nationalitiescheck = Object.assign({}, $nationalities)>> /* Prints distribution of $nationalities, using $nationalitiescheck to render array */ -<<set _percentPerPoint = 100.0 / $nationalities.length>> -<<for _i = 0; _i < $nationalitiescheck.length; _i++>> - <<set _nation = $nationalitiescheck[_i]>> - _nation @@.orange;<<= ($nationalities.count(_nation) * _percentPerPoint).toFixed(2)>>%@@ - <<if _i < $nationalitiescheck.length-1>> | <</if>> +<<set _percentPerPoint = 100.0 / hashSum($nationalities)>> +<<set _len = Object.keys($nationalitiescheck).length>> +<<for _nation, _i range $nationalitiescheck>> + _nation @@.orange;<<= ($nationalities[_nation] * _percentPerPoint).toFixed(2)>>%@@ + <<if _i < _len-1>> | <</if>> <</for>> <<unset _percentPerPoint>> <br><br> @@ -76,24 +76,27 @@ Filter by Region: <div style="float: left;"> <<set _nation = setup.baseNationalities[_i]>> <<print " - _nation + _nation @@.plusButton;<<link '+'>> - <<set $nationalities.push(setup.baseNationalities[" + _i + "])>> + <<set hashPush($nationalities, setup.baseNationalities["+_i+"])>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> - <<if $nationalitiescheck.includes(_nation) > 0 >> + <<if def $nationalitiescheck[_nation]>> <<print " @@.minusButton;<<link '–'>> - <<set $nationalities.deleteAt(($nationalities.indexOf(setup.baseNationalities[" + _i + "])))>> + <<set $nationalities[setup.baseNationalities["+_i+"]] -= 1>> + <<if $nationalities[setup.baseNationalities["+_i+"]] <= 0>> + <<set delete $nationalities[setup.baseNationalities["+_i+"]]>> + <</if>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> <</if>> - <<if $nationalities.count(_nation) > 1 >> + <<if $nationalities[_nation] > 1 >> <<print " @@.zeroButton;<<link '0'>> - <<set $nationalities.delete(setup.baseNationalities[" + _i + "])>> + <<set delete $nationalities[setup.baseNationalities["+_i+"]]>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> @@ -105,19 +108,19 @@ Filter by Region: <<foreach _race of setup.filterRaces>> <<set _racialNationalities = setup.baseNationalities.filter(function(n) { var races = setup.raceSelector[n] || setup.raceSelector['']; - return races.count(_race.toLowerCase()) * 2 > races.length; })>> + return races[_race.toLowerCase()] * 2 > hashSum(races); })>> <<if _racialNationalities.length > 0>> <<= "<div style='float: left; width: 13em; padding: 0 5px;' title='" + (_racialNationalities.length > 0 ? _racialNationalities.join(", ") : "(none)") +"'>_race @@.plusButton; <<link '+'>> - <<run Array.prototype.push.apply($nationalities, setup.baseNationalities.filter(function(n) { + <<run setup.baseNationalities.filter(function(n) { var races = setup.raceSelector[n] || setup.raceSelector['']; - return races.count('" + _race.toLowerCase() + "') * 2 > races.length; }))>> + return races['" + _race.toLowerCase() + "'] * 2 > hashSum(races); }).forEach(function(n) { hashPush($nationalities, n);})>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ @@.zeroButton;<<link '0'>> - <<run Array.prototype.delete.apply($nationalities, setup.baseNationalities.filter(function(n) { + <<run setup.baseNationalities.filter(function(n) { var races = setup.raceSelector[n] || setup.raceSelector['']; - return races.count('" + _race.toLowerCase() + "') * 2 > races.length; }))>> + return races['" + _race.toLowerCase() + "'] * 2 > hashSum(races.length); }).forEach(function(n) { delete $nationalities[n]; })>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@</div>">> <</if>> @@ -131,22 +134,25 @@ Filter by Region: <<print " _nation @@.plusButton;<<link '+'>> - <<set $nationalities.push(_controlsNationality[" + _i + "])>> + <<set hashPush($nationalities, _controlsNationality[" + _i + "])>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> - <<if $nationalitiescheck.includes(_nation) > 0 >> + <<if def $nationalitiescheck[_nation]>> <<print " @@.minusButton;<<link '–'>> - <<set $nationalities.deleteAt(($nationalities.indexOf(_controlsNationality[" + _i + "])))>> + <<set $nationalities[_controlsNationality["+_i+"]] -= 1>> + <<if $nationalities[_controlsNationality["+_i+"]] <= 0>> + <<set delete $nationalities[_controlsNationality["+_i+"]]>> + <</if>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> <</if>> - <<if $nationalities.count(_nation) > 1 >> + <<if $nationalities[_nation] > 1 >> <<print " @@.zeroButton;<<link '0'>> - <<set $nationalities.delete(_controlsNationality[" + _i + "])>> + <<set delete $nationalities[_controlsNationality["+_i+"]]>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> @@ -156,4 +162,4 @@ Filter by Region: <</for>> <</if>> <div style="clear: both; height: 0;"></div> -</div> \ No newline at end of file +</div> diff --git a/src/pregmod/birthStorm.tw b/src/pregmod/birthStorm.tw index 22a548c5776fdf1992892e1a2b06924c2f2afdb8..9a5ac69f57ce20bd5e49f8f11e7470b0d1702b95 100644 --- a/src/pregmod/birthStorm.tw +++ b/src/pregmod/birthStorm.tw @@ -2,27 +2,35 @@ <<set $nextButton = "Back", $nextLink = "Slave Interact">> +<<set $activeSlave.curBabies = WombBirth($activeSlave, 34)>> /*Here check - how many children survive this event. 34 weeks minimum.*/ +<<set _curBabies = $activeSlave.curBabies>> + The remote surgery allows the removal of the pregnancy generator through conventional means, an injection to induce labor and the resulting birthing of the womb's contents. -<<if $activeSlave.broodmother == 2>> - $activeSlave.slaveName's obscenely swollen belly begins to shudder and writhe moments after being injected with the drug. She spread to either side of her spasming bulk as wide as she can with a loud moan. Her vaginal lips part as the first of her brood is born, followed by another, and another. After hours of constant +<<if $activeSlave.pregType > 40>> + $activeSlave.slaveName's obscenely swollen belly begins to shudder and writhe moments after being injected with the drug as all her waters break. She spreads her <<if $activeSlave.amp != 1>>legs to either side of her spasming bulk as wide as she can<<else>>stumps as wide as che can<</if>> with a loud moan. Her vaginal lips part as the first of her brood is born, followed by another, and another. After hours of constant +<<elseif $activeSlave.pregType > 20>> + $activeSlave.slaveName's massive belly shudders and shrinks as all her waters simultaneously break. She spreads her <<if $activeSlave.amp != 1>>legs<<else>>stumps<</if>> wide with a loud moan. Her vaginal lips part as the first of her brood is born, followed not long after by another. After an hour of constant <<else>> - $activeSlave.slaveName's massive belly shudders and shrinks as all her waters simultaneously break. She spreads her legs wide with a loud moan. Her vaginal lips part as the first of her brood is born, followed not long after by another. After an hour of constant + $activeSlave.slaveName's massive belly shudders and shrinks as all her waters simultaneously break. She spreads her <<if $activeSlave.amp != 1>>legs<<else>>stumps<</if>> wide with a loud moan. Her vaginal lips part as her birthing begin. After an hour of intensive <</if>> <<if $activeSlave.fetish == "mindbroken">> - birthing, she shows little interest in the changes to her body. @@.red;The ordeal of constant birthing has had a massive effect on her health as well as completely destroying her vagina.@@ + birthing, she shows little interest in the changes to her body. @@.red;The ordeal of intensive birthing has had a massive effect on her health as well as completely destroying her vagina.@@ <<elseif $activeSlave.sexualFlaw == "breeder">> - birthing and the realization that you are taking away her ideal body, her perfect existence; her mind @@.red;fundamentally breaks. The ordeal of constant birthing has had a massive effect on her health as well as completely destroying her vagina.@@ + birthing and the realization that you are taking away her ideal body, her perfect existence; her mind @@.red;fundamentally breaks. The ordeal of intensive birthing has had a massive effect on her health as well as completely destroying her vagina.@@ <<set $activeSlave.fetish = "mindbroken">> <<elseif $activeSlave.fetish == "pregnancy" && $Nurse != 0>> - birthing and orgasming each time, $activeSlave.slaveName's mind would have broken. However, $Nurse.slaveName had the forsight to sedate her after witnessing her constant orgasming. She awakes to find her belly deflated, no longer crammed full of life. She is @@.mediumorchid;disappointed@@ that you would forbid her from such a pleasure, but @@.mediumaquamarine;understands@@ why it was done. @@.red;The ordeal of constant birthing has had a massive effect on her health as well as completely destroying her vagina.@@ + birthing and orgasming all the time, $activeSlave.slaveName's mind would have broken. However, $Nurse.slaveName had the forsight to sedate her after witnessing her constant orgasming. She awakes to find her belly deflated, no longer crammed full of life. She is @@.mediumorchid;disappointed@@ that you would forbid her from such a pleasure, but @@.mediumaquamarine;understands@@ why it was done. @@.red;The ordeal of intensive birthing has had a massive effect on her health as well as completely destroying her vagina.@@ <<set $activeSlave.trust += 5, $activeSlave.devotion -= 5>> <<elseif $activeSlave.fetish == "pregnancy">> - <<if $activeSlave.broodmother == 2>> + <<if $activeSlave.pregType > 40>> birthing and orgasming each time, $activeSlave.slaveName's mind is @@.red;fundamentally broken.@@ Being under constant pleasure for so long has destroyed all but the part of her that feels pleasure. With one final push the breeding device is expelled from her womb as the last spark of what was her mind is extinguished. @@.red;The ordeal of constant birthing has had a massive effect on her health as well as completely destroying her vagina.@@ <<set $activeSlave.fetish = "mindbroken">> - <<else>> + <<elseif $activeSlave.pregType > 20>> birthing and orgasming each time, $activeSlave.slaveName is reduced to a quivering, overstimulated pile. Whe she returns to her senses, @@.hotpink;she can only express how much she wants to go again.@@ @@.red;The ordeal of constant birthing has had a massive effect on her health as well as completely destroying her vagina.@@ <<set $activeSlave.devotion += 4>> + <<else>> + birthing and orgasming all the time, $activeSlave.slaveName is reduced to a quivering, overstimulated pile. Whe she returns to her senses, @@.hotpink;she can only express how much she wants to go again.@@ @@.red;The ordeal of intensive birthing has had a massive effect on her health as well as completely destroying her vagina.@@ + <<set $activeSlave.devotion += 3>> <</if>> <<elseif $activeSlave.devotion <= 20>> birthing, @@.mediumorchid;she hates you for destroying her body like this@@. She is @@.gold;terrified of your power@@ over her body. @@.red;The ordeal of constant birthing has had a massive effect on her health as well as completely destroying her vagina.@@ @@ -36,32 +44,32 @@ The remote surgery allows the removal of the pregnancy generator through convent <</if>> <<set _babyPrice = random(-20,20)>> -<<if $activeSlave.broodmother == 2>> - <<set $activeSlave.vagina = 10>> - <<set $activeSlave.health -= 80>> - <<if $Cash4Babies == 1>> - Her babies sold for a total of @@.yellowgreen;<<print cashFormat(50*(50+_babyPrice))>>.@@ - <<set $cash += 50*(50+_babyPrice)>> +<<if $activeSlave.pregType > 40>> + <<set $activeSlave.preg = -3>> + <<if $activeSlave.vagina < 6>> + <<set $activeSlave.vagina = 10>> <</if>> - <<set $activeSlave.births += 50>> - <<set $activeSlave.birthsTotal += 50>> - <<set $birthsTotal += 50>> + <<set $activeSlave.health -= 80>> <<else>> - <<set $activeSlave.vagina = 6>> - <<set $activeSlave.health -= 30>> - <<if $Cash4Babies == 1>> - Her babies sold for a total of @@.yellowgreen;<<print cashFormat(8*(50+_babyPrice))>>.@@ - <<set $cash += 8*(50+_babyPrice)>> + <<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>> /* I think, it's not logical to break her reprofuctive system out of repair, if she is only type 1 broodmother. In this case she have to birth only like 5-10 fully grown babies, others get progressively smaller. It's should be even smaller stress to body then for "normal" hyperpregnant with 15-20+ children - they have to birth them all at full size.*/ + <<if $activeSlave.vagina < 6>> + <<set $activeSlave.vagina = 6>> <</if>> - <<set $activeSlave.births += 8>> - <<set $activeSlave.birthsTotal += 8>> - <<set $birthsTotal += 8>> + <<set $activeSlave.health -= 30>> <</if>> -<<set $activeSlave.preg = -3>> +<<if $Cash4Babies == 1 && _curBabies > 0>> + Her survived <<if _curBabies > 1>>children<<else>>child<</if>> sold for a total of @@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyPrice))>>.@@ + <<set $cash += _curBabies*(50+_babyPrice)>> +<</if>> +<<set $activeSlave.births += _curBabies>> +<<set $activeSlave.birthsTotal += _curBabies>> +<<set $birthsTotal += _curBabies>> + <<set $activeSlave.pregWeek = -4>> <<set $activeSlave.pregType = 0>> <<set $activeSlave.pregSource = 0>> <<set $activeSlave.pregKnown = 0>> +<<set WombFlush($activeSlave)>> <<set $activeSlave.broodmother = 0>> <<SetBellySize $activeSlave>> diff --git a/src/pregmod/breederProposal.tw b/src/pregmod/breederProposal.tw index e1e39e8afd77afe077a1be5a3c4ab6298eb5b57b..5705929c2ac9a3301cec1deda5c3ccd389b7581d 100644 --- a/src/pregmod/breederProposal.tw +++ b/src/pregmod/breederProposal.tw @@ -29,6 +29,7 @@ Within the hour, you are called before <<if $eugenicsFullControl == 1>>what's le <<replace "#result">> "Good choice girl. A selection of men will be provided to you, take your pick and bear our children. Or use a test tube, if that's more to your tastes." <<set $playerBred = 1, $propOutcome = 1>> + <<InitStandards>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <</replace>> <</link>> @@ -47,21 +48,23 @@ Within the hour, you are called before <<if $eugenicsFullControl == 1>>what's le <<replace "#result">> "Good choice girl, your proposal is more important than your dignity after all, isn't it? A selection of men will be provided to you, take your pick and bear our children. Or use a test tube, if that's more to your tastes." <<set $failedElite -= 50, $playerBred = 1, $propOutcome = 1>> + <<InitStandards>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <</replace>> <</link>> <<if $failedElite <= 0>> <br><<link "Decline being used as a breeder and leverage your standing">> <<replace "#result">> - "Yes, you have done much to further out cuase. We respect the "balls" on you, despite your lack of them. Very well, we shall set the standards for what shall qualify as breeding stock and our standards will be delivered to you shortly." + "Yes, you have done much to further our cause. We respect the "balls" on you, despite your lack of them. Very well, we shall set the standards for what shall qualify as breeding stock and our standards will be delivered to you shortly." <<set $propOutcome = 1>> + <<InitStandards>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <</replace>> <</link>> <<else>> <br><<link "Decline being used as a breeder and withdraw your proposal">> <<replace "#result">> - "Then why waste our time? You dissapoint us, but don't worry; you'll be laden with child soon enough." + "Then why waste our time? You disappoint us, but don't worry; you'll be laden with child soon enough." <<set $propOutcome = -1>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <</replace>> @@ -84,7 +87,7 @@ Within the hour, you are called before <<if $eugenicsFullControl == 1>>what's le <br><<link "Decline being used as a breeder and withdraw your proposal">> <<replace "#result">> "Very well, if your masculinity is more valuable to you than your proposal, then so be it." - <<set $propOutcome to -1>> + <<set $propOutcome = -1>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <</replace>> <</link>> diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw index 5aa300cc614da9deda9eeea6219e5795c2220063..06e75f01c8fb1aac8dc188ca6e7e180e812bde49 100644 --- a/src/pregmod/csec.tw +++ b/src/pregmod/csec.tw @@ -1,6 +1,7 @@ :: csec [nobr] <<set $nextButton = " ", $nextLink = "Slave Interact">> + <<ClearSummaryCache $activeSlave>> <<set _getFather = $slaves.find(function(s) { return s.ID == $activeSlave.pregSource; })>> @@ -8,79 +9,124 @@ <<set $daddy = _getFather.slaveName>> <</if>> +/*---------------- claculations -----------------*/ + +/* Now it's will be possible to use passge for broodmothers and partial birthers too.*/ + +<<set $activeSlave.pregControl = "none">> +<<set _beforeSize = WombGetVolume($activeSlave)>> +<<set $activeSlave.curBabies = WombBirth($activeSlave, 34)>> /* 34 week is minimal gestation time for live birth. Here we take only ready to survive. With others we will deal later in code. */ +<<set $activeSlave.curStillBirth = 0 >> + +<<set _curBabies = $activeSlave.curBabies.length>> /*just to improve speed and usability here.*/ + +<<set $activeSlave.births += _curBabies>> +<<set $activeSlave.birthsTotal += _curBabies>> +<<set $birthsTotal += _curBabies>> + <<if $activeSlave.pregSource > 0>> <<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $activeSlave.pregSource; })>> <<if $daddy != -1>> - <<set $slaves[_babyDaddy].slavesFathered += $activeSlave.pregType>> + <<set $slaves[_babyDaddy].slavesFathered += _curBabies>> <</if>> <<elseif $activeSlave.pregSource == -1>> - <<set $PC.slavesFathered += $activeSlave.pregType>> + <<set $PC.slavesFathered += _curBabies>> +<</if>> + +<<if $activeSlave.broodmother < 1>> /* broodmothers can't lose fetuses, or it's abortion procedure, not c'sec.*/ + <<if $safePartialBirthTech == 1 >> + /* nothing right now. For partial birhters, who can do it. For future use.*/ + <<else>> + <<set $activeSlave.curStillBirth = $activeSlave.womb.length>> + <<set WombFlush($activeSlave)>> + /* normally fetuses before 34 week will not survive */ + <</if>> <</if>> -<<set $activeSlave.births += $activeSlave.pregType, $activeSlave.birthsTotal += $activeSlave.pregType>> +<<set _afterSize = WombGetVolume($activeSlave)>> /* not really needed right now, but better to add alredy for future usage. To not forget later.*/ +<<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid divide by zero error.*/ + <<set _incubated = 0>> <<set _oldDevotion = $activeSlave.devotion>> -Performing a cesarean section is trivial for the remote surgery for the remote surgery to carry out. $activeSlave.slaveName is sedated, her child<<if $activeSlave.pregType > 1>>ren<</if>> extracted, and taken to a bed to recover. By the time she comes to, -<<if $activeSlave.pregSource == -1>> - your -<<elseif $activeSlave.pregSource == -2>> - your arcology's -<<elseif $activeSlave.pregSource == -3>> - the Societal Elites' -<<elseif $activeSlave.pregSource == 0>> - some man's -<<elseif $activeSlave.ID == $daddy.ID>> - her own -<<else>> - $daddy's -<</if>> -<<if $activeSlave.pregType <= 1>> - baby has -<<elseif $activeSlave.pregType >= 40>> - massive brood of $activeSlave.pregType babies have -<<elseif $activeSlave.pregType >= 20>> - brood of $activeSlave.pregType babies have -<<elseif $activeSlave.pregType >= 10>> - impressive group of $activeSlave.pregType babies have -<<elseif $activeSlave.pregType == 9>> - nonuplets have -<<elseif $activeSlave.pregType == 8>> - octuplets have -<<elseif $activeSlave.pregType == 7>> - septuplets have -<<elseif $activeSlave.pregType == 6>> - sextuplets have -<<elseif $activeSlave.pregType == 5>> - quintuplets have -<<elseif $activeSlave.pregType == 4>> - quadruplets have -<<elseif $activeSlave.pregType == 3>> - triplets have -<<else>> - twins have +<<set _cToIncub = 0, _origReserve = $activeSlave.reservedChildren>> +<<if _origReserve > 0 && _curBabies > 0>> /*Do we need incubator checks?*/ + <<if _curBabies >= _origReserve >> + /*adding normal*/ + <<set _cToIncub = _origReserve >> + <<elseif _curBabies < _origReserve && $activeSlave.womb.length > 0>> + /*broodmother or partial birth, we will wait for next time to get remaining children*/ + <<set $activeSlave.reservedChildren -= _curBabies, _cToIncub = _curBabies>> + <<else>> + /*Stillbirth or something other go wrong. Correcting children count.*/ + <<set $activeSlave.reservedChildren = 0, _cToIncub = _curBabies>> + <</if>> <</if>> -already been -<<if $activeSlave.reservedChildren == $activeSlave.pregType>> - taken to $incubatorName. - <<for _csec = $activeSlave.reservedChildren; _csec != 0; _csec-->> - <<set $mom = $slaves[$i]>> - <<include "Generate Child">> - <<include "Incubator Workaround">> - <</for>> - <<set _incubated = 2>> -<<elseif $activeSlave.reservedChildren > 0>> - split between $incubatorName and - <<for _csec = $activeSlave.reservedChildren; _csec != 0; _csec-->> - <<set $mom = $slaves[$i]>> - <<include "Generate Child">> - <<include "Incubator Workaround">> - <<set $activeSlave.pregType-->> +/* ------------------------------------------------ */ + +Performing a cesarean section is trivial for the remote surgery to carry out. $activeSlave.slaveName is sedated, her child<<if _curBabies > 1>>ren<</if>> extracted, and taken to a bed to recover. By the time she comes to, +<<if _curBabies >0 >> + <<if $activeSlave.pregSource == -1>> + your + <<elseif $activeSlave.pregSource == -2>> + your arcology's + <<elseif $activeSlave.pregSource == -3>> + the Societal Elites' + <<elseif $activeSlave.pregSource == 0>> + some man's + <<elseif $activeSlave.ID == $daddy.ID>> + her own + <<else>> + $daddy's + <</if>> + <<if _curBabies <= 1>> + baby has + <<elseif _curBabies >= 40>> + massive brood of $activeSlave.pregType babies have + <<elseif _curBabies >= 20>> + brood of $activeSlave.pregType babies have + <<elseif _curBabies >= 10>> + impressive group of $activeSlave.pregType babies have + <<elseif _curBabies == 9>> + nonuplets have + <<elseif _curBabies == 8>> + octuplets have + <<elseif _curBabies == 7>> + septuplets have + <<elseif _curBabies == 6>> + sextuplets have + <<elseif _curBabies == 5>> + quintuplets have + <<elseif _curBabies == 4>> + quadruplets have + <<elseif _curBabies == 3>> + triplets have + <<else>> + twins have + <</if>> + already been + + <<if _cToIncub == _curBabies && _cToIncub > 0 >> + taken to $incubatorName. + <<set _incubated = 2>> + <<elseif _cToIncub < _curBabies && _cToIncub > 0>> + split between $incubatorName and + <<set _incubated = 1>> + <</if>> + <<set $mom = $activeSlave>> + <<for _cb = 0; _cb < _cToIncub; _cb++>> /* if there is no reserved children, code in loop will not trigger */ + <<include "Generate Child">> + <<include "Incubator Workaround">> + <<set $mom.curBabies.shift()>> /*for now child generation metod for incubator not changed. But here children for incubator removed from array of birthed babies. If we decide later - we can use them for incubator as real objects here. For now they just discarded silently */ + <<set $reservedChildren-- >> <</for>> - <<set _incubated = 1>> + <<set $activeSlave = $mom>> +<<else>> + /*No live babies. Placeholder */ <</if>> +<<set _curBabies = $activeSlave.curBabies.length >> -<<if _incubated != 2>> +<<if _incubated != 2 && _curBabies > 0 >> <span id="_disposition"> <<if _incubated == 1>>the rest<</if>> <<if $arcologies[0].FSRestart != "unset" && $activeSlave.breedingMark == 1 && $activeSlave.pregSource == -1>> @@ -88,14 +134,14 @@ already been handed off to the Societal Elite to be raised into upstanding members of the new society. <<elseif $Cash4Babies == 1 && ($activeSlave.relationship != -3) && ($activeSlave.assignment != "serve in the master suite") && ($activeSlave.assignment != "be your Concubine")>> <<set _lostBabies = 1, _babyCost = random(-12,12)>> - sold for a total of @@.yellowgreen;<<print cashFormat($activeSlave.pregType*(50+_babyCost))>>.@@ - <<set $cash += $activeSlave.pregType*(50+_babyCost)>> + sold for a total of @@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@ + <<set $cash += _curBabies*(50+_babyCost)>> <</if>> <<if _lostBabies != 1>> <br><br> <<link '...sent to a slave orphanage.'>> <<replace #_disposition>> - <<set $slaveOrphanageTotal += $activeSlave.pregType>> + <<set $slaveOrphanageTotal += _curBabies>> sent to one of $arcologies[0].name's slave orphanages. $activeSlave.slaveName <<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>> has few thoughts about the matter. @@ -121,18 +167,18 @@ already been <<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>> has few thoughts about the matter. <<elseif $activeSlave.devotion > 95>> - loves you already, but <<print she>>'ll @@.hotpink;love you even more@@ for this. She can't wait to see her child<<if $activeSlave.pregType > 1>>ren<</if>> proudly furthering your cause. + loves you already, but she'll @@.hotpink;love you even more@@ for this. She can't wait to see her child<<if _curBabies > 1>>ren<</if>> proudly furthering your cause. <<set $activeSlave.devotion += 4>> <<elseif $activeSlave.devotion > 50>> heard about these and will be @@.hotpink;happy that her child<<if $activeSlave.pregType > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ She will miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but she expected that. <<set $activeSlave.devotion += 4>> <<elseif $activeSlave.devotion > 20>> - will naturally miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but will is broken enough to hope that her offspring will have a better life, or at least an enjoyable one. + will naturally miss her child<<if _curBabies > 1>>ren<</if>>, but will is broken enough to hope that her offspring will have a better life, or at least an enjoyable one. <<else>> - will of course @@.mediumorchid;hate you for this.@@ The mere thought of her $fertilityAge year old daughter<<if $activeSlave.pregType > 1>>s<</if>> swollen with life, and proud of it, fills her with @@.gold;disdain.@@ + will of course @@.mediumorchid;hate you for this.@@ The mere thought of her $fertilityAge year old daughter<<if _curBabies > 1>>s<</if>> swollen with life, and proud of it, fills her with @@.gold;disdain.@@ <<set $activeSlave.devotion -= 4, $activeSlave.trust -= 4>> <</if>> - <<set $breederOrphanageTotal += $activeSlave.pregType>> + <<set $breederOrphanageTotal += _curBabies>> <</replace>> <<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */ <</link>> @@ -144,22 +190,22 @@ already been <<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>> has few thoughts about the matter. <<elseif $activeSlave.devotion > 95>> - loves you already, but <<print she>>'ll @@.hotpink;love you even more@@ for this. + loves you already, but she'll @@.hotpink;love you even more@@ for this. <<elseif $activeSlave.devotion > 50>> - knows about these and will be @@.hotpink;overjoyed.@@ She will miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but she expected that. + knows about these and will be @@.hotpink;overjoyed.@@ She will miss her child<<if _curBabies > 1>>ren<</if>>, but she expected that. <<elseif $activeSlave.devotion > 20>> - will naturally miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that her offspring will have a better life. + will naturally miss her child<<if _curBabies > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that her offspring will have a better life. <<else>> - will naturally retain some resentment over being separated from her child<<if $activeSlave.pregType > 1>>ren<</if>>, but this should be balanced by hope that her offspring will have a better life. + will naturally retain some resentment over being separated from her child<<if _curBabies > 1>>ren<</if>>, but this should be balanced by hope that her offspring will have a better life. <</if>> - <<set $activeSlave.devotion += 4, $citizenOrphanageTotal += $activeSlave.pregType>> + <<set $activeSlave.devotion += 4, $citizenOrphanageTotal += _curBabies>> <</replace>> <<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */ <</link>> //Will cost <<print cashFormat(100)>> weekly// <br><<link '...sent to be raised privately.'>> <<replace #_disposition>> - The child<<if $activeSlave.pregType > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $activeSlave.slaveName + The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $activeSlave.slaveName <<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>> has few thoughts about the matter. <<elseif $activeSlave.devotion > 95>> @@ -167,38 +213,42 @@ already been <<elseif $activeSlave.devotion > 50>> understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@ <<elseif $activeSlave.devotion > 20>> - will miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print she>>'ll understand this is the best possible outcome for a slave mother. + will miss her child<<if _curBabies > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since she'll understand this is the best possible outcome for a slave mother. <<else>> - will resent being separated from her child<<if $activeSlave.pregType > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here. + will resent being separated from her child<<if _curBabies > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here. <</if>> - The child<<if $activeSlave.pregType > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. - <<set $activeSlave.devotion += 6, $privateOrphanageTotal += $activeSlave.pregType>> + The child<<if _curBabies > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. + <<set $activeSlave.devotion += 6, $privateOrphanageTotal += _curBabies>> <</replace>> <<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */ <</link>> //Will cost <<print cashFormat(500)>> weekly// + <<else>> + <<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */ <</if>> </span> <</if>> -<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> +<<if _curBabies+_cToIncub < 1>> + /* Reaction for no live babies here. Placeholder.*/ +<<elseif $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> <br><br> <<if $activeSlave.pregSource == -1>> <<if $activeSlave.devotion < 20 && ($week-$activeSlave.weekAcquired >= $activeSlave.weekAcquired)>> She @@.mediumorchid;despises@@ you for using her body to bear your children. <<set $activeSlave.devotion -= 10>> <<elseif $activeSlave.devotion > 50>> - <<print She>>'s @@.hotpink;so proud@@ to have successfully carried children for you. + She's @@.hotpink;so proud@@ to have successfully carried children for you. <<set $activeSlave.devotion += 3>> <</if>> <</if>> <<if $activeSlave.fetish == "pregnancy">> - She's a little disapointed she didn't get to give birth, but can't wait to get pregnant again. + She's a little disappointed she didn't get to give birth, but can't wait to get pregnant again. <<elseif ($activeSlave.devotion > 50)>> @@.hotpink;pleased by this stark development@@, since she is so attentive to your will. She also expects she'll be able to fuck better now. <<set $activeSlave.devotion += 4>> <<elseif ($activeSlave.devotion > 20)>> - She is broken enough to accept your control of her pregancies. + She is broken enough to accept your control of her pregnancies. <<elseif ($activeSlave.devotion >= -20)>> She would have preferred to give birth when she was ready and is @@.gold;sensibly fearful@@ of your total power over her body. <<set $activeSlave.trust -= 5>> @@ -208,15 +258,15 @@ already been <</if>> <</if>> -<<if $arcologies[0].FSRestart != "unset">> +<<if $arcologies[0].FSRestart != "unset" && _curBabies > 0>> <br><br> <<if $activeSlave.breedingMark == 1 && $activeSlave.pregSource == -1>> The Societal Elite @@.green;are pleased@@ at the new additions to their class. - <<set $failedElite -= 2*$activeSlave.pregType>> + <<set $failedElite -= 2*_curBabies>> <<else>> The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty society under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world. - <<set $failedElite += 5*$activeSlave.pregType>> - <<set $rep -= 10*$activeSlave.pregType>> + <<set $failedElite += 5*_curBabies>> + <<set $rep -= 10*_curBabies>> <</if>> <</if>> @@ -253,11 +303,12 @@ Since her <<if $activeSlave.mpreg == 1>>ass<<else>>vagina<</if>> was spared from <<set $activeSlave.health -= 5>> <</if>> -<<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>> -<<set $reservedChildren -= $activeSlave.reservedChildren>> -<<set $activeSlave.pregType = 0>> -<<set $activeSlave.pregSource = 0>> -<<set $activeSlave.pregKnown = 0>> -<<set $activeSlave.pregWeek = -4>> +<<if $activeSlave.womb.length == 0>> /* Only if pregnancy is really ended... */ + <<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>> + <<set $activeSlave.pregType = 0>> + <<set $activeSlave.pregSource = 0>> + <<set $activeSlave.pregKnown = 0>> + <<set $activeSlave.pregWeek = -4>> +<</if>> <<set $activeSlave.cSec = 1>> <<SetBellySize $activeSlave>> diff --git a/src/pregmod/customizeSlaveTrade.tw b/src/pregmod/customizeSlaveTrade.tw index bd3cc3f9d13ee972e2eeb11178fa05a2c108222e..9bed5816c428666b447cbccbe7483faa8761b2dc 100644 --- a/src/pregmod/customizeSlaveTrade.tw +++ b/src/pregmod/customizeSlaveTrade.tw @@ -1,9 +1,7 @@ :: Customize Slave Trade [nobr] <<if ndef $nationalities>> - <<set $nationalities = []>> -<<else>> - <<set $nationalities.sort()>> + <<set $nationalities = {}>> <</if>> <<if ndef $baseControlsFilter>> <<set $baseControlsFilter = "all">> @@ -18,7 +16,7 @@ When civilization turned upon itself, some countries readily took to enslaving t <br><br> <span id="PopControl"><<include "Basenationalities Controls">></span> <br> -[[Reset filters|passage()][$baseControlsFilter = "all"]] | [[Clear all nationalities|passage()][$nationalities = []]] +[[Reset filters|passage()][$baseControlsFilter = "all"]] | [[Clear all nationalities|passage()][$nationalities = {}]] <br style="clear:both" /><hr style="margin:0"> Vanilla presets: <span id="vanilla-presets"></span> @@ -44,4 +42,4 @@ var widgets = Story.widgets .filter(function(w) { return Macro.has(w.replace(/[<>]/g, '')); }) .sort().join(' | '); setTimeout(function() { new Wikifier(jQuery('#mod-presets'), widgets); }, 0); -<</script>> \ No newline at end of file +<</script>> diff --git a/src/pregmod/electiveSurgery.tw b/src/pregmod/electiveSurgery.tw index de778cb510cfb19e9623078553ae80e2d0e783b5..76633608a427cd69d5b54fd7cf0ad46104835447 100644 --- a/src/pregmod/electiveSurgery.tw +++ b/src/pregmod/electiveSurgery.tw @@ -320,20 +320,20 @@ You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original You have working @@.orange;male and female reproductive organs@@ and a @@.orange;<<if $PC.title > 0>>masculine<<else>>feminine<</if>> appearance.@@ <br> [[Remove your male half|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 0, $cash -= 25000, $surgeryType = "herm2female"]] | - [[Remove your female half|PC Surgery Degradation][$PC.vagina = 0, $PC.preg = 0, $cash -= 25000, $surgeryType = "herm2male"]] + [[Remove your female half|PC Surgery Degradation][$PC.vagina = 0, $PC.preg = 0, WombFlush($PC), $cash -= 25000, $surgeryType = "herm2male"]] <<if $PC.title > 0>> | [[Remove your male half completely|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 0, $PC.title = 0, $cash -= 25000, $surgeryType = "herm2truefemale"]] <<else>> - | [[Remove your female half completely|PC Surgery Degradation][$PC.vagina = 0, $PC.preg = 0, $PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0, $PC.title = 1, $cash -= 25000, $surgeryType = "herm2truemale"]] + | [[Remove your female half completely|PC Surgery Degradation][$PC.vagina = 0, $PC.preg = 0, WombFlush($PC), $PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0, $PC.title = 1, $cash -= 25000, $surgeryType = "herm2truemale"]] <</if>> <<elseif $PC.dick == 1>> You have @@.orange;male genitalia@@ and a @@.orange;<<if $PC.title > 0>>masculine<<else>>feminine<</if>> appearance.@@ <br> [[Have your male organs replaced with female ones|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 0, $PC.vagina = 1, $PC.newVag = 1, $cash -= 50000, $surgeryType = "male2female"]] | - [[Add a female reproductive tract|PC Surgery Degradation][$PC.vagina = 1, $PC.newVag = 1, $PC.preg = 0, $cash -= 150000, $surgeryType = "male2herm"]] + [[Add a female reproductive tract|PC Surgery Degradation][$PC.vagina = 1, $PC.newVag = 1, $PC.preg = 0, WombFlush($PC), $cash -= 150000, $surgeryType = "male2herm"]] <<if $PC.title > 0>> | [[Become a woman|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick == 0, $PC.vagina = 1, $PC.newVag = 1, $PC.preg = 0, $PC.title = 0, $cash -= 50000, $surgeryType = "male2truefemale"]] | - | [[Become a hermaphrodite girl|PC Surgery Degradation][$PC.vagina = 1, $PC.newVag = 1, $PC.preg = 0, $PC.title = 0, $cash -= 150000, $surgeryType = "male2hermfemale"]] + | [[Become a hermaphrodite girl|PC Surgery Degradation][$PC.vagina = 1, $PC.newVag = 1, $PC.preg = 0, WombFlush($PC), $PC.title = 0, $cash -= 150000, $surgeryType = "male2hermfemale"]] <</if>> <<else>> You have @@.orange;female genitalia@@ and a @@.orange;<<if $PC.title > 0>>masculine<<else>>feminine<</if>> appearance.@@ @@ -341,7 +341,7 @@ You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original [[Have your female organs replaced with male ones|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 1, $PC.vagina = 0, $cash -= 50000, $surgeryType = "female2male"]] | [[Add a male reproductive tract|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 1, $cash -= 150000, $surgeryType = "female2herm"]] <<if $PC.title == 0>> - | [[Become a man|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 1, $PC.vagina = 0, $PC.preg = 0, $PC.title = 1, $PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0, $cash -= 50000, $surgeryType = "female2truemale"]] | + | [[Become a man|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 1, $PC.vagina = 0, $PC.preg = 0, WombFlush($PC), $PC.title = 1, $PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0, $cash -= 50000, $surgeryType = "female2truemale"]] | | [[Become a hermaphrodite boy|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.dick = 1, $PC.title = 1, $PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0, $cash -= 150000, $surgeryType = "female2hermmale"]] <</if>> <</if>> diff --git a/src/pregmod/eliteTakeOverResult.tw b/src/pregmod/eliteTakeOverResult.tw index 0579fa894a779a3a07e51cc20e21d773516c92cf..a6f228c3227b06cbf794b345ca5b7a6c7f85f3b3 100644 --- a/src/pregmod/eliteTakeOverResult.tw +++ b/src/pregmod/eliteTakeOverResult.tw @@ -115,11 +115,11 @@ <<else>> <<include "Generate XY Slave">> <</if>> - <<set _origin = "She was a member of the SocialElite, captured in their failed attempt at expressing their displeasure">> + <<set _origin = "She was a member of the Societal Elite, captured in their failed attempt at expressing their displeasure">> <<set $activeSlave.origin = _origin>> - <<set $activeSlave.career = "member of the SocialElite">> + <<set $activeSlave.career = "a member of the Societal Elite">> <<set $activeSlave.prestige = either(2,2,3)>> /* 33% chance of getting level 3 prestige */ - <<set $activeSlave.prestigeDesc = "She was a member of the SocialElite.">> + <<set $activeSlave.prestigeDesc = "She was a member of the Societal Elite.">> <<set $activeSlave.face = random(25,76)>> <<set $activeSlave.devotion = random(-10,-20)>> <<set $activeSlave.trust = random(-20,-30)>> @@ -150,11 +150,11 @@ <<else>> <<include "Generate XY Slave">> <</if>> - <<set _origin = "She was a member of the SocialElite, captured in their failed attempt at expressing their displeasure">> + <<set _origin = "She was a member of the Societal Elite, captured in their failed attempt at expressing their displeasure">> <<set $activeSlave.origin = _origin>> - <<set $activeSlave.career = "member of the SocialElite">> + <<set $activeSlave.career = "a member of the Societal Elite">> <<set $activeSlave.prestige = either(2,2,3)>> - <<set $activeSlave.prestigeDesc = "She was a member of the SocialElite.">> + <<set $activeSlave.prestigeDesc = "She was a member of the Societal Elite.">> <<set $activeSlave.face = random(25,76)>> <<set $activeSlave.devotion = random(-10,-20)>> <<set $activeSlave.trust = random(-20,-30)>> diff --git a/src/pregmod/fFeet.tw b/src/pregmod/fFeet.tw index bc3c005a1fbceae596fd40aa96adb1947815f534..521ece90b88950edba894765f88ade972335ebe4 100644 --- a/src/pregmod/fFeet.tw +++ b/src/pregmod/fFeet.tw @@ -134,7 +134,7 @@ <</if>> <<if $activeSlave.balls == 1>> - <<set _balls = 'vestigal'>> + <<set _balls = 'vestigial'>> <<elseif $activeSlave.balls == 2>> <<set _balls = 'small'>> <<elseif $activeSlave.balls == 3>> @@ -240,7 +240,7 @@ You call $activeSlave.slaveName to your office, telling $possessive to use $poss $pronounCap complies quietly. <<else>> <<if ($activeSlave.trust < -50)>> - Although her she just bearly trusts that you will not harm her, she is still unshure about what you are going to do which makes her pause. + Although her she just barely trusts that you will not harm her, she is still unsure about what you are going to do which makes her pause. <<else>> $pronounCap rushes to comply. <</if>> @@ -270,7 +270,7 @@ You call $activeSlave.slaveName to your office, telling $possessive to use $poss <</if>> <<if $activeSlave.fetish == "mindbroken">> <<if $activeSlave.amp == -2 || $activeSlave.amp == -5>> - then pour lubricant onto your hands, aplying it to $possessive elegant artificial feet. + then pour lubricant onto your hands, applying it to $possessive elegant artificial feet. <<elseif $activeSlave.amp == -4>> then pour lubricant onto your hands, applying it to $possessive deadly artificial feet. <<elseif $activeSlave.amp == -1>> @@ -299,7 +299,7 @@ You call $activeSlave.slaveName to your office, telling $possessive to use $poss $pronounCap seems a bit surprised by the attention, occasionally letting out a moan. <<else>> <<if ($activeSlave.trust < -50)>> - She asks "What is this strange feeling that I am expirencing <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>sir<<else>>ma'am<</if>>? I am scared". Spoiling the moment. + She asks "What is this strange feeling that I am experiencing <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>sir<<else>>ma'am<</if>>? I am scared". Spoiling the moment. <<else>> $pronounCap enjoys the massage, moaning in pleasure at your touch. <</if>> @@ -371,9 +371,9 @@ You call $activeSlave.slaveName to your office, telling $possessive to use $poss <<elseif $activeSlave.fetish == "cumslut" && $activeSlave.fetishKnown == 1 && $activeSlave.fetishStrength >= 60>> As a devoted cumslut, $activeSlave.slaveName eagerly strokes your cock with $possessive feet, delightedly smearing your precum on $possessive soles. $pronounCap <<if canSee($activeSlave)>>stares at your <<if $PC.balls >=2>>massive balls with a ravenous gaze, <<elseif $PC.balls >=1>>large balls with a hungry gaze, <<else>>balls with a steady gaze, <</if>><<else>>gingerly feels the weight of your <<if $PC.balls >=2>>massive balls <<elseif $PC.balls >=1>>large balls <<else>>balls <</if>>with $possessive feet, <</if>>shivering in anticipation. <<elseif $activeSlave.fetish == "humiliation" && $activeSlave.fetishKnown == 1 && $activeSlave.fetishStrength >= 60>> - $activeSlave.slaveName slowly strokes your cock with $possessive feet, getting off on the degrading use of $possessive feet amd avoiding your gaze. $pronounCap is showing an embarassed smile<<if $activeSlave.skin == 'black'>>, and if $possessive skin was any lighter you would see $possessive<<else>> and<</if>> bright blushing cheeks. + $activeSlave.slaveName slowly strokes your cock with $possessive feet, getting off on the degrading use of $possessive feet and avoiding your gaze. $pronounCap is showing an embarrassed smile<<if $activeSlave.skin == 'black'>>, and if $possessive skin was any lighter you would see $possessive<<else>> and<</if>> bright blushing cheeks. <<elseif $activeSlave.fetish == "boobs" && $activeSlave.fetishKnown == 1 && $activeSlave.fetishStrength >= 60>> - As $activeSlave.slaveName deftly strokes your cock with $possessive feet, $possessive hands plays with $possessive <<if $activeSlave.boobs < 299>>erect nipples. <<elseif $activeSlave.boobs < 499>>small chest. <<elseif $activeSlave.boobs >= 18000>>_boobs breasts, though $pronoun can't reach $possessive nipples. <<else>>_boobs breasts and erect nipples. <</if>> $pronounCap is certsinly giving you plenty of sexy options for you to watch. + As $activeSlave.slaveName deftly strokes your cock with $possessive feet, $possessive hands plays with $possessive <<if $activeSlave.boobs < 299>>erect nipples. <<elseif $activeSlave.boobs < 499>>small chest. <<elseif $activeSlave.boobs >= 18000>>_boobs breasts, though $pronoun can't reach $possessive nipples. <<else>>_boobs breasts and erect nipples. <</if>> $pronounCap is certainly giving you plenty of sexy options for you to watch. <<elseif $activeSlave.fetish == "sadist" && $activeSlave.fetishKnown == 1 && $activeSlave.fetishStrength >= 60>> $activeSlave.slaveName is a sadist, and $possessive deft footjob toys with the boundaries of pain and pleasure. $possessiveCap devoted yet belittling <<if canSee($activeSlave)>>gaze carefully watches your face<<else>>expressions are clear as $pronoun feels<</if>> for every reaction. <<elseif $activeSlave.fetish == "dom" && $activeSlave.fetishKnown == 1 && $activeSlave.fetishStrength >= 60>> diff --git a/src/pregmod/forceFeeding.tw b/src/pregmod/forceFeeding.tw index 1f8784aba663e7228c0f15f4abd784f225771464..066caba490b300ea54eece9304ccaa43c8cfc16a 100644 --- a/src/pregmod/forceFeeding.tw +++ b/src/pregmod/forceFeeding.tw @@ -58,7 +58,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going belly, pulling her into your lap. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. It takes little effort to get her to gulp down the contents so you keep the cupfuls coming. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a small burp from the broken slave and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, not that much is with her, but is still unnacceptable. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, not that much is with her, but is still unacceptable. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -106,7 +106,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> belly. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. She struggles in your lap and refuses to open her mouth. You drop the cup back into the bucket and lean in close. You quickly clip her nose shut, eliciting a panicked thrash from the girl.<<if $activeSlave.amp != 1>> You warn her that her punishment will be severe if she comes that close to kicking over the buckets again.<</if>> With her mouth forced open, you now have a clear avenue with which to pour the slave food into her mouth. She sputters as she struggles to swallow with her nose shut. After several cups, tears are streaming down her face from the discomfort. Weeping, she implores you to remove the clamp so that she may drink like a good girl. You readily comply and waste no time in bring cupful after cupful to her lips. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a shudder from the groaning slave and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, given how pathetically she is cowering from your wrath, but is completely unnacceptable. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, given how pathetically she is cowering from your wrath, but is completely unacceptable. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -154,7 +154,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> belly. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. She submissively drinks the contents and readies her lips for the next, so you keep the cupfuls coming. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a subtle belch from the moaning slave that she quickly apologizes for, and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach onto your floor. It didn't seem to be willful, given how she is begging to clean it up with her tongue, but is completely unnacceptable. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach onto your floor. It didn't seem to be willful, given how she is begging to clean it up with her tongue, but is completely unacceptable. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -202,7 +202,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> belly. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. She hurriedly gulps down the contents and opens wide for the next, so you keep the cupfuls coming. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a subtle belch from the moaning slave and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, given how she is in tears over the loss of such a meal, but is completely unnacceptable. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, given how she is in tears over the loss of such a meal, but is completely unacceptable. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -250,7 +250,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> belly. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. She wordless drinks the contents, so you keep the cupfuls coming. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a small shudder from the bloated slave and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, given how she is begging you to try again, but is completely unnacceptable. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach all over herself and your lap. It didn't seem to be willful, given how she is begging you to try again, but is completely unacceptable. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -298,7 +298,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> belly. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. She drinks the contents without hesitation, so you keep the cupfuls coming. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a small hiccup, that she immediately apologizes for, from the overfilled slave and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach across the floor. It didn't seem to be willful, given how disapointed she is in failing you, but is completely unnacceptable. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave, shortly expelling the entirety of her stomach across the floor. It didn't seem to be willful, given how disappointed she is in failing you, but is completely unacceptable. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -346,7 +346,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> belly. You hold her tight as you pull her meal closer, dip in a cup and bring it to her lips. She happily downs the contents, so you keep the cupfuls coming. You can feel her $activeSlave.skin belly swelling with $activeSlave.inflationType as it pushes out against your hand. Once she has downed two liters, you give her bloated belly a slap, eliciting a cute burp followed by her tongue running over her lips, from the bloated slave and a little jiggle from her gut. <<if $activeSlave.pregKnown == 0 && $activeSlave.preg > 3 && _isDone > 0>> - As soon as the next helping enters her you feel something is wrong. She begins to strongly heave while struggling to keep down the slave food, however, she shortly expels the entirety of her stomach across the floor. It didn't seem to be willful, given how disapointed she is in failing you, but is worrying. Such a good slave shouldn't do such bad things. + As soon as the next helping enters her you feel something is wrong. She begins to strongly heave while struggling to keep down the slave food, however, she shortly expels the entirety of her stomach across the floor. It didn't seem to be willful, given how disappointed she is in failing you, but is worrying. Such a good slave shouldn't do such bad things. <<set _pregDiscovery = 1>> <<else>> <<if _isDone > 0>> @@ -423,7 +423,7 @@ buckets overflowing with slave food. She is going to eat it all and you're going <</if>> <<if _pregDiscovery == 1>> - Once you've managed to stop her heaving and clean up, you get to the root of this mess. While most of the tests come back normal, one in particluar catches your eye; @@.lime;She is pregnant<<if $activeSlave.preg > 10>> and surprisingly far along<</if>>.@@ + Once you've managed to stop her heaving and clean up, you get to the root of this mess. While most of the tests come back normal, one in particular catches your eye; @@.lime;She is pregnant<<if $activeSlave.preg > 10>> and surprisingly far along<</if>>.@@ <<set $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0, $activeSlave.pregKnown = 1>> <<else>> <<if $activeSlave.inflation == 3>> diff --git a/src/pregmod/generateChild.tw b/src/pregmod/generateChild.tw index 31757956f088bd031049a91d430d5d6a59a56360..07cc52e3ad9e4c2f632ac8ce92b574e04dbc41c8 100644 --- a/src/pregmod/generateChild.tw +++ b/src/pregmod/generateChild.tw @@ -441,7 +441,7 @@ /* Int and facial attractiveness changes to bolster eugenics and add negatives for excessive inbreeding */ <<if $activeSlave.mother == -1 && $PC.pregSource == -1>> - <<set $activeSlave.face = random(50,100)>> + <<set $activeSlave.face = random(90,100)>> <<set $activeSlave.intelligence = either(2, 2, 2, 2, 3, 3)>> <<elseif $activeSlave.mother == -1>> <<if $PC.pregSource > 0>> @@ -466,29 +466,31 @@ <<set $activeSlave.intelligence = either(1, 2, 2, 2, 2, 3, 3)>> <</if>> <<elseif $activeSlave.father == -1>> - <<if $mom.breedingMark == 1>> - <<set $activeSlave.face = random(60,100)>> - <<set $activeSlave.intelligence = either(2, 2, 2, 2, 3, 3)>> + <<if $PC.face > $mergeMom.face>> + <<set $activeSlave.face = random($mergeMom.face, $PC.face)>> <<else>> - <<if $PC.face > $mergeMom.face>> - <<set $activeSlave.face = random($mergeMom.face, $PC.face)>> - <<else>> - <<set $activeSlave.face = either($mergeMom.face-10, $mergeMom.face+10)>> + <<set $activeSlave.face = either($mergeMom.face-10, $mergeMom.face+10)>> + <</if>> + <<if $PC.intelligence > $mergeMom.intelligence>> + <<set $activeSlave.intelligence = random($mergeMom.intelligence, $PC.intelligence)>> + <<else>> + <<set $activeSlave.intelligence = $mergeMom.intelligence>> + <</if>> + <<if $mom.breedingMark == 1>> + <<if $activeSlave.face < 60>> + <<set $activeSlave.face = random(60,100)>> <</if>> - <<if $PC.intelligence > $mergeMom.intelligence>> - <<set $activeSlave.intelligence = random($mergeMom.intelligence, $PC.intelligence)>> - <<else>> - <<set $activeSlave.intelligence = $mergeMom.intelligence>> + <<if $activeSlave.intelligence < 2>> + <<set $activeSlave.intelligence = either(2, 2, 2, 2, 3, 3)>> <</if>> - <<if $inbreeding == 1>> - <<if $activeSlave.face > -100 && random(1,100) > 60>> - <<set $activeSlave.face -= random(2,20)>> - <</if>> - <<if $activeSlave.intelligence > -3 && random(1,100) < 40>> + <<elseif $inbreeding == 1>> + <<if $activeSlave.face > -100 && random(1,100) > 60>> + <<set $activeSlave.face -= random(2,20)>> + <</if>> + <<if $activeSlave.intelligence > -3 && random(1,100) < 40>> + <<set $activeSlave.intelligence -= 1>> + <<if $activeSlave.intelligence > -3 && random(1,100) < 20>> <<set $activeSlave.intelligence -= 1>> - <<if $activeSlave.intelligence > -3 && random(1,100) < 20>> - <<set $activeSlave.intelligence -= 1>> - <</if>> <</if>> <</if>> <</if>> diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index 997e4b8c0a4ea3cac841982dbfe3574d601c2075..a54a63469161e207cb33a5b0c959d7b6fd7b93c2 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -1,5 +1,5 @@ :: Incubator [nobr] - + <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Incubator">> <<set $targetAge = Number($targetAge) || $minimumSlaveAge>> <<set $targetAge = Math.clamp($targetAge, $minimumSlaveAge, 42)>> @@ -49,6 +49,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<if $slaves[_u].pregType > 1>>$slaves[_u].pregType babies<<else>>baby<</if>>. <<if $slaves[_u].reservedChildren > 0>> + <<set _childrenReserved = 1>> <<if $slaves[_u].pregType == 1>> Her child will be placed in $incubatorName. <<elseif $slaves[_u].reservedChildren < $slaves[_u].pregType>> @@ -117,6 +118,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ octuplets. <</switch>> <<if $PC.reservedChildren > 0>> + <<set _childrenReserved = 1>> <<if $PC.pregType == 1>> Your child will be placed in $incubatorName. <<elseif $PC.reservedChildren < $PC.pregType>> @@ -157,7 +159,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ You have @@.red;no room for your offspring.@@ <</if>> <</if>> -<<if $reservedChildren != 0>> /* the oops I made it go negative somehow button */ +<<if $reservedChildren != 0 || _childrenReserved == 1>> /* the oops I made it go negative somehow button */ <br> <<link "Clear all reserved children">> <<for _u = 0; _u < _SL; _u++>> @@ -287,7 +289,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <<else>> immense. <</if>> - <<if $tanks[$i].dick > 0>> + <<if $tanks[$i].dick > 0>> <<if $tanks[$i].dick <= 3>> The latest analysis reported her dick will end up being around the average <<elseif $tanks[$i].dick >= 4 && $tanks[$i].dick <= 6>> @@ -372,7 +374,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <</if>> <</if>> <<if $cheatMode == 1>> - <br>''Cheatmode:'' + <br>''Cheatmode:'' <<link "Retrieve immediately">> <<set $incubatorOldID = $tanks[$i].ID>> <<set $readySlave = $tanks.pluck([$i], [$i])>> @@ -443,7 +445,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <</link>> <</if>> <<if $tanks[$i].eyes == -2 && $tankOrgans.eyes != 1>> - <br>She appears to be blind: + <br>She appears to be blind: <<link "Prepare eyes">> <<set $cash -= 10000>> <<set _newOrgan = {type: "eyes", weeksToCompletion: "10", ID: 0}>> @@ -453,7 +455,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <</link>> <</if>> <<if $tanks[$i].voice == 0 && $tankOrgans.voicebox != 1>> - <br>It appears she was born a mute: + <br>It appears she was born a mute: <<link "Prepare vocal cords">> <<set $cash -= 5000>> <<set _newOrgan = {type: "voicebox", weeksToCompletion: "5", ID: 0}>> diff --git a/src/pregmod/incubatorReport.tw b/src/pregmod/incubatorReport.tw index 43d9542b47546e1244ed52323c8e7043cfff86e0..18b873776236d56a53c1b863e2fe5228fbb496ec 100644 --- a/src/pregmod/incubatorReport.tw +++ b/src/pregmod/incubatorReport.tw @@ -217,10 +217,13 @@ Combined with the abundant food provided to her, her body grows rapidly. <<if $tanks[_inc].ovaries == 1>> <<set $tanks[_inc].pubertyXX = 1>> + <<if $tanks[_inc].hormoneBalance < 500>> + <<set $tanks[_inc].hormoneBalance += 100>> + <</if>> <<if $seeHyperPreg == 1>> - <<set $tanks[_inc].pregType = random(25,45)>> + <<set $tanks[_inc].readyOva = random(25,45)>> <<else>> - <<set $tanks[_inc].pregType = random(3,8)>> + <<set $tanks[_inc].readyOva = random(3,8)>> <</if>> <<if $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].boobs < 8000>> @@ -290,6 +293,9 @@ <</if>> <<elseif $tanks[_inc].balls > 0>> <<set $tanks[_inc].pubertyXY = 1>> + <<if $tanks[_inc].hormoneBalance > -500>> + <<set $tanks[_inc].hormoneBalance -= 100>> + <</if>> <<if $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].balls < 40>> The excess testosterone-laced growth hormones @@.green;cause her balls to balloon for extra cum production.@@ @@ -341,10 +347,13 @@ Combined with the healthy food provided to her, her body grows readily. <<if $tanks[_inc].ovaries == 1>> <<set $tanks[_inc].pubertyXX = 1>> + <<if $tanks[_inc].hormoneBalance < 500>> + <<set $tanks[_inc].hormoneBalance += 100>> + <</if>> <<if $seeHyperPreg == 1>> - <<set $tanks[_inc].pregType = random(15,25)>> + <<set $tanks[_inc].readyOva = random(15,25)>> <<else>> - <<set $tanks[_inc].pregType = random(2,6)>> + <<set $tanks[_inc].readyOva = random(2,6)>> <</if>> <<if $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].boobs < 4000>> @@ -414,6 +423,9 @@ <</if>> <<elseif $tanks[_inc].balls > 0>> <<set $tanks[_inc].pubertyXY = 1>> + <<if $tanks[_inc].hormoneBalance > -500>> + <<set $tanks[_inc].hormoneBalance -= 100>> + <</if>> <<if $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].balls < 10>> The excess testosterone-laced growth hormones @@.green;cause her balls to balloon for extra cum production.@@ @@ -465,10 +477,13 @@ Since her body has little to work with, her growth is fairly minor. <<if $tanks[_inc].ovaries == 1>> <<set $tanks[_inc].pubertyXX = 1>> + <<if $tanks[_inc].hormoneBalance < 500>> + <<set $tanks[_inc].hormoneBalance += 100>> + <</if>> <<if $seeHyperPreg == 1>> - <<set $tanks[_inc].pregType = random(10,15)>> + <<set $tanks[_inc].readyOva = random(10,15)>> <<else>> - <<set $tanks[_inc].pregType = random(2,4)>> + <<set $tanks[_inc].readyOva = random(2,4)>> <</if>> <<if $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].boobs < 2000>> @@ -538,6 +553,9 @@ <</if>> <<elseif $tanks[_inc].balls > 0>> <<set $tanks[_inc].pubertyXY = 1>> + <<if $tanks[_inc].hormoneBalance > -500>> + <<set $tanks[_inc].hormoneBalance -= 100>> + <</if>> <<if $incubatorUpgradeSpeed == 52>> <<if $tanks[_inc].balls < 6>> The excess testosterone-laced growth hormones @@.green;cause her balls to grow for extra cum production.@@ @@ -590,6 +608,7 @@ Her hormone levels are being carefully managed, @@.green;encouraging early puberty.@@ <<if $tanks[_inc].ovaries == 1>> <<set $tanks[_inc].pubertyXX = 1>> + <<set $tanks[_inc].hormoneBalance = 250>> <<if $tanks[_inc].boobs < 400 && random(1,100) > 60>> The added estrogen @@.green;causes her breasts to swell.@@ <<set $tanks[_inc].boobs += 50>> @@ -604,6 +623,7 @@ <</if>> <<elseif $tanks[_inc].balls > 0>> <<set $tanks[_inc].pubertyXY = 1>> + <<set $tanks[_inc].hormoneBalance = -250>> <<if $tanks[_inc].balls < 3 && random(1,100) > 80>> The added testosterone @@.green;causes her balls to swell.@@ <<set $tanks[_inc].balls++>> @@ -614,6 +634,11 @@ <</if>> <</if>> <<else>> + <<if $tanks[_inc].hormoneBalance > 100>> + <<set $tanks[_inc].hormoneBalance -= 50>> + <<elseif $tanks[_inc].hormoneBalance < -100>> + <<set $tanks[_inc].hormoneBalance += 50>> + <</if>> <<if $tanks[_inc].balls > 0>> <<if $tanks[_inc].balls > 1>> <<set $tanks[_inc].balls -= 5>> @@ -636,6 +661,11 @@ <</if>> <</if>> <<else>> + <<if $tanks[_inc].hormoneBalance > 100>> + <<set $tanks[_inc].hormoneBalance -= 50>> + <<elseif $tanks[_inc].hormoneBalance < -100>> + <<set $tanks[_inc].hormoneBalance += 50>> + <</if>> <<if $tanks[_inc].balls > 0>> <<if $tanks[_inc].balls > 1>> <<set $tanks[_inc].balls -= 5>> @@ -673,6 +703,7 @@ <<set $tanks[_inc].balls = Math.clamp($tanks[_inc].balls, 0, 40)>> <<set $tanks[_inc].boobs = Math.clamp($tanks[_inc].boobs, 0, 30000)>> <<set $tanks[_inc].height = Math.clamp($tanks[_inc].height, 0, 274)>> + <<set $tanks[_inc].hormoneBalance = Math.clamp($tanks[_inc].hormoneBalance, -500, 500)>> <br> <</for>> diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index 1d97c06bba8c0e9c32ac2de9990c33f816855e46..48649f13b3a1818c263aba24c273b95870ba6879 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -3,6 +3,10 @@ <<set $nextButton = "Back", $nextLink = "Main", $showEncyclopedia = 0>> <<PCTitle>> +<<if $cheatMode == 1>> + <center>//[[Cheat Edit Player|PCCheatMenu][$cheater = 1]]<br><br>//</center> +<</if>> + You pause for a moment from your busy day to day life to return to <<if $masterSuite != 0>>$masterSuiteName<<else>>your room<</if>> to consider some things about yourself. <br>You take yourself in a full length mirror. You are a $PC.race <<if $PC.dick == 1 && $PC.vagina == 1>>futanari<<elseif $PC.dick == 1>>man<<else>>woman<</if>> with<<if $PC.markings == "freckles">> freckled<<elseif $PC.markings == "heavily freckled">> heavily freckled<</if>> <<print $PC.skin>> skin, $PC.hColor hair and $PC.eyeColor eyes. <<if $PC.actualAge >= 65>> @@ -14,7 +18,7 @@ You pause for a moment from your busy day to day life to return to <<if $masterS <<else>> You're @@.orange;$PC.actualAge@@ and full of vigor.<<if $PC.visualAge > $PC.actualAge>> You've taken measures to @@.lime;look an older $PC.visualAge@@ and reap the respect that comes with it.<<elseif $PC.visualAge < $PC.actualAge>> You've taken measures to @@.lime;look a younger $PC.visualAge,@@ even though society may find your looks uncomfortable.<</if>> <</if>> -<<if ($playerAging != 0)>>Your birthday is <<if $PC.birthWeek is 51>>next week<<else>>in <<print 52-$PC.birthWeek>> weeks<</if>>.<</if>> +<<if ($playerAging != 0)>>Your birthday is <<if $PC.birthWeek == 51>>next week<<else>>in <<print 52-$PC.birthWeek>> weeks<</if>>.<</if>> Looking down; <<PlayerBoobs>> <<PlayerBelly>> @@ -209,6 +213,31 @@ You ponder what skills may be useful in running your arcology. Alcohol makes pain go away, right? <</if>> +<br>Hacking: +<<if $PC.hacking >= 100>> + You are a master of hacking. +<<elseif $PC.hacking >= 80>> + You are an expert at hacking. +<<elseif $PC.hacking >= 60>> + You are skilled in hacking. +<<elseif $PC.hacking >= 40>> + You know some things about hacking. +<<elseif $PC.hacking >= 20>> + You are a beginner in hacking. +<<elseif $PC.hacking >= 0>> + You know only the basics of hacking. +<<elseif $PC.hacking >= -20>> + You know how to click a mouse. +<<elseif $PC.hacking >= -40>> + Enter does something? +<<elseif $PC.hacking >= -60>> + Where is the "any" key? +<<elseif $PC.hacking >= -80>> + You can push the power button, good job. +<<else>> + This black box thingy is magical. +<</if>> + <br><br> On formal occasions, you are announced as $PCTitle. By slaves, however, you prefer to be called <<if ndef $PC.customTitle>><<if $PC.title == 1>>Master<<else>>Mistress<</if>><<else>>$PC.customTitle, or $PC.customTitleLisp, by those slaves incapable of saying $PC.customTitle correctly<</if>>. <span id="result"> @@ -314,13 +343,13 @@ __Contraceptives and Fertility__ <span id="miniscene"> <<if $PC.preg < 6 && $PC.pregKnown == 1 && $PC.pregSource != -1>> - Your period is late, so the first thing you do is test yourself for a potential pregnancy: @@.lime;you are pregnant.@@ <<link "Abort your child">><<replace "#miniscene">><<set $PC.preg = 0, $PC.pregType = 0, $PC.pregSource = 0, $PC.pregKnown = 0>><<print "You take a syringe filled with abortifacients and make your self comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br> <</replace>><</link>> + Your period is late, so the first thing you do is test yourself for a potential pregnancy: @@.lime;you are pregnant.@@ <<link "Abort your child">><<replace "#miniscene">><<set $PC.preg = 0, $PC.pregType = 0, $PC.pregSource = 0, $PC.pregKnown = 0, $PC.pregWeek = 0>><<set WombFlush($PC)>><<print "You take a syringe filled with abortifacients and make your self comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br> <</replace>><</link>> <<elseif $PC.labor == 1>> You are beginning to feel contractions, you'll be giving birth soon. <<elseif $PC.preg >= 39>> Your due date is looming, but your child doesn't seem to be interested in coming out just yet. [[Induce childbirth|Manage Personal Affairs][$PC.labor = 1]] <<elseif $PC.pregKnown == 1 && $PC.pregSource != -1>> - You're pregnant, something rather unbecoming for an arcology owner. <<link "Abort your child">><<replace "#miniscene">><<set $PC.preg = 0, $PC.pregWeek == -2, $PC.pregType = 0, $PC.pregSource = 0, $PC.belly = 0, $PC.pregKnown = 0>><<print "You take a syringe filled with abortifacients and make your self comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br> <</replace>><</link>> + You're pregnant, something rather unbecoming for an arcology owner. <<link "Abort your child">><<replace "#miniscene">><<set $PC.preg = 0, $PC.pregWeek = -2, $PC.pregType = 0, $PC.pregSource = 0, $PC.belly = 0, $PC.pregKnown = 0>><<set WombFlush($PC)>><<print "You take a syringe filled with abortifacients and make your self comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br> <</replace>><</link>> <</if>> </span> @@ -382,7 +411,7 @@ In total, you have given birth to: <<elseif $PC.preg > 1>> You've missed your period. This could be bad. <<elseif $PC.preg > 0 && $PC.pregSource != -1>> - Your fertile pussy has been thoroughly seeded, there is a chance you are pregnant. [[Pop some morning after pills|Manage Personal Affairs][$PC.preg = 0, $PC.pregWeek == 0, $PC.pregKnown = 0, $PC.pregType = 0]] + Your fertile pussy has been thoroughly seeded, there is a chance you are pregnant. <<link "Pop some morning after pills">><<set $PC.preg = 0, $PC.pregWeek = 0, $PC.pregType = 0, $PC.pregSource = 0, $PC.pregKnown = 0>><<set WombFlush($PC)>><<goto "Manage Personal Affairs">><</link>> <<elseif $PC.pregWeek < 0>> You're still recovering from your recent pregnancy. <<elseif $PC.preg == -2>> @@ -427,7 +456,7 @@ In total, you have given birth to: <br><br> The tap connected to $dairyName is calling to you. Begging to let it fill you with cum again. If you wanted to try and go bigger, that is. <br>[[Sounds fun!|FSelf]] - <br>[[You only want to get pregnant.|Manage Personal Affairs][$PC.preg = 1, $PC.pregSource = 0]] + <br><<link "You only want to get pregnant.">><<set $PC.preg = 1, $PC.pregWeek = 1, $PC.pregSource = 0, $PC.pregKnown = 1>><<set $PC.pregType = setPregType($PC)>><<set WombImpregnate($PC, $PC.pregType, 0, 1)>><<goto "Manage Personal Affairs">><</link>> <</if>> <</if>> <<if $PC.vagina == 1 && $PC.dick == 1>> diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw index e0a8dccade16c3e667596aa7cc52e5bdd4668f2d..2390967bbbfa6d42171b49103387981e5a9c4432 100644 --- a/src/pregmod/newChildIntro.tw +++ b/src/pregmod/newChildIntro.tw @@ -316,10 +316,10 @@ You completed the legalities before heading to $incubatorName, knowing the tank Her eyes focus on _tempMom.slaveName's <<print _tempMom.boobs>>cc tits, taking in every centimeter of their enormity, but lingering on her <<if _tempMom.lactation == 2>>milk gushing <<elseif _tempMom.lactation == 1>>milk leaking <</if>>_tempMom.nipples nipples. <<set _momInterest = "boobs">> <<elseif _tempMom.bellyPreg >= 450000>> - Her eyes focus on _tempMom.slaveName's massively distended, child-filled belly, taking in every obvious motion beneath her taut skin.<<if $activeSlave.pregType >= 20>> A hand runs across her own bloated middle and another down to her moist pussy.<</if>> + Her eyes focus on _tempMom.slaveName's massively distended, child-filled belly, taking in every obvious motion beneath her taut skin.<<if $activeSlave.readyOva >= 20>> A hand runs across her own bloated middle and another down to her moist pussy.<</if>> <<set _momInterest = "belly">> <<elseif _tempMom.belly >= 5000>> - Her eyes focus on _tempMom.slaveName's rounded middle, staring in fascination at the unfamiliar bulge.<<if $activeSlave.pregType >= 20>> A hand runs across her own middle and another down to her moist pussy.<</if>> + Her eyes focus on _tempMom.slaveName's rounded middle, staring in fascination at the unfamiliar bulge.<<if $activeSlave.readyOva >= 20>> A hand runs across her own middle and another down to her moist pussy.<</if>> <<set _momInterest = "belly">> <<elseif _tempMom.dick > 15>> Her eyes focus on _tempMom.slaveName's <<print (6*_tempMom.dick)>>cm long dick, trying to understand how it can fit in a girl. @@ -400,10 +400,10 @@ You completed the legalities before heading to $incubatorName, knowing the tank Her eyes focus on _tempDad.slaveName's <<print _tempDad.boobs>>cc tits, taking in every centimeter of their enormity, but lingering on her <<if _tempDad.lactation == 2>>milk gushing <<elseif _tempDad.lactation == 1>>milk leaking <</if>>_tempDad.nipples nipples. <<set _dadInterest = "boobs">> <<elseif _tempDad.bellyPreg >= 450000>> - Her eyes focus on _tempDad.slaveName's massively distended, child-filled belly, taking in every obvious motion beneath her taut skin.<<if $activeSlave.pregType >= 20>> A hand runs across her own bloated middle and another down to her moist pussy.<</if>> + Her eyes focus on _tempDad.slaveName's massively distended, child-filled belly, taking in every obvious motion beneath her taut skin.<<if $activeSlave.readyOva >= 20>> A hand runs across her own bloated middle and another down to her moist pussy.<</if>> <<set _dadInterest = "belly">> <<elseif _tempDad.belly >= 5000>> - Her eyes focus on _tempDad.slaveName's rounded middle, staring in fascination at the unfamiliar bulge.<<if $activeSlave.pregType >= 20>> A hand runs across her own middle and another down to her moist pussy.<</if>> + Her eyes focus on _tempDad.slaveName's rounded middle, staring in fascination at the unfamiliar bulge.<<if $activeSlave.readyOva >= 20>> A hand runs across her own middle and another down to her moist pussy.<</if>> <<set _dadInterest = "belly">> <<elseif _tempDad.dick > 15>> Her eyes focus on _tempDad.slaveName's <<print (6*_tempDad.dick)>>cm long dick, trying to understand how it can fit in a girl. @@ -564,7 +564,7 @@ You slowly strip down, gauging her reactions to your show, until you are fully n <</if>> <</if>> <<if $arcologies[0].FSRepopulationFocus >= 50>> - <<if $activeSlave.pregType > 0>> + <<if $activeSlave.readyOva > 0>> She notices all the rounded bellies in your arcology and @@.mediumaquamarine;instinctively feels at home with her egg filled womb.@@ <<set $activeSlave.trust += 2>> <</if>> @@ -640,14 +640,9 @@ You slowly strip down, gauging her reactions to your show, until you are fully n <<if $seePreg != 0>> <<if isFertile($activeSlave)>> <br><<link "Impregnate her">> -<<set $activeSlave.preg = 1>> -<<SetPregType $activeSlave>> -<<set $activeSlave.pregSource = -1>> -<<set $activeSlave.pregKnown = 1>> -<<set $activeSlave.pregWeek = 1>> <<replace "#result">> - <<if $activeSlave.pregType > 0>> - You don't need to perform an exam to know that she is fertile; her nethers are swollen with need and her pussy dripping with desire<<if $activeSlave.pregType > 20>>, and her stomach is already slightly bloated with the number of fertile eggs within her womb<</if>>. She moans with pent-up lust as you deeply penetrate her and begin steadily thrusting. Her tight pussy hungrily massages your dick as you near your climax, prompting you to hilt yourself in her before seeding the deepest reaches of her pussy. She passed out in ecstasy, so you carry her bred body to the couch to recover. She should make the connection once her belly starts to rapidly swell with child. + <<if $activeSlave.readyOva > 0>> + You don't need to perform an exam to know that she is fertile; her nethers are swollen with need and her pussy dripping with desire<<if $activeSlave.readyOva > 20>>, and her stomach is already slightly bloated with the number of fertile eggs within her womb<</if>>. She moans with pent-up lust as you deeply penetrate her and begin steadily thrusting. Her tight pussy hungrily massages your dick as you near your climax, prompting you to hilt yourself in her before seeding the deepest reaches of her pussy. She passed out in ecstasy, so you carry her bred body to the couch to recover. She should make the connection once her belly starts to rapidly swell with child. <<else>> You perform a careful medical examination to verify fertility, and then forcefully take the girl's virginity. Whenever you feel able, you drain your balls into her cunt, only allowing her to wander off when scans verify a fertilized ovum. She didn't properly understand the scans, so she just thought it was sex; she won't realize what happened for some months at least, and in the mean time, will think she is just getting fat. Though once her child starts kicking, she might make the connection between sex and pregnancy. <</if>> @@ -662,6 +657,12 @@ You slowly strip down, gauging her reactions to your show, until you are fully n Society @@.green;approves@@ of your promptly putting a new slave in her; this advances the idea that all slaves should bear their masters' babies. <<FSChange "GenderFundamentalist" 2>> <</if>> + <<set $activeSlave.preg = 1>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set $activeSlave.pregSource = -1>> + <<set $activeSlave.pregKnown = 1>> + <<set $activeSlave.pregWeek = 1>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>> <</replace>> <</link>> <</if>> diff --git a/src/pregmod/organFarmOptions.tw b/src/pregmod/organFarmOptions.tw index 7d2bf7b305c7e563fba6d6884b605a43f4e729e0..18c8b5136ad1f493775c1b78df8511c19b95af1d 100644 --- a/src/pregmod/organFarmOptions.tw +++ b/src/pregmod/organFarmOptions.tw @@ -242,7 +242,30 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr <<for _i = 0; _i < $organs.length; _i++>> <<if $organs[_i].ID == $activeSlave.ID>> <br> - $possessiveCap $organs[_i].type is expected to be ready in <<if $organFarmUpgrade == 1>><<print $organs[_i].weeksToCompletion>><<elseif $organFarmUpgrade == 2>><<print Math.ceil($organs[_i].weeksToCompletion/2)>><<elseif $organFarmUpgrade == 3>><<print Math.ceil($organs[_i].weeksToCompletion/4)>><</if>> weeks. + $possessiveCap + <<switch $organs[_i].type>> + <<case "penis" "scrotum" "foreskin" "prostate" "voicebox">> + $organs[_i].type is + <<case "testicles" "ovaries" "eyes">> + $organs[_i].type are + <<case "pigTesticles">> + pig testicles are + <<case "dogTesticles">> + dog testicles are + <<case "freshOvaries">> + revitalized ovaries are + <<case "pigOvaries">> + pig ovaries are + <<case "dogOvaries">> + dog ovaries are + <<case "mpreg">> + anal womb and ovaries are + <<case "mpregPig">> + anal womb and pig ovaries are + <<case "mpregDog">> + anal womb and dog ovaries are + <</switch>> + expected to be ready in <<if $organFarmUpgrade == 1>><<print $organs[_i].weeksToCompletion>><<elseif $organFarmUpgrade == 2>><<print Math.ceil($organs[_i].weeksToCompletion/2)>><<elseif $organFarmUpgrade == 3>><<print Math.ceil($organs[_i].weeksToCompletion/4)>><</if>> weeks. <</if>> <</for>> <</if>> diff --git a/src/pregmod/pInsemination.tw b/src/pregmod/pInsemination.tw index 912dedd0de7a6550450600bfe7f5e59ea3499795..e2de7ce96e8ee79e8410c6e9961d9ab740d77c10 100644 --- a/src/pregmod/pInsemination.tw +++ b/src/pregmod/pInsemination.tw @@ -84,7 +84,7 @@ You arrive at the apartment of the rather moody girl with both sets of functional genitals. What answers the door surprises you; she is extremely pregnant, easily ready to drop. Positioning you over the edge of her bed, she mounts you and begins to enjoy herself. Between the sensations within your pussy, <<if $PC.dick == 1>>your dick's motions against her satin sheets,<</if>>and her belly rubbing up and down your ass and lower back; you quickly tense up in orgasm, prompting her to cum strongly into your pussy. You help her onto her couch and head on your way, but not before she informs you that she'll be waiting to fuck you when you are as pregnant as she is now. <<set $preggoCount++>> <<elseif $preggoCount == 1>> - You arrive at the apartment of the heavily pregnant futa. When she answers the door and you are greeted by an even larger belly than last time it become abundantly clear that you two are on similar reproductive schedules. Noticing your look, she grabs your hands and happily says "twins". You wrap you arms around your lover for the evening and help her back to her bed, enjoying the weight of her middle. She stops you once she takes a seat and asks "You know, I have some fertility drugs if you want to get as big as me this time, cutey?" You shake your head "no", being that pregnant would certainly impede your ability to run the arcology. She sighs and lies back, her stiff prick pressed against the underside of her belly, and invites you to ride her cock. You waste no time in mounting her, the feel of <<if $PC.dick == 1>>your own erection rubbing between your bellies<<else>>the underside of her pregnancy pushing into your own middle<</if>> as she thrusts up into you driving you wild with lust. It doesn't take long for you to start bucking with orgasm and wrapping your arms around her gravid middle. Her occupants send several kicks your way as she quickens her pace, grabs your hips, and thrusts hard, cumming deep in your pussy. Panting, you slide off her and snuggle up beside her as you catch your breath. "You're looking good after having a child you know? But obviously you looked even better heavy with my child. I'm keeping those pictures of you close!" she says with a giggle as you rise. With a gentle pat on your bottom, she sends you on your way. + You arrive at the apartment of the heavily pregnant futa. When she answers the door and you are greeted by an even larger belly than last time it becomes abundantly clear that you two are on similar reproductive schedules. Noticing your look, she grabs your hands and happily says "twins". You wrap you arms around your lover for the evening and help her back to her bed, enjoying the weight of her middle. She stops you once she takes a seat and asks "You know, I have some fertility drugs if you want to get as big as me this time, cutey?" You shake your head "no", being that pregnant would certainly impede your ability to run the arcology. She sighs and lies back, her stiff prick pressed against the underside of her belly, and invites you to ride her cock. You waste no time in mounting her, the feel of <<if $PC.dick == 1>>your own erection rubbing between your bellies<<else>>the underside of her pregnancy pushing into your own middle<</if>> as she thrusts up into you, driving you wild with lust. It doesn't take long for you to start bucking with orgasm and wrapping your arms around her gravid middle. Her occupants send several kicks your way as she quickens her pace, grabs your hips, and thrusts hard, cumming deep in your pussy. Panting, you slide off her and snuggle up beside her as you catch your breath. "You're looking good after having a child you know? But obviously you looked even better heavy with my child. I'm keeping those pictures of you close!" she says with a giggle as you rise. With a gentle pat on your bottom, she sends you on your way. <<set $preggoCount++>> <<else>> You arrive once more at the apartment of the heavily pregnant futa, though this time she takes awhile to reach the door by the sound of it. When it opens, you are greeting by her usual smile and an octuplets stuffed belly. She grabs your hand and pulls it to her taut middle. "Feel them kick! There's so many of them, it feels amazing!" You wrap you arms around your heavy lover for the evening and help her back to her bed, savoring the weight of her pregnancy. She stops you once she takes a seat and asks "My offer still stands, cutey. I assure you it feels amazing to be so full of babies." You shake your head "no", being that pregnant would definitely impede your ability to run the arcology and even enjoy your slaves properly. She lies back, before shifting her weight to her side out of discomfort. Her belly is really big, and hangs low enough that reaching her needy cock is quite the challenge, you take a moment to think of a good position to receive her. You take her dick, and gently sliding yourself between her legs, fit it into your pussy. The two of you buck against each other as best you can; a struggle, seeing as you are bearing the weight of her children right now. You have no choice but to wrap your arms around the eagerly kicking mass<<if $PC.dick == 1>>, trapping your dick between it and yourself,<</if>> as you near your climax. You feel your nethers clamp down as she cums, hard, deep into your pussy. Her children shift under your arms as her water breaks onto you. You quickly untangle yourself and help her to her feet; you can't help but enjoy the feeling of her close contractions under your hand. She points you to her bathroom; "Water birth" she pants, struggling to not give birth where she stands. The tub is already prepared for her, so you help her into it. She refuses to let go of your hand, "Join me?" You take her up on the offer and slide in behind her. You massage her taxed stomach as she struggles to bring her children into the world. A loud moan, escapes her lips as the first of her children slips from her pussy and into your waiting hands. Setting her aside, you prepare for the next. After several hours, and a mutual shower, you and her recover together with her eight children; as thanks, you have one milky nipple all to yourself. When it's time to leave, she blows you a kiss and thanks you sincerely for helping her through this. @@ -106,5 +106,6 @@ /* You're getting pregnant, period be damned */ <<set $PC.preg = 1, $PC.pregSource = -1, $PC.pregKnown = 1>> -<<SetPregType $PC>> +<<set $PC.pregType = setPregType($PC)>> +<<set WombImpregnate($PC, $PC.pregType, -1, 1)>> diff --git a/src/pregmod/pRaped.tw b/src/pregmod/pRaped.tw index 2a7da8b21fc431da6e416d7bd382d0c454cf9215..d7e7de82afc1f6c8954240d06a9f4912a95a9c43 100644 --- a/src/pregmod/pRaped.tw +++ b/src/pregmod/pRaped.tw @@ -94,6 +94,16 @@ While returning from a meeting with a prospective investor, an unfortunate wrong <<if $PC.dick > 0>> "When your master first undressed you, what did he think of his 'girl'?" He mocks as he flicks the tip of your stiffening cock. <</if>> +<<case "BlackHat">> + <<if $PC.boobs > 0>> + "Nice and supple, what are the odds that I can find these babies on the internet?" He smirks as he gropes your breasts. + <</if>> + <<if $PC.preg >= 20 || $PC.belly >= 5000>> + "You'd think someone so skilled at breaking security would understand protection themselves. Or did you trade your pussy for information?" He chuckles as he rubs your pregnant belly. + <</if>> + <<if $PC.dick > 0>> + "Trying to catch a signal with that?" He mocks as he flicks the tip of your stiffening cock. + <</if>> <</switch>> Finally he reaches your moistening pussy. "Already wet are we? Glad you know your place." He states as he pulls your clothes off and bends you over. <br><br> diff --git a/src/pregmod/reMaleArcologyOwner.tw b/src/pregmod/reMaleArcologyOwner.tw index 195b4d1a8680d3ff5d685c472af9a2aa198d9925..e530722652081ffd6b9cab6c7b9a44c1f7f70bca 100644 --- a/src/pregmod/reMaleArcologyOwner.tw +++ b/src/pregmod/reMaleArcologyOwner.tw @@ -31,7 +31,7 @@ He strikes a fine balance in conversation with you, firm enough to not overpower <<if $mercenaries > 0>> <br><<link "Quickly arrange an anonymous night out for him">> <<replace "#result">> - You immediately enlist $assistantName to help you make some hasty preparations, and then send him a message asking him if he'd like to spend a night out with you, as a couple of unremarkable citizens. He glances at you with a curious expression, and you direct him to a side room. He finds you there, changing into the heavy, anonymizing armor of one of your mercenaries; you have a male suit for him, too. Once you're both suited up, you move to show him how to activate the face-obscuring helmet, but you find that he's already got it on and active. "This," he says, "is either the best or the stupidest date idea I have ever heard. Let's fucking do this." You pass a mercenary on your way out onto the club, and he cannot resist giving you a thumbs up, which your fellow arcology owner fortunately fails to notice. You patrol for a while, using internal comms to joke about life as an arcology owner, something he clearly gets to do too infrequently. You don't mind the chance, either. Your mercenaries frequently spend time together off duty, so nobody sees anything unusual about a male and female in mercenary armor sharing a milkshake at a dairy bar, even when they start to engage in increasingly rough public flirting, armor and all. Later, your slaves are obliged to pick up and sort a trail of discarded armor pieces leading from the entry to your penthouse all the way to your suite, which is now emitting the indistinct sounds of very energetic sex. A few hours later, when you're showering up together so he can head back to his domain, he looks at you and says seriously, "That was pretty fun. If things ever go to shit, I wouldn't mind wearing that armor for real." Your mercenaries cannot keep their mouths shut, for once, and the almost unbelievably juicy story of the arcology owners wearing borrowed armor to go on an anonymous <<if $PC.title == 0>>lesbian <</if>>date spreads like wildfire. @@.green;Your reputation has greatly improved.@@ + You immediately enlist $assistantName to help you make some hasty preparations, and then send him a message asking him if he'd like to spend a night out with you, as a couple of unremarkable citizens. He glances at you with a curious expression, and you direct him to a side room. He finds you there, changing into the heavy, anonymizing armor of one of your mercenaries; you have a male suit for him, too. Once you're both suited up, you move to show him how to activate the face-obscuring helmet, but you find that he's already got it on and active. "This," he says, "is either the best or the stupidest date idea I have ever heard. Let's fucking do this." You pass a mercenary on your way out onto the club, and he cannot resist giving you a thumbs up, which your fellow arcology owner fortunately fails to notice. You patrol for a while, using internal comms to joke about life as an arcology owner, something he clearly gets to do too infrequently. You don't mind the chance, either. Your mercenaries frequently spend time together off duty, so nobody sees anything unusual about a male and female in mercenary armor sharing a milkshake at a dairy bar, even when they start to engage in increasingly rough public flirting, armor and all. Later, your slaves are obliged to pick up and sort a trail of discarded armor pieces leading from the entry to your penthouse all the way to your suite, which is now emitting the indistinct sounds of very energetic sex. A few hours later, when you're showering up together so he can head back to his domain, he looks at you and says seriously, "That was pretty fun. If things ever go to shit, I wouldn't mind wearing that armor for real." Your mercenaries cannot keep their mouths shut, for once, and the almost unbelievably juicy story of the arcology owners wearing borrowed armor to go on an anonymous date spreads like wildfire. @@.green;Your reputation has greatly improved.@@ <<set $desc = "a flirtacious thank-you note from a male arcology owner of your acquaintance">> <<set $trinkets.push($desc)>> <<if isPlayerFertile($PC)>> diff --git a/src/pregmod/reTheSirenStrikesBack.tw b/src/pregmod/reTheSirenStrikesBack.tw index 9bc9fdcc031fba905639b6f33834c378acb821a0..e3af815d6fe701623a10bb62b0dcbf23f2fc39d1 100644 --- a/src/pregmod/reTheSirenStrikesBack.tw +++ b/src/pregmod/reTheSirenStrikesBack.tw @@ -34,7 +34,7 @@ <<set $activeSlave.prestigeDesc = "She was a well known music producer infamous for constantly having musicians disappear on her watch.">> <<set $activeSlave.accent = 1>> -Several weeks have passed since you gained the musical prodigy and you couldn't help but notice her constant scowl and muttering about "getting revenge one day" or "wishing her producer would pay for what happened" whenever she was not working. You decide to look into the incident and direct $assistantName to look into the financial situation of her record label. It turns out that not only should this slave not be eligible for enslavement due to her performance profits, but a certain someone has been taking that money for themselves. You issue a bounty for her producer and wait a response. With surprising speed, an answer comes from a bounty hunter. The underhanded producer never left the arcology, instead opting to make use of the guest living arrangements you had set up for the concert. Only when an announcement of the bounty went out did they realize their peril and attempt to flee. The bounty hunter literally drags the escapee by the collar into your penthouse and throws them at your feet. The coward shivers as your eyes meet theirs. +Several weeks have passed since you gained the musical prodigy and you couldn't help but notice her constant scowl and muttering about "getting revenge one day" or "wishing her producer would pay for what happened" whenever she was not working. You decide to look into the incident and direct $assistantName to look into the financial situation of her record label. It turns out that not only should this slave not be eligible for enslavement due to her performance profits, but a certain someone has been taking that money for themselves. You issue a bounty for her producer and await a response. With surprising speed, an answer comes from a bounty hunter. The underhanded producer never left the arcology, instead opting to make use of the guest living arrangements you had set up for the concert. Only when an announcement of the bounty went out did they realize their peril and attempt to flee. The bounty hunter literally drags the escapee by the collar into your penthouse and throws them at your feet. The coward shivers as your eyes meet theirs. <br><br> "Please, don't hurt me! I'll pay for that slave I sent you to be released, even set her up with the life she would have had if I hadn't embezzled the profits!" <br><br> diff --git a/src/pregmod/saAgent.tw b/src/pregmod/saAgent.tw index 1951330fce7222b4cd85666c1fbd91d938a4d64c..034e8e2c7e270a44c60c625fda2364f55688e9bb 100644 --- a/src/pregmod/saAgent.tw +++ b/src/pregmod/saAgent.tw @@ -109,7 +109,7 @@ <</if>> <<if ($slaves[$i].preg > 0)>> /*EFFECTS OF PREGNANCY*/ - <<if $slaves[$i].preg == 5>> + <<if $slaves[$i].preg == 5>> /* bad condition logic - with pregnancy control drugs can be not triggered. Or may be trigged by broodmother several times. Need to be revorked. */ <<if $slaves[$i].pregSource == -1>> <<set $PC.slavesKnockedUp++>> <<elseif $slaves[$i].pregSource > 0>> @@ -362,20 +362,17 @@ <</if>> <<if ($slaves[$i].preg > 37) && ($slaves[$i].broodmother == 0) && (random(1,100) > 90)>> - <<set $slaves[$i].birthsTotal += $slaves[$i].pregType, $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>> - <<SetBellySize $slaves[$i]>> + <<set $slaves[$i].birthsTotal += WombBirthReady($slaves[$i], 35), WombBirth($slaves[$i], 35), WombFlush($slaves[$i]), $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0 >> <<elseif ($slaves[$i].preg > 41) && ($slaves[$i].broodmother == 0)>> - <<set $slaves[$i].birthsTotal += $slaves[$i].pregType, $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>> - <<SetBellySize $slaves[$i]>> + <<set $slaves[$i].birthsTotal += WombBirthReady($slaves[$i], 35), WombBirth($slaves[$i], 35), WombFlush($slaves[$i]), $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>> <<elseif ($slaves[$i].preg > 37) && ($slaves[$i].broodmother > 0)>> - <<if $slaves[$i].broodmother > 2>> - <<set $slaves[$i].birthsTotal += 12, $slaves[$i].preg = 37>> - <<else>> - <<set $slaves[$i].birthsTotal++, $slaves[$i].preg = 37>> + <<if $slaves[$i].broodmother > 0>> + <<set $slaves[$i].birthsTotal += WombBirthReady($slaves[$i], 37), WombBirth($slaves[$i], 37), $slaves[$i].preg = WombMaxPreg($slaves[$i])>> <</if>> - <<SetBellySize $slaves[$i]>> <</if>> +<<SetBellySize $slaves[$i]>> /*Actually it's now better to set belly size without checking of any conditions. Just to be sure. Should correct forgotten variables too. */ + <<if ($slaves[$i].hStyle != "shaved" && $slaves[$i].bald != 1 && $slaves[$i].haircuts == 0) && ($slaves[$i].hLength < 150)>> <<set $slaves[$i].hLength += 1>> <</if>> \ No newline at end of file diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/seFCTVshows.tw index fbebb9990809124ca0e7c7559facf5367d704702..02e4b417e373d99ad99c08ae25554b185faf53d7 100644 --- a/src/pregmod/seFCTVshows.tw +++ b/src/pregmod/seFCTVshows.tw @@ -73,7 +73,7 @@ Tired after a long day, you tell <<if $Concubine != 0>>@@.pink;$Concubine.slaveN <br><br>The camera cuts back to two distinguished looking gentlemen, one is labeled by the screen as medical researchers. <<if $PC.medicine == 100>>You vaguely recognize both of them from your time studying medicine. <</if>>One of them continues the conversation, apparently answering a question. <i>"That's right, the results of our research tell us what everyone already suspected, but now with an indisputable weight of evidence behind it."</i> The other nods and continues, <i>"our meta analysis examines over two decades of data, and nearly 6000 independent studies. We can safely say that free city slaves are healthier than the average person living anywhere in the old world. While a few of the wealthiest countries of the old world may surpass one or two areas, our slaves have better nutrition, standard of living, are more psychologically stable, have longer lives, and are happier on average as well."</i> The first gentleman interjects, <i>"We even found strong evidence that the higher sexual tempo and libido-stimulating training given to sex slaves greatly contributes to their life span; they live even longer than the average slave, and even look younger than their age."</i> <br><br>The camera switches back to the two anchors, showing an excited Jules hefting and bouncing her tits. "They've barely sagged at all since they stopped growing, now I know why!" <br><br>As the AnchorSlave continues to squeeze, one of the researchers answers from off camera. <i>"That's right, it can be rather amazing. To tell you the truth, we didn't believe it at first, but the evidence made it too hard to ignore."</i> Jules starts looking toward the backstage area trying to signal someone as the other researcher continues. <i>"It's also important not to wear a bra unless you're doing high-impact cardio. We've known since the mid 20th century that wearing bras causes sagging; bras devastate the breasts of postpartum women in particular, and promote breast cancer... Despite countless decades-long studies showing us this, the old world insists on forcing women to wear..."</i> - <br><br>It seems that Jules finally got the approval she was looking for, because she immediately reached down between her legs, causing the researcher to distractedly forget what he was saying. Apparently the panties she's wearing are of the dildo variety, because when she removes her hand you can see a tell-tale green indicator light glowing on the front of them. A cute rosey flush comes to Jules cheeks before she apologizes and urges the pair of researchers to continue. + <br><br>It seems that Jules finally got the approval she was looking for, because she immediately reached down between her legs, causing the researcher to distractedly forget what he was saying. Apparently the panties she's wearing are of the dildo variety, because when she removes her hand you can see a tell-tale green indicator light glowing on the front of them. A cute rosy flush comes to Jules cheeks before she apologizes and urges the pair of researchers to continue. <br><br>... <</if>> <<case 1>> @@ -650,13 +650,13 @@ The offered price is <<print cashFormat($slaveCost)>>. <br><br>Sarah looked at both her parents, then tilted her head and frowned. “You and daddy were playing that weird game again, weren’t you?†Scott and Annie looked at each other; silently communicating in a way only parents can. Annie looked at her daughter and said, “When you’re a bit older you’re going to want to play those games too.†Sarah looked unconvinced. “Anyway, you got the lube, are both your milker and vibrator charged?†Annie asked. Sarah bobbed her head. “Then why don’t you lube up daddy?†Sarah bobbed her head again and kneeled at the side of the bed. <br><br>Scott quickly undressed and sat at the edge of the bed. Sarah kneeled between her father’s legs. She began softly licking her father’s cock, her tongue sliding along its length and gently swirling around its head, her mouth making lewd noises. She ran her tongue on the underside of her dad’s cock, took him into her mouth and began to give him a slow blowjob. <br><br>Scott felt himself slowly harden to full mast. He resisted the urge to pull her down till her nose touched his crotch and said, “That’s good sweetheart, now use the lube.†Sarah pulled herself off his cock with a lewd pop and picked up the bottle of lube. She squirted a generous amount of it into one hand, rubbed both hands together, and began to stroke his cock. “You’re doing a good job sweetie, did you help mommy too?†he asked. Annie nodded “She did a very good job and was very through.†Sarah preened at her parents praise and said, “It wasn’t easy. I had to use a whole bottle to do mommy.†Scott turned his head to his wife and raised an eyebrow. Annie gave him a lewd grin and her blush slowly spread down her chest, but said nothing. - <br><br>Scott patted his daughter’s head. “Okay sweetie, take a seat.†Sarah gave her dad’s cock a kiss on the head, grabbed her vibrator and sat down on the couch across from the bed. She rubbed the lube on her hands over her cotch and her vibrator before licking off what remained. Scott began to stand, but paused; an impish smile spread across his face. “Before we begin, I have question for mommy.†He reached into a night table and pulled out an odd remote and a Wartenberg pinwheel. + <br><br>Scott patted his daughter’s head. “Okay sweetie, take a seat.†Sarah gave her dad’s cock a kiss on the head, grabbed her vibrator and sat down on the couch across from the bed. She rubbed the lube on her hands over her crotch and her vibrator before licking off what remained. Scott began to stand, but paused; an impish smile spread across his face. “Before we begin, I have question for mommy.†He reached into a night table and pulled out an odd remote and a Wartenberg pinwheel. <br><br>“Oh, and what would that be?†Annie said in a knowing tone, her eyes twinkling. Scott just grinned and pressed a button on the remote. Annie squealed as her exosuit shifted her forward onto her breasts. Scott craned his head to look behind wife. “You alright down there Sadie?†He cocked his head a bit more and barely made out a thumbs up beyond the horizon of his wife’s ass. “Good. Now-“ He rolled the pinwheel across her arm to collar bone and Annie gasped. “-why did you ask Sadie to stay behind when I sent her off for cloths?†<br><br>Annie inhaled sharply and said, “I needed to cum.†He ran the pinwheel slowly down her collarbone to her breast. “And what had you so worked up you needed Sadie?†Her breathing began to speed up. “I nearly threw my back out getting into my exo.†He raised an eyebrow and ran the pinwheel in winding loops across her breasts, goosebumps forming in its wake. “Oh? And why would that get you so hot and bothered?†he asked in a knowing tone. <br><br>Annie’s breath became more ragged and began to babble. “I’m-I’m so big, so big. I’m a breast obsessed cowslut.†She held the smart material of her exo in a white knuckle grip. “I came when I couldn’t see my feet anymore. I masturbated seven times when I first got stuck in a door. I once wrapped my tits around a guard rail and humped it for three hours. I came buckets to the look on Cathy’s face when she met me.†Annie gave him a look of pure want. “I need to cum. Mommy needs her boobs pounded.†She pleaded. Scott smiled and pressed a button on the remote that caused the smart material to press Annie’s breasts into a fuckable channel. He positioned himself and said, “Honesty is to be rewardedâ€, then thrust himself into her. <br><br>She gasped and moaned loudly. Her mewling was almost loud enough to match the lewd noises of flesh against flesh. Scott began to increase his speed. With each thrust sending ripples through her body. With how worked up she was, it wasn’t long before her moaning increased in volume until she suddenly gasped, her body tensed up, shuddered and then relaxed. Annie’s tongue lolled out and her eyes fluttered. <br><br>Scott snorted in amusement and was about to continue when he felt a tongue licking him. He looked down to see Sarah. She looked at him with pleading eyes “Daddy, I need it.†Scott sighed, but smiled softly at his daughter and said, “Okay, how do you want it.†She thought for a second before saying, “I want puss-puss.†He nodded, picked her up and laid his daughter atop his wife’s vast breasts. - <br><br>He teased himself against her cunny and then began to ease himself into her. She gasped at the intrusion and began to tease her own nipples, milk slowly leaking out of them. As he eased into her tight cunny, he could feel his own orgasm building. He paused for a moment and then began to move. It didn’t take long for his orgasum to build again. He increased the speed of his thrusts until he came inside his daughter. He continued until she tensed, her breasts spraying milk violently, and fell limp. + <br><br>He teased himself against her cunny and then began to ease himself into her. She gasped at the intrusion and began to tease her own nipples, milk slowly leaking out of them. As he eased into her tight cunny, he could feel his own orgasm building. He paused for a moment and then began to move. It didn’t take long for his orgasm to build again. He increased the speed of his thrusts until he came inside his daughter. He continued until she tensed, her breasts spraying milk violently, and fell limp. <br><br>Scott leaned into his wife’s breasts to bask in the afterglow. While Annie had coaxed Sarah to turn around, pulled Sarah’s cunny to her face and began to slowly eat her daughter out. Sarah just lay bonelessly atop her mother’s breasts. <br><br>Scott just enjoyed the sight of mother-daughter bonding for a while before recalling his earlier plans. “I was thinking of taking the family out for ice cream after lunch.†Annie made a pleased sound as she continued licking her daughters cunny, Sarah cheered lazily, Sadie’s legs wiggled with what could be called excitement. <br><br>“I was also thinking of taking Cathy with us.†Annie stopped sucking on her daughter’s clit to frown at him. He placating gesture and said, “She won’t make a big scene with all of us there and besides you enjoy it when she has a mini freak out.†She paused to think for a moment then said, “You have cameras and a drone on her right?†He nodded. “I want copies.†She gave him a lusty grin before returning to her meal. He turned Sarah. “I wanna bloom berry sundae with bottom boost sprinkles.†He nodded, hooked his head to look behind his wife and said, “How about you Sadie?†The hand that poked out from behind his wife waggled uncertainly, but ultimately became a thumbs up. @@ -668,7 +668,7 @@ The offered price is <<print cashFormat($slaveCost)>>. <br><br>The LCD screen above the entrance wasn’t anything too eye catching. It proudly displayed the words Blue Barn Creamery & Grocery in bright letters. An ever changing list of advertisements and new products on sale scrolled along the bottom. Truly, it could have fit-in with old world signs if no one looked too closely at the words on screen. What was truly eye catching is what surrounded it. <br><br>Dozens of cowslaves mounted in milking frames surrounded the screen up and down the building. The building curved out to dangle slaves into the street. Whoever created the display had been thoughtful enough to arrange the cowslaves in order of pregnancy, from flat bellies at the top to the monstrously pregnant at the bottom. <br><br>Scott walked back to Cathy grabbed her hand. “Come along.†He managed to get a dozen paces before she pulled her hand out of his grasp. “Those are people†she hissed under her breath. “Of course they’re people. What did you think they were, animatronics?†he scoffed. “This isn’t Yellow Farmhouse.†He shook his head. “Honestly, what were they thinking?†- <br><br>She sputtered and fumed at him for a moment before she found her voice again. “That isn’t what I meant and you know it.†She turned away from him to take in the scene. A dark haired beauty with smokey eyes amongst the cowslaves above caught her eye and gave her a lewd grin or, rather, attempted to do so around the feeding dildo in her mouth. Cathy wrinkled her nose. “Why would people do this?†+ <br><br>She sputtered and fumed at him for a moment before she found her voice again. “That isn’t what I meant and you know it.†She turned away from him to take in the scene. A dark haired beauty with smoky eyes amongst the cowslaves above caught her eye and gave her a lewd grin or, rather, attempted to do so around the feeding dildo in her mouth. Cathy wrinkled her nose. “Why would people do this?†<br><br>“Well, at Blue Barn Creamery they believe customers have the right to see the cow before they drink from it.†He answered in a wry tone. “But never mind that, let’s go.†He gave her butt a quick slap and continued walking. She winced at the impact, but followed him, her eyes still on the display. <br><br>After a moment, her features slowly shifted from disgust to morbid curiosity. “What happens when they need to give birth?†Scott beamed at her. “You can’t see it, but those platforms have systems that allow them to give birth without removing them and after giving birth they can be easily moved back to the top.†He said gesturing to the slaves. “Blue Barn also offers an app that allows you to follow a slave’s pregnancy and insemination.†<br><br>As they approached the entrance to the creamery, a crowd began to form around it. Slaves with the Blue Barn logo tattooed on their cheek passed out cups to the crowd. Scott and Cathy rejoined the family as June was gathering cups for everyone. “Everything alright?†Annie asked, an odd twinkle in her eye. “Nothing to worry about.†Scott said as June gave him and Cathy their cups. @@ -691,7 +691,7 @@ The offered price is <<print cashFormat($slaveCost)>>. <br><br>A window had opened and was playing a video of the cows that helped produce the cake. A heavily pregnant cowslave was railing a far younger, but equally as pregnant cow with a strap-on. The younger cow’s eyes were glassy and unfocused. The older slave let out a growl of need and began to pick up speed, their considerable breasts jiggling with each thrust. The menu was polite enough to have a blurb informing them that the cows are actresses on The Young and the Fecund. If one was feeling uncharitable, they could say that the sole video tag of lactating lolis was technically correct, but a woefully inadequate description. <br><br>He raised an eyebrow. “I thought you wanted a bloom berry sundae?†She gave him puppy dog eyes. “I want cake too,†she whined. He narrowed his eyes at her. The puppy dog eyes increased in intensity. A moment passed before he caved. “You can have a small slice.†The puppy dog eyes vanished and she let out a small cheer. Annie set down her menu. “I think I’ll have rum raisin-“She smiled at him, her eyes crinkling. “-and a slice of cake.†He huffed at her, but smiled anyway. Then he turned to Cathy. “And you?†he asked. “I think I’ll have a vanilla sundae.†He cocked his head at her and raised an eyebrow. “What?†she said defensively. He held up his hands in a placating gesture. “Nothing, nothing. If you’ve made up your mind, just use the remote.†She picked up the remote and pressed the call button. <br><br>A few moments later, Martha returned, her face flushed. “Everyone all set?†She briskly took down their orders and set off for the kitchens. After a few minutes, she returned with a full tray. With an agility that only comes from years of being a fighter pilot or working in the food industry, she passed out their orders and topped off every glass. With a quick, “Buzz me if you need me,†Martha returned to the counter. - <br><br>June demurely ate her ice cream while Sadie seemed intent on eating her banana split in as lewd a fashion possible. In stark contrast, Sarah was savaging her cake and ice cream, icing smearing on her face and chest. As Annie was eating her ice cream, she ‘accidently’ started dribbling onto her cleavage. “Oh my!†she said in a tone of faux concern. “Sweety could you help mommy out?†Sarah wiggled around in her mother’s cleavage and began to lap up the drips of ice cream, leaving smears of icing in her wake. “Oh, you’ve such a messy eater. Come here and let mommy clean you up.†Annie pulled her close and began to lick the remnants of cake and ice cream off her face. Her licks slowly morphed into a deep kiss. Their tongues danced and faces flushed. Annie pulled away from her, trailing a line of kisses down her chest and began to suckle from her. Sarah bit her lip, eyes closed, and began to moan, her fingers teasing her clit. + <br><br>June demurely ate her ice cream while Sadie seemed intent on eating her banana split in as lewd a fashion possible. In stark contrast, Sarah was savaging her cake and ice cream, icing smearing on her face and chest. As Annie was eating her ice cream, she ‘accidentally’ started dribbling onto her cleavage. “Oh my!†she said in a tone of faux concern. “Sweety could you help mommy out?†Sarah wiggled around in her mother’s cleavage and began to lap up the drips of ice cream, leaving smears of icing in her wake. “Oh, you’ve such a messy eater. Come here and let mommy clean you up.†Annie pulled her close and began to lick the remnants of cake and ice cream off her face. Her licks slowly morphed into a deep kiss. Their tongues danced and faces flushed. Annie pulled away from her, trailing a line of kisses down her chest and began to suckle from her. Sarah bit her lip, eyes closed, and began to moan, her fingers teasing her clit. <br><br>Cathy looked upon this scene with an expression that could only be charitably described as slack jawed. Scott caught her eye and gave her and gave her an amused grin. She flushed with embarrassment and cleared her throat before asking, “So, you own this place, don’t you?†He took a lick of his ice cream. “Indeed I do, something you want to ask?“ <br><br>Her features became troubled and she shifted in her seat. “Yeah, why do you have all those girls mounted out front?†He shrugged his shoulders. “Like I said, we at Blue Barn Creamery believe the customer has a right to see the cow before they drink from it.†She nodded “Yeah you said that, but why? Wouldn’t putting up a bunch of screens be as effective?†<br><br>Scott pondered her question for a moment, before saying, “Shortly after starting up here, there was a big scandal over slave milk. Apparently, some moron thought adulterating slave milk with actual cow milk was a good idea. As you might guess, it didn’t turn out well for him.†He took a bite of his ice cream before continuing. “After that, customer trust was at an all-time low. So, I decided to make sure customers could see the whole process right outside the door.†He jabbed his cone at her. “That level of transparency made me quite rich and my cows famous. Upstairs, you can buy all sorts of merchandise based on them, clothes, dolls, you name it.†He smiled. “There’s even a cartoon in the works.†Cathy looked at him with a thoughtful expression. “So, that’s why?†He gave her a lewd grin. “That, and it’s quite sexy. Now, eat your ice cream before it melts.†He turned his wife and daughter. “That goes for you too. Remember, clean your plate, then masturbate.†Sarah pulled away from Annie, gobbled down what remained of food, and then pressed her breasts into her mother’s face. @@ -909,7 +909,7 @@ The offered price is <<print cashFormat($slaveCost)>>. <br> "Yes Daddy." even though she's almost whispering, her voice is filled with confidence. <br> - Jason takes one hand off her hips and positions himself at the entrance to her pussy, sliding in the head with ease before immeditely hitting a block. He leans forward until he can whisper in her ear "Deep breath, sweetie." then pushes a little harder against the resistance. "Ah..." Jessica moans, a mixture of pain and unprecedented pleasure. Finally breaking her hymen, his penis suddenly slides more than halfway into her. "AH!" He pushes the rest in before slowly sliding out, savoring every millimeter of her insides. The slow pace continues for some time, with Jessica's body slowly lowering more and more until only her father's hands are keeping her ass in the air. By that point Jason is hammering away, every thrust producing a slap loud enough to carry a slight echo in the apartment's master bedroom. The sheets beneath Jessica's pussy are soaked through, with a strand of femcum hanging between them and her clit. Her father grabs her tightly and rotates her body to missionary without removing his cock from her, then rips open her shirt, throwing buttons all around the room and exposing her tiny tits. He starts to play with them, resuming the tempo of his thrusts. + Jason takes one hand off her hips and positions himself at the entrance to her pussy, sliding in the head with ease before immediately hitting a block. He leans forward until he can whisper in her ear "Deep breath, sweetie." then pushes a little harder against the resistance. "Ah..." Jessica moans, a mixture of pain and unprecedented pleasure. Finally breaking her hymen, his penis suddenly slides more than halfway into her. "AH!" He pushes the rest in before slowly sliding out, savoring every millimeter of her insides. The slow pace continues for some time, with Jessica's body slowly lowering more and more until only her father's hands are keeping her ass in the air. By that point Jason is hammering away, every thrust producing a slap loud enough to carry a slight echo in the apartment's master bedroom. The sheets beneath Jessica's pussy are soaked through, with a strand of femcum hanging between them and her clit. Her father grabs her tightly and rotates her body to missionary without removing his cock from her, then rips open her shirt, throwing buttons all around the room and exposing her tiny tits. He starts to play with them, resuming the tempo of his thrusts. <br> Jessica's hands grab at the sheets blindly, balling them up in her fists and causing one of the corners to become detached from the mattress. At this point she's no longer capable of dialogue, moaning at a volume that would be audible at a club and begging for more in an almost unintelligible way. Her legs wrap around her father's hips, pulling her in closer, and making the seal between them tighter. Feeling this drives Jason over the edge and he slams into her crotch recklessly, knocking the bedframe against the window with every thrust. He mauls her tits, squeezing them and pinching the nipples, sometimes dipping his head down to suck and lick them. With one final hard thrust, he stops while completely inside her and blows an impressive load, especially for TV. His daughter's pussy is filled so quickly that cum is squeezed out of the limited space between his cock and her inner walls, squirting out onto the bed and pooling against her ass and on the inside of the back of her skirt. Jessica moans and convulses, her pussy contractions squeezing a second orgasm out of Jason. Panting, he says "You make the same face your mother used to." <br> diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw index 4a40289c02fb13078b428fa189a274abd23c06b3..9c2153f3991016f509ab95520a635c7697b97663 100644 --- a/src/pregmod/sePlayerBirth.tw +++ b/src/pregmod/sePlayerBirth.tw @@ -21,39 +21,40 @@ PC.pregSource documentation <<else>> <<set $badBirth = 10>> <</if>> +<<set $PC.curBabies = WombBirth($PC, 35)>> +<<set _curBabies = $PC.curBabies.length>> +<<set _stilBirth = $PC.womb.length>> +<<set WombFlush($PC)>> +/* difference in code below: _curBabies - count of live babies after birth, $PC.pregType = all babies in PC. I assume that dead fetuses do not count to reputation, etc, and PC manage to hide them. This mainly for future possibilities, or early birth trigger's. PC will not support partial birth - even she happens to be prenant at different stages at once, undeveloped babies will be dead as result. _stilBirth currently not used - it's just for future improvements.*/ -<<set $PC.preg = 0, $PC.pregKnown = 0, $PC.labor = 0, $PC.births += $PC.pregType>> +<<set $PC.preg = 0, $PC.pregKnown = 0, $PC.labor = 0, $PC.births += _curBabies>> <<if $PC.pregSource == 0>> - <<set $PC.birthOther += $PC.pregType>> + <<set $PC.birthOther += _curBabies>> <<elseif $PC.pregSource == -1>> - <<set $PC.birthElite += $PC.pregType>> + <<set $PC.birthElite += _curBabies>> <<elseif $PC.pregSource == -2>> - <<set $PC.birthClient += $PC.pregType>> + <<set $PC.birthClient += _curBabies>> <<elseif $PC.pregSource == -3>> - <<set $PC.birthMaster += $PC.pregType>> + <<set $PC.birthMaster += _curBabies>> <<elseif $PC.pregSource == -4>> - <<set $PC.birthArcOwner += $PC.pregType>> + <<set $PC.birthArcOwner += _curBabies>> <<elseif $PC.pregSource == -5>> - <<set $PC.birthCitizen += $PC.pregType>> + <<set $PC.birthCitizen += _curBabies>> <<elseif $PC.pregSource == -6>> - <<set $PC.birthSelf += $PC.pregType>> + <<set $PC.birthSelf += _curBabies>> <<else>> - <<set $PC.birthDegenerate += $PC.pregType>> + <<set $PC.birthDegenerate += _curBabies>> <<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>> <<if _babyDaddy != -1>> - <<set $slaves[_babyDaddy].PCChildrenFathered += $PC.pregType>> + <<set $slaves[_babyDaddy].PCChildrenFathered += _curBabies>> <</if>> <</if>> -<<if $Cash4Babies == 1>> - <<set $seed = random(1,10)>> -<</if>> - <<if $PC.pregSource == -1>> <<set $babyGender = Math.floor(Math.random()*100) < $seeDicks ? 2 : 1>> - Since you are heavily pregnant with a child of the Societal Elite, you are quickly taken to the finest clinic the arcology has to offer. After a quick sedation, you awake to find your belly no longer round with child; that and a note stating your next breeding partner and a notice that <<print cashFormat(50000)>> has been added to your account. The Societal Elite are @@.green;very pleased@@ at their new addition to the ranks. You just wish you could have seen your <<if $PC.pregType == 1>>little <<if $babyGender == 1>>girl<<else>>boy<</if>> before they took <<if $babyGender == 1>>her<<else>>him<</if>><<else>>babies before they took them<</if>> away to be raised into a proper member of the future world. + Since you are heavily pregnant with a child of the Societal Elite, you are quickly taken to the finest clinic the arcology has to offer. After a quick sedation, you awake to find your belly no longer round with child; that and a note stating your next breeding partner and a notice that <<print cashFormat(50000)>> has been added to your account. The Societal Elite are @@.green;very pleased@@ at their new addition to the ranks. You just wish you could have seen your <<if _curBabies == 1>>little <<if $babyGender == 1>>girl<<else>>boy<</if>> before they took <<if $babyGender == 1>>her<<else>>him<</if>><<else>>babies before they took them<</if>> away to be raised into a proper member of the future world. <<if $PC.ovaryAge >= 55 && $playerAging != 0>> - You are getting too old to have children; you feel like <<if $PC.pregType > 1>>they<<else>>this<</if>> may be your last. + You are getting too old to have children; you feel like <<if _curBabies > 1>>they<<else>>this<</if>> may be your last. <<set $PC.preg = -2>> <</if>> <<else>> @@ -119,7 +120,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <br> <br> You awake some time later in the remote surgery, your stomach extremely sore; you quickly realize you're no longer round with child. As you try to rise, $Bodyguard.slaveName stops you; she hefts you into a bridal carry and takes you to a recovery room, before gently placing you into a warm bed, tucking you in, and hurrying out of the room. Before you can call out, she returns carrying - <<switch $PC.pregType>> + <<switch _curBabies>> <<case 1>> @@.lime;your baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@ <<case 2>> @@ -148,7 +149,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <br> <br> You awake some time later in a recovery room<<if _concubinePresent > 0>>, $Concubine.slaveName beside you<</if>>, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. Seeing you're awake, $HeadGirl.slaveName catches your attention. In her arms - <<switch $PC.pregType>> + <<switch _curBabies>> <<case 1>> is @@.lime;your baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@, <<if $HeadGirl.lactation > 0>>happily nursing from her breast,<</if>> <<case 2>> @@ -172,7 +173,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <br> <br> You awake some time later in a recovery room, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. A content sigh comes from beside you; $Concubine.slaveName is snuggled next to you, snoozing with - <<switch $PC.pregType>> + <<switch _curBabies>> <<case 1>> @@.lime;your baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@ in her arms.<<if $Concubine.lactation > 0>> Your child has managed to free one of $Concubine.slaveName's breasts and is eagerly suckling from her milky nipple.<</if>> <<case 2>> @@ -401,7 +402,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <<if _gaveBirth == 0>> -<<if $PC.pregType == 1>> +<<if _curBabies == 1>> <<include "Generate Child">> @@ -433,13 +434,13 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <<if $PC.reservedChildren > 0>> You set <<if $babyGender == 1>>her<<else>>him<</if>> aside for incubation. <<include "Incubator Workaround">> - <<set $PC.reservedChildren-->> <<set $reservedChildren-->> + <<set $PC.curBabies.shift()>> + <<set $PC.reservedChildren-- >> <</if>> -<<else>> - - <<for _p = 0; _p < $PC.pregType; _p++>> +<<elseif _curBabies > 1>> + <<for _p = 0; _p < _curBabies; _p++>> <<include "Generate Child">> <<if $activeSlave.race == $PC.race>> @@ -470,47 +471,52 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <<if $PC.reservedChildren > 0>> You set <<if $babyGender == 1>>her<<else>>him<</if>> aside for incubation. <<include "Incubator Workaround">> - <<set $PC.reservedChildren-->> <<set $reservedChildren-->> + <<set $PC.curBabies.shift()>> + <<set $PC.reservedChildren-- >> <</if>> <<set $babyGender = Math.floor(Math.random()*100) < $seeDicks ? 2 : 1>> - <</for>> <</if>> -<<if $PC.pregSource > 0>> +<<if $PC.reservedChildren > 0 >> /*we need to discount reservation for stillbirth babies*/ + <<set $reservedChildren -= $PC.reservedChildren>> + <<set $PC.reservedChildren = 0>> +<</if>> + +<<if $PC.pregSource > 0 && _curBabies > 0>> <<set _pb = $slaves.findIndex(function(s) { return s.ID == $PC.pregSource; })>> <<if _pb != -1>> <<if $arcologies[0].FSRestartDecoration == 100>> - Word spreads fast through your peers that you gave birth to <<if $PC.pregType > 1>>low class infants<<else>>a low class child<</if>> @@.red;utterly devastating your standing among the Elite.@@ + Word spreads fast through your peers that you gave birth to <<if _curBabies > 1>>low class infants<<else>>a low class child<</if>> @@.red;utterly devastating your standing among the Elite.@@ <<set $failedElite += 200>> <<elseif $arcologies[0].FSChattelReligionistLaw == 1>> - Rumors spread that The Prophet gave birth to a slave's child<<if $PC.pregType > 1>>ren<</if>>. + Rumors spread that The Prophet gave birth to a slave's child<<if _curBabies > 1>>ren<</if>>. <<if $arcologies[0].FSSupremacist != "unset">> <<if $slaves[_pb].race != $arcologies[0].FSSupremacistRace>> - Word is that your child<<if $PC.pregType > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace. As The Prophet saw fit to bear such a child, society views it as a sign to @@.red;reject $arcologies[0].FSSupremacistRace supremacy.@@ + Word is that your child<<if _curBabies > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace. As The Prophet saw fit to bear such a child, society views it as a sign to @@.red;reject $arcologies[0].FSSupremacistRace supremacy.@@ <<set $arcologies[0].FSSupremacist -= 120>> <</if>> <</if>> <<if $arcologies[0].FSSubjugationist != "unset">> <<if $slaves[_pb].race == $arcologies[0].FSSubjugationistRace>> - In addition, The Prophet's womb bore <<if $PC.pregType == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if $PC.pregType > 1>>ren<</if>>, surely a sign to end @@.red;reject $arcologies[0].FSSubjugationistRace subjugation.@@ + In addition, The Prophet's womb bore <<if _curBabies == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if _curBabies > 1>>ren<</if>>, surely a sign to end @@.red;reject $arcologies[0].FSSubjugationistRace subjugation.@@ <<set $arcologies[0].FSSubjugationist -= 120>> <</if>> <</if>> <<else>> - Rumors spread that your child<<if $PC.pregType > 1>>ren were<<else>> was<</if>> fathered by a slave, @@.red;harming your lasting reputation.@@ + Rumors spread that your child<<if _curBabies > 1>>ren were<<else>> was<</if>> fathered by a slave, @@.red;harming your lasting reputation.@@ <<set $PC.degeneracy += 20>> <<if $arcologies[0].FSSupremacist != "unset">> <<if $slaves[_pb].race != $arcologies[0].FSSupremacistRace>> - Furthermore, word is that your child<<if $PC.pregType > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace, @@.red;further hurting your lasting reputation.@@ + Furthermore, word is that your child<<if _curBabies > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace, @@.red;further hurting your lasting reputation.@@ <<set $PC.degeneracy += 10>> <</if>> <</if>> <<if $arcologies[0].FSSubjugationist != "unset">> <<if $slaves[_pb].race == $arcologies[0].FSSubjugationistRace>> - In addition, there is a nasty rumor that you gave birth to <<if $PC.pregType == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if $PC.pregType > 1>>ren<</if>>, @@.red;devastating your lasting reputation.@@ + In addition, there is a nasty rumor that you gave birth to <<if _curBabies == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if _curBabies > 1>>ren<</if>>, @@.red;devastating your lasting reputation.@@ <<set $PC.degeneracy += 50>> <</if>> <</if>> @@ -518,14 +524,15 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <</if>> <</if>> -<<set $PC.pregType -= _pregTypeDecrecement>> +/* -------------------- here curBabies is now will show only babies count remained after reserved ones is paced to incubator. Not all live birthed ones. */ +<<set _curBabies = $PC.curBabies.length>> -<<if $PC.pregType > 0>> +<<if _curBabies > 0>> <br><br> - Now you are faced with a decision of what to do with your <<if _pregTypeDecrecement > 0>>remaining<<else>>new<</if>> child<<if $PC.pregType > 1>>ren<</if>>. You're far too busy to keep <<if $PC.pregType > 1>>them<<else>>it<</if>> yourself, but you could @@.orange;send them to a boarding school to be raised until they are of age to serve as your heir.@@ Other options include sending them to @@.orange;become a slave at a slave orphanage,@@ sending them to @@.orange;a citizen school,@@ to be brought up coequal with the arcology's other young people, or sending them to be @@.orange;raised privately,@@ with expert care and tutoring. + Now you are faced with a decision of what to do with your <<if _pregTypeDecrecement > 0>>remaining<<else>>new<</if>> child<<if _curBabies > 1>>ren<</if>>. You're far too busy to keep <<if _curBabies > 1>>them<<else>>it<</if>> yourself, but you could @@.orange;send them to a boarding school to be raised until they are of age to serve as your heir.@@ Other options include sending them to @@.orange;become a slave at a slave orphanage,@@ sending them to @@.orange;a citizen school,@@ to be brought up coequal with the arcology's other young people, or sending them to be @@.orange;raised privately,@@ with expert care and tutoring. <<if $arcologies[0].FSRepopulationFocus > 40>> Of course, there are also the @@.orange;breeding schools,@@ where your - <<if $PC.pregType == 1>> + <<if _curBabies == 1>> <<if $babyGender == 1>> daughter will be taught the joys of motherhood up until she is around $fertilityAge years old, when she will be impregnated with her first child. <<else>> @@ -533,26 +540,27 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <</if>> <<else>> <<if $babyGender == 1>> - daughters will be taught the joys of motherhood up until they are around $fertilityAge years old, when they will be impregnated for the first time.<<if $PC.pregType > 1>> They say multiples run in families, so your daughters should blossom into quite the fertile breeders.<</if>> + daughters will be taught the joys of motherhood up until they are around $fertilityAge years old, when they will be impregnated for the first time.<<if _curBabies > 1>> They say multiples run in families, so your daughters should blossom into quite the fertile breeders.<</if>> <<else>> sons will be taught it is their duty to fuck every slavegirl they sees without a baby bump pregnant. <</if>> <</if>> <</if>> <<if $Cash4Babies == 1>> + <<set _seed = random(1,10)>> Alternatively, since it is @@.orange;legal to sell slave babies@@, your child should be worth quite a pretty ¤ at auction. <</if>> <br><br> <span id="choice">What will it be? <br> <<link "Boarding School">><<replace "#choice">><<print "You have decided to send them away to be raised in your stead.">><</replace>><</link>> | - <<link "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $slaveOrphanageTotal += $PC.pregType>><</link>> | - <<link "Citizen School">><<replace "#choice">><<print "You have decided to send them to a citizen school to become a future citizen. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $citizenOrphanageTotal += $PC.pregType>><</link>> | - <<link "Privately Raised">><<replace "#choice">><<print "You have decided to send them to be privately raised. Perhaps you'll even see them again, though it's unlikely that there will be any connection between you. At least you'll know they've been properly reared.">><</replace>><<set $privateOrphanageTotal += $PC.pregType>><</link>> + <<link "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $slaveOrphanageTotal += _curBabies>><</link>> | + <<link "Citizen School">><<replace "#choice">><<print "You have decided to send them to a citizen school to become a future citizen. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $citizenOrphanageTotal += _curBabies>><</link>> | + <<link "Privately Raised">><<replace "#choice">><<print "You have decided to send them to be privately raised. Perhaps you'll even see them again, though it's unlikely that there will be any connection between you. At least you'll know they've been properly reared.">><</replace>><<set $privateOrphanageTotal += _curBabies>><</link>> <<if $arcologies[0].FSRepopulationFocus > 40>> - | <<link "Breeding School">><<replace "#choice">><<print "You have decided to send them to be raised into a proper breeder. Perhaps you'll even see them again, though it's unlikely you'll recognize them with their reproduction focused body.">><</replace>><<set $breederOrphanageTotal += $PC.pregType>><</link>> + | <<link "Breeding School">><<replace "#choice">><<print "You have decided to send them to be raised into a proper breeder. Perhaps you'll even see them again, though it's unlikely you'll recognize them with their reproduction focused body.">><</replace>><<set $breederOrphanageTotal += _curBabies>><</link>> <</if>> - <<if $Cash4Babies == 1>> | <<link "Auction Them">><<replace "#choice">><<print "You send the child to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at @@.yellowgreen;<<print cashFormat(1000*$seed)>>.@@">><</replace>><<set $cash += 1000*$seed*$PC.pregType>><</link>><</if>> + <<if $Cash4Babies == 1>> | <<link "Auction Them">><<replace "#choice">><<print "You send the child<<if _curBabies > 1>>ren<</if>> to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at @@.yellowgreen;<<print cashFormat(1000*_seed*_curBabies)>>.@@">><</replace>><<set $cash += 1000*_seed*_curBabies>><</link>><</if>> </span> <</if>> @@ -565,7 +573,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin <</if>> /*closes gaveBirth*/ <</if>> /*closes SE*/ -<<set $badBirth = 0, $PC.pregSource = 0, $PC.pregType = 0, $seed = 0, $babyGender = 0, $PC.belly = 2000>> +<<set $badBirth = 0, $PC.pregSource = 0, $PC.pregType = 0, $babyGender = 0, $PC.belly = 2000, WombFlush($PC)>> <<if $PC.career == "servant">> <<set $PC.pregWeek = -3>> <<else>> diff --git a/src/pregmod/widgets/bodySwapReaction.TW b/src/pregmod/widgets/bodySwapReaction.TW index 50bf02f8ae7f613b80e851506f7ef88c39660805..1a5f01e070de86c161d776acca34e30fb2c7257f 100644 --- a/src/pregmod/widgets/bodySwapReaction.TW +++ b/src/pregmod/widgets/bodySwapReaction.TW @@ -216,7 +216,7 @@ Now you only have to wait for her to wake up. <<if $args[1].voice == 0>> When she finishes, she turns to you and gestures for a mirror. <<if $args[0].voice != 0>> - You gesture as if you couldn't hear her, to which she squeeks in response. It immediately @@.hotpink;dawns on her@@ what this means. She @@.mediumaquamarine;thanks you profusely@@ before asking for a mirror. + You gesture as if you couldn't hear her, to which she squeaks in response. It immediately @@.hotpink;dawns on her@@ what this means. She @@.mediumaquamarine;thanks you profusely@@ before asking for a mirror. <<set $args[0].devotion += 5, $args[0].trust += 10>> <</if>> <<else>> @@ -306,7 +306,7 @@ Now you only have to wait for her to wake up. <</if>> <<elseif $args[0].boobs <= $args[1].boobs-100 && $args[1].boobs > 300 && $args[0].fetish == "boobs" && $args[0].fetishKnown>> /*(Smaller breasts + breast fetish)*/ <<if $args[0].devotion > 20>> - her bust has shrunk. She is saddened by the loss of the beautiful weight she once beared and struggles to keep herself under control for your sake, @@.mediumorchid;barely.@@ + her bust has shrunk. She is saddened by the loss of the beautiful weight she once bore and struggles to keep herself under control for your sake, @@.mediumorchid;barely.@@ <<else>> that her chest is not as large as it once was. @@.mediumcorchid;Tears leap into her eyes@@ as her shoulders begin to shake<<if $args[0].voice != 0>> and sobs echo about the room<</if>>. She pauses to gather herself together and let the tears run from her eyes before continuing her bodily inspection. <</if>> @@ -384,7 +384,7 @@ Now you only have to wait for her to wake up. <</if>> <<elseif $args[0].boobs <= $args[1].boobs-100 && $args[1].boobs > 300 && $args[0].fetish == "boobs" && $args[0].fetishKnown>> /*(Smaller breasts + breast fetish)*/ <<if $args[0].devotion > 20>> - her bust has shrunk. She is saddened by the loss of the beautiful weight she once beared and struggles to keep herself under control for your sake, @@.mediumorchid;barely.@@ + her bust has shrunk. She is saddened by the loss of the beautiful weight she once bore and struggles to keep herself under control for your sake, @@.mediumorchid;barely.@@ <<else>> that her chest is not as large as it once was. @@.mediumcorchid;Tears leap into her eyes@@ as her shoulders begin to shake<<if $args[0].voice != 0>> and sobs echo about the room<</if>>. She pauses to gather herself together and let the tears run from her eyes before continuing her bodily inspection. <</if>> @@ -472,7 +472,7 @@ Now you only have to wait for her to wake up. <</if>> <<else>> /*(No change (less than a 100 cc’s of change)*/ <<if $args[0].devotion > 20>> - and finds a familiar chest waiting for her, albiet implant free. + and finds a familiar chest waiting for her, albeit implant free. <<if ($args[0].physicalAge < $args[1].physicalAge-5)>> /*(younger)*/ She is pleased to see her breasts are now more pert and smooth then they were before. <</if>> @@ -619,7 +619,7 @@ Now you only have to wait for her to wake up. <<if $args[1].voice == 0>> After a moment, she turns to you and gestures for a mirror. <<if $args[0].voice != 0>> - You gesture as if you couldn't hear her, to which she squeeks in response. It immediately @@.hotpink;dawns on her@@ what this means. She @@.mediumaquamarine;thanks you profusely@@ before asking for a mirror. + You gesture as if you couldn't hear her, to which she squeaks in response. It immediately @@.hotpink;dawns on her@@ what this means. She @@.mediumaquamarine;thanks you profusely@@ before asking for a mirror. <<set $args[0].devotion += 5, $args[0].trust += 10>> <</if>> <<else>> @@ -796,7 +796,7 @@ You depress a button and a long, body length mirror slides up from the floor nea <<if $PhysicalRetirementAgePolicy == 1>> spend more time with you before the end of her service. <<else>> - use all of her the youth for the benefit of her master instead of herself. + use all of her youth for the benefit of her master instead of herself. <</if>> <</if>> <</if>> diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw index 9aa0e88c4bfd6277a67e7d7b54d3f9448974668e..79fa6735cb47481436242d761234127a08981845 100644 --- a/src/pregmod/widgets/bodyswapWidgets.tw +++ b/src/pregmod/widgets/bodyswapWidgets.tw @@ -11,6 +11,7 @@ <<set $args[0].origBodyOwner = $args[1].origBodyOwner>> <</if>> <</if>> +<<set WombInit($args[1])>> /*Just to be sure.*/ <<set $args[0].genes = $args[1].genes>> <<set $args[0].prestige = $args[1].prestige>> <<set $args[0].pornFame = $args[1].pornFame>> @@ -82,6 +83,8 @@ <<set $args[0].pregSource = $args[1].pregSource>> <<set $args[0].pregType = $args[1].pregType>> <<set $args[0].broodmother = $args[1].broodmother>> +<<set $args[0].broodmotherFetuses = $args[1].broodmotherFetuses>> +<<set $args[0].broodmotherOnHold = $args[1].broodmotherOnHold>> <<set $args[0].broodmotherCountDown = $args[1].broodmotherCountDown>> <<set $args[0].labor = $args[1].labor>> <<set $args[0].csec = $args[1].csec>> @@ -164,6 +167,8 @@ <<set $args[0].belly = $args[1].belly>> <<set $args[0].bellyPreg = $args[1].bellyPreg>> <<set $args[0].bellyFluid = $args[1].bellyFluid>> +<<set $args[0].readyOva = $args[1].readyOva>> +<<set $args[0].womb = $args[1].womb>> /* this is array assigned by reference, if slave body that is $args[1] will be stil used anywhere in code (not discarded) - it's WRONG (they now technicaly share one womb object). Please tell me about it then. But if old body $args[1] just discarded - it's no problem then.*/ <<set $args[0].canRecruit = 0>> diff --git a/src/pregmod/widgets/deathWidgets.tw b/src/pregmod/widgets/deathWidgets.tw index e0589f33c4b71c2a3c409f27e7dc240cefc0db0e..c7f8b4e386794e200a5d90a91062292bd292cb5d 100644 --- a/src/pregmod/widgets/deathWidgets.tw +++ b/src/pregmod/widgets/deathWidgets.tw @@ -20,11 +20,11 @@ As $args[0].slaveName is going about her business with her overfilled $args[0].i <<widget "DeathOldAge">> <<SlavePronouns $args[0]>> <<if $args[0].assignment == "be confined in the arcade">> - You are notified by $arcadeName staff that one of the cabinets has broken down and will need to be replaced. It would seem ''@@.pink;$args[0].slaveName@@'', the fucktoy encased in it, died naturally of old age despite $possessive living conditions. $pronounCap was a good unit; logs show $pronoun was taking dick up until the very end. + You are notified by $arcadeName staff that one of the cabinets has broken down and will need to be replaced. It would seem ''@@.pink;$args[0].slaveName@@'', the fucktoy encased in it, died <<if $args[0].physicalAge >= 70>>naturally of old age despite<<else>>suddenly, unrelated to<</if>> $possessive living conditions. $pronounCap was a good unit; logs show $pronoun was taking dick up until the very end. <<elseif $args[0].assignment == "work in the dairy" && $dairyRestraintsSetting > 1>> - You are notified by $dairyName staff that one of the occupied milkers has ceased producing. Upon inspection, it would seem ''@@.pink;$args[0].slaveName@@'', the cow restrained in it, died naturally of old age despite $possessive living conditions. $pronounCap was a good cow; $pronoun gave milk up until $possessive death. + You are notified by $dairyName staff that one of the occupied milkers has ceased producing. Upon inspection, it would seem ''@@.pink;$args[0].slaveName@@'', the cow restrained in it, died <<if $args[0].physicalAge >= 70>>naturally of old age despite<<else>>suddenly, unrelated to<</if>> $possessive living conditions. $pronounCap was a good cow; $pronoun gave milk up until $possessive death. <<elseif $args[0].fuckdoll > 0>> - One of your fuckdoll's monitoring systems alerts you that the slave contained within has died. It would seem ''@@.pink;$args[0].slaveName@@'' has died naturally of old age despite $possessive living conditions. Thankfully the suit notifies its owner of such things; especially with the rumors of earlier models and necrophilia you hear occasionally. + One of your fuckdoll's monitoring systems alerts you that the slave contained within has died. It would seem ''@@.pink;$args[0].slaveName@@'' has died <<if $args[0].physicalAge >= 70>>naturally of old age despite<<else>>suddenly, unrelated to<</if>> $possessive living conditions. Thankfully the suit notifies its owner of such things; especially with the rumors of earlier models and necrophilia you hear occasionally. <<else>> ''@@.pink;$args[0].slaveName@@'' failed to report in for a routine inspection, something that rarely occurs under your watch. It doesn't take long to track down the wayward slave. <<set _deathSeed = random(1,100)>> diff --git a/src/pregmod/widgets/playerDescriptionWidgets.tw b/src/pregmod/widgets/playerDescriptionWidgets.tw index f75a1b9ad0dcd7dd3ead4c5f71e7b6d7516ce4df..49f82d927adc8148f3764ebb31f2be68172ae52b 100644 --- a/src/pregmod/widgets/playerDescriptionWidgets.tw +++ b/src/pregmod/widgets/playerDescriptionWidgets.tw @@ -221,7 +221,7 @@ <<elseif $PC.title == 1>> Your chest is quite masculine<<if $PC.preg > 30 || $PC.births > 0>>, though the pair of wetspots forming over your nipples suggest otherwise,<</if>><<if $PC.markings == "freckles">> and covered in a light spray of freckles<<elseif $PC.markings == "heavily freckled">> and covered in dense freckles<</if>>. <<else>> - Your chest is non-existant<<if $PC.preg > 30 || $PC.births > 0>>, save for the pair of bulging milk glands beneath your nipples,<</if>><<if $PC.markings == "freckles">> and covered in a light spray of freckles<<elseif $PC.markings == "heavily freckled">> and covered in dense freckles<</if>>. + Your chest is non-existent<<if $PC.preg > 30 || $PC.births > 0>>, save for the pair of bulging milk glands beneath your nipples,<</if>><<if $PC.markings == "freckles">> and covered in a light spray of freckles<<elseif $PC.markings == "heavily freckled">> and covered in dense freckles<</if>>. <</if>> <</if>> diff --git a/src/pregmod/widgets/pregmodBirthWidgets.tw b/src/pregmod/widgets/pregmodBirthWidgets.tw index 0dfa4d9894d77fa592b9ddecc043d1c6a758abc8..89021ad07e410897ceba310a7b07ee407ec975d5 100644 --- a/src/pregmod/widgets/pregmodBirthWidgets.tw +++ b/src/pregmod/widgets/pregmodBirthWidgets.tw @@ -591,7 +591,7 @@ <<case "learn in the schoolroom">> <<if !canWalk($slaves[$i])>> <<if (random(1,20) > $suddenBirth)>> - Having been notified in the weeks leading up to her <<if $slaves[$i].birthsTotal == 0>>first<<else>>regular<</if>> birth, she is helped to the front of the class and stripped; she is being used as a learning aid in this lesson. Blushing strongly, she begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of the rapt attention of the other students. Her child is promptly taken and, following a cleaning and fresh change of clothes, she is helped back to her seat. She can't help but <<if canSee($slaves[$i])>>notice some of the detailed notes the class took on her genitals<<else>>overhear some of the lewd commments about her still very gravid figure<</if>>. + Having been notified in the weeks leading up to her <<if $slaves[$i].birthsTotal == 0>>first<<else>>regular<</if>> birth, she is helped to the front of the class and stripped; she is being used as a learning aid in this lesson. Blushing strongly, she begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of the rapt attention of the other students. Her child is promptly taken and, following a cleaning and fresh change of clothes, she is helped back to her seat. She can't help but <<if canSee($slaves[$i])>>notice some of the detailed notes the class took on her genitals<<else>>overhear some of the lewd comments about her still very gravid figure<</if>>. <<set $humiliation = 1>> <<else>> During a lesson in $schoolroomName, $slaves[$i].slaveName's water breaks. Since she can't leave the lesson, she tries her best to hold back the upcoming birth. She fails to manage and a particularly strong contraction elicits a moan noticeable enough to draw all the students' attention. @@ -601,7 +601,7 @@ <</if>> <<else>> <<if (random(1,20) > $suddenBirth)>> - Having been notified in the weeks leading up to her <<if $slaves[$i].birthsTotal == 0>>first<<else>>regular<</if>> birth, she heads to the front of the class and strips; she is being used as a learning aid in this lesson. Blushing strongly, she begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of the rapt attention of the other students. Her child is promptly taken and, following a cleaning and fresh change of clothes, she returns to her seat. She can't help but <<if canSee($slaves[$i])>>notice some of the detailed notes the class took on her genitals<<else>>overhear some of the lewd commments about her still very gravid figure<</if>>. + Having been notified in the weeks leading up to her <<if $slaves[$i].birthsTotal == 0>>first<<else>>regular<</if>> birth, she heads to the front of the class and strips; she is being used as a learning aid in this lesson. Blushing strongly, she begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of the rapt attention of the other students. Her child is promptly taken and, following a cleaning and fresh change of clothes, she returns to her seat. She can't help but <<if canSee($slaves[$i])>>notice some of the detailed notes the class took on her genitals<<else>>overhear some of the lewd comments about her still very gravid figure<</if>>. <<set $humiliation = 1>> <<else>> During a lesson in $schoolroomName, $slaves[$i].slaveName's water breaks. Since she can't leave the lesson, she tries her best to hold back the upcoming birth. She fails to manage and a particularly strong contraction elicits a moan noticeable enough to draw all the students' attention. @@ -613,10 +613,10 @@ <<case "take classes">> <<if (random(1,20) > $suddenBirth)>> - Or she would have, had <<if $assistantName == "your personal assistant">>your personal assistant<<else>>$assistantName<</if>> allowed it. Since she can't leave the lesson, she tries her best to hold back the upcoming birth, not without your assistant noticing. As punishment for poor planning, especially since this will be a weekly occurence in her life, her birth will be turned into a live broadcast. Blushing strongly, she begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, trying her best to hide her shame. Exhausted from the birth, she is permitted a short break as her child is collected to clean herself up before the lesson is continued. + Or she would have, had <<if $assistantName == "your personal assistant">>your personal assistant<<else>>$assistantName<</if>> allowed it. Since she can't leave the lesson, she tries her best to hold back the upcoming birth, not without your assistant noticing. As punishment for poor planning, especially since this will be a weekly occurrence in her life, her birth will be turned into a live broadcast. Blushing strongly, she begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, trying her best to hide her shame. Exhausted from the birth, she is permitted a short break as her child is collected to clean herself up before the lesson is continued. <<set $humiliation = 1>> <<else>> - During a lesson under <<if $assistantName == "your personal assistant">>your personal assistant<<else>>$assistantName<</if>>, $slaves[$i].slaveName's water breaks. Since she can't leave the lesson, she tries her best to hold back the upcoming birth, not without your assistant noticing. As punishment for poor planning, especially since this will be a weekly occurence in her life, she is forbidden from leaving. Additionally, her birth will be turned into a live broadcast. + During a lesson under <<if $assistantName == "your personal assistant">>your personal assistant<<else>>$assistantName<</if>>, $slaves[$i].slaveName's water breaks. Since she can't leave the lesson, she tries her best to hold back the upcoming birth, not without your assistant noticing. As punishment for poor planning, especially since this will be a weekly occurrence in her life, she is forbidden from leaving. Additionally, her birth will be turned into a live broadcast. <<set $humiliation = 1>> <<ClothingBirth>> Exhausted from the birth, she is permitted a short break as <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> child is gathered to <<if !canWalk($slaves[$i])>>be cleaned<<else>>clean herself<</if>> up before the lesson is continued. @@ -726,7 +726,7 @@ <<case "be the Schoolteacher">> <<if !canWalk($slaves[$i])>> <<if (random(1,20) > $suddenBirth)>> - She calls for her teaching aid to help position her so the class may recieve a lesson on childbirth. She begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of her watching students. She demonstrates the proper ways to labor and how to deliver a baby. She explains the infant's future as her child taken and excuses the class for a short break in order to freshen up. Upon their return, she begins a lesson on being a broodmother, as there is always a curious face locked onto her still very gravid middle. + She calls for her teaching aid to help position her so the class may receive a lesson on childbirth. She begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of her watching students. She demonstrates the proper ways to labor and how to deliver a baby. She explains the infant's future as her child taken and excuses the class for a short break in order to freshen up. Upon their return, she begins a lesson on being a broodmother, as there is always a curious face locked onto her still very gravid middle. <<set $humiliation = 1>> <<else>> While teaching a lesson, $slaves[$i].slaveName's water breaks. Sensing she wouldn't be able to make it to the birthing area, she instead chooses to act on the opportunity. Today's lesson will be on childbirth. @@ -736,7 +736,7 @@ <</if>> <<else>> <<if (random(1,20) > $suddenBirth)>> - While stripping, she makes her way to the front of the classroom and settles herself in a way her entire class can see. Birth <<if $slaves[$i].birthsTotal == 0>>will be<<else>>is<</if>> a regular occurence in her life and it would be a waste to not work it into her lesson plan. She wiggles herself into a comfortable spot and begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of her watching students. She demonstrates the proper ways to labor and how to deliver a baby. She explains the infant's future as her child is taken and excuses the class for a short break in order to freshen up. Upon their return, she begins a lesson on being a broodmother, as there is always a curious face locked onto her still very gravid middle. + While stripping, she makes her way to the front of the classroom and settles herself in a way her entire class can see. Birth <<if $slaves[$i].birthsTotal == 0>>will be<<else>>is<</if>> a regular occurrence in her life and it would be a waste to not work it into her lesson plan. She wiggles herself into a comfortable spot and begins working on birthing <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, fully aware of her watching students. She demonstrates the proper ways to labor and how to deliver a baby. She explains the infant's future as her child is taken and excuses the class for a short break in order to freshen up. Upon their return, she begins a lesson on being a broodmother, as there is always a curious face locked onto her still very gravid middle. <<set $humiliation = 1>> <<else>> While teaching a lesson, $slaves[$i].slaveName's water breaks. Sensing she wouldn't be able to make it to the birthing area, she instead chooses to act on the opportunity. Today's lesson will be on childbirth. @@ -749,7 +749,7 @@ <<case "be your Concubine">> <<if $slaves[$i].pregSource == -1 && $slaves[$i].relationship == -3>> <<if (random(1,20) > $suddenBirth)>> - You make sure to find time in your busy schedule to be at your concubine wife's side as she gives birth to your children, even if it's <<if $slaves[$i].birthsTotal == 0>>to be <</if>> a weekly occurence. You gently caress $slaves[$i].slaveName's body as she begins to push out <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. You help her upright and hold your child to her breasts. The two of you cuddle as you watch your newborn suckle from its mother. Since she is quite special to you, you allow her the time to pick out names before her child has to be taken away. When the time comes to pick up the newborn, the slave servant is surprised to find a name-card affixed to its blanket.<<if $slaves[$i].fetish != "mindbroken">> She can't help but feel more devoted to her master after seeing such a touching act. Before you leave, $slaves[$i].slaveName expresses how cute she found your child and that she can't wait to see the next one.<</if>> + You make sure to find time in your busy schedule to be at your concubine wife's side as she gives birth to your children, even if it's <<if $slaves[$i].birthsTotal == 0>>to be <</if>> a weekly occurrence. You gently caress $slaves[$i].slaveName's body as she begins to push out <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. You help her upright and hold your child to her breasts. The two of you cuddle as you watch your newborn suckle from its mother. Since she is quite special to you, you allow her the time to pick out names before her child has to be taken away. When the time comes to pick up the newborn, the slave servant is surprised to find a name-card affixed to its blanket.<<if $slaves[$i].fetish != "mindbroken">> She can't help but feel more devoted to her master after seeing such a touching act. Before you leave, $slaves[$i].slaveName expresses how cute she found your child and that she can't wait to see the next one.<</if>> <<else>> Your sleep is awoken by a moist sensation and a loud moan beside you. As you help your concubine wife up, she can't hold back the coming birth. <<ClothingBirth>> @@ -893,7 +893,7 @@ While tending to the girls in the spa, $slaves[$i].slaveName's water breaks. The girls quickly come to her aid as the contractions get closer and closer together. Their hands are all over her laboring body, unsure of what they should be doing. <<set $humiliation = 1>> <<ClothingBirth>> - She thanks her charges for their, less than helpful, efforts and collects <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> child for removal. Upon returning, she strips down and enters the pool, desperate for a break and eager to take the weight off her still veyr gravid body. + She thanks her charges for their, less than helpful, efforts and collects <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> child for removal. Upon returning, she strips down and enters the pool, desperate for a break and eager to take the weight off her still very gravid body. <</if>> <<case "be the Madam">> @@ -987,8 +987,54 @@ <</if>> <</if>> +<<case "work in the dairy">> + <<if $dairyRestraintsSetting > 1 && $slaves[$i].career == "a bioreactor">> + <<if (random(1,20) > $suddenBirth)>> + As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby is secure, the basket retracts to allow $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>> to be cleaned. + <<else>> + Without warning, $slaves[$i].slaveName's water breaks and $possessive body begins to rapidly push out <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. She manages to force out the squirming child before the basket could extend, flagging her unit for maintenance. + <</if>> + All these events are meaningless to $object, as $possessive consciousness has long since been snuffed out. + <<elseif $dairyRestraintsSetting > 1>> + <<if $slaves[$i].fetish == "mindbroken">> + <<if (random(1,20) > $suddenBirth)>> + As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby is secure, the basket retracts to allow $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>> to be cleaned. + <<else>> + Without warning, $slaves[$i].slaveName's water breaks and $possessive body begins to rapidly push out <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. She manages to force out the squirming child before the basket could extend, flagging her unit for maintenance. + <</if>> + $pronounCap doesn't care about any of this, as the only thoughts left in $possessive empty mind revolve around the sensations in $possessive crotch and breasts. + <<else>> + <<if (random(1,20) > $suddenBirth)>> + As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. $pronounCap struggles in $possessive bindings, attempting to break free in order to birth <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby, but $possessive efforts are pointless. $pronounCap is forced to give birth, restrained, into the waiting holder. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive vagina. + <<else>> + Without warning, $slaves[$i].slaveName's water breaks and she uncontrollably births <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. She manages to force out the screaming child before the basket could fully extend, flagging her unit for maintenance and causing quite the scene. She knows full well there is nothing she can do to hide her shame. + <</if>> + $possessiveCap mind slips slightly more as $pronoun focuses on $possessive fate as nothing more than an animal destined to be milked and bare offspring until $possessive body gives out. + <<set $humiliation = 1>> + <<set $slaves[$i].trust -= 10, $slaves[$i].devotion -= 10>> + <</if>> + <<else>> + <<if $slaves[$i].fetish == "mindbroken">> + <<if (random(1,20) > $suddenBirth)>> + While getting milked, $slaves[$i].slaveName's water breaks. $pronounCap shows little interest and continues kneading $possessive breasts. Instinctively, $pronoun begins to push out <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>>. $pronounCap pays no heed to $possessive child being removed from the milking stall, instead focusing entirely on draining $possessive breasts and getting comfortable with her still very gravid middle. + <<else>> + While getting milked, $slaves[$i].slaveName's water breaks. She show little interest and continues kneading her breasts. + <<ClothingBirth>> + She shows no interest in <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> child being removed from the milking stall, nor her still very gravid middle, instead focusing entirely on draining her breasts. + <</if>> + <<else>> + <<if (random(1,20) > $suddenBirth)>> + While getting milked, $slaves[$i].slaveName's water breaks,<<if $dairyPregSetting > 0>> this is a regular occurrence to $object now so<<else>> but<</if>> $pronoun continues enjoying $possessive milking while $pronoun works to push out <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. $pronounCap catches <<if canSee($slaves[$i])>>a glimpse<<else>>the sound<</if>> of $possessive child being removed from the milking stall before returning $possessive focus to draining $possessive breasts. + <<else>> + While getting milked, $slaves[$i].slaveName's water breaks. Knowing she can't leave yet, she shifts into a more comfortable position for the impending birth. + <<ClothingBirth>> + She takes a break from milking to collect <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> child for removal and to catch her breath before reattaching the milkers and coaxing her milk to begin flowing anew. + <</if>> + <</if>> + <</if>> + <<default>> - //Assignment was $slaves[$i].assignment so why did we defualt? Report this!// + //Assignment was $slaves[$i].assignment so why did we default? Report this!// <<if !canWalk($slaves[$i])>> <<if $slaves[$i].fetish == "mindbroken">> <<if (random(1,20) > $suddenBirth)>> @@ -1057,7 +1103,7 @@ While eating in the cafeteria, $slaves[$i].slaveName's body begins to birth <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. Unable to walk without assistance, she finds herself stranded in the middle of all the dining slaves. <<set $humiliation = 1>> <<ClothingBirth>> - She gathers her child and waits to be rescued from the vicious mockery, fully aware of all the gestering and laughter. + She gathers her child and waits to be rescued from the vicious mockery, fully aware of all the jestering and laughter. <<else>> $slaves[$i].slaveName is awoken from her rest by a moist sensation followed by a contraction. She rolls over and clutches her gravid belly as another contraction wracks her body. <<ClothingBirth>> @@ -1097,7 +1143,7 @@ While waddling through the penthouse on her way to the cafeteria, $slaves[$i].slaveName's body begins to birth <<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby. Unable to reach the prepared birthing room in time, she finds herself stranded in the middle of all the dining slaves. <<set $humiliation = 1>> <<ClothingBirth>> - She gathers her child and recovers her strength before trying to escape out of sight of the jeering crowd. Finding a servant to give her child to, she hastily heads back to her bed to hide herself from the mockery. She runs a hand across her still very gravid middle; she'll have ot be more carefull in the future as there are plenty more children growing within her. + She gathers her child and recovers her strength before trying to escape out of sight of the jeering crowd. Finding a servant to give her child to, she hastily heads back to her bed to hide herself from the mockery. She runs a hand across her still very gravid middle; she'll have to be more careful in the future as there are plenty more children growing within her. <<else>> $slaves[$i].slaveName is awoken from her rest by a moist sensation followed by a contraction. She rolls over and clutches her gravid belly as another contraction wracks her body. <<ClothingBirth>> @@ -1683,7 +1729,7 @@ While eating in the cafeteria, $slaves[$i].slaveName's body begins to birth another of her brood. Unable to move, she finds herself stranded in the middle of all the dining slaves. <<set $humiliation = 1>> <<ClothingBirth>> - She gathers her child and waits to be rescued from the vicious mockery, fully aware of all the gestering and laughter. + She gathers her child and waits to be rescued from the vicious mockery, fully aware of all the jestering and laughter. <</if>> <</if>> <<else>> @@ -1727,7 +1773,7 @@ While eating in the cafeteria, $slaves[$i].slaveName's body begins to birth another of her brood. Unable to move, she finds herself stranded in the middle of all the dining slaves. <<set $humiliation = 1>> <<ClothingBirth>> - She gathers her child and waits to be rescued from the vicious mockery, fully aware of all the gestering and laughter. + She gathers her child and waits to be rescued from the vicious mockery, fully aware of all the jestering and laughter. <</if>> <</if>> <<else>> diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw index 7ee7df538576896d0c786e252079d919be68c3ef..c2db50c99d71237cc9db000a4ea0a6c1b791e87c 100644 --- a/src/pregmod/widgets/pregmodWidgets.tw +++ b/src/pregmod/widgets/pregmodWidgets.tw @@ -1,10 +1,16 @@ -:: pregmod widgets [nobr widget] +:: pregmod widgets [nobr widget] <<widget "initPC">> - <<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 3, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35}>> + <<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, hacking: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 3, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35}>> + + <<set WombInit($PC)>> + <</widget>> - + <<widget "PMODinit">> + +<<set WombInit($args[0])>> + <<if ndef $args[0].actualAge>> <<set $args[0].actualAge = $args[0].age>> <</if>> @@ -726,7 +732,7 @@ $activeSlave.slaveName is up for review: <<case "French">> and, in keeping with her heritage, a MAS AAT-F1 GPMG <<case "Korean">> - and, in keeping with her heritage, a S&T K12 GPMG + and, in keeping with her heritage, a S&T K12 GPMG <<case "South African">> and, in keeping with her heritage, a Vektor SS-77 GPMG <<case "Finnish">> @@ -979,7 +985,7 @@ $activeSlave.slaveName is up for review: <</switch>> at her side. <</if>> - + <</widget>> /* @@ -1322,7 +1328,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if <</if>> <<set $slaves[$i].devotion += 4, $citizenOrphanageTotal +=$slaves[$i].pregType, $slaveOrphanageTotal -= $slaves[$i].pregType>> <</replace>> - <</link>> + <</link>> //Will cost <<print cashFormat(100)>> weekly// | <<link 'Have them raised privately'>> <<replace `"#" + _dispositionId`>> @@ -1339,7 +1345,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if The remaining child<<if $slaves[$i].pregType > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. <<set $slaves[$i].devotion += 6, $privateOrphanageTotal += $slaves[$i].pregType, $slaveOrphanageTotal -= $slaves[$i].pregType>> <</replace>> - <</link>> + <</link>> //Will cost <<print cashFormat(500)>> weekly// <</capture>> <</if>> @@ -1759,7 +1765,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if <</if>> <<set $slaves[$i].devotion += 4, $citizenOrphanageTotal +=$slaves[$i].pregType, $slaveOrphanageTotal -= $slaves[$i].pregType>> <</replace>> - <</link>> + <</link>> //Will cost <<print cashFormat(100)>> weekly// | <<link 'Have them raised privately'>> <<replace `"#" + _dispositionId`>> @@ -1776,7 +1782,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if The remaining child<<if $slaves[$i].pregType > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. <<set $slaves[$i].devotion += 6, $privateOrphanageTotal += $slaves[$i].pregType, $slaveOrphanageTotal -= $slaves[$i].pregType>> <</replace>> - <</link>> + <</link>> //Will cost <<print cashFormat(500)>> weekly// <</capture>> <</if>> @@ -1838,7 +1844,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if /* <<case 7>> */ <<set $AgeTrainingLowerBoundPC = 14, $AgeTrainingUpperBoundPC = 16, $AgeEffectOnTrainerPricingPC = .75, $AgeEffectOnTrainerEffectivenessPC = .75>> /* <<case 8>> */ - <<set $AgeTrainingLowerBoundPC = 13, $AgeTrainingUpperBoundPC = 15, $AgeEffectOnTrainerPricingPC = .85, $AgeEffectOnTrainerEffectivenessPC = .85>> + <<set $AgeTrainingLowerBoundPC = 13, $AgeTrainingUpperBoundPC = 15, $AgeEffectOnTrainerPricingPC = .85, $AgeEffectOnTrainerEffectivenessPC = .85>> <<case 3>> <<set $AgeTrainingLowerBounds = 18, $AgeTrainingUpperBounds = 20, $AgePricing = .1, $AgeTrainingEffect = .1>> <<case 4>> @@ -1850,7 +1856,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if <<case 7>> <<set $AgeTrainingLowerBounds = 14, $AgeTrainingUpperBounds = 16, $AgePricing = .75, $AgeTrainingEffect = .75>> <<case 8>> - <<set $AgeTrainingLowerBounds = 13, $AgeTrainingUpperBounds = 15, $AgePricing = .85, $AgeTrainingEffect = .85>> + <<set $AgeTrainingLowerBounds = 13, $AgeTrainingUpperBounds = 15, $AgePricing = .85, $AgeTrainingEffect = .85>> <<case 9>> <<set $AgeTrainingLowerBoundPC = 12, $AgeTrainingUpperBoundPC = 14, $AgeEffectOnTrainerPricingPC = 1.00, $AgeEffectOnTrainerEffectivenessPC = 1.00>> <<case 10>> @@ -1870,7 +1876,7 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if <<case 17>> <<set $AgeTrainingLowerBoundPC = 4, $AgeTrainingUpperBoundPC = 6, $AgeEffectOnTrainerPricingPC = 1.07, $AgeEffectOnTrainerEffectivenessPC = 1.07>> <<case 18>> - <<set $AgeTrainingLowerBoundPC = 3, $AgeTrainingUpperBoundPC = 5, $AgeEffectOnTrainerPricingPC = 1.08, $AgeEffectOnTrainerEffectivenessPC = 1.08>> + <<set $AgeTrainingLowerBoundPC = 3, $AgeTrainingUpperBoundPC = 5, $AgeEffectOnTrainerPricingPC = 1.08, $AgeEffectOnTrainerEffectivenessPC = 1.08>> /* <<case 19>> */ /* <<set $AgeTrainingLowerBoundPC = 2, $AgeTrainingUpperBoundPC = 4, $AgeEffectOnTrainerPricingPC = 1.09, $AgeEffectOnTrainerEffectivenessPC = 1.09>> */ /* <<case 20>> */ @@ -1890,13 +1896,13 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if s.nationality = setup.nationalityPoolSelector[Object.keys(setup.nationalityPoolSelector).random()].random(); /* Check for a pre-set race and if the nationality fits, else regenerate */ if(s.race && validRaces.includes(s.race)) { - while(setup.raceSelector[s.nationality] && !setup.raceSelector[s.nationality].includes(s.race)) { + while(setup.raceSelector[s.nationality] && !(s.race in setup.raceSelector[s.nationality])) { s.nationality = setup.nationalityPoolSelector[Object.keys(setup.nationalityPoolSelector).random()].random(); } } } if(!s.race || !validRaces.includes(s.race)) { - s.race = (setup.raceSelector[s.nationality] || setup.raceSelector[""]).random(); + s.race = hashChoice(setup.raceSelector[s.nationality] || setup.raceSelector[""]); } if(!s.birthSurname) { s.birthSurname = (setup.surnamePoolSelector[s.nationality + "." + s.race] @@ -1905,3 +1911,34 @@ Of $possessive $slaves[$i].pregType child<<if $slaves[$i].pregType > 1>>ren<</if } })>> <</widget>> + +/% +Call as <<HSM>> +%/ +<<widget "HSM">> + <<if ndef $PC.hacking>> + <<set $PC.hacking = 1, $HackingSkillMultiplier = 1>> + <<elseif $PC.hacking <= -100>> + <<set $HackingSkillMultiplier = 1.5>> + <<elseif $PC.hacking <= -75>> + <<set $HackingSkillMultiplier = 1.35>> + <<elseif $PC.hacking <= -50>> + <<set $HackingSkillMultiplier = 1.25>> + <<elseif $PC.hacking <= -25>> + <<set $HackingSkillMultiplier = 1.15>> + <<elseif $PC.hacking < 0>> + <<set $HackingSkillMultiplier = 1.10>> + <<elseif $PC.hacking <= 10>> + <<set $HackingSkillMultiplier = 1>> + <<elseif $PC.hacking <= 25>> + <<set $HackingSkillMultiplier = .95>> + <<elseif $PC.hacking <= 50>> + <<set $HackingSkillMultiplier = .90>> + <<elseif $PC.hacking <= 75>> + <<set $HackingSkillMultiplier = .85>> + <<elseif $PC.hacking < 100>> + <<set $HackingSkillMultiplier = .80>> + <<elseif $PC.hacking >= 100>> + <<set $HackingSkillMultiplier = .75>> + <</if>> +<</widget>> diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw new file mode 100644 index 0000000000000000000000000000000000000000..e226b4a03b6579d3dae20156e5f5fb50ffc642ac --- /dev/null +++ b/src/pregmod/widgets/seBirthWidgets.tw @@ -0,0 +1,992 @@ +:: seBirthWidgets [widget nobr] + +<<widget "seBirthPreChek">> + +<<SlavePronouns $slaves[$i]>> + +<<set $humiliation = 0>> +<<set $suddenBirth = 1>> +<<set $seed = random(1,100)>> +<<set $csec = 0>> +<<set $slaveDead = 0>> +<<set $birthed = 1>> +<<set $birthDamage = 0>> + +/* birth complications calcs */ +<<if $slaves[$i].mpreg == 1>> +<<if $slaves[$i].anus < 2>> + <<set $birthDamage += 3>> +<</if>> +<<else>> +<<if $slaves[$i].vagina < 2>> + <<set $birthDamage += 3>> +<</if>> +<</if>> +<<if $slaves[$i].hips < 0>> + <<set $birthDamage += (2-$slaves[$i].hips)>> +<</if>> +<<if $slaves[$i].weight <= -95>> + <<set $birthDamage += 7>> +<<elseif $slaves[$i].weight <= -30>> + <<set $birthDamage += 5>> +<</if>> +<<if $slaves[$i].muscles < -95>> + <<set $birthDamage += 30>> +<<elseif $slaves[$i].muscles < -30>> + <<set $birthDamage += 4>> +<<elseif $slaves[$i].muscles < -5>> + <<set $birthDamage += 2>> +<</if>> +<<if $slaves[$i].health < -20>> + <<set $birthDamage += (4-($slaves[$i].health/10))>> +<</if>> +<<if $slaves[$i].physicalAge < 6>> + <<set $birthDamage += 5>> +<<elseif $slaves[$i].physicalAge < 9>> + <<set $birthDamage += 3>> +<<elseif $slaves[$i].physicalAge < 13>> + <<set $birthDamage += 1>> +<</if>> +<<if $slaves[$i].birthsTotal == 0>> + <<set $birthDamage += 2>> +<</if>> +<<if $slaves[$i].mpreg != 1>> +<<if $slaves[$i].vaginaLube == 0>> + <<set $birthDamage += 1>> +<</if>> +<</if>> +<<if $slaves[$i].tired > 0>> + <<set $birthDamage += 2>> +<</if>> +<<if $slaves[$i].preg >= 59>> /* better get her a c-sec*/ + <<if $slaves[$i].physicalAge < 6>> + <<set $birthDamage += 50>> + <<elseif $slaves[$i].physicalAge < 9>> + <<set $birthDamage += 30>> + <<elseif $slaves[$i].physicalAge < 13>> + <<set $birthDamage += 20>> + <</if>> + <<if $slaves[$i].hips < 0>> + <<set $birthDamage += (20-$slaves[$i].hips)>> + <</if>> +<<elseif $slaves[$i].preg > 50>> + <<if $slaves[$i].physicalAge < 6>> + <<set $birthDamage += 10>> + <<elseif $slaves[$i].physicalAge < 9>> + <<set $birthDamage += 6>> + <<else>> + <<set $birthDamage += 2>> + <</if>> + <<if $slaves[$i].hips < 0>> + <<set $birthDamage += (2-$slaves[$i].hips)>> + <</if>> +<</if>> +<<if $slaves[$i].mpreg == 1>> + <<if $slaves[$i].anus >= 2>> + <<set $birthDamage -= 2>> + <</if>> +<<else>> + <<if $slaves[$i].vagina >= 2>> + <<set $birthDamage -= 2>> + <</if>> +<</if>> +<<if $slaves[$i].hips > 0>> + <<set $birthDamage -= $slaves[$i].hips>> +<</if>> +<<if $slaves[$i].intelligenceImplant > 0>> + <<set $birthDamage -= 2>> +<</if>> +<<if $slaves[$i].birthsTotal > 0>> + <<set $birthDamage -= 3>> +<</if>> +<<if $slaves[$i].mpreg != 1>> +<<if $slaves[$i].vaginaLube > 0>> + <<set $birthDamage -= $slaves[$i].vaginaLube>> +<</if>> +<</if>> +<<if $slaves[$i].curatives > 0>> + <<set $birthDamage -= 3>> +<</if>> +<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>> + <<set $birthDamage = 0>> +<</if>> + +/* early birth calcs */ +<<if $slaves[$i].induce == 1>> + <<set $suddenBirth += 20>> +<</if>> +<<if !canWalk($slaves[$i])>> + <<set $suddenBirth += 10>> +<</if>> +<<if $slaves[$i].fetish == "mindbroken">> + <<set $suddenBirth += 18>> +<</if>> +<<if $slaves[$i].fetish == "humiliation">> + <<set $suddenBirth += 1 + $slaves[$i].fetishStrength/25>> +<</if>> +<<if $slaves[$i].weight > 190>> + <<set $suddenBirth += 10>> +<<elseif $slaves[$i].weight > 160>> + <<set $suddenBirth += 4>> +<<elseif $slaves[$i].weight > 130>> + <<set $suddenBirth += 2>> +<<elseif $slaves[$i].weight > 95>> + <<set $suddenBirth += 1>> +<</if>> +<<if $slaves[$i].muscles < -95>> + <<set $suddenBirth += 20>> +<<elseif $slaves[$i].muscles < -30>> + <<set $suddenBirth += 4>> +<<elseif $slaves[$i].muscles < -5>> + <<set $suddenBirth += 1>> +<</if>> +<<if $slaves[$i].health < 0>> + <<set $suddenBirth += 2>> +<</if>> +<<if $slaves[$i].heels == 1>> + <<set $suddenBirth += 3>> +<</if>> +<<if $slaves[$i].boobs > 40000>> + <<set $suddenBirth += 3>> +<<elseif $slaves[$i].boobs > 20000>> + <<set $suddenBirth += 1>> +<</if>> +<<if $slaves[$i].butt > 6>> + <<set $suddenBirth += 1>> +<</if>> +<<if $slaves[$i].dick >= 6>> + <<set $suddenBirth += 1>> +<</if>> +<<if $slaves[$i].balls >= 6>> + <<set $suddenBirth += 1>> +<</if>> +<<if $slaves[$i].shoes == "extreme heels">> + <<set $suddenBirth += 2>> +<</if>> +<<if $slaves[$i].mpreg != 1>> +<<if $slaves[$i].vagina > 2>> + <<set $suddenBirth += 2>> +<</if>> +<<if $slaves[$i].vaginalAccessory != "none">> + <<set $suddenBirth -= 20>> +<</if>> +<</if>> +<<set $suddenBirth -= ($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)>> +/* end calcs */ + +<</widget>> + +/*===============================================================================================*/ + +<<widget "seBirthPreScene">> + +<<if $slaves[$i].fuckdoll == 0>> + <<if $slaves[$i].broodmother == 0 || $slaves[$i].broodmotherCountDown == 1>> + <<if $slaves[$i].assignment != "work in the dairy">> + <<if $universalRulesCSec == 1>> + + <<Birth>> + + <<else>> + <<if $slaves[$i].amp != 1>> /* amps are always carried in time */ + + <<if (random(1,20) > $suddenBirth) || ($universalRulesBirthing == 1)>> /* did she make it to her birthing area? */ + Feeling childbirth approaching, <<if !canWalk($slaves[$i])>>$slaves[$i].slaveName is helped<<else>>$slaves[$i].slaveName makes $possessive way<</if>> to $possessive prepared birthing area. + + <<Birth>> + + <<else>> /* did not make it to birthing area */ + + <<if (($birthDamage > 15 && random(1,100) > 50) || ($birthDamage > 20)) && ($slaves[$i].assignment != "be the Nurse" || $slaves[$i].assignment != "get treatment in the clinic")>> + + <<DeadlyBirth>> + + <<else>> + + <<SuddenBirth>> + + <</if>> /* closes deadly birth */ + + <</if>> /* closes reg birth */ + + <<else>> /* made it to birthing area */ + With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area. + + <<AmpBirth>> + + <</if>> /* close amp birth */ + + <</if>> /* close always c-sec */ + + <<else>> + <br> + <<if $dairyRestraintsSetting > 1 and $slaves[$i].career == "a bioreactor">> + As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> All these events are meaningless to $object, as $possessive consciousness has long since been snuffed out. + <<elseif $dairyRestraintsSetting > 1>> + <<if $slaves[$i].fetish == "mindbroken">> + As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> $pronounCap doesn't care about any of this, as the only thoughts left in $possessive empty mind revolve around the sensations in $possessive crotch and breasts. + <<else>> + As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. $pronounCap struggles in $possessive bindings, attempting to break free in order to birth $possessive coming child, but $possessive efforts are pointless. $pronounCap is forced to give birth, restrained, into the waiting holder. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive vagina.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more. $slaves[$i].slaveName moans, partially with pleasure and partially with defeat, under the growing pressure within $possessive body. Tears stream down $possessive face as <<if $slaves[$i].births > 0>>$pronoun is forcibly impregnated once more<<else>>$pronoun attempts to shift in $possessive restraints to peek around $possessive swollen breasts, but $pronoun is too well secured. $pronounCap'll realize what is happening when $possessive belly grows large enough to brush against $possessive breasts as the milker sucks from them<<if $slaves[$i].dick > 0>> or $possessive dick begins rubbing its underside<</if>><</if>>.<</if>> $possessiveCap mind slips slightly more as $pronoun focuses on $possessive fate as nothing more than an animal destined to be milked and bare offspring until $possessive body gives out. + <<set $slaves[$i].trust -= 10>> + <<set $slaves[$i].devotion -= 10>> + <</if>> + <<else>> + <<if $slaves[$i].fetish == "mindbroken">> + While getting milked, $slaves[$i].slaveName's water breaks. $pronounCap shows little interest and continues kneading $possessive breasts. Instinctively $pronoun begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap pays no heed to $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall, instead focusing entirely on draining $possessive breasts. + <<else>> + While getting milked, $slaves[$i].slaveName's water breaks,<<if $dairyPregSetting > 0>> this is a regular occurrence to $object now so<<else>> but<</if>> $pronoun continues enjoying $possessive milking. $pronounCap begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap catches <<if canSee($slaves[$i])>>a glimpse<<else>>the sound<</if>> of $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall before returning $possessive focus to draining $possessive breasts. + <</if>> + <</if>> + <</if>> /* close cow birth */ + + <<else>> + + <<if $slaves[$i].amp == 1>> + With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area. + <<AmpBirth>> + <<elseif $slaves[$i].broodmother == 1>> + <<BroodmotherBirth>> + <<else>> + <<HyperBroodmotherBirth>> + <</if>> + + <</if>> /* close broodmother birth */ + +<<else>> /*fuckdoll birth */ + <<if $universalRulesCSec == 1>> + <<set $csec = 1>> + $slaves[$i].slaveName's suit's systems alert that it is ready to give birth; it is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up. + <<elseif $universalRulesBirthing == 1>> + $slaves[$i].slaveName's suit's systems alert that it is ready to give birth. It is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up. + <<elseif $birthDamage > 10>> + <<set $csec = 1>> + $slaves[$i].slaveName's suit's systems alert that it is ready to give birth. Since it fails to qualify as a birthing model, it is quickly taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and to be cleaned up. + <<else>> + $slaves[$i].slaveName's suit's systems alert you that it is ready to give birth. You carefully pose it as it labors on bringing its child<<if $slaves[$i].pregType > 1>>ren<</if>> into the world and sit back to enjoy yourself as its <<if $slaves[$i].pregType > 1>>first<</if>> baby starts to crown. Once both it and yourself are finished, you send its offspring off and it to the autosurgery for cleaning. + <</if>> + It barely comprehends what has happened, nor will it realize when another child is conceived in it. +<</if>> /* close fuckdoll birth */ + +/* end of 2.*/ + +<</widget>> + +/*===============================================================================================*/ + +<<widget "seBirthCalc">> + +<<set $slaves[$i].pregControl = "none">> +<<set _beforeSize = WombGetVolume($slaves[$i])>> +<<if $slaves[$i].broodmother > 0>> + <<set $slaves[$i].curBabies = WombBirth($slaves[$i], 37)>> /*broodmothers - give birth for all 37+ week fetuses.*/ +<<else>> + <<set $slaves[$i].curBabies = WombBirth($slaves[$i], 34)>> /*Normal pregnancy - 34 week is minimal gestation time for live birth.*/ +<</if>> +<<set $slaves[$i].curStillBirth = 0 >> + +<<set _curBabies = $slaves[$i].curBabies.length>> /*just to improve speed and usability here.*/ +/*<br>TEST curBabies: _curBabies<br>*/ + +<<set $slaves[$i].births += _curBabies>> +<<set $slaves[$i].birthsTotal += _curBabies>> +<<set $birthsTotal += _curBabies>> +<<if $slaves[$i].pregSource > 0>> + <<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>> + <<if _babyDaddy != -1>> + <<set $slaves[_babyDaddy].slavesFathered += _curBabies>> + <<else>> + Note: Unknown father when one should be found. Suspect ID is $slaves[$i].pregSource + <</if>> +<<elseif $slaves[$i].pregSource == -1>> + <<set $PC.slavesFathered += _curBabies>> +<</if>> + +/* Here support for partial birth cases but if slaves still NOT have broomother implant. Right now remaining babies will be lost, need to add research option for selective births. It's should control labour and stop it after ready to birth babies out. Should be Repopulation FS research before broodmothers (their implant obviously have it as a part of functional). */ +<<if $slaves[$i].broodmother == 0>> + <<if $safePartialBirthTech == 1 >> + /* nothing right now.*/ + <<else>> + <<set $slaves[$i].curStillBirth = $slaves[$i].womb.length>> + <<set WombFlush($slaves[$i])>> + <</if>> +<</if>> + +<<set _afterSize = WombGetVolume($slaves[$i])>> +<<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid divide by zero error.*/ + +<</widget>> + +/*===============================================================================================*/ + +<<widget "seBirthMainScene">> +<<set _curBabies = $slaves[$i].curBabies.length>> + +<<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>> +<<if def _getFather>> + <<set $daddy = _getFather.slaveName>> +<<else>> + <<set $daddy = "some unknown father">> +<</if>> + +/* -------- cow birth variant ---------------------------------------------------------------------*/ +<br> +<br> +/* diffSize used for check result of partial birth size changes - if it = 2 then womb lost half of it's original size after partial birth, if it = 1 - no size lost. (We get this value as result of dividing of original womb size by after birth size) +This decriptions can be expanded with more outcomes later. But it's not practical to check values above 5-10 - it become too affected by actual value of womb size. +*/ +<<if $slaves[$i].assignment == "work in the dairy" && $dairyPregSetting > 0>> + As a human cow, $pronoun @@.orange;gave birth@@ + <<if $diffSize < 1.15>> + but $possessive overfilled womb barely lost any size. $possessiveCap body gave life + <<elseif $diffSize < 1.3>> + but $possessive stomach barely shrank at all. $possessiveCap body gave life + <</if>> + + <<if _curBabies < 1>> + to no live ones, but a stillbirth only. /* syntax wise this has problems. Will likely need to be reworked. */ + <<elseif _curBabies == 1>> + to a single calf. + <<elseif _curBabies >= 40>> + to a massive brood of _curBabies calves. + <<elseif _curBabies >= 20>> + to a brood of _curBabies calves. + <<elseif _curBabies >= 10>> + to a squirming pile of _curBabies calves. + <<elseif _curBabies == 9>> + to calf nonuplets. + <<elseif _curBabies == 8>> + to calf octuplets. + <<elseif _curBabies == 7>> + to calf septuplets. + <<elseif _curBabies == 6>> + to calf sextuplets. + <<elseif _curBabies == 5>> + to calf quintuplets. + <<elseif _curBabies == 4>> + to calf quadruplets. + <<elseif _curBabies == 3>> + to calf triplets. + <<else>> + to calf twins. + <</if>> + +<<else>> /* ---------- normal birth variant. -------------------------------------------------------------*/ + + <<if $csec == 1>> + $pronounCap was given @@.orange;a cesarean section@@ due to health concerns.<br><br> + From $possessive womb, + <<else>> + $pronounCap @@.orange;gave birth@@ + <<if $diffSize < 1.15>> + , but $possessive stomach barely shrank at all. $possessiveCap body gave life to + <<elseif $diffSize < 1.3>> + , but $possessive overfilled womb barely lost any size. $possessiveCap body gave life to + <</if>> + <</if>> + + <<if _curBabies < 1>> + no live ones, but a stillbirth only + <<elseif _curBabies == 1>> + a single baby, + <<elseif _curBabies >= 40>> + a massive brood of _curBabies babies, + <<elseif _curBabies >= 20>> + a brood of _curBabies babies, + <<elseif _curBabies >= 10>> + a squirming pile of _curBabies babies, + <<elseif _curBabies == 9>> + nonuplets, + <<elseif _curBabies == 8>> + octuplets, + <<elseif _curBabies == 7>> + septuplets, + <<elseif _curBabies == 6>> + sextuplets, + <<elseif _curBabies == 5>> + quintuplets, + <<elseif _curBabies == 4>> + quadruplets, + <<elseif _curBabies == 3>> + triplets, + <<else>> + twins, + <</if>> + <<if _curBabies > 0>> + created by + <<if $slaves[$i].pregSource == -1>> + your magnificent dick<<if $csec == 1>>, entered the world<</if>>. + <<elseif $slaves[$i].pregSource == -2>> + your arcology's eager citizens<<if $csec == 1>>, entered the world<</if>>. + <<elseif $slaves[$i].pregSource == -3>> + the Societal Elite<<if $csec == 1>>, entered the world<</if>>. + <<elseif $slaves[$i].pregSource == 0>> + an unknown father<<if $csec == 1>>, entered the world<</if>>. + <<elseif $slaves[$i].ID == $daddy.ID>> + $possessive own curiosity over if $pronoun could fuck <<print $possessive>>self<<if $csec == 1>>, entered the world<</if>>. + <<else>> + $daddy's virile cock and balls<<if $csec == 1>>, entered the world<</if>>. + <</if>> + <</if>> + +<</if>> + +/* ---- Postbirth reactions, body -------------------------------------------------------------------------------------------*/ + +<<if $csec != 1>> /*all this block only if no c'section used.*/ + + <<if $slaves[$i].broodmother > 0>> /*Now this block shown only for broodmothers. They birth only ready children, so _curBabies is effective to se how many birthed this time.*/ + <br> + <<if $diffSize > 1.5 && _curBabies >= 80 >> /*only show if belly lost at least 1/4 of original size.*/ + <br> + After an entire day of labor and birth, $possessive belly sags heavily. + <<elseif $diffSize > 1.5 && _curBabies >= 40>> + <br> + After half a day of labor and birth, $possessive belly sags softly. + <<elseif $diffSize > 1.5 && _curBabies >= 20>> + <br> + After several hours of labor and birth, $possessive belly sags softly. + <<elseif $diffSize > 1.5 && _curBabies >= 10>> + <br> + After few hours of labor and birth, $possessive belly sags softly. + <<elseif $diffSize > 1.5>> + <br> + After labor and birth, $possessive belly sags softly. + <</if>> + <<else>> /* this was intended for normal birth to draw attention to how long it takes to pass that many children as well as how deflated she'll be after the fact. */ + <<if $slaves[$i].pregType >= 80>> + After an entire day of labor and birth, $possessive belly sags heavily. + <<elseif $slaves[$i].pregType >= 40>> + After half a day of labor and birth, $possessive belly sags emptily. + <<elseif $slaves[$i].pregType >= 20>> + After several hours of labor and birth, $possessive belly sags softly. + <</if>> + <</if>> + + <<if ($slaves[$i].vagina == 0) || ($slaves[$i].mpreg == 1 && $slaves[$i].anus == 0)>> + <<if $slaves[$i].fetish != "mindbroken">> + <br><br> + <<if ($slaves[$i].fetish == "masochist")>> + Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience.<<if $slaves[$i].fetishKnown == 0>>$pronounCap seems to have orgasmed several times during the experience, $pronoun appears to @@.lightcoral;really like pain@@.<<set $slaves[$i].fetishKnown = 1>><<else>> However, due to $possessive masochistic streak, $pronoun @@.hotpink;greatly enjoyed@@ said experience<</if>>. + <<set $slaves[$i].health -= 10, $slaves[$i].devotion += 2>> + <<else>> + Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience. $pronounCap @@.mediumorchid;despises@@ you for taking $possessive virginity in such a @@.gold;horrifying@@ way. + <<set $slaves[$i].health -= 10, $slaves[$i].devotion -= 25, $slaves[$i].trust -= 25>> + <</if>> + <</if>> + <</if>> + <<if ($slaves[$i].hips < -1)>> + <br><br> + $pronounCap had exceedingly narrow hips, completely unsuitable for childbirth. As $pronoun struggled on $possessive <<if _curBabies > 1>>first<</if>> child, $possessive pelvic bone strained under the pressure until it could no longer hold together and @@.red;agonizingly snapped.@@ + <<if $slaves[$i].fetish != "mindbroken">> + <<if ($slaves[$i].fetish == "masochist")>> + <<if $slaves[$i].fetishKnown == 0>>What would have made most girls blackout from pain sent $object into the lewdest orgasm you've seen today. $pronounCap @@.lightcoral;must get off to pain.@@.<<set $slaves[$i].fetishKnown = 1>><<else>> $pronounCap claims to have never climaxed so hard and @@.hotpink;wishes her hips could have stayed that narrow for next time.@@<</if>> + <<set $slaves[$i].devotion += 5>> + <<elseif $slaves[$i].devotion > 70>> + When $pronoun comes to, $possessive pelvis has already been patched up. $pronounCap is just glad that $pronoun managed to finish giving birth despite the hindrance. + <<else>> + When $pronoun comes to, $possessive pelvis has already been patched up. $pronounCap @@.mediumorchid;loathes you@@ for forcing $possessive body to undergo such a painful experience and @@.gold;fears@@ what horror you have planned next. + <<set $slaves[$i].devotion -= 25, $slaves[$i].trust -= 25>> + <</if>> + <<else>> + It only hurt for an instant and a second later was promptly forgotten. To $object, $possessive hips were always this wide. + <</if>> + $possessiveCap pelvis has been forced into a @@.lime;more feminine@@ shape.<<if $slaves[$i].hipsImplant > 0>> This has also undone any surgical narrowing $pronoun has undergone.<</if>> + <<set $slaves[$i].health -= 20, $slaves[$i].hips = 0, $slaves[$i].hipsImplant = 0>> + <</if>> + <br><br> + <<if $slaves[$i].mpreg == 1>> + <<if ($slaves[$i].anus < 0)>> /* you somehow got a pregnant slave with no vagina catch */ + Childbirth has @@.lime;has torn $object a gaping anus.@@ + <<elseif ($slaves[$i].anus == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */ + Childbirth has @@.lime;ruined $possessive virgin ass.@@ + <<elseif ($slaves[$i].anus == 1)>> + Childbirth has @@.lime;greatly stretched out $possessive ass.@@ + <<elseif ($slaves[$i].anus == 2)>> + Childbirth has @@.lime;stretched out $possessive ass.@@ + <<elseif ($slaves[$i].anus == 3)>> + $possessiveCap ass was loose enough to not be stretched by childbirth. + <<elseif ($slaves[$i].anus < 10)>> + Childbirth stood no chance of stretching $possessive gaping ass. + <<elseif ($slaves[$i].anus == 10)>> + $possessiveCap child could barely stretch $possessive cavernous ass. + <<else>> + Childbirth has @@.lime;stretched out $possessive ass.@@ + <</if>> + <<else>> + <<if ($slaves[$i].vagina < 0)>> /* you somehow got a pregnant slave with no vagina catch */ + Childbirth has @@.lime;has torn $object a gaping vagina.@@ + <<elseif ($slaves[$i].vagina == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology (or maybe it's just surgery?) */ + Childbirth has @@.lime;ruined $possessive virgin vagina.@@ + <<elseif ($slaves[$i].vagina == 1)>> + Childbirth has @@.lime;greatly stretched out $possessive vagina.@@ + <<elseif ($slaves[$i].vagina == 2)>> + Childbirth has @@.lime;stretched out $possessive vagina.@@ + <<elseif ($slaves[$i].vagina == 3)>> + $possessiveCap vagina was loose enough to not be stretched by childbirth. + <<elseif ($slaves[$i].vagina < 6)>> + Childbirth stood no chance of stretching $possessive gaping vagina. + <<elseif ($slaves[$i].vagina == 10)>> + $possessiveCap child could barely stretch $possessive cavernous vagina. + <<else>> + Childbirth has @@.lime;stretched out $possessive vagina.@@ + <</if>> + <</if>> + <<if $slaves[$i].mpreg == 1>> + /* Childbirth has @@.lime;stretched out $possessive anus.@@ //no need for description now */ + <<if ($dairyPregSetting > 1) && ($slaves[$i].anus < 4)>> + <<set $slaves[$i].anus += 1>> + <<elseif ($slaves[$i].anus < 3)>> + <<set $slaves[$i].anus += 1>> + <</if>> + <<else>> + /* Childbirth has @@.lime;stretched out $possessive vagina.@@ //no need for description now */ + <<if ($dairyPregSetting > 1) && ($slaves[$i].vagina < 4)>> + <<set $slaves[$i].vagina += 1>> + <<elseif ($slaves[$i].vagina < 3)>> + <<set $slaves[$i].vagina += 1>> + <</if>> + <</if>> + +<<else>> + <br><br> + Since $possessive <<if $slaves[$i].mpreg == 1>>ass<<else>>vagina<</if>> was spared from childbirth, @@.lime;it retained its tightness.@@ +<</if>> + +/* ------ Postbirth reactions, mother experience ----------------------------------------------------------------------------- */ + + /* I think all this reactions should be showed only if no c'section used too. Setting it up for just in case: */ +<<if $csec == 0 && $slaves[$i].assignment != "work in the dairy">> /*if not desired, this check can be easily removed or deactevated with condition set to true.*/ + <br> + <<if $slaves[$i].birthsTotal == 0>> + <br> + $possessiveCap inexperience @@.red;complicated $possessive first birth@@. + <<set _compoundCondition = 1>> + <</if>> + <<if $slaves[$i].mpreg == 1>> + <<if $slaves[$i].anus < 2>> + <br> + $possessiveCap tight ass @@.red;hindered $possessive <<if _curBabies >1>>babies<<else>>baby's<</if>> birth@@. + <</if>> + <<else>> + <<if $slaves[$i].vagina < 2>> + <br> + $possessiveCap tight vagina @@.red;hindered $possessive <<if _curBabies >1>>babies<<else>>baby's<</if>> birth@@. + <</if>> + <<if $slaves[$i].vaginaLube == 0>> + <br> + $possessiveCap dry vagina made pushing $possessive <<if _curBabies >1>>children<<else>>child<</if>> out @@.red;painful@@. + <</if>> + <</if>> + <<if $slaves[$i].hips < 0>> + <br> + $possessiveCap narrow hips made birth @@.red;troublesome@@. + <</if>> + <<if $slaves[$i].weight < -95>> + <br> + $possessiveCap very thin body @@.red;was nearly incapable of birthing $possessive <<if _curBabies >1>>children<<else>>child<</if>>@@. + <<set _compoundCondition = 1>> + <<elseif $slaves[$i].weight <= -30>> + <br> + $possessiveCap thin body was @@.red;ill-suited $possessive childbirth@@. + <</if>> + <<if $slaves[$i].health < -20>> + <br> + $possessiveCap poor health made laboring @@.red;exhausting@@. + <<set _compoundCondition = 1>> + <</if>> + <<if $slaves[$i].physicalAge < 6>> + <br> + $possessiveCap very young body was @@.red;not designed to be able pass a <<if _curBabies >1>>babies<<else>>baby<</if>>@@. + <<elseif $slaves[$i].physicalAge < 9>> + <br> + $possessiveCap young body had @@.red;a lot of trouble@@ birthing $possessive <<if _curBabies >1>>babies<<else>>baby<</if>>. + <<elseif $slaves[$i].physicalAge < 13>> + <br> + $possessiveCap young body had @@.red;trouble birthing@@ $possessive <<if _curBabies >1>>babies<<else>>baby<</if>>. + <<set _compoundCondition = 1>> + <</if>> + <<if $slaves[$i].tired > 0>> + <br> + $pronounCap was so tired, $pronoun @@.red;lacked the energy to effectively push@@. + <<set _compoundCondition = 1>> + <</if>> + <<if $slaves[$i].muscles < -95>> + <br> + $pronounCap tried and tried but $possessive frail body @@.red;could not push $possessive <<if _curBabies >1>>children<<else>>child<</if>> out@@. + <<set _compoundCondition = 1>> + <<elseif $slaves[$i].muscles < -30>> + <br> + $possessiveCap very weak body @@.red;barely managed to push@@ out $possessive <<if _curBabies >1>>children<<else>>child<</if>>. + <<set _compoundCondition = 1>> + <<elseif $slaves[$i].muscles < -5>> + <br> + $possessiveCap weak body @@.red;struggled to push@@ out $possessive <<if _curBabies >1>>children<<else>>child<</if>>. + <</if>> + <<if $slaves[$i].preg > 50>> + <br> + $possessiveCap's <<if _curBabies > 1>>children<<else>>child<</if>> had extra time to grow @@.red;greatly complicating childbirth@@. + <<set _compoundCondition = 1>> + <</if>> + <<if (($slaves[$i].vagina >= 2 || $slaves[$i].vaginaLube > 0) && $slaves[$i].mpreg == 1) || $slaves[$i].births > 0 || $slaves[$i].hips > 0 || (setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95) || $slaves[$i].intelligenceImplant > 0>> + <br>However: + <<if $slaves[$i].mpreg == 1>> + <<if $slaves[$i].anus >= 2>> + <br> + $possessiveCap @@.green;loose ass@@ made birthing $possessive <<if _curBabies >1>>children<<else>>child<</if>> easier. + <</if>> + <<else>> + <<if $slaves[$i].vagina >= 2>> + <br> + $possessiveCap @@.green;loose vagina@@ made birthing $possessive <<if _curBabies >1>>children<<else>>child<</if>> easier. + <</if>> + <<if $slaves[$i].vaginaLube > 0>> + <br> + $possessiveCap @@.green;moist vagina@@ hastened $possessive <<if _curBabies >1>>children's<<else>>child's<</if>> birth. + <</if>> + <</if>> + <<if $slaves[$i].birthsTotal > 0>> + <br> + $pronounCap has @@.green;given birth before@@, so $pronoun knows just what to do. + <</if>> + <<if $slaves[$i].hips > 0>> + <br> + $possessiveCap @@.green;wide hips@@ greatly aided childbirth. + <</if>> + <<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>> + <br> + Thanks to $possessive @@.green;previous career@@, childbirth went smoothly. + <</if>> + <<if $slaves[$i].intelligenceImplant > 0>> + <br> + $pronounCap was @@.green;taught how to handle birth@@ in class. + <</if>> + <</if>> +<</if>> +/*----- Body/mother resume -------------------------*/ +<br> +<br> +<<if $slaves[$i].assignment != "work in the dairy" && $csec == 0>> /* && $slaves[$i].broodmother == 0 // removed - broodmother have sensations too */ +All in all, + <<if $birthDamage > 15>> + childbirth was @@.red;horrifically difficult for $object and nearly claimed $possessive lif.e@@ + <<elseif $birthDamage > 10>> + childbirth was extremely difficult for $object and @@.red;greatly damaged $possessive health.@@ + <<elseif $birthDamage > 5>> + childbirth was difficult for $object and @@.red;damaged $possessive health.@@ + <<elseif $birthDamage > 0>> + childbirth was painful for $object, though not abnormally so, and @@.red;damaged $possessive health.@@ + <<else>> + childbirth was @@.green;no problem@@ for $object. + <</if>> + <<if $birthDamage > 0>> + <<set $slaves[$i].health -= Math.round(($birthDamage/2)*10)>> + <<if $birthDamage > 5 && _compoundCondition == 1 && _curBabies > 0>> + Or it would have been, were $pronoun only having one. With each additional child that needed to be birthed, @@.red;the damage to $possessive health was compounded.@@ + <<set $slaves[$i].health -= _curBabies>> + <</if>> + <</if>> +<</if>> + +/* ----- Postbirth reactions, mind ------------------------------------------------------------------------------------------- */ + +<<if $slaves[$i].fetish != "mindbroken">> + <<if $slaves[$i].curStillBirth > 0>> + <br><br> + /*Here should be descriptions of reactions from losing some of babies.*/ + <</if>> + <<if ($slaves[$i].devotion) < 20>> + <br><br> + $pronounCap @@.mediumorchid;despises@@ you for using $object as a breeder. + <<set $slaves[$i].devotion -= 10>> + <</if>> + <<if $slaves[$i].fuckdoll == 0>> + <<if $slaves[$i].pregSource == -1 >> + <<if $slaves[$i].devotion < 20 && ($week-$slaves[$i].weekAcquired >= $slaves[$i].weekAcquired)>> + <br> + $pronounCap @@.mediumorchid;hates@@ you for using $possessive body to bear your children. + <<set $slaves[$i].devotion -= 10>> + <<elseif $slaves[$i].devotion > 50>> + <br> + <<print $pronounCap>>'s @@.hotpink;so proud@@ to have successfully carried children for you. + <<set $slaves[$i].devotion += 3>> + <</if>> + <</if>> + <</if>> + <<if $humiliation == 1>> + <br><br> + Giving birth in such a manner was completely humiliating, + <<if $slaves[$i].fetish == "humiliation">> + and a complete turn on to $object. $possessiveCap humiliation fetish @@.lightcoral;strengthens@@ as $pronoun eagerly fantasizes about giving birth in public again. + <<set $slaves[$i].fetishStrength += 4>> + <<elseif $slaves[$i].fetish == "none" || $slaves[$i].fetishStrength <= 60>> + and a curious experience to $object. <<if random(1,5) == 1>>@@.lightcoral;$pronounCap has developed a humiliation fetish.@@<<set $slaves[$i].fetish = "humiliation">><<else>>$pronounCap hopes to never repeat it.<</if>> + <<elseif $slaves[$i].devotion <= 20>> + and completely devastating to $possessive image of herself. The experience @@.hotpink;habituates $object@@ to cruelties of slavery. + <<set $slaves[$i].devotion += 5>> + <<else>> + and $pronoun hopes to never undergo it again. + <</if>> + <</if>> +<</if>> + +/* ------ Social reactions--------------- */ +<<if $arcologies[0].FSRestart != "unset">> + <<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> + <br><br> + The Societal Elite @@.green;are pleased@@ at the new additions to their class. + <<set $failedElite -= 2 * _curBabies>> + <<else>> + <br><br> + The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty the arcology under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world. + <<set $failedElite += 5 * _curBabies>> + <<set $rep -= 10 * _curBabies>> + <</if>> +<</if>> + +<</widget>> + +/*===============================================================================================*/ + +<<widget "seBirthBabies">> +<<set _curBabies = $slaves[$i].curBabies.length, _cToIncub = 0, _origReserve = $slaves[$i].reservedChildren>> + +/* ----------------------- incubator adding subsection. There is support for broodmothers too. */ + +<<if _origReserve > 0 && _curBabies > 0>> /*Do we need incubator checks?*/ + <<if _curBabies >= _origReserve>> + /*adding normal*/ + <<set _cToIncub = _origReserve>> + <<elseif _curBabies < _origReserve && $slaves[$i].womb.length > 0>> + /*broodmother or partial birth, we will wait for next time to get remaining children*/ + <<set $slaves[$i].reservedChildren -= _curBabies, _cToIncub = _curBabies>> + <<else>> + /*Stillbirth or something other go wrong. Correcting children count.*/ + <<set $slaves[$i].reservedChildren = 0, _cToIncub = _curBabies>> + <</if>> + + <<set $mom = $slaves[$i]>> + <br><br> + Of $possessive _curBabies child<<if $slaves[$i].pregType > 1>>ren<</if>>; _cToIncub <<if $slaves[$i].reservedChildren > 1>>were<<else>>was<</if>> taken to $incubatorName. + <<for _k = _cToIncub; _k != 0; _k-->> + <<include "Generate Child">> + <<include "Incubator Workaround">> + <<set $slaves[$i].curBabies.shift()>> /*for now child generation metod for incubator not changed. But here children for incubator removed from array of birthed babies. If we decide later - we can use them for incubator as real objects here. For now they just discarded silently */ + <</for>> + <<set $reservedChildren -= _cToIncub>> + <<set _curBabies = $slaves[$i].curBabies.length>> + <br><br> + <<if _curBabies > 0>> + After sending $possessive reserved child<<if _cToIncub > 1>>ren<</if>> to $incubatorName, it's time to decide the fate of the other<<if _curBabies > 0>><</if>>. + <</if>> +<</if>> + + +/*------------------------ Fate of other babies ---------------------------------------*/ + +<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0 && _curBabies > 0>> +<<set _count = _curBabies>> + <br><br> + <<span $dispositionId>> + <<if $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> + <<set _lostBabies = 1>> + $possessiveCap child<<if _curBabies > 1>>ren<</if>> are collected by the Societal Elite to be raised into upstanding members of the new society. + <<elseif $Cash4Babies == 1>> + <<set _lostBabies = 1>> + <<set _babyCost = random(-12,12)>> + <<if ($slaves[$i].relationship == -3)>> + You make sure $possessive children are cared for, since $pronoun is your wife. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@ + <<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>> + <<set _lostBabies = 0>> + <<elseif ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>> + $possessiveCap children are guaranteed to be treated well despite the laws you've passed since $pronoun is a member of your harem. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@ + <<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>> + <<set _lostBabies = 0>> + <<else>> + $possessiveCap <<if _curBabies > 1>>babies<<else>>baby<</if>> sold for <<if _curBabies > 1>>a total of <</if>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@ + <<set $cash += _curBabies*(50+_babyCost)>> + <</if>> + <</if>> + <<if _lostBabies != 1>> + <<set $slaveOrphanageTotal += _curBabies>> + Unless you provide otherwise, the child<<if _curBabies > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName + <<if $slaves[$i].devotion > 95>> + worships you so completely that $pronoun will not resent this. + <<elseif $slaves[$i].devotion > 50>> + is devoted to you, but $pronoun will @@.mediumorchid;struggle to accept this.@@ + <<set $slaves[$i].devotion -= 2>> + <<elseif $slaves[$i].devotion > 20>> + has accepted being a sex slave, but $pronoun will @@.mediumorchid;resent this intensely.@@ + <<set $slaves[$i].devotion -= 3>> + <<else>> + will of course @@.mediumorchid;hate you for this.@@ + <<set $slaves[$i].devotion -= 4>> + <</if>> + <<capture $i, $dispositionId, _count>> + <br> + <<if $arcologies[0].FSRepopulationFocus > 40>> + <<link 'Send them to a breeder school'>> + <<replace `"#" + $dispositionId`>> + The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName + <<if $slaves[$i].devotion > 95>> + loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. $pronounCap can't wait to see $possessive child<<if _count > 1>>ren<</if>> proudly furthering your cause. + <<set $slaves[$i].devotion += 4>> + <<elseif $slaves[$i].devotion > 50>> + heard about these and will be @@.hotpink;happy that $possessive child<<if _count > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that. + <<set $slaves[$i].devotion += 4>> + <<elseif $slaves[$i].devotion > 20>> + will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will is broken enough to hope that $possessive offspring will have a better life, or at least an enjoyable one. + <<else>> + will of course @@.mediumorchid;hate you for this.@@ The mere thought of $possessive $fertilityAge year old daughter<<if _count > 1>>s<</if>> swollen with life, and proud of it, fills $object with @@.gold;disdain.@@ + <<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>> + <</if>> + <<set $breederOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> + <</replace>> + <</link>> + //Will cost a one time <<print cashFormat(50)>>// | + <</if>> + <<link 'Send them to a citizen school'>> + <<replace `"#" + $dispositionId`>> + The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName + <<if $slaves[$i].devotion > 95>> + loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. + <<elseif $slaves[$i].devotion > 50>> + knows about these and will be @@.hotpink;overjoyed.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that. + <<elseif $slaves[$i].devotion > 20>> + will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $possessive offspring will have a better life. + <<else>> + will naturally retain some resentment over being separated from $possessive child<<if _count > 1>>ren<</if>>, but this should be balanced by hope that $possessive offspring will have a better life. + <</if>> + <<set $slaves[$i].devotion += 4, $citizenOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> + <</replace>> + <</link>> + //Will cost <<print cashFormat(100)>> weekly// + | <<link 'Have them raised privately'>> + <<replace `"#" + $dispositionId`>> + The child<<if _count > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $slaves[$i].slaveName + <<if $slaves[$i].devotion > 95>> + will @@.hotpink;worship you utterly@@ for this. + <<elseif $slaves[$i].devotion > 50>> + understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@ + <<elseif $slaves[$i].devotion > 20>> + will miss $possessive child<<if _count > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $pronoun>>'ll understand this is the best possible outcome for a slave mother. + <<else>> + will resent being separated from $possessive child<<if _count > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here. + <</if>> + The child<<if _count > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. + <<set $slaves[$i].devotion += 6, $privateOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> + <</replace>> + <</link>> + //Will cost <<print cashFormat(500)>> weekly// + <<if $Cash4Babies == 1>> + <<if $slaves[$i].prestige > 1>> + | <<link 'Send them to auction'>> + <<replace `"#" + $dispositionId`>> + <<set _babyCost = random(-12,100)>> + $possessiveCap <<if _count > 1>>babies<<else>>baby<</if>> went for a <<if _curBabies > 1>>total <</if>>bid of @@.yellowgreen;<<print cashFormat(_count*(50+_babyCost))>>.@@ + <<if $slaves[$i].devotion > 95>> + $pronounCap adheres to your thoughts so strongly that even though you backed out of caring for $possessive child<<if _count > 1>>ren<</if>>, $pronoun still truly believes you are doing $object an honor. + <<elseif $slaves[$i].devotion > 50>> + $pronounCap is @@.mediumorchid;deeply hurt@@ by your sudden decision to sell $possessive child<<if _count > 1>>ren<</if>> instead of having <<if _count > 1>>them<<else>>it<</if>> cared for. $possessiveCap trust in your words @@.gold;wavers@@ as $pronoun thinks of $possessive child<<if _count > 1>>ren<</if>>'s future. + <<set $slaves[$i].trust -= 5, $slaves[$i].devotion -= 5>> + <<elseif $slaves[$i].devotion > 20>> + $pronounCap is @@.mediumorchid;devastated@@ by your sudden decision to sell $possessive child<<if _count > 1>>ren<</if>> instead of having <<if _count > 1>>them<<else>>it<</if>> cared for. $possessiveCap mind struggles to comprehend @@.gold;such betrayal.@@ + <<set $slaves[$i].trust -= 10, $slaves[$i].devotion -= 10>> + <<else>> + For a moment, $pronoun saw a glimmer of good in you; @@.mediumorchid;$pronoun was clearly wrong.@@ $possessiveCap mind struggles to comprehend @@.gold;why $pronoun could ever even thing of trusting such a person.@@ + <<set $slaves[$i].trust -= 30, $slaves[$i].devotion -= 30>> + <</if>> + <<set $cash += _curBabies*(50+_babyCost)>> + <</replace>> + <</link>> + <<else>> + | <<link 'Sell them anyway'>> + <<replace `"#" + $dispositionId`>> + <<set _babyCost = random(-12,12)>> + $possessiveCap <<if _count > 1>>babies<<else>>baby<</if>> sold for <<if _curBabies > 1>>a total of <</if>>@@.yellowgreen;<<print cashFormat(_count*(50+_babyCost))>>.@@ + <<if $slaves[$i].devotion > 95>> + $pronounCap adheres to your thoughts so strongly that even though you backed out of caring for $possessive child<<if _count > 1>>ren<</if>>, $pronoun still truly believes you are doing $object an honor. + <<elseif $slaves[$i].devotion > 50>> + $pronounCap is @@.mediumorchid;deeply hurt@@ by your sudden decision to sell $possessive child<<if _count > 1>>ren<</if>> instead of having <<if _count > 1>>them<<else>>it<</if>> cared for. $possessiveCap trust in your words @@.gold;wavers@@ as $pronoun thinks of $possessive child<<if _count > 1>>ren<</if>>'s future. + <<set $slaves[$i].trust -= 5, $slaves[$i].devotion -= 5>> + <<elseif $slaves[$i].devotion > 20>> + $pronounCap is @@.mediumorchid;devastated@@ by your sudden decision to sell $possessive child<<if _count > 1>>ren<</if>> instead of having <<if _count > 1>>them<<else>>it<</if>> cared for. $possessiveCap mind struggles to comprehend @@.gold;such betrayal.@@ + <<set $slaves[$i].trust -= 10, $slaves[$i].devotion -= 10>> + <<else>> + For a moment, $pronoun saw a glimmer of good in you; @@.mediumorchid;$pronoun was clearly wrong.@@ $possessiveCap mind struggles to comprehend @@.gold;why $pronoun could ever even thing of trusting such a person.@@ + <<set $slaves[$i].trust -= 30, $slaves[$i].devotion -= 30>> + <</if>> + <<set $cash += _curBabies*(50+_babyCost)>> + <</replace>> + <</link>> + <</if>> + <</if>> + <</capture>> + <</if>> + <</span>> +<<elseif $Cash4Babies == 1 && _curBabies > 0>> + <br><br> + <<set _babyCost = random(-12,12)>> + $possessiveCap <<if _curBabies > 1>>babies<<else>>baby<</if>> sold <<if _curBabies > 1>>a total of <</if>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@ + <<set $cash += _curBabies*(50+_babyCost)>> +<</if>> + +<</widget>> + +/*===============================================================================================*/ + +<<widget "seBirthPostpartum">> +<<set _curBabies = $slaves[$i].curBabies.length>> + +<<if $slaves[$i].broodmother > 0 >> + <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> + <<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/ + <<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/ + <<set $slaves[$i].preg = 0.1>> + <<set $slaves[$i].pregType = 0>> + <<set $slaves[$i].pregSource = 0>> + <</if>> +<<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/ + <<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/ + <<set $slaves[$i].pregSource = $slaves[$i].womb[0].fatherID>> /*in such case it's good chance that there is different father also.*/ +<<else>> + <<set _tmp = lastPregRule($slaves[$i], $defaultRules)>> + <<if ($slaves[$i].assignmentVisible == 0) && (_tmp != null)>> + <<set $slaves[$i].preg = -1>> + <<else>> + <<set $slaves[$i].preg = 0>> + <</if>> + <<set $slaves[$i].pregType = 0>> + <<set $slaves[$i].pregSource = 0>> + <<set $slaves[$i].pregKnown = 0>> + <<set $slaves[$i].pregWeek = -4>> +<</if>> +<<set $csec = 0>> + +<<SetBellySize $slaves[$i]>> + +<</widget>> + +/*===============================================================================================*/ + +<<widget "seBirthCritical">> +<<set _curBabies = $slaves[$i].curBabies.length>> + +<<if $slaves[$i].health <= -100>> + <br><br> + While attempting to recover, $slaves[$i].slaveName @@.red;passes away@@ from complications. $possessiveCap body was fatally damaged during childbirth. + <<if _curBabies > 0>> /* this needs to include ALL children born fom this batch, incubated ones included. */ + But $possessive offspring <<if _curBabies > 1>>are<<else>>if<</if>> healthy, so $possessive legacy will carry on. + <</if>> + <<set $activeSlave = $slaves[$i]>> + <<include "Remove activeSlave">> + <<set $slaveDead = 1>> +<</if>> + +<<if $slaveDead != 1>> + <<set $slaves[$i].labor = 0>> + <<set $slaves[$i].induce = 0>> +<<else>> + <<set $slaveDead = 0>> +<</if>> + +<</widget>> diff --git a/src/pregmod/widgets/slaveSummaryWidgets.tw b/src/pregmod/widgets/slaveSummaryWidgets.tw index 551e8e1868ddd1a3af4a805fa3e42983b2a39aa2..1c31418a24d8ab2f719a36b8d044139a7e5974f4 100644 --- a/src/pregmod/widgets/slaveSummaryWidgets.tw +++ b/src/pregmod/widgets/slaveSummaryWidgets.tw @@ -292,6 +292,8 @@ Release rules: _Slave.releaseRules. ''Di:C+'' <<case "cleansing">> ''Di:H+'' + <<case "fertility">> + ''Di:F+'' <</switch>> <<if _Slave.dietCum == 2>> ''Cum++'' @@ -324,6 +326,8 @@ Release rules: _Slave.releaseRules. Cum production. <<case "cleansing">> Cleansing. + <<case "fertility">> + Fertility. <</switch>> <<if _Slave.dietCum == 2>> Diet Base: @@.cyan;Cum Based.@@ @@ -748,7 +752,7 @@ Release rules: _Slave.releaseRules. <<case "Ghanan">> Gha <<case "Congolese">> - Cog + RC <<case "Ethiopian">> Eth <<case "South African">> @@ -864,7 +868,7 @@ Release rules: _Slave.releaseRules. <<case "Spanish">> Spa <<case "British">> - GB + UK <<case "Australian">> Aus <<case "a New Zealander">> @@ -952,7 +956,7 @@ Release rules: _Slave.releaseRules. <<case "Moldovan">> Mol <<case "Nigerien">> - Ng + Ngr <<case "Bahamian">> Bah <<case "Barbadian">> @@ -1037,6 +1041,76 @@ Release rules: _Slave.releaseRules. SI <<case "Tongan">> Ton +<<case "Catalan">> + Cat +<<case "Equatoguinean">> + EG +<<case "French Polynesian">> + FP +<<case "Kurdish">> + Kur +<<case "Tibetan">> + Tib +<<case "Bissau-Guinean">> + GB +<<case "Chadian">> + Cha +<<case "Comorian">> + Com +<<case "Ivorian">> + IC +<<case "Mauritanian">> + Mta +<<case "Mauritian">> + Mts +<<case "Mosotho">> + Les +<<case "Sierra Leonean">> + Sie +<<case "Swazi">> + Swa +<<case "Angolan">> + Ang" +<<case "Sahrawi">> + Sah +<<case "Burkinabé">> + BF +<<case "Cape Verdean">> + CV +<<case "Motswana">> + Bot +<<case "Somali">> + Som +<<case "Rwandan">> + Rwa +<<case "São Toméan">> + STP +<<case "Beninese">> + Ben +<<case "Central African">> + CAR +<<case "Gambian">> + Gam +<<case "Senegalese">> + Sen +<<case "Togolese">> + Tog +<<case "Eritrean">> + Eri +<<case "Guinean">> + Gui +<<case "Malawian">> + Mwi +<<case "Zairian">> + DRC +<<case "Liberian">> + Lib +<<case "Mozambican">> + Moz +<<case "Namibian">> + Nam +<<case "South Sudanese">> + SS <<case "Ancient Egyptian Revivalist">> Egy Rev <<case "Ancient Chinese Revivalist">> @@ -1244,7 +1318,7 @@ Release rules: _Slave.releaseRules. <</if>> <<if _Slave.eyes == -2>> @@.red;Blind@@ -<<elseif _Slave.eyes == -1 && (_Slave.eyewear != "corrective glasses") && (_Slave.eyewear != "corrective contacts")>> +<<elseif ((_Slave.eyes == -1) && (_Slave.eyewear != "corrective glasses") && (_Slave.eyewear != "corrective contacts"))>> @@.yellow;Sight-@@ <</if>> @@ -1475,7 +1549,7 @@ Release rules: _Slave.releaseRules. _Slave.faceShape face. <<if _Slave.eyes <= -2>> @@.red;Blind.@@ -<<elseif _Slave.eyes <= -1>> +<<elseif ((_Slave.eyes <= -1) && (_Slave.eyewear != "corrective glasses") && (_Slave.eyewear != "corrective contacts"))>> @@.yellow;Nearsighted.@@ <</if>> <<if _Slave.lips > 95>> diff --git a/src/pregmod/widgets/slaveTradePresetWidgets.tw b/src/pregmod/widgets/slaveTradePresetWidgets.tw index d59f4b880c53e4dc05a572f521636ec44d7c9c8f..6dc668037c654affc3d5bbab2fd19efe95518dc4 100644 --- a/src/pregmod/widgets/slaveTradePresetWidgets.tw +++ b/src/pregmod/widgets/slaveTradePresetWidgets.tw @@ -5,12 +5,13 @@ <<widget "NationalityPresetVanillaGlobal">> <<link "Vanilla Global">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Afghan: 2, Albanian: 1, Algerian: 3, American: 5, Andorran: 1, + Angolan: 1, Antiguan: 1, Argentinian: 3, Armenian: 2, @@ -25,23 +26,30 @@ Belarusian: 1, Belgian: 2, Belizean: 1, + Beninese: 1, Bermudian: 1, Bhutanese: 1, + "Bissau-Guinean": 1, Bolivian: 2, Bosnian: 1, Brazilian: 4, British: 3, Bruneian: 1, Bulgarian: 2, - Burmese: 3, - Burmese: 1, + Burkinabé: 1, + Burmese: 2, Burundian: 1, Cambodian: 1, Cameroonian: 1, Canadian: 2, + "Cape Verdean": 1, + Catalan: 1, + "Central African": 1, + Chadian: 1, Chilean: 2, Chinese: 15, Colombian: 3, + Comorian: 1, Congolese: 3, "a Cook Islander": 1, "Costa Rican": 1, @@ -58,6 +66,8 @@ Ecuadorian: 1, Egyptian: 3, Emirati: 2, + Equatoguinean: 1, + Eritrean: 1, Estonian: 2, Ethiopian: 3, Fijian: 1, @@ -65,7 +75,9 @@ Finnish: 2, French: 3, "French Guianan": 1, + "French Polynesian": 1, Gabonese: 1, + Gambian: 1, Georgian: 1, German: 3, Ghanan: 2, @@ -73,6 +85,7 @@ Greenlandic: 1, Grenadian: 1, Guatemalan: 2, + Guinean: 1, Guyanese: 1, Haitian: 2, Honduran: 1, @@ -86,6 +99,7 @@ Irish: 2, Israeli: 2, Italian: 3, + Ivorian: 1, Jamaican: 2, Japanese: 3, Jordanian: 2, @@ -94,21 +108,26 @@ Kittitian: 1, Korean: 1, Kosovan: 1, + Kurdish: 1, Kuwaiti: 1, Kyrgyz: 1, Laotian: 1, Latvian: 1, Lebanese: 2, + Liberian: 1, Libyan: 2, Lithuanian: 2, Luxembourgian: 1, Macedonian: 1, Malagasy: 1, + Malawian: 1, Malaysian: 3, Maldivian: 1, Malian: 2, Maltese: 1, Marshallese: 1, + Mauritanian: 1, + Mauritian: 1, Mexican: 4, Monégasque: 1, Micronesian: 1, @@ -116,6 +135,10 @@ Mongolian: 1, Montenegrin: 1, Moroccan: 2, + Mosotho: 1, + Motswana: 1, + Mozambican: 1, + Namibian: 1, Nauruan: 1, Nepalese: 2, "Ni-Vanuatu": 1, @@ -138,19 +161,26 @@ Qatari: 1, Romanian: 2, Russian: 4, + Rwandan: 1, + Sahrawi: 1, "Saint Lucian": 1, Salvadoran: 2, Sammarinese: 1, Samoan: 1, + "São Toméan": 1, Saudi: 2, Scottish: 1, + Senegalese: 1, Serbian: 2, Seychellois: 1, + "Sierra Leonean": 1, Singaporean: 1, Slovak: 2, Slovene: 1, "a Solomon Islander": 1, + Somali: 1, "South African": 4, + "South Sudanese": 1, Spanish: 3, "Sri Lankan": 1, Sudanese: 3, @@ -180,7 +210,7 @@ Zambian: 1, Zimbabwean: 2, "a New Zealander": 2 - })>> + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -188,7 +218,7 @@ <<widget "NationalityPresetVanillaNA">> <<link "Vanilla North America">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { American: 6, Canadian: 2, Mexican: 3, @@ -207,7 +237,7 @@ Salvadoran: 1, Nicaraguan: 1, Panamanian: 1 - })>> + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -215,7 +245,7 @@ <<widget "NationalityPresetVanillaSA">> <<link "Vanilla South America">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Brazilian: 4, Argentinian: 2, Colombian: 2, @@ -230,7 +260,7 @@ Guyanese: 1, Paraguayan: 1, Surinamese: 1 - })>> + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -238,7 +268,7 @@ <<widget "NationalityPresetVanillaME">> <<link "Vanilla Middle East">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Egyptian: 3, Iranian: 2, Saudi: 2, @@ -259,8 +289,9 @@ Georgian: 1, Kuwaiti: 1, Qatari: 1, - Palestinian: 1 - })>> + Palestinian: 1, + Kurdish: 1 + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -268,7 +299,7 @@ <<widget "NationalityPresetVanillaAfrica">> <<link "Vanilla Africa">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Nigerian: 3, "South African": 3, Kenyan: 2, @@ -291,8 +322,39 @@ Malagasy: 1, Nigerien: 1, Burundian: 1, - Seychellois: 1 - })>> + Seychellois: 1, + Equatoguinean: 1, + "Bissau-Guinean": 1, + Chadian: 1, + Comorian: 1, + Ivorian: 1, + Mauritanian: 1, + Mauritian: 1, + Mosotho: 1, + "Sierra Leonean": 1, + Swazi: 1, + Angolan: 1, + Sahrawi: 1, + Burkinabé: 1, + "Cape Verdean": 1, + Motswana: 1, + Somali: 1, + Rwandan: 1, + "São Toméan": 1, + Beninese")>> + "Central African": 1, + Gambian: 1, + Senegalese: 1, + Togolese: 1, + Eritrean: 1, + Guinean: 1, + Malawian: 1, + Congolese: 1, + Liberian: 1, + Mozambican: 1, + Namibian: 1, + "South Sudanese": 1 + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -300,7 +362,7 @@ <<widget "NationalityPresetVanillaAsia">> <<link "Vanilla Asia">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Chinese: 14, Indian: 10, Bangladeshi: 3, @@ -327,8 +389,9 @@ Kyrgyz: 1, "Sri Lankan": 1, Tajik: 1, - Turkmen: 1 - })>> + Turkmen: 1, + Tibetan: 1 + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -336,7 +399,7 @@ <<widget "NationalityPresetVanillaEU">> <<link "Vanilla Europe">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Russian: 4, German: 3, Belarusian: 1, @@ -381,8 +444,9 @@ "a Liechtensteiner": 1, Vatican: 1, Latvian: 1, - Slovene: 1 - })>> + Slovene: 1, + Catalan: 1 + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -390,7 +454,7 @@ <<widget "NationalityPresetVanillaAU">> <<link "Vanilla Australia">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Australian: 3, "a New Zealander": 1, Marshallese: 1, @@ -406,8 +470,9 @@ Niuean: 1, Samoan: 1, "a Solomon Islander": 1, - Tongan: 1 - })>> + Tongan: 1, + "French Polynesian": 1 + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -416,7 +481,7 @@ /* I need reweighting and possibly country additions */ <<widget "NationalityPresetModEurope">> <<link "Europe">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Albanian: 29, Andorran: 1, Austrian: 87, @@ -441,6 +506,7 @@ Kazakh: 182, Kosovan: 22, Latvian: 19, + "a Liechtensteiner": 1, Lithuanian: 29, Luxembourgian: 6, Macedonian: 21, @@ -463,9 +529,8 @@ Slovene: 20, Turkish: 807, Ukrainian: 442, - "a Liechtensteiner": 1, Vatican: 1 - })>> + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -473,7 +538,7 @@ <<widget "NationalityPresetModEastAsia">> <<link "East Asia">> - <<set $nationalities = weightedArray({Chinese: 21, Japanese: 2, Korean: 1})>> + <<set $nationalities = {Chinese: 21, Japanese: 2, Korean: 1}>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -481,7 +546,7 @@ <<widget "NationalityPresetModUSA">> <<link USA>> - <<set $nationalities = weightedArray({American: 8, Canadian: 1, Mexican: 3})>> + <<set $nationalities = {American: 8, Canadian: 1, Mexican: 3}>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -489,7 +554,7 @@ <<widget "NationalityPresetModJapan">> <<link Japan>> - <<set $nationalities = weightedArray({Japanese: 3})>> + <<set $nationalities = {Japanese: 3}>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -497,7 +562,7 @@ <<widget "NationalityPresetModBrazil">> <<link Brazil>> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Brazilian: 30, Argentinian: 4, Colombian: 3, @@ -509,7 +574,7 @@ Uruguayan: 2, Paraguayan: 1, Ecuadorian: 1 - })>> + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> @@ -518,12 +583,13 @@ /* I need reweighting */ <<widget "NationalityPresetModGlobalRealism">> <<link "Global Realism">> - <<set $nationalities = weightedArray({ + <<set $nationalities = { Afghan: 355, Albanian: 29, Algerian: 413, American: 3245, Andorran: 1, + Angolan: 257, Antiguan: 1, Argentinian: 443, Armenian: 29, @@ -538,23 +604,31 @@ Belarusian: 95, Belgian: 114, Belizean: 4, + Beninese: 108, Bermudian: 1, Bhutanese: 8, + "Bissau-Guinean": 18, Bolivian: 111, Bosnian: 35, Brazilian: 2093, British: 662, Bruneian: 4, Bulgarian: 71, + Burkinabé: 201, Burmese: 534, Burundian: 109, Cambodian: 160, Cameroonian: 241, Canadian: 366, + "Cape Verdean": 5, + Catalan: 75, + "Central African": 45, + Chadian: 136, Chilean: 181, Chinese: 14095, Colombian: 491, - Congolese: 53, + Comorian: 7, + Congolese: 51, "a Cook Islander": 1, "Costa Rican": 49, Croatian: 42, @@ -570,14 +644,18 @@ Ecuadorian: 166, Egyptian: 976, Emirati: 94, + Equatoguinean: 12, + Eritrean: 49, Estonian: 13, Ethiopian: 1050, Fijian: 1, Filipina: 1005, Finnish: 55, French: 650, - "French Guianan": 1, + "French Guianan": 2, + "French Polynesian": 2, Gabonese: 20, + Gambian: 20, Georgian: 39, German: 821, Ghanan: 288, @@ -585,6 +663,7 @@ Greenlandic: 1, Grenadian: 1, Guatemalan: 169, + Guinean: 123, Guyanese: 8, Haitian: 110, Honduran: 93, @@ -598,6 +677,7 @@ Irish: 48, Israeli: 83, Italian: 594, + Ivorian: 237, Jamaican: 29, Japanese: 1275, Jordanian: 97, @@ -606,22 +686,27 @@ Kittitian: 1, Korean: 763, Kosovan: 22, + Kurdish: 57, Kuwaiti: 41, Kyrgyz: 60, Laotian: 69, Latvian: 19, Lebanese: 61, + Liberian: 45, Libyan: 64, "a Liechtensteiner": 1, Lithuanian: 29, Luxembourgian: 6, Macedonian: 21, Malagasy: 255, + Malawian: 180, Malaysian: 316, Maldivian: 4, Malian: 185, Maltese: 4, Marshallese: 1, + Mauritanian: 43, + Mauritian: 12, Mexican: 1292, Micronesian: 1, Moldovan: 41, @@ -629,8 +714,13 @@ Montenegrin: 6, Monégasque: 1, Moroccan: 358, + Mosotho: 22, + Motswana: 22, + Mozambican: 288, + Namibian: 26, Nauruan: 1, Nepalese: 293, + "a New Zealander": 47, "Ni-Vanuatu": 1, Nicaraguan: 62, Nigerian: 1909, @@ -651,22 +741,29 @@ Qatari: 26, Romanian: 197, Russian: 1440, + Rwandan: 112, + Sahrawi: 5, "Saint Lucian": 1, Salvadoran: 64, Sammarinese: 1, Samoan: 2, + "São Toméan": 1, Saudi: 329, Scottish: 54, + Senegalese: 154, Serbian: 88, Seychellois: 1, - Singaporean: 57, + "Sierra Leonean": 70, + Singaporean: 56, Slovak: 54, Slovene: 21, "a Solomon Islander": 6, + Somali: 143, "South African": 567, + "South Sudanese": 122, Spanish: 464, "Sri Lankan": 209, - Sudanese: 405, + Sudanese: 395, Surinamese: 6, Swedish: 99, Swiss: 85, @@ -690,11 +787,11 @@ Vietnamese: 955, Vincentian: 1, Yemeni: 283, + Zairian: 787, Zambian: 171, - Zimbabwean: 165, - "a New Zealander": 47 - })>> + Zimbabwean: 165 + }>> <<set _gotoPassage = passage()>> <<goto _gotoPassage>> <</link>> -<</widget>> \ No newline at end of file +<</widget>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index bc4dc271925a26a4bc3c1fd4f02c9b99da782a7f..7fd3cee4f3d83a6369a031827a15ea5f554a6e9c 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2,6 +2,14 @@ <<set $nextButton = "Continue", $nextLink = "Main", $returnTo = "Main">> +<<if $releaseID == 1021 || $releaseID == 1020 || $releaseID == 1019 || $releaseID == 2022>> + <<set $releaseID = 1022>> +<</if>> + +<<if Array.isArray($nationalities)>> + <<set $nationalities = weightedArray2HashMap($nationalities)>> +<</if>> + <<if def $youngCareers>> <<unset $youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers>> @@ -22,7 +30,7 @@ <<unset $northamericaNationalities, $southamericaNationalities, $europeNationalities, $asiaNationalities, $middleeastNationalities, $africaNationalities, $australiaNationalities>> <<unset $belarusianSlaveNames, $dominicanSlaveNames, $scottishSlaveNames>> <<unset $ArcologyNamesEugenics, $ArcologyNamesRepopulationist, $ArcologyNamesHedonisticDecadence>> - <<unset $drugs, harshCollars, shoes, bellyAccessories, vaginalAccessories, dickAccessories, buttplugs>> + <<unset $drugs, $harshCollars, $shoes, $bellyAccessories, $vaginalAccessories, $dickAccessories, $buttplugs>> <</if>> <<if def $servantMilkerJobs>> @@ -749,8 +757,11 @@ <<set $FacilitySupportSlaves = 0>> <</if>> - <<if ndef $FacilitySupportfficiency>> - <<set $FacilitySupportfficiency = 0>> + <<if ndef $FacilitySupportEfficiency>> + <<set $FacilitySupportEfficiency = 0>> + <</if>> + <<if def $FacilitySupportfficiency>> + <<unset $FacilitySupportfficiency>> <</if>> <<if ndef $FacilitySupportUpgrade>> <<set $FacilitySupportUpgrade = 0>> @@ -795,6 +806,13 @@ <</if>> +<<if ndef $useSlaveSummaryTabs>> + <<set $useSlaveSummaryTabs = 0>> +<</if>> +<<if ndef $useSlaveSummaryOverviewTab>> + <<set $useSlaveSummaryOverviewTab = 0>> +<</if>> + <<if ndef $arcologies[0].FSAztecRevivalist>> <<for _bci = 0; _bci < $arcologies.length; _bci++>> <<set $arcologies[_bci].FSAztecRevivalist = "unset", $arcologies[_bci].FSAztecRevivalistDecoration = 0>> @@ -822,6 +840,12 @@ <</for>> <<set $arcologies[0].FSCummunismResearch = 0>> <</if>> +<<if ndef $arcologies[0].FSIncestFetishist>> + <<for _bci = 0; _bci < $arcologies.length; _bci++>> + <<set $arcologies[_bci].FSIncestFetishist = "unset", $arcologies[_bci].FSIncestFetishistDecoration = 0>> + <</for>> + <<set $arcologies[0].FSIncestFetishistResearch = 0>> +<</if>> <<for _bci = 0; _bci < $arcologies.length; _bci++>> <<if $arcologies[_bci].FSHedonisticDecadence == 0>> <<set $arcologies[_bci].FSHedonisticDecadence = "unset", $arcologies[_bci].FSHedonisticDecadenceDecoration = 0>> @@ -995,6 +1019,7 @@ case "schoolroom": return "learn in the schoolroom"; case "mastersuite": return "serve in the master suite"; case "servantsquarters": return "work as a servant"; + default : return x; } })>> @@ -1011,6 +1036,7 @@ case "schoolroom": return "learn in the schoolroom"; case "mastersuite": return "serve in the master suite"; case "servantsquarters": return "work as a servant"; + default : return x; } })>> @@ -1083,13 +1109,7 @@ <<set $defaultRules[_bci].clitSetting = "no default setting", $defaultRules[_bci].clitSettingXX = 100>> <</switch>> <<if ndef $defaultRules[_bci].surgery>> - <<set $defaultRules[_bci].surgery = {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>> - <</if>> - <<if ndef $defaultRules[_bci].surgery.prostate>> - <<set $defaultRules[_bci].surgery.prostate = "no default setting">> - <</if>> - <<if ndef $defaultRules[_bci].surgery.eyes>> - <<set $defaultRules[_bci].surgery.eyes = "no default setting">> + <<set $defaultRules[_bci].surgery = {}>> /*just empty object enough to avoid problems */ <</if>> <<if $releaseID < 1018>> <<if $defaultRules[_bci].growth == "none">> @@ -1143,6 +1163,18 @@ <<if ndef $arcologies[0].embargoTarget>> <<set $arcologies[0].embargoTarget = -1>> <</if>> +<<if ndef $arcologies[0].hackingEconomic>> + <<set $arcologies[0].hackingEconomic = 1>> +<</if>> +<<if ndef $arcologies[0].hackingEconomicTarget>> + <<set $arcologies[0].hackingEconomicTarget = -1>> +<</if>> +<<if ndef $arcologies[0].hackingReputationTarget>> + <<set $arcologies[0].hackingReputationTarget = -1>> +<</if>> +<<if ndef $arcologies[0].hackingReputation>> + <<set $arcologies[0].hackingReputation = 1>> +<</if>> <<if ndef $arcologies[0].influenceTarget>> <<set $arcologies[0].influenceTarget = -1>> <</if>> @@ -1418,6 +1450,13 @@ <<set $arcologies[0].FSEgyptianRevivalistLaw = 0>> <</if>> +<<if ndef $arcologies[0].FSEgyptianRevivalistIncestPolicy>> + <<set $arcologies[0].FSEgyptianRevivalistIncestPolicy = 0>> +<</if>> +<<if ndef $arcologies[0].FSEgyptianRevivalistInterest>> + <<set $arcologies[0].FSEgyptianRevivalistInterest = 0>> +<</if>> + <<if def $FSEdoRevivalist && $FSEdoRevivalist != "unset">> <<set $arcologies[0].FSEdoRevivalist = $FSEdoRevivalist>> <<unset $FSEdoRevivalist>> @@ -1942,6 +1981,9 @@ Setting missing global variables: <<if ndef $dietCleanse>> <<set $dietCleanse = 0>> <</if>> +<<if ndef $dietFertility>> + <<set $dietFertility = 0>> +<</if>> <<if ndef $cumProDiet>> <<set $cumProDiet = 0>> <</if>> @@ -1951,6 +1993,9 @@ Setting missing global variables: <<if ndef $healthyDrugsUpgrade>> <<set $healthyDrugsUpgrade = 0>> <</if>> +<<if ndef $reproductionFormula>> + <<set $reproductionFormula = 0>> +<</if>> <<if ndef $superFertilityDrugs>> <<set $superFertilityDrugs = 0>> <</if>> @@ -2013,6 +2058,8 @@ Setting missing global variables: <<set $trinkets.push("a framed picture of your late Master")>> <<elseif $PC.career == "gang">> <<set $trinkets.push("your favorite handgun, whose sight has instilled fear in many")>> + <<elseif $PC.career == "BlackHat">> + <<set $trinkets.push("a news clipping of your first successful live hack")>> <</if>> <</if>> @@ -2265,6 +2312,7 @@ Setting missing global variables: <<set $PC.refreshmentType = 1>> <</if>> <</if>> +<<set WombInit($PC)>> Done! @@ -2275,6 +2323,8 @@ Setting missing slave variables: <<PMODinit _Slave>> +<<set WombInit(_Slave)>> + <<if ndef _Slave.publicCount>> <<set _Slave.publicCount = 0>> <</if>> @@ -2949,6 +2999,9 @@ Setting missing slave variables: <<HeroSlavesCleanup>> Done! +<<if ndef $PC.hacking>> + <<set $PC.hacking = 0>> +<</if>> /* Sec Exp */ <<if $secExp == 1>> diff --git a/src/uncategorized/PESS.tw b/src/uncategorized/PESS.tw index dd4fc84297e99432ae883fef9e2c0281d54e339f..64a5168e7aece655a5369e75378c02d109921c43 100644 --- a/src/uncategorized/PESS.tw +++ b/src/uncategorized/PESS.tw @@ -273,7 +273,7 @@ She sees you examining at her, and looks back at you submissively, too tired to <<link "Make her the face of an ad campaign">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You bring her out to a pretty balcony and put her through an extended photoshoot. She has no idea what you're planning, but she's skilled enough not to need to. She dons different outfits, changes makeup, and even shifts personas for the camera, producing hundreds of elegant, sensual and eye-catching images. You dismiss her back to the club when you're done, and she clearly thinks little of it. The next day, however, you walk her out onto the club in the morning. When the two of you, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> and DJ, reach the main club, she stops short when she catches sight of the main billboard screen. There she is, resplendent and opulent, ten meters tall, giving the viewer a sultry look. She only breaks down for a single moment, but it's quite a moment: she cries rather inelegantly, <<if canTalk($activeSlave)>><<say sobb>>ing "I love you <<Master>>" into your ear<</if>> before giving you a @@.hotpink;wet kiss.@@ Then she runs over to stand under the screen, looking back at you to give you a @@.green;picture-perfect@@ imitation of the billboard she's standing under before laughing at herself a little. + You bring her out to a pretty balcony and put her through an extended photoshoot. She has no idea what you're planning, but she's skilled enough not to need to. She dons different outfits, changes makeup, and even shifts personas for the camera, producing hundreds of elegant, sensual and eye-catching images. You dismiss her back to the club when you're done, and she clearly thinks little of it. The next day, however, you walk her out onto the club in the morning. When the two of you, <<WrittenMaster>> and DJ, reach the main club, she stops short when she catches sight of the main billboard screen. There she is, resplendent and opulent, ten meters tall, giving the viewer a sultry look. She only breaks down for a single moment, but it's quite a moment: she cries rather inelegantly, <<if canTalk($activeSlave)>><<say sobb>>ing "I love you <<Master>>" into your ear<</if>> before giving you a @@.hotpink;wet kiss.@@ Then she runs over to stand under the screen, looking back at you to give you a @@.green;picture-perfect@@ imitation of the billboard she's standing under before laughing at herself a little. <<set $cash -= 1000>> <<set $rep += 500>> <<set $activeSlave.devotion += 4>> @@ -282,7 +282,7 @@ She sees you examining at her, and looks back at you submissively, too tired to <br><<link "Keep her to yourself for a week">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - Exclusivity and slavery interact in ways more than merely complex. $activeSlave.slaveName's most passionate devotees are devastated to find her nowhere but by your side for the whole week. Their reaction is mixed: awe, envy, resentment; but mostly @@.green;renewed respect@@ that she is your creature, and yours alone. A lesser slave might show off the particularity you show her, bringing shame on you by giving the impression that you care for her as more than a slave. She is no lesser slave, though, and thoroughly understands the fine line the two of you must walk as <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> and slave. She makes @@.hotpink;painstakingly@@ clear, through every public glance and gesture, that she is yours as a matter of @@mediumaquamarine;trust@@ rather than as a matter of love. + Exclusivity and slavery interact in ways more than merely complex. $activeSlave.slaveName's most passionate devotees are devastated to find her nowhere but by your side for the whole week. Their reaction is mixed: awe, envy, resentment; but mostly @@.green;renewed respect@@ that she is your creature, and yours alone. A lesser slave might show off the particularity you show her, bringing shame on you by giving the impression that you care for her as more than a slave. She is no lesser slave, though, and thoroughly understands the fine line the two of you must walk as <<WrittenMaster>> and slave. She makes @@.hotpink;painstakingly@@ clear, through every public glance and gesture, that she is yours as a matter of @@.mediumaquamarine;trust@@ rather than as a matter of love. <<set $activeSlave.devotion += 4>> <<set $activeSlave.trust += 4>> <<set $rep += 100>> @@ -305,7 +305,7 @@ She sees you examining at her, and looks back at you submissively, too tired to <<link "Use her ass as she looks after herself">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - Wordlessly, you<<if ($PC.dick == 0)>> don a strap-on and<</if>> come up behind her; the first thing to touch her is <<if ($PC.dick == 0)>>the phallus<<else>>your rapidly hardening dick<</if>>, which pokes against <<if $activeSlave.height >= 170>>right up against her asshole, since she's nice and tall enough for standing anal. She gasps a little and angles her hips to accept your cock.<<else>>her lower back, since she's shorter than you. She gasps a little and hikes herself up on tiptoe to accept your cock.<</if>> As she feels you slide into her body she whimpers with devotion, turning her upper body so she can kiss her <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>> while he sodomizes her. <<if !canTalk($activeSlave)>>She uses gestures to thank you for making her feel like the milkers do.<<else>>"<<S>>o thi<<s>> i<<s>> how it feel<<s>> when I do them," she whispers.<</if>> She uses the lotion to masturbate while she takes it, wincing whenever she loses control and squeezes her sore cock too hard. When you're done she sinks to the bathroom floor in a boneless pool of @@.hotpink;satisfied sexual exhaustion,@@ dripping ejaculate from her front<<if ($PC.dick == 0)>><<else>> and back<</if>>. + Wordlessly, you<<if ($PC.dick == 0)>> don a strap-on and<</if>> come up behind her; the first thing to touch her is <<if ($PC.dick == 0)>>the phallus<<else>>your rapidly hardening dick<</if>>, which pokes against <<if $activeSlave.height >= 170>>right up against her asshole, since she's nice and tall enough for standing anal. She gasps a little and angles her hips to accept your cock.<<else>>her lower back, since she's shorter than you. She gasps a little and hikes herself up on tiptoe to accept your cock.<</if>> As she feels you slide into her body she whimpers with devotion, turning her upper body so she can kiss her <<WrittenMaster>> while he sodomizes her. <<if !canTalk($activeSlave)>>She uses gestures to thank you for making her feel like the milkers do.<<else>>"<<S>>o thi<<s>> i<<s>> how it feel<<s>> when I do them," she whispers.<</if>> She uses the lotion to masturbate while she takes it, wincing whenever she loses control and squeezes her sore cock too hard. When you're done she sinks to the bathroom floor in a boneless pool of @@.hotpink;satisfied sexual exhaustion,@@ dripping ejaculate from her front<<if ($PC.dick == 0)>><<else>> and back<</if>>. <<set $activeSlave.devotion += 4>> <<set $activeSlave.analCount += 1>> <<set $analTotal += 1>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 9b042da9a019cabf414541992682e9225c658f09..dbbdf11afb358d4e00f15449eb48b01340e6cc52 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -163,7 +163,7 @@ Your slaves are required to take very good care of themselves, and your best gir <<if $activeSlave.belly >= 600000>> her _belly belly coming to rest on the floor as she spreads her legs around it, <<elseif $activeSlave.belly >= 400000>> - her _belly belly forcing her to really sread her legs, + her _belly belly forcing her to really spread her legs, <<elseif $activeSlave.belly >= 100000>> her _belly belly forcing her legs wide as she goes, <<elseif $activeSlave.belly >= 10000>> @@ -185,19 +185,46 @@ She shifts her <</if>> hips innocently and moves up to her lower legs. But then, as she slowly massages the lotion into her <<if $activeSlave.muscles > 30>>muscled<<elseif $activeSlave.weight > 10>>plush<<else>>cute<</if>> calves, she arches her back and cocks her hips a little. This causes <<if ["chastity", "combined chastity"].includes($activeSlave.dickAccessory)>> - the bottom of her chastity cage to become visible, a reminder that she's a butthole slave. + the bottom of her chastity cage to become visible, a reminder that + <<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>> + only her holes are to be used. + <<elseif canDoAnal($activeSlave) && !canDoVaginal($activeSlave)>> + she's a butthole slave. + <<elseif canDoVaginal($activeSlave)>> + the focus is her pussy, not dick. + <<else>> + with her ass in chastity, she's forbidden from release. + <</if>> <<elseif $activeSlave.belly >= 100000>> - the underside of her <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>belly<</if>> and her flushed pussy to become visible, glistening with moisture. + the underside of her <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>belly<</if>> and + <<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>> + her flushed, glistening pussy and <<if $activeSlave.anus == 0>>virgin<<else>>hungry<</if>> anus to become visible. + <<elseif canDoVaginal($activeSlave)>> + her flushed pussy to become visible, glistening with moisture. + <<else>> + her <<if $activeSlave.anus == 0>>virgin<<else>>hungry<</if>> anus to become visible. + <</if>> <<elseif $activeSlave.belly >= 5000>> - the underside of her <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>belly<</if>> and her flushed pussy to appear for a moment, glistening with moisture, before she hugs her thighs together, sighing as she flexes them a little to put gentle pressure on her womanhood. + the underside of her <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>belly<</if>> and + <<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>> + her flushed, glistening pussy and <<if $activeSlave.anus == 0>>virgin<<else>>hungry<</if>> anus to become visible, before she hugs her thighs together, sighing as she flexes them a little to put gentle pressure on her womanhood. + <<elseif canDoVaginal($activeSlave)>> + her flushed pussy to appear for a moment, glistening with moisture, before she hugs her thighs together, sighing as she flexes them a little to put gentle pressure on her womanhood. + <<else>> + her <<if $activeSlave.anus == 0>>virgin<<else>>hungry<</if>> anus to become visible. + <</if>> +<<elseif !canAchieveErection($activeSlave) && $activeSlave.dick > 10>> + her giant, soft dick to swing back between her legs; she hugs her thighs together again and traps it back behind her, enjoying the sensation along its length. <<elseif !canAchieveErection($activeSlave) && $activeSlave.dick > 0>> her thighs to come tightly together, hiding her soft dick. <<elseif $activeSlave.dick > 0>> her stiff dick to swing back between her legs; she hugs her thighs together again and traps it back behind her, showing off how hard she is. -<<elseif $activeSlave.vagina == -1>> - it to become apparent that her hungry asspussy serves as her only genitalia. -<<else>> +<<elseif canDoAnal($activeSlave) && canDoVaginal($activeSlave)>> + her flushed, glistening pussy and <<if $activeSlave.anus == 0>>virgin<<else>>hungry<</if>> anus to become visible, before she hugs her thighs together, sighing as she flexes them a little to put gentle pressure on her womanhood. +<<elseif canDoVaginal($activeSlave)>> her flushed pussy to appear for a moment, glistening with moisture, before she hugs her thighs together, sighing as she flexes them a little to put gentle pressure on her womanhood. +<<else>> + it to become apparent that her hungry asspussy serves as her only genitalia. <</if>> With her back arched and her thighs together her <<if $activeSlave.butt > 5>>massive buttocks part a little, showing a hint of<<elseif $activeSlave.butt > 2>>big buttocks part, revealing<<else>>cute buttocks are spread wide apart, displaying<</if>> her <<if $activeSlave.anus > 2>>lewd anal slit<<elseif $activeSlave.anus == 2>>big butthole<<else>>tight anus<</if>>. <<if canSee($activeSlave)>><<if $activeSlave.belly >= 50000>>Her _belly stomach is far too large to see around, but given her held pose, she's waiting to see what you do<<elseif $activeSlave.belly >= 5000>>She peeks around the edge of her belly, checking your crotch to see if you are watching<<else>>She peeks between her legs again, checking to see if you're watching<</if>><<else>>Her ears perk up, listening to see if you are still there<</if>>. @@ -840,9 +867,9 @@ Late at night, <<EventNameLink $activeSlave>> returns to the living area of the <<EventNameLink $activeSlave>> has a little free time this evening, so she finds a quiet corner and engages in her anal proclivities. Since her asshole is so stretched out, she sticks the base of a huge dildo to the ground and <<if $activeSlave.belly >= 100000>> - stuggles to lower her heavy, very gravid body down onto it, + struggles to lower her heavy, very gravid body down onto it, <<elseif $activeSlave.belly >= 10000>> - catiously lowers her <<if $activeSlave.bellyFluid >= 10000>><<print $activeSlave.inflationType>>-stuffed<<else>>very gravid<</if>> body on it, + cautiously lowers her <<if $activeSlave.bellyFluid >= 10000>><<print $activeSlave.inflationType>>-stuffed<<else>>very gravid<</if>> body on it, <<elseif $activeSlave.belly >= 5000>> delicately lowers her <<if $activeSlave.bellyFluid >= 5000>>bloated<<else>>gravid<</if>> body on it, <<else>> @@ -1268,6 +1295,16 @@ There is a horrible crash from the shower. You rush in to see <<EventNameLink $a <</if>> "Help me, <<Master>>!" +<<case "devoted virgin">> + +<<EventNameLink $activeSlave>> comes into your office and politely waits until you indicate she can have your attention. +<<if !canTalk($activeSlave)>> + She points to her pussy and comically pantomimes having sex, and then uses gestures to ask if she can serve you with her pussy. +<<else>> + She <<say>>s, "<<Master>>, I want to know what it'<<s>> like to have a cock in my virgin pu<<ss>>y. <<S>>eeing <<s>>o many of the other <<s>>lave<<s>> getting fucked looks like so much fun. I'm <<s>>o turned on by it. I can't be a proper <<s>>e<<x>> <<s>>lave without u<<s>>ing my pu<<ss>>y. Plea<<s>>e take my virginity, <<Master>>." +<</if>> +She spreads her legs and her hips <<if $activeSlave.belly >= 10000>>carefully<<else>>suggestively<</if>> at you. + <<case "devoted anal virgin">> <<EventNameLink $activeSlave>> comes into your office and politely waits until you indicate she can have your attention. @@ -1801,7 +1838,7 @@ At your <<if canSee($activeSlave)>>nod<<else>>acknowledgement<</if>>, she <<if canAchieveErection($activeSlave)>> "<<Master>>, may I have a <<sh>>aft pier<<c>>ing? If I get to <<s>>tick it in another girl, I'd love to <<if canSee($activeSlave)>><<s>>ee her fa<<c>>e<<else>>feel her <<sh>>udder<</if>> when that extra little bit of metal <<s>>lide<<s>> in<<s>>ide her. Plea<<s>>e?" <<elseif $activeSlave.dick > 0>> - "<<Master>>, may I have a toungue pier<<c>>ing? If I get to eat another girl out, I'd love to li<<s>>ten to her <<s>>queal when that little bit of metal <<s>>crape<<s>> again<<s>>t her. Plea<<s>>e?". Plea<<s>>e?" + "<<Master>>, may I have a tongue pier<<c>>ing? If I get to eat another girl out, I'd love to li<<s>>ten to her <<s>>queal when that little bit of metal <<s>>crape<<s>> again<<s>>t her. Plea<<s>>e?". Plea<<s>>e?" <<else>> "<<Master>>, may I have a labia pier<<c>>ing? If I get to trib another girl, I'd love to <<if canSee($activeSlave)>><<s>>ee her fa<<c>>e<<else>>feel her <<sh>>udder<</if>> when that little bit of metal grind<<s>> again<<s>>t her. Plea<<s>>e?" <</if>> @@ -1903,7 +1940,7 @@ You complete the final rep of your first workout of the day, rack the bar, and j <<elseif $PC.boobsBonus == 2>> sports bra clad boobs with almost painful intensity. You can't really blame her; the bra's two sizes too small, allowing your huge <<if $PC.boobsImplant == 1>>fake <</if>>breasts to lewdly bulge out of them, soaked in your sweat<<if $PC.preg > 30 || $PC.births > 0>>and breast milk<</if>>, and your nipples are clearly visible as bumps in the strained material. <<elseif $PC.boobsBonus == 1>> - sports bra clad boobs with almost painful intensity. You can't really blame her; the bra's one size too small, allowing your big <<if $PC.boobsImplant == 1>>fake <</if>>breasts to bulge out of them, soaked in your sweat<<if $PC.preg > 30 || $PC.births > 0>>and breast milk<</if>>, and your nipples are clearly visible as bumps in the tuat material. + sports bra clad boobs with almost painful intensity. You can't really blame her; the bra's one size too small, allowing your big <<if $PC.boobsImplant == 1>>fake <</if>>breasts to bulge out of them, soaked in your sweat<<if $PC.preg > 30 || $PC.births > 0>>and breast milk<</if>>, and your nipples are clearly visible as bumps in the taut material. <<elseif $PC.boobs == 1>> sports bra clad boobs with almost painful intensity. You can't really blame her; the bra's soaked in your sweat<<if $PC.preg > 30 || $PC.births > 0>>and breast milk<</if>> and your nipples are clearly visible as bumps in the tight material. <<elseif $PC.belly >= 1500>> @@ -1989,7 +2026,7 @@ She swallows uncomfortably, frozen in place and staring at the floor. Her eyes f <<case "penitent">> -As <<EventNameLink $activeSlave>> comes before you for routine inspection, it is obvious that her penitent's habit is having an effect. She moves with exquisite care, desperate to minimize the chafing<<if $activeSlave.pregKnown == 1 && $activeSlave.belly >= 1500>>, especially on her growing pregnancy<</if>>. She seems totally concentrated on obedience: the constant discomfort often has the effect of forcing a slave to marshal all her mental faculties in the service of pain avoidance. +As <<EventNameLink $activeSlave>> comes before you for routine inspection, it is obvious that her penitent habit is having an effect. She moves with exquisite care, desperate to minimize the chafing<<if $activeSlave.pregKnown == 1 && $activeSlave.belly >= 1500>>, especially on her growing pregnancy<</if>>. She seems totally concentrated on obedience: the constant discomfort often has the effect of forcing a slave to marshal all her mental faculties in the service of pain avoidance. <br><br> Her responses to your routine questions are so mechanical and honest that you make an impromptu confession of it. You require her to tell the full tale of all her minor infractions against the rules, and even order her to confess her resistant thoughts to you as well. Past the ability to resist, she pours out a stream of her inner fears, hopes, and feelings about her life as a sex slave. @@ -2230,7 +2267,7 @@ You decide to stop by to see her method at work. By the time you arrive, she's a <<case "succubus">> is groping herself to the sight. <<case "imp">> - is hovering while visciously fingering her cunt. + is hovering while viciously fingering her cunt. <<case "witch">> is pretending to read from her spellbook, but is obviously watching over the top of it. <<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">> @@ -3458,7 +3495,7 @@ As another long week draws to a close, <<EventNameLink $activeSlave>> happens to <<if $activeSlave.mother == -1>> have been a wa<<s>>te of time for you. I'm <<s>>orry you had to carry me in<<s>>ide you for nine month<<s>>, and I'm <<s>>orry I <<s>>tretched you out when I wa<<s>> born, <<else>> - be a di<<ss>>apointment to you, + be a di<<s>>appointment to you, <</if>> <<Master>>. I<<s>> it a little weird to feel thi<<s>> way?" <</if>> @@ -3544,7 +3581,7 @@ says a third, obviously smitten. "I'd give anything to have a night with her." <<case "lazy evening">> -Although your life as an arcology owner comes with many associated privileges, extended idleness to bask in your luxury is not often among them. Thankfully, $assistantName knows better than to let you run yourself ragged from the weight of your assorted responsibilities and often alots time in the evenings of your active schedule to simply relax. +Although your life as an arcology owner comes with many associated privileges, extended idleness to bask in your luxury is not often among them. Thankfully, $assistantName knows better than to let you run yourself ragged from the weight of your assorted responsibilities and often allots time in the evenings of your active schedule to simply relax. <br><br> Of course, no self respecting arcology owner could be expected to enjoy a lazy night of idle relaxation on their own. As you resolve the last of your most pressing responsibilities for the evening, $assistantName directs one of your attentive slaves to gently guide you away from the unending burdens of running your arcology. Leaning against the doorway and wearing a facsimile of what an old world woman might wear on a casual night in, <<EventNameLink $activeSlave>> <<if canTalk($activeSlave) == false>> @@ -3905,7 +3942,8 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <</if>> She enjoys herself immensely, but she loses it again when she feels your seed in her, realizing that she will find herself swelling with your child over the coming months. She has become @@.hotpink;more submissive@@ to your will now that her very first egg has been fertilized by her <<Master>>. <<set $activeSlave.devotion += 5, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1, $activeSlave.pregSource = -1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>> <<VaginalVCheck>> <</replace>> <</link>><<if ($activeSlave.vagina == 0)>> //This option will take virginity//<</if>> @@ -4022,7 +4060,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <<else>> flat <</if>> - butt sinking your cock deep into her <<if $activeSlave.anus == 0>>virgin<</if>> asspusy. You lean forward, running your hands across her nipples<<if $activeSlave.belly >= 5000>> and _belly <<if $activeSlave.belly >= 3000>>pregnant <</if>>belly<</if>> as you move to tease her stiff prick. Between your dick in her ass and your hand on her cock, she rapidly approaches her peak. Quickly, you bind the base of her penis, denying her release and eliciting a long moan from the pent-up girl. You begin thrusting hard, telling her that YOU are the one who'll be orgasming here, not her. Only once you have taught her her place by filling her asspussy with your cum do you allow her release. Just undoing the binding is enough to set her over the edge, coating the cushions<<if $activeSlave.belly >= 5000>> and the bottom of her _belly <<if $activeSlave.belly >= 3000>>pregnant <</if>>belly<</if>> in her virile sperm. You dismount and order the exhausted girl to clean herself and the couch up before going back to her assignment; she @@.hotpink;complies meekly@@, understanding that having a potent penis is meaningless in her position.<<if $activeSlave.fetish == "none">>The next time she walks past your office, you can't help notice the growing erection she carries. @@.coral;Your dominating display has left her craving domination.@@<<set $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 10>><</if>> + butt sinking your cock deep into her <<if $activeSlave.anus == 0>>virgin<</if>> asspussy. You lean forward, running your hands across her nipples<<if $activeSlave.belly >= 5000>> and _belly <<if $activeSlave.belly >= 3000>>pregnant <</if>>belly<</if>> as you move to tease her stiff prick. Between your dick in her ass and your hand on her cock, she rapidly approaches her peak. Quickly, you bind the base of her penis, denying her release and eliciting a long moan from the pent-up girl. You begin thrusting hard, telling her that YOU are the one who'll be orgasming here, not her. Only once you have taught her her place by filling her asspussy with your cum do you allow her release. Just undoing the binding is enough to set her over the edge, coating the cushions<<if $activeSlave.belly >= 5000>> and the bottom of her _belly <<if $activeSlave.belly >= 3000>>pregnant <</if>>belly<</if>> in her virile sperm. You dismount and order the exhausted girl to clean herself and the couch up before going back to her assignment; she @@.hotpink;complies meekly@@, understanding that having a potent penis is meaningless in her position.<<if $activeSlave.fetish == "none">>The next time she walks past your office, you can't help notice the growing erection she carries. @@.coral;Your dominating display has left her craving domination.@@<<set $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 10>><</if>> <<set $activeSlave.devotion += 5>> <</replace>> <</if>> @@ -4112,7 +4150,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <br><<link "Embrace her">> <<EventNameDelink $activeSlave>> <<replace "#result">> - You gently grab her face and stare deeply into her $activeSlave.eyeColor eyes. <<if canSee($activeSlave)>>Thay are full of life as opposed to their usual dullness<<else>>They are as dull as always, but that isn't her fault. Her facial expressions at the act tell you all you need to know<</if>>. You pull your wife into a tight embrace, her coming back to you is more than enough a gift, she needn't do anything more for now. You pull the covers over the both of you and begin to doze off, smiling at the warth cuddling ever closer to you. + You gently grab her face and stare deeply into her $activeSlave.eyeColor eyes. <<if canSee($activeSlave)>>They are full of life as opposed to their usual dullness<<else>>They are as dull as always, but that isn't her fault. Her facial expressions at the act tell you all you need to know<</if>>. You pull your wife into a tight embrace, her coming back to you is more than enough a gift, she needn't do anything more for now. You pull the covers over the both of you and begin to doze off, smiling at the warmth cuddling ever closer to you. She is @@.green;no longer mindbroken@@ and thanks to your care deeply and sincerely @@.hotpink;loves@@ and @@.mediumaquamarine;trusts@@ you. <<set $activeSlave.devotion = 100, $activeSlave.oldDevotion = 100, $activeSlave.trust = 100, $activeSlave.oldTrust = 100, $activeSlave.sexualQuirk = "romantic", $activeSlave.fetish = "none", $activeSlave.fetishKnown = 1>> <<if ($arcologies[0].FSPaternalist != "unset")>> @@ -4159,7 +4197,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <<else>> slam her head into your crotch. <<if $PC.dick == 1>> - You viciously face-fuck her, cuming strongly down her gagging throat while making sure to save one last spurt to paint her face with. + You viciously face-fuck her, cumming strongly down her gagging throat while making sure to save one last spurt to paint her face with. <<else>> As she recoils, you grab a strap-on and force it into her mouth before fastening it to yourself. Once you are situated, you viciously face-fuck her until you are satisfied. As she struggles to catch her breath, you toggle the release and reveal that it is a squirt dildo, painting her face with fake semen. <</if>> @@ -4338,7 +4376,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <br><<link "Try to talk it out">> <<EventNameDelink $activeSlave>> <<replace "#result">> - You start trying to her down, hoping to persuade them that you migt reconsider your punishment if they stopped this foolishness; she doesn't seem too keen on listening to you, instead pushing you against a wall and tearing your clothes off. Ignoring your words, she forces her + You start trying to talk her down, hoping to persuade them that you might reconsider your punishment if they stopped this foolishness; she doesn't seem too keen on listening to you, instead pushing you against a wall and tearing your clothes off. Ignoring your words, she forces her <<if $activeSlave.dick == 1>> pathetic <<elseif $activeSlave.dick == 2>> @@ -5541,9 +5579,9 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <<if $activeSlave.belly >= 750000>> she's nothing more than a giant egg just waiting for her children to hatch; how she's so close to bursting with life that just a few more babies should do it. <<elseif $activeSlave.belly >= 600000>> - if she grows any larger with child, she'll practacally be nothing more than an overswollen womb. + if she grows any larger with child, she'll practically be nothing more than an overswollen womb. <<elseif $activeSlave.belly >= 450000>> - it must feel to be so obscenely pregnant that anyone and everyone can see the life distening her struggling body. + it must feel to be so obscenely pregnant that anyone and everyone can see the life distending her struggling body. <<elseif $activeSlave.belly >= 300000>> full she would feel if she got anymore pregnant and how it would be to do even the most simple of tasks. <<elseif $activeSlave.belly >= 150000>> @@ -5806,7 +5844,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <</if>> She automatically begins to rub herself up and down to stimulate you; once she feels you reach <<if $PC.dick == 0>>full arousal<<else>>rock hardness<<if $PC.vagina == 1>> and total wetness<</if>><</if>> she <<if $activeSlave.height >= 170>> - leans into the rail, bending over it just slightly to offer her asshole at just the right height + leans into the rail, bending over it just slightly to offer her asshole at just the right height. <<else>> hikes herself up on the rail, up on tiptoe, to bring her asshole to the most comfortable height. <</if>> @@ -6348,9 +6386,9 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <<if $PC.newVag == 1>> You shudder with overwhelming pleasure as her huge dick fills you completely. <<elseif $PC.career == "escort">> - You moan with pleasure as her huge dick completely fills your stretched pussy. You gently carress her dick through the bulge in your middle. + You moan with pleasure as her huge dick completely fills your stretched pussy. You gently caress her dick through the bulge in your middle. <<elseif $PC.births >= 10>> - You moan with pleasure as her huge dick completely fills your stretched pussy. You gently carress her dick through the bulge in your middle. + You moan with pleasure as her huge dick completely fills your stretched pussy. You gently caress her dick through the bulge in your middle. <<if isPlayerFertile($PC) && $activeSlave.ballType == "human" && $activeSlave.vasectomy == 0>> A small tickling in your belly reminds you you're fertile.<</if>> <<elseif $PC.career == "servant">> You moan with pleasure as her huge dick stretches your used pussy. She's far bigger than your Master ever was. @@ -6373,7 +6411,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?" <<elseif $activeSlave.dick == 9>> absurd dick <</if>> - She gently fucks you<<if $activeSlave.balls > 8>>, her oversized balls slaping your thighs with every thrust<</if>>, making sure you're enjoying her penis as much as physically possible. You climax as she cums inside eliciting a gasp from the horny girl<<if $PC.dick == 1>>, as you spurt across the floor<</if>>. She apologizes profusly for cuming in you, but after she helps clean you up and back to your desk, all is forgiven. As you work, you can't help but steal glances at her renewed erection. She winks + She gently fucks you<<if $activeSlave.balls > 8>>, her oversized balls slapping your thighs with every thrust<</if>>, making sure you're enjoying her penis as much as physically possible. You climax as she cums inside eliciting a gasp from the horny girl<<if $PC.dick == 1>>, as you spurt across the floor<</if>>. She apologizes profusely for cumming in you, but after she helps clean you up and back to your desk, all is forgiven. As you work, you can't help but steal glances at her renewed erection. She winks <<if !canTalk($activeSlave)>> and @@.mediumaquamarine;earnestly asks@@ for more when you get the chance. <<else>> @@ -6953,7 +6991,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<EventNameDelink $activeSlave>> <<replace "#result">> You instruct her to get cleaned up and get dressed in her nicest clothing. She obeys, mystified, and is further puzzled to find that you're taking her out for a nice evening at a small bar. You share a tasty meal and listen to good music played on the little stage by an older slave. As the set concludes, you lean over and give $activeSlave.slaveName her real orders for the evening. She freezes in terror but eventually makes her way up to the stage, strips in front of all the patrons, and says - <<if canTalk($activeSlave)>> + <<if !canTalk($activeSlave)>> in embarrassed gestures, "please use me, I'm cheap." <<else>> "One credit per fuck, if you'll do my worthle<<ss>> body on <<s>>tage." @@ -7325,7 +7363,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> <<if $PC.preg > 30 && $PC.pregMood == 1 && $PC.boobs == 1 && $PC.boobsImplant == 0 && $PC.boobsBonus >= 0>> <br><<link "She just needs a mother's touch">> - You reassure the frightened $desc and beckon her to return to the hole before settling your gravid body before the door and pushing a fat, milk-ladden breast through the gap. You coax the nervous girl to drink her fill; she must be starving in there, after all. After some hesitation, you finally feel a pair of lips wrap themselves around your erect nipple and begin to drink deep. You talk to the suckling slave, explaining to her just what she needs to do to thrive in her new life, shushing her whenever she tries to object and asking her to just listen. Before long, your teat is drained of all its mother's milk, and as you move to shift to the other closer to the door, the desperate slave begs you not to go. You slip a hand through the slat, caressing her face as you let her know you're just turning around. As she suckles your remaining milk, you feel her @@.mediumaquamarine;relax and lower her guard.@@ She needed to connect to someone and she didn't expect it to be you, especially like not this. @@.hotpink;Her willingness to listen to your has increased.@@ + You reassure the frightened $desc and beckon her to return to the hole before settling your gravid body before the door and pushing a fat, milk-laden breast through the gap. You coax the nervous girl to drink her fill; she must be starving in there, after all. After some hesitation, you finally feel a pair of lips wrap themselves around your erect nipple and begin to drink deep. You talk to the suckling slave, explaining to her just what she needs to do to thrive in her new life, shushing her whenever she tries to object and asking her to just listen. Before long, your teat is drained of all its mother's milk, and as you move to shift to the other closer to the door, the desperate slave begs you not to go. You slip a hand through the slat, caressing her face as you let her know you're just turning around. As she suckles your remaining milk, you feel her @@.mediumaquamarine;relax and lower her guard.@@ She needed to connect to someone and she didn't expect it to be you, especially like not this. @@.hotpink;Her willingness to listen to your has increased.@@ <<set $activeSlave.devotion += 15, $activeSlave.trust += 5>> <</link>> <</if>> @@ -8351,7 +8389,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<if canDoAnal($activeSlave)>> After a good long throatfuck that leaves her gasping and moaning, you flip her over and fuck her ass until she's squealing with each thrust. <<else>> - Only after an extended and forcefull series of throatfuckings that leaves the bewildered $desc gasping for air and barely conscious, do you feel she has learned what hole she should be focused on. For good measure, you deepthroat her one last time, to really drive the point home. + Only after an extended and forceful series of throatfuckings that leaves the bewildered $desc gasping for air and barely conscious, do you feel she has learned what hole she should be focused on. For good measure, you deepthroat her one last time, to really drive the point home. <</if>> As she leaves, sore all over, she's @@.mediumorchid;badly confused@@ that she was apparently punished for asking questions. <<set $activeSlave.devotion -= 5>> @@ -8871,6 +8909,50 @@ You tell her kindly that you understand, and that she'll be trained to address t <</replace>> <</link>> +<<case "devoted virgin">> + +<<link "No, reassure her that she doesn't need to be a slut">> + <<EventNameDelink $activeSlave>> + <<replace "#result">> + You kindly explain that you've decided to save her virginity - for now. She looks slightly down-hearted and tries to smile nonetheless, but finds herself swept off her <<if $activeSlave.amp == 1>>stumps<<else>>feet<</if>> and<<if $activeSlave.bellyPreg >= 5000>> gently<</if>> deposited on the couch. She gasps with surprise when she finds herself being teased, fondled, and massaged rather than outright used. In no time at all she's pressing her whole<<if $activeSlave.belly >= 5000>> <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>rounded<</if>><</if>> body against you and shivering with delight. She shudders, almost uncontrollably, when you grind your <<if $PC.dick == 0>>clitoris<<else>>dick<</if>> against her moistened, wet pussy between her thighs, taking extra care not to penetrate the willing slave. She leaves your office feeling @@.hotpink;very close to her <<WrittenMaster>> indeed,@@ and seems to have forgotten her unfucked vagina, for now. + <<set $activeSlave.devotion += 4>> + <</replace>> +<</link>> +<br><<link "Make sure her first time is enjoyable">> + <<EventNameDelink $activeSlave>> + <<replace "#result">> + You bring her over to the couch<<if !canDoVaginal($activeSlave)>>, unfasten her chastity<</if>>, set her on your lap, and teasingly play with her<<if $activeSlave.belly >= 5000>> <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>rounded<</if>><</if>> body for a long time. Every so often you mover your hands over her pussylips, making her shiver and press herself against you, but you only make it the center of attention once the poor over-aroused slave + <<if !canTalk($activeSlave)>> + begins to reach for your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> to pull it towards herself. + <<else>> + begs, "I can't take it any more, <<Master>>! Fuck me, plea<<s>>e. Plea<<s>>e!" + <</if>> + Finally, you lubricate your hand. Then you slowly and gently push a finger into her invitingly tight virgin pussy. She's already on the edge of orgasm, and you patiently inch your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> into her pussy without making her climax. You then start pumping and she starts to moan and breathing more and more heavily. You continue pumping until she finally starts to orgasm, <<if $PC.dick == 0>>her climactic shudders<<else>>the walls of her tightening vagina<</if>> send you over as well. She's left in a haze of @@.hotpink;sexual satisfaction@@ that radiates outward from her @@.lime;newly initiated pussy,@@ and she @@.mediumaquamarine;trusts you@@ a lot more, now. + <<if ($activeSlave.fetishKnown != 1) || ($activeSlave.fetish != "pregnancy")>> + She's back again before the week is over, eager for @@.lightcoral;another dick in her fuckhole.@@ + <<set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65, $activeSlave.fetish = "pregnancy">> + <</if>> + <<set $activeSlave.devotion += 3, $activeSlave.trust += 3, $activeSlave.vagina = 1, $activeSlave.vaginalCount++, $vaginalTotal++>> + <<if $PC.dick == 1 && $activeSlave.eggType == "human" && isFertile($activeSlave) && $activeSlave.preg == 0>> + <<KnockMeUp $activeSlave 15 0 -1>> + <</if>> + <</replace>> +<</link>> +<br><<link "Make sure her first fuck puts her in her place">> + <<EventNameDelink $activeSlave>> + <<replace "#result">> + You throw her onto the couch beside your desk, she fails to stop her from losing balance with her flailing <<if $activeSlave.amp == 1>>stumps<<else>>limbs<</if>>. She looks around doubtfully; she's already started to wonder whether this was a mistake. In a few moments she knows it for sure as she feels<<if !canDoVaginal($activeSlave)>> her vaginal chastity ripped off and<</if>> the burning sensation of a lubricated <<if $PC.dick == 0>>strap-on<<else>>dickhead<</if>> forcing her virgin pussy wide. You have her face shoved deep between the leather cushions and you ignore the muffled sounds coming from her. She limply tries to relax for her beloved master, but the painful sensation coming from her crotch causes her to start to writhe uncontrollably. She pushes against the couch, trying to endure the pounding. When you finish, the poor slave is left lying on the couch with <<if $PC.dick == 0>>a<<else>>a thin dribble of ejaculate escaping from her<</if>> @@.lime;newly fucked vagina,@@ a stream of drying tears running down each side of her face,<<if $activeSlave.dick > 0>> a single drop of precum at the tip of her totally flaccid dick,<</if>> and a new understanding of @@.gold;her place in life.@@ + <<if ($activeSlave.fetishKnown != 1) || ($activeSlave.fetish != "submissive")>> + Before the end of the week it's clear that she's taken the rape to heart, and now sees her body as something @@.lightcoral;for others to use and abuse.@@ + <<set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65, $activeSlave.fetish = "submissive">> + <</if>> + <<set $activeSlave.trust -= 5, $activeSlave.vagina = 1, $activeSlave.vaginalCount++, $vaginalTotal++>> + <<if $PC.dick == 1 && $activeSlave.eggType == "human" && isFertile($activeSlave) && $activeSlave.preg == 0>> + <<KnockMeUp $activeSlave 25 0 -1>> + <</if>> + <</replace>> +<</link>> + <<case "devoted anal virgin">> <<link "No, reassure her that she doesn't need to be an anal slut">> @@ -9496,7 +9578,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<elseif $PC.title == 0>> feminine <<else>> - maculine + masculine <</if>> waist. Your hands, thus freed to grope her, tenderly hold her head and neck instead, cupping her <<if $activeSlave.face > 95>>gorgeous<<elseif $activeSlave.face >= -10>>pretty<<else>>homely<</if>> jawline and making her moan at the intimacy. <br><br> @@ -9553,7 +9635,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<replace "#result">> You make no reply at all, but walk around to stand behind the slave. She knows she's fucked, and starts to shake with fear. You put a foot on her ass and shove her down<<if $activeSlave.belly >= 5000>> so her rear is pointed into the air again<<else>> to lie flat on the floor<</if>>, and then straddle her, shoving <<if $PC.dick == 1>>your<<if $PC.vagina == 1>> futa<</if>> cock up her butt<<else>>one more finger than she can comfortably take up her butt<</if>>. She tries to beg some more, but you give her a warning slap, and she shuts up. Despite your roughness, she's so horny that she starts to get hard. You can't see or feel this directly, of course, but it's easy to tell from her desperate sobbing and involuntary writhing, and the lovely spasming of her anal sphincter. Her tears dry up as she builds towards a climax; orgasm might be an uncomfortable experience for her, but it will buy her a few minutes free of discomfort. <br><br> - But she's to be disappointed. You <<if $PC.dick == 1>>worm a hand down between her ass and your stomach, and shove a finger up inside her, alongside your dick<<if $PC.vagina == 1>>, dextrously using the thumb of that hand to stroke your own pussy<</if>><<else>>use the hand that isn't fucking her to pull one of her arms around behind her into a painful joint lock<</if>>. The pain ruins her building orgasm, and she cries with frustration and @@.gold;despair@@ as she realizes that she won't be getting off today. You force her to experience this horrible near-release twice more, bringing her to a terribly uncomfortable state of arousal and then using sudden pain to destroy any chance she has of getting relief. All the wriggling and jerking around is good for you, though. + But she's to be disappointed. You <<if $PC.dick == 1>>worm a hand down between her ass and your stomach, and shove a finger up inside her, alongside your dick<<if $PC.vagina == 1>>, dexterously using the thumb of that hand to stroke your own pussy<</if>><<else>>use the hand that isn't fucking her to pull one of her arms around behind her into a painful joint lock<</if>>. The pain ruins her building orgasm, and she cries with frustration and @@.gold;despair@@ as she realizes that she won't be getting off today. You force her to experience this horrible near-release twice more, bringing her to a terribly uncomfortable state of arousal and then using sudden pain to destroy any chance she has of getting relief. All the wriggling and jerking around is good for you, though. <<set $activeSlave.trust -= 4>> <<AnalVCheck>> <</replace>> @@ -10353,7 +10435,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<replace "#result">> $activeSlave.slaveName obeys <<if $activeSlave.devotion > 20>>without hesitation<<else>>hesitantly<</if>> when you order her to kneel next to your desk the next time she tries to go to the milkers. Her devotion is severely tested over the next hours as you ignore her. The occasional glance at her shows her growing increasingly frantic as her breasts grow heavier and her inverted nipples, which prevent any release of pressure without the strong suction of the milkers to protrude them, grow more tender. Eventually, she loses all composure and begins to beg you abjectly to give her relief. Your cruel smile at the kneeling girl with tears streaming down her $activeSlave.skin cheeks fills her with @@.gold;anticipatory horror.@@ You tell her to get on all fours like the <<if $activeSlave.pregKnown == 1>>pregnant<</if>> cow she is. <<if $activeSlave.belly >= 750000>> - She is so horribly <<if $activeSlave.bellyPreg >= 3000>>pregnant<<else>>bloated<</if>> that it is a struggle just to shift onto her _belly stomach in the hope that she can even reach the floor with all four limbs. Even worse, her effots are absolutely agonizing to her engorged breasts; when she finally does get onto the mass that is her middle, the sudden shift of her breasts causes her to shriek with pain. + She is so horribly <<if $activeSlave.bellyPreg >= 3000>>pregnant<<else>>bloated<</if>> that it is a struggle just to shift onto her _belly stomach in the hope that she can even reach the floor with all four limbs. Even worse, her efforts are absolutely agonizing to her engorged breasts; when she finally does get onto the mass that is her middle, the sudden shift of her breasts causes her to shriek with pain. <<elseif $activeSlave.belly >= 300000>> She has to crawl onto her _belly stomach to even get all four limbs on the ground. The drastic shifting of her breasts is agonizing and she shrieks in spite of herself. <<elseif $activeSlave.belly >= 100000>> @@ -11145,7 +11227,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<else>> "Plea<<s>>e, would you pretend to be pregnant with my baby, <<Master>>?" Her eyes are glued to your middle. You could play pretend with her, and you do, <<if isItemAccessible("a small empathy belly")>> - straping an empathy belly on yourself before bending over for her. + strapping an empathy belly on yourself before bending over for her. <<else>> tossing on a camisole and sticking a pillow under it before bending over for her. <</if>> @@ -11164,7 +11246,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<else>> "Plea<<s>>e, would you pretend that I'm pregnant with your baby, <<Master>>?" She pokes out her belly and sways it enticingly, lest you misunderstand. You could play pretend with her, and you do, <<if isItemAccessible("a small empathy belly")>> - straping an empathy belly on her before feeling her up. + strapping an empathy belly on her before feeling her up. <<else>> tossing her a camisole and a pillow before feeling her up. <</if>> @@ -11331,19 +11413,18 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> <<elseif ($activeSlave.fetish == "dom") && ($activeSlave.fetishKnown == 1)>> activate the ink gun, its low buzzing drawing a moan of anticipation out of $activeSlave.slaveName. Working at a touchscreen, you exercise your artistic talents, making the side of her face fierce with tribal patterns. Tattooing over such thin and sensitive skin is intensely painful, but she tolerates it, permitting nothing but a low and continuing growl to escape. She's obviously tired out by the pain when she's finally allowed to rise, but she <<if canSee($activeSlave)>>looks at herself in the mirror<<else>>listens to your description<</if>> with @@.hotpink;obvious approval.@@ - <<set $activeSlave.lipsTat = "tribal">> + <<set $activeSlave.lipsTat = "tribal patterns">> <<elseif ($activeSlave.fetish == "sadist") && ($activeSlave.fetishKnown == 1)>> <<if canAchieveErection($activeSlave)>> - take hold of her most intimate parts and put a set of massive piercings straight through her shaft. She shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when she gets gingerly up from the chair, she doesn't look eager to stick her cock in anything, + take hold of her most intimate parts and put a set of massive piercings straight through her shaft. She shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when she gets gingerly up from the chair, she doesn't look eager to stick her cock in anything, but she's @@.hotpink;thankful enough.@@ <<set $activeSlave.dickPiercing = 2>> <<elseif $activeSlave.dick > 0>> hold her mouth agape and place the first piercing. She can't make much of a facial expression with her mouth that wide, but there is a lewd <<if canSee($activeSlave)>>glint in her eye<<else>>look on her face<</if>> when she realizes she's getting more than one. When you're done, she's sore enough that she gestures her thanks, @@.hotpink;smiling devotedly;@@ she looks eager to try out her new piercing on a fresh pussy. <<set $activeSlave.tonguePiercing = 2>> <<else>> - take hold of her most intimate parts and put a set of massive piercings straight through her pussylips. She shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when she gets gingerly up from the chair, she doesn't look eager to trib anything, + take hold of her most intimate parts and put a set of massive piercings straight through her pussylips. She shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when she gets gingerly up from the chair, she doesn't look eager to trib anything, but she's @@.hotpink;thankful enough.@@ <<set $activeSlave.vaginaPiercing = 2>> <</if>> - but she's @@.hotpink;thankful enough.@@ <<elseif ($activeSlave.fetish == "masochist") && ($activeSlave.fetishKnown == 1)>> take hold of her most intimate parts and put a series of massive piercing straight through her <<if $activeSlave.dick > 0>> @@ -12698,7 +12779,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<link "Help her with those hard to reach places">> <<EventNameDelink $activeSlave>> <<replace "#result">> - She's absorbed enough with her application that she starts with surprise when you gently encircle her from behind with a hug<<if $PC.belly >= 5000>>, pushing your own gravidty into the small of her back<</if>>. When you take the lotion and begin to lovingly massage it into her harder to reach areas, she sighs with pleasure and leans against you. + She's absorbed enough with her application that she starts with surprise when you gently encircle her from behind with a hug<<if $PC.belly >= 5000>>, pushing your own gravid belly into the small of her back<</if>>. When you take the lotion and begin to lovingly massage it into her harder to reach areas, she sighs with pleasure and leans against you. <<if ($activeSlave.amp != 1) && $PC.belly >= 1500>> She takes the lotion and begins to return the favor. You spend the rest of her break carefully massaging each other's baby bumps.<</if>> <<if !canTalk($activeSlave)>> <<if $activeSlave.voice == 0>> @@ -12727,7 +12808,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <br><<link "Gently fuck her while helping her apply lotion">> <<EventNameDelink $activeSlave>> <<replace "#result">> - She's absorbed enough with her application that she starts with surprise when you gently encircle her from behind with a hug<<if $PC.belly >= 5000>>, pushing your own gravidty into the small of her back<</if>>. When you take the lotion and begin to lovingly massage it into her harder to reach areas, she sighs with pleasure and leans back into you. She feels <<if $PC.dick == 0>>the warmth of your growing arousal<<else>>your erection hard<</if>> against her, so she + She's absorbed enough with her application that she starts with surprise when you gently encircle her from behind with a hug<<if $PC.belly >= 5000>>, pushing your own gravid belly into the small of her back<</if>>. When you take the lotion and begin to lovingly massage it into her harder to reach areas, she sighs with pleasure and leans back into you. She feels <<if $PC.dick == 0>>the warmth of your growing arousal<<else>>your erection hard<</if>> against her, so she <<if ($activeSlave.amp == 1)>> wriggles her limbless form around on the floor so as to offer herself to you. <<else>> @@ -13219,7 +13300,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<if $activeSlave.pregKnown == 1>> hugs her pregnancy <<else>> - attemts to hug herself with her _belly belly in the way + attempts to hug herself with her _belly belly in the way <</if>> <<else>> hugs herself @@ -13629,11 +13710,11 @@ You tell her kindly that you understand, and that she'll be trained to address t You <<if $PC.belly >= 10000>> <<if $activeSlave.belly >= 300000>> - tip her over her _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>>, do your best to get close beisde her, + tip her over her _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>>, do your best to get close beside her, <<elseif $activeSlave.belly >= 5000>> order her to bend over beside you so your pregnancy doesn't obstruct you as badly <<else>> - lean back, pull her over your knee and under your gavid dome of a middle + lean back, pull her over your knee and under your gravid dome of a middle <</if>> <<else>> <<if $activeSlave.belly >= 300000>> @@ -13663,11 +13744,11 @@ You tell her kindly that you understand, and that she'll be trained to address t You <<if $PC.belly >= 10000>> <<if $activeSlave.belly >= 300000>> - tip her over her _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>>, do your best to get close beisde her, and grope her thoroughly, bringing her to the painful edge of orgasm. Just when she's about to tip over the edge, the stimulation stops and you flip her onto her back, lower your gravid body down to her level and start playing with her nipples. + tip her over her _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>>, do your best to get close beside her, and grope her thoroughly, bringing her to the painful edge of orgasm. Just when she's about to tip over the edge, the stimulation stops and you flip her onto her back, lower your gravid body down to her level and start playing with her nipples. <<elseif $activeSlave.belly >= 5000>> order her to bend over beside you so your pregnancy doesn't obstruct you as badly and grope her thoroughly, bringing her to the painful edge of orgasm. Just when she's about to tip over the edge, the stimulation stops and you haul her upright and start playing with her nipples. <<else>> - lean back, pull her over your knee and under your gavid dome of a middle and grope her thoroughly, bringing her to the painful edge of orgasm. Just when she's about to tip over the edge, the stimulation stops and you haul her upright and start playing with her nipples. + lean back, pull her over your knee and under your gravid dome of a middle and grope her thoroughly, bringing her to the painful edge of orgasm. Just when she's about to tip over the edge, the stimulation stops and you haul her upright and start playing with her nipples. <</if>> <<else>> <<if $activeSlave.belly >= 300000>> @@ -13719,11 +13800,11 @@ You tell her kindly that you understand, and that she'll be trained to address t You <<if $PC.belly >= 10000>> <<if $activeSlave.belly >= 300000>> - tip her over her _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>>, do your best to get close beisde her, + tip her over her _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>>, do your best to get close beside her, <<elseif $activeSlave.belly >= 5000>> order her to bend over beside you so your pregnancy doesn't obstruct you as badly <<else>> - lean back, pull her over your knee and under your gavid dome of a middle + lean back, pull her over your knee and under your gravid dome of a middle <</if>> <<else>> <<if $activeSlave.belly >= 300000>> @@ -14013,7 +14094,7 @@ You tell her kindly that you understand, and that she'll be trained to address t secure a bullet vibrator her quivering perineum, and another to the base of her dick, and set them all to gradually increase the strength of their vibrations. In no time at all she releases a <<if ["chastity", "combined chastity"].includes($activeSlave.dickAccessory)>> squirt of ejaculate from her cock cage, <<elseif $activeSlave.prostate > 2>> - torrent of nearly clear, whatery ejaculate, + torrent of nearly clear, watery ejaculate, <<elseif $activeSlave.prostate == 0>> pathetic dribble of semen, <<elseif $activeSlave.balls > 0>> @@ -14365,7 +14446,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<else>> wrapping your hands around the sloshing globe <</if>> - and vigorously shaking. As her gut's groaning from the sudden shift of its contents dies down, you gently apply pressure to the bloated organ, careful to only cause her discomfort and not to discourge her contents. Satisfied, + and vigorously shaking. As her gut's groaning from the sudden shift of its contents dies down, you gently apply pressure to the bloated organ, careful to only cause her discomfort and not to disgorge her contents. Satisfied, <<else>> Her eyes fly open as soon as she feels someone touching her <<if $activeSlave.weight > 190>> @@ -14379,7 +14460,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<else>> chubby middle. You're massaging and jiggling her tiny gut. <</if>> - Her face contorts with surprise and then outrage, but then she <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with her. <<if $activeSlave.intelligence > 1>>Though she's smart,<<elseif $activeSlave.intelligence > -1>>Though she's not dumb,<<else>>She's an idiot, and<</if>> in her drowsy state she can't figure out what to do. She settles for @@.hotpink;freezing submissively@@ and letting you do what you like. You test her compliance by roughly kneading her pliante flesh, testing how well it can be molded into pleasurable valleys and ravines. Satisfied, + Her face contorts with surprise and then outrage, but then she <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with her. <<if $activeSlave.intelligence > 1>>Though she's smart,<<elseif $activeSlave.intelligence > -1>>Though she's not dumb,<<else>>She's an idiot, and<</if>> in her drowsy state she can't figure out what to do. She settles for @@.hotpink;freezing submissively@@ and letting you do what you like. You test her compliance by roughly kneading her pliant flesh, testing how well it can be molded into pleasurable valleys and ravines. Satisfied, <</if>> you leave her to get back to sleep as best she can. <<set $activeSlave.devotion += 4>> @@ -15188,9 +15269,9 @@ You tell her kindly that you understand, and that she'll be trained to address t <<elseif $activeSlave.fetish == "boobs">> Knowing her tastes and wanting the intimacy of mutual pleasure, you make sure your nipples line up with hers as best you can. You note the buck of pleasure this produces each time you get it perfectly right as you make love to her. <<elseif $activeSlave.fetish == "pregnancy" && $activeSlave.pregKnown == 1>> - Being on the bottom for some missionary lovemaking is very much to her tastes, even though she is already pregnant. She builds to orgasm slowly, revelling in the feeling of being your woman. + Being on the bottom for some missionary lovemaking is very much to her tastes, even though she is already pregnant. She builds to orgasm slowly, reveling in the feeling of being your woman. <<elseif $activeSlave.fetish == "pregnancy">> - Being on the bottom for some missionary lovemaking is very much to her tastes, even though the encounter isn't particularly likely to get her pregnant. She builds to orgasm slowly, revelling in the feeling of being your woman. + Being on the bottom for some missionary lovemaking is very much to her tastes, even though the encounter isn't particularly likely to get her pregnant. She builds to orgasm slowly, reveling in the feeling of being your woman. <</if>> As you made love to her, the gentle motions, feminine sighs, and delicate aroma of pleasure woke the other girls in bed with you, and they began their own intimacy with each other. As you go back to sleep, you're surrounded with something very like Sapphic paradise. $activeSlave.slaveName nestles up to you once more, embracing you with @@.mediumaquamarine;trust born of love.@@ <<set $activeSlave.trust += 4, $activeSlave.vaginalCount++, $vaginalTotal++>> @@ -15405,7 +15486,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<elseif $PC.refreshmentType == 5>> your finger pushing a pill deep into her <<if $activeSlave.vagina > 0 && canDoVaginal($activeSlave)>>pussy<<else>>asshole<</if>>. You didn't give her much, but her body is very sensitive there, and the effects hit her very quickly. <<elseif $PC.refreshmentType == 6>> - finger pushing a tab into her <<if $activeSlave.vagina > 0 && canDoVaginal($activeSlave)>>pussy<<else>>asshole<</if>>. You didn't give her much, but it quickly disolves and her body is very sensitive there, so the effects hit her very quickly. + finger pushing a tab into her <<if $activeSlave.vagina > 0 && canDoVaginal($activeSlave)>>pussy<<else>>asshole<</if>>. You didn't give her much, but it quickly dissolves and her body is very sensitive there, so the effects hit her very quickly. <</if>> You go back to work, letting the slave loll around on your desk, enjoying the effects. You reflect that it's probably some kind of milestone in wealth that you're willing to throw the good stuff around like this. When she's had time to reflect on the strange incident, she @@.mediumaquamarine;resolves to trust you more in the future,@@ since it can be fun. <<else>> @@ -15816,7 +15897,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> thighs, producing a shiver from the $desc, and lift her up against your chest, pinning her there with your hands supporting the backs of her knees. Giggling<<if $activeSlave.voice == 0>> mutely<</if>>, she finds herself held in a fetal position with her back pressed against your <<if $PC.boobs == 1>>tits<<else>>chest<</if>>. <<if $activeSlave.boobs > 40000>> - Her expansive tits not only weigh her down, but also forc you to push her against the shower wall for added support. + Her expansive tits not only weigh her down, but also force you to push her against the shower wall for added support. <<elseif $activeSlave.weight > 160>> She's certainly an armful and a little too fat, forcing you to push her against the shower wall for added support. <<elseif $activeSlave.balls > 200>> @@ -17635,7 +17716,7 @@ You tell her kindly that you understand, and that she'll be trained to address t turns around and shivers with pleasure as she hilts her anal sphincter around the base of <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>>. She bounces on it happily, reaming her own ass, <<AnalVCheck>> <<else>> - turns around and shivers with pleasure as she feels <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>> slip between her buttcheecks. She rubs against it, happy to share her butt with you, + turns around and shivers with pleasure as she feels <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>> slip between her buttcheeks. She rubs against it, happy to share her butt with you, <</if>> <<set _fucked = 1>> <<case "boobs">> @@ -17867,7 +17948,7 @@ You tell her kindly that you understand, and that she'll be trained to address t She gasps wantonly as she feels the familiar sensation of <<if $PC.dick == 1>>your dick<<else>>a strap-on<</if>> infiltrating between her cheeks and towards her <<if $activeSlave.anus >= 3>>loose<<elseif $activeSlave.anus >= 2>>relaxed<<else>>tight little<</if>> anus. She releases her grip on the constricting clothing that's binding her thighs together and grinds her ass back against you, making sure every centimeter of your <<if $PC.dick == 1>>hard member<<else>>phallus<</if>> that will fit gets inside her asshole. Some time later, the hard pounding dislodges the clothing and it slides down her legs to gather around her ankles. @@.hotpink;She doesn't notice.@@ <<AnalVCheck>> <<elseif $activeSlave.energy > 80>> - She's so horny that she doesn't need any foreplay. Nor does she get any. You grab her hips and smack your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> against her jiggling buttocks a couple of times, making her bounce with eagerness and frustration at the anticipation of imminent sexual release. Exercising mercy, you pull her ass back against you and maneuver <<if $PC.dick == 1>>yourself<<else>>your insturment<</if>> inside her, enjoying her shiver at the @@.hotpink;satisfaction of her hopes.@@ The constricting clothes pin her legs together, and you hold her arms against her sides, keeping her back pressed against your + She's so horny that she doesn't need any foreplay. Nor does she get any. You grab her hips and smack your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> against her jiggling buttocks a couple of times, making her bounce with eagerness and frustration at the anticipation of imminent sexual release. Exercising mercy, you pull her ass back against you and maneuver <<if $PC.dick == 1>>yourself<<else>>your instrument<</if>> inside her, enjoying her shiver at the @@.hotpink;satisfaction of her hopes.@@ The constricting clothes pin her legs together, and you hold her arms against her sides, keeping her back pressed against your <<if $PC.belly > 1500>> pregnancy <<elseif $PC.boobs == 1>> @@ -18039,7 +18120,8 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> her youthful partners particularly enjoyed filling her with their potent seed. Unsurprisingly, at a routine check up later that week, $activeSlave.slaveName joyfully discovers that she was impregnated during her Frat House excursion. It seems that being bred by a bunch of horny college boys has eliminated her prior worries about the importance of age and also caused her to @@.lightcoral;fetishize impregnation.@@ @@.hotpink;She has become more submissive to you@@ for giving her the means to broaden her sexual horizons. <<set $activeSlave.devotion += 4, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, 1)>> <<set $activeSlave.fetish = "pregnancy", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 5>> <<if $activeSlave.mpreg == 1>> <<AnalVCheck 10>> @@ -18108,7 +18190,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<elseif $activeSlave.preg > 20>> stroke her pregnant belly, <<elseif $activeSlave.belly >= 5000>> - carress the curve of her _belly belly, + caress the curve of her _belly belly, <</if>> and bring her to climax again and again. After a final frantic orgasm together in her <<if canDoVaginal($activeSlave)>> @@ -18184,7 +18266,8 @@ You tell her kindly that you understand, and that she'll be trained to address t <</if>> her aged partners particularly enjoyed filling her with their still potent seed. Unsurprisingly, at a routine check up later that week, $activeSlave.slaveName joyfully discovers that she was impregnated during her excursion. It seems that being bred by a bunch of horny old men has eliminated her prior worries about the importance of age and also caused her to @@.lightcoral;fetishize impregnation.@@ @@.hotpink;She has become more submissive to you@@ for giving her the means to broaden her sexual horizons. <<set $activeSlave.devotion += 4, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, 1)>> <<set $activeSlave.fetish = "pregnancy", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 5>> <<if $activeSlave.mpreg == 1>> <<AnalVCheck 10>> @@ -18391,7 +18474,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<if $activeSlave.bellyPreg >= 3000>> kneels carefully with an arm wrapped protectively around her bump <<else>> - kneels carefully with an arm craddling her _belly belly + kneels carefully with an arm cradling her _belly belly <</if>> <<else>> sinks to her knees obediently with her hands placed placidly on her thighs @@ -18703,7 +18786,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<EventNameDelink $activeSlave>> <<replace "#result">> <<if $activeSlave.belly >= 3000000>> - You pull your chair back from your desk and order her to lie o her back with her _belly belly to the ceiling. She isn't sure what you are up to, but it quickly dawns on her as you staddle her stomach and take a seat. She groans under the massive pressure increase inside her, but does her best to hold your weight. + You pull your chair back from your desk and order her to lie on her back with her _belly belly to the ceiling. She isn't sure what you are up to, but it quickly dawns on her as you straddle her stomach and take a seat. She groans under the massive pressure increase inside her, but does her best to hold your weight. <<if $activeSlave.preg > 10>> You manage to get very little work done. The sheer amount of motion <<if $PC.dick == 1>> diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw index 2f17b38ba399ee4a99eff8fc2f1c612d779341d5..d9bd0b0e650c92e0954d47054e50373e732b8d26 100644 --- a/src/uncategorized/RETS.tw +++ b/src/uncategorized/RETS.tw @@ -640,12 +640,14 @@ waist to cup her <<if $subSlave.dick > 0>>cock<<elseif $subSlave.vagina == -1>>a $activeSlave.slaveName chuckles into $subSlave.slaveName's ear, crooning, <<if $subSlave.bellyPreg >= 120000>> You little preggo <<s>>lut. Look at how many babie<<s>> you've gotten fucked into you, gue<<ss>> that'<<s>> why you're a <<s>>lave. You're good for nothing but being a breeding bitch. -<<elseif $subSlave.dick > 0 && $subSlave.dick < 3>> - "You u<<s>>ele<<ss>> little bitch. Your pathetic cock i<<s>> <<s>>o <<s>>mall, no wonder you're a <<s>>lave." -<<elseif $subSlave.balls == 0>> - "You <<s>>orry little bitch. Your cock i<<s>>n't <<s>>o hard now, i<<s>> it? You're never going to fuck anyone ever again, bitch." <<elseif $subSlave.dick > 0>> - "You big <<s>>ad bitch. You've got a ni<<c>>e cock, haven't you? Too bad you're only good for taking dick now." + <<if $subSlave.dick < 3>> + "You u<<s>>ele<<ss>> little bitch. Your pathetic cock i<<s>> <<s>>o <<s>>mall, no wonder you're a <<s>>lave." + <<elseif $subSlave.balls == 0>> + "You <<s>>orry little bitch. Your cock i<<s>>n't <<s>>o hard now, i<<s>> it? You're never going to fuck anyone ever again, bitch." + <<else>> + "You big <<s>>ad bitch. You've got a ni<<c>>e cock, haven't you? Too bad you're only good for taking dick now." + <</if>> <<elseif $subSlave.belly >= 5000>> <<if $subSlave.bellyPreg >= 3000>> "You pregnant <<s>>lut. You think I'll <<sh>>ow mercy <<s>>in<<c>>e you're pregnant? Think again." @@ -681,7 +683,7 @@ $subSlave.slaveName keeps her eyes clamped shut and her hands down at her sides, <<set _belly = bellyAdjective($subSlave)>> As you pass the showers, you hear what sounds like a muffled altercation over the noise of the showers running. You look in to see $subSlave.slaveName's $subSlave.skin body facing you, pressed hard up against the glass wall of one of the showers. Her <<if $subSlave.face > 95>>gorgeous<<elseif $subSlave.face > 40>>beautiful<<elseif $subSlave.face > 10>>pretty<<elseif $subSlave.face >= -10>>attractive<<else>>homely<</if>> face<<if $subSlave.belly >= 5000>> and <<if $subSlave.bellyPreg >= 5000>>pregnant<<else>>_belly<</if>> belly are<<else>> is<</if>> smashed against the glass, <<if $subSlave.belly >= 5000>>her face <</if>>contorted in pain and fear. The apparent mystery is solved when you notice that there are four legs visible: there's a pair of <<if ($activeSlave.muscles > 95)>>ripped<<elseif ($activeSlave.muscles > 30)>>muscular<<elseif ($activeSlave.muscles > 5)>>toned<<else>>soft<</if>> $activeSlave.skin calves behind $subSlave.slaveName's. <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink to passage(), $eventDescription to 1]]">></span>'s face appears at $subSlave.slaveName's ear, and though you can't hear exactly what she says, it's something along the lines of "Take it, you whiny little bitch." She's clearly got <<if canPenetrate($activeSlave)>>her cock<<else>>a couple of fingers<</if>> up $subSlave.slaveName's asshole. <br><br> -Both slaves notice you at the same time. $subSlave.slaveName's <<if canSee($subSlave)>>$subSlave.eyes eyes widen<<else>>face lights up<</if>>, but her momentary look of hope is snuffed out when she remembers who you are. $activeSlave.slaveName, on the other hand, looks a little doubtful. The rules allow her to fuck your other slaves, but she isn't quite sure what the right thing to do is, since she isn't the most dominant force in the showers any more. +Both slaves notice you at the same time. $subSlave.slaveName's <<if canSee($subSlave)>>$subSlave.eyeColor eyes widen<<else>>face lights up<</if>>, but her momentary look of hope is snuffed out when she remembers who you are. $activeSlave.slaveName, on the other hand, looks a little doubtful. The rules allow her to fuck your other slaves, but she isn't quite sure what the right thing to do is, since she isn't the most dominant force in the showers any more. <<case "repressed anal virgin">> @@ -1085,7 +1087,7 @@ she adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of <br><<link "Look, a bare butt">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You move in, looking intently at $subSlave.slaveName's bare, vulnerable butt. $activeSlave.slaveName <<if canSee($activeSlave)>>catches sight of<<else>> your approach, and then follows the line of your gaze<<else>>notices your approach, the realization of what your intent likely quickly dawns on her<</if>>. You see the corners of her mouth quirk upward with horny maliciousness. She leans back against the edge of the kitchen counter, pulling $subSlave.slaveName with her, and then reaches down and + You move in, looking intently at $subSlave.slaveName's bare, vulnerable butt. $activeSlave.slaveName <<if canSee($activeSlave)>>catches sight of your approach, and then follows the line of your gaze<<else>>notices your approach<</if>>, the realization of what your intent likely quickly dawns on her. You see the corners of her mouth quirk upward with horny maliciousness. She leans back against the edge of the kitchen counter, pulling $subSlave.slaveName with her, and then reaches down and <<if ($subSlave.butt > 6)>> grabs handfuls of $subSlave.slaveName's massive ass, <<elseif ($subSlave.butt > 3)>> @@ -1848,7 +1850,7 @@ she adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of <</if>> She was on the edge of orgasm when you stepped in, and this is just too much. She climaxes with indecent speed, involuntarily humping against the machine, shooting rope after rope of her cum into $activeSlave.slaveName's mouth<<if $PC.dick>> and spasming against your invading penis wonderfully<</if>>. You hold the quivering $subSlave.slaveName down and keep hammering her until you're certain she's fed $activeSlave.slaveName every drop she has. Then you let her up. <br><br> - As $subSlave.slaveName stumbles off, looking @@.hotpink;rather submissive,@@ $activeSlave.slaveName scoots out from underneath the machine. "<<Master>>," she <<say>>s $activeSlave.slaveName @@.hotpink;devotedly,@@ "that ta<<s>>ted incredible. It ta<<s>>te<<s>> <<s>>o much better when you fuck it out of her!" She rubs her<<if $activeSlave.belly >= 5000>> rounded<</if>> tummy with exaggerated satisfaction, and then realizes that you weren't fucking for nearly long enough to have gotten off yourself. + As $subSlave.slaveName stumbles off, looking @@.hotpink;rather submissive,@@ $activeSlave.slaveName scoots out from underneath the machine. "<<Master>>," she <<say>>s @@.hotpink;devotedly,@@ "that ta<<s>>ted incredible. It ta<<s>>te<<s>> <<s>>o much better when you fuck it out of her!" She rubs her<<if $activeSlave.belly >= 5000>> rounded<</if>> tummy with exaggerated satisfaction, and then realizes that you weren't fucking for nearly long enough to have gotten off yourself. <<if $activeSlave.lactation || $activeSlave.balls>> "I need to be milked now, too," she <<say>>s flirtily, and turns to mount the machine in turn. "Plea<<s>>e, plea<<s>>e do me too!" The machine hasn't had a turn first, this time, so she's much tighter<<if $PC.dick>>, and when she's done being milked, she's got a load of your cum inside her<</if>>. <<set $activeSlave.analCount++, $analTotal++>> diff --git a/src/uncategorized/REroyalblood.tw b/src/uncategorized/REroyalblood.tw index 93375421212642f71cbf5f608fed76bc5f68b61b..be1afe96db5d45903970940d175b2155e00ae827 100644 --- a/src/uncategorized/REroyalblood.tw +++ b/src/uncategorized/REroyalblood.tw @@ -871,6 +871,42 @@ Time is short, but you are well placed to acquire some choice slaves. With an ad You take a tablet and transmit a communication request to the new arcology owner with your intent. Once his shock wears off, he readily accepts with little need for negotiation. Soon, a flight of VTOLs land in the new arcology laden with goods. When they take off again they have the prince and princess, clad in chains and bound face to face in a forced embrace, the Queen, resigned to her fate and a gaggle of terrified court ladies. <br><br> Eventually they all arrive in your penthouse. The prince and princess are flushed with embarrassment in their compromising position. The former prince is beside himself with rage, but seems to be holding himself back for his little sister's sake, while she struggles to maintain a facade of poise and grace. The slightest trembling of her balled up fists, the minute tremors that mar her immaculate posture, her inability to meet your eyes with her own, all signs that she is still a scared girl despite all her royal trappings. Nonetheless, though the princess's court training is unlikely to be very beneficial to her in her new life in the penthouse, it does stand in stark contrast to her more common slave peers. However, the prince's submission to life as a slave is another question entirely. The Queen, on the other hand, seems almost relieved and basks in the opulence of her new surroundings. Yet, it seems likely that her relief has more to do with saving her from a lifetime of gang rape at the mercy of her former subjects, than it does the familiar luxury. She submits to biometric scanning obediently and without fuss<<if $seePreg != 0>>, during which you discover to her surprise that she is pregnant. Since she hasn't begun to show yet, it's unclear whether the child is the former King's or the new arcology owner's. You don't have the means to discern the father of the child, but you notice she cradles her ever so slightly rounded stomach protectively nonetheless<</if>>. Lastly, the ladies seem comforted by the opulence of their new surroundings. Though they still retain much of their aristocratic arrogance, they each submit to biometric scanning with relative obedience. It seems likely that their obedience is borne out of a delusional rationalization that enslavement by one wealthy master is better than enslavement by the unwashed masses they once lorded over. + /* ladies */ + <<for $i = 0; $i < 3; $i++>> + <<set $activeSlaveOneTimeMinAge = 21>> + <<set $activeSlaveOneTimeMaxAge = ($retirementAge-2)>> + <<include "Generate XX Slave">> + <<set _origin = "She was a member of the court in an ancient kingdom, till it was overthrown and she was sold for credits.">> + <<set $activeSlave.origin = _origin>> + <<set $activeSlave.career = "a lady courtier">> + <<set $activeSlave.prestige = 1>> + <<set $activeSlave.prestigeDesc = "She was once a lady of the court of an ancient kingdom.">> + <<set $activeSlave.face = random(25,76)>> + <<set $activeSlave.devotion = random(10,20)>> + <<set $activeSlave.trust = random(-20,-30)>> + <<set $activeSlave.boobs = random(3,10)*100>> + <<set $activeSlave.vagina = 1>> + <<set $activeSlave.dick = 0>> + <<set $activeSlave.foreskin = 0>> + <<set $activeSlave.balls = 0>> + <<set $activeSlave.ovaries = 1>> + <<set $activeSlave.pubicHStyle = "waxed">> + <<set $activeSlave.underArmHStyle = "waxed">> + <<set $activeSlave.shoulders = random(-1,1)>> + <<set $activeSlave.hips = 1>> + <<set $activeSlave.butt = 1>> + <<set $activeSlave.anus = 0>> + <<set $activeSlave.weight = 0>> + <<set $activeSlave.intelligence = either(-1, 1, 2)>> + <<set $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.entertainSkill = 25>> + <<set $activeSlave.whoreSkill = 0>> + <<set $activeSlave.health = random(30,60)>> + <<set $activeSlave.canRecruit = 0>> + <<set $activeSlave.behavioralFlaw = either("bitchy", "arrogant")>> + <<AddSlave $activeSlave>> /* skip New Slave Intro */ + <<set $activeSlave.recruiter = 0>> /* override New Slave Intro */ + <</for>> /* princess */ <<set $activeSlaveOneTimeMinAge = 16>> <<set $activeSlaveOneTimeMaxAge = 19>> @@ -1015,12 +1051,27 @@ Time is short, but you are well placed to acquire some choice slaves. With an ad <<set $missingParentID-->> <<set _queen = clone($activeSlave)>> <<AddSlave _queen>> /* skip New Slave Intro */ + <</replace>> +<</link>> // It will cost about <<print cashFormat(2500000)>> to enslave the entire court.// +<<elseif $familyTesting == 1>> + <br>//You lack the necessary funds to enslave the entire court.// +<</if>> + +<<if $securityForceActive == 1 && $familyTesting == 1>> +<br><<link "Dispatch $securityForceName on a night time raid to take everything of value.">> + <<replace "#result">> + <<set _loot = random(10,300)*100>> + Seizing a tablet, you quickly send a message to The Colonel. After dark, a flight of VTOLs land in the new arcology laden with troops. When they take off again they have the prince and princess, clad in chains and bound face to face in a forced embrace, the Queen, resigned to her fate, a gaggle of terrified court ladies and as much loot as they could carry. + <br><br> + Eventually they all arrive in your penthouse. The prince and princess are flushed with embarrassment in their compromising position. The former prince is beside himself with rage, but seems to be holding himself back for his little sister's sake, while she struggles to maintain a facade of poise and grace. The slightest trembling of her balled up fists, the minute tremors that mar her immaculate posture, her inability to meet your eyes with her own, all signs that she is still a scared girl despite all her royal trappings. Nonetheless, though the princess's court training is unlikely to be very beneficial to her in her new life in the penthouse, it does stand in stark contrast to her more common slave peers. However, the prince's submission to life as a slave is another question entirely. The Queen, on the other hand, seems almost relieved and basks in the opulence of her new surroundings. Yet, it seems likely that her relief has more to do with saving her from a lifetime of gang rape at the mercy of her former subjects, than it does the familiar luxury. She submits to biometric scanning obediently and without fuss<<if $seePreg != 0>>, during which you discover to her surprise that she is pregnant. Since she hasn't begun to show yet, it's unclear whether the child is the former King's or the new arcology owner's. You don't have the means to discern the father of the child, but you notice she cradles her ever so slightly rounded stomach protectively nonetheless<</if>>. Lastly, the ladies seem comforted by the opulence of their new surroundings. Though they still retain much of their aristocratic arrogance, they each submit to biometric scanning with relative obedience. It seems likely that their obedience is borne out of a delusional rationalization that enslavement by one wealthy master is better than enslavement by the unwashed masses they once lorded over. You also scored @@.yellowgreen;<<print cashFormat(_loot)>>@@ in valuables from the raid. + <<set $arcologies[0].prosperity = 2>> + <<set $rep = 0>> /* ladies */ <<for $i = 0; $i < 3; $i++>> <<set $activeSlaveOneTimeMinAge = 21>> <<set $activeSlaveOneTimeMaxAge = ($retirementAge-2)>> <<include "Generate XX Slave">> - <<set _origin = "She was a member of the court in an ancient kingdom, till it was overthrown and she was sold for credits.">> + <<set _origin = "She was a member of the court in an ancient kingdom, till it was overthrown and she was acquired by "+$securityForceName+".">> <<set $activeSlave.origin = _origin>> <<set $activeSlave.career = "a lady courtier">> <<set $activeSlave.prestige = 1>> @@ -1051,21 +1102,6 @@ Time is short, but you are well placed to acquire some choice slaves. With an ad <<AddSlave $activeSlave>> /* skip New Slave Intro */ <<set $activeSlave.recruiter = 0>> /* override New Slave Intro */ <</for>> - <</replace>> -<</link>> // It will cost about <<print cashFormat(2500000)>> to enslave the entire court.// -<<elseif $familyTesting == 1>> - <br>//You lack the necessary funds to enslave the entire court.// -<</if>> - -<<if $securityForceActive == 1 && $familyTesting == 1>> -<br><<link "Dispatch $securityForceName on a night time raid to take everything of value.">> - <<replace "#result">> - <<set _loot = random(10,300)*100>> - Seizing a tablet, you quickly send a message to The Colonel. After dark, a flight of VTOLs land in the new arcology laden with troops. When they take off again they have the prince and princess, clad in chains and bound face to face in a forced embrace, the Queen, resigned to her fate, a gaggle of terrified court ladies and as much loot as they could carry. - <br><br> - Eventually they all arrive in your penthouse. The prince and princess are flushed with embarrassment in their compromising position. The former prince is beside himself with rage, but seems to be holding himself back for his little sister's sake, while she struggles to maintain a facade of poise and grace. The slightest trembling of her balled up fists, the minute tremors that mar her immaculate posture, her inability to meet your eyes with her own, all signs that she is still a scared girl despite all her royal trappings. Nonetheless, though the princess's court training is unlikely to be very beneficial to her in her new life in the penthouse, it does stand in stark contrast to her more common slave peers. However, the prince's submission to life as a slave is another question entirely. The Queen, on the other hand, seems almost relieved and basks in the opulence of her new surroundings. Yet, it seems likely that her relief has more to do with saving her from a lifetime of gang rape at the mercy of her former subjects, than it does the familiar luxury. She submits to biometric scanning obediently and without fuss<<if $seePreg != 0>>, during which you discover to her surprise that she is pregnant. Since she hasn't begun to show yet, it's unclear whether the child is the former King's or the new arcology owner's. You don't have the means to discern the father of the child, but you notice she cradles her ever so slightly rounded stomach protectively nonetheless<</if>>. Lastly, the ladies seem comforted by the opulence of their new surroundings. Though they still retain much of their aristocratic arrogance, they each submit to biometric scanning with relative obedience. It seems likely that their obedience is borne out of a delusional rationalization that enslavement by one wealthy master is better than enslavement by the unwashed masses they once lorded over. You also scored @@.yellowgreen;<<print cashFormat(_loot)>>@@ in valuables from the raid. - <<set $arcologies[0].prosperity = 2>> - <<set $rep = 0>> /* princess */ <<set $activeSlaveOneTimeMinAge = 16>> <<set $activeSlaveOneTimeMaxAge = 19>> @@ -1210,42 +1246,6 @@ Time is short, but you are well placed to acquire some choice slaves. With an ad <<set $missingParentID-->> <<set _queen = clone($activeSlave)>> <<AddSlave _queen>> /* skip New Slave Intro */ - /* ladies */ - <<for $i = 0; $i < 3; $i++>> - <<set $activeSlaveOneTimeMinAge = 21>> - <<set $activeSlaveOneTimeMaxAge = ($retirementAge-2)>> - <<include "Generate XX Slave">> - <<set _origin = "She was a member of the court in an ancient kingdom, till it was overthrown and she was acquired by "+$securityForceName+".">> - <<set $activeSlave.origin = _origin>> - <<set $activeSlave.career = "a lady courtier">> - <<set $activeSlave.prestige = 1>> - <<set $activeSlave.prestigeDesc = "She was once a lady of the court of an ancient kingdom.">> - <<set $activeSlave.face = random(25,76)>> - <<set $activeSlave.devotion = random(10,20)>> - <<set $activeSlave.trust = random(-20,-30)>> - <<set $activeSlave.boobs = random(3,10)*100>> - <<set $activeSlave.vagina = 1>> - <<set $activeSlave.dick = 0>> - <<set $activeSlave.foreskin = 0>> - <<set $activeSlave.balls = 0>> - <<set $activeSlave.ovaries = 1>> - <<set $activeSlave.pubicHStyle = "waxed">> - <<set $activeSlave.underArmHStyle = "waxed">> - <<set $activeSlave.shoulders = random(-1,1)>> - <<set $activeSlave.hips = 1>> - <<set $activeSlave.butt = 1>> - <<set $activeSlave.anus = 0>> - <<set $activeSlave.weight = 0>> - <<set $activeSlave.intelligence = either(-1, 1, 2)>> - <<set $activeSlave.intelligenceImplant = 1>> - <<set $activeSlave.entertainSkill = 25>> - <<set $activeSlave.whoreSkill = 0>> - <<set $activeSlave.health = random(30,60)>> - <<set $activeSlave.canRecruit = 0>> - <<set $activeSlave.behavioralFlaw = either("bitchy", "arrogant")>> - <<AddSlave $activeSlave>> /* skip New Slave Intro */ - <<set $activeSlave.recruiter = 0>> /* override New Slave Intro */ - <</for>> <</replace>> <</link>> //You will loathed for this action and trade will be crippled.// <</if>> diff --git a/src/uncategorized/SFMBarracks.tw b/src/uncategorized/SFMBarracks.tw old mode 100755 new mode 100644 index 2af4944eb235fa89d2cab148c995b1d51d97b691..2eaaa3d8e240ba21552b54e40ef5990c3a43068b --- a/src/uncategorized/SFMBarracks.tw +++ b/src/uncategorized/SFMBarracks.tw @@ -1,21 +1,37 @@ :: SFM Barracks [nobr] -<<set _N1 = 2, _N2 = 2, _N3 = 2>> +<<HSM>> <<set _Name = "<<if $CurrentTradeShowAttendance == 1 && $LieutenantColonel == 2>>Lieutenant Colonel <<SlaveFullName $LieutenantColonel>> <<elseif $CurrentTradeShowAttendance == 1 && $LieutenantColonel != 2>> a soldier <<elseif $CurrentTradeShowAttendance == 0>> The Colonel<</if>>">> -<<if $economy == .5>> - <<set $Env = _N1, $EnvCash2 = 450, $EnvCash3 = 200, $EnvCash4 = 100, $EnvProsp = 3, _BaseDiscount = _BaseDiscount-.005>> -<<elseif $economy == 1>> - <<set $Env = _N2, $EnvCash2 = 500, $EnvCash3 = 250, $EnvCash4 = 150, $EnvProsp = 5, _BaseDiscount = _BaseDiscount>> -<<elseif $economy == 1.5>> - <<set $Env = _N3, $EnvCash2 = 550, $EnvCash3 = 300, $EnvCash4 = 200, $EnvProsp = 7, _BaseDiscount = _BaseDiscount+.005>> +<<if ndef $ColonelRelationship>> + <<set $ColonelRelationship = 0>> /* 0 - Employee and boss, 100 - Friend, 200 - Close friend, 300 - Girlfriend, 400 - Lover */ <</if>> - -<<set $TierTwoUnlock = 0>> -<<if _StimulantLab >= 5 && _Barracks >= 5 && $securityForceVehiclePower >= 5 && _Armoury >= 5 && _DroneBay >= 5 && $securityForceAircraftPower >= 5>> - <<set $TierTwoUnlock = 1>> +<<if $ColonelRelationship == 0>> + <<set _RelationshipTitle = "boss">> +<<elseif $ColonelRelationship >= 100>> + <<set _RelationshipTitle = "friend">> +<<elseif $ColonelRelationship >= 200>> + <<set _RelationshipTitle = "close friend">> +<<elseif $ColonelRelationship >= 300>> + <<if $PC.title == 1>> + <<set _RelationshipTitle = "boyfriend">> + <<else>> + <<set _RelationshipTitle = "girlfriend">> + <</if>> +<<elseif $ColonelRelationship >= 400>> + <<set _RelationshipTitle = "lover">> <</if>> - +<<set $Env = simpleWorldEconomyCheck()>> +<<switch $Env>> + <<case "n1">> + <<set $EnvCash2 = 450, $EnvCash3 = 200, $EnvCash4 = 100, $EnvProsp = 3, _BaseDiscount = _BaseDiscount-.005>> + <<case "n2">> + <<set $EnvCash2 = 500, $EnvCash3 = 250, $EnvCash4 = 150, $EnvProsp = 5, _BaseDiscount = _BaseDiscount>> + <<case "n3">> + <<set $EnvCash2 = 550, $EnvCash3 = 300, $EnvCash4 = 200, $EnvProsp = 7, _BaseDiscount = _BaseDiscount+.005>> +<</switch>> + +<<if ndef $TierTwoUnlock>> <<set $TierTwoUnlock = 0>> <</if>> <<include "SpecialForceUpgradeTree">> <<if $SFNO > 0>> @@ -60,12 +76,12 @@ <<set $CashGift = 25000*(Math.max(0.99,$SFAO/10))*$Env>> <<if random(1,100) > 50>> <<if random(1,100) > 50>> - _Name nods. "Sure boss," she says, "we had a bit of a haul this week. One of my sergeants convinced a woman to tell us where she had hidden her shit. Cut her up pretty bad, but she told us. Bunch of nice jewelry, I kept a nice piece for myself." She picks up a tablet on the table, tapping a few commands on it. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>." + _Name nods. "Sure boss," she says, "we had a bit of a haul this week. One of my sergeants convinced a woman to tell us where she had hidden her shit. Cut her up pretty bad, but she told us. Bunch of nice jewelry, I kept a nice piece for myself." She picks up a tablet on the table, tapping a few commands on it. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>." <<else>> - _Name smiles widely. "Sure boss," she says, "we pulled in some good shit this week. One of the boys found a real nice family hiding in a basement. 18-year old triplets. Brought in a good bit of cash." She picks up a tablet on the table, tapping a few commands on it. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>." + _Name smiles widely. "Sure boss," she says, "we pulled in some good shit this week. One of the boys found a real nice family hiding in a basement. 18-year old triplets. Brought in a good bit of cash." She picks up a tablet on the table, tapping a few commands on it. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>." <</if>> <<else>> - _Name picks up a tablet. "Sure boss," she says, "we had a nice score this week. Looters fucked up and left a bunch of nice shit behind." She taps a few commands on the tablet. "@@.green;There's your cut,@@ <<print cashFormat($CashGift)>>." + _Name picks up a tablet. "Sure boss," she says, "we had a nice score this week. Looters fucked up and left a bunch of nice shit behind." She taps a few commands on the tablet. "@@.yellowgreen;There's your cut,@@ <<print cashFormat($CashGift)>>." <</if>> <<set $securityForceGiftToken = 1>> <<set $cash += $CashGift>> @@ -108,23 +124,27 @@ <<set $securityForceGiftToken = 1>> <<set $arcologies[0].prosperity += $GoodWords2>> <br> + <<if $arcologies[0].prosperity + $GoodWords2 > $AProsperityCap>> + <<set $arcologies[0].prosperity = $AProsperityCap>> + <</if>> <</replace>> <</link>> - <<if $arcologies[0].prosperity + $GoodWords2 > $AProsperityCap>> - <<set $arcologies[0].prosperity = $AProsperityCap>> - <</if>> <</if>> </span> <</if>> <<if $securityForceUpgradeToken == 1 && ($SFAO < _max)>> <br>//_Name is working to improve $securityForceName this week.// -<<elseif $TierTwoUnlock == 1>> - <br>//You receive a message from The Colonel "there's a trade show coming up with exotic upgrades but I'll get laughed out unless we bring the best gear we can get now?"// +<<elseif $TierTwoUnlock == 1 && $TradeShowAttendanceGranted == 0>> + <br>//You receive a message from The Colonel "There is a trade show coming up soon with exotic upgrades but I'll get laughed out unless we bring the best gear we can get now."// <<elseif $SFAO >= _max>> <br>//$securityForceName is fully equipped and upgraded - nothing else can be done.// <</if>> +<<if $TierTwoUnlock == 0>> + <br>You have <<print (30-$SFAO)>> upgrades left before you can move unlock the next tier. ''StimulantLab:'' _StimulantLab/5 ''Barracks:'' _Barracks/5 ''Garage:'' $securityForceVehiclePower/5 ''Armoury:'' _Armoury/5 ''DroneBay:'' _DroneBay/5 ''Airforce:'' $securityForceAircraftPower/5 + <<if $securityForceVehiclePower == 5>> <<set _T1FullUpgradesGarage = "True">> <</if>> <<if $securityForceAircraftPower == 5>> <<set _T1FullUpgradesAirforce = "True">> <</if>> <<if 30-$SFAO == 0>> <<set $TierTwoUnlock = 1>> <</if>> +<</if>> <<if $securityForceGiftToken == 1>> <br>//_Name has already provided you with extra tribute this week.// <</if>> @@ -142,303 +162,8 @@ <</link>> <br>It will cost 5% of your currently displayed cash, which is <<print cashFormat(Math.trunc(_securityForceUpgradeResetTokenCurrentCost))>>. <</if>> <<if $securityForceUpgradeTokenReset >= 1>> - <br>Total multi week $securityForceName upgrades: $securityForceUpgradeTokenReset + <br>Total multi week $securityForceName upgrades: $securityForceUpgradeTokenReset <br> <</if>> <<include "SpecialForceUpgradeOptions">> - -<<if $securityForceColonelToken == 0 && $securityForceSexedColonelToken == 0 && $CurrentTradeShowAttendance == 0>> - <br><br> - <span id="result3"> - Where do you want to spend time with The Colonel this week? - <br><<link "Up on the surface, along with an escort of course.">> - <<set $securityForceColonelToken = 1>> - <<replace "#result3">> - You ask The Colonel if she would like to stretch her legs up on the surface. It doesn't take much effort for her to agree. - <<if $PC.warfare < 10>> - <br>Your complete lack of skill at warfare ensures that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName, <</if>>you need; two full squads of $securityForceName on foot, a squadron of fighters, a small convoy of $securityForceName's ground vehicles. - <<elseif $PC.warfare >= 100 && $PC.career == "mercenary">> - <br>Your mastery of wet work and prior experience in a PMC satisfies The Colonel that you only need one soldier and a single vehicle<<if $Bodyguard != 0>> plus $Bodyguard.slaveName<</if>>. Being able to see and interact with the arcology owner even more directly if they so wish boosts the mood of your citizen's while also giving them an increased opportunity to try gaining favour with you. - <<set $rep += 10, $cash += $EnvCash2>> - <<elseif $PC.warfare >= 100>> - <br>Your mastery of wet work satisfies The Colonel that you only need two soldiers and a single vehicle<<if $Bodyguard != 0>> plus $Bodyguard.slaveName<</if>>. Being able to see and interact with the arcology owner directly if they so wish boosts the mood of your citizens while also giving them the opportunity to try gaining favor with you. - <<set $rep += 5, $cash += $EnvCash3>> - <<elseif $PC.warfare >= 60>> - <br>Your expertise in warfare means that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName <</if>>you need; two full squads of $securityForceName on foot, a squadron of fighters and a large convoy of $securityForceName's ground vehicles. - <<elseif $PC.warfare >= 30>> - <br>As you have some skill in warfare, you only need<<if $Bodyguard != 0>> in addition to $Bodyguard.slaveName<</if>>; two full squads of $securityForceName on foot, a squadron of fighters, a small convoy of $securityForceName's ground vehicles. - <<elseif $PC.warfare >= 10>> - <br>Your F.N.G. tier skill in warfare ensures that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName, <</if>>you need; two full squads of $securityForceName on foot, a squadron of fighters, a small convoy of $securityForceName's ground vehicles. - <</if>> - <<if $arcologies[0].FSPaternalist != "unset">> - Stopping at a paternalist shop, you help The Colonel select some luxurious and relaxing treatments for her main slave. - <<if $PC.slaving < 10>> - Your total lack of slavery skill (which is very unusual and very concerning for an arcology owner), means that you are of little to no help or even a hindrance. - <<elseif $PC.slaving >= 100>> - Your mastery of slaving allows you assist The Colonel greatly. However the shop owner is so impressed by your understanding of slavery that she is more than happy for an endorsement from you. As you are exiting the shop you hear your pre-recorded message which bears the slogan "This is (<<if def $PC.customTitle>>$PC.customTitle <</if>> <<PlayerName>>) and this is my favorite Paternalist shop in $arcologies[0].name." - <<if $arcologies[0].prosperity < 20>> - <<set $arcologies[0].prosperity++>> - <</if>> - <<elseif $PC.slaving >= 60>> - Your expertise in slavery allows you to be more useful. - <<elseif $PC.slaving >= 30>> - Possing some skill you are slightly helpful. - <<elseif $PC.slaving >= 10>> - Your basic skill at slavery, allows you to neither be a hindrance or helpful. - <</if>> - <<else>> - Stopping at a shop. - <</if>> - <br>Soon the entourage heads back to the HQ of $securityForceName. Along the route you see a homeless citizen in great pain. - <<if $PC.medicine < 10>> - Your total lack of medical skill causes the death of the citizen. - <<set $arcologies[0].prosperity -= .25>> - <<elseif $PC.medicine >= 100 && $PC.career == "medicine">> - Your expertise in medicine ensures that the citizen is probably the best they have ever been. They are so grateful that they are more than happy to try and compensate your time. Word quickly spreads of the kindly medically trained arcology owner who took the time to heal a citizen, providing confidence to the rest of the citizens. - <<set $rep += 10, $cash += $EnvCash4>> - <<elseif $PC.medicine >= 100>> - Your expertise in medicine ensures that the citizen is probably the best they have ever been. Word quickly spreads of the kindly arcology owner who took the time to heal a citizen. - <<set $rep += 5>> - <<elseif $PC.medicine >= 60>> - Your mastery of medicine ensures that the citizen's condition is noticeably better. - <<elseif $PC.medicine >= 30>> - Your moderate skill in medicine ensures that the citizen's condition ever so slightly improves. - <<elseif $PC.medicine >= 10>> - Your basic skill in medicine is sufficient only to stabilize the citizen. - <</if>> - <</replace>> - <</link>> - - <br><<link "In the HQ of $securityForceName.">> - <<replace "#result3">> - <span id="result10"> - What do you want to do with The Colonel in the HQ of $securityForceName? - <<link "Go back">> - <<goto "SFM Barracks">> - <<set $securityForceColonelToken = 0>> - <</link>> - <br><<link "Learn">> - <<replace "#result10">> - <<set $securityForceColonelToken = 1>> - <<link "Go back">> - <<goto "SFM Barracks">> - <<set $securityForceColonelToken = 0>> - <</link>> - <br>"Sure, boss." she says, nodding. "I can use a break from all of this." She laughs. - She can try teaching you a bit about; - <span id="result4"> - <<link "field medicine">> - <<set $PC.medicine += 4>> - <<replace "#result4">> - <br> - <<if $PC.medicine < 10>> - //Hopefully now, you are less likely to cut yourself on the sharp things. - <<elseif $PC.medicine >= 100>> - //Feel free to play 'doctor' with me any time. - <<elseif $PC.medicine >= 60>> - //Feel free to apply 'pressure' any where. - <<elseif $PC.medicine >= 30>> - //Yes that is how you use a tourniquet, good job. - <<elseif $PC.medicine >= 10>> - //Yes that is a bandage, good job. - <</if>> - <</replace>> - <</link>> - , - <<link "trading">> - <<set $PC.trading += 3>> - <<replace "#result4">> - <br> - <<if $PC.trading < 10>> - //Congratulations you have just passed economics 101, "black and red should balance". - <<elseif $PC.trading >= 100>> - //Now let's go crash some markets. - <<elseif $PC.trading >= 60>> - //Your auditing skills aren't half bad. - <<elseif $PC.trading >= 30>> - //Good, you can now spot numerical errors, most of the time. - <<elseif $PC.trading >= 10>> - //Now Good job you now know what NPV stands for. - <</if>> - <</replace>> - <</link>> - , - <<link "slaving">> - <<set $PC.slaving += 3>> - <<replace "#result4">> - <br> - <<if $PC.slaving < 10>> - //Yes, the rope normally goes around the wrist first and no where near the mouth. - <<elseif $PC.slaving >= 100>> - //Now should we go out there and capture some slaves, master? - <<elseif $PC.slaving >= 60>> - //Feel feel to tie me up any time. - <<elseif $PC.slaving >= 30>> - //You can finally tie a knot correctly, most of the time anyway. - <<elseif $PC.slaving >= 10>> - //Yes, having your slaves die on you is generally considered a bad thing, unless you are into that kind of thing you sick fuck.But who am I to judge. - <</if>> - <</replace>> - <</link>> - , - <<link "combat engineering">> - <<set $PC.engineering += 3>> - <<replace "#result4">> - <br> - <<if $PC.engineering < 10>> - //Good job you know what a hammer now looks like. - <<elseif $PC.engineering >= 100>> - //Time to for you to out there and building something. - <<elseif $PC.engineering >= 60>> - //Feel free to 'nail' me any time. - <<elseif $PC.engineering >= 30>> - //Yes that is the correct hammering position. - <<elseif $PC.engineering >= 10>> - //Hammer meet nail. - <</if>> - <</replace>> - <</link>> - , - <<link "general skills">> - <<set $PC.engineering + 2>> - <<set $PC.slaving += 2>> - <<set $PC.trading += 2>> - <<set $PC.warfare += 2>> - <<set $PC.medicine += 2>> - <<replace "#result4">> - //Hopefully this general education I could provide may be of use. - <</replace>> - <</link>> - or you can <<link "listen to some war stories.">> - <<set $PC.warfare += 5>> - <<replace "#result4">> - <br> - <<if $PC.warfare < 10>> - //There, now you hopefully can hit the broad side of a barn, most of the time. What am I kidding you still suck. - <<elseif $PC.warfare >= 100>> - //Now why don't you go deal with those dangerous watermelons? - <<elseif $PC.warfare >= 60>> - //Feel free to shoot at or up me, any time. - <<elseif $PC.warfare >= 30>> - //Grouping is slightly better. - <<elseif $PC.warfare >= 10>> - //Slightly better but you still have a long way to go. - <</if>> - <</replace>> - <</link>> - </span> - <</replace>> - <</link>> - - <br><<link "Have some fun">> - <<link "Go back">> - <<goto "SFM Barracks">> - <<set $securityForceSexedColonel = 0, $securityForceColonelToken = 0>> - <</link>> - <<replace "#result10">> - <<set $securityForceSexedColonel = 1, $securityForceColonelToken = 1>> - <span id="result11"> - Where should this fun take place? - <<link "Go back">> - <<goto "SFM Barracks">> - <<set $securityForceSexedColonel = 0, $securityForceColonelToken = 0>> - <</link>> - <br><<link "In private">> - <<replace "#result11">> - <span id="result6"> - Which ofice do you wish to target? - <<link "Go back">> - <<goto "SFM Barracks">> - <</link>> - <br> - <<link "Pussy">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 1>> - <</link>> - - <br><<link "Ass">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 1>> - <</link>> - - <br><<link "Both pussy and ass">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 2>> - <</link>> - - <br><<link "Mouth">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 1>> - <</link>> - - <br><<link "All three holes">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 3>> - <</link>> - </span> - <</replace>> - <</link>> - - <br><<link "On The Colonel's throne.">> - <<replace "#result11">> - <span id="result6"> - Which ofice do you wish to target? - <<link "Go back">> - <<goto "SFM Barracks">> - <<set $securityForceSexedColonel = 0, $securityForceColonelToken = 0>> - <</link>> - <br><<link "Pussy">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 1>> - <</link>> - - <br><<link "Ass">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 1>> - <</link>> - - <br><<link "Both pussy and ass">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 2>> - <</link>> - - <br><<link "Mouth">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 1>> - <</link>> - - <br><<link "All three holes">> - <<replace "#result6">> - <<include "SpecialForceColonelSexDec">> - <</replace>> - <<set $securityForceSexedColonel += 3>> - <</link>> - </span> - <</replace>> - <</link>> - </span> - <</replace>> - <</link>> - </span> - <</replace>> - <</link>> - </span> -<</if>> +<<include "SpecialForceBarracksAdditionalColonelInteractions">> \ No newline at end of file diff --git a/src/uncategorized/arcade.tw b/src/uncategorized/arcade.tw index 09737e15a6081c4791a370f86755553a624f168c..8afe05a4e0fb81a05bc3ac9f16f34b0a3b260b1c 100644 --- a/src/uncategorized/arcade.tw +++ b/src/uncategorized/arcade.tw @@ -91,7 +91,7 @@ $arcadeNameCaps <<elseif $arcadeUpgradeCollectors == 1>> It has been retrofitted to milk lactating slaves<<if $seeDicks != 0>> and cockmilk slaves capable of ejaculating<</if>>, though less efficiently than a dedicated facility. <<else>> - <br>It is a standard arcade. It can be upgraded to either maximize the pleasure of those that visit it at the expense of the health or the inmates, or to keep them healthy (if not happy) and milk them of useful fluids.<br> + <br>It is a standard arcade. It can be upgraded to either maximize the pleasure of those that visit it at the expense of the health of the inmates, or to keep them healthy (if not happy) and milk them of useful fluids.<br> [[Upgrade the arcade with invasive performance-enhancing systems|Arcade][$cash -= _Tmult1, $arcadeUpgradeInjectors = 1]] | [[Retrofit the arcade to collect useful fluids|Arcade][$cash -= _Tmult1, $arcadeUpgradeCollectors = 1]]<br> //Choosing either upgrade will cost <<print cashFormat(_Tmult1)>> and will increase upkeep costs. They are mutually exclusive; only one can be chosen.// <br> <</if>> @@ -100,7 +100,7 @@ $arcadeNameCaps <br> <<if $arcadeUpgradeMenials == 1>> <<if $fuckdolls > 0>> - Rows of menial Fuckdolls are shackled to the floor in positions that force them to present all their holes. Their latex-clad bodies struggle in their restraints when fucked, offering a different $arcadeName experience. + Rows of menial Fuckdolls are shackled to the floor in positions that force them to present all their holes. Their latex-clad bodies struggle in their restraints when fucked, offering a different arcade experience. <<else>> In addition to the low walls that house inmates, there are also rows of simple shackles that allow menial Fuckdolls to be restrained here to add still more rapeable holes to $arcadeName's capacity. They're empty at present. <</if>> diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw index c20177958c85afb1df08f4e90dcb95947b3feb41..6b17e731dc2cc86175be85357557c2e2098911c8 100644 --- a/src/uncategorized/arcmgmt.tw +++ b/src/uncategorized/arcmgmt.tw @@ -183,7 +183,7 @@ This week, <<if _flux > 0>>few to none<<else>>many<</if>> of $arcologies[0].name <<if $arcologies[0].FSRomanRevivalistLaw == 1>>The citizens take pride in their martial duties, preferring to wear utilitarian clothing even when off duty.<</if>> <<if $arcologies[0].FSGenderRadicalistDecoration == 100>>Every single one of the slaves is female by virtue of her fuckable asshole. <<elseif $arcologies[0].FSGenderFundamentalistSMR == 1>>Almost every citizen is an upstanding man, while the slave population is almost completely female.<</if>> -<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>>Close relationships between citizens and slaves, especially slave siblings, are common.<</if>> +<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>>Close relationships between citizens and slaves, especially slave siblings, are common.<<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>>Close relationships between citizens, slaves and siblings are common.<</if>> <<if $arcologies[0].FSSubjugationistLawME == 1>>$arcologies[0].FSSubjugationistRace subhumans form a majority of the slaves.<</if>> <<if $arcologies[0].FSChattelReligionistLaw == 1>>The slave population as a whole is unusually accepting of its station.<</if>> <<if $arcologies[0].FSPaternalistLaw == 1>>The slaves are well cared for, and it can sometimes be difficult to tell slaves from citizens. diff --git a/src/uncategorized/arcologyDescription.tw b/src/uncategorized/arcologyDescription.tw index 5aaaef06498ff3c97ede3b92e6968badb1d67e92..5e957219b56c49bd38b347610e701ce2535c42f9 100644 --- a/src/uncategorized/arcologyDescription.tw +++ b/src/uncategorized/arcologyDescription.tw @@ -1,7 +1,7 @@ :: Arcology Description [nobr] -__''$arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $arcologyUpgrade.apron == 1>> solar-panelled<</if>> skin gleams in the sunshine<<if $arcologyUpgrade.hydro == 1>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>. +__'' $arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $arcologyUpgrade.apron == 1>> solar-panelled<</if>> skin gleams in the sunshine<<if $arcologyUpgrade.hydro == 1>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>. <<if $weatherCladding == 1>> Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $arcologyUpgrade.spire == 1>>, though its highest point is capped by tall, elegant spire<</if>>. <<elseif $weatherCladding == 2>> @@ -637,7 +637,8 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el <<elseif $arcologies[0].FSYouthPreferentialistLaw == 1>>Most citizens shine with youth and enthusiasm.<</if>> <<if $arcologies[0].FSGenderRadicalistDecoration == 100>>Every single one of the slaves is female by virtue of her fuckable asshole. <<elseif $arcologies[0].FSGenderFundamentalistSMR == 1>>Almost every citizen is an upstanding man, while the slave population is almost completely female.<</if>> -<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>>Close relationships between citizens and slaves, especially slave siblings, are common.<</if>> +<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>>Close relationships between citizens and slaves, especially slave siblings, are common. +<<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>>Close relationships between citizens, slaves and siblings are common.<</if>> <<if $arcologies[0].FSSubjugationistLawME == 1>>$arcologies[0].FSSubjugationistRace subhumans form a majority of the slaves.<</if>> <<if $arcologies[0].FSChattelReligionistLaw == 1>>The slave population as a whole is unusually accepting of its station.<</if>> <<if $arcologies[0].FSPaternalistLaw == 1>>The slaves are well cared for, and it can sometimes be difficult to tell slaves from citizens. @@ -679,6 +680,10 @@ Its lingua franca is $language. <</if>> <</for>> +<<if $cheatMode == 1>> + <br><br>[[Cheat Edit Neighboring Arcologies|MOD_Edit Neighbor Arcology Cheat]] +<</if>> + <br> <</replace>> diff --git a/src/uncategorized/arcologyOpinion.tw b/src/uncategorized/arcologyOpinion.tw index 1f678d2d03250fcd1db9bd19e3f4e5572ec3e910..676c8bf799d2314e88249e82f14ecdef7b6ad757 100644 --- a/src/uncategorized/arcologyOpinion.tw +++ b/src/uncategorized/arcologyOpinion.tw @@ -236,23 +236,27 @@ <</if>> <<elseif $activeArcology.FSEgyptianRevivalist != "unset">> <<if $targetArcology.FSEgyptianRevivalist != "unset">> - <<set $opinion += $activeArcology.FSEgyptianRevivalist>> - <<set $opinion += $targetArcology.FSEgyptianRevivalist>> + <<set $opinion += $activeArcology.FSEgyptianRevivalist>> + <<set $opinion += $targetArcology.FSEgyptianRevivalist>> <<elseif $targetArcology.FSRomanRevivalist != "unset">> - <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> - <<set $opinion -= $targetArcology.FSRomanRevivalist>> + <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> + <<set $opinion -= $targetArcology.FSRomanRevivalist>> <<elseif $targetArcology.FSAztecRevivalist != "unset">> - <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> - <<set $opinion -= $targetArcology.FSAztecRevivalist>> + <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> + <<set $opinion -= $targetArcology.FSAztecRevivalist>> <<elseif $targetArcology.FSEdoRevivalist != "unset">> - <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> - <<set $opinion -= $targetArcology.FSEdoRevivalist>> + <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> + <<set $opinion -= $targetArcology.FSEdoRevivalist>> <<elseif $targetArcology.FSArabianRevivalist != "unset">> - <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> - <<set $opinion -= $targetArcology.FSArabianRevivalist>> + <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> + <<set $opinion -= $targetArcology.FSArabianRevivalist>> <<elseif $targetArcology.FSChineseRevivalist != "unset">> - <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> - <<set $opinion -= $targetArcology.FSChineseRevivalist>> + <<set $opinion -= $activeArcology.FSEgyptianRevivalist>> + <<set $opinion -= $targetArcology.FSChineseRevivalist>> + <</if>> + <<if $targetArcology.FSIncestFetishist != "unset">> + <<set $opinion += $activeArcology.FSEgyptianRevivalist>> + <<set $opinion += $targetArcology.FSIncestFetishist>> <</if>> <<elseif $activeArcology.FSEdoRevivalist != "unset">> <<if $targetArcology.FSEdoRevivalist != "unset">> @@ -315,6 +319,16 @@ <<set $opinion -= $targetArcology.FSAztecRevivalist>> <</if>> <</if>> +<<if $activeArcology.FSIncestFetishist != "unset">> + <<if $targetArcology.FSIncestFetishist != "unset">> + <<set $opinion += $activeArcology.FSIncestFetishist>> + <<set $opinion += $targetArcology.FSIncestFetishist>> + <</if>> + <<if $targetArcology.FSEgyptianRevivalist != "unset">> + <<set $opinion += $activeArcology.FSIncestFetishist>> + <<set $opinion += $targetArcology.FSEgyptianRevivalist>> + <</if>> +<</if>> <<set $activeArcology = 0>> <<set $targetArcology = 0>> diff --git a/src/uncategorized/assistantAutosurgery.tw b/src/uncategorized/assistantAutosurgery.tw deleted file mode 100644 index ce7613ecee8e5347bafa387be8bcc66f65f43034..0000000000000000000000000000000000000000 --- a/src/uncategorized/assistantAutosurgery.tw +++ /dev/null @@ -1,236 +0,0 @@ -:: Assistant Autosurgery - -<<nobr>> - -<<set $surgeries = []>> - -<<if $HGTastes == 1>> - <<set $thisSurgery = {lactation: 0, cosmetic: 1, faceShape: "cute", lips: 10, hips: 0, hipsImplant: 0, butt: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, holes: 0}>> - <<elseif $HGTastes == 2>> - <<set $thisSurgery = {lactation: 0, cosmetic: 1, faceShape: "cute", lips: 60, hips: 0, hipsImplant: 0, butt: 4, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 1200, holes: 0}>> -<<else>> - <<set $thisSurgery = {lactation: 0, cosmetic: 1, faceShape: "cute", lips: 95, hips: 0, hipsImplant: 0, butt: 8, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 10000, holes: 2}>> -<</if>> - -<<set $seed = 0>> -<<for $seed == 0>> - -<<if ($slaves[$i].health <= 40)>> - <<set $seed = 1>> -<<else>> -<<if ($slaves[$i].lactation != 2) && ($thisSurgery.lactation == 1)>> - <<set $surgeries.push("lactation inducing implanted drugs")>> - <<set $slaves[$i].lactation = 2>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].anus > 3) && ($thisSurgery.cosmetic > 0)>> - <<set $surgeries.push("a restored anus")>> - <<set $slaves[$i].anus = 3>> - <<if $slaves[$i].analSkill > 10>> - <<set $slaves[$i].analSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].vagina > 3) && ($thisSurgery.cosmetic > 0)>> - <<set $surgeries.push("a restored pussy")>> - <<set $slaves[$i].vagina = 3>> - <<if $slaves[$i].vaginalSkill > 10>> - <<set $slaves[$i].vaginalSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].faceImplant == 0) && ($slaves[$i].face <= 95) && ($thisSurgery.cosmetic != 0)>> - <<set $surgeries.push("a nicer face")>> - <<if $slaves[$i].faceShape is "masculine">><<set $slaves[$i].faceShape = "androgynous">><</if>> - <<set $slaves[$i].faceImplant = 1>> - <<set $slaves[$i].face = Math.clamp($slaves[$i].face+20,-100,100)>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].ageImplant != 1) && ($slaves[$i].physicalAge >= 25) && ($thisSurgery.cosmetic != 0)>> - <<set $surgeries.push("an age lift")>> - <<set $slaves[$i].ageImplant = 1>> - <<if $slaves[$i].visualAge > 80>> - <<set $slaves[$i].visualAge -= 40>> - <<elseif $slaves[$i].visualAge >= 70>> - <<set $slaves[$i].visualAge -= 30>> - <<elseif $slaves[$i].visualAge > 50>> - <<set $slaves[$i].visualAge -= 20>> - <<elseif $slaves[$i].visualAge > 36>> - <<set $slaves[$i].visualAge -= 10>> - <<else>> - <<set $slaves[$i].visualAge -= 5>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].waist >= -10) && ($thisSurgery.cosmetic != 0)>> - <<set $surgeries.push("a narrower waist")>> - <<set $slaves[$i].waist -= 20>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].voice == 1) && ($slaves[$i].voiceImplant == 0) && ($thisSurgery.cosmetic != 0)>> - <<set $surgeries.push("a feminine voice")>> - <<set $slaves[$i].voice += 1>> - <<set $slaves[$i].voiceImplant += 1>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].lips < $thisSurgery.lips)>> - <<set $surgeries.push("bigger lips")>> - <<set $slaves[$i].lipsImplant += 10>> - <<set $slaves[$i].lips += 10>> - <<if $slaves[$i].oralSkill > 10>> - <<set $slaves[$i].oralSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].faceImplant == 1) && ($slaves[$i].face <= 95) && ($thisSurgery.cosmetic is 2)>> - <<set $surgeries.push("a nicer face")>> - <<if $slaves[$i].faceShape is "masculine">><<set $slaves[$i].faceShape to "androgynous">><</if>> - <<set $slaves[$i].faceImplant to 2>> - <<set $slaves[$i].face = Math.clamp($slaves[$i].face+20,-100,100)>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].faceImplant > 0) && ($slaves[$i].face <= 95) && ($surgeryUpgrade == 1) && ($thisSurgery.cosmetic is 2)>> - <<set $surgeries.push("a nicer face")>> - <<if $slaves[$i].faceShape is "masculine">><<set $slaves[$i].faceShape to "androgynous">><</if>> - <<set $slaves[$i].faceImplant to 2>> - <<set $slaves[$i].face = Math.clamp($slaves[$i].face+20,-100,100)>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].waist >= -95) && ($thisSurgery.cosmetic is 2) && ($seeExtreme == 1)>> - <<set $surgeries.push("a narrower waist")>> - <<set $slaves[$i].waist = Math.clamp($slaves[$i].waist-20,-100,100)>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].voice < 3) && ($slaves[$i].voiceImplant == 0) && ($thisSurgery.cosmetic == 2)>> - <<set $surgeries.push("a bimbo's voice")>> - <<set $slaves[$i].voice += 1>> - <<set $slaves[$i].voiceImplant += 1>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].butt <= 3) && ($slaves[$i].butt < $thisSurgery.butt)>> - <<set $surgeries.push("a bigger butt")>> - <<set $slaves[$i].buttImplant = 1>> - <<set $slaves[$i].butt += 1>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].boobs <= 600) && ($slaves[$i].lactation < 2) && ($slaves[$i].boobs+400 <= $thisSurgery.boobs)>> - <<set $surgeries.push("bigger boobs")>> - <<set $slaves[$i].boobsImplant += 400>> - <<set $slaves[$i].boobs += 400>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].boobs <= 600) && ($slaves[$i].lactation < 2) && ($slaves[$i].boobs+200 <= $thisSurgery.boobs)>> - <<set $surgeries.push("modestly bigger boobs")>> - <<set $slaves[$i].boobsImplant += 200>> - <<set $slaves[$i].boobs += 200>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].butt <= 5) && ($slaves[$i].butt < $thisSurgery.butt)>> - <<set $surgeries.push("a bigger butt")>> - <<set $slaves[$i].buttImplant = 1>> - <<set $slaves[$i].butt += 1>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].boobs <= 2000) && ($slaves[$i].lactation < 2) && ($slaves[$i].boobs+400 < $thisSurgery.boobs)>> - <<set $surgeries.push("bigger boobs")>> - <<set $slaves[$i].boobsImplant += 400>> - <<set $slaves[$i].boobs += 400>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].anus > 0) && ($surgeryUpgrade == 1) && ($thisSurgery.holes == 2)>> - <<set $surgeries.push("a virgin anus")>> - <<set $slaves[$i].anus = 0>> - <<if $slaves[$i].analSkill > 10>> - <<set $slaves[$i].analSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].vagina > 0) && ($surgeryUpgrade == 1) && ($thisSurgery.holes == 2)>> - <<set $surgeries.push("a virgin pussy")>> - <<set $slaves[$i].vagina = 0>> - <<if $slaves[$i].vaginalSkill > 10>> - <<set $slaves[$i].vaginalSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].anus > 1) && ($thisSurgery.holes == 1)>> - <<set $surgeries.push("a tighter anus")>> - <<set $slaves[$i].anus = 1>> - <<if $slaves[$i].analSkill > 10>> - <<set $slaves[$i].analSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].vagina > 1) && ($thisSurgery.holes == 1)>> - <<set $surgeries.push("a tighter pussy")>> - <<set $slaves[$i].vagina = 1>> - <<if $slaves[$i].vaginalSkill > 10>> - <<set $slaves[$i].vaginalSkill -= 10>> - <</if>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].butt <= 8) && ($slaves[$i].butt < $thisSurgery.butt)>> - <<set $surgeries.push("a bigger butt")>> - <<set $slaves[$i].buttImplant = 1>> - <<set $slaves[$i].butt += 1>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<elseif ($slaves[$i].boobs <= 9000) && ($slaves[$i].lactation < 2) && ($slaves[$i].boobs < $thisSurgery.boobs)>> - <<set $surgeries.push("bigger boobs")>> - <<set $slaves[$i].boobsImplant += 200>> - <<set $slaves[$i].boobs += 200>> - <<set $cash -= $surgeryCost>> - <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> - <<if $PC.medicine < 100 && random($PC.medicine,100) > 50>><<set $PC.medicine += .5, set $slaves[$i].health -= 7>><<else>><<set $PC.medicine += .1, set $slaves[$i].health -= 9>><</if>> -<<else>> - <<set $seed = 1>> -<</if>> -<</if>> - -<</for>> - -<<if $surgeries.length > 0>> - -<<set $surgeriesDisplay = "">> - -<<for $j = 0; $j < $surgeries.length; $j++>> - <<set $seed = $surgeries[$j]>> - <<set $surgeriesDisplay = ($surgeriesDisplay + $seed)>> - <<if $j < $surgeries.length-2>> - <<set $surgeriesDisplay = ($surgeriesDisplay + ", ")>> - <<elseif $j < $surgeries.length-1>> - <<if $surgeries.length > 2>> - <<set $surgeriesDisplay = ($surgeriesDisplay + ", and ")>> - <<else>> - <<set $surgeriesDisplay = ($surgeriesDisplay + " and ")>> - <</if>> - <</if>> -<</for>> - -<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>>, ordered to apply surgery at will, gives $slaves[$i].slaveName @@.lime;$surgeriesDisplay.@@ - -<</if>> - -<</nobr>> diff --git a/src/uncategorized/assistantEvents.tw b/src/uncategorized/assistantEvents.tw index 812ccaa9dff00f94d34a98df2a9928125a7b8a04..071cac18a9dfe7362a9793c2a156507edb9e385a 100644 --- a/src/uncategorized/assistantEvents.tw +++ b/src/uncategorized/assistantEvents.tw @@ -818,7 +818,7 @@ of your personal assistant pops up on the nearest screen. "<<if $PC.title != 0> <<elseif $arcologies[0].FSRestart != "unset">> casts a contraceptive spell; her pussy vanishes. <<elseif $arcologies[0].FSBodyPurist != "unset">> - casts a purifying spell; nothing happens, at first. The front of her robes, above her lower belly, steadily becoming transparent. Moments later, her skin joins in, revealing a inactive egg vibrator concealed in her pussy. $assistantName squeals in embarrassment and hurries offscreen. + casts a purifying spell; nothing happens, at first. The front of her robes, above her lower belly, steadily becomes transparent. Moments later, her skin joins in, revealing a inactive egg vibrator concealed in her pussy. $assistantName squeals in embarrassment and hurries offscreen. <<elseif $arcologies[0].FSTransformationFetishist != "unset">> casts a spell to inflate her breasts; they rapidly swell, along with her ass, belly, thighs and lips until she looks like an overinflated blowup doll. She struggles to bring a rubbery arm to her O-shaped lips before giving up and rebounding back into place; she really is a blowup sex doll! <<elseif $arcologies[0].FSYouthPreferentialist != "unset">> @@ -1070,7 +1070,7 @@ and asks, "May I have a name?" <<case "incubus">> She cums hard at your response. "Excellent <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>! I can't wait to hear it shouted out of the next girl I plow!" She says, ready to cum again. <<case "succubus">> - She hops up and down, jiggling in all the right places. "I can't wait to here you talking dirty using my new name, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>!" + She hops up and down, jiggling in all the right places. "I can't wait to hear you talking dirty using my new name, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>!" <<case "imp">> She crashes to the ground in shock before rolling into a kneel. "Thank you so much <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>!" She shouts, face to the ground, "If you want me to do anything, and I mean 'anything', I'm all yours." She tosses you a wink. <<case "witch">> @@ -1510,7 +1510,7 @@ __Personal Assistant and Market Assistant relationship styles:__ <<case "imp">> and her would make a sexy couple. $assistantName claps her hands, smirking mischievously and asking the market assistant. "Do you like hot wax?" "You know it!" The short haired imp winks. "I've got a pair of nipple clamps and a whip with your name on it." $assistantName laughs, "I'm in love already." <<case "witch">> - a lovely student. $assistantName looks her over. "Want to taste my love potion?" "Only if you'll taste my love fluids in return!" The market assistant cheekily replies. + is her new student. $assistantName looks her over. "Want to taste my love potion?" "Only if you'll taste my love fluids in return!" The market assistant cheekily replies. <<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">> would be a lovely vessel for young. $assistantName wastes no time to unraveling and entangling the excited new girl. "My my, aren't you frisky?" She flirts, caressing a rather phallic tentacle. "I bet you'd love to fill me with these, wouldn't you?" She squirms, her skirt falling down low enough to reveal her moist pussy. "Fill me! Be my lover! My body is YOURS!" $assistantName drives as many tentacles into her body as physically possible before enclosing the lust crazed girl within her body. $assistantName reverts to her human figure, albeit with an immense, pulsating stomach, and begins to slowly waddle back to her lair. <<case "amazon">> diff --git a/src/uncategorized/autosurgerySettings.tw b/src/uncategorized/autosurgerySettings.tw index a2b1d6ab0b43792c53d6c42c6beb427b678fc2f3..d3cbdf8375f5536fdda2e7d16aedfbdcc2ef11d7 100644 --- a/src/uncategorized/autosurgerySettings.tw +++ b/src/uncategorized/autosurgerySettings.tw @@ -135,12 +135,22 @@ Cosmetic surgery: ''invasive.'' <<elseif ($currentRule.surgery.cosmetic == 1)>> ''subtle.'' -<<else>> +<<elseif $currentRule.surgery.cosmetic == 0>> ''none.'' +<<else>> + ''off.'' <</if>> <br> +<<if ($currentRule.surgery.cosmetic !== "nds")>> + <<link "No default setting">> + <<set $currentRule.surgery.cosmetic = "nds">> + <<RASurgeryChangeCosmetic>> + <</link>> | +<<else>> + Off | +<</if>> <<if ($currentRule.surgery.cosmetic !== 0)>> <<link "None">> <<set $currentRule.surgery.cosmetic = 0>> @@ -240,6 +250,14 @@ Lip implants: </span> <br><br> +<<if $bellyImplants >= 1>> + Belly/Uterus implant: ''<span id = "bimpl">no default setting</span>.'' + <br> + <<rbutton "$currentRule.surgery.bellyImplant" "no default setting" "bimpl" "don't do anything">> No changes | + <<rbutton "$currentRule.surgery.bellyImplant" "install" "bimpl" "if possible install implant">> Install | + <<rbutton "$currentRule.surgery.bellyImplant" "remove" "bimpl" "remove installed implant">> Remove + <br><br> +<</if>> Buttock implants: <span id = "butt"> @@ -398,18 +416,18 @@ Orifice tightening: <<elseif ($currentRule.surgery.holes == 1)>> ''hole tightening'' will be applied. <<else>> - ''none.'' + ''No default setting.'' <</if>> <br> -<<if ($currentRule.surgery.holes != 0)>> - <<link "Off">> - <<set $currentRule.surgery.holes = 0>> +<<if ($currentRule.surgery.holes != "nds")>> + <<link "No default setting">> + <<set $currentRule.surgery.holes = "nds">> <<RASurgeryChangeHoles>> <</link>> | <<else>> - Off | + No default setting | <</if>> <<if ($currentRule.surgery.holes != 1)>> <<link "Tightening">> @@ -440,9 +458,9 @@ Orifice tightening: <</if>> <br> -<<if ($currentRule.surgery.bodyhair != 0)>> +<<if ($currentRule.surgery.bodyhair != "nds")>> <<link "No default setting">> - <<set $currentRule.surgery.bodyhair = 0>> + <<set $currentRule.surgery.bodyhair = "nds">> <<RASurgeryBodyHair>> <</link>> | <<else>> @@ -479,9 +497,9 @@ Orifice tightening: <</if>> <br> -<<if ($currentRule.surgery.hair != 0)>> +<<if ($currentRule.surgery.hair != "nds")>> <<link "No default setting">> - <<set $currentRule.surgery.hair = 0>> + <<set $currentRule.surgery.hair = "nds">> <<RASurgeryHair>> <</link>> | <<else>> diff --git a/src/uncategorized/barracks.tw b/src/uncategorized/barracks.tw index ecf16cdc64926274fa46104a9caf477b6934186b..582b6cc9de9f8642da8b4ed3da1bd635bbacf00d 100644 --- a/src/uncategorized/barracks.tw +++ b/src/uncategorized/barracks.tw @@ -157,7 +157,7 @@ You head up a deck, to the staff area, and up one more, to look into the living <<if $mercenariesHelpCorp > 0>> <br><br> - As you leave, a squad moves thunderously into the bay, fresh from a slave raid on behalf of your corporation. Most of their captures have been dropped off with the corporate receivers, but they've been given a pretty girl who isn't a good training prospect for the corporate brand, a common reward. The squad looks after their weapons and armor first, an inviolable rule, and as they do, they leave their naked slave standing in the middle of the bay, ignored. She isn't even bound, but she's standing nude and alone amongst modern mercenaries, so she knows that resistance is futile. So she does the only thing left available to her,try to cover herself with her hands and cry. + As you leave, a squad moves thunderously into the bay, fresh from a slave raid on behalf of your corporation. Most of their captures have been dropped off with the corporate receivers, but they've been given a pretty girl who isn't a good training prospect for the corporate brand, a common reward. The squad looks after their weapons and armor first, an inviolable rule, and as they do, they leave their naked slave standing in the middle of the bay, ignored. She isn't even bound, but she's standing nude and alone amongst modern mercenaries, so she knows that resistance is futile. So she does the only thing left available to her, try to cover herself with her hands and cry. <</if>> <br><br> diff --git a/src/uncategorized/bodyModRulesAssistantSettings.tw b/src/uncategorized/bodyModRulesAssistantSettings.tw index 56cda64a821d21d99b1f8ba9f94960ad3dfb05c4..c04fa06f4988d4d224287d758ba69a66799f7021 100644 --- a/src/uncategorized/bodyModRulesAssistantSettings.tw +++ b/src/uncategorized/bodyModRulesAssistantSettings.tw @@ -623,6 +623,11 @@ Other: <<set $brandTarget = "back">> <<RAChangeBrandTarget>> <</link>> +| +<<link "Lower Back">> +<<set $brandTarget = "lower back">> +<<RAChangeBrandTarget>> +<</link>> <br> <span id = "branddesign"> diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw index 3381fcdef4e7c4b72fe321e7acba1ac937419993..97a8c27cdac0f97a596df727107f68ecc23cf23f 100644 --- a/src/uncategorized/bodyModification.tw +++ b/src/uncategorized/bodyModification.tw @@ -1772,12 +1772,13 @@ Choose a site for branding: | [[Belly|Body Modification][$brandTarget = "belly"]] | [[Pubic Mound|Body Modification][$brandTarget = "pubic mound"]] | [[Back|Body Modification][$brandTarget = "back"]] +| [[Lower Back|Body Modification][$brandTarget = "lower back"]] /* Branding expansion contributed by Anon1888 */ <br> -<<if ($brandTarget == "neck" || $brandTarget == "chest" || $brandTarget == "belly" || $brandTarget == "pubic mound" || $brandTarget == "back")>> +<<if ($brandTarget == "neck" || $brandTarget == "chest" || $brandTarget == "belly" || $brandTarget == "pubic mound" || $brandTarget == "back" || $brandTarget == "lower back")>> [[Brand|Body Modification][$brandApplied = 1,$activeSlave.brand = $brandDesign,$activeSlave.brandLocation = $brandTarget,$cash -= $modCost,$degradation += 10]] with $brandDesign on the $brandTarget. <<else>> Brand $object now with ''$brandDesign'' on the diff --git a/src/uncategorized/brothelReport.tw b/src/uncategorized/brothelReport.tw index 8da690e68239e157e65aa2171d1e54b1dd2dec97..ba3e7d6a25be0a07c562f5e51c3fa490d2879361 100644 --- a/src/uncategorized/brothelReport.tw +++ b/src/uncategorized/brothelReport.tw @@ -6,7 +6,7 @@ <<SlaveSort $BrothiIDs>> <<set _DL = $BrothiIDs.length, $brothelSlaves = _DL, _SL = $slaves.length, $legendaryWhoreID = 0, $madamCashBonus = 0, _FLsFetish = 0, _profits = 0>> <<set $legendaryWombID = 0>> -<<set _modded = 0, _old = 0, _pure = 0, _slim = 0, _stacked = 0, _unmodded = 0, _XX = 0, _XY = 0, _young = 0, _pregYes = 0, _pregNo = 0, _minBonus = 50, _maxBonus = 150>> +<<set _modded = 0, _old = 0, _pure = 0, _slim = 0, _implanted = 0, _stacked = 0, _unmodded = 0, _XX = 0, _XY = 0, _young = 0, _pregYes = 0, _pregNo = 0, _minBonus = 50, _maxBonus = 150>> <!-- Statistics gathering --> <<set $facility = $facility || {}, $facility.brothel = initFacilityStatistics($facility.brothel)>> diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw index 907b01a531d8339086281a5aeb7de70e18820276..addeef16f6ec1eba263910d6eb0fe045120d2e29 100644 --- a/src/uncategorized/buySlaves.tw +++ b/src/uncategorized/buySlaves.tw @@ -55,7 +55,7 @@ __Sex Slave Purchase Options__ <<for _i = 0; _i < $arcologies.length; _i++>> <<if $arcologies[_i].direction != 0>> <br> <<print '[[Slaves from|Slave Markets][$slaveMarket = "neighbor", $numArcology = ' + _i + ']]'>> - ''$arcologies[_i].name'' + '' $arcologies[_i].name'' <<if $cash > _minimumFive>> | <<print '[[(x5)|Bulk Slave Generate][$slaveMarket = "neighbor", $introType = "bulk", $numSlaves = 5, $numArcology = '+_i+']]'>> <</if>> diff --git a/src/uncategorized/clinicReport.tw b/src/uncategorized/clinicReport.tw index ca26c4d59e274326a474ae7526856ae6b71838bc..44ec5e6c270019ac6a838e0834561f0d9d40e23d 100644 --- a/src/uncategorized/clinicReport.tw +++ b/src/uncategorized/clinicReport.tw @@ -180,7 +180,7 @@ <<else>> <<set $slaves[$i].devotion -= 5, $slaves[$i].trust -= 10>> <</if>> - <<if $slaves[$i].preg >= 31 && $slaves[$i].pregControl == "speed up">> + <<if $slaves[$i].preg >= 35 && $slaves[$i].pregControl == "speed up">> <<set $slaves[$i].pregControl = "none">> ''@@.pink;$slaves[$i].slaveName's@@'' child is ready to pop out of her womb, ''@@.yellow;her course of rapid gestation agents is finished''. <</if>> diff --git a/src/uncategorized/costs.tw b/src/uncategorized/costs.tw index 8be656bbfb3d251be19bcfbd4c7a5705677fe797..1eba11db155dee518b743db2eb7051608a58621d 100644 --- a/src/uncategorized/costs.tw +++ b/src/uncategorized/costs.tw @@ -196,7 +196,7 @@ <</if>> <<switch $slaves[$i].diet>> -<<case "XX" "XY">> +<<case "XX" "XY" "fertility">> <<set $costs += 25>> <<case "cleansing">> <<set $costs += 50>> @@ -468,7 +468,7 @@ <<if $PC.actualAge >= $IsInPrimePC && $PC.actualAge < $IsPastPrimePC>> <<set _cost = 10000*$AgeEffectOnTrainerPricingPC>> -<<if ($personalAttention == "trading") || ($personalAttention == "warfare") || ($personalAttention == "slaving") || ($personalAttention == "engineering") || ($personalAttention == "medicine")>> +<<if ($personalAttention == "trading") || ($personalAttention == "warfare") || ($personalAttention == "slaving") || ($personalAttention == "engineering") || ($personalAttention == "medicine") || ($personalAttention == "hacking")>> <<set $costs += _cost>> <</if>> <</if>> diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw index d1bd5c778cb6169f176887b30d9c6ca21fbc9de0..06206c2781dcd73ab3cb2ac67a074808454f5403 100644 --- a/src/uncategorized/costsReport.tw +++ b/src/uncategorized/costsReport.tw @@ -30,14 +30,14 @@ <<if $citizenOrphanageTotal+$privateOrphanageTotal > 0>> You are paying <<if $citizenOrphanageTotal > 0>> - <<print cashFormat($citizenOrphanageTotal*100)>> for education of $citizenOrphanageTotal of your slaves' children in citizen schools<<if $privateOrphanageTotal > 0>>, and<<else>>.<</if>> + <<print cashFormat($citizenOrphanageTotal*100)>> for education of <<print commaNum($citizenOrphanageTotal)>> of your slaves' children in citizen schools<<if $privateOrphanageTotal > 0>>, and<<else>>.<</if>> <</if>> <<if $privateOrphanageTotal > 0>> - <<print cashFormat($privateOrphanageTotal*500)>> for private tutelage of $privateOrphanageTotal of your slaves' children. + <<print cashFormat($privateOrphanageTotal*500)>> for private tutelage of <<print commaNum($privateOrphanageTotal)>> of your slaves' children. <</if>> <</if>> <<if $breederOrphanageTotal > 0>> - Since $breederOrphanageTotal of your slaves' children are being raised into productive members of society in a soceity funded school, you pay a <<print cashFormat(50)>> usage fee. + Since <<print commaNum($breederOrphanageTotal)>> of your slaves' children are being raised into productive members of society in a soceity funded school, you pay a <<print cashFormat(50)>> usage fee. <</if>> <<if $peacekeepers != 0>> @@ -212,7 +212,7 @@ <<if $PC.actualAge >= $IsInPrimePC && $PC.actualAge < $IsPastPrimePC>> <br> <br> -<<if ($personalAttention == "trading") || ($personalAttention == "warfare") || ($personalAttention == "slaving") || ($personalAttention == "engineering") || ($personalAttention == "medicine")>> +<<if ($personalAttention == "trading") || ($personalAttention == "warfare") || ($personalAttention == "slaving") || ($personalAttention == "engineering") || ($personalAttention == "medicine") || ($personalAttention == "hacking")>> <<set _cost = 10000*$AgeEffectOnTrainerPricingPC>> <<switch $personalAttention>> <br> @@ -226,6 +226,8 @@ __Engineering__ <<case medicine>> __Medicine__ +<<case hacking>> + __Hacking__ <</switch>> trainer fees: <<print cashFormat(_cost)>> <br> @@ -360,6 +362,9 @@ trainer fees: <<print cashFormat(_cost)>> <<case "cleansing">> <br> Chemical cleansing diet: <<print cashFormat(50)>> <<set $individualCosts += 50>> + <<case "fertility">> + <br> Specialized fertility diet: <<print cashFormat(25)>> + <<set $individualCosts += 50>> <</switch>> <<if $boobAccessibility != 1>> <<if ($slaves[$i].boobs > 20000)>> @@ -404,7 +409,7 @@ trainer fees: <<print cashFormat(_cost)>> <<if !canSee($slaves[$i]) && ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>> <br> Increased living expenses due to lack of sight: <<print cashFormat(50)>> <<set $individualCosts += 50>> - <<elseif $slaves[$i].eyes <= -1>> + <<elseif $slaves[$i].eyes <= -1 && $slaves[$i].eyewear != "corrective glasses" && $slaves[$i].eyewear != "corrective contacts">> <br> Increased living expenses due to poor vision: <<print cashFormat(25)>> <<set $individualCosts += 25>> <<elseif ($slaves[$i].eyewear == "blurring glasses") || ($slaves[$i].eyewear == "blurring contacts")>> @@ -500,7 +505,7 @@ trainer fees: <<print cashFormat(_cost)>> <br> Intensive drugs: <<print cashFormat($drugsCost*5)>> <<set $individualCosts += $drugsCost*5>> <<case "sag-B-gone">> - <br> Questionable infomercial creams: <<print cashFormat(($drugsCost/10))>> + <br> Questionable infomercial creams: <<print cashFormat(Math.trunc($drugsCost/10))>> <<set $individualCosts += ($drugsCost/10)>> <<case "no drugs" "none">> <<default>> @@ -513,7 +518,7 @@ trainer fees: <<print cashFormat(_cost)>> <<set $individualCosts += $drugsCost+($slaves[$i].curatives*$drugsCost)>> <</if>> <<if ($slaves[$i].aphrodisiacs !== 0)>> - <br> Aphrodisiacs/Anaphrodisiacs: <<print cashFormat(($drugsCost*Math.abs($slaves[$i].aphrodisiacs)))>> + <br> Aphrodisiacs/Anaphrodisiacs: <<print cashFormat(Math.trunc($drugsCost*Math.abs($slaves[$i].aphrodisiacs)))>> <<set $individualCosts += $drugsCost*Math.abs($slaves[$i].aphrodisiacs)>> <</if>> <<if ($slaves[$i].hormones != 0)>> @@ -530,7 +535,7 @@ trainer fees: <<print cashFormat(_cost)>> <<set $individualCosts += $slaves[$i].pornFameSpending>> <</if>> <</if>> - <br> __Total__: <<print cashFormat(($individualCosts))>> + <br> __Total__: <<print cashFormat(Math.trunc($individualCosts))>> <br> <</for>> diff --git a/src/uncategorized/customSlave.tw b/src/uncategorized/customSlave.tw index 153d647526bdeeb47c08bd5405af8323890e29de..ffbd85402dbe903aa6ee57f95f9948c848185134 100644 --- a/src/uncategorized/customSlave.tw +++ b/src/uncategorized/customSlave.tw @@ -203,11 +203,11 @@ <br> <span id = "voice"> -<<if $customSlave.voice == 3>>high, girly voice. -<<elseif $customSlave.voice == 2>>feminine voice. -<<elseif $customSlave.voice == 1>>deep voice. -<<elseif $customSlave.voice == 0>>mute. -<<elseif $customSlave.voice == -1>>Voice is unimportant. +<<if $customSlave.voice == 3>>High, girly voice. +<<elseif $customSlave.voice == 2>>Feminine voice. +<<elseif $customSlave.voice == 1>>Deep voice. +<<elseif $customSlave.voice == 0>>Mute. +<<else>>Voice is unimportant. <</if>> </span> <<link "high, girly voice">> @@ -274,7 +274,7 @@ <span id = "weight"> <<if $customSlave.weight == -50>>Very thin. -<<elseif $customSlave.weight == -15>>thin. +<<elseif $customSlave.weight == -15>>Thin. <<elseif $customSlave.weight == 0>>Average weight. <<elseif $customSlave.weight == 15>>Chubby. <<elseif $customSlave.weight == 50>>Plump. diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw index a981ff8f3aed9a0434f75f47707bba7af868c25d..1ca0743f12796a647d31e73e2de450622cbb9d0d 100644 --- a/src/uncategorized/dairyReport.tw +++ b/src/uncategorized/dairyReport.tw @@ -62,7 +62,8 @@ <<set $i = $slaveIndices[$DairyiIDs[_dI]]>> <<if (canImpreg($slaves[$i], $Milkmaid))>> <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = $Milkmaid.ID, $slaves[$i].pregKnown = 1, $slaves[$i].pregWeek = 1, _milkmaidImpregnated++, $slaves[$i].vaginalCount += 10, $vaginalTotal += 10>> - <<SetPregType $slaves[$i]>> + <<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $Milkmaid.ID, 1)>> <</if>> <</for>> <<if _milkmaidImpregnated > 0>> @@ -762,6 +763,7 @@ <<set $slaves[$i].pregType = either(1, 1, 1, 1, 2, 2, 2, 3, 3, 4)>> <</if>> <<set $slaves[$i].pregSource = -2>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -2, 1)>> <</if>> /*closes eggType */ <<if ($slaves[$i].vagina == 0)>> <<set $slaves[$i].vagina++>> diff --git a/src/uncategorized/dispensary.tw b/src/uncategorized/dispensary.tw index 72fc83892dd877b722e0b20c6ca3bbfd00d2e53d..92a5434686fd9d2587711a1a36cc1d137835bfc1 100644 --- a/src/uncategorized/dispensary.tw +++ b/src/uncategorized/dispensary.tw @@ -1,6 +1,7 @@ :: Dispensary [nobr] -<<set $nextButton = "Back", $nextLink = "Manage Penthouse", $showEncyclopedia = 1, $encyclopedia = "The Pharmaceutical Fab.">> +<<HSM>> +<<set $nextButton = "Back", $nextLink = "Manage Penthouse", $showEncyclopedia = 1, $encyclopedia = "The Pharmaceutical Fab.", _PCSkillCheck = Math.max($upgradeMultiplierMedicine, $HackingSkillMultiplier)>> <br> The Dispensary @@ -28,7 +29,7 @@ The Dispensary <br> The Organ Farm <hr> -<<if ($organFarmUpgrade < 3) && ($rep <= 10000*$upgradeMultiplierMedicine)>> +<<if ($organFarmUpgrade < 3) && ($rep <= 10000*_PCSkillCheck)>> //You lack the reputation to access experimental organ farm parts// <br> <<elseif $dispensaryUpgrade == 0 && $organFarmUpgrade == 2>> @@ -37,19 +38,19 @@ The Organ Farm <<elseif $organs.length > 0>> //The organ farm can not be upgraded while it is use// <br> -<<elseif ($organFarmUpgrade == 2) && ($rep > 10000*$upgradeMultiplierMedicine)>> - [[Upgrade to the organ farm to the cutting edge model|Dispensary][$cash -= 150000*$upgradeMultiplierMedicine, $organFarmUpgrade = 3]] - //Costs <<print cashFormat(150000*$upgradeMultiplierMedicine)>>// +<<elseif ($organFarmUpgrade == 2) && ($rep > 10000*_PCSkillCheck)>> + [[Upgrade to the organ farm to the cutting edge model|Dispensary][$cash -= 150000*_PCSkillCheck, $organFarmUpgrade = 3]] + //Costs <<print cashFormat(150000*_PCSkillCheck)>>// <br> //Will allow the organ farm to rapidly grow organs without risk to the implantee's health.// <br> -<<elseif ($organFarmUpgrade == 1) && ($rep > 10000*$upgradeMultiplierMedicine)>> - [[Upgrade the organ farm with an experimental growth accelerator|Dispensary][$cash -= 50000*$upgradeMultiplierMedicine, $organFarmUpgrade = 2]] - //Costs <<print cashFormat(50000*$upgradeMultiplierMedicine)>>// +<<elseif ($organFarmUpgrade == 1) && ($rep > 10000*_PCSkillCheck)>> + [[Upgrade the organ farm with an experimental growth accelerator|Dispensary][$cash -= 50000*_PCSkillCheck, $organFarmUpgrade = 2]] + //Costs <<print cashFormat(50000*_PCSkillCheck)>>// <br> //Will allow the organ farm to quickly grow organs. Implanted organs may cause health issues.// <br> -<<elseif ($organFarmUpgrade == 0) && ($rep > 10000*$upgradeMultiplierMedicine)>> - [[Upgrade the fabricator with an experimental organ farm|Dispensary][$cash -= 50000*$upgradeMultiplierMedicine, $organFarmUpgrade = 1]] - //Costs <<print cashFormat(50000*$upgradeMultiplierMedicine)>>// +<<elseif ($organFarmUpgrade == 0) && ($rep > 10000*_PCSkillCheck)>> + [[Upgrade the fabricator with an experimental organ farm|Dispensary][$cash -= 50000*_PCSkillCheck, $organFarmUpgrade = 1]] + //Costs <<print cashFormat(50000*_PCSkillCheck)>>// <br> //Will allow the fabrication of tailored organs using the autosurgery.// <br> <</if>> @@ -121,13 +122,13 @@ It is currently working on the following organs: <</if>> <<if $organFarmUpgrade > 0>> - <<if ($youngerOvaries != 1) && ($rep <= 10000*$upgradeMultiplierMedicine)>> + <<if ($youngerOvaries != 1) && ($rep <= 10000*_PCSkillCheck)>> //You lack the reputation to access designs for cloning fertile ovaries for menopausal slaves.// <br> - <<elseif ($youngerOvaries != 1) && ($rep > 10000*$upgradeMultiplierMedicine)>> - [[Purchase designs for cloning fertile ovaries for menopausal slaves|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine, $youngerOvaries = 1]] - //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>// - <br> //Will allow the growth of younger, fertile ovaries for menopausal slaves. Restored fertility will only last a couple years at most.// + <<elseif ($youngerOvaries != 1) && ($rep > 10000*_PCSkillCheck)>> + [[Purchase designs for cloning fertile ovaries for menopausal slaves|Dispensary][$cash -= 30000*_PCSkillCheck, $youngerOvaries = 1]] + //Costs <<print cashFormat(30000*_PCSkillCheck)>>// + <br> //Will allow the growth of younger, fertile ovaries for menopausal slaves. Restored fertility will only last for a couple years at most.// <br> <<elseif ($youngerOvaries > 0)>> The fabricator is capable of growing fertile ovaries for postmenopausal slaves. @@ -142,8 +143,8 @@ The fabricator is producing <<if $injectionUpgrade == 0>> standard growth hormones. <<if $rep > 6000>> - [[Purchase data on prototype growth hormone tests|Dispensary][$cash -= 25000*$upgradeMultiplierMedicine, $injectionUpgrade = 1]] - //Costs <<print cashFormat(25000*$upgradeMultiplierMedicine)>>// + [[Purchase data on prototype growth hormone tests|Dispensary][$cash -= 25000*_PCSkillCheck, $injectionUpgrade = 1]] + //Costs <<print cashFormat(25000*_PCSkillCheck)>>// <br> //Should improve the reliability of growth injections of all kinds.// <br> <<else>> @@ -153,8 +154,8 @@ The fabricator is producing <<elseif $injectionUpgrade == 1>> prototype growth hormones. <<if $rep > 10000>> - [[Upgrade the fabricator to customize each slave's growth hormones|Dispensary][$cash -= 50000*$upgradeMultiplierMedicine, $injectionUpgrade = 2]] - //Costs <<print cashFormat(50000*$upgradeMultiplierMedicine)>>// + [[Upgrade the fabricator to customize each slave's growth hormones|Dispensary][$cash -= 50000*_PCSkillCheck, $injectionUpgrade = 2]] + //Costs <<print cashFormat(50000*_PCSkillCheck)>>// <br> //Should improve the reliability of growth injections of all kinds.// <<else>> //You lack the reputation to obtain prototype fabricator upgrades// @@ -162,8 +163,8 @@ The fabricator is producing <<elseif $injectionUpgrade == 2>> prototype growth hormones. <<if $rep > 14000>> - [[Upgrade the fabricator with prototype biomechanical microfactories|Dispensary][$cash -= 100000*$upgradeMultiplierMedicine, $injectionUpgrade = 3]] - //Costs <<print cashFormat(100000*$upgradeMultiplierMedicine)>>// + [[Upgrade the fabricator with prototype biomechanical microfactories|Dispensary][$cash -= 100000*_PCSkillCheck, $injectionUpgrade = 3]] + //Costs <<print cashFormat(100000*_PCSkillCheck)>>// <br> //Should improve the reliability of growth injections of all kinds.// <br> <<else>> @@ -179,8 +180,8 @@ The fabricator is producing <<if $hormoneUpgradeMood == 0>> standardized hormone replacement therapies. <<if $rep > 2000>> - [[Upgrade for individualized therapy|Dispensary][$cash -= 10000*$upgradeMultiplierMedicine, $hormoneUpgradeMood = 1]] - //Costs <<print cashFormat(10000*$upgradeMultiplierMedicine)>>// + [[Upgrade for individualized therapy|Dispensary][$cash -= 10000*_PCSkillCheck, $hormoneUpgradeMood = 1]] + //Costs <<print cashFormat(10000*_PCSkillCheck)>>// <br> //Should eliminate the occasional moodiness and sexual disinterest caused by generalized therapy.// <br> <<else>> @@ -196,8 +197,8 @@ The hormone replacement therapies <<if $hormoneUpgradePower == 0>> are traditional: they're formulated to mimic natural hormones. <<if $rep > 4000>> - [[Purchase data on advanced HRT|Dispensary][$cash -= 25000*$upgradeMultiplierMedicine, $hormoneUpgradePower = 1]] - //Costs <<print cashFormat(25000*$upgradeMultiplierMedicine)>>// + [[Purchase data on advanced HRT|Dispensary][$cash -= 25000*_PCSkillCheck, $hormoneUpgradePower = 1]] + //Costs <<print cashFormat(25000*_PCSkillCheck)>>// <br> //Should increase the power of hormone therapies.// <br> <<else>> @@ -213,8 +214,8 @@ The hormone replacement therapies <<if $hormoneUpgradeShrinkage == 0>> are broad-spectrum. <<if $rep > 4000>> - [[Purchase data on targeted HRT|Dispensary][$cash -= 25000*$upgradeMultiplierMedicine, $hormoneUpgradeShrinkage = 1]] - //Costs <<print cashFormat(25000*$upgradeMultiplierMedicine)>>// + [[Purchase data on targeted HRT|Dispensary][$cash -= 25000*_PCSkillCheck, $hormoneUpgradeShrinkage = 1]] + //Costs <<print cashFormat(25000*_PCSkillCheck)>>// <br> //Should reduce atrophy of organs corresponding to original sex.// <br> <<else>> @@ -227,10 +228,10 @@ The hormone replacement therapies <</if>> <<if $precociousPuberty == 1>> - <<if ($pubertyHormones == 0) && ($rep <= 4500*$upgradeMultiplierMedicine)>> + <<if ($pubertyHormones == 0) && ($rep <= 4500*_PCSkillCheck)>> //You lack the reputation to fund forced puberty drugs// <br> - <<elseif ($pubertyHormones == 0) && ($rep > 4500*$upgradeMultiplierMedicine)>> + <<elseif ($pubertyHormones == 0) && ($rep > 4500*_PCSkillCheck)>> [[Fund research into powerful hormonal injections to jumpstart puberty|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine, $pubertyHormones = 1]] //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>// <br> //Will allow the production of powerful hormonal drugs designed to force a slave through puberty without regard for side effects. // @@ -245,10 +246,10 @@ The hormone replacement therapies Dietary Upgrades <hr> <<if $feeder == 1>> - <<if ($dietXXY == 0) && ($rep <= 3500*$upgradeMultiplierMedicine)>> + <<if ($dietXXY == 0) && ($rep <= 3500*_PCSkillCheck)>> //You lack the reputation to fund research into hermaphrodite hormones// <br> - <<elseif ($dietXXY == 0) && ($rep > 3500*$upgradeMultiplierMedicine)>> + <<elseif ($dietXXY == 0) && ($rep > 3500*_PCSkillCheck)>> [[Fund research into developing hermaphrodite hormone therapies|Dispensary][$cash -= 10000*$upgradeMultiplierMedicine, $dietXXY = 1]] //Costs <<print cashFormat(10000*$upgradeMultiplierMedicine)>>// <br> //Will allow for specially balanced meals to be served in the cafeteria designed to promote both halves of a herm's sexuality. // @@ -263,8 +264,8 @@ Dietary Upgrades <</if>> <<if $cumProDiet == 0>> - [[Purchase recipes to encourage cum production|Dispensary][$cash -= 5000*$upgradeMultiplierMedicine, $cumProDiet = 1]] - //Costs <<print cashFormat(5000*$upgradeMultiplierMedicine)>>// + [[Purchase recipes to encourage cum production|Dispensary][$cash -= 5000*_PCSkillCheck, $cumProDiet = 1]] + //Costs <<print cashFormat(5000*_PCSkillCheck)>>// <br> //Will allow for specially designed meals to be served in the cafeteria to promote cum production.// <br> <<elseif $cumProDiet == 1>> @@ -272,9 +273,19 @@ Dietary Upgrades <br> <</if>> +<<if $dietFertility != 1>> + [[Purchase recipes to encourage ovulation|Dispensary][$cash -= 5000*_PCSkillCheck, $dietFertility = 1]] + //Costs <<print cashFormat(3000*_PCSkillCheck)>>// + <br> //Will allow for specially designed meals to be served in the cafeteria to promote slave fertility.// + <br> +<<elseif $dietFertility == 1>> + The fabricator is producing meals to be served in the cafeteria designed to promote slave fertility. + <br> +<</if>> + <<if $dietCleanse == 0>> - [[Purchase cleansing recipes to lessen genome damage|Dispensary][$cash -= 10000*$upgradeMultiplierMedicine, $dietCleanse = 1]] - //Costs <<print cashFormat(10000*$upgradeMultiplierMedicine)>>// + [[Purchase cleansing recipes to lessen genome damage|Dispensary][$cash -= 10000*_PCSkillCheck, $dietCleanse = 1]] + //Costs <<print cashFormat(10000*_PCSkillCheck)>>// <br> //Will allow for specially designed meals to be served in the cafeteria to counteract excessive drug use.// <br> <<elseif $dietCleanse == 1>> @@ -285,9 +296,9 @@ Dietary Upgrades <br> Pharmacological Upgrades <hr> -<<if ($curativeUpgrade == 0) && ($rep > 6000*$upgradeMultiplierMedicine)>> - [[Purchase data on advanced curatives|Dispensary][$cash -= 25000*$upgradeMultiplierMedicine, $curativeUpgrade = 1]] - //Costs <<print cashFormat(25000*$upgradeMultiplierMedicine)>>// +<<if ($curativeUpgrade == 0) && ($rep > 6000*_PCSkillCheck)>> + [[Purchase data on advanced curatives|Dispensary][$cash -= 25000*_PCSkillCheck, $curativeUpgrade = 1]] + //Costs <<print cashFormat(25000*_PCSkillCheck)>>// <br> //Should improve the effectiveness of curative treatment.// <br> <<elseif ($curativeUpgrade == 1)>> @@ -295,9 +306,9 @@ Pharmacological Upgrades <br> <</if>> -<<if ($growthStim == 0) && ($rep > 6000*$upgradeMultiplierMedicine)>> - [[Purchase data on growth stimulants|Dispensary][$cash -= 20000*$upgradeMultiplierMedicine, $growthStim = 1]] - //Costs <<print cashFormat(20000*$upgradeMultiplierMedicine)>>// +<<if ($growthStim == 0) && ($rep > 6000*_PCSkillCheck)>> + [[Purchase data on growth stimulants|Dispensary][$cash -= 20000*_PCSkillCheck, $growthStim = 1]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// <br> //Will allow the manufacturing of drugs to encourage growth in slave height.// <br> <<elseif ($growthStim == 1)>> @@ -305,9 +316,9 @@ Pharmacological Upgrades <br> <</if>> -<<if ($aphrodisiacUpgradeRefine == 0) && ($rep > 6000*$upgradeMultiplierMedicine)>> - [[Purchase data on refined aphrodisiacs|Dispensary][$cash -= 20000*$upgradeMultiplierMedicine, $aphrodisiacUpgradeRefine = 1]] - //Costs <<print cashFormat(20000*$upgradeMultiplierMedicine)>>// +<<if ($aphrodisiacUpgradeRefine == 0) && ($rep > 6000*_PCSkillCheck)>> + [[Purchase data on refined aphrodisiacs|Dispensary][$cash -= 20000*_PCSkillCheck, $aphrodisiacUpgradeRefine = 1]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// <br> //Will prevent most physical side effects of aphrodisiacs. Once the formulas are changed they can not be changed back.// <br> <<elseif ($aphrodisiacUpgradeRefine == 1)>> @@ -315,9 +326,9 @@ Pharmacological Upgrades <br> <</if>> -<<if ($aphrodisiacUpgrade == 0) && ($rep > 6000*$upgradeMultiplierMedicine)>> - [[Purchase data on aphrodisiac withdrawal treatment|Dispensary][$cash -= 10000*$upgradeMultiplierMedicine, $aphrodisiacUpgrade = 1]] - //Costs <<print cashFormat(10000*$upgradeMultiplierMedicine)>>// +<<if ($aphrodisiacUpgrade == 0) && ($rep > 6000*_PCSkillCheck)>> + [[Purchase data on aphrodisiac withdrawal treatment|Dispensary][$cash -= 10000*_PCSkillCheck, $aphrodisiacUpgrade = 1]] + //Costs <<print cashFormat(10000*_PCSkillCheck)>>// <br> //Should prevent most negative effects of withdrawal.// <br> <<elseif ($aphrodisiacUpgrade == 1)>> @@ -327,7 +338,7 @@ Pharmacological Upgrades <<if ($healthyDrugsUpgrade == 0)>> <<if (($organFarmUpgrade >= 1) && ($injectionUpgrade != 0) && ($curativeUpgrade == 1) && ($aphrodisiacUpgrade == 1))>> - <<if ($rep >= 15000*$upgradeMultiplierMedicine)>> + <<if ($rep >= 15000*_PCSkillCheck)>> [[Fund research into drug formulations without negative physical side effects|Dispensary][$cash -= 500000*$upgradeMultiplierMedicine,$healthyDrugsUpgrade = 1]] //Costs <<print cashFormat(500000*$upgradeMultiplierMedicine)>>// <br> //Will prevent the negative side effects of excessive drug usage on your slaves.// @@ -356,12 +367,12 @@ Pharmacological Upgrades Fertility Focused Pharmacology <hr> <<if $seeHyperPreg == 1>> - <<if $superFertilityDrugs == 1 && ($rep > 10000*$upgradeMultiplierMedicine) && $pregSpeedControl != 1>> + <<if $superFertilityDrugs == 1 && ($rep > 10000*_PCSkillCheck) && $pregSpeedControl != 1>> [[Fund research pregnancy speed control methods|Dispensary][$cash -= 200000*$upgradeMultiplierMedicine, $pregSpeedControl = 1, $clinicSpeedGestation = 0]] //Costs <<print cashFormat(200000*$upgradeMultiplierMedicine)>>// <br> // Fund underground research labs to develop methods for controlling pregnancy progress. // <br> - <<elseif ($rep <= 10000*$upgradeMultiplierMedicine) && $pregSpeedControl != 1>> + <<elseif ($rep <= 10000*_PCSkillCheck) && $pregSpeedControl != 1>> //You lack the reputation required to contact underground research labs to develop methods for controlling pregnancy progress.// <br> <<elseif ($pregSpeedControl == 1)>> @@ -369,12 +380,12 @@ Fertility Focused Pharmacology <br> <</if>> <<elseif $birthsTotal > 10>> - <<if ($rep > 10000*$upgradeMultiplierMedicine) && $pregSpeedControl != 1>> + <<if ($rep > 10000*_PCSkillCheck) && $pregSpeedControl != 1>> [[Fund research pregnancy speed control methods|Dispensary][$cash -= 200000*$upgradeMultiplierMedicine, $pregSpeedControl = 1, $clinicSpeedGestation = 0]] //Costs <<print cashFormat(200000*$upgradeMultiplierMedicine)>>// <br> // Fund underground research labs to develop methods for controlling pregnancy progress. // <br> - <<elseif ($rep <= 10000*$upgradeMultiplierMedicine) && $pregSpeedControl != 1>> + <<elseif ($rep <= 10000*_PCSkillCheck) && $pregSpeedControl != 1>> //You lack the reputation required to contact underground research labs to develop methods for controlling pregnancy progress.// <br> <<elseif ($pregSpeedControl == 1)>> @@ -386,9 +397,9 @@ Fertility Focused Pharmacology <br> <</if>> -<<if ($superFertilityDrugs == 0) && ($rep > 2500*$upgradeMultiplierMedicine) && $seeHyperPreg == 1>> - [[Purchase data on powerful fertility drugs|Dispensary][$cash -= 20000*$upgradeMultiplierMedicine, $superFertilityDrugs = 1]] - //Costs <<print cashFormat(20000*$upgradeMultiplierMedicine)>>// +<<if ($superFertilityDrugs == 0) && ($rep > 2500*_PCSkillCheck) && $seeHyperPreg == 1>> + [[Purchase data on powerful fertility drugs|Dispensary][$cash -= 20000*_PCSkillCheck, $superFertilityDrugs = 1]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// <br> //Should improve the likelihood of conception and multiples. // <br> <<elseif ($superFertilityDrugs == 1)>> @@ -400,14 +411,14 @@ Fertility Focused Pharmacology <br> Implant Production <hr> -<<if ($ImplantProductionUpgrade == 0) && ($rep <= 2000*$upgradeMultiplierMedicine)>> +<<if ($ImplantProductionUpgrade == 0) && ($rep <= 2000*_PCSkillCheck)>> //You lack the reputation to access experimental implant manufacturer parts// <br> <</if>> -<<if ($ImplantProductionUpgrade == 0) && ($rep > 2000*$upgradeMultiplierMedicine)>> - [[Upgrade the fabricator with an experimental implant manufacturer|Dispensary][$cash -= 20000*$upgradeMultiplierMedicine, $ImplantProductionUpgrade = 1]] - //Costs <<print cashFormat(20000*$upgradeMultiplierMedicine)>>// +<<if ($ImplantProductionUpgrade == 0) && ($rep > 2000*_PCSkillCheck)>> + [[Upgrade the fabricator with an experimental implant manufacturer|Dispensary][$cash -= 20000*_PCSkillCheck, $ImplantProductionUpgrade = 1]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// <br> //Will allow the fabrication of special implants using the autosurgery.// <br> <<elseif ($ImplantProductionUpgrade > 0)>> @@ -416,13 +427,13 @@ Implant Production <</if>> <<if $ImplantProductionUpgrade == 1 && $seeHyperPreg == 1 && $seeExtreme == 1 && $seePreg != 0>> - <<if ($permaPregImplant == 0) and ($rep <= 4000*$upgradeMultiplierMedicine)>> + <<if ($permaPregImplant == 0) and ($rep <= 4000*_PCSkillCheck)>> //You lack the reputation to access experimental pregnancy generator schematics// <br> <</if>> - <<if ($permaPregImplant == 0) && ($rep > 4000*$upgradeMultiplierMedicine)>> - [[Purchase schematics for an experimental implantable pregnancy generator|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine, $permaPregImplant = 1]] - //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>// + <<if ($permaPregImplant == 0) && ($rep > 4000*_PCSkillCheck)>> + [[Purchase schematics for an experimental implantable pregnancy generator|Dispensary][$cash -= 30000*_PCSkillCheck, $permaPregImplant = 1]] + //Costs <<print cashFormat(30000*_PCSkillCheck)>>// <br> //Will allow the fabrication of implants that force perpetual pregnancy.// <br> <<elseif ($permaPregImplant > 0)>> @@ -432,29 +443,29 @@ Implant Production <</if>> <<if $ImplantProductionUpgrade == 1>> - <<if ($bellyImplants == 0) && ($rep <= 2000*$upgradeMultiplierMedicine)>> + <<if ($bellyImplants == 0) && ($rep <= 2000*_PCSkillCheck)>> //You lack the reputation to access experimental fillable abdominal implants// <br> <</if>> - <<if ($bellyImplants == 0) && ($rep > 2000*$upgradeMultiplierMedicine)>> - [[Purchase schematics for fillable abdominal implants|Dispensary][$cash -= 20000*$upgradeMultiplierMedicine, $bellyImplants = 1]] - //Costs <<print cashFormat(20000*$upgradeMultiplierMedicine)>>// + <<if ($bellyImplants == 0) && ($rep > 2000*_PCSkillCheck)>> + [[Purchase schematics for fillable abdominal implants|Dispensary][$cash -= 20000*_PCSkillCheck, $bellyImplants = 1]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// <br> //Will allow the fabrication of fillable abdominal implants using the autosurgery.// <br> <<elseif ($bellyImplants > 0)>> The fabricator is capable of crafting fillable abdominal implants. <br> <</if>> - - <<if ($bellyImplants == 1) && ($cervixImplants != 1) && ($rep <= 6000*$upgradeMultiplierMedicine)>> /* show only after belly implants already researched */ - //You lack the reputation to access schematics far experimental cervix filter micropumps for abdominal implants// + + <<if ($bellyImplants == 1) && ($cervixImplants != 1) && ($rep <= 6000*_PCSkillCheck)>> /* show only after belly implants already researched */ + //You lack the reputation to access experimental cervix filter micropumps schematics for abdominal implants// <br> <</if>> - <<if ($bellyImplants == 1) && ($cervixImplants != 1) && ($rep >6000*$upgradeMultiplierMedicine)>> /* nanotech like technology much more impressive and costly than simple implant */ - [[Purchase schematics for cervix filter micropumps|Dispensary][$cash -= 70000*$upgradeMultiplierMedicine, $cervixImplants = 1]] - //Costs <<print cashFormat(70000*$upgradeMultiplierMedicine)>>// + <<if ($bellyImplants == 1) && ($cervixImplants != 1) && ($rep >6000*_PCSkillCheck)>> /* nanotech like technology much more impressive and costly than simple implant */ + [[Purchase schematics for cervix filter micropumps|Dispensary][$cash -= 70000*_PCSkillCheck, $cervixImplants = 1]] + //Costs <<print cashFormat(70000*_PCSkillCheck)>>// <br> //Will allow the fabrication of cervix filter micropumps for fillable abdominal implants using the autosurgery.// <br> <<elseif ($cervixImplants > 0)>> @@ -462,13 +473,13 @@ Implant Production <br> <</if>> - <<if ($prostateImplants != 1) && ($rep <= 3000*$upgradeMultiplierMedicine)>> + <<if ($prostateImplants != 1) && ($rep <= 3000*_PCSkillCheck)>> //You lack the reputation to access plans for prostate implants// <br> <</if>> - <<if ($prostateImplants != 1) && ($rep > 3000*$upgradeMultiplierMedicine)>> - [[Purchase plans for ejaculation enhancing prostate implants|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine, $prostateImplants = 1]] - //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>// + <<if ($prostateImplants != 1) && ($rep > 3000*_PCSkillCheck)>> + [[Purchase plans for ejaculation enhancing prostate implants|Dispensary][$cash -= 30000*_PCSkillCheck, $prostateImplants = 1]] + //Costs <<print cashFormat(30000*_PCSkillCheck)>>// <br> //Will allow the fabrication of a prostate implant designed to stimulate fluid production for massive ejaculations. Beware of leaking and dehydration.// <br> <<elseif ($prostateImplants > 0)>> @@ -476,14 +487,14 @@ Implant Production <br> <</if>> - <<if ($meshImplants != 1) && ($rep <= 10000*$upgradeMultiplierMedicine)>> + <<if ($meshImplants != 1) && ($rep <= 10000*_PCSkillCheck)>> //You lack the reputation to access plans for supportive breast implants// - + <</if>> - <<if ($meshImplants != 1) && ($rep > 10000*$upgradeMultiplierMedicine)>> - [[Purchase plans for supportive mesh breast implants|Dispensary][$cash -= 40000*$upgradeMultiplierMedicine, $meshImplants = 1]] - //Costs <<print cashFormat(40000*$upgradeMultiplierMedicine)>>// - <br> //Will allow the fabrication of an organic, supportive mesh breast implants.// + <<if ($meshImplants != 1) && ($rep > 10000*_PCSkillCheck)>> + [[Purchase plans for supportive mesh breast implants|Dispensary][$cash -= 40000*_PCSkillCheck, $meshImplants = 1]] + //Costs <<print cashFormat(40000*_PCSkillCheck)>>// + <br> //Will allow the fabrication of organic and supportive mesh breast implants.// <br> <<elseif ($meshImplants > 0)>> The fabricator is capable of producing supportive mesh breast implants. @@ -491,7 +502,7 @@ Implant Production <</if>> <</if>> - + <br> Future Societies Research <hr> @@ -499,7 +510,7 @@ Future Societies Research <<if $seePreg != 0>> <<if $arcologies[0].FSGenderRadicalistDecoration == 100 && $organFarmUpgrade > 0>> <<if ($arcologies[0].FSGenderRadicalistResearch == 0)>> - <<if ($rep >= 10000*$upgradeMultiplierMedicine)>> + <<if ($rep >= 10000*_PCSkillCheck)>> [[Fund research into developing male pregnancy methods|Dispensary][$cash -= 50000*$upgradeMultiplierMedicine,$arcologies[0].FSGenderRadicalistResearch = 1]] //Costs <<print cashFormat(50000*$upgradeMultiplierMedicine)>>. Will allow cloning and production of anal uteri and ovaries.// <br> <<else>> @@ -520,12 +531,12 @@ Future Societies Research <</if>> <<if ($ImplantProductionUpgrade == 1) and ($arcologies[0].FSTransformationFetishistDecoration >= 100)>> - <<if ($arcologies[0].FSTransformationFetishistResearch == 0) and ($rep <= 5000*$upgradeMultiplierMedicine)>> + <<if ($arcologies[0].FSTransformationFetishistResearch == 0) and ($rep <= 5000*_PCSkillCheck)>> //You lack the reputation to access experimental gigantic implants and elasticizing filler.// <br> <<elseif ($arcologies[0].FSTransformationFetishistResearch == 0)>> - [[Purchase data on gigantic implants and elasticizing filler|Dispensary][$cash -= 20000*$upgradeMultiplierMedicine, $arcologies[0].FSTransformationFetishistResearch = 1]] - //Costs <<print cashFormat(20000*$upgradeMultiplierMedicine)>>// + [[Purchase data on gigantic implants and elasticizing filler|Dispensary][$cash -= 20000*_PCSkillCheck, $arcologies[0].FSTransformationFetishistResearch = 1]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// <br> //Will allow the fabrication of gigantic implants using the autosurgery and filler capable of overfilling existing fillable implants.// <br> <<elseif ($arcologies[0].FSTransformationFetishistResearch > 0)>> @@ -542,7 +553,7 @@ Future Societies Research <<if $arcologies[0].FSAssetExpansionistDecoration == 100>> <<if ($arcologies[0].FSAssetExpansionistResearch == 0)>> - <<if ($rep >= 5000*$upgradeMultiplierMedicine)>> + <<if ($rep >= 5000*_PCSkillCheck)>> [[Fund research into drug formulations for growth without limit|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine,$arcologies[0].FSAssetExpansionistResearch = 1]] //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>. Will allow creation of drugs to push assets to unthinkable sizes.// <br> <<else>> @@ -563,7 +574,7 @@ Future Societies Research <<if $arcologies[0].FSSlimnessEnthusiastDecoration == 100>> <<if ($arcologies[0].FSSlimnessEnthusiastResearch == 0)>> - <<if ($rep >= 5000*$upgradeMultiplierMedicine)>> + <<if ($rep >= 5000*_PCSkillCheck)>> [[Fund research into drug formulations for slimming slaves|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine,$arcologies[0].FSSlimnessEnthusiastResearch = 1]] //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>. Will allow creation of drugs to shrink assets.// <br> <<else>> @@ -584,7 +595,7 @@ Future Societies Research <<if $arcologies[0].FSYouthPreferentialistDecoration == 100>> <<if ($arcologies[0].FSYouthPreferentialistResearch == 0)>> - <<if ($rep >= 5000*$upgradeMultiplierMedicine)>> + <<if ($rep >= 5000*_PCSkillCheck)>> [[Fund research into skin care designed to reverse the effects of aging|Dispensary][$cash -= 30000*$upgradeMultiplierMedicine,$arcologies[0].FSYouthPreferentialistResearch = 1]] //Costs <<print cashFormat(30000*$upgradeMultiplierMedicine)>>. Will allow creation of beauty creams designed to make slaves look young again.// <br> <<else>> @@ -605,8 +616,8 @@ Future Societies Research <<if $arcologies[0].FSHedonisticDecadenceDecoration == 100>> <<if ($arcologies[0].FSHedonisticDecadenceResearch == 0)>> - <<if ($rep >= 5000*$upgradeMultiplierMedicine)>> - [[Purchase recipes for concentrated, shaped slave food|Dispensary][$cash -= 50000*$upgradeMultiplierMedicine,$arcologies[0].FSHedonisticDecadenceResearch = 1]] //Costs <<print cashFormat(50000*$upgradeMultiplierMedicine)>>. Will allow production of solid slave food in various familiar shapes and flavors. Addictive and a little fatty.<<if $arcologies[0].FSDegradationist != "unset">> Since your slaves don't deserve luxuries, a modified recipe formulated to cause severe stomach cramps minutes after ingestion will be developed.<</if>> // + <<if ($rep >= 5000*_PCSkillCheck)>> + [[Purchase recipes for concentrated, shaped slave food|Dispensary][$cash -= 50000*_PCSkillCheck,$arcologies[0].FSHedonisticDecadenceResearch = 1]] //Costs <<print cashFormat(50000*_PCSkillCheck)>>. Will allow production of solid slave food in various familiar shapes and flavors. Addictive and a little fatty.<<if $arcologies[0].FSDegradationist != "unset">> Since your slaves don't deserve luxuries, a modified recipe formulated to cause severe stomach cramps minutes after ingestion will be developed.<</if>> // <br> <<else>> // You lack the reputation to access the research necessary to purchase concentrated, shaped slave food recipes. // @@ -615,8 +626,8 @@ Future Societies Research <<else>> The fabricator has been upgraded to manufacture tasty, extremely addictive, solid slave food in various familiar shapes and flavors. While they look and taste like real food, their consistency is all wrong. Slaves gorging on them are likely to experience steady weight gain.<<if $arcologies[0].FSDegradationist != "unset">> Since your slaves don't deserve luxuries, all food crafted will cause severe stomach cramps minutes after ingestion. Coupled with their addictive nature, it ought to be quite torturous.<</if>> <<if $arcologies[0].FSSlimnessEnthusiast > 50 && $arcologies[0].FSHedonisticDecadenceDietResearch == 0>> - [[Purchase diet recipes|Dispensary][$cash -= 10000*$upgradeMultiplierMedicine,$arcologies[0].FSHedonisticDecadenceDietResearch = 1]] - //Costs <<print cashFormat(10000*$upgradeMultiplierMedicine)>>// + [[Purchase diet recipes|Dispensary][$cash -= 10000*_PCSkillCheck,$arcologies[0].FSHedonisticDecadenceDietResearch = 1]] + //Costs <<print cashFormat(10000*_PCSkillCheck)>>// <br> Will prevent rampant weight gain from ruining your slim slaves. <br> <<elseif $arcologies[0].FSHedonisticDecadenceDietResearch == 1>> @@ -627,8 +638,8 @@ Future Societies Research <<elseif $arcologies[0].FSHedonisticDecadenceResearch == 1>> The fabricator has been upgraded to manufacture tasty, extremely addictive, solid slave food in various familiar shapes and flavors. While they look and taste like real food, their consistency is all wrong. Slaves gorging on them are likely to experience steady weight gain.<<if $arcologies[0].FSDegradationist != "unset">> Since your slaves don't deserve luxuries, all food crafted will cause severe stomach cramps minutes after ingestion. Coupled with their addictive nature, it ought to be quite torturous.<</if>> <<if $arcologies[0].FSSlimnessEnthusiast > 50 && $arcologies[0].FSHedonisticDecadenceDietResearch == 0>> - [[Purchase diet recipes|Dispensary][$cash -= 10000*$upgradeMultiplierMedicine,$arcologies[0].FSHedonisticDecadenceDietResearch = 1]] - //Costs <<print cashFormat(10000*$upgradeMultiplierMedicine)>>// + [[Purchase diet recipes|Dispensary][$cash -= 10000*_PCSkillCheck,$arcologies[0].FSHedonisticDecadenceDietResearch = 1]] + //Costs <<print cashFormat(10000*_PCSkillCheck)>>// <br> Will prevent rampant weight gain from ruining your slim slaves. <br> <<elseif $arcologies[0].FSHedonisticDecadenceDietResearch == 1>> diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index 2b91c0ca55d41bbe07a6dc32e862f221eea095c9..aa72244016fae0fe0313db62f6effb1bc7945f4e 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -21,6 +21,7 @@ <<if $sexualOpeness == 1>> <<set $penetrativeUseWeight++>> <</if>> +<<HSM>> <<for _i = 0; _i < $slaves.length; _i++>> <<if $slaves[_i].inflationMethod == 1 || $slaves[_i].inflationMethod == 2>> @@ -136,8 +137,9 @@ <<set $PC.sexualEnergy += 2>> <</if>> <<if $PC.preg > 0>> - <<set $PC.preg++, $PC.pregWeek = $PC.preg>> - <<set _newBelly = getPregBellySize($PC)>> + <<set WombProgress($PC, 1)>> + <<set WombNormalizePreg($PC), $PC.pregWeek = $PC.preg>> + <<set _newBelly = WombGetVolume($PC)>> <<if _newBelly >= $PC.belly>> <<set $PC.belly = _newBelly>> <<elseif $PC.belly > 500>> diff --git a/src/uncategorized/exportAllRules.tw b/src/uncategorized/exportAllRules.tw index cc62cd57c769350e68c666a7ca37cec7b1860beb..be6267639804a81e454bb3b3dfbdb80cf839af6f 100644 --- a/src/uncategorized/exportAllRules.tw +++ b/src/uncategorized/exportAllRules.tw @@ -2,58 +2,12 @@ <<set $nextButton = "Continue", $nextLink = "Rules Assistant">> -//Copy one of following blocks for importing later. The first method is generated from a hand-maintained variable list and is not a complete export (at minimum, it omits auto-surgery rule settings). The second method (direct JSON) is automatic and guaranteed to export ALL rule variables, but may not work in some browsers. (Mostly old ones.)// - +//Copy one of following blocks for importing later. RA rules become too complex, only new (direct JSON) method guarantee proper result, but may not work in some browsers.// <br> -<br> __Default FC export method__: <br> - -<<set _length = $defaultRules.length>> - -<<for _r = _length - 1; _r >= 0; _r-->> -<<if $defaultRules[_r] == null>> - <<continue>> -<</if>> -<<set _currentRule = $defaultRules[_r]>> - -name: "_currentRule.name", -condition: "<<print unparseExpr(_currentRule.condition)>>", -releaseRules: "_currentRule.releaseRules", clitSetting: "_currentRule.clitSetting", clitSettingXY: "_currentRule.clitSettingXY", clitSettingXX: "_currentRule.clitSettingXX", clitSettingEnergy: "_currentRule.clitSettingEnergy", speechRules: "_currentRule.speechRules", clothes: "_currentRule.clothes", collar: "_currentRule.collar", shoes: "_currentRule.shoes", virginAccessory: "_currentRule.virginAccessory", aVirginAccessory: "_currentRule.aVirginAccessory", vaginalAccessory: "_currentRule.vaginalAccessory", dickAccessory: "_currentRule.dickAccessory", aVirginDickAccessory: "_currentRule.aVirginDickAccessory", bellyAccessory: "_currentRule.bellyAccessory", aVirginButtplug: "_currentRule.aVirginButtplug", buttplug: "_currentRule.buttplug", eyeColor: "_currentRule.eyeColor", makeup: "_currentRule.makeup", nails: "_currentRule.nails", hColor: "_currentRule.hColor", hLength: "_currentRule.hLength", hStyle: "_currentRule.hStyle", pubicHColor: "_currentRule.pubicHColor", pubicHStyle: "_currentRule.pubicHStyle", nipplesPiercing: "_currentRule.nipplesPiercing", areolaePiercing: "_currentRule.areolaePiercing", clitPiercing: "_currentRule.clitPiercing", vaginaLube: "_currentRule.vaginaLube", vaginaPiercing: "_currentRule.vaginaPiercing", dickPiercing: "_currentRule.dickPiercing", anusPiercing: "_currentRule.anusPiercing", lipsPiercing: "_currentRule.lipsPiercing", tonguePiercing: "_currentRule.tonguePiercing", earPiercing: "_currentRule.earPiercing", nosePiercing: "_currentRule.nosePiercing", eyebrowPiercing: "_currentRule.eyebrowPiercing", navelPiercing: "_currentRule.navelPiercing", corsetPiercing: "_currentRule.corsetPiercing", boobsTat: "_currentRule.boobsTat", buttTat: "_currentRule.buttTat", vaginaTat: "_currentRule.vaginaTat", dickTat: "_currentRule.dickTat", lipsTat: "_currentRule.lipsTat", anusTat: "_currentRule.anusTat", shouldersTat: "_currentRule.shouldersTat", armsTat: "_currentRule.armsTat", legsTat: "_currentRule.legsTat", backTat: "backTat", stampTat: "_currentRule.stampTat", curatives: "_currentRule.curatives", livingRules: "_currentRule.livingRules", relationshipRules: "_currentRule.relationshipRules", standardPunishment: "situational", standardReward: "situational", diet: "_currentRule.diet", dietCum: "_currentRule.dietCum", dietMilk: "_currentRule.dietMilk", muscles: "_currentRule.muscles", XY: "_currentRule.XY", XX: "_currentRule.XX", gelding: "_currentRule.gelding", preg: "_currentRule.preg", growth: "_currentRule.growth", aphrodisiacs: "_currentRule.aphrodisiacs", autoSurgery: _currentRule.autoSurgery, autoBrand: _currentRule.autoBrand, pornFameSpending: "_currentRule.pornFameSpending", dietGrowthSupport: _currentRule.dietGrowthSupport, eyewear: "_currentRule.eyewear", - -/* pregmod exclusive variables */ -underarmHColor: "_currentRule.underArmHColor", underArmHStyle: "_currentRule.underarmHStyle", -/* end pregmod variables */ -assignment: <<if ndef _currentRule.assignment || _currentRule.assignment.length < 1>>[],<<else>>_currentRule.assignment,<</if>> -excludeAssignment:<<if ndef _currentRule.excludeAssignment || _currentRule.excludeAssignment.length < 1>>[],<<else>> - [<<for _i = 0; _i < _currentRule.excludeAssignment.length; _i++>> - <<if _i > 0>>,<</if>>"_currentRule.excludeAssignment[_i]" - <</for>>], -<</if>> -setAssignment: "_currentRule.setAssignment", -facility: <<if ndef _currentRule.facility || _currentRule.facility.length < 1>>[],<<else>>_currentRule.facility,<</if>> -excludeFacility:<<if ndef _currentRule.excludeFacility || _currentRule.excludeFacility.length < 1>>[],<<else>> - [<<for _i = 0; _i < _currentRule.excludeFacility.length; _i++>> - <<if _i > 0>>,<</if>>"_currentRule.excludeFacility[_i]" - <</for>>], -<</if>> -assignFacility: "_currentRule.assignFacility", excludeSpecialSlaves: _currentRule.excludeSpecialSlaves, facilityRemove: _currentRule.facilityRemove, removalAssignment: "_currentRule.removalAssignment", -selectedSlaves: <<if ndef _currentRule.selectedSlaves || _currentRule.selectedSlaves.length < 1>>[],<<else>> - [<<for _i = 0; _i < _currentRule.selectedSlaves.length; _i++>> - <<if _i > 0>>,<</if>>_currentRule.selectedSlaves[_i] - <</for>>], -<</if>> -excludedSlaves: <<if ndef _currentRule.excludedSlaves || _currentRule.excludedSlaves.length < 1>>[]<<else>> - [<<for _i = 0; _i < _currentRule.excludedSlaves.length; _i++>> - <<if _i > 0>>,<</if>>_currentRule.excludedSlaves[_i] - <</for>>] -<</if>> -<br><br> -<</for>> - -<br> <br> __Direct JSON export method__: <br> - +<<set _length = $defaultRules.length>> <<for _r = _length - 1; _r >= 0; _r-->> <<if $defaultRules[_r] == null>> <<continue>> diff --git a/src/uncategorized/exportRule.tw b/src/uncategorized/exportRule.tw index ce782b49533026756aa087dd52cbda6527c6af84..4eb191c8685faf5ce2281976e8f1da8f6f26aeb4 100644 --- a/src/uncategorized/exportRule.tw +++ b/src/uncategorized/exportRule.tw @@ -2,48 +2,9 @@ <<set $nextButton = "Continue", $nextLink = "Rules Assistant">> -//Copy one of following blocks for importing later. The first method is generated from a hand-maintained variable list and is not a complete export (at minimum, it omits auto-surgery rule settings). The second method (direct JSON) is automatic and guaranteed to export ALL rule variables, but may not work in some browsers. (Mostly old ones.)// +//RA rules become too complex, only new (direct JSON) method guarantee proper result, but may not work in some browsers. (Mostly old ones.)// - -<br> -<br> __Default FC export method__: <br> - - -name: "$currentRule.name", -condition: "<<print unparseExpr($currentRule.condition)>>", -releaseRules: "$currentRule.releaseRules", clitSetting: "$currentRule.clitSetting", clitSettingXY: "$currentRule.clitSettingXY", clitSettingXX: "$currentRule.clitSettingXX", clitSettingEnergy: "$currentRule.clitSettingEnergy", speechRules: "$currentRule.speechRules", clothes: "$currentRule.clothes", collar: "$currentRule.collar", shoes: "$currentRule.shoes", virginAccessory: "$currentRule.virginAccessory", aVirginAccessory: "$currentRule.aVirginAccessory", vaginalAccessory: "$currentRule.vaginalAccessory", dickAccessory: "$currentRule.dickAccessory", aVirginDickAccessory: "$currentRule.aVirginDickAccessory", bellyAccessory: "$currentRule.bellyAccessory", aVirginButtplug: "$currentRule.aVirginButtplug", buttplug: "$currentRule.buttplug", eyeColor: "$currentRule.eyeColor", makeup: "$currentRule.makeup", nails: "$currentRule.nails", hColor: "$currentRule.hColor", hLength: "$currentRule.hLength", hStyle: "$currentRule.hStyle", pubicHColor: "$currentRule.pubicHColor", pubicHStyle: "$currentRule.pubicHStyle", nipplesPiercing: "$currentRule.nipplesPiercing", areolaePiercing: "$currentRule.areolaePiercing", clitPiercing: "$currentRule.clitPiercing", vaginaLube: "$currentRule.vaginaLube", vaginaPiercing: "$currentRule.vaginaPiercing", dickPiercing: "$currentRule.dickPiercing", anusPiercing: "$currentRule.anusPiercing", lipsPiercing: "$currentRule.lipsPiercing", tonguePiercing: "$currentRule.tonguePiercing", earPiercing: "$currentRule.earPiercing", nosePiercing: "$currentRule.nosePiercing", eyebrowPiercing: "$currentRule.eyebrowPiercing", navelPiercing: "$currentRule.navelPiercing", corsetPiercing: "$currentRule.corsetPiercing", boobsTat: "$currentRule.boobsTat", buttTat: "$currentRule.buttTat", vaginaTat: "$currentRule.vaginaTat", dickTat: "$currentRule.dickTat", lipsTat: "$currentRule.lipsTat", anusTat: "$currentRule.anusTat", shouldersTat: "$currentRule.shouldersTat", armsTat: "$currentRule.armsTat", legsTat: "$currentRule.legsTat", backTat: "backTat", stampTat: "$currentRule.stampTat", curatives: "$currentRule.curatives", livingRules: "$currentRule.livingRules", relationshipRules: "$currentRule.relationshipRules", standardPunishment: "situational", standardReward: "situational", diet: "$currentRule.diet", dietCum: "$currentRule.dietCum", dietMilk: "$currentRule.dietMilk", muscles: "$currentRule.muscles", XY: "$currentRule.XY", XX: "$currentRule.XX", gelding: "$currentRule.gelding", preg: "$currentRule.preg", growth: "$currentRule.growth", aphrodisiacs: "$currentRule.aphrodisiacs", autoSurgery: $currentRule.autoSurgery, autoBrand: $currentRule.autoBrand, pornFameSpending: "$currentRule.pornFameSpending", dietGrowthSupport: $currentRule.dietGrowthSupport, eyewear: "$currentRule.eyewear", - -/* pregmod exclusive variables */ -underarmHColor: "$currentRule.underArmHColor", underArmHStyle: "$currentRule.underarmHStyle", -/* end pregmod variables */ - -assignment: <<if ndef $currentRule.assignment || $currentRule.assignment.length < 1>>[],<<else>>$currentRule.assignment,<</if>> -excludeAssignment:<<if ndef $currentRule.excludeAssignment || $currentRule.excludeAssignment.length < 1>>[],<<else>> - [<<for _i = 0; _i < $currentRule.excludeAssignment.length; _i++>> - <<if _i > 0>>,<</if>>"$currentRule.excludeAssignment[_i]" - <</for>>], -<</if>> -setAssignment: "$currentRule.setAssignment", -facility: <<if ndef $currentRule.facility || $currentRule.facility.length < 1>>[],<<else>>$currentRule.facility,<</if>> -excludeFacility:<<if ndef $currentRule.excludeFacility || $currentRule.excludeFacility.length < 1>>[],<<else>> - [<<for _i = 0; _i < $currentRule.excludeFacility.length; _i++>> - <<if _i > 0>>,<</if>>"$currentRule.excludeFacility[_i]" - <</for>>], -<</if>> -assignFacility: "$currentRule.assignFacility", excludeSpecialSlaves: $currentRule.excludeSpecialSlaves, facilityRemove: $currentRule.facilityRemove, removalAssignment: "$currentRule.removalAssignment", -selectedSlaves: <<if ndef $currentRule.selectedSlaves || $currentRule.selectedSlaves.length < 1>>[],<<else>> - [<<for _i = 0; _i < $currentRule.selectedSlaves.length; _i++>> - <<if _i > 0>>,<</if>>$currentRule.selectedSlaves[_i] - <</for>>], -<</if>> -excludedSlaves: <<if ndef $currentRule.excludedSlaves || $currentRule.excludedSlaves.length < 1>>[]<<else>> - [<<for _i = 0; _i < $currentRule.excludedSlaves.length; _i++>> - <<if _i > 0>>,<</if>>$currentRule.excludedSlaves[_i] - <</for>>] -<</if>> - -<br> -<br> __Direct JSON export method__: <br> +<br> __Direct JSON export method__: <br><br> <div class="output"> <<set _jsonText = toJson($currentRule)>> diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw index c42af19a25cbbc976a5bfadd5b5711791c4583f1..d069c1b99be0464f2fb31f2142ab8ba231a54f58 100644 --- a/src/uncategorized/fsDevelopments.tw +++ b/src/uncategorized/fsDevelopments.tw @@ -640,6 +640,13 @@ With her $assistantAppearance appearance, $assistantName's public visibility mes <<set $arcologies[0].FSRestart = $FSLockinLevel>> <</if>> +/* warm up policy influence */ +<<if $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1 && $arcologies[0].FSEgyptianRevivalistInterest < 26>> + <<set $arcologies[0].FSEgyptianRevivalistInterest += $arcologies[0].FSEgyptianRevivalistIncestPolicy>> +<<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 0 && $arcologies[0].FSEgyptianRevivalistInterest > 0>> + <<set $arcologies[0].FSEgyptianRevivalistInterest-->> +<</if>> + <<if ($arcologies[0].FSSupremacistSMR + $arcologies[0].FSSubjugationistSMR + $arcologies[0].FSGenderRadicalistSMR + $arcologies[0].FSGenderFundamentalistSMR + $arcologies[0].FSPaternalistSMR + $arcologies[0].FSDegradationistSMR + $arcologies[0].FSBodyPuristSMR + $arcologies[0].FSTransformationFetishistSMR + $arcologies[0].FSYouthPreferentialistSMR + $arcologies[0].FSMaturityPreferentialistSMR + $arcologies[0].FSSlimnessEnthusiastSMR + $arcologies[0].FSAssetExpansionistSMR + $arcologies[0].FSPastoralistSMR + $arcologies[0].FSPhysicalIdealistSMR + $arcologies[0].FSChattelReligionistSMR + $arcologies[0].FSRomanRevivalistSMR + $arcologies[0].FSAztecRevivalistSMR + $arcologies[0].FSEgyptianRevivalistSMR + $arcologies[0].FSEdoRevivalistSMR + $arcologies[0].FSRepopulationFocusSMR + $arcologies[0].FSRestartSMR + $arcologies[0].FSHedonisticDecadenceSMR + $arcologies[0].FSArabianRevivalistSMR + $arcologies[0].FSChineseRevivalistSMR) > 0>> The slave market regulations help ensure the arcology's slaves fit within its society. <</if>> @@ -950,8 +957,8 @@ With her $assistantAppearance appearance, $assistantName's public visibility mes <</if>> <<if $arcologies[0].FSMaturityPreferentialist < 0>> <<set $arcologies[0].FSMaturityPreferentialist = "unset">><<set $FSCredits += 1>> - <<set $arcologies[0].FSYouthPreferentialistLaw = 0, $arcologies[0].FSYouthPreferentialistSMR = 0>> - <<if $assistantFSAppearance == "youth preferentialist">><<set $assistantFSAppearance = "default">><</if>> + <<set $arcologies[0].FSMaturityPreferentialistLaw = 0, $arcologies[0].FSMaturityPreferentialistSMR = 0>> + <<if $assistantFSAppearance == "maturity preferentialist">><<set $assistantFSAppearance = "default">><</if>> <<ClearFacilityDecorations>> @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ <<elseif $arcologies[0].FSMaturityPreferentialist > $arcologies[0].FSMaturityPreferentialistDecoration>> @@ -978,8 +985,8 @@ With her $assistantAppearance appearance, $assistantName's public visibility mes <</if>> <<if $arcologies[0].FSYouthPreferentialist < 0>> <<set $arcologies[0].FSYouthPreferentialist = "unset">><<set $FSCredits += 1>> - <<set $arcologies[0].FSMaturityPreferentialistLaw = 0, $arcologies[0].FSMaturityPreferentialistSMR = 0>> - <<if $assistantFSAppearance == "maturity preferentialist">><<set $assistantFSAppearance = "default">><</if>> + <<set $arcologies[0].FSYouthPreferentialistLaw = 0, $arcologies[0].FSYouthPreferentialistSMR = 0>> + <<if $assistantFSAppearance == "youth preferentialist">><<set $assistantFSAppearance = "default">><</if>> <<ClearFacilityDecorations>> @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ <<elseif $arcologies[0].FSYouthPreferentialist > $arcologies[0].FSYouthPreferentialistDecoration>> diff --git a/src/uncategorized/futureSocities.tw b/src/uncategorized/futureSocities.tw index ce513bd1b9692aa7b4f5edafd30da18ac98ddc26..8f40840ba71261a1a7ea324ac6e221426187e176 100644 --- a/src/uncategorized/futureSocities.tw +++ b/src/uncategorized/futureSocities.tw @@ -51,6 +51,9 @@ <<if ndef $arcologies[0].FSCummunism>> <<set $arcologies[0].FSCummunism = "unset">> <</if>> +<<if ndef $arcologies[0].FSIncestFetishist>> + <<set $arcologies[0].FSIncestFetishist = "unset">> +<</if>> <<if ndef $arcologies[0].FSPhysicalIdealist>> <<set $arcologies[0].FSPhysicalIdealist = "unset">> <</if>> @@ -629,22 +632,22 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<else>> <<if $FSCredits > 0>> - <br>[[Racial supremacism|Future Society][$arcologies[0].FSSupremacist = 4, $FSCredits -= 1]]: a belief in <<if $arcologies[0].FSSupremacistRace == 0>>the superiority of a chosen race<<else>>$arcologies[0].FSSupremacistRace superiority<</if>>. - <br> Select race: -<<if $arcologies[0].FSSupremacistRace != "white">>[[White|Future Society][$arcologies[0].FSSupremacistRace = "white"]]<<else>>White<</if>> | -<<if $arcologies[0].FSSupremacistRace != "asian">>[[Asian|Future Society][$arcologies[0].FSSupremacistRace = "asian"]]<<else>>Asian<</if>> | -<<if $arcologies[0].FSSupremacistRace != "latina">>[[Latino|Future Society][$arcologies[0].FSSupremacistRace = "latina"]]<<else>>Latino<</if>> | -<<if $arcologies[0].FSSupremacistRace != "middle eastern">>[[Middle Eastern|Future Society][$arcologies[0].FSSupremacistRace = "middle eastern"]]<<else>>Middle Eastern<</if>> | -<<if $arcologies[0].FSSupremacistRace != "black">>[[Black|Future Society][$arcologies[0].FSSupremacistRace = "black"]]<<else>>Black<</if>> | -<<if $arcologies[0].FSSupremacistRace != "indo-aryan">>[[Indo-Aryan|Future Society][$arcologies[0].FSSupremacistRace = "indo-aryan"]]<<else>>Indo-Aryan<</if>> | -<<if $arcologies[0].FSSupremacistRace != "amerindian">>[[Amerindian|Future Society][$arcologies[0].FSSupremacistRace = "amerindian"]]<<else>>Amerindian<</if>> | -<<if $arcologies[0].FSSupremacistRace != "pacific islander">>[[Pacific Islander|Future Society][$arcologies[0].FSSupremacistRace = "pacific islander"]]<<else>>Pacific Islander<</if>> | -<<if $arcologies[0].FSSupremacistRace != "malay">>[[Malay|Future Society][$arcologies[0].FSSupremacistRace = "malay"]]<<else>>Malay<</if>> | -<<if $arcologies[0].FSSupremacistRace != "southern european">>[[Southern European|Future Society][$arcologies[0].FSSupremacistRace = "southern european"]]<<else>>Southern European<</if>> | -<<if $arcologies[0].FSSupremacistRace != "semitic">>[[Semitic|Future Society][$arcologies[0].FSSupremacistRace = "semitic"]]<<else>>Semitic<</if>> | -<<if $arcologies[0].FSSupremacistRace != "mixed race">>[[Mixed Race|Future Society][$arcologies[0].FSSupremacistRace = "mixed race"]]<<else>>Mixed Race<</if>> + <br>[[Racial supremacism|Future Society][$arcologies[0].FSSupremacist = 4, $FSCredits -= 1]]: a belief in <<if $arcologies[0].FSSupremacistRace == 0>>the superiority of a chosen race<<else>>$arcologies[0].FSSupremacistRace superiority<</if>>. + <br> Select race: + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "white">>It is established that whites are inferior.<<elseif $arcologies[0].FSSupremacistRace != "white">>[[White|Future Society][$arcologies[0].FSSupremacistRace = "white"]]<<else>>White<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "asian">>It is established that asians are inferior.<<elseif $arcologies[0].FSSupremacistRace != "asian">>[[Asian|Future Society][$arcologies[0].FSSupremacistRace = "asian"]]<<else>>Asian<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "latina">>It is established that latinas are inferior.<<elseif $arcologies[0].FSSupremacistRace != "latina">>[[Latino|Future Society][$arcologies[0].FSSupremacistRace = "latina"]]<<else>>Latino<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "middle eastern">>It is established that middle easterners are inferior.<<elseif $arcologies[0].FSSupremacistRace != "middle eastern">>[[Middle Eastern|Future Society][$arcologies[0].FSSupremacistRace = "middle eastern"]]<<else>>Middle Eastern<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "black">>It is established that blacks are inferior.<<elseif $arcologies[0].FSSupremacistRace != "black">>[[Black|Future Society][$arcologies[0].FSSupremacistRace = "black"]]<<else>>Black<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "indo-aryan">>It is established that indo-aryans are inferior.<<elseif $arcologies[0].FSSupremacistRace != "indo-aryan">>[[Indo-Aryan|Future Society][$arcologies[0].FSSupremacistRace = "indo-aryan"]]<<else>>Indo-Aryan<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "amerindian">>It is established that amerindians are inferior.<<elseif $arcologies[0].FSSupremacistRace != "amerindian">>[[Amerindian|Future Society][$arcologies[0].FSSupremacistRace = "amerindian"]]<<else>>Amerindian<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "pacific islander">>It is established that pacific islanders are inferior.<<elseif $arcologies[0].FSSupremacistRace != "pacific islander">>[[Pacific Islander|Future Society][$arcologies[0].FSSupremacistRace = "pacific islander"]]<<else>>Pacific Islander<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "malay">>It is established that malay are inferior.<<elseif $arcologies[0].FSSupremacistRace != "malay">>[[Malay|Future Society][$arcologies[0].FSSupremacistRace = "malay"]]<<else>>Malay<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "southern european">>It is established that southern europeans are inferior.<<elseif $arcologies[0].FSSupremacistRace != "southern european">>[[Southern European|Future Society][$arcologies[0].FSSupremacistRace = "southern european"]]<<else>>Southern European<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "semitic">>It is established that semites are inferior.<<elseif $arcologies[0].FSSupremacistRace != "semitic">>[[Semitic|Future Society][$arcologies[0].FSSupremacistRace = "semitic"]]<<else>>Semitic<</if>> | + <<if $arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "mixed race">>It is established that those with mixed blood are inferior.<<elseif $arcologies[0].FSSupremacistRace != "mixed race">>[[Mixed Race|Future Society][$arcologies[0].FSSupremacistRace = "mixed race"]]<<else>>Mixed Race<</if>> <<else>> - /*//''Racial supremacism'': a belief in the superiority of a chosen race.//*/ + /*//''Racial supremacism'': a belief in the superiority of a chosen race.//*/ <</if>> <</if>> @@ -688,22 +691,22 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<else>> <<if $FSCredits > 0>> - <br>''''[[Racial subjugationism|Future Society][$arcologies[0].FSSubjugationist = 4, $FSCredits -= 1]]: a belief in <<if $arcologies[0].FSSubjugationistRace == 0>>the inferiority of a chosen race<<else>>$arcologies[0].FSSubjugationistRace inferiority<</if>>. - <br> Select race: -<<if $arcologies[0].FSSubjugationistRace != "white">>[[White|Future Society][$arcologies[0].FSSubjugationistRace = "white"]]<<else>>White<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "asian">>[[Asian|Future Society][$arcologies[0].FSSubjugationistRace = "asian"]]<<else>>Asian<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "latina">>[[Latino|Future Society][$arcologies[0].FSSubjugationistRace = "latina"]]<<else>>Latino<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "middle eastern">>[[Middle Eastern|Future Society][$arcologies[0].FSSubjugationistRace = "middle eastern"]]<<else>>Middle Eastern<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "black">>[[Black|Future Society][$arcologies[0].FSSubjugationistRace = "black"]]<<else>>Black<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "indo-aryan">>[[Indo-Aryan|Future Society][$arcologies[0].FSSubjugationistRace = "indo-aryan"]]<<else>>Indo-Aryan<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "amerindian">>[[Amerindian|Future Society][$arcologies[0].FSSubjugationistRace = "amerindian"]]<<else>>Amerindian<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "pacific islander">>[[Pacific Islander|Future Society][$arcologies[0].FSSubjugationistRace = "pacific islander"]]<<else>>Pacific Islander<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "malay">>[[Malay|Future Society][$arcologies[0].FSSubjugationistRace = "malay"]]<<else>>Malay<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "southern european">>[[Southern European|Future Society][$arcologies[0].FSSubjugationistRace = "southern european"]]<<else>>Southern European<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "semitic">>[[Semitic|Future Society][$arcologies[0].FSSubjugationistRace = "semitic"]]<<else>>Semitic<</if>> | -<<if $arcologies[0].FSSubjugationistRace != "mixed race">>[[Mixed Race|Future Society][$arcologies[0].FSSubjugationistRace = "mixed race"]]<<else>>Mixed Race<</if>> + <br>''''[[Racial subjugationism|Future Society][$arcologies[0].FSSubjugationist = 4, $FSCredits -= 1]]: a belief in <<if $arcologies[0].FSSubjugationistRace == 0>>the inferiority of a chosen race<<else>>$arcologies[0].FSSubjugationistRace inferiority<</if>>. + <br> Select race: + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "white">>It is established that whites are superior.<<elseif $arcologies[0].FSSubjugationistRace != "white">>[[White|Future Society][$arcologies[0].FSSubjugationistRace = "white"]]<<else>>White<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "asian">>It is established that asians are superior.<<elseif $arcologies[0].FSSubjugationistRace != "asian">>[[Asian|Future Society][$arcologies[0].FSSubjugationistRace = "asian"]]<<else>>Asian<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "latina">>It is established that latinas are superior.<<elseif $arcologies[0].FSSubjugationistRace != "latina">>[[Latino|Future Society][$arcologies[0].FSSubjugationistRace = "latina"]]<<else>>Latino<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "middle eastern">>It is established that middle easterners are superior.<<elseif $arcologies[0].FSSubjugationistRace != "middle eastern">>[[Middle Eastern|Future Society][$arcologies[0].FSSubjugationistRace = "middle eastern"]]<<else>>Middle Eastern<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "black">>It is established that blacks are superior.<<elseif $arcologies[0].FSSubjugationistRace != "black">>[[Black|Future Society][$arcologies[0].FSSubjugationistRace = "black"]]<<else>>Black<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "indo-aryan">>It is established that indo-aryans are superior.<<elseif $arcologies[0].FSSubjugationistRace != "indo-aryan">>[[Indo-Aryan|Future Society][$arcologies[0].FSSubjugationistRace = "indo-aryan"]]<<else>>Indo-Aryan<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "amerindian">>It is established that amerindians are superior.<<elseif $arcologies[0].FSSubjugationistRace != "amerindian">>[[Amerindian|Future Society][$arcologies[0].FSSubjugationistRace = "amerindian"]]<<else>>Amerindian<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "pacific islander">>It is established that pacific islanders are superior.<<elseif $arcologies[0].FSSubjugationistRace != "pacific islander">>[[Pacific Islander|Future Society][$arcologies[0].FSSubjugationistRace = "pacific islander"]]<<else>>Pacific Islander<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "malay">>It is established that malay are superior.<<elseif $arcologies[0].FSSubjugationistRace != "malay">>[[Malay|Future Society][$arcologies[0].FSSubjugationistRace = "malay"]]<<else>>Malay<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "southern european">>It is established that southern europeaners are superior.<<elseif $arcologies[0].FSSubjugationistRace != "southern european">>[[Southern European|Future Society][$arcologies[0].FSSubjugationistRace = "southern european"]]<<else>>Southern European<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "semitic">>It is established that semites are superior.<<elseif $arcologies[0].FSSubjugationistRace != "semitic">>[[Semitic|Future Society][$arcologies[0].FSSubjugationistRace = "semitic"]]<<else>>Semitic<</if>> | + <<if $arcologies[0].FSSupremacist != "unset" && $arcologies[0].FSSupremacistRace == "mixed race">>It is established that those with mixed blood are superior.<<elseif $arcologies[0].FSSubjugationistRace != "mixed race">>[[Mixed Race|Future Society][$arcologies[0].FSSubjugationistRace = "mixed race"]]<<else>>Mixed Race<</if>> <<else>> - /*//''Racial subjugationism'': a belief in the inferiority of a subject race.//*/ + /*//''Racial subjugationism'': a belief in the inferiority of a subject race.//*/ <</if>> <</if>> @@ -1656,7 +1659,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<else>> <<if $FSCredits > 0>> - <br>''''[[Egyptian Revivalism|Future Society][$arcologies[0].FSEgyptianRevivalist = 4, $FSCredits -= 1]]: a vision of a Pharaoh's Egypt. + <br>''''[[Egyptian Revivalism|Future Society][$arcologies[0].FSEgyptianRevivalist = (4+$arcologies[0].FSEgyptianRevivalistInterest), $FSCredits -= 1, $arcologies[0].FSEgyptianRevivalistIncestPolicy = 0]]: a vision of a Pharaoh's Egypt. <<else>> /*//''Egyptian Revivalism'': a vision of Pharaoh's Egypt.//*/ <</if>> @@ -1891,7 +1894,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc /* FACILITY REDECORATION */ <<if $brothel > 0>> -<<ValidateFacilityDecoration $brothelDecoration>> +<<ValidateFacilityDecoration "brothelDecoration">> <br>$brothelNameCaps is decorated in $brothelDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($brothelDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$brothelDecoration = "Supremacist", $cash -= 5000]] @@ -1963,7 +1966,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $club > 0>> -<<ValidateFacilityDecoration $clubDecoration>> +<<ValidateFacilityDecoration "clubDecoration">> <br>$clubNameCaps is decorated in $clubDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($clubDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$clubDecoration = "Supremacist", $cash -= 5000]] @@ -2035,7 +2038,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $dairy > 0>> -<<ValidateFacilityDecoration $dairyDecoration>> +<<ValidateFacilityDecoration "dairyDecoration">> <br>$dairyNameCaps is decorated in $dairyDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($dairyDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$dairyDecoration = "Supremacist", $cash -= 5000]] @@ -2107,7 +2110,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $spa > 0>> -<<ValidateFacilityDecoration $spaDecoration>> +<<ValidateFacilityDecoration "spaDecoration">> <br>$spaNameCaps is decorated in $spaDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($spaDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$spaDecoration = "Supremacist", $cash -= 5000]] @@ -2179,7 +2182,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $clinic > 0>> -<<ValidateFacilityDecoration $clinicDecoration>> +<<ValidateFacilityDecoration "clinicDecoration">> <br>$clinicNameCaps is decorated in $clinicDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($clinicDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$clinicDecoration = "Supremacist", $cash -= 5000]] @@ -2251,7 +2254,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $schoolroom > 0>> -<<ValidateFacilityDecoration $schoolroomDecoration>> +<<ValidateFacilityDecoration "schoolroomDecoration">> <br>$schoolroomNameCaps is decorated in $schoolroomDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($schoolroomDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$schoolroomDecoration = "Supremacist", $cash -= 5000]] @@ -2323,7 +2326,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $cellblock > 0>> -<<ValidateFacilityDecoration $cellblockDecoration>> +<<ValidateFacilityDecoration "cellblockDecoration">> <br>$cellblockNameCaps is decorated in $cellblockDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($cellblockDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$cellblockDecoration = "Supremacist", $cash -= 5000]] @@ -2395,7 +2398,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $servantsQuarters > 0>> -<<ValidateFacilityDecoration $servantsQuartersDecoration>> +<<ValidateFacilityDecoration "servantsQuartersDecoration">> <br>$servantsQuartersNameCaps is decorated in $servantsQuartersDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($servantsQuartersDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$servantsQuartersDecoration = "Supremacist", $cash -= 5000]] @@ -2467,7 +2470,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $arcade > 0>> -<<ValidateFacilityDecoration $arcadeDecoration>> +<<ValidateFacilityDecoration "arcadeDecoration">> <br>$arcadeNameCaps is decorated in $arcadeDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($arcadeDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$arcadeDecoration = "Supremacist", $cash -= 5000]] @@ -2539,7 +2542,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <</if>> <<if $masterSuite > 0>> -<<ValidateFacilityDecoration $masterSuiteDecoration>> +<<ValidateFacilityDecoration "masterSuiteDecoration">> <br>$masterSuiteNameCaps is decorated in $masterSuiteDecoration style. <<if ($arcologies[0].FSSupremacist >= 20) && ($masterSuiteDecoration != "Supremacist")>> <br> [[Supremacist redecoration|Future Society][$masterSuiteDecoration = "Supremacist", $cash -= 5000]] diff --git a/src/uncategorized/generateXXSlave.tw b/src/uncategorized/generateXXSlave.tw index 7e29696e92e2951094da4990f1a5b1bf2d8884d7..8cebddadd5d46d8cad385cceacd7b8a5bc11964a 100644 --- a/src/uncategorized/generateXXSlave.tw +++ b/src/uncategorized/generateXXSlave.tw @@ -2,6 +2,7 @@ <<BaseSlave>> /*missed variables - getting tired of this shit */ +<<set WombInit($activeSlave)>> <<set $activeSlave.vaginaLube = 1, $activeSlave.ovaries = 1, $activeSlave.canRecruit = 1>> <<if $activeSlaveOneTimeMaxAge > 998>> @@ -142,7 +143,7 @@ /% Begin height replacement section. %/ /% Since we use nationality for height effects we need to initialize it now instead of later on like in vanilla Free Cities. %/ <<if $fixedNationality == 0>> - <<set $activeSlave.nationality = $nationalities.random()>> + <<set $activeSlave.nationality = hashChoice($nationalities)>> <<else>> <<set $activeSlave.nationality = $fixedNationality>> <</if>> @@ -156,7 +157,7 @@ <<set _capUpgradeNationalities = []>> <<for _u = 0; _u < _capUpgradeCheck.length; _u++>> <<set _capNation = _capUpgradeCheck[_u]>> - <<if $nationalities.includes(_capNation)>> + <<if _capNation in $nationalities>> <<set _capUpgradeNationalities.push(_capNation)>> <</if>> <</for>> @@ -384,13 +385,15 @@ <</if>> <</if>> -<<set $activeSlave.earPiercing = either(0,1)>> -<<set $activeSlave.nosePiercing = either(0,0,0,1)>> -<<set $activeSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> -<<set $activeSlave.clitPiercing = either(0,0,0,0,0,1)>> -<<set $activeSlave.lipsPiercing = either(0,0,0,0,0,1)>> -<<set $activeSlave.navelPiercing = either(0,0,0,1)>> -<<set $activeSlave.nipplesPiercing = either(0,0,0,1)>> +<<if passage() != "Starting Girls">> + <<set $activeSlave.earPiercing = either(0,1)>> + <<set $activeSlave.nosePiercing = either(0,0,0,1)>> + <<set $activeSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> + <<set $activeSlave.clitPiercing = either(0,0,0,0,0,1)>> + <<set $activeSlave.lipsPiercing = either(0,0,0,0,0,1)>> + <<set $activeSlave.navelPiercing = either(0,0,0,1)>> + <<set $activeSlave.nipplesPiercing = either(0,0,0,0,1)>> +<</if>> <<set $activeSlave.face = random(-60,60)>> <<if random(0,2) == 1>><<set $activeSlave.face = random(-10,10)>><</if>> diff --git a/src/uncategorized/generateXYSlave.tw b/src/uncategorized/generateXYSlave.tw index 7740c8fb538ea01903d8de90ded026d57640e171..cd591d40f90d702cb3254c7f14a155cd12e5e20e 100644 --- a/src/uncategorized/generateXYSlave.tw +++ b/src/uncategorized/generateXYSlave.tw @@ -2,6 +2,7 @@ <<BaseSlave>> /% Defaults that differ from the old template %/ +<<set WombInit($activeSlave)>> <<set $activeSlave.genes = "XY", $activeSlave.hLength = 10, $activeSlave.prostate = 1, $activeSlave.canRecruit = 1>> <<set $activeSlave.publicCount = 0>> @@ -140,7 +141,7 @@ /% Since we use nationality for height effects we need to initialize it now instead of later on like in vanilla Free Cities. %/ <<if $fixedNationality == 0>> - <<set $activeSlave.nationality = $nationalities.random()>> + <<set $activeSlave.nationality = hashChoice($nationalities)>> <<else>> <<set $activeSlave.nationality = $fixedNationality>> <</if>> @@ -154,7 +155,7 @@ <<set _capUpgradeNationalities = []>> <<for _u = 0; _u < _capUpgradeCheck.length; _u++>> <<set _capNation = _capUpgradeCheck[_u]>> - <<if $nationalities.includes(_capNation)>> + <<if _capNation in $nationalities>> <<set _capUpgradeNationalities.push(_capNation)>> <</if>> <</for>> @@ -361,13 +362,15 @@ <</if>> <</if>> -<<set $activeSlave.earPiercing = either(0,0,0,1)>> -<<set $activeSlave.nosePiercing = either(0,0,0,0,1)>> -<<set $activeSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> -<<set $activeSlave.dickPiercing = either(0,0,0,0,0,1)>> -<<set $activeSlave.lipsPiercing = either(0,0,0,0,0,1)>> -<<set $activeSlave.navelPiercing = either(0,0,0,0,1)>> -<<set $activeSlave.nipplesPiercing = either(0,0,0,0,1)>> +<<if passage() != "Starting Girls">> + <<set $activeSlave.earPiercing = either(0,0,0,1)>> + <<set $activeSlave.nosePiercing = either(0,0,0,0,1)>> + <<set $activeSlave.eyebrowPiercing = either(0,0,0,0,0,1)>> + <<set $activeSlave.dickPiercing = either(0,0,0,0,0,1)>> + <<set $activeSlave.lipsPiercing = either(0,0,0,0,0,1)>> + <<set $activeSlave.navelPiercing = either(0,0,0,0,1)>> + <<set $activeSlave.nipplesPiercing = either(0,0,0,0,1)>> +<</if>> <<set $activeSlave.face = random(-70,20)>> <<if random(0,2) == 1>><<set $activeSlave.face = random(-40,-10)>><</if>> diff --git a/src/uncategorized/genericPlotEvents.tw b/src/uncategorized/genericPlotEvents.tw index b6bd1f5c4e95aef75bd8f0e7f7e15c4f9e1079e2..bf3008f519b192cd5057a1fb89eac708710f47ae 100644 --- a/src/uncategorized/genericPlotEvents.tw +++ b/src/uncategorized/genericPlotEvents.tw @@ -331,7 +331,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u <<set $one_time_age_overrides_pedo_mode = 1>> /% Old enough to be pregnant. %/ <<include "Generate XX Slave">> <<set $activeSlave.origin = "She was an expectant mother you enslaved when you evacuated her from a threatened old world hospital.">> - <<set $activeSlave.career = "a housewife">> + <<set $activeSlave.career = "a housewife">> <<set $activeSlave.devotion = random(-90,-75)>> <<set $activeSlave.trust = -20>> <<set $activeSlave.preg = random(28,40)>> @@ -453,7 +453,45 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u As a society free of the encumbrance of governmental oversight, the arcologies of the Free Cities are places where societal evolution and corporate expansion can occur rapidly. -Even so, the incredible speed with which the arcology has improved under your tenure as compared to that of your predecessor, after you obtained ownership through <<if $PC.rumor == "wealth">>a leveraged buyout,<<elseif $PC.rumor == "diligence">>hard work and competence,<<elseif $PC.rumor == "force">>some episodes of violence,<<elseif $PC.rumor == "social engineering">>the creative use of psychology,<<elseif $PC.rumor == "luck">>an incredible opportunity,<</if>> is nothing short of astonishing. Other arcologies have taken many years to develop along anything but strictly conservative lines, and you are not the only arcology owner with a background <<if $PC.career == "wealth">>of substantial wealth.<<elseif $PC.career == "capitalist">>in business.<<elseif $PC.career == "mercenary">>in the world of private contracting.<<elseif $PC.career == "slaver">>as a slavebreaker.<<elseif $PC.career == "engineer">>in arcology engineering.<<elseif $PC.career == "medicine">>in medicine and surgery.<<elseif $PC.career == "celebrity">>in the public sphere.<<elseif $PC.career == "escort">>involving many personal contacts.<<elseif $PC.career == "servant">>involving the rich and powerful.<<elseif $PC.career == "gang">>involving gangs.<<else>>in the Free Cities.<</if>> It occurs to you that the arcology's growing role as a place where those with the means to do so can live in the society you have created, enjoying themselves and their lives to the fullest while subjugating others, should be commemorated. +Even so, the incredible speed with which the arcology has improved under your tenure as compared to that of your predecessor, after you obtained ownership through +<<if $PC.rumor == "wealth">> + a leveraged buyout, +<<elseif $PC.rumor == "diligence">> + hard work and competence, +<<elseif $PC.rumor == "force">> + some episodes of violence, +<<elseif $PC.rumor == "social engineering">> + the creative use of psychology, +<<elseif $PC.rumor == "luck">> + an incredible opportunity, +<</if>> +is nothing short of astonishing. Other arcologies have taken many years to develop along anything but strictly conservative lines, and you are not the only arcology owner with a background +<<if $PC.career == "wealth">> + of substantial wealth. +<<elseif $PC.career == "capitalist">> + in business. +<<elseif $PC.career == "mercenary">> + in the world of private contracting. +<<elseif $PC.career == "slaver">> + as a slavebreaker. +<<elseif $PC.career == "engineer">> + in arcology engineering. +<<elseif $PC.career == "medicine">> + in medicine and surgery. +<<elseif $PC.career == "celebrity">> + in the public sphere. +<<elseif $PC.career == "escort">> + involving many personal contacts. +<<elseif $PC.career == "servant">> + involving the rich and powerful. +<<elseif $PC.career == "gang">> + involving gangs. +<<elseif $PC.career == "BlackHat">> + involving mysterious data breaches. +<<else>> + in the Free Cities. +<</if>> +It occurs to you that the arcology's growing role as a place where those with the means to do so can live in the society you have created, enjoying themselves and their lives to the fullest while subjugating others, should be commemorated. <br><br> As any slaveowner with half a mind in the Free Cities knows, there is power in words, and in what they represent. Master. Slave. These two words alone, more than any others, define the arcologies that have taken up the mantle of leading the world forward in these dark times. The time has come to add a new term to the lexicon of the Free Cities - a name. No longer will your arcology be known only as $arcologies[0].name, a bland and uninspiring name if ever there was one. <br><br> @@ -553,7 +591,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<for $i = 0; $i < $slaves.length; $i++>> <<if ($slaves[$i].drugs == "breast injections") && canGetPregnant($slaves[$i])>> <<set $slaves[$i].preg = 1>> - <<set $slaves[$i].pregType = random(10,19)>> + <<set $slaves[$i].pregType = random(10,25)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = 1>> <<SetBellySize $activeSlave>> @@ -574,7 +612,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<set $slaves[$i].boobs += 300>> <<elseif ($slaves[$i].drugs == "hyper breast injections") && canGetPregnant($slaves[$i])>> <<set $slaves[$i].preg = 1>> - <<set $slaves[$i].pregType = random(20,29)>> + <<set $slaves[$i].pregType = random(20,45)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = 1>> <<SetBellySize $activeSlave>> diff --git a/src/uncategorized/initRules.tw b/src/uncategorized/initRules.tw index 0bc70e35b3d0800277f5f45fff19c080c5e44157..1f64b201211cc08b0124b59e2995a7303c9b0236 100644 --- a/src/uncategorized/initRules.tw +++ b/src/uncategorized/initRules.tw @@ -3,13 +3,13 @@ <<silently>> <<set $defaultRules = []>> -<<set _activeRule = {ID: 1, name: "Obedient Slaves", condition: {id: ">=", first: {id: "(name)", name: "devotion"}, second: {id: "(number)", value: 20}}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: false, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting" }>> +<<set _activeRule = {ID: 1, name: "Obedient Slaves", condition: {id: ">", first: {id: "(name)", name: "devotion"}, second: {id: "(number)", value: 20}}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: false, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting" }>> <<set $defaultRules.push(_activeRule)>> -<<set _activeRule = {ID: 2, name: "Disobedient Slaves", condition: {id: "<", first: {id: "(name)", name: "devotion"}, second: {id: "(number)", value: 20}}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "spare", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: false, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting"}>> +<<set _activeRule = {ID: 2, name: "Disobedient Slaves", condition: {id: "<=", first: {id: "(name)", name: "devotion"}, second: {id: "(number)", value: 20}}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "spare", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: false, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting"}>> <<set $defaultRules.push(_activeRule)>> -<<set _activeRule = {ID: 3, name: "Unhealthy Slaves", condition: {id: "<", first: {id: "(name)", name: "health"}, second: {id: "(number)", value: -10}}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", dickAccessory: "no default setting", aVirginDickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "applied", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: false, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting"}>> +<<set _activeRule = {ID: 3, name: "Unhealthy Slaves", condition: {id: "<", first: {id: "(name)", name: "health"}, second: {id: "(number)", value: -10}}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", dickAccessory: "no default setting", aVirginDickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "applied", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, aphrodisiacs: "no default setting", autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: false, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting"}>> <<set $defaultRules.push(_activeRule)>> <</silently>> diff --git a/src/uncategorized/lawCompliance.tw b/src/uncategorized/lawCompliance.tw index c4b298f436d207f43f2fbf1f3fdbdda4f56ee2c3..a0e179a5cf360a4f024595d588602bec5368a032 100644 --- a/src/uncategorized/lawCompliance.tw +++ b/src/uncategorized/lawCompliance.tw @@ -86,6 +86,7 @@ <<set $activeSlave.preg = -2>> <<set $activeSlave.pregType = 0>> <<set $activeSlave.pregKnown = 0>> + <<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> <<set $activeSlave.balls = 0>> <<set $activeSlave.ovaries = 0>> @@ -453,6 +454,7 @@ a physical exam, and more. <<set $activeSlave.preg = -2>> <<set $activeSlave.pregType = 0>> <<set $activeSlave.pregKnown = 0>> + <<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> <<set $activeSlave.devotion -= 10>> <<set $activeSlave.trust -= 10>> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 05e22e5d7b76584909602170a6705000c346d365..5335617d220472d1cb0d922c6dd9468b62a58c83 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1082,14 +1082,8 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower <<if $activeSlave.fuckdoll == 0>> <<if $showBodyMods == 1>> - <<if ($activeSlave.brandLocation == "neck") - || ($activeSlave.brandLocation == "left cheek") - || ($activeSlave.brandLocation == "right cheek") - || ($activeSlave.brandLocation == "cheeks") - || ($activeSlave.brandLocation == "left ears") - || ($activeSlave.brandLocation == "right ears") - || ($activeSlave.brandLocation == "ears")>> - <<brandDescription>> + <<if ["neck", "left cheek", "right cheek", "cheeks", "left ears", "right ears", "ears"].includes($activeSlave.brandLocation)>> + <<brandDescription>> <</if>> <</if>> <</if>> @@ -1538,7 +1532,7 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower <</if>> <<if ($showScores != 0)>> - <<FResult $activeSlave>> + <<set FResult($activeSlave)>> Currently, $pronoun has an @@.pink;''attractiveness score'' of __''$beauty''__@@ and a @@.lightcoral;''sexual score'' of __''$FResult''__.@@ <</if>> @@ -1818,33 +1812,8 @@ $pronounCap is <<if $activeSlave.fuckdoll == 0>> <<if $showBodyMods == 1>> /* Check it's not a facial brand: */ - <<if ($activeSlave.brandLocation == "back") - || ($activeSlave.brandLocation == "chest") - || ($activeSlave.brandLocation == "right shoulder") - || ($activeSlave.brandLocation == "left shoulder") - || ($activeSlave.brandLocation == "shoulders") - || ($activeSlave.brandLocation == "right upper arm") - || ($activeSlave.brandLocation == "left upper arm") - || ($activeSlave.brandLocation == "upper arms") - || ($activeSlave.brandLocation == "right lower arm") - || ($activeSlave.brandLocation == "left lower arm") - || ($activeSlave.brandLocation == "lower arms") - || ($activeSlave.brandLocation == "right wrist") - || ($activeSlave.brandLocation == "left wrist") - || ($activeSlave.brandLocation == "wrists") - || ($activeSlave.brandLocation == "right hand") - || ($activeSlave.brandLocation == "left hand") - || ($activeSlave.brandLocation == "hands") - || ($activeSlave.brandLocation == "left ankle") - || ($activeSlave.brandLocation == "right ankle") - || ($activeSlave.brandLocation == "ankles") - || ($activeSlave.brandLocation == "right calf") - || ($activeSlave.brandLocation == "left calf") - || ($activeSlave.brandLocation == "calves") - || ($activeSlave.brandLocation == "right foot") - || ($activeSlave.brandLocation == "left foot") - || ($activeSlave.brandLocation == "feet")>> - <<brandDescription>> + <<if ["back", "lower back", "chest", "right shoulder", "left shoulder", "shoulders", "right upper arm", "left upper arm", "upper arms", "right lower arm", "left lower arm", "lower arms", "right wrist", "left wrist", "wrists", "right hand", "left hand", "hands", "left ankle", "right ankle", "ankles", "right calf", "left calf", "calves", "right foot", "left foot", "feet"].includes($activeSlave.brandLocation)>> + <<brandDescription>> <</if>> <</if>> <</if>> @@ -2144,9 +2113,9 @@ Her scars make her look like she's in the right place. <<case "lip atrophiers">> <<if ($activeSlave.amp != 1)>>She massages her lips uncomfortably<<else>>She licks her lips uncomfortably<</if>>. The A-TRPH must be having an effect, painfully causing her body to atrophy her lips. <<case "breast redistributors">> - <<if ($activeSlave.amp != 1)>>She pinches at the fat building on her belly and lets off a sigh.<<else>>She squirms under the added weight building on her belly<</if>>. The RDST-D must be having an effect, encouraging her body to redistribute her breasts' adipose tissue to her middle. + <<if ($activeSlave.amp != 1)>>She pinches at the fat building on her belly and lets off a sigh<<else>>She squirms under the added weight building on her belly<</if>>. The RDST-D must be having an effect, encouraging her body to redistribute her breasts' adipose tissue to her middle. <<case "butt redistributors">> - <<if ($activeSlave.amp != 1)>>She pinches at the fat building on her belly and lets off a sigh.<<else>>She squirms under the added weight building on her belly<</if>>. The RDST-D must be having an effect, encouraging her body to redistribute her buttock's adipose tissue to her middle. + <<if ($activeSlave.amp != 1)>>She pinches at the fat building on her belly and lets off a sigh<<else>>She squirms under the added weight building on her belly<</if>>. The RDST-D must be having an effect, encouraging her body to redistribute her buttock's adipose tissue to her middle. <<case "sag-B-gone">> Her breasts are shiny from the layer of anti-sag cream rubbed onto them. They might be a little perkier, or not. <<default>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 85ab7867d6cf2b9a455e4a31e7d6cb77672759ec..438d88128df0cc6a2154eb17c212b08b6f5da1da 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -3,7 +3,9 @@ <<unset $Flag>> <<resetAssignmentFilter>> <<if $releaseID >= 1000 || $ver.includes("0.9") || $ver.includes("0.8") || $ver.includes("0.7") || $ver.includes("0.6")>> - <<if $releaseID >= 1019>> + <<if $releaseID >= 1022>> + <<elseif $releaseID >= 1019>> + ''@@.red;INCOMPATIBILITY WARNING:@@'' your saved game was created using version $ver build $releaseID. Due to a major change to nationality weighting, you must run backwards compatiblity. <<else>> ''@@.red;INCOMPATIBLE SAVE WARNING:@@'' your saved game was created using version $ver build $releaseID. Please select New Game Plus from the Options menu or start a new game. <br><br> @@ -45,6 +47,11 @@ _RC = $slaves.findIndex(s => s.ID == $Recruiter.ID), _BG = $slaves.findIndex(s => s.ID == $Bodyguard.ID)>> +<<if (_HG > -1 && $HGSuite > 0)>><<set $slavesVisible++>><</if>> +<<if ($HGSuiteSlaves > 0)>><<set $slavesVisible++>><</if>> +<<if (_BG > -1 && $dojo > 1)>><<set $slavesVisible++>><</if>> + + <<set $nextButton = "END WEEK", $nextLink = "End Week", $showEncyclopedia = 1, $encyclopedia = "How to Play">> /*<<include "Costs">>*/ <<set $costs = getCost($slaves)>> @@ -94,16 +101,9 @@ <<if $seeFCNN == 1>><center>FCNN: <<print $fcnn.random()>> [[Hide|Main][$seeFCNN = 0]]</center><</if>> <<if ($seeDesk == 1) && ($seeFCNN == 0)>><br><</if>> -<<if $lowercaseDonkey == 1>> - -<br> - -<<if $positionMainLinks >= 0>> - <<MainLinks>> -<</if>> -<br> +__''MAIN MENU''__ //[[Summary Options]]// <<if $rulesAssistantMain != 0>> - //<span id="RAButton"><<link "Rules Assistant Options">><<goto "Rules Assistant">><</link>></span>// @@.cyan;[R]@@ + | //<span id="RAButton"><<link "Rules Assistant Options">><<goto "Rules Assistant">><</link>></span>// @@.cyan;[R]@@ <<if $rulesAssistantAuto != 1>> | //<<link "Apply Rules Assistant at week end">><<set $rulesAssistantAuto = 1>><<goto "Main">><</link>>// <<else>> @@ -112,52 +112,18 @@ | //<<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)">><<for _i = 0;_i < _SL;_i++>><<if $slaves[_i].assignmentVisible == 1 && $slaves[_i].useRulesAssistant == 1>><<CheckAutoRulesActivate $slaves[_i]>><<DefaultRules $slaves[_i]>><</if>><</for>><<goto "Main">><</link>>// <</if>> -/* variables used in "use someone" links*/ -<<set _j = "Back", _k = "AS Dump", _l = "Main">> - - -<<if $useTabs == 0>> -//<<OptionsSortAsAppearsOnMain>>// - <<include "Slave Summary">> - - <<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>> - <<if $positionMainLinks <= 0>> - <br><<MainLinks>> +<<if $useSlaveSummaryTabs == 1>> + <<if $positionMainLinks >= 0>> + <<MainLinks>> <</if>> - <<if (_BG > -1) && ($slaves[_BG].assignment == "guard you")>> - <<set $i = _BG>> - <<set _GO = "idiot ball">> - <<include "Use Guard">> - <br> <<print "[[Use her mouth|FLips][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> - | <<print "[[Play with her tits|FBoobs][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> - <<if canDoVaginal($slaves[_BG])>> - | <<print "[[Fuck her|FVagina][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> - <<if canDoAnal($slaves[_BG])>> - | <<print "[[Use her holes|FButt][$activeSlave = $slaves["+_BG+"],$nextButton = _j, $nextLink = _k, $returnTo = _l]]">> - <</if>> - <</if>> - /*check*/ - <<if canPenetrate($slaves[_BG])>> - | <<print "[[Ride her|FDick][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> - <</if>> - <<if canDoAnal($slaves[_BG])>> - | <<print "[[Fuck her ass|FAnus][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">> - <</if>> - | <<print "[[Abuse her|Gameover][$gameover = _GO]]">> - <</if>> - - <<set $activeSlave = Array.random($slaves)>> - <<if $activeSlave && ($activeSlave.assignment != "please you") && ($activeSlave.assignment != "guard you")>> - <br><<include "Walk Past">> - <</if>> - -<<else>> <<CreateSimpleTabs>> <body> <div class="tab"> - <button class="tablinks" onclick="opentab(event, 'overview')" id="defaultButton">Overview</button> + <<if $useSlaveSummaryOverviewTab == 1>> + <button class="tablinks" onclick="opentab(event, 'overview')">Overview</button> + <</if>> <button class="tablinks" onclick="opentab(event, 'Resting')">Resting</button> <button class="tablinks" onclick="opentab(event, 'stay confined')">Confined</button> <button class="tablinks" onclick="opentab(event, 'take classes')">Students</button> @@ -168,7 +134,7 @@ <button class="tablinks" onclick="opentab(event, 'get milked')">Cows</button> <button class="tablinks" onclick="opentab(event, 'work a glory hole')">Gloryhole</button> <button class="tablinks" onclick="opentab(event, 'be a subordinate slave')">Subordinate slaves</button> - <button class="tablinks" onclick="opentab(event, 'All')">All</button> + <button class="tablinks" onclick="opentab(event, 'All')" id="defaultButton">All</button> </div> <div id="overview" class="tabcontent"> @@ -444,20 +410,9 @@ <<if $positionMainLinks <= 0>> <br><<MainLinks>> <</if>> -<</if>> -<<else>> +<<else>> /*Display traditionally, without tabs*/ -__''MAIN MENU''__ //[[Summary Options]]// -<<if $rulesAssistantMain != 0>> - | //<span id="RAButton"><<link "Rules Assistant Options">><<goto "Rules Assistant">><</link>></span>// @@.cyan;[R]@@ - <<if $rulesAssistantAuto != 1>> - | //<<link "Apply Rules Assistant at week end">><<set $rulesAssistantAuto = 1>><<goto "Main">><</link>>// - <<else>> - | //<<link "Stop applying Rules Assistant at week end">><<set $rulesAssistantAuto = 0>><<goto "Main">><</link>>// - <</if>> - | //<<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)">><<for _i = 0;_i < _SL;_i++>><<if $slaves[_i].assignmentVisible == 1 && $slaves[_i].useRulesAssistant == 1>><<CheckAutoRulesActivate $slaves[_i]>><<DefaultRules $slaves[_i]>><</if>><</for>><<goto "Main">><</link>>// -<</if>> //<<if $sortSlavesMain != 0>> <br> Sort by: @@ -551,8 +506,9 @@ Filter by assignment: | <</if>> <</if>> <</for>> +<</if>> -<<if (_BG > -1) && ($slaves[_BG].assignment == "guard you")>> +<<if (_BG > -1) && ($slaves[_BG].assignment == "guard you") && ($useSlaveSummaryOverviewTab != 1)>> <<set $i = _BG>> <<set _GO = "idiot ball">> <br><<include "Use Guard">> @@ -574,7 +530,6 @@ Filter by assignment: | | <<print "[[Abuse her|Gameover][$gameover = _GO]]">> <</if>> -<</if>> /* closes lowercase_donkey's fuckery */ <<set $activeSlave = $slaves.random()>> <<if $activeSlave && ($activeSlave.assignment != "please you") && ($activeSlave.assignment != "guard you")>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index 8f098382e05d2d2c6b7a32a35f017d0c1c5684a8..2d244592731ed845bc1eacb121f6635eb54451e3 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -1,5 +1,6 @@ :: Manage Arcology [nobr] +<<HSM>> <<set $nextButton = "Back", $nextLink = "Main">> <<if $cheatMode == 1>> @@ -89,8 +90,8 @@ __Construction__ __Security__ <<if $propHub == 0>> <br> - [[Set up the propaganda Hub|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $propHub = 1, $PC.engineering += 1]] - //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>.// + [[Set up the propaganda Hub|Manage Arcology][$cash -= Math.trunc((5000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), $propHub = 1, $PC.engineering += 1, $PC.hacking += 1]] + //Costs <<print cashFormat(Math.trunc((5000*$upgradeMultiplierArcology*$HackingSkillMultiplier)))>>.// <br>//Building specialized in the management of authority.// <<else>> <br> @@ -98,8 +99,8 @@ __Construction__ <</if>> <<if $secHQ == 0>> <br> - [[Set up the security headquarters|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $secHQ = 1, $PC.engineering += 1]] - //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>.// + [[Set up the security headquarters|Manage Arcology][$cash -= Math.trunc((5000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), $secHQ = 1, $PC.engineering += 1, $PC.hacking += 1]] + //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.// <br>//Building specialized in the management of security and crime.// <<else>> <br> diff --git a/src/uncategorized/masterSuite.tw b/src/uncategorized/masterSuite.tw index 247278eee7101f922fbd6834cfc26a25fbb36d91..bc565c00cac996ca7deaeefc5bd2f40481c97aa4 100644 --- a/src/uncategorized/masterSuite.tw +++ b/src/uncategorized/masterSuite.tw @@ -112,7 +112,7 @@ $masterSuiteNameCaps is furnished in a refined, yet practical style. It's dominated by a huge bed in which many slaves could serve their <<if $PC.title == 1>>master<<else>>mistress<</if>> and then cuddle afterward. <</switch>> -It's is full of luxuries of all kinds. The slaves here live free of want or worry, and have everything except their freedom. Their only duties are to please you and look after the suite and one another. +It is full of luxuries of all kinds. The slaves here live free of want or worry, and have everything except their freedom. Their only duties are to please you and look after the suite and one another. <<if $masterSuiteSlaves > 2>> It's busy with slaves, so many that they are able to rotate through keeping themselves perfect and ready for your pleasure. The slaves not on call at the moment are beautifying themselves, cleaning, or serving others. <<if (_masterSuitePregnantSlaves > 2) && (_masterSuitePregnantSlavesMultiple < 2)>> @@ -288,9 +288,6 @@ $masterSuiteNameCaps is furnished It's sparsely populated, so that the few slaves here have to work hard and quickly to ensure that an assortment of sex slaves is perfect and ready for your pleasure at any given moment. <<else>> None of your slaves are serving here. - <<if $Concubine == 0>> - [[Decommission the Master Suite|Main][$masterSuite = 0, $masterSuiteUpgradeLuxury = 0, $masterSuitePregnancySlaveLuxuries = 0, $masterSuiteDecoration = "standard", $masterSuitePregnancyFertilityDrugs = 0, $masterSuitePregnancyFertilitySupplements = 0, $masterSuiteUpgradePregnancy = 0, $masterSuiteHyperPregnancy = 0]] - <</if>> <</if>> <br> [[Refit the suite to the height of traditional opulence|Master Suite][$cash -= _Tmult2, $masterSuiteUpgradeLuxury = 1]] //Costs <<print cashFormat(_Tmult2)>> and will focus the suite on you// <br> [[Remodel the suite around a luxurious pit for group sex|Master Suite][$cash -= _Tmult2, $masterSuiteUpgradeLuxury = 2]] //Costs <<print cashFormat(_Tmult2)>>; will encourage fucktoys to fuck each other// @@ -300,6 +297,9 @@ $masterSuiteNameCaps is furnished <br>$masterSuiteNameCaps has room for $masterSuite slaves to live comfortably<<if $masterSuiteUpgradeLuxury == 2>> in the moments when they're not in the fuckpit<<elseif $masterSuiteUpgradeLuxury == 1>> on its huge bed<</if>>. There are currently $masterSuiteSlaves in $masterSuiteNameCaps. <<set _Tmult0 = Math.trunc($masterSuite*1000*$upgradeMultiplierArcology)>> [[Expand the Master Suite|Master Suite][$cash -= _Tmult0, $masterSuite += 2, $PC.engineering += .1]] //Costs <<print cashFormat(_Tmult0)>>// +<<if $Concubine == 0 && $masterSuiteSlaves == 0>> + |[[Decommission the Master Suite|Main][$masterSuite = 0, $masterSuiteUpgradeLuxury = 0, $masterSuitePregnancySlaveLuxuries = 0, $masterSuiteDecoration = "standard", $masterSuitePregnancyFertilityDrugs = 0, $masterSuitePregnancyFertilitySupplements = 0, $masterSuiteUpgradePregnancy = 0, $masterSuiteHyperPregnancy = 0]] +<</if>> <<if $seePreg != 0>> <br> diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw index b52d0542adadc95f954966738f0784ca9b56107b..8bbdb67517eaa65bcace721756ee85659f0d0933 100644 --- a/src/uncategorized/multiImplant.tw +++ b/src/uncategorized/multiImplant.tw @@ -84,8 +84,8 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized <<if _slaveOrgans.eyes != 0>> <<if ($activeSlave.eyes == -2) && $activeSlave.origEye != "implant">> <<set $cash -= $surgeryCost>> - <<set $activeSlave.eyes to 1>> - <<set $activeSlave.eyeColor to $activeSlave.origEye>> + <<set $activeSlave.eyes = 1>> + <<set $activeSlave.eyeColor = $activeSlave.origEye>> /* no way to salvage original eye color */ <<set $activeSlave.health -= 20>> <<if $organFarmUpgrade == 2>> @@ -97,10 +97,10 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized <<elseif $activeSlave.origEye == "implant">> <<set $cash -= $surgeryCost>> <<set $stockpile.ocularImplant++>> - <<set $activeSlave.eyes to 1>> + <<set $activeSlave.eyes = 1>> <<set _oldEyes = $genePool.find(function(s) { return s.ID = $activeSlave.ID; })>> <<set $activeSlave.origEye = _oldEyes.origEye>> - <<set $activeSlave.eyeColor to $activeSlave.origEye>> + <<set $activeSlave.eyeColor = $activeSlave.origEye>> <<set $activeSlave.health -= 20>> <<if $organFarmUpgrade == 2>> <<set $activeSlave.chem += 20>> @@ -130,6 +130,7 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized <</if>> <<set $surgeryType = "restoreVoice">> <br><hr> + <<Enunciate $activeSlave>> <<include "Surgery Degradation">> <<else>> <br><hr> diff --git a/src/uncategorized/neighborDescription.tw b/src/uncategorized/neighborDescription.tw index 403220c55f7ea8ced76d2ce385c13a2641bc88ff..0e4740973a5d7aa7a2c6b81269c71c174c1f9e63 100644 --- a/src/uncategorized/neighborDescription.tw +++ b/src/uncategorized/neighborDescription.tw @@ -1,7 +1,7 @@ :: Neighbor Description [nobr] <br><br> -''$arcologies[$i].name'' is located to the $arcologies[$i].direction of your arcology. It is governed by +'' $arcologies[$i].name'' is located to the $arcologies[$i].direction of your arcology. It is governed by <<switch $arcologies[$i].government>> <<case "elected officials">> elected officials, periodically paralyzing its development. @@ -380,6 +380,24 @@ its neighbors. <</if>> <<set $seed.push($desc)>> <</if>> +<<if $arcologies[$i].FSIncestFetishist != "unset">> + <<if $arcologies[$i].FSIncestFetishist > 80>> + <<set $desc = "committed to ">> + <<elseif $arcologies[$i].FSIncestFetishist > 20>> + <<set $desc = "pursuing ">> + <<else>> + <<set $desc = "just establishing ">> + <</if>> + <<set $desc = $desc + "@@.gold;Incest Fetishism@@, and is ">> + <<if $arcologies[$i].FSIncestFetishist > 95>> + <<set $desc = $desc + "highly recommended as a place to stop by if you like threesomes with twins or familial gangbangs.">> + <<elseif $arcologies[$i].FSIncestFetishist > 40>> + <<set $desc = $desc + "attracting a substantial number of families.">> + <<else>> + <<set $desc = $desc + "devoting more and more of its resources into genealogy.">> + <</if>> + <<set $seed.push($desc)>> +<</if>> <<if $arcologies[$i].FSChattelReligionist != "unset">> <<if $arcologies[$i].FSChattelReligionist > 80>> <<set $desc = "committed to ">> diff --git a/src/uncategorized/neighborInteract.tw b/src/uncategorized/neighborInteract.tw index bd792c47d7524ae507ce63246d961d8920d71031..7dbc4de068f2f341f20347c9aa7526614456f7d7 100644 --- a/src/uncategorized/neighborInteract.tw +++ b/src/uncategorized/neighborInteract.tw @@ -38,7 +38,7 @@ <<else>> <<for $i = 0; $i < $arcologies.length; $i++>> <<if $arcologies[$i].direction == $arcologies[0].embargoTarget>> - You have targeted ''$arcologies[$i].name'' for economic warfare. + You have targeted '' $arcologies[$i].name'' for economic warfare. <<break>> <</if>> <</for>> @@ -59,7 +59,7 @@ <<else>> <<for $i = 0; $i < $arcologies.length; $i++>> <<if $arcologies[$i].direction == $arcologies[0].influenceTarget>> - You have targeted ''$arcologies[$i].name'' for cultural influence. + You have targeted '' $arcologies[$i].name'' for cultural influence. <<break>> <</if>> <</for>> @@ -122,6 +122,9 @@ <<if $arcologies[0].FSHedonisticDecadence > 60>> <<set $desc.push("Hedonistic Decadence")>> <</if>> +<<if $arcologies[0].FSIncestFetishist > 60>> + <<set $desc.push("Incest Fetishism")>> +<</if>> <<if $arcologies[0].FSChattelReligionist > 60>> <<set $desc.push("Chattel Religionism")>> <</if>> @@ -280,6 +283,9 @@ A 1% interest in $activeArcology.name is worth <<print cashFormat($seed)>> and w <<if $activeArcology.FSHedonisticDecadence != "unset">> <br><<link "Force Abandonment of Hedonistic Decadence">><<set $activeArcology.FSHedonisticDecadence = "unset">><<goto "Neighbor Interact">><</link>> <</if>> +<<if $activeArcology.FSIncestFetishist != "unset">> + <br><<link "Force Abandonment of Incest Fetishism">><<set $activeArcology.FSIncestFetishist = "unset">><<goto "Neighbor Interact">><</link>> +<</if>> <<if $activeArcology.FSChattelReligionist != "unset">> <br><<link "Force Abandonment of Chattel Religionism">><<set $activeArcology.FSChattelReligionist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw index 70ecd0e4617af7f6d4764bac44669a388444cdf8..5f3a3dcf3cd57afe8733a86ee45e8d97568014d2 100644 --- a/src/uncategorized/neighborsDevelopment.tw +++ b/src/uncategorized/neighborsDevelopment.tw @@ -16,7 +16,7 @@ <<for $i = 0; $i < $arcologies.length; $i++>> <br> -''$arcologies[$i].name'', your <<if $arcologies[$i].direction == 0>>arcology<<else>>neighbor to the $arcologies[$i].direction<</if>>, +'' $arcologies[$i].name'', your <<if $arcologies[$i].direction == 0>>arcology<<else>>neighbor to the $arcologies[$i].direction<</if>>, /* PROSPERITY */ @@ -316,6 +316,14 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSHedonisticDecadence -= 10>> <</if>> <</if>> + <<if $arcologies[$i].FSIncestFetishist != "unset">> + <<if $arcologies[$i].FSIncestFetishist < random(10,150)>> + <<set $desc.push("Incest Fetishism")>> + <<set $arcologies[$i].FSIncestFetishist = "unset">> + <<else>> + <<set $arcologies[$i].FSIncestFetishist -= 10>> + <</if>> + <</if>> <<if $arcologies[$i].FSChattelReligionist != "unset">> <<if $arcologies[$i].FSChattelReligionist < random(10,150)>> <<set $desc.push("Chattel Religionism")>> @@ -487,7 +495,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if $arcologies[$i].direction != $arcologies[$j].direction>> <<if $arcologies[$i].name == $arcologies[$j].name>> <<set $arcologies[$i].name = "Arcology X-"+($i < 4 ? $i : $i + 1)>> /* X-4 is reserved for player's arcology, so X-1 is available */ - It resumes its original name, ''$arcologies[$i].name'', since the arcology to the $arcologies[$i].direction of yours is also named $arcologies[$j].name. + It resumes its original name, '' $arcologies[$i].name'', since the arcology to the $arcologies[$i].direction of yours is also named $arcologies[$j].name. <<break>> <</if>> <</if>> @@ -589,7 +597,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<default>> <<set $arcologies[$i].name = setup.ArcologyNamesSupremacistMixedRace.random()>> <</switch>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSSupremacist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on $arcologies[$i].FSSupremacistRace Supremacy. @@ -658,7 +666,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<default>> <<set $arcologies[$i].name = setup.ArcologyNamesSubjugationistMixedRace.random()>> <</switch>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSSubjugationist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on $arcologies[$i].FSSubjugationistRace Subjugationism. @@ -698,7 +706,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Repopulationism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name to setup.ArcologyNamesRepopulationist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSRepopulationFocus < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Repopulationism. @@ -741,7 +749,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSRestartResearch = 1>> Eugenics has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesEugenics.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSRestart < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Eugenics. @@ -790,7 +798,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSGenderRadicalistResearch = 1>> Gender Radicalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesGenderRadicalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSGenderRadicalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Gender Radicalism. @@ -844,7 +852,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Gender Fundamentalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesGenderFundamentalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSGenderFundamentalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Gender Fundamentalism. @@ -884,7 +892,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Paternalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesPaternalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSPaternalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Paternalism. @@ -927,7 +935,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Degradationism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesDegradationist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSDegradationist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Degradationism. @@ -976,7 +984,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Body Purism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesBodyPurist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSBodyPurist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Body Purism. @@ -1017,7 +1025,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSTransformationFetishistResearch = 1>> Transformation Fetishism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesTransformationFetishist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSTransformationFetishist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Transformation Fetishism. @@ -1061,7 +1069,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Youth Preferentialism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesYouthPreferentialist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <<set $arcologies[$i].FSYouthPreferentialistResearch = 1>> <</if>> <<elseif $arcologies[$i].FSYouthPreferentialist < 0>> @@ -1100,7 +1108,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Maturity Preferentialism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesMaturityPreferentialist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSMaturityPreferentialist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Maturity Preferentialism. @@ -1140,7 +1148,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Slimness Enthusiasm has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesSlimnessEnthusiast.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <<set $arcologies[$i].FSSlimnessEnthusiastResearch = 1>> <</if>> <<elseif $arcologies[$i].FSSlimnessEnthusiast < 0>> @@ -1188,7 +1196,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSAssetExpansionistResearch = 1>> Asset Expansionism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesAssetExpansionist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSAssetExpansionist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Asset Expansionism. @@ -1233,7 +1241,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Pastoralism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesPastoralist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSPastoralist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Pastoralism. @@ -1271,7 +1279,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Cummunism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesCummunism.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSCummunism < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Cummunism. @@ -1315,7 +1323,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Physical Idealism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesPhysicalIdealist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSPhysicalIdealist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Physical Idealism. @@ -1358,7 +1366,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $arcologies[$i].FSHedonisticDecadenceResearch = 1>> Decadent Hedonism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesHedonisticDecadence.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSHedonisticDecadence < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Decadent Hedonism. @@ -1378,6 +1386,43 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <</if>> <</if>> +<<if $arcologies[$i].FSIncestFetishist != "unset">> + <<set _societiesAdopted += 1>> + <<if $arcologies[$i].direction != 0>> + <<set $arcologies[$i].FSIncestFetishist += $efficiency>> + <</if>> + <<for $j = 0; $j < $arcologies.length; $j++>> + <<if $arcologies[$i].direction != $arcologies[$j].direction>> + <<if $arcologies[$j].FSIncestFetishist > $arcologies[$i].FSIncestFetishist + _FSCrossThresh>> + <<if $showNeighborDetails != 0>>Incest Fetishism in $arcologies[$i].name is influenced by $arcologies[$j].name's more advanced society.<</if>> + <<set $arcologies[$i].FSIncestFetishist += 1>> + <</if>> + <</if>> + <</for>> + <<if $arcologies[$i].direction != 0>> + <<if $arcologies[$i].FSIncestFetishist >= $FSLockinLevel>> + <<set $arcologies[$i].influenceBonus += $arcologies[$i].FSIncestFetishist - $FSLockinLevel>> + <<set $arcologies[$i].FSIncestFetishist = $FSLockinLevel>> + <<set $toSearch = $arcologies[$i].name>> + <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> + Incest Fetishism has reached stability and acceptance there. The arcology has been renamed + <<set $arcologies[$i].name = setup.ArcologyNamesIncestFetishist.random()>> + '' $arcologies[$i].name'' to mark the occasion. + <</if>> + <<elseif $arcologies[$i].FSIncestFetishist < 0>> + $arcologies[$i].name @@.cyan;has given up@@ on Incest Fetishism. + <<set $arcologies[$i].FSIncestFetishist = "unset">> + <</if>> + <</if>> + <<if $corpIncorporated == 1>> + <<if $captureUpgradeAge == "old">> + It's a @@.lightgreen;good market@@ for your corporation's motherly slaves, especially those that look like peoples mothers, improving sales and helping social progress. + <<set $arcologies[$i].FSIncestFetishist += 1>> + <<set $corpCash += _corpBonus>> + <</if>> + <</if>> +<</if>> + <<if $arcologies[$i].FSChattelReligionist != "unset">> <<set _societiesAdopted += 1>> <<if $arcologies[$i].direction != 0>> @@ -1399,7 +1444,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Chattel Religionism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesChattelReligionist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSChattelReligionist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Chattel Religionism. @@ -1455,7 +1500,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Roman Revivalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesRomanRevivalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSRomanRevivalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Roman Revivalism. @@ -1505,7 +1550,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Aztec Revivalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesAztecRevivalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSAztecRevivalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Aztec Revivalism. @@ -1555,7 +1600,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Egyptian Revivalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesEgyptianRevivalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSEgyptianRevivalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Egyptian Revivalism. @@ -1605,7 +1650,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Edo Revivalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesEdoRevivalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSEdoRevivalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Edo Revivalism. @@ -1655,7 +1700,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Arabian Revivalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesArabianRevivalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSArabianRevivalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Arabian Revivalism. @@ -1709,7 +1754,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if ($toSearch.indexOf("Arcology") != -1) && (random(0,2) == 0)>> Chinese Revivalism has reached stability and acceptance there. The arcology has been renamed <<set $arcologies[$i].name = setup.ArcologyNamesChineseRevivalist.random()>> - ''$arcologies[$i].name'' to mark the occasion. + '' $arcologies[$i].name'' to mark the occasion. <</if>> <<elseif $arcologies[$i].FSChineseRevivalist < 0>> $arcologies[$i].name @@.cyan;has given up@@ on Chinese Revivalism. @@ -1728,10 +1773,12 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol /* FUTURE SOCIETY ADOPTION */ <<if $arcologies[$i].direction != 0>> -<<if $arcologies[$i].rival == 1 || (_societiesAdopted < 4 && _societiesAdopted < ($arcologies[$i].prosperity/25)+($week/25)-3)>> +<<if _societiesAdopted < $FSCreditCount>> +<<if ($arcologies[$i].rival == 1) || (_societiesAdopted < ($arcologies[$i].prosperity/25)+($week/25)-3)>> <<include "Neighbors FS Adoption">> +<</if>> <</if>> <</if>> /* CLOSES FUTURE SOCIETY ADOPTION */ @@ -1941,6 +1988,13 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set $desc.push("attacking its Physical Idealism")>> <</if>> <</if>> +<<if $arcologies[$j].FSIncestFetishist > 60>> + <<if $arcologies[$i].FSIncestFetishist != "unset">> + <<set $arcologies[$i].FSIncestFetishist += Math.trunc(($arcologies[$j].FSIncestFetishist-60)/4)+$appliedInfluenceBonus>> + <<if $arcologies[$i].FSIncestFetishist > $FSLockinLevel>><<set _alignment += 1>><</if>> + <<set $desc.push("helping to advance its Incest Fetishism")>> + <</if>> +<</if>> <<if $arcologies[$j].FSChattelReligionist > 60>> <<if $arcologies[$i].FSChattelReligionist != "unset">> <<set $arcologies[$i].FSChattelReligionist += Math.trunc(($arcologies[$j].FSChattelReligionist-60)/4)+$appliedInfluenceBonus>> @@ -2077,9 +2131,9 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <</if>> <<if $desc.length == 0>> - ''$arcologies[$j].name'' attempts to influence it, but has no significant impacts. + '' $arcologies[$j].name'' attempts to influence it, but has no significant impacts. <<elseif $desc.length > 2>> - ''$arcologies[$j].name'''s mature culture influences $arcologies[$i].name, $desc[0], + '' $arcologies[$j].name'''s mature culture influences $arcologies[$i].name, $desc[0], <<for _k = 1; _k < $desc.length; _k++>> <<if _k < $desc.length-1>> $desc[_k], @@ -2088,9 +2142,9 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <</if>> <</for>> <<elseif $desc.length == 2>> - ''$arcologies[$j].name'''s culture influences $arcologies[$i].name's $desc[0] and $desc[1]. + '' $arcologies[$j].name'''s culture influences $arcologies[$i].name's $desc[0] and $desc[1]. <<else>> - ''$arcologies[$j].name'''s culture is beginning to influence $arcologies[$i].name's $desc[0]. + '' $arcologies[$j].name'''s culture is beginning to influence $arcologies[$i].name's $desc[0]. <</if>> <<if $appliedInfluenceBonus < 0>> @@ -2106,10 +2160,10 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<if $arcologies[$j].direction != 0>> <<if $desc.length == 0>> - ''$arcologies[$j].name'' is not satisfied with the impact its directed influence is having, and withdraws it with the intention of targeting it elsewhere. + '' $arcologies[$j].name'' is not satisfied with the impact its directed influence is having, and withdraws it with the intention of targeting it elsewhere. <<set $arcologies[$j].influenceTarget = -1>> <<elseif _alignment >= 4>> - ''$arcologies[$j].name'' is satisfied that its influence has brought $arcologies[$i].name into alignment, and withdraws its direct influence with the intention of targeting it elsewhere. + '' $arcologies[$j].name'' is satisfied that its influence has brought $arcologies[$i].name into alignment, and withdraws its direct influence with the intention of targeting it elsewhere. <<set $arcologies[$j].influenceTarget = -1>> <</if>> <</if>> @@ -2170,6 +2224,9 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<elseif $arcologies[$i].FSHedonisticDecadence > 60>> <<set _influential = 1>> <</if>> +<<if $arcologies[$i].FSIncestFetishist > 60>> + <<set _influential = 1>> +<</if>> <<if $arcologies[$i].FSChattelReligionist > 60>> <<set _influential = 1>> <</if>> @@ -2360,6 +2417,13 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set _eligibleTargets.push($arcologies[$j].direction)>> <</if>> <</if>> +<<if $arcologies[$i].FSIncestFetishist != "unset">> + <<if $arcologies[$j].FSIncestFetishist != "unset">> + <<if $arcologies[$j].FSIncestFetishist < $FSLockinLevel>> + <<set _eligibleTargets.push($arcologies[$j].direction)>> + <</if>> + <</if>> +<</if>> <<if $arcologies[$i].FSChattelReligionist != "unset">> <<if $arcologies[$j].FSChattelReligionist != "unset">> <<if $arcologies[$j].FSChattelReligionist < $FSLockinLevel>> diff --git a/src/uncategorized/neighborsFSAdoption.tw b/src/uncategorized/neighborsFSAdoption.tw index ba5622928cee86d6577e01dfc5ba0c5408014787..47a2979d695db1199fc2b926ac3e991e0d98b9ef 100644 --- a/src/uncategorized/neighborsFSAdoption.tw +++ b/src/uncategorized/neighborsFSAdoption.tw @@ -1,7 +1,7 @@ :: Neighbors FS Adoption [nobr] <br><br> -''$arcologies[$i].name'', your <<if $arcologies[$i].direction == 0>>arcology<<else>>neighbor to the $arcologies[$i].direction<</if>>, +'' $arcologies[$i].name'', your <<if $arcologies[$i].direction == 0>>arcology<<else>>neighbor to the $arcologies[$i].direction<</if>>, is prosperous enough that <<switch $arcologies[$i].government>> <<case "elected officials">> @@ -400,6 +400,19 @@ societal development. <</if>> <</if>> <<if $adopted == 0>> +<<if ($arcologies[$i].FSIncestFetishist == "unset")>> + <<if $familyTesting == 1>> + <<set _lover = $slaves.find(function(s) { return s.ID == $leaders[$j].relationshipTaget && areRelated(s, $leaders[$j]) && s.assignment == "live with your agent"; })>> + <<else>> + <<set _lover = $slaves.find(function(s) { return s.ID == $leaders[$j].relationshipTaget && s.ID == $leaders[$j].relationTaget && s.assignment == "live with your agent"; })>> + <</if>> + <<if ($leaders[$j].behavioralQuirk == "sinful" || $leaders[$j].sexualQuirk == "perverted") && def _lover>> + Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Incest Festishism@@, to share the love and joy she holds with her relativeTerm($leaders[$j], _lover). + <<set $arcologies[$i].FSIncestFetishist = 5>><<set $adopted = 1>> + <</if>> +<</if>> +<</if>> +<<if $adopted == 0>> <<if ($arcologies[$i].FSChattelReligionist == "unset")>> <<if ($arcologies[$i].FSNull == "unset")>> <<if $leaders[$j].behavioralQuirk == "devout">> @@ -421,39 +434,11 @@ societal development. <<if ($arcologies[$i].FSArabianRevivalist == "unset")>> <<if ($arcologies[$i].FSChineseRevivalist == "unset")>> <<if ($leaders[$j].relationshipTarget != 0)>> - <<for $k = 0; $k < $slaves.length; $k++>> - <<if $leaders[$j].mother == $slaves[$k].ID>> - <<if $leaders[$j].relationshipTarget == $slaves[$k].ID>> - Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Egyptian Revivalism@@, since she's already part of a gloriously incestuous relationship. - <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> - <</if>> - <<break>> - <<elseif $leaders[$j].father == $slaves[$k].ID>> - <<if $leaders[$j].relationshipTarget == $slaves[$k].ID>> - Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Egyptian Revivalism@@, since she's already part of a gloriously incestuous relationship. - <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> - <</if>> - <<break>> - <<elseif $leaders[$j].ID == $slaves[$k].father>> - <<if $leaders[$j].relationshipTarget == $slaves[$k].ID>> - Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Egyptian Revivalism@@, since she's already part of a gloriously incestuous relationship. - <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> - <</if>> - <<break>> - <<elseif $leaders[$j].ID == $slaves[$k].mother>> - <<if $leaders[$j].relationshipTarget == $slaves[$k].ID>> - Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Egyptian Revivalism@@, since she's already part of a gloriously incestuous relationship. - <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> - <</if>> - <<break>> - <<elseif areSisters($leaders[$j], $slaves[$k]) > 0>> - <<if $leaders[$j].relationshipTarget == $slaves[$k].ID>> - Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Egyptian Revivalism@@, since she's already part of a gloriously incestuous relationship. - <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> - <</if>> - <<break>> - <</if>> - <</for>> + <<set _lover = $slaves.findIndex(function(s) { return areRelated(s, $leaders[$j]) && $leaders[$j].relationshipTarget == s.ID; })>> + <<if _lover != -1>> + Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Egyptian Revivalism@@, since she's already part of a gloriously incestuous relationship. + <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> + <</if>> <<elseif $leaders[$j].nationality == "Chinese">> Your agent @@.pink;$leaders[$j].slaveName@@ successfully pushes it to @@.yellow;adopt Chinese Revivalism@@, since she's Chinese herself and can claim high honor in such a society. <<set $arcologies[$i].FSChineseRevivalist = 5>><<set $adopted = 1>> @@ -525,7 +510,6 @@ societal development. <<if ($arcologies[$i].FSDegradationist == "unset") && ($arcologies[$i].FSPaternalist == "unset")>> The arcology's racial Subjugationist culture @@.yellow;pushes it towards Degradationism.@@ <<set $arcologies[$i].FSDegradationist = 5>><<set $adopted = 1>> - <<break>> <<elseif ($arcologies[$i].FSRomanRevivalist == "unset") && ($arcologies[$i].FSAztecRevivalist == "unset") && ($arcologies[$i].FSEgyptianRevivalist == "unset") && ($arcologies[$i].FSEdoRevivalist == "unset") && ($arcologies[$i].FSArabianRevivalist == "unset") && ($arcologies[$i].FSChineseRevivalist == "unset")>> <<if random(0,1) == 0>> The arcology's racial Subjugationist culture @@.yellow;pushes it towards Egyptian Revivalism,@@ since the Ancient Egyptians are famous for keeping a race of slaves. @@ -641,7 +625,7 @@ societal development. The arcology's Youth Preferentialist culture @@.yellow;pushes it towards Slimness Enthusiasm,@@ since that's the kind of body many of its slaves have. <<set $arcologies[$i].FSSlimnessEnthusiast = 5>><<set $adopted = 1>> <<elseif ($arcologies[$i].FSRepopulationFocus == "unset") && ($arcologies[$i].FSRestart == "unset")>> - The arcology's Youth Preferentialist culture @@.yellow;pushes it towards Repopulation,@@ since many of its slaves are deliciously ripe for breeding. + The arcology's Youth Preferentialist culture @@.yellow;pushes it towards Repopulationism,@@ since many of its slaves are deliciously ripe for breeding. <<set $arcologies[$i].FSRepopulationFocus = 5>><<set $adopted = 1>> <</if>> <<elseif $arcologies[$i].FSMaturityPreferentialist > random(50,200)>> @@ -682,7 +666,7 @@ societal development. The arcology's Pastoralist culture @@.yellow;pushes it towards Asset Expansionism,@@ since they're convinced that there's no such thing as udders that are too big. <<set $arcologies[$i].FSAssetExpansionist = 5>><<set $adopted = 1>> <<elseif ($arcologies[$i].FSRepopulationFocus == "unset") && ($arcologies[$i].FSRestart == "unset")>> - The arcology's Pastoralist culture @@.yellow;pushes it towards Repopulation,@@ since pregnancy stimulates milk flow. + The arcology's Pastoralist culture @@.yellow;pushes it towards Repopulationisn,@@ since pregnancy stimulates milk flow. <<set $arcologies[$i].FSRepopulationFocus = 5>><<set $adopted = 1>> <</if>> <<elseif $arcologies[$i].FSCummunism > random(50,200)>> @@ -721,6 +705,23 @@ societal development. <</if>> <</if>> <<if $adopted == 0>> +<<if $arcologies[$i].FSIncestFetishist > random(50,200)>> + <<if ($arcologies[$i].FSRepopulationFocus == "unset") && ($arcologies[$i].FSRestart == "unset")>> + The arcology's Incest Fetishizing culture @@.yellow;pushes it towards Repopulationism,@@ in order to create many new future loving couples. + <<set $arcologies[$i].FSRepopulationFocus = 5>><<set $adopted = 1>> + <<elseif ($arcologies[$i].FSBodyPurist == "unset") && ($arcologies[$i].FSTransformationFetishist == "unset")>> + The arcology's Incest Fetishizing culture @@.yellow;pushes it towards Body Purism,@@ in order to keep its bloodlines pure. + <<set $arcologies[$i].FSBodyPurist = 5>><<set $adopted = 1>> + <<elseif ($arcologies[$i].FSPaternalist == "unset") && ($arcologies[$i].FSDegradationist == "unset")>> + The arcology's Incest Fetishizing culture @@.yellow;pushes it towards Paternalism,@@ as healthy slaves live longer allowing relationships to span generations. + <<set $arcologies[$i].FSPaternalist = 5>><<set $adopted = 1>> + <<elseif ($arcologies[$i].FSRomanRevivalist == "unset") && ($arcologies[$i].FSAztecRevivalist == "unset") && ($arcologies[$i].FSEgyptianRevivalist == "unset") && ($arcologies[$i].FSEdoRevivalist == "unset") && ($arcologies[$i].FSArabianRevivalist == "unset") && ($arcologies[$i].FSChineseRevivalist == "unset")>> + The arcology's Incest Fetishizing culture @@.yellow;pushes it towards Egyptian Revivalism,@@ as they naturally seek even more incestuous fun. + <<set $arcologies[$i].FSEgyptianRevivalist = 5>><<set $adopted = 1>> + <</if>> +<</if>> +<</if>> +<<if $adopted == 0>> <<if $arcologies[$i].FSChattelReligionist > random(50,200)>> <<if ($arcologies[$i].FSPaternalist == "unset") && ($arcologies[$i].FSDegradationist == "unset")>> The arcology's Chattel Religionist culture @@.yellow;pushes it towards Paternalism,@@ since charitable care for slaves' welfare has become widespread. @@ -750,8 +751,11 @@ societal development. <<if $adopted == 0>> <<if $arcologies[$i].FSEgyptianRevivalist > random(50,200)>> <<if ($arcologies[$i].FSChattelReligionist == "unset")>> - The arcology's Egyptian Revivalist culture @@.yellow;pushes it towards Chattel Religionism,@@ since worship is already becoming an established part of its life. - <<set $arcologies[$i].FSChattelReligionist = 5>><<set $adopted = 1>> + The arcology's Egyptian Revivalist culture @@.yellow;pushes it towards Chattel Religionism,@@ since worship is already becoming an established part of its life. + <<set $arcologies[$i].FSChattelReligionist = 5>><<set $adopted = 1>> + <<elseif $arcologies[$i].FSIncestFetishist == "unset">> + The arcology's Egyptian Revivalist culture @@.yellow;pushes it towards Incest Fetishism,@@ since more incest is only a good thing in its eyes. + <<set $arcologies[$i].FSIncestFetishist = 5>><<set $adopted = 1>> <</if>> <</if>> <</if>> @@ -981,7 +985,7 @@ societal development. <<default>> <<set $desc = "Its citizens are">> <</switch>> -<<switch random(1,25)>> +<<switch random(1,26)>> <<case 1>> <<set $seed = either("white", "asian", "latina", "middle eastern", "black", "indo-aryan", "pacific islander", "malay", "amerindian", "southern european", "semitic", "mixed race")>> <<if ($arcologies[$i].FSSubjugationist == "unset")>> @@ -1115,6 +1119,11 @@ societal development. $desc obsessed with cum, leading the arcology to @@.yellow;adopt Cummunism.@@ <<set $arcologies[$i].FSCummunism = 5>><<set $adopted = 1>> <</if>> +<<case 26>> + <<if ($arcologies[$i].FSIncestFetishist == "unset")>> + $desc obsessed with their relatives, leading the arcology to @@.yellow;adopt Incest Fetishism.@@ + <<set $arcologies[$i].FSIncestFetishist = 5>><<set $adopted = 1>> + <</if>> <</switch>> <</if>> <</if>> diff --git a/src/uncategorized/newGamePlus.tw b/src/uncategorized/newGamePlus.tw index 90d02ab3e8a9765910f19d844743eba8e7f2fc27..483dfaccc19aee04c915ca12e82f9088bc13a164 100644 --- a/src/uncategorized/newGamePlus.tw +++ b/src/uncategorized/newGamePlus.tw @@ -22,12 +22,14 @@ You have the funds to bring $slavesToImportMax slaves with you (or your equivale <<if $freshPC == 0>> <<if $retainCareer == 1 && $PC.career != "arcology owner">> - <<if $week > 52 || ($PC.slaving >= 100 && $PC.trading >= 100 && $PC.warfare >= 100 && $PC.slaving >= 100 && $PC.engineering >= 100 && $PC.medicine >= 100)>> + <<if $week > 52 || ($PC.slaving >= 100 && $PC.trading >= 100 && $PC.warfare >= 100 && $PC.engineering >= 100 && $PC.medicine >= 100 && $PC.hacking >= 100)>> You have acquired a fair amount of knowledge regarding arcologies and their day-to-day management in your time spent as one's owner qualifying you as an @@.orange;"arcology owner"!@@ Benefits include: - @@.lime;20% reduced cost of construction.@@ - @@.lime;Free additional starting rep along with easy rep maintenance.@@ - @@.lime;Reduced mercenary costs.@@ - @@.lime;An eye for gingered slaves.@@ + <br>@@.lime;20% reduced cost of construction.@@ + <br>@@.lime;Free additional starting rep along with easy rep maintenance.@@ + <br>@@.lime;Reduced mercenary costs.@@ + <br>@@.lime;An eye for gingered slaves.@@ + <br>@@.lime;An edge in all things data.@@ + <br> <<if $retainCareer == 1>> [[Change career.|New Game Plus][$retainCareer = 0]] <<elseif $retainCareer == 0>> diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw index 509a88c8db19a7455df21d1350641a02a729a995..73bf539f7c2df8d28b94515634d74f44ecec893e 100644 --- a/src/uncategorized/newSlaveIntro.tw +++ b/src/uncategorized/newSlaveIntro.tw @@ -586,6 +586,7 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if <<set $activeSlave.devotion += 4>> <<set $activeSlave.trust += 3>> <<set $activeSlave.preg = 0>> + <<set WombFlush($activeSlave)>> <<set $activeSlave.pregType = 0>> <<set $activeSlave.pregSource = 0>> <<set $activeSlave.pregKnown = 0>> @@ -1210,7 +1211,6 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if <<else>> <<VaginalVCheck>> <</if>> - <<SetPregType $activeSlave>> <<if $arcologies[0].FSRestart != "unset">> The Societal Elite @@.green;disapprove@@ of this breach of eugenics. <<set $failedElite += 5>> @@ -1223,10 +1223,11 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if <</if>> <</replace>> <<set $activeSlave.preg = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> <<set $activeSlave.pregWeek = 1>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregSource = -1>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>> <</link>> <</if>> <</if>> @@ -1239,7 +1240,7 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if <</replace>> <<set $activeSlave.devotion -= 5>> <<set $activeSlave.trust -= 10>> - <<set $activeSlave.vagina = 1>> + <<set $activeSlave.vaginalCount += 1>> <<set $vaginalTotal += 1>> <<set $activeSlave.vagina = 1>> <</link>> @@ -1249,7 +1250,7 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if <<replace "#introResult">> You cuff her wrists and ankles and secure her unresisting body to the couch next to your desk with her legs spread. She writhes and moans as you enter her virgin pussy. You might not have even had to restrain her for this, but being tied up and deflowered sends her a message. She's certainly entered your service in a way that colors her impression of you @@.hotpink;with pain@@ and @@.gold;fear.@@ @@.lime;Her tight little pussy has been broken in.@@ <</replace>> - <<set $activeSlave.devotion -= 5>> + <<set $activeSlave.devotion += 5>> <<set $activeSlave.trust -= 10>> <<set $activeSlave.vaginalCount += 1>> <<set $vaginalTotal += 1>> diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index dfa43ff31c4bc1b4b019b5a7f2c2e5dd9117dd7f..56eb99a1751a85741e69dca73c4c9437c74e515b 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -114,9 +114,9 @@ <<set $HeadGirl = $slaves[_NewHG], $slaves[_NewHG].assignment = "be your Head Girl", $slaves[_NewHG].diet = "healthy">> <</if>> -<<if $PC.preg >= 38 && random(1,100) > 50>> +<<if WombBirthReady($PC, 38) > 0 && random(1,100) > 50>> <<set $PC.labor = 1>> -<<elseif $PC.preg >= 43>> +<<elseif WombBirthReady($PC, 43) > 0>> <<set $PC.labor = 1>> <</if>> diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw old mode 100755 new mode 100644 index 11399d69a2434902ebafba7aaba109e729cd6d12..c1feb313ce7f995e496360397ebb310f83fb0b33 --- a/src/uncategorized/nonRandomEvent.tw +++ b/src/uncategorized/nonRandomEvent.tw @@ -49,9 +49,15 @@ <<goto "P snatch and grab">> <<elseif (_effectiveWeek == 43)>> <<goto "P invasion">> -<<elseif (_effectiveWeek == 44) && ($mercenaries > 0)>> - <<set $activeSlave = 0>> +<<elseif (_effectiveWeek == 44) && ($mercenaries > 0) && $mercRomeo != 1>> + <<set _valid = $slaves.find(function(s) { return (["serve the public", "serve in the club", "whore", "work in the brothel"].includes(s.assignment) || s.publicCount >= 50) && s.fetish != "mindbroken" && s.fuckdoll == 0; })>> + <<if def _valid>> + <<set $mercRomeo = 1, $activeSlave = 0>> <<goto "P mercenary romeo">> + <<else>> + <<set $mercRomeo = 1>> + <<goto "Nonrandom Event">> + <</if>> <<elseif (_effectiveWeek == 46) && ($mercenaries > 0)>> <<goto "P raid invitation">> <<elseif (_effectiveWeek == 52) && ($seeHyperPreg == 1) && $seePreg != 0 && $badB != 1>> diff --git a/src/uncategorized/officeDescription.tw b/src/uncategorized/officeDescription.tw index 06575fa66fb5ec67b5173aafa1d7d9c4fd9053c1..6f600ad8a7fb24fdcf574697f7b57aaaa1c69b8a 100644 --- a/src/uncategorized/officeDescription.tw +++ b/src/uncategorized/officeDescription.tw @@ -125,13 +125,13 @@ <<case "chinese revivalist">> she's depicted wearing colorful silk robes; she's pulled them open to flash her lovely body. <<case "chattel religionist">> - she's depicted striking a sexy pose, chosen specifically to draw attention to the symbols of your relgion that adorn her nipples. + she's depicted striking a sexy pose, chosen specifically to draw attention to the symbols of your religion that adorn her nipples. <<case "repopulation focus">> - she's depicted strinking a sexy pose made to draw the eye to her pregnant belly. + she's depicted striking a sexy pose made to draw the eye to her pregnant belly. <<case "eugenics">> she's depicted striking a sexy pose; she's so stunning you can't look away. <<case "physical idealist">> - she's depicted flexing her <<if $arcologies[0].FSPhysicalIdealistStrongFat == 1>>fat vieled <</if>>tremendous musculature intimidatingly. + she's depicted flexing her <<if $arcologies[0].FSPhysicalIdealistStrongFat == 1>>fat veiled <</if>>tremendous musculature intimidatingly. <<case "hedonistic decadence">> she's depicted deep throating a banana while groping her large, soft belly. <<case "gender radicalist">> diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw index 9bf470ea1a5021c82cbfd591dbe72a9fc585a8e7..0c71b78da36602949adfb87cadb5d0ad9873b312 100644 --- a/src/uncategorized/options.tw +++ b/src/uncategorized/options.tw @@ -151,6 +151,27 @@ Main menu leadership controls displayed [[Below|Options][$positionMainLinks = -1]] <</if>> +<br> + +Main menu slave tabs are +<<if $useSlaveSummaryTabs != 1>> +@@.red;DISABLED@@. [[Enable|Options][$useSlaveSummaryTabs = 1]] +<<else>> +@@.cyan;ENABLED@@. [[Disable|Options][$useSlaveSummaryTabs = 0, $useSlaveSummaryOverviewTab = 0]] +<</if>> + + +<<if $useSlaveSummaryTabs == 1>> + <br> + + Condense special slaves into an overview tab + <<if $useSlaveSummaryOverviewTab != 1>> + @@.red;DISABLED@@. [[Enable|Options][$useSlaveSummaryOverviewTab = 1]] + <<else>> + @@.cyan;ENABLED@@. [[Disable|Options][$useSlaveSummaryOverviewTab = 0]] + <</if>> +<</if>> + <br> Slave summary caching is <<if $useSummaryCache>>@@.cyan;ENABLED@@. [[Disable|Options][$useSummaryCache = false]]<<else>>@@.red;DISABLED@@. [[Enable|Options][$useSummaryCache = true]]<</if>> diff --git a/src/uncategorized/pCoupAftermath.tw b/src/uncategorized/pCoupAftermath.tw index 6555fd36d31ac0d2d19c39cb3f6193f8c680ecf9..3df68be957fa1542c1e1c9d9023b70a7d5b78c48 100644 --- a/src/uncategorized/pCoupAftermath.tw +++ b/src/uncategorized/pCoupAftermath.tw @@ -15,7 +15,7 @@ The face is vigorous, determined, <<if _num < $seeDicks>>and masculine. The very And, as you suspected, it's one of your neighbors. It's the individual who owns <<for $i = 0; $i < $arcologies.length; $i++>> <<if $arcologies[$i].rival == 1>> - ''$arcologies[$i].name.'' + '' $arcologies[$i].name.'' <<break>> <</if>> <</for>> diff --git a/src/uncategorized/pHostageAcquisition.tw b/src/uncategorized/pHostageAcquisition.tw index 6b3962f0b77489f25a72554bd6978b577392c411..43868f74fbdfea8a518da38eb35eb07761e01208 100644 --- a/src/uncategorized/pHostageAcquisition.tw +++ b/src/uncategorized/pHostageAcquisition.tw @@ -28,6 +28,8 @@ a gang member <<case "servant">> a maid +<<case "BlackHat">> + a brilliant code breaker <<default>> a prominent Free Cities citizen <</switch>> @@ -51,7 +53,8 @@ Your hired mercenaries are en route now with your precious cargo. The mercenary captain quickly gags her, "My apologies, I did warn you she was a handful. Please be careful when you unbind her, I'd hate for anything to happen to my best employer." He says, as he and his group exit your penthouse, leaving you with the enraged $activeSlave.slaveName. She looks the same as you remember, but she acts nothing like the girl you used to know. Odds are high that she'll cause problems for you in the future. <</if>> <<case "Racial Supremacism">> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombInit($activeSlave)>> <<if $rivalryDuration <= 5>> Upon seeing you, $activeSlave.slaveName dives into your <<if $PC.boobs == 1>>ample bust<<else>>chest<</if>> sobbing "Thank you... Thank you...". You gently wrap your arms around her in a comforting embrace. She's nearly the same as you remember her, albeit acting slightly odd and covered in scars. <<set $activeSlave.weight = 0>> diff --git a/src/uncategorized/pMercenaryRomeo.tw b/src/uncategorized/pMercenaryRomeo.tw index cffccf4b33a7a5aeafa825da96749779cb7fdb96..9e2eb3863f20e092d24807dd8e409920df64452a 100644 --- a/src/uncategorized/pMercenaryRomeo.tw +++ b/src/uncategorized/pMercenaryRomeo.tw @@ -13,10 +13,12 @@ <</for>> <<if $activeSlave == 0>> <<for _pmr = $slaves.length - 1; _pmr >= 0; _pmr-->> - <<if ($slaves[_pmr].publicCount > 0) && (($activeSlave == 0) || (random(1,100) > 50))>> - <<set $activeSlave = $slaves[_pmr]>> - <<break>> - <</if>> + <<if ($slaves[_pmr].publicCount > 0) && ($slaves[_pmr].newGamePlus == 0) && ($slaves[_pmr].relationship > -3) && (($activeSlave == 0) || (random(1,100) > 50))>> + <<if !["be your Concubine", "serve in the master suite"].includes($slaves[_pmr].assignment)>> + <<set $activeSlave = $slaves[_pmr]>> + <<break>> + <</if>> + <</if>> <</for>> <</if>> <<if $activeSlave == 0>> @@ -49,7 +51,13 @@ proffered by an attentive slave girl, he seems almost bashful. <br><br> -"<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I'll say this straight. I'd like to buy one of your slaves. I've been seeing <<EventNameLink $activeSlave>> a lot, and she makes the years sit a little lighter on me. I've scraped together what I can, and I can pay <<print cashFormat($slaveCost)>>." It's a decent price, probably a little less than you could get at auction. It's a huge sum for a mercenary; it's probably his entire savings. You ask what he would do with her. "Well," he says, actually blushing, "I'd free her. And marry her, if she'd have me." +"<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I'll say this straight. I'd like to buy one of your slaves. +<<if ["serve the public", "serve in the club", "whore", "work in the brothel"].includes($activeSlave.assignment)>> + I've been seeing <<EventNameLink $activeSlave>> a lot, and she makes the years sit a little lighter on me. +<<else>> + I've seen <<EventNameLink $activeSlave>> here and there and I can't stop thinking about her. I feel she'd make the years sit a little lighter on me. +<</if>> +I've scraped together what I can, and I can pay <<print cashFormat($slaveCost)>>." It's a decent price, probably a little less than you could get at auction. It's a huge sum for a mercenary; it's probably his entire savings. You ask what he would do with her. "Well," he says, actually blushing, "I'd free her. And marry her, if she'd have me." <br><br> @@ -57,32 +65,64 @@ proffered by an attentive slave girl, he seems almost bashful. <<link "Decline, and tell her not to see him">> <<EventNameDelink $activeSlave>> <<replace "#result">> - $activeSlave.slaveName obeys your orders not to see the old mercenary. Though neither he or $activeSlave.slaveName says a word about it, his squadmates are not so closemouthed. Soon the tragic story of The Mercenary and the Slave Girl is being told in bars and brothels across the Free City, with you naturally playing @@.red;the role of the villain.@@ - <<set $rep -= 1000>> + $activeSlave.slaveName obeys your orders not to see the old mercenary. Though neither he or $activeSlave.slaveName says a word about it, his squadmates are not so closemouthed. Soon the tragic story of The Mercenary and the Slave Girl is being told in bars and brothels across the Free City, with you naturally playing @@.red;the role of the villain.@@ + <<set $rep -= 1000>> <</replace>> <</link>> <br><<link "Politely decline">> <<EventNameDelink $activeSlave>> <<replace "#result">> - "Ah well," he says, "didn't think you would, but I had to ask. If you'd be so kind as to keep her assigned so's I can see her, I would be grateful. That was a fine victory, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>; come down to the bar and join the boys and I. We'll buy you a drink. Devil knows, thanks to you we can afford to." + "Ah well," he says, "didn't think you would, but I had to ask. If you'd be so kind as to keep her assigned so's I can see her, I would be grateful. That was a fine victory, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>; come down to the bar and join the boys and I. We'll buy you a drink. Devil knows, thanks to you we can afford to." + <<if $activeSlave.relationship == -3 && $activeSlave.fetish != "mindbroken" && $activeSlave.devotion+$activeSlave.trust > 190>>$activeSlave.slaveName politely thanks you for not letting him take her away.<</if>> <</replace>> <</link>> <br><<link "Accept">> <<EventNameDelink $activeSlave>> <<replace "#result">> - The mercenary leaves to collect his purchase. On the video feeds, you see that $activeSlave.slaveName can hardly believe what's happened. <<if $activeSlave.amp != 1>>She hugs him, sobbing into his shoulder. As they walk hand in hand down towards his quarters,<<else>>As he picks up her limbless form to give her a hug,<</if>> she gives the nearest camera a little nod and silently mouths the words 'thank you, <<WrittenMaster $activeSlave>>.' Soon the romantic story of The Mercenary and the Slave Girl is being told in bars and brothels across the Free City, with you naturally playing @@.green;a supporting role.@@ - <<set $rep += 500, $cash += $slaveCost>> - <<include "Remove activeSlave">> + The mercenary leaves to collect his purchase. On the video feeds, you see that $activeSlave.slaveName can hardly believe what's + <<if $activeSlave.relationship == -3 && $activeSlave.fetish != "mindbroken" && $activeSlave.devotion+$activeSlave.trust > 190>> + happening. You can't hear what he says as he takes out a ring, but her reaction speaks clearly. She says "No." + <<if $activeSlave.amp != 1>> + She points back into your penthouse and returns to her home. + <<else>> + She gestures towards the nearest camera and he helps her back into your penthouse. + <</if>> + The only thing she wants after being freed is to return to your side. + "I thought I was giving her a better life... But she already had everything she wanted. I'm sorry for putting you in such a position." You can hear the sadness in his voice. "Thank you for your time. I'm sorry to have bothered you." + Since she returned to slavery, it's only fair to return the credits he paid for her. He thanks you hollowly before heading on his way. + <<else>> + happened. + <<if $activeSlave.amp != 1>> + She hugs him, sobbing into his shoulder. As they walk hand in hand down towards his quarters, + <<else>> + As he picks up her limbless form to give her a hug, + <</if>> + she gives the nearest camera a little nod and silently mouths the words 'thank you, <<WrittenMaster $activeSlave>>.' Soon the romantic story of The Mercenary and the Slave Girl is being told in bars and brothels across the Free City, with you naturally playing @@.green;a supporting role.@@ + <<set $rep += 500, $cash += $slaveCost>> + <<include "Remove activeSlave">> + <</if>> <</replace>> <</link>> <br><<link "Give her to him as a gift">> <<EventNameDelink $activeSlave>> <<replace "#result">> - The mercenary cannot believe his ears. After you repeat yourself twice, he leaves to collect your gift, thanking you clumsily. On the video feeds, you see that $activeSlave.slaveName can hardly believe what's happened. <<if $activeSlave.amp != 1>>She hugs him, sobbing into his shoulder. As they walk hand in hand down towards his quarters,<<else>>As he picks up her limbless form to give her a hug,<</if>> she gives the nearest camera a little nod and silently mouths the words 'thank you, <<WrittenMaster $activeSlave>>.' You smile to yourself; when they get there they'll find flowers and a paid reservation at the arcology's best restaurant. Soon the story is being told in bars and brothels across the Free City, with you naturally playing @@.green;a starring role.@@ Some days later, you hear a dramatization is being filmed, with an aging action star playing the mercenary, a rising starlet playing $activeSlave.slaveName, and a noted character actor playing you. - <<set $rep += 3000>> - <<set _poster = "a poster for the movie that was made about the love between one of your mercenaries and " + $activeSlave.slaveName>> - <<set $trinkets.push(_poster)>> - <<include "Remove activeSlave">> + The mercenary cannot believe his ears. After you repeat yourself twice, he leaves to collect your gift, thanking you clumsily. + <<if $activeSlave.relationship == -3 && $activeSlave.fetish != "mindbroken" && $activeSlave.devotion+$activeSlave.trust > 190>> + happening. You can't hear what he says as he takes out a ring, but her reaction speaks clearly. She says "No." + <<if $activeSlave.amp != 1>> + She points back into your penthouse and returns to her home. + <<else>> + She gestures towards the nearest camera and he helps her back into your penthouse. + <</if>> + The only thing she wants after being freed is to return to your side. + "I thought I was giving her a better life... But she already had everything she wanted. I'm sorry for putting you in such a position." You can hear the sadness in his voice. "Thank you for your time. I'm sorry to have bothered you." + <<else>> + On the video feeds, you see that $activeSlave.slaveName can hardly believe what's happened. <<if $activeSlave.amp != 1>>She hugs him, sobbing into his shoulder. As they walk hand in hand down towards his quarters,<<else>>As he picks up her limbless form to give her a hug,<</if>> she gives the nearest camera a little nod and silently mouths the words 'thank you, <<WrittenMaster $activeSlave>>.' You smile to yourself; when they get there they'll find flowers and a paid reservation at the arcology's best restaurant. Soon the story is being told in bars and brothels across the Free City, with you naturally playing @@.green;a starring role.@@ Some days later, you hear a dramatization is being filmed, with an aging action star playing the mercenary, a rising starlet playing $activeSlave.slaveName, and a noted character actor playing you. + <<set $rep += 3000>> + <<set _poster = "a poster for the movie that was made about the love between one of your mercenaries and " + $activeSlave.slaveName>> + <<set $trinkets.push(_poster)>> + <<include "Remove activeSlave">> + <</if>> <</replace>> <</link>> </span> diff --git a/src/uncategorized/pRivalInitiation.tw b/src/uncategorized/pRivalInitiation.tw index c7e52d5e31d6f81a9fc4abeb900878e945d0e6ac..8333e4fc24abb97559340a39fd0605e270b575f1 100644 --- a/src/uncategorized/pRivalInitiation.tw +++ b/src/uncategorized/pRivalInitiation.tw @@ -52,7 +52,8 @@ This is a special week, the week of your victory. <<EventNameLink $activeSlave>> <<replace "#result">> You announce that since $activeSlave.slaveName damaged the arcology, she will be taking a leading role in the reconstruction. She will be doing this by replacing one of the residents killed in the violence - by bearing a new slave, to be conceived collectively. The shame and @@.mediumorchid;horror@@ of her future as breeding stock comes home to her as she's restrained in a chair with her legs spread. Soon, the stream of fluids is running down her thoroughly-fucked pussy and over her virgin anus to pool on the floor beneath her. Modern medical imaging reveals her fertile ovum's last, losing battle against a legion of sperm in real time, and the images are projected on large screens. <<set $rep += 500, $activeSlave.preg = 1, $activeSlave.pregSource = -2, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.devotion -= 15>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, -2, 1)>> <<if $activeSlave.publicCount>><<set $activeSlave.publicCount += 47>><<else>><<set $activeSlave.publicCount = 47>><</if>> <</replace>> <</link>> diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw index 691da25acfc718e4acc053af26567070e9f6da39..984014b382c71f20ada038535fc0d8ff4beb1964 100644 --- a/src/uncategorized/pRivalryActions.tw +++ b/src/uncategorized/pRivalryActions.tw @@ -59,6 +59,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 8>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.vagina = 2>> <<set $hostage.oralCount += 50>> @@ -75,6 +76,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 40>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.vagina = 2>> <<set $hostage.oralCount += 50>> @@ -281,6 +283,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 8>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.oralCount += 50>> <<set $hostage.vaginalCount += 50>> @@ -295,6 +298,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 40>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.boobs += 100>> <<set $hostage.oralCount += 50>> @@ -491,7 +495,8 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<case "pregnancy">> take you off your birth control, won't be long after that." <<set $hostage.preg = 1>> - <<SetPregType $hostage>> + <<set $hostage.pregType = setPregType($hostage)>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, 1)>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = 1>> <<SetBellySize $hostage>> @@ -550,6 +555,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 1>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = 12>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <</if>> <<if $hostage.vagina < 3>> @@ -585,6 +591,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 8>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.vagina = 3>> <<set $hostage.boobs += 100>> @@ -606,6 +613,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 40>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.vagina = 3>> <<set $hostage.boobs += 300>> @@ -858,6 +866,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 1>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $hostage.preg>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <</if>> <<if $hostage.vagina < 4>> @@ -889,6 +898,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 8>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.vagina = 4>> <<set $hostage.boobs += 100>> @@ -907,6 +917,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 40>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $rivalryDuration>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <<set $hostage.vagina = 4>> <<set $hostage.boobs += 400>> @@ -1098,6 +1109,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 1>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = $hostage.preg>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> <</if>> <<set $hostage.oralCount += 50>> @@ -1116,37 +1128,39 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty giving an interview. She gushes over how important it is for only the best of society to reproduce, and how it is an atrocity that some people bring so many wasted lives into being. <<case "Eugenics">> <<if $seeHyperPreg != 1>> - <<set $hostage.preg = 1>> - <<set $hostage.pregType = 8>> - <<set $hostage.pregKnown = 1>> - <<set $hostage.pregWeek = 1>> - <<SetBellySize $hostage>> - <<set $hostage.vagina = 5>> - <<if $hostage.births < 1>> - <<set $hostage.births = 1>> - <<set $hostage.birthsTotal += 1>> - <</if>> - <<set $hostage.oralCount += 100>> - <<set $hostage.vaginalCount += 100>> - <<set $hostage.analCount += 100>> - <<set $hostage.mammaryCount += 100>> - <<set $activeSlave.bellySag = 2, $activeSlave.bellySagPreg = 2>> + <<set $hostage.preg = 1>> + <<set $hostage.pregType = 8>> + <<set $hostage.pregKnown = 1>> + <<set $hostage.pregWeek = 1>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> + <<SetBellySize $hostage>> + <<set $hostage.vagina = 5>> + <<if $hostage.births < 1>> + <<set $hostage.births = 1>> + <<set $hostage.birthsTotal += 1>> + <</if>> + <<set $hostage.oralCount += 100>> + <<set $hostage.vaginalCount += 100>> + <<set $hostage.analCount += 100>> + <<set $hostage.mammaryCount += 100>> + <<set $activeSlave.bellySag = 2, $activeSlave.bellySagPreg = 2>> <<else>> - <<set $hostage.preg = 1>> - <<set $hostage.pregType = 40>> - <<set $hostage.pregKnown = 1>> - <<set $hostage.pregWeek = 1>> - <<SetBellySize $hostage>> - <<set $hostage.vagina = 5>> - <<if $hostage.births < 50>> - <<set $hostage.births = 20>> - <<set $hostage.birthsTotal += 20>> - <</if>> - <<set $hostage.oralCount += 100>> - <<set $hostage.vaginalCount += 100>> - <<set $hostage.analCount += 100>> - <<set $hostage.mammaryCount += 100>> - <<set $activeSlave.bellySag = 5, $activeSlave.bellySagPreg = 5>> + <<set $hostage.preg = 1>> + <<set $hostage.pregType = 40>> + <<set $hostage.pregKnown = 1>> + <<set $hostage.pregWeek = 1>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> + <<SetBellySize $hostage>> + <<set $hostage.vagina = 5>> + <<if $hostage.births < 50>> + <<set $hostage.births = 20>> + <<set $hostage.birthsTotal += 20>> + <</if>> + <<set $hostage.oralCount += 100>> + <<set $hostage.vaginalCount += 100>> + <<set $hostage.analCount += 100>> + <<set $hostage.mammaryCount += 100>> + <<set $activeSlave.bellySag = 5, $activeSlave.bellySagPreg = 5>> <</if>> giving an interview. She gushes over how important it is for women to conceive and carry as many children as they can, as well as how terrible it is that some people strip away a woman's most important purpose. Before she can continue, her water breaks and she drops to the floor. You close the video in disgust of whats coming. <<case "Gender Radicalism">> @@ -1155,6 +1169,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 1>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = 8>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> giving an interview. She gushes over how great it feels knowing that someone is always watching out for her safety and health as a traditional woman, as well as how terrible it is that some people want to blur the lines between the genders. <<case "Gender Fundamentalism">> @@ -1195,6 +1210,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.pregType = 1>> <<set $hostage.pregKnown = 1>> <<set $hostage.pregWeek = 14>> + <<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>> <<SetBellySize $hostage>> and her owner at the altar during their wedding. It seems she couldn't wait, since her belly already shows signs of an early pregnancy. <<case "Body Purism">> diff --git a/src/uncategorized/pRivalryHostage.tw b/src/uncategorized/pRivalryHostage.tw index dd3da612d151d3f975c0a118d7db53c0be149d35..e52dfb29ae4feb8a16699a79bfce79823991df0f 100644 --- a/src/uncategorized/pRivalryHostage.tw +++ b/src/uncategorized/pRivalryHostage.tw @@ -22,7 +22,7 @@ <<set $activeSlave.waist = Math.clamp($activeSlave.waist,-55,15)>> <<set $activeSlave.hips = 0>> <<set $activeSlave.shoulders = -1>> -<<if $activeSlave.vagina == 0>><<set $activeSlave.vagina = 1>><</if>> +<<if $activeSlave.vagina <= 0>><<set $activeSlave.vagina = 1>><</if>> <<if $activeSlave.anus == 0>><<set $activeSlave.anus = 1>><</if>> <<set $activeSlave.burst = 0>> <<set $activeSlave.relation = 0>> @@ -43,6 +43,7 @@ <<set $activeSlave.boobs = Number($activeSlave.boobs) || 400>> <<set $hostage = $activeSlave>> +<<set WombFlush($hostage)>> Only a few days into your inter-arcology war, you receive a video message from your rival. Once $assistantName is satisfied that the file is clean, you clear your office and pull it up. To your surprise, there are two faces on your desk, not one. One of them is your rival, and after a moment, you remember who the other is. You recognize her from your <<switch $PC.career>> @@ -112,6 +113,17 @@ time as a gang leader. She was one of your best, yet you never got close enough, <<set $activeSlave.muscles = 40>> <<set $activeSlave.health = 100>> <<set $activeSlave.combatSkill = 1>> +<<case "BlackHat">> +time as a hacker for hire. She supported you on jobs, even sent some choice pictures of herself, but you were never really close, + <<set $activeSlave.career = "a shut-in">> + <<if $pedo_mode == 1>> + <<set $activeSlave.actualAge = random(13,18)>> + <<else>> + <<set $activeSlave.actualAge = random(18,21)>> + <</if>> + <<set $activeSlave.face = 75>> + <<set $activeSlave.intelligence = 3>> + <<set $activeSlave.intelligenceImplant = 1>> <<case "capitalist">> career in venture capital. She was a rising manager, young, attractive, and bright. You never worked particularly closely with her, <<set $activeSlave.career = "a manager">> @@ -200,6 +212,7 @@ time as a gang leader. She was one of your best, yet you never got close enough, <<set $activeSlave.visualAge = $activeSlave.actualAge>> <<set $activeSlave.physicalAge = $activeSlave.actualAge>> <<set $activeSlave.ovaryAge = $activeSlave.actualAge>> +<<ResyncHeight $activeSlave>> but you do remember her, and your rival knows it. This is obviously the best they could come up with to provoke an emotional reaction. <br><br> diff --git a/src/uncategorized/pRivalryVictory.tw b/src/uncategorized/pRivalryVictory.tw index db03712cdc56f5a27c77d4526eb235e4963852e4..0d9b1d83e0e0194508c4a121740fde66f6eead5f 100644 --- a/src/uncategorized/pRivalryVictory.tw +++ b/src/uncategorized/pRivalryVictory.tw @@ -369,12 +369,12 @@ For the first time, you receive a direct call from your rival. You pictured the <<set $activeSlave.preg = 25>> <<if $seeHyperPreg == 1>> <<set $activeSlave.vagina = 10>> - <<set $activeSlave.pregType = random(20,29)>> + <<set $activeSlave.pregType = random(20,35)>> <<set $activeSlave.birthsTotal = random(120,180)>> <<set $activeSlave.bellySag = 30, $activeSlave.bellySagPreg = 30>> <<else>> <<set $activeSlave.vagina = 5>> - <<set $activeSlave.pregType = either(3,3,4,4,4,5)>> + <<set $activeSlave.pregType = either(3,3,4,4,4,5,5,6,6,7,7,8,8,8)>> <<set $activeSlave.birthsTotal = random(18,27)>> <<set $activeSlave.bellySag = 2, $activeSlave.bellySagPreg = 2>> <</if>> diff --git a/src/uncategorized/peConcubineInterview.tw b/src/uncategorized/peConcubineInterview.tw index 84025f6b89661a7e8a428f9fff2f73c438b3475a..d058bc561d829139322f108d6a48ad0dfe55c9b2 100644 --- a/src/uncategorized/peConcubineInterview.tw +++ b/src/uncategorized/peConcubineInterview.tw @@ -304,10 +304,10 @@ You receive an official communication from a popular talk show hosted in one of Blood empire reborn, <<elseif $arcologies[0].FSEgyptianRevivalist > 0>> the land of the Pharaoh<<s>> reborn, - <<elseif $arcologies[0].FSGenderRadicalist > 0>> - more a<<ss>> than you can po<<ss>>ibly fuck, <</if>> - <<if $arcologies[0].FSGenderFundamentalist > 0>> + <<if $arcologies[0].FSGenderRadicalist > 0>> + more a<<ss>> than you can po<<ss>>ibly fuck, + <<elseif $arcologies[0].FSGenderFundamentalist > 0>> so much pu<<ss>>y it'<<s>> unbelievable, <</if>> <<if $arcologies[0].FSChattelReligionist > 0>> @@ -345,6 +345,9 @@ You receive an official communication from a popular talk show hosted in one of MILF<<s>> on their tenth, <</if>> lip<<s>>, tongue<<s>>, + <<if $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + in<<c>>e<<s>>t, + <</if>> <<if $arcologies[0].FSSlimnessEnthusiast == "unset">> huge breast<<s>> and plu<<sh>> a<<ss>>e<<s>>, <<elseif $arcologies[0].FSAssetExpansionist == "unset">> diff --git a/src/uncategorized/persBusiness.tw b/src/uncategorized/persBusiness.tw index 6550055c9a9036ee8a947c73706f0e6ae23392b5..8bb9b5b2bec7810b6810511a8d94271057bdef57 100644 --- a/src/uncategorized/persBusiness.tw +++ b/src/uncategorized/persBusiness.tw @@ -376,9 +376,6 @@ <<set $proclamationsCooldown = 4, $personalAttention = "business">> <</if>> -<<if $PCWounded == 1 && $secExp == 1>> - Does nothing this week - <</if>> <<if $PC.actualAge >= $IsInPrimePC && $PC.actualAge < $IsPastPrimePC>> <<set _Cal = Math.ceil(random($AgeTrainingLowerBoundPC,$AgeTrainingUpperBoundPC)*$AgeEffectOnTrainerEffectivenessPC)>> @@ -388,9 +385,10 @@ /* <<set _Cal = Math.ceil(random($AgeTrainingLowerBoundPC,$AgeTrainingUpperBoundPC)*$AgeEffectOnTrainerEffectivenessPC)>> */ /* <<set _X = 0>> */ /* <</if>> */ - - <<switch $personalAttention>> -<<case trading>> + +<<if $PCWounded != 1>> +<<switch $personalAttention>> +<<case "trading">> <<set _oldSkill = $PC.trading>> <<if _X == 1>> <<set $PC.trading += _Cal>> @@ -424,7 +422,7 @@ <</if>> <</if>> -<<case warfare>> +<<case "warfare">> <<set _oldSkill = $PC.warfare>> <<if _X == 1>> <<set $PC.warfare += _Cal>> @@ -458,7 +456,7 @@ <</if>> <</if>> -<<case slaving>> +<<case "slaving">> <<set _oldSkill = $PC.slaving>> <<if _X == 1>> <<set $PC.slaving += _Cal>> @@ -492,7 +490,7 @@ <</if>> <</if>> -<<case engineering>> +<<case "engineering">> <<set _oldSkill = $PC.engineering>> <<if _X == 1>> <<set $PC.engineering += _Cal>> @@ -526,7 +524,7 @@ <</if>> <</if>> -<<case medicine>> +<<case "medicine">> <<set _oldSkill = $PC.medicine>> <<if _X == 1>> <<set $PC.medicine += _Cal>> @@ -559,7 +557,66 @@ You have made progress towards mastering slave surgery. <</if>> <</if>> + +<<case "hacking">> + <<set _oldSkill = $PC.hacking>> + <<if _X == 1>> + <<set $PC.hacking += _Cal>> + <<else>> + <<set $PC.hacking -= _Cal>> + <</if>> + <<if _oldSkill <= 10>> + <<if $PC.hacking > 10>> + You now have @@.green;basic knowledge@@ about how to hack and manipulate data. + <<else>> + You have made progress towards a basic knowledge of hacking and data manipulation. + <</if>> + <<elseif _oldSkill <= 30>> + <<if $PC.hacking > 30>> + You now have @@.green;some skill@@ as a hacker. + <<else>> + You have made progress towards being skilled in hacking and data manipulation. + <</if>> + <<elseif _oldSkill <= 60>> + <<if $PC.hacking > 60>> + You are now an @@.green;expert hacker.@@ + <<else>> + You have made progress towards being an expert in hacking and data manipulation. + <</if>> + <<else>> + <<if $PC.hacking >= 100>> + <<set $personalAttention = "sex">> + You are now a @@.green;master hacker.@@ + <<else>> + You have made progress towards mastering hacking and data manipulation. + <</if>> + <</if>> + +<<case "technical accidents">> /* needs work */ + <<set $cash += 25000*$PC.hacking*$arcologies[0].prosperity, _X = 0>> + <<if $PC.hacking == -100>> + <<set _Catchtchance = 10>> + <<elseif $PC.hacking <= -75>> + <<set _Catchtchance = 30>> + <<elseif $PC.hacking <= -50>> + <<set _Catchtchance = 40>> + <<elseif $PC.hacking <= -25>> + <<set _Catchtchance = 45>> + <<elseif $PC.hacking == 0>> + <<set _Catchtchance = 50>> + <<elseif $PC.hacking <= 25>> + <<set _Catchtchance = 60>> + <<elseif $PC.hacking <= 50>> + <<set _Catchtchance = 70>> + <<elseif $PC.hacking <= 75>> + <<set _Catchtchance = 85>> + <<elseif $PC.hacking >= 100>> + <<set _Catchtchance = 100>> + <</if>> + This week your technical accidents for the highest bidder earned you @@.yellowgreen;<<print cashFormat(25000*$PC.hacking*$arcologies[0].prosperity)>>.@@ <<if random(0,100) > _Catchtchance>> however as you were traced your <<if $secExp == 1>> <<set _X = 1>> @@.red;authority@@, <<set $authority -= random(100,500)>> @@.red;crime rate@@ <<set $crime += random(10,25)>> and<</if>> @@.red;reputation@@ <<set $rep -= random (100,500)>> <<if _X != 1>> has <<else>> have<</if>> been affected <</if>>. + <</switch>> +<</if>> <<if $CashForRep == 1>> <<if $cash > 1000>> diff --git a/src/uncategorized/personalAssistantAppearance.tw b/src/uncategorized/personalAssistantAppearance.tw index 3e919e0a066a8adfa4c63a1fa5233dc2366de61f..e60c34c274f676f44aed89c1bc2584f1b8a983e0 100644 --- a/src/uncategorized/personalAssistantAppearance.tw +++ b/src/uncategorized/personalAssistantAppearance.tw @@ -596,7 +596,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<case "physical idealist">> girl wearing spats and a tight shirt. She occasionally renders herself sweaty, as if just finishing exercising. <<case "hedonistic decadence">> - girl wearing spats barely pulled over her big ass and a tight shirt that rides up her chubby belly. It seem's someone snuck out of gym class. + girl wearing spats barely pulled over her big ass and a tight shirt that rides up her chubby belly. It seems someone snuck out of gym class. <<case "gender radicalist">> girl wearing shorts and a t-shirt. She's changed her appearance recently to make herself quite androgynous. <<case "gender fundamentalist">> @@ -1201,7 +1201,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<if $assistantFSOptions>> <<switch $assistantFSAppearance>> <<case "paternalist">> - She still hasn't managed to undo the spell; her chest is still unnatural smooth, not one nipple peaks the fabric of the robe. + She still hasn't managed to undo the spell; her chest is still unnaturally smooth, not one nipple peaks the fabric of the robe. <<case "degradationist">> She still hasn't managed to undo the spell; her face, hands and every surface of her body are completely covered in tattoos. It is especially noticeable when she talks that her tongue is tattoo'd too; wonder what decorates the surfaces of her body you can't see? <<case "roman revivalist">> @@ -1241,7 +1241,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<case "pastoralist">> She's managed to shrink her nine breasts somewhat; they are merely head sized now. The front of her robes are strained from her excessive number of milky tits. <<case "maturity preferentialist">> - She's managed to rein in her aging spell and with a little size up to her breasts, hips and ass makes a very pleasant milf. + She's managed to reign in her aging spell and with a little size up to her breasts, hips and ass makes a very pleasant milf. <<case "youth preferentialist">> <<if $minimumSlaveAge == 3>> She's adjusted her tiny body slightly to be less feeble. Now she is a fully capable and adorable toddler witch in an oversized robe, though she has to fight to keep her hat from covering her entire head. @@ -1357,7 +1357,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] wearing absolutely nothing. She periodically twitches when you aren't looking and you swear you see movement under her skin. <</if>> <<if ($cockFeeder == 1) && ($seed == 1)>> - She is steadily thrusting several tentacles extending from her crotch down and down the throat of a recognizable little representation of one of your slaves. The slave must be down in the kitchen, getting a meal out of the food dispensers. She notices you watching and moans as multiple bulges work their way down her shafts and into the slave. Your eyes are drawn to the hapless girl's rapidly swelling stomach as the creatures seed takes root. + She is steadily thrusting several tentacles extending from her crotch down the throat of a recognizable little representation of one of your slaves. The slave must be down in the kitchen, getting a meal out of the food dispensers. She notices you watching and moans as multiple bulges work their way down her shafts and into the slave. Your eyes are drawn to the hapless girl's rapidly swelling stomach as the creature's seed takes root. <<elseif ($suppository == 1) && ($seed == 2)>> A recognizable little representation of one of your slaves is before her, writhing in pleasure and pain, as multiple tentacles fuck her ass. The slave must be receiving her drugs from one of the dildo dispensers. She notices you watching and moans as multiple bulges work their way down her shafts and into the slave. Your eyes are drawn to the hapless girl's rapidly swelling stomach as the creatures seed takes root. <<elseif ($masturbationAllowed == 1) && ($seed == 3)>> @@ -1367,7 +1367,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<elseif ($seed == 5) && ($invasionVictory > 0)>> She's partially enveloped a representation of one of your security drones. When she sees you looking at her, she bluntly states, "This one did good. Captured many for your nest." <<elseif ($seed == 6) && ($studio == 1)>> - She is holding dozens of cameras at a recognizable little representation of one of your slaves masturbating. The slave must be using one of the penthouse's many vibrators, and $assistantName is likely turning the feed of it into a porno. + She is holding dozens of cameras at a recognizable little representation of one of your slaves masturbating. The slave must be using one of the penthouse's many vibrators, and $assistantName is likely turning the feed of it into a porno. <<elseif ($seed == 7) && ($marketAssistantAnnounced == 1)>> She's accompanied by your market assistant's fecund avatar. <<if $marketAssistantRelationship == "cute">> @@ -1473,7 +1473,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<elseif $marketAssistantRelationship == "nonconsensual">> The market assistant is being violently penetrated by $assistantName, her bloated belly swaying in tune to her thrusts. The hapless girl struggles in discomfort as the incubus blows another load into her already full womb, causing cum to backflow out of her now loose pussy. $assistantName leans back, motions to you, and asks, "Plenty of holes still to go around, if you want one!" <<elseif $marketAssistantRelationship == "incestuous">> - The market assistant is eagerly riding her big brother, $assistantName's dick. You can't help but notice how full her breasts have gotten and how plump her ass and thighs now are. She moans with lust as $assistantName cums into her fertile pussy; a glowing sigil appearing below her navel. She is well on her way to becoming the succubus consort of her once human brother. + The market assistant is eagerly riding her big brother, <<print $assistantName>>'s, dick. You can't help but notice how full her breasts have gotten and how plump her ass and thighs now are. She moans with lust as $assistantName cums into her fertile pussy; a glowing sigil appearing below her navel. She is well on her way to becoming the succubus consort of her once human brother. <<else>> The market assistant is embracing $assistantName as she is lovingly penetrated by the caring incubus. They pull each other close as they cum together, locking lips and refusing to let go until the other is completely satisfied. It takes quite some before they settle down and wave to you, thanking you deeply for the true love you've gifted them. <</if>> @@ -1518,7 +1518,7 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<case "transformation fetishist">> She has her jeans unbuttoned and is absentmindedly trying to jerk off. When she notices you watching, she waves her throbbing erection at you, inviting you to lend a pair of hands. <<case "pastoralist">> - She is laying on her back, legs squeezing her immense balls as cums again and again across herself. When she notices you watching, she struggles to sit up before giving into the sensations and blowing another load across your desk. + She is laying on her back, legs squeezing her immense balls as she cums again and again across herself. When she notices you watching, she struggles to sit up before giving into the sensations and blowing another load across your desk. <<case "maturity preferentialist">> She has a hand down her pants. When she notices you watching, she begins eagerly stroking herself while describing, in detail, what she'd love to do to you. <<case "youth preferentialist">> diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw index 0eb8ac225ac95a91a35d0a40ec0f453ea13d3578..779757d38eccec404f572f6e0e061bc049ec6750 100644 --- a/src/uncategorized/personalAssistantOptions.tw +++ b/src/uncategorized/personalAssistantOptions.tw @@ -1,5 +1,6 @@ :: Personal assistant options [nobr] +<<HSM>> <<set $nextButton = "Back", $nextLink = "Main">> <<if $marketAssistantLimit>><<set $marketAssistantLimit to Math.clamp($marketAssistantLimit, 10000, 10000000)>><</if>> @@ -30,9 +31,9 @@ __Computer Core Upgrades__ <br> <<if $assistantPower == 0>> - //The first upgrade needed is a switch to a holographic memory core to store the immense quantity of data $assistantName gathers. This upgrade will cost <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>>.// [[Install holographic memory core|Personal assistant options][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $assistantPower += 1, $PC.engineering += 1]] + //The first upgrade needed is a switch to a holographic memory core to store the immense quantity of data $assistantName gathers. This upgrade will cost <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.// [[Install holographic memory core|Personal assistant options][$cash -= Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]] <<elseif $assistantPower == 1>> - //The final upgrade needed is a transition to optical RAM. This huge project will cost <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology))>>.// [[Install optical RAM|Personal assistant options][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $assistantPower += 1, $PC.engineering += 1]] + //The final upgrade needed is a transition to optical RAM. This huge project will cost <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.// [[Install optical RAM|Personal assistant options][$cash -= Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]] <<else>> //The arcology's computer core is fully upgraded.// <</if>> @@ -828,11 +829,19 @@ __Downloadable Appearances:__ <</if>> */ <<if $assistantExtra2 == 0>> - <<link "Purchase a set of heaven and hell themed appearances">> - <<set $cash -= Math.trunc(10000*$upgradeMultiplierArcology), $assistantExtra2 = 1, $nextLink = "Personal assistant options">> - <<goto "Assistant Appearance Pack Two">> - <</link>> //Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>// - <<else>>You have downloaded a set of heavenly and hellish appearances for your avatar. + <<if $PC.hacking < 75>> + <<link "Purchase a set of heaven and hell themed appearances">> + <<set $cash -= Math.trunc(10000*$upgradeMultiplierArcology), $assistantExtra2 = 1, $nextLink = "Personal assistant options">> + <<goto "Assistant Appearance Pack Two">> + <</link>> //Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>// + <<else>> + <<link "Acquire a set of heaven and hell themed appearances">> + <<set $assistantExtra2 = 1, $nextLink = "Personal assistant options">> + <<goto "Assistant Appearance Pack Two">> + <</link>> //Unencrypted files, ripe for the taking// + <</if>> + <<else>> + You have downloaded a set of heavenly and hellish appearances for your avatar. <</if>> <</if>> diff --git a/src/uncategorized/personalAttentionSelect.tw b/src/uncategorized/personalAttentionSelect.tw index ee73a7af6cb71e6ab1e072551ec71f9938df71c4..a7be0dd814a285a9437fd581fefe66de3663451d 100644 --- a/src/uncategorized/personalAttentionSelect.tw +++ b/src/uncategorized/personalAttentionSelect.tw @@ -1,4 +1,5 @@ :: Personal Attention Select [nobr] + <<set $nextButton = "Back to Main", $nextLink = "Main">> <<if $PC.career == "escort">> @@ -126,8 +127,27 @@ [[Hire a doctor to train you in medicine|Main][$personalAttention = "medicine"]] <</if>> <</if>> +<br> +<<if $PC.hacking >= 100>> + //You are a master hacker.// +<<else>> + <<if $PC.hacking > 60>> + //You are an expert hacker.// + <<elseif $PC.hacking > 30>> + //You have some skill as a hacker.// + <<elseif $PC.hacking > 10>> + //You have basic knowledge as a hacker.// + <<else>> + //You have no knowledge as a hacker.// + <</if>> + <<if $personalAttention == "hacking">> + You are training in hacking and data manipulation. + <<elseif $PC.hacking < 100 && $PC.actualAge < $IsPastPrimePC>> + [[Hire a specialist to train you in hacking|Main][$personalAttention = "hacking"]] + <</if>> +<</if>> <</if>> -<<if $PC.actualAge >= $IsInPrimePC && $PC.actualAge < $IsPastPrimePC && ($PC.medicine < 100 || $PC.engineering < 100 || $PC.slaving < 100 || $PC.warfare < 100 || $PC.trading < 100)>><br>//Training will cost <<print cashFormat(_cost)>> per week.//<</if>> +<<if $PC.actualAge >= $IsInPrimePC && $PC.actualAge < $IsPastPrimePC && ($PC.medicine < 100 || $PC.engineering < 100 || $PC.slaving < 100 || $PC.warfare < 100 || $PC.trading < 100 || $PC.hacking < 100 )>><br>//Training will cost <<print cashFormat(_cost)>> per week.//<</if>> <br><br> <<if typeof $personalAttention != "object" || $personalAttention.length == 0>> diff --git a/src/uncategorized/policies.tw b/src/uncategorized/policies.tw index b34c35b67b87e15d63dd954ba87132c5ca02854d..2a7163a6251d49e28c9992f1bb8d17ffc6ac14b9 100644 --- a/src/uncategorized/policies.tw +++ b/src/uncategorized/policies.tw @@ -157,7 +157,7 @@ [[Repeal|Policies][$MixedMarriage = 0]] <</if>> -<<if $OralEncouragement + $OralDiscouragement + $VaginalEncouragement + $VaginalDiscouragement + $AnalEncouragement + $AnalDiscouragement + $sexualOpeness > 0>> +<<if $OralEncouragement + $OralDiscouragement + $VaginalEncouragement + $VaginalDiscouragement + $AnalEncouragement + $AnalDiscouragement + $sexualOpeness + $arcologies[0].FSEgyptianRevivalistIncestPolicy > 0>> <br><br>__Sexual Trendsetting__ <<if $OralEncouragement == 1>> @@ -191,10 +191,16 @@ <</if>> <<if $sexualOpeness == 1>> - <br>''Penetrative Sex Campaign:'' you are use your personal influence to attempt to make getting fucked by slaves fashionable, but mostly to garner acceptance for your sexual preference. + <br>''Penetrative Sex Campaign:'' you are using your personal influence to attempt to make getting fucked by slaves fashionable, but mostly to garner acceptance for your sexual preference. [[Repeal|Policies][$sexualOpeness = 0, $PC.degeneracy += 30]] <</if>> +/* sub FS policies */ +<<if $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + <br>''Incest Encouragement:'' you are using your personal influence to spur interest in incest. + [[Repeal|Policies][$arcologies[0].FSEgyptianRevivalistIncestPolicy = 0]] +<</if>> + <</if>> <<if $ProRefugees + $ProRecruitment + $ProImmigrationCash + $ProImmigrationRep + $AntiImmigrationCash + $AntiImmigrationRep + $ProEnslavementCash + $ProEnslavementRep + $AntiEnslavementCash + $AntiEnslavementRep > 0>> <br><br>__Population Policy__ @@ -917,6 +923,12 @@ <br> //Will not be well received, but will head off potentially damaging rumors. This policy assumes you wish to be penetrated.// <</if>> +/* sub FS policies */ +<<if $arcologies[0].FSEgyptianRevivalistIncestPolicy == 0 && $arcologies[0].FSEgyptianRevivalist == "unset">> + <br>''Incest Encouragement:'' you will use your personal influence to spur interest in incest. + [[Implement|Policies][$arcologies[0].FSEgyptianRevivalistIncestPolicy = 1, $cash -=5000, $rep -= 1000]] +<</if>> + <br><br>__Population Policy__ <<if $arcologies[0].FSDegradationist == "unset">> diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw index a8c6c3cfbd41fa71f8e3f8bdb51aca94637fd11a..884a74c94d36c3f512b382b0247b8b26d9729781 100644 --- a/src/uncategorized/ptWorkaround.tw +++ b/src/uncategorized/ptWorkaround.tw @@ -26,7 +26,7 @@ Since $activeSlave.slaveName has an unusual taste for having her tits fondled, you @@.hotpink;build her devotion to you@@ by indulging her. You keep her near you as a sort of living stress ball. Whenever you have a free hand, whether you're conducting business or buttfucking another slave, you reach over and play with her. She sometimes masturbates while you massage her breasts and pinch her nipples, but often she doesn't even need to. <<set $activeSlave.mammaryCount += 20, $mammaryTotal += 20>> <<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetish == "pregnancy")>> - Since $activeSlave.slaveName has an unusual taste for big pregnant bellies, you @@.hotpink;build her devotion to you@@ by indulging her. You <<if isItemAccessible("a small empathy belly") && $activeSlave.belly < 1500 && $activeSlave.weight < 130>>strap an enormous sympathy belly onto her and <<elseif $activeSlave.belly < 1500>>give strap a pillow around her middle, give her an oversized shirt and<</if>>keep her near you as a sort of living stress ball. Whenever you have a free hand, whether you're conducting business or buttfucking another slave, you reach over and rub her dome of a belly for luck. Occasionally you pay more attention to her, making sure to fondle her rounded middle as you feel up her motherly body. She sometimes masturbates when you aren't groping her, enjoying her gravid figure, but often she doesn't even need to. + Since $activeSlave.slaveName has an unusual taste for big pregnant bellies, you @@.hotpink;build her devotion to you@@ by indulging her. You <<if isItemAccessible("a small empathy belly") && $activeSlave.belly < 1500 && $activeSlave.weight < 130>>strap an enormous sympathy belly onto her and <<elseif $activeSlave.belly < 1500>>strap a pillow around her middle, give her an oversized shirt and <</if>>keep her near you as a sort of living stress ball. Whenever you have a free hand, whether you're conducting business or buttfucking another slave, you reach over and rub her dome of a belly for luck. Occasionally you pay more attention to her, making sure to fondle her rounded middle as you feel up her motherly body. She sometimes masturbates when you aren't groping her, enjoying her gravid figure, but often she doesn't even need to. <<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetish == "humiliation") && ((canDoVaginal($activeSlave) && $activeSlave.vagina > 0) || (canDoAnal($activeSlave) && $activeSlave.anus > 0))>> Since $activeSlave.slaveName has an unusual sexuality, you @@.hotpink;build her devotion to you@@ by indulging her perversions. Since she's an absolute slut for humiliation, you let her whore around inside the special camera room whenever possible. When you're going out and feel like putting on a show, you bring her on a leash and fuck her in public. She comes harder than ever when you push her naked body up against the wall of a crowded public arcology elevator and molest her. <<set $activeSlave.oralCount += 4, $oralTotal += 4>> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 2ac51dc1084056d7f49a42959354b97d80a810f5..f55b6c443ae90052b24c2477f5f4105a3e3f4653 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -511,6 +511,12 @@ <<if ($mercenaries >= 5)>> <<set $recruit.push("female runaway")>> <</if>> + <<if $seeHyperPreg == 1 && $cheatMode == 1>> + <<set $recruit.push("overwhelmed farmgirl")>> + <</if>> + <<if $PC.medicine > 50 && $PC.hacking > 75 && random(0,100) > 75>> + <<set $recruit.push("embryo appropriation")>> + <</if>> <</if>> <<set $recruit.push("female SD")>> <<set $recruit.push("female SD 2")>> @@ -533,6 +539,12 @@ <<if ($HeadGirl.devotion > 50) && ($HeadGirl.whoreSkill >= 100)>> <<set $recruit.push("whore recruit")>> <</if>> +<<if $PC.hacking >= 50 && random(0,100) < $PC.hacking>> + <<set $recruit.push("held POW")>> +<</if>> +<<if($pedo_mode == 1 || $minimumSlaveAge <= 13) && $PC.hacking >= 100 && random(0,100) > 95 && $cash >= 100000>> + <<set $recruit.push("rogue cyborg")>> +<</if>> <<if $arcologyUpgrade.drones == 1>> <<set $events.push("RE malefactor")>> <<set $malefactor = ["liberator", "whore", "businesswoman", "addict"]>> diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw index 1e0c26c04c26451dc9517b0b61144935111d0116..ce9114cfc9e33c58f71de23604681e26856174bf 100644 --- a/src/uncategorized/reBoomerang.tw +++ b/src/uncategorized/reBoomerang.tw @@ -3,6 +3,7 @@ <<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check", $returnTo = "RIE Eligibility Check", $showEncyclopedia = 1, $encyclopedia = "Enslaving People">> <<set $activeSlave = $boomerangSlave, $boomerangSlave = 0, _weeks = $boomerangWeeks, _pregWeeks = $boomerangWeeks, $boomerangWeeks = 0, _buyer = $boomerangBuyer, $boomerangBuyer = 0>> +<<SetBellySize $activeSlave>> Your work is interrupted by $assistantName with an alert from the entrance to the penthouse. <<if $assistant>> @@ -16,6 +17,24 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <<set $activeSlave.collar = "none", $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.dickAccessory = "none">> <<set $activeSlave.health = random(-40,-25)>> + +/* ------------------ pregnancy setup start here----------------- */ + +<<set WombProgress($activeSlave, _pregWeeks)>> /* In all cases should be done */ +<<set WombUpdatePregVars($activeSlave)>> +<<if $activeSlave.broodmother > 0>> /* Broomother implant is assumed as removed.*/ + <<set $activeSlave.preg = -1, $activeSlave.birthsTotal += WombBirthReady($activeSlave, 37), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0, $activeSlave.broodmotherFetuses = 0>> + <<set WombFlush($activeSlave)>> +<<elseif WombBirthReady($activeSlave, 40) > 0 >> /* normal birth case, partial birthers not supported*/ + <<set $activeSlave.preg = -1, $activeSlave.birthsTotal += WombBirthReady($activeSlave, 40), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>> + <<set WombFlush($activeSlave)>> +<<else>>/* still pregnant slave */ + <<set $activeSlave.preg = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/ + <<set $activeSlave.pregWeek = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/ +<</if>> +<<SetBellySize $activeSlave>> /*In any case it's useful to do.*/ + +/* old code, commented out. <<if $activeSlave.broodmother > 0>> <<set $activeSlave.preg = -1, $activeSlave.birthsTotal += $activeSlave.pregType, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0>> <<SetBellySize $activeSlave>> @@ -28,6 +47,13 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <</if>> <<SetBellySize $activeSlave>> <</if>> +*/ + +/* ------------------ pregnancy setup end here----------------- + As no broodmother cases in code below, it's no need to setup every case of impregnantion through new system. Backup mechanic will do it for normal pregnancies. +*/ + + <<if ($activeSlave.hStyle != "shaved" && $activeSlave.bald != 1)>> <<if ($activeSlave.hLength < 150)>> <<set $activeSlave.hLength += _weeks>> @@ -132,7 +158,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <<case "degradationist arcology">> "It wa<<s>> horrible." You sold her to a Degradationist arcology; it's nothing short of incredible that she managed to get back here. She must have sold and traded herself without hesitation. <<if $activeSlave.ovaries>> - <<set $activeSlave.ovaries = 0, $activeSlave.preg = 0, $activeSlave.pregType = 0, $activeSlave.vagina = 4, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>> + <<set $activeSlave.ovaries = 0, $activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.pregType = 0, $activeSlave.vagina = 4, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>> <<SetBellySize $activeSlave>> "They f-fixed me, t-to '<<s>>ave on maintenan<<c>>e of my cunt,' <<elseif $activeSlave.balls>> @@ -355,6 +381,21 @@ It isn't obvious how she managed to escape, though no doubt you could review the <</for>> <</if>> <<else>> + <<if $boomerangStats.boomerangRelation > 0>> + <<set _reb = $slaves.findIndex(function(s) { return s.ID == $boomerangStats.boomerangRelation; })>> + <<if _reb != -1>> + <<if $activeSlave.relation == "mother">> + <<set $slaves[_reb].relation = "daughter">> + <<elseif $activeSlave.relation == "daughter">> + <<set $slaves[_reb].relation = "mother">> + <<else>> + <<set $slaves[_reb].relation = $activeSlave.relation>> + <</if>> + <<set $slaves[_reb].relationshipTarget = $activeSlave.ID>> + <<else>> + <<set $activeSlave.relation = 0, $activeSlave.relationTarget = 0>> + <</if>> + <</if>> <<if $boomerangStats.boomerangPregSources.length > 0>> <<for _reb = 0; _reb < $slaves.length; _reb++>> <<if $boomerangStats.boomerangPregSources.includes($slaves[_reb].ID) && $slaves[_reb].preg > 0 && $slaves[_reb].pregSource == 0>> @@ -363,6 +404,22 @@ It isn't obvious how she managed to escape, though no doubt you could review the <</for>> <</if>> <</if>> + <<if $boomerangStats.boomerangRelationship > 0>> + <<set _reb = $slaves.findIndex(function(s) { return s.ID == $boomerangStats.boomerangRelationship; })>> + <<if _reb != -1>> + <<set $slaves[_reb].relationship = $activeSlave.relationship, $slaves[_reb].relationshipTarget = $activeSlave.ID>> + <<else>> + <<set $activeSlave.relationship = 0, $activeSlave.relationshipTarget = 0>> + <</if>> + <</if>> + <<if $boomerangStats.boomerangRivalry > 0>> + <<set _reb = $slaves.findIndex(function(s) { return s.ID == $boomerangStats.boomerangRivalry; })>> + <<if _reb != -1>> + <<set $slaves[_reb].rivalry = $activeSlave.rivalry, $slaves[_reb].rivalryTarget = $activeSlave.ID>> + <<else>> + <<set $activeSlave.rivalry = 0, $activeSlave.rivalryTarget = 0>> + <</if>> + <</if>> <<set $boomerangStats = 0>> <<replace "#result">> The penthouse opens, and $activeSlave.slaveName stumbles inside, sobbing her thanks. She's immediately conducted to the autosurgery for some quick cosmetic surgery, while you and $assistantName do the necessary work to falsify the arcology records and conceal her origins. Even so, it would probably be wise to keep her off public assignments for a while. In no time at all, she's standing in front of your desk like any other new slave. She waits obediently, knowing that it's in her best interests not to mention anything out of the ordinary. diff --git a/src/uncategorized/reNickname.tw b/src/uncategorized/reNickname.tw index 381fbdac22f14df38abc5d0c4327f987b358b222..b2f1065d360971d8d0503db430f11c599aaf112a 100644 --- a/src/uncategorized/reNickname.tw +++ b/src/uncategorized/reNickname.tw @@ -189,6 +189,9 @@ <<if ($activeSlave.bellyPreg >= 300000)>> <<set $qualifiedNicknames.push("hyperpreg")>> <</if>> +<<if ($activeSlave.bellyPreg >= 30000) && ($activeSlave.boobs >= 5000) && ($activeSlave.butt > 5) && ($activeSlave.hips >= 2) && ($activeSlave.weight < 100)>> + <<set $qualifiedNicknames.push("fertilityGoddess")>> +<</if>> <<if ($activeSlave.dick > 5) && ($activeSlave.balls > 5) && ($activeSlave.slavesKnockedUp > 4)>> <<set $qualifiedNicknames.push("babymaker")>> <</if>> @@ -239,353 +242,421 @@ <<case "nationality">> <<switch $activeSlave.nationality>> <<case "Afghan">> - <<set $nickname to either("'Bactrian'", "'Chai Girl'", "'Kabul'", "'Pashtun'", "'Poppy'", "'Taliban'")>> + <<set $nickname = either("'Bactrian'", "'Chai Girl'", "'Kabul'", "'Pashtun'", "'Poppy'", "'Taliban'")>> <<case "Albanian">> - <<set $nickname to either("'Hoxha'", "'Tirana'")>> + <<set $nickname = either("'Hoxha'", "'Tirana'")>> <<case "Algerian">> - <<set $nickname to either("'Casbah'", "'Corsair'", "'Djamila'", "'Hassiba'", "'Pied-Noir'", "'Zhora'", "Harki")>> + <<set $nickname = either("'Casbah'", "'Corsair'", "'Djamila'", "'Hassiba'", "'Pied-Noir'", "'Zhora'", "Harki")>> <<case "American">> - <<set $nickname to either("'Burger'", "'Chicago'", "'Hollywood'", "'Lady Liberty'", "'Lone Star'", "'New York'", "'Washington'", "'Yankee'", "'Stars & Stripes'", "'Yankee'", "'California'", "'Septic'", "'Trump'")>> + <<set $nickname = either("'Burger'", "'Chicago'", "'Hollywood'", "'Lady Liberty'", "'Lone Star'", "'New York'", "'Washington'", "'Yankee'", "'Stars & Stripes'", "'Yankee'", "'California'", "'Septic'", "'Trump'")>> <<case "Andorran">> - <<set $nickname to either("'Ski Trip'", "'Skossyreff'")>> + <<set $nickname = either("'Ski Trip'", "'Skossyreff'")>> + <<case "Angolan")>> + <<set $nickname to either("'Cabinda'", "'Luanda'")>> <<case "Antiguan">> - <<set $nickname to either("'Barbuda'", "'Redonda'")>> + <<set $nickname = either("'Barbuda'", "'Redonda'")>> <<case "Argentinian">> - <<set $nickname to either("'Blanca'", "'Buenos Aires'", "'Evita'", "'Gaucha'", "'Macri'", "'Malvinas'")>> + <<set $nickname = either("'Blanca'", "'Buenos Aires'", "'Evita'", "'Gaucha'", "'Macri'", "'Malvinas'")>> <<case "Armenian">> - <<set $nickname to either("'Hachik'", "'Khorovats'", "'Rabiz'")>> + <<set $nickname = either("'Hachik'", "'Khorovats'", "'Rabiz'")>> <<case "Aruban">> - <<set $nickname to either("'Caquetio'", "'Oranjestad'")>> + <<set $nickname = either("'Caquetio'", "'Oranjestad'")>> <<case "Australian">> - <<set $nickname to either("'Abo'", "'Aussie'", "'Bogan'", "'Convict'", "'Crikey'", "'Down Under'", "'Mad'", "'Sheila'")>> + <<set $nickname = either("'Abo'", "'Aussie'", "'Bogan'", "'Convict'", "'Crikey'", "'Down Under'", "'Mad'", "'Sheila'")>> <<case "Austrian">> - <<set $nickname to either("'Fut'", "'Maria'", "'Wiener'", "'Fritzl'")>> + <<set $nickname = either("'Fut'", "'Maria'", "'Wiener'", "'Fritzl'")>> <<case "Azerbaijani">> - <<set $nickname to either("'Baku'", "'Black January'")>> + <<set $nickname = either("'Baku'", "'Black January'")>> <<case "Bahamian">> - <<set $nickname to either("'Columbus'", "'Nassau'")>> + <<set $nickname = either("'Columbus'", "'Nassau'")>> <<case "Bahraini">> - <<set $nickname to either("'Manama'", "'Two Seas'")>> + <<set $nickname = either("'Manama'", "'Two Seas'")>> <<case "Bangladeshi">> - <<set $nickname to either("'Bengali'", "'Bhibhi'", "'Dhaka'", "'Sweatshop'", "'Tiger'")>> + <<set $nickname = either("'Bengali'", "'Bhibhi'", "'Dhaka'", "'Sweatshop'", "'Tiger'")>> <<case "Barbadian">> - <<set $nickname to either("'Bajan'", "'Bridgetown'", "'Sugar Cane'")>> + <<set $nickname = either("'Bajan'", "'Bridgetown'", "'Sugar Cane'")>> <<case "Belarusian">> - <<set $nickname to either("'Minsk'", "'Stalker'", "'Shlyukha'", "'White Russian'", "'Bulbash'")>> + <<set $nickname = either("'Bulbash'", "'Minsk'", "'Shlyukha'", "'Å liucha'", "'Stalker'", "'White Russian'")>> <<case "Belgian">> - <<set $nickname to either("'Antwerp'", "'Brussels'", "'Sprout'", "'Straatmeid'", "'Truttemie'", "'Waffles'")>> + <<set $nickname = either("'Antwerp'", "'Brussels'", "'Sprout'", "'Straatmeid'", "'Truttemie'", "'Waffles'")>> <<case "Belizean">> - <<set $nickname to either("'Belmopan'", "'Great Blue Hole'")>> + <<set $nickname = either("'Belmopan'", "'Great Blue Hole'")>> + <<case "Beninese")>> + <<set $nickname to either("'Cotonou'", "'Dahomey'", "'Porto-Novo'")>> <<case "Bermudian">> - <<set $nickname to either("'Bermuda Triangle'", "'Hamilton'")>> + <<set $nickname = either("'Bermuda Triangle'", "'Hamilton'")>> <<case "Bhutanese">> - <<set $nickname to either("'Druk'", "'Thimphu'")>> + <<set $nickname = either("'Druk'", "'Thimphu'")>> + <<case "Bissau-Guinean")>> + <<set $nickname to either("'Bissau'", "'Bolama'", "'Kriol'")>> <<case "Bolivian">> - <<set $nickname to either("'La Paz'", "'Titicaca'")>> + <<set $nickname = either("'La Paz'", "'Sucre'", "'Titicaca'")>> <<case "Bosnian">> - <<set $nickname to either("'Herzegovina'", "'Sarajevo'")>> + <<set $nickname = either("'Herzegovina'", "'Sarajevo'")>> <<case "Brazilian">> - <<set $nickname to either("'7-1'", "'Bunda'", "'Dago'", "'Favelada'", "'Hue'", "'Ipanema'", "'Monkey'", "'São Paulo'", "'Zika'", "'Bauru'","'Carmen Miranda'")>> + <<set $nickname = either("'7-1'", "'Bunda'", "'Dago'", "'Favelada'", "'Hue'", "'Ipanema'", "'Monkey'", "'São Paulo'", "'Zika'", "'Bauru'","'Carmen Miranda'")>> <<case "British">> - <<set $nickname to either("'Britbong'", "'Chav'", "'Fish'n'Chips'", "'Limey'", "'London'", "'Pikey'", "'Pommie'", "'Rosbif'", "'Scrubber'", "'Slag'", "'Slapper'", "'Brexit'")>> + <<set $nickname = either("'Brit'", "'Britbong'", "'Chav'", "'Fish'n'Chips'", "'Limey'", "'London'", "'Pikey'", "'Pommie'", "'Rosbif'", "'Scrubber'", "'Slag'", "'Slapper'", "'Brexit'")>> <<case "Bruneian">> - <<set $nickname to either("'Abode of Peace'", "'Bandar Seri Begawan'")>> + <<set $nickname = either("'Abode of Peace'", "'Bandar Seri Begawan'")>> <<case "Bulgarian">> - <<set $nickname to either("'Sofia'", "'Zhivkov'")>> + <<set $nickname = either("'Sofia'", "'Zhivkov'")>> + <<case "Burkinabé")>> + <<set $nickname to either("'Ouagadougou'", "'Upper Volta'")>> <<case "Burmese">> - <<set $nickname to either("'Burma Shave'", "'Burmese Python'", "'Golden Triangle'", "'Rangoon'")>> + <<set $nickname = either("'Burma Shave'", "'Burmese Python'", "'Golden Triangle'", "'Rangoon'")>> <<case "Burundian">> - <<set $nickname to either("'Bujumbura'", "'Heha'")>> + <<set $nickname = either("'Bujumbura'", "'Heha'")>> <<case "Cambodian">> - <<set $nickname to either("'Angkor Wat'", "'Holiday in Cambodia'", "'Phnom Penh'")>> + <<set $nickname = either("'Angkor Wat'", "'Holiday in Cambodia'", "'Phnom Penh'")>> <<case "Cameroonian">> - <<set $nickname to either("'Douala'", "'Yaoundé'")>> + <<set $nickname = either("'Douala'", "'Yaoundé'")>> <<case "Canadian">> - <<set $nickname to either("'Canuck'", "'Loonie'", "'Maple Syrup'", "'Mountie'", "'Poutine'", "'Quebec'", "'Toronto'", "'Vancouver'", "'Yukon'")>> + <<set $nickname = either("'Canuck'", "'Loonie'", "'Maple Syrup'", "'Mountie'", "'Poutine'", "'Quebec'", "'Toronto'", "'Vancouver'", "'Yukon'")>> + <<case "Cape Verdean")>> + <<set $nickname to either("'Cabo Verde'", "'Praia'")>> + <<case "Catalan")>> + <<set $nickname to either("'Barcelona'", "'Castell'", "'Senyera'")>> + <<case "Central African")>> + <<set $nickname to either("'Bangui'", "'Bokassa'")>> + <<case "Chadian")>> + <<set $nickname to either("'Chad'", "'Habré'", "'N'Djamena'", "'Tombalbaye'")>> <<case "Chilean">> - <<set $nickname to either("'Chela'", "'Pinochet'", "'Santiago'", "'Toya'")>> + <<set $nickname = either("'Chela'", "'Pinochet'", "'Santiago'", "'Toya'")>> <<case "Chinese">> - <<set $nickname to either("'Beijing'", "'Dim Sum'", "'Dragon'", "'Empress'", "'Guangzhou'", "'Kung Fu'", "'Lead Toys'", "'Lotus'", "'Made in China'", "'Manchu'", "'Nanking'", "'Renmenbi'", "'Shanghai'")>> + <<set $nickname = either("'Beijing'", "'Dim Sum'", "'Dragon'", "'Empress'", "'Guangzhou'", "'Kung Fu'", "'Lead Toys'", "'Lotus'", "'Made in China'", "'Manchu'", "'Nanking'", "'Renmenbi'", "'Shanghai'")>> <<case "Colombian">> - <<set $nickname to either("'Bogotá'", "'Cafetera'", "'Coca'", "'Crystal'", "'FARC'", "'Pablita Escobar'")>> + <<set $nickname = either("'Bogotá'", "'Cafetera'", "'Coca'", "'Crystal'", "'FARC'", "'Pablita Escobar'")>> + <<case "Comorian")>> + <<set $nickname to either("'Karthala'", "'Mayotte'", "'Moroni'")>> <<case "Congolese">> - <<set $nickname to either("'Bongo'", "'Diamond'", "'Ebola'")>> + <<set $nickname = either("'Brazzaville'", "'Ngouabi'", "'Nguesso'")>> <<case "a Cook Islander">> - <<set $nickname to either("'Avarua'", "'Rarotonga'")>> + <<set $nickname = either("'Avarua'", "'Rarotonga'")>> <<case "Costa Rican">> - <<set $nickname to either("'Oxcart'", "'San José'")>> + <<set $nickname = either("'Oxcart'", "'San José'")>> <<case "Croatian">> - <<set $nickname to either("'Tito'", "'Zagreb'")>> + <<set $nickname = either("'Tito'", "'Zagreb'")>> <<case "Cuban">> - <<set $nickname to either("'Blockade'", "'Castro'", "'Commie'", "'Havana'", "'Scarface'")>> + <<set $nickname = either("'Blockade'", "'Castro'", "'Commie'", "'Havana'", "'Scarface'")>> <<case "Cypriot">> - <<set $nickname to either("'Enosis'", "'Nicosia'")>> + <<set $nickname = either("'Enosis'", "'Nicosia'")>> <<case "Czech">> - <<set $nickname to either("'Bohemian'", "'Czechnya'", "'Kunda'", "'Prague'")>> + <<set $nickname = either("'Bohemian'", "'Czechnya'", "'Kunda'", "'Prague'")>> <<case "Danish">> - <<set $nickname to either("'Copenhagen'", "'Ludertæve'", "'Tøs'", "'Viking'")>> + <<set $nickname = either("'Copenhagen'", "'Ludertæve'", "'Tøs'", "'Viking'")>> <<case "Djiboutian">> - <<set $nickname to either("'Ifat'", "'Tadjoura'")>> + <<set $nickname = either("'Ifat'", "'Tadjoura'")>> <<case "Dominican">> - <<set $nickname to either("'TaÃno'", "'Caribbean'", "'Domingo'", "'Palo'", "'Trinitaria'")>> + <<set $nickname = either("'Caribbean'", "'Domingo'", "'Palo'", "'Santo Domingo'", "'TaÃno'", "'Trinitaria'")>> <<case "Dominiquais">> - <<set $nickname to either("'Red Dog'", "'Roseau'")>> + <<set $nickname = either("'Red Dog'", "'Roseau'")>> <<case "Dutch">> - <<set $nickname to either("'Amsterdam'", "'Cheesehead'", "'Slaaf'", "'Slet'")>> + <<set $nickname = either("'Amsterdam'", "'Cheesehead'", "'Slaaf'", "'Slet'")>> <<case "East Timorese">> - <<set $nickname to either("'Dili'", "'Timor Leste'")>> + <<set $nickname = either("'Dili'", "'Timor Leste'")>> <<case "Ecuadorian">> - <<set $nickname to either("'Galápagos'", "'Quito'")>> + <<set $nickname = either("'Galápagos'", "'Quito'")>> <<case "Egyptian">> - <<set $nickname to either("'Cairo'", "'Cleopatra'", "'Misirlou'", "'Sinai'", "'Sphinx'", "'Suez'")>> + <<set $nickname = either("'Cairo'", "'Cleopatra'", "'Misirlou'", "'Sinai'", "'Sphinx'", "'Suez'")>> <<case "Emirati">> - <<set $nickname to either("'Abu Dhabi'", "'Bedouin'", "'Dubai'")>> + <<set $nickname = either("'Abu Dhabi'", "'Bedouin'", "'Dubai'")>> + <<case "Equatoguinean")>> + <<set $nickname to either("'Bata'", "'Malabo'", "'Nguema'", "'Oyala'")>> + <<case "Eritrean")>> + <<set $nickname to either("'Asmara'", "'Punt'")>> <<case "Estonian">> - <<set $nickname to either("'Baltic'", "'Eesti'", "'Tallinn'")>> + <<set $nickname = either("'Baltic'", "'Eesti'", "'Tallinn'")>> <<case "Ethiopian">> - <<set $nickname to either("'Oromo'", "'Rastafarian'")>> + <<set $nickname = either("'Oromo'", "'Rastafarian'")>> <<case "Fijian">> - <<set $nickname to either("'Itaukei'", "'Suva'")>> + <<set $nickname = either("'Itaukei'", "'Suva'")>> <<case "Filipina">> - <<set $nickname to either("'Flip'", "'Manila'", "'Pinoy'")>> + <<set $nickname = either("'Flip'", "'Manila'", "'Pinoy'")>> <<case "Finnish">> - <<set $nickname to either("'Helinski'", "'Mämmi'", "'Perkele'", "'Saunagirl'", "'Winter War'")>> + <<set $nickname = either("'Helinski'", "'Mämmi'", "'Perkele'", "'Saunagirl'", "'Winter War'")>> <<case "French">> - <<set $nickname to either("'Belle'", "'Fille de Joie'", "'Mademoiselle'", "'Marseille'", "'Paris'", "'Surrender Monkey'", "'Charlie Hebdo'")>> + <<set $nickname = either("'Belle'", "'Fille de Joie'", "'Mademoiselle'", "'Marseille'", "'Paris'", "'Surrender Monkey'", "'Charlie Hebdo'")>> <<case "French Guianan">> - <<set $nickname to either("'Cayenne'", "'ÃŽle du Diable'")>> + <<set $nickname = either("'Cayenne'", "'ÃŽle du Diable'")>> + <<case "French Polynesian")>> + <<set $nickname to either("'Fangataufa'", "'Moruroa'", "'Papeete'", "'Tahiti'")>> <<case "Gabonese">> - <<set $nickname to either("'Bongo'", "'Libreville'")>> + <<set $nickname = either("'Bongo'", "'Libreville'")>> + <<case "Gambian")>> + <<set $nickname to either("'Banjul'", "'Serekunda'")>> <<case "Georgian">> - <<set $nickname to either("'Kutaisi'", "'Tbilisi'")>> + <<set $nickname = either("'Kutaisi'", "'Tbilisi'")>> <<case "German">> - <<set $nickname to either("'Berlin'", "'Bratwurst'", "'Fraulein'", "'Kraut'", "'Oktoberfest'", "'Piefke'", "'Valkyrie'", "'Dresden'", "'Prussian'", "'Bavarian'", "'Nazi'", "'Saupreiß'")>> + <<set $nickname = either("'Berlin'", "'Bratwurst'", "'Fraulein'", "'Kraut'", "'Oktoberfest'", "'Piefke'", "'Valkyrie'", "'Dresden'", "'Prussian'", "'Bavarian'", "'Nazi'", "'Saupreiß'")>> <<case "Ghanan">> - <<set $nickname to either("'Akan'", "'Gold Coast'", "'Warrior Queen'", "'Shaman Queen'")>> + <<set $nickname = either("'Akan'", "'Gold Coast'", "'Warrior Queen'", "'Shaman Queen'")>> <<case "Greek">> - <<set $nickname to either("'Athens'", "'Debts'", "'Ionian'", "'Spartan'")>> + <<set $nickname = either("'Athens'", "'Debts'", "'Ionian'", "'Spartan'")>> <<case "Greenlandic">> - <<set $nickname to either("'Eskimo'", "'Nuuk'")>> + <<set $nickname = either("'Eskimo'", "'Nuuk'")>> <<case "Grenadian">> - <<set $nickname to either("'Grenada Dove'", "'Urgent Fury'", "'Woolie'")>> + <<set $nickname = either("'Grenada Dove'", "'Urgent Fury'", "'Woolie'")>> <<case "Guatemalan">> - <<set $nickname to either("'Guatemalan'", "'Mayan'")>> + <<set $nickname = either("'ChapÃn'", "'Guatemalan'", "'Mayan'")>> + <<case "Guinean")>> + <<set $nickname to either("'Bauxite'", "'Conakry'", "'Toure'")>> <<case "Guyanese">> - <<set $nickname to either("'Georgetown'", "'Hoatzin'")>> + <<set $nickname = either("'Georgetown'", "'Hoatzin'")>> <<case "Haitian">> - <<set $nickname to either("'Maîtresse'", "'Mama Doc'", "'Maman'", "'Voodoo'")>> + <<set $nickname = either("'Maîtresse'", "'Mama Doc'", "'Maman'", "'Port-au-Prince'", "'Voodoo'")>> <<case "Honduran">> - <<set $nickname to either("'Anchuria'", "'Tegucigalpa'")>> + <<set $nickname = either("'Anchuria'", "'Catracho'", "'Tegucigalpa'")>> <<case "Hungarian">> - <<set $nickname to either("'Budapest'", "'Magyar'", "'Szuka'")>> + <<set $nickname = either("'Budapest'", "'Magyar'", "'Szuka'")>> <<case "I-Kiribati">> - <<set $nickname to either("'Gilbert'", "'Tarawa'")>> + <<set $nickname = either("'Gilbert'", "'Tarawa'")>> <<case "Icelandic">> - <<set $nickname to either("'Penis Museum'", "'ReykjavÃk'", "'Sagas'")>> + <<set $nickname = either("'Penis Museum'", "'ReykjavÃk'", "'Sagas'")>> <<case "Indian">> - <<set $nickname to either("'Bhibhi'", "'Bhopal'", "'Delhi'", "'Hindi'", "'Mahatma'", "'Mumbai'", "'Punjabi'", "'Savita'", "'Street Shitter'")>> + <<set $nickname = either("'Bhibhi'", "'Bhopal'", "'Delhi'", "'Hindi'", "'Mahatma'", "'Mumbai'", "'Punjabi'", "'Savita'", "'Street Shitter'")>> <<case "Indonesian">> - <<set $nickname to either("'Jakarta'", "'Malay'", "'Sunda'")>> + <<set $nickname = either("'Jakarta'", "'Malay'", "'Sunda'")>> <<case "Iraqi">> - <<set $nickname to either("'Assyrian'", "'Baghdad'", "'Fallujah'", "'Fertile Crescent'", "'Hussein'", "'Mesopotamian'", "'Oilfields'", "'Whore of Babylon'")>> + <<set $nickname = either("'Assyrian'", "'Baghdad'", "'Fallujah'", "'Fertile Crescent'", "'Hussein'", "'Mesopotamian'", "'Oilfields'", "'Whore of Babylon'")>> <<case "Iranian">> - <<set $nickname to either("'Ayatollah'", "'Iranian'", "'Persian'", "'Tehran'")>> + <<set $nickname = either("'Ayatollah'", "'Iranian'", "'Persian'", "'Tehran'")>> <<case "Irish">> - <<set $nickname to either("'Carbomb'", "'Dublin'", "'Emerald'", "'Lassie'", "'Paddy'", "'Potato Famine'", "'Sinn Féin'")>> + <<set $nickname = either("'Carbomb'", "'Dublin'", "'Emerald'", "'Lassie'", "'Paddy'", "'Potato Famine'", "'Sinn Féin'")>> <<case "Israeli">> - <<set $nickname to either("'God's Chosen'", "'Hebrew'", "'Levantine'", "'Tel Aviv'", "'Merchant'", "'Oven Dodger'", "'Shiksa'", "'Sharmuta'", "'Shekels'")>> + <<set $nickname = either("'God's Chosen'", "'Hebrew'", "'Levantine'", "'Tel Aviv'", "'Merchant'", "'Oven Dodger'", "'Shiksa'", "'Sharmuta'", "'Shekels'")>> <<case "Italian">> - <<set $nickname to either("'Bologna'", "'Greaseball'", "'Latin'", "'Napoli'", "'Renaissance'", "'Rome'", "'Salami'", "'Sicilian'", "'Spaghetti'", "'Terrone'", "'Wop'")>> + <<set $nickname = either("'Bologna'", "'Greaseball'", "'Latin'", "'Napoli'", "'Renaissance'", "'Rome'", "'Salami'", "'Sicilian'", "'Spaghetti'", "'Terrone'", "'Wop'")>> + <<case "Ivorian")>> + <<set $nickname to either("'Abidjan'", "'Ivory'", "'Yamoussoukro'")>> <<case "Jamaican">> - <<set $nickname to either("'Kingston'", "'Kush'", "'Rasta'", "'Reggae'", "'West Indies'")>> + <<set $nickname = either("'Kingston'", "'Kush'", "'Rasta'", "'Reggae'", "'West Indies'", "'Yardie'")>> <<case "Japanese">> - <<set $nickname to either("'Anime'", "'Banzai'", "'Bishoujo'", "'Fukushima'", "'Geisha Girl'", "'Hello Kitty'", "'Hiroshima'", "'Hokkaido'", "'Ichiban'", "'Kamikaze'", "'Kawasaki'", "'Kyoto'", "'Kyushu'", "'Nagano'", "'Nagasaki'", "'Nipponese'", "'Osaka'", "'Sushi'", "'Tempura'", "'Tokyo'", "'Wasabi'", "'Yakuza'", "'Yamaha'", "'Yamato Nadeshiko'")>> + <<set $nickname = either("'Anime'", "'Banzai'", "'Bishoujo'", "'Fukushima'", "'Geisha Girl'", "'Hello Kitty'", "'Hiroshima'", "'Hokkaido'", "'Ichiban'", "'Kamikaze'", "'Kawasaki'", "'Kyoto'", "'Kyushu'", "'Nagano'", "'Nagasaki'", "'Nipponese'", "'Osaka'", "'Sushi'", "'Tempura'", "'Tokyo'", "'Wasabi'", "'Yakuza'", "'Yamaha'", "'Yamato Nadeshiko'")>> <<case "Jordanian">> - <<set $nickname to either("'Edomite'", "'Hashemite'", "'Mansaf'", "'Moab'", "'Petra'")>> + <<set $nickname = either("'Edomite'", "'Hashemite'", "'Mansaf'", "'Moab'", "'Petra'")>> <<case "Kazakh">> - <<set $nickname to either("'Blue Hat'", "'Borat'", "'Khan'")>> + <<set $nickname = either("'Blue Hat'", "'Borat'", "'Khan'")>> <<case "Kenyan">> - <<set $nickname to either("'Mau Mau'", "'Nairobi'", "'Safari'", "'Swahili'", "'Obama'")>> + <<set $nickname = either("'Mau Mau'", "'Nairobi'", "'Safari'", "'Swahili'", "'Obama'")>> <<case "Kittitian">> - <<set $nickname to either("'Basseterre'", "'Nevis'")>> + <<set $nickname = either("'Basseterre'", "'Nevis'")>> <<case "Korean">> - <<set $nickname to either("'Dokdo'", "'Gangnam'", "'K-Pop'", "'Kimchi'", "'Nida'", "'Pyongyang'", "'Samsung'", "'Seoul'")>> + <<set $nickname = either("'Dokdo'", "'Gangnam'", "'K-Pop'", "'Kimchi'", "'Nida'", "'Pyongyang'", "'Samsung'", "'Seoul'")>> <<case "Kosovan">> - <<set $nickname to either("'Kosovar'", "'Pristina'")>> + <<set $nickname = either("'Kosovar'", "'Pristina'")>> + <<case "Kurdish")>> + <<set $nickname to either("'Ararat'", "'Kurd'", "'Mahabad'")>> <<case "Kuwaiti">> - <<set $nickname to either("'Burgan'", "'Gulf War'")>> + <<set $nickname = either("'Burgan'", "'Gulf War'")>> <<case "Kyrgyz">> - <<set $nickname to either("'Bishkek'", "'Manas'")>> + <<set $nickname = either("'Bishkek'", "'Manas'")>> <<case "Laotian">> - <<set $nickname to either("'Muang Lao'", "'Vientiane'")>> + <<set $nickname = either("'Muang Lao'", "'Vientiane'")>> <<case "Latvian">> - <<set $nickname to either("'Livonia'", "'Riga'")>> + <<set $nickname = either("'Livonia'", "'Riga'")>> <<case "Lebanese">> - <<set $nickname to either("'Beirut'", "'Cedar'", "'Druze'", "'Lebo'", "'Maronite'", "'Phoenician'")>> + <<set $nickname = either("'Beirut'", "'Cedar'", "'Druze'", "'Lebo'", "'Maronite'", "'Phoenician'")>> + <<case "Liberian")>> + <<set $nickname to either("'Monrovia'", "'Taylor'")>> <<case "Libyan">> - <<set $nickname to either("'Cyrene'", "'Gaddafi'", "'Silphium'", "'Tripoli'", "'Zenga Zenga'")>> + <<set $nickname = either("'Cyrene'", "'Gaddafi'", "'Silphium'", "'Tripoli'", "'Zenga Zenga'")>> <<case "a Liechtensteiner">> - <<set $nickname to either("'Schaan'", "'Vaduz'")>> + <<set $nickname = either("'Schaan'", "'Vaduz'")>> <<case "Lithuanian">> - <<set $nickname to either("'Memel'", "'Pagan'", "'Vilnus'")>> + <<set $nickname = either("'Memel'", "'Pagan'", "'Vilnus'")>> <<case "Luxembourgian">> - <<set $nickname to either("'Bureaucrat'", "'Passerelle'")>> + <<set $nickname = either("'Bureaucrat'", "'Passerelle'")>> <<case "Macedonian">> - <<set $nickname to either("'Sarissa'", "'Skopje'")>> + <<set $nickname = either("'Sarissa'", "'Skopje'")>> <<case "Malagasy">> - <<set $nickname to either("'Antananarivo'", "'Lemur'")>> + <<set $nickname = either("'Antananarivo'", "'Lemur'")>> + <<case "Malawian")>> + <<set $nickname to either("'Lilongwe'", "'Warm Heart of Africa'")>> <<case "Malaysian">> - <<set $nickname to either("'Kuala Lumpur'", "'Malay Girl'", "'Pirate'")>> + <<set $nickname = either("'Kuala Lumpur'", "'Malay Girl'", "'Pirate'")>> <<case "Maldivian">> - <<set $nickname to either("'Dhoni'", "'Malé'")>> + <<set $nickname = either("'Dhoni'", "'Malé'")>> <<case "Malian">> - <<set $nickname to either("'Mandinka'", "'Mansa Musa'", "'Sahel'", "'Timbuktu'", "'Trans-Sahara'")>> + <<set $nickname = either("'Mandinka'", "'Mansa Musa'", "'Sahel'", "'Timbuktu'", "'Trans-Sahara'")>> <<case "Maltese">> - <<set $nickname to either("'Maltese Falcon'", "'Valletta'")>> + <<set $nickname = either("'Maltese Falcon'", "'Valletta'")>> <<case "Marshallese">> - <<set $nickname to either("'Bikini Atoll'", "'Majuro'")>> + <<set $nickname = either("'Bikini Atoll'", "'Majuro'")>> + <<case "Mauritanian")>> + <<set $nickname to either("'Coppolani'", "'Nouakchott'")>> + <<case "Mauritian")>> + <<set $nickname to either("'Dodo'", "'Port Louis'")>> <<case "Mexican">> - <<set $nickname to either("'Azteca'", "'Beaner'", "'Burrito'", "'Cartel'", "'Chiquita'", "'Fence Hopper'", "'Headless'", "'Juarez'", "'Malinche'", "'Mamacita'", "'Senorita'", "'Sinaloa'", "'Taco'", "'Tijuana'", "'Wetback'")>> + <<set $nickname = either("'Azteca'", "'Beaner'", "'Burrito'", "'Cartel'", "'Chiquita'", "'Fence Hopper'", "'Headless'", "'Juarez'", "'Malinche'", "'Mamacita'", "'Senorita'", "'Sinaloa'", "'Taco'", "'Tijuana'", "'Wetback'")>> <<case "Micronesian">> - <<set $nickname to either("'Palikir'", "'Weno'")>> + <<set $nickname = either("'Palikir'", "'Weno'")>> <<case "Moldovan">> - <<set $nickname to either("'Bessarabia'", "'ChiÈ™inău'")>> + <<set $nickname = either("'Bessarabia'", "'ChiÈ™inău'")>> <<case "Monégasque">> - <<set $nickname to either("'Grace Kelly'", "'Monte Carlo'")>> + <<set $nickname = either("'Grace Kelly'", "'Monte Carlo'")>> <<case "Mongolian">> - <<set $nickname to either("'Genghis Khan'", "'Ulaanbaatar'")>> + <<set $nickname = either("'Genghis Khan'", "'Ulaanbaatar'")>> <<case "Montenegrin">> - <<set $nickname to either("'Black Mountain'", "'Podgorica'")>> + <<set $nickname = either("'Black Mountain'", "'Podgorica'")>> <<case "Moroccan">> - <<set $nickname to either("'Casablanca'", "'Rabat'")>> + <<set $nickname = either("'Casablanca'", "'Rabat'")>> + <<case "Mosotho")>> + <<set $nickname to either("'Maseru'", "'Moshoeshoe'")>> + <<case "Motswana")>> + <<set $nickname to either("'Gaborone'", "'Kalahari'")>> + <<case "Mozambican")>> + <<set $nickname to either("'Lourenço Marques'", "'Maputo'")>> + <<case "Namibian")>> + <<set $nickname to either("'Namib'", "'Windhoek'")>> <<case "Nauruan">> - <<set $nickname to either("'Phosphate'", "'Pleasant Island'")>> + <<set $nickname = either("'Phosphate'", "'Pleasant Island'")>> <<case "Nepalese">> - <<set $nickname to either("'Katmandu'", "'Nepali'", "'Sherpa'")>> + <<set $nickname = either("'Katmandu'", "'Nepali'", "'Sherpa'")>> <<case "a New Zealander">> - <<set $nickname to either("'All-Black'", "'Auckland'", "'Kiwi'", "'Wellington'")>> + <<set $nickname = either("'All-Black'", "'Auckland'", "'Kiwi'", "'Wellington'")>> <<case "Ni-Vanuatu">> - <<set $nickname to either("'New Hebride'", "'Port Vila'")>> + <<set $nickname = either("'New Hebride'", "'Port Vila'")>> <<case "Nicaraguan">> - <<set $nickname to either("'Granada'", "'Managua'", "'Nica'")>> + <<set $nickname = either("'Granada'", "'Managua'", "'Nica'")>> <<case "Nigerian">> - <<set $nickname to either("'Abuja'", "'Kwara'", "'Lagos'", "'Scammer'")>> + <<set $nickname = either("'Abuja'", "'Kwara'", "'Lagos'", "'Scammer'")>> <<case "Nigerien">> - <<set $nickname to either("'Kountché'", "'Niamey'")>> + <<set $nickname = either("'Kountché'", "'Niamey'")>> <<case "Niuean">> - <<set $nickname to either("'Alofi'", "'Rock of Polynesia'")>> + <<set $nickname = either("'Alofi'", "'Rock of Polynesia'")>> <<case "Norwegian">> - <<set $nickname to either("'Black Metal'", "'Kuksuger'", "'Ludder'", "'Norse'", "'Norsk'", "'Oil Hog'", "'Ola'", "'Oslo'")>> + <<set $nickname = either("'Black Metal'", "'Kuksuger'", "'Ludder'", "'Norse'", "'Norsk'", "'Oil Hog'", "'Ola'", "'Oslo'")>> <<case "Omani">> - <<set $nickname to either("'Dhofar'", "'Empty Quarter'", "'Ibadi'", "'Khanjar'", "'Muscat'")>> + <<set $nickname = either("'Dhofar'", "'Empty Quarter'", "'Ibadi'", "'Khanjar'", "'Muscat'")>> <<case "Pakistani">> - <<set $nickname to either("'Indus'", "'Karachi'", "'Lahore'", "'Paki'")>> + <<set $nickname = either("'Indus'", "'Karachi'", "'Lahore'", "'Paki'")>> <<case "Palauan">> - <<set $nickname to either("'Koror'", "'Ngerulmud'")>> + <<set $nickname = either("'Koror'", "'Ngerulmud'")>> <<case "Palestinian">> - <<set $nickname to either("'Gaza'", "'Hamas'", "'West Bank'")>> + <<set $nickname = either("'Gaza'", "'Hamas'", "'West Bank'")>> <<case "Panamanian">> - <<set $nickname to either("'Noriega'", "'Panama Canal'")>> + <<set $nickname = either("'Noriega'", "'Panama Canal'")>> <<case "Papua New Guinean">> - <<set $nickname to either("'Papua'", "'Port Moresby'")>> + <<set $nickname = either("'Papua'", "'Port Moresby'")>> <<case "Paraguayan">> - <<set $nickname to either("'Asunción'", "'Stroessner'")>> + <<set $nickname = either("'Asunción'", "'Stroessner'")>> <<case "Peruvian">> - <<set $nickname to either("'Incan'", "'Lima'", "'Lorcha'", "'Perucha'", "'Trujillo'", "'Zampoña'")>> + <<set $nickname = either("'Incan'", "'Lima'", "'Lorcha'", "'Perucha'", "'Trujillo'", "'Zampoña'")>> <<case "Polish">> - <<set $nickname to either("'Hussar'", "'Krakow'", "'Kurwa'", "'Polski'", "'Pshek'", "'Warsaw'")>> + <<set $nickname = either("'Hussar'", "'Krakow'", "'Kurwa'", "'Polski'", "'Pshek'", "'Warsaw'")>> <<case "Portuguese">> - <<set $nickname to either("'Bunda'", "'Portagee'")>> + <<set $nickname = either("'Bunda'", "'Portagee'")>> <<case "Puerto Rican">> - <<set $nickname to either("'51st State'", "'Boricua'", "'Nuyorican'", "'San Juan'", "'West Side Story'")>> + <<set $nickname = either("'51st State'", "'Boricua'", "'Nuyorican'", "'San Juan'", "'West Side Story'")>> <<case "Qatari">> - <<set $nickname to either("'Al Jazeera'", "'Doha'")>> + <<set $nickname = either("'Al Jazeera'", "'Doha'")>> <<case "Romanian">> - <<set $nickname to either("'Bucharest'", "'Ceausescu'", "'Dracula'", "'Gypsy'", "'Impaler'", "'Orphan'", "'Roma'")>> + <<set $nickname = either("'Bucharest'", "'Ceausescu'", "'Dracula'", "'Gypsy'", "'Impaler'", "'Orphan'", "'Roma'")>> <<case "Russian">> - <<set $nickname to either("'Commie'", "'Suka'", "'Suchka'", "'Moscow'", "'Moskal'", "'Red Banner'", "'Russkie'", "'Siberian Kitten'", "'Slav'", "'Suka'", "'Tovarish'", "'Tsaritsa'", "'Vodka'", "'Sickle & Hammer'", "'Bolshevik'", "'Kacap'", "'Shlyukha'")>> + <<set $nickname = either("'Commie'", "'Suka'", "'Suchka'", "'Moscow'", "'Moskal'", "'Red Banner'", "'Russkie'", "'Siberian Kitten'", "'Slav'", "'Suka'", "'Tovarish'", "'Tsaritsa'", "'Vodka'", "'Sickle & Hammer'", "'Bolshevik'", "'Kacap'", "'Shlyukha'")>> + <<case "Rwandan")>> + <<set $nickname to either("'Hotel Rwanda'", "'Kigali'")>> + <<case "Sahrawi")>> + <<set $nickname to either("'El-Aaiún'", "'Tifariti'", "'Western Saharan'")>> <<case "Saint Lucian">> - <<set $nickname to either("'Castries'", "'Helen of the West Indies'")>> + <<set $nickname = either("'Castries'", "'Helen of the West Indies'")>> <<case "Salvadoran">> - <<set $nickname to either("'Duarte'", "'San Salvador'")>> + <<set $nickname = either("'Duarte'", "'San Salvador'")>> <<case "Sammarinese">> - <<set $nickname to either("'Saint Marinus'", "'Three Towers'")>> + <<set $nickname = either("'Saint Marinus'", "'Three Towers'")>> <<case "Samoan">> - <<set $nickname to either("'Apia'", "'Navigator'")>> + <<set $nickname = either("'Apia'", "'Navigator'")>> + <<case "São Toméan")>> + <<set $nickname to either("'PrÃncipe'", "'Roças"')>> <<case "Saudi">> - <<set $nickname to either("'Burqua'", "'Mecca'", "'Riyadh'", "'Sandy'", "'Al Qaeda'")>> + <<set $nickname = either("'Burqa'", "'Mecca'", "'Riyadh'", "'Sandy'", "'Al Qaeda'")>> <<case "Scottish">> - <<set $nickname to either("'Braveheart'", "'Edinburgh'", "'Glasgow'", "'Nessie'", "'Endinburg'", "'Ned'", "'Hadrian'", "'Unicorn'", "'Lass'")>> + <<set $nickname = either("'Braveheart'", "'Edinburgh'", "'Glasgow'", "'Nessie'", "'Endinburg'", "'Ned'", "'Hadrian'", "'Unicorn'", "'Lass'")>> + <<case "Senegalese")>> + <<set $nickname to either("'Dakar'", "'Our Boat'", "'Wolof'")>> <<case "Serbian">> - <<set $nickname to either("'Belgrade'", "'Picka'", "'Remove Kebab'")>> + <<set $nickname = either("'Belgrade'", "'Picka'", "'Remove Kebab'")>> <<case "Seychellois">> - <<set $nickname to either("'Seabird'", "'Victoria'")>> + <<set $nickname = either("'Seabird'", "'Victoria'")>> + <<case "Sierra Leonean")>> + <<set $nickname to either("'Blood Diamond'", "'Freetown'")>> <<case "Singaporean">> - <<set $nickname to either("'Bedok'", "'Merlion'")>> + <<set $nickname = either("'Bedok'", "'Merlion'")>> <<case "Slovak">> - <<set $nickname to either("'Bratislava'", "'Bzdocha'", "'Shlapka'")>> + <<set $nickname = either("'Bratislava'", "'Bzdocha'", "'Shlapka'")>> <<case "Slovene">> - <<set $nickname to either("'Ljubljana'", "'Prince's Stone'")>> + <<set $nickname = either("'Ljubljana'", "'Prince's Stone'")>> <<case "a Solomon Islander">> - <<set $nickname to either("'Guadalcanal'", "'Honiara'")>> + <<set $nickname = either("'Guadalcanal'", "'Honiara'")>> + <<case "Somali")>> + <<set $nickname to either("'Black Hawk Down'", "'Mogadishu'", "'The Captain Now'")>> <<case "South African">> - <<set $nickname to either("'Afrikaner'", "'Apartheid'", "'Cape Town'", "'Johannesburg'", "'Saffer'", "'Shaka'", "'Springbok'", "'Boer'")>> + <<set $nickname = either("'Afrikaner'", "'Apartheid'", "'Cape Town'", "'Johannesburg'", "'Saffer'", "'Shaka'", "'Springbok'", "'Boer'")>> <<case "Spanish">> - <<set $nickname to either("'Barcelona'", "'Jamon'", "'Madrid'", "'Monja'", "'Senora'", "'Siesta'", "'Toreadora'")>> + <<set $nickname = either("'Barcelona'", "'Jamon'", "'Madrid'", "'Monja'", "'Senora'", "'Siesta'", "'Toreadora'")>> <<case "Sri Lankan">> - <<set $nickname to either("'Ceylon'", "'Colombo'")>> + <<set $nickname = either("'Ceylon'", "'Colombo'")>> <<case "Sudanese">> - <<set $nickname to either("'Gordon's Revenge'", "'Khartoum'", "'Nubian'", "'Omdurman'")>> + <<set $nickname = either("'Gordon's Revenge'", "'Khartoum'", "'Nubian'", "'Omdurman'")>> <<case "Surinamese">> - <<set $nickname to either("'Bouterse'", "'Paramaribo'")>> + <<set $nickname = either("'Bouterse'", "'Paramaribo'")>> + <<case "Swazi")>> + <<set $nickname to either("'Eswatini'", "'Mbabane'")>> <<case "Swedish">> - <<set $nickname to either("'Ikea'", "'Norse'", "'Stockholm'", "'Sweden Yes'")>> + <<set $nickname = either("'Ikea'", "'Norse'", "'Stockholm'", "'Sweden Yes'")>> <<case "Swiss">> - <<set $nickname to either("'Alpine'", "'Geneva'", "'Numbered Account'", "'Schlampe'", "'Zurich'", "'Neutral'", "'Banker'")>> + <<set $nickname = either("'Alpine'", "'Geneva'", "'Numbered Account'", "'Schlampe'", "'Zurich'", "'Neutral'", "'Banker'")>> <<case "Syrian">> - <<set $nickname to either("'Aleppo'", "'Damascus'")>> + <<set $nickname = either("'Aleppo'", "'Damascus'")>> <<case "Taiwanese">> - <<set $nickname to either("'Formosa'", "'Taipei'")>> + <<set $nickname = either("'Formosa'", "'Taipei'")>> <<case "Tajik">> - <<set $nickname to either("'Dushanbe'", "'Sarazm'")>> + <<set $nickname = either("'Dushanbe'", "'Sarazm'")>> <<case "Tanzanian">> - <<set $nickname to either("'Dar es Salaam'", "'Dodoma'", "'Wilderness'", "'Zanzibar'")>> + <<set $nickname = either("'Dar es Salaam'", "'Dodoma'", "'Wilderness'", "'Zanzibar'")>> <<case "Thai">> - <<set $nickname to either("'Bangcock'", "'Bangkok'", "'Ladyboy'", "'Pattaya'", "'T-Girl'")>> + <<set $nickname = either("'Bangcock'", "'Bangkok'", "'Ladyboy'", "'Pattaya'", "'T-Girl'")>> + <<case "Tibetan")>> + <<set $nickname to either("'Dalai Lama'", "'Himalayan'", "'Lhasa'")>> + <<case "Togolese")>> + <<set $nickname to either("'Lomé'", "'Togoland'")>> <<case "Tongan">> - <<set $nickname to either("'Friendly'", "'Nuku'alofa'")>> + <<set $nickname = either("'Friendly'", "'Nuku'alofa'")>> <<case "Trinidadian">> - <<set $nickname to either("'Chaguanas'", "'Tobago'", "'Trini'")>> + <<set $nickname = either("'Chaguanas'", "'Tobago'", "'Trini'")>> <<case "Tunisian">> - <<set $nickname to either("'Barbary'", "'Carthaginian'", "'Ifriqiya'", "'Punic'")>> + <<set $nickname = either("'Barbary'", "'Carthaginian'", "'Ifriqiya'", "'Punic'")>> <<case "Turkish">> - <<set $nickname to either("'Ankara'", "'Harem'", "'Istanbul'", "'Kebab'", "'Ottoman'", "'Turkette'", "'Turkish'", "'Turksmell'", "'ErdoÄŸan'")>> + <<set $nickname = either("'Ankara'", "'Harem'", "'Istanbul'", "'Kebab'", "'Ottoman'", "'Turkette'", "'Turkish'", "'Turksmell'", "'ErdoÄŸan'")>> <<case "Turkmen">> - <<set $nickname to either("'Ashgabat'", "'Karakum'")>> + <<set $nickname = either("'Ashgabat'", "'Karakum'")>> <<case "Tuvaluan">> - <<set $nickname to either("'Ellice'", "'Funafuti'")>> + <<set $nickname = either("'Ellice'", "'Funafuti'")>> <<case "Ugandan">> - <<set $nickname to either("'Bushbaby'", "'Cannibal'", "'Kampala'")>> + <<set $nickname = either("'Bushbaby'", "'Cannibal'", "'Kampala'")>> <<case "Ukrainian">> - <<set $nickname to either("'Chernobyl'", "'Chiki Briki'", "'Cossack'", "'Crimea'", "'Donbass'", "'Euromaidan'", "'Hohlina'", "'Hohlushka'", "'Kyiv'", "'Radioactive'", "'Salo'", "'Stalker'", "'Suchka'", "'Suka'", "'Svoboda'", "'Bandera'", "'Shlyukha'")>> + <<set $nickname = either("'Chernobyl'", "'Chiki Briki'", "'Cossack'", "'Crimea'", "'Donbass'", "'Euromaidan'", "'Hohlina'", "'Hohlushka'", "'Kyiv'", "'Radioactive'", "'Salo'", "'Stalker'", "'Suchka'", "'Suka'", "'Svoboda'", "'Bandera'", "'Shlyukha'")>> <<case "Uruguayan">> - <<set $nickname to either("'Garra Charrúa'", "'Montevideo'")>> + <<set $nickname = either("'Garra Charrúa'", "'Montevideo'")>> <<case "Uzbek">> - <<set $nickname to either("'Samarkand'", "'Silk Road'", "'Steppe Princess'", "'Steppe Queen'", "'Tashkent'")>> + <<set $nickname = either("'Samarkand'", "'Silk Road'", "'Steppe Princess'", "'Steppe Queen'", "'Tashkent'")>> <<case "Vatican">> - <<set $nickname to either("'Holy See'", "'Pope Joan'")>> + <<set $nickname = either("'Holy See'", "'Pope Joan'")>> <<case "Venezuelan">> - <<set $nickname to either("'Caracas'", "'Chavista'", "'Chola'", "'Revolutionary'", "'Socialist'")>> + <<set $nickname = either("'Caracas'", "'Chavista'", "'Chola'", "'Revolutionary'", "'Socialist'")>> <<case "Vietnamese">> - <<set $nickname to either("'Charlie'", "'VC'", "'Saigon'", "'Hanoi'", "'Me Love You Long Time'", "'Me So Horny'", "'Victor Charlie'", "'Viet'")>> + <<set $nickname = either("'Charlie'", "'VC'", "'Saigon'", "'Hanoi'", "'Me Love You Long Time'", "'Me So Horny'", "'Victor Charlie'", "'Viet'")>> <<case "Vincentian">> - <<set $nickname to either("'Kingstown'", "'Vincy'")>> + <<set $nickname = either("'Kingstown'", "'Vincy'")>> <<case "Yemeni">> - <<set $nickname to either("'Khat'", "'Red Sea Pirate'", "'Queen of the Desert'")>> + <<set $nickname = either("'Khat'", "'Red Sea Pirate'", "'Queen of the Desert'")>> + <<case "Zairian")>> + <<set $nickname to either("'Bongo'", "'Diamond'", "'Ebola'", "'Kinshasa'")>> <<case "Zambian">> - <<set $nickname to either("'Livingstone'", "'Lusaka'", "'Victoria Falls'")>> + <<set $nickname = either("'Livingstone'", "'Lusaka'", "'Victoria Falls'")>> <<case "Zimbabwean">> - <<set $nickname to either("'Bobojan'", "'Grimmy'", "'Harare'", "'Kaffir'", "'Mugabe'", "'Mujiba'", "'Nyombie'", "'Rhodie'", "'Zimbo'")>> + <<set $nickname = either("'Bobojan'", "'Grimmy'", "'Harare'", "'Kaffir'", "'Mugabe'", "'Mujiba'", "'Nyombie'", "'Rhodie'", "'Zimbo'")>> <<default>> <<set $nickname = either("'Stateless'", "'Refugee'")>> <</switch>> @@ -923,6 +994,51 @@ <<set $applyDesc = "takes a bit of pride from her new nickname and hopes you'll keep letting her knock bitches up.">> <<set $notApplyDesc = "understands that she is a slave and it is not her place to decide who gets pregnant and who doesn't.">> +<<case "fertilityGoddess">> + <<switch $activeSlave.nationality>> + <<case "Algerian" "Congolese" "Ethiopian" "Ghanan" "Kenyan" "Libyan" "Malian" "Moroccan" "Nigerian" "Sudanese" "Tanzanian" "Tunisian" "Ugandan" "Cameroonian" "Gabonese" "Djiboutian" "Zambian" "Malagasy" "Nigerien" "Burundian", "Seychellois">> + <<set $nickname = either("'Asase Ya'", "'Ala'")>> + <<case "Roman Revivalist">> + <<set $nickname = either("'Venus'", "'Terra'", "'Epona'", "'Fecunditas'")>> + <<case "Ancient Egyptian Revivalist" "Egyptian">> + <<set $nickname = either("'Hathor'", "'Bastet'", "'Heqet'", "'Meskhenet'")>> + <<case "Aztec Revivalist">> + <<set $nickname = either("'Xochiquetzal'")>> + <<case "Edo Revivalist" "Japanese">> + <<set $nickname = either("'KisshÅten'", "'Inari ÅŒkami'")>> + <<case "Arabian Revivalist" "Arabic">> + <<set $nickname = either("'Al-Lat'")>> + <<case "Ancient Chinese Revivalist" "Chinese">> + <<set $nickname = either("'Jiutian Xuannü'")>> + <<case "Armenian">> + <<set $nickname = either("'Anahit'")>> + <<case "Lithuanian" "Latvian">> + <<set $nickname = either("'Laima'", "'SaulÄ—'")>> + <<case "Vietnamese" "Laotian" "Cambodian">> + <<set $nickname = either("'Sowathara'")>> + <<case "Irish">> + <<set $nickname = either("'Brigid'")>> + <<case "Finnish">> + <<set $nickname = either("'Rauni'")>> + <<case "Indian">> + <<set $nickname = either("'BhÅ«mi'", "'Parvati'", "'Sinivali'")>> + <<default>> + <<if $activeSlave.race == "white">> + <<set $nickname = either("'Venus'", "'Gaia'", "'Freyja'", "'Aphrodite'", "'Demeter'", "'Ceres'")>> + <<elseif $activeSlave.race == "pacific islander">> + <<set $nickname = either("'Haumea'", "'Nuakea'")>> + <<elseif $activeSlave.race == "amerindian">> + <<set $nickname = either("'Atahensic'", "'Hanhepi Wi'")>> + <<elseif $activeSlave.race == "black">> + <<set $nickname = either("'Asase Ya'", "'Ala'")>> + <<else>> + <<set $nickname = either("'Venus'", "'Gaia'")>> + <</if>> + <</switch>> + <<set $situationDesc = "is the spitting image of a fertility idol. With her wide hips, heavy bossom and fecund belly, she lives up to the title.">> + <<set $applyDesc = "takes pride in her radiant form and hopes that she'll be treated as a goddess for possessing it.">> + <<set $notApplyDesc = "accepts that her motherly curves are just the mark of a sex slave and not a goddess.">> + <<case "superSquirter">> <<set $nickname = either("'Baby'", "'Bedwetter'", "'Squirter'", "'Gusher'", "'Needs Diapers'", "'Panty Wetter'", "'Super Soaker'", "'Geyser'", "'Girlcum'", "'Fountain'")>> <<set $situationDesc = "completely soaks herself and her partners whenever she cums. Every orgasm from her unleashes a waterfall of girlcum from her pussy.">> diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw index 8564a187f75ef41591fe5b1b0618045e458fba85..8f1cccec2f7cbc3ec19f4c5d21d78ed7ceb60b47 100644 --- a/src/uncategorized/reRecruit.tw +++ b/src/uncategorized/reRecruit.tw @@ -241,12 +241,14 @@ A young <<if $activeSlave.physicalAge < 13>>girl<<elseif $activeSlave.physicalAg <<set $activeSlave.prestigeDesc = "She was a famous young musical prodigy known throughout both the old world and the free cities.">> <<set $activeSlave.accent = 1>> -Not every day in the arcology is a calm and this one is most certainly more energetic than usual. +Not every day in the arcology is calm and this one is most certainly more energetic than usual. It seems there that a large crowd is gathering along the <<if $terrain != "oceanic">> - It seems there is a large crowd is gathering along the road extending from the front gate as a small convoy of luxury vehicles rolls in. Your arcology isn't immune to outside old world influences, and the person in the center vehicle so happens to be just such a force. + road extending from the front gate as a small convoy of luxury vehicles rolls in. Your arcology isn't immune to outside old world influences, and the person in the center vehicle <<elseif $terrain == "oceanic">> - It seems there is a large crowd is gathering along the canal extending from the front gate as a small convoy of luxury yachts sails in. Your arcology isn't immune to outside old world influences, and the person on the center yacht so happens to be such a force. + canal extending from the front gate as a small convoy of luxury yachts sails in. Your arcology isn't immune to outside old world influences, and the person on the center yacht <</if>> + so happens to be such a force. + Recently, a young musical prodigy has taken both the old world and the free cities by storm. Their rising popularity has gained them quite a following and the attention of some very powerful people. You look at the schedule of events for citizens tonight and, sure enough, they are to appear, live in concert, tonight. You tell $assistantName to set up a live feed of the performance for you so as not to interrupt your work. Several hours later, the young artist comes out on stage to a full house. They perform their latest hits and some fan favorites, but it's the crowd suddenly going silent that disturbs you from your paperwork. You look at the feed to see the artist standing there, a sullen expression on their face, tears streaming down their cheeks, and their body jerking, obviously wracked by occasional sobbing. They take a very quick bow and run off stage, before the feed gets cut. You shrug, artists have breakdowns and return to your tasks. Surprisingly, $assistantName chimes in to tell you that an unexpected guest has arrived. You have them sent in and are surprised to see the young, visibly distressed prodigy. "I was told by my producer to come here, they say I have earned enough of a debt to be enslaved. I heard that slaves seem to be treated well here and thought that, just maybe, if I convinced them to let my final performance be here, I would have a chance at a better life than at another arcology owned by a crueler master. Please, would you consider taking me in?" @@ -1076,6 +1078,10 @@ As fate has it, the person calling is the owner of the local race-track, wanting <<set $activeSlave.labia = 1>> <<set $activeSlave.ovaries = 1>> <<set $activeSlave.preg = 1>> +<<set $activeSlave.pregWeek = 1>> +<<set $activeSlave.pregType = 1>> +<<set $activeSlave.pregKnown = 1>> +<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <<set $activeSlave.pubicHStyle = "waxed">> <<set $activeSlave.underArmHStyle = "waxed">> <<set $activeSlave.height = random(180,200)>> @@ -1733,7 +1739,193 @@ As you are heading back to your penthouse from inspecting a new line of sex shop <<else>> her body is ill-suited for childbirth and the unfortunate thing has lodged in her pelvis. <</if>> -Every push, every desperate contraction must be agonizing to her. Fortunately you know what to do, however, it will not come cheap. Hour after hour you work with the girl, her dept to you growing ever higher, until you finally manage to coax the newborn from her battered body. She smiles at her baby before losing consciousness, she is in really bad shape. Odds are her child will grow up an orphan, even if you call in her debt. +Every push, every desperate contraction must be agonizing to her. Fortunately you know what to do, however, it will not come cheap. Hour after hour you work with the girl, her debt to you growing ever higher, until you finally manage to coax the newborn from her battered body. She smiles at her baby before losing consciousness, she is in really bad shape. Odds are her child will grow up an orphan, even if you call in her debt. + +<<case "overwhelmed farmgirl">> + +<<include "Generate XX Slave">> +<<set $activeSlave.origin = "She sold herself into slavery to feed herself and her growing brood.">> +<<set $contractCost = 1000>> +<<set $activeSlaveOneTimeMinAge = 16>> +<<set $activeSlaveOneTimeMaxAge = 24>> +<<set $one_time_age_overrides_pedo_mode = 1>> +<<include "Generate XX Slave">> +<<set $activeSlave.origin = "She begged to be enslaved under fear of starvation.">> +<<set $activeSlave.career = "a farm laborer">> +<<set $activeSlave.health = random(-35,-10)>> +<<set $activeSlave.devotion = random(35,45)>> +<<set $activeSlave.trust = random(15,25)>> +<<set $activeSlave.oldDevotion = $activeSlave.devotion>> +<<set $activeSlave.preg = 40>> +<<set $activeSlave.pregType = 5>> +<<set $activeSlave.pregKnown = 1>> +<<set $activeSlave.pregWeek = $activeSlave.preg>> +<<set $activeSlave.belly = 80000, $activeSlave.bellyPreg = 80000>> /* bait and switch! */ +<<set $activeSlave.ovaries = 1>> +<<set $activeSlave.face = -15>> +<<set $activeSlave.vagina = 1>> +<<set $activeSlave.anus = 0>> +<<set $activeSlave.weight = random(-80,-50)>> +<<set $activeSlave.muscles = 20>> +<<set $activeSlave.underArmHStyle = "bushy">> +<<set $activeSlave.pubicHStyle = "bushy">> +<<set $activeSlave.boobs = 700>> +<<set $activeSlave.boobShape = "torpedo-shaped">> +<<set $activeSlave.nipples = "puffy">> +<<set $activeSlave.lactation = 1>> +<<set $activeSlave.vaginaLube = 1>> +<<set $activeSlave.butt = 3>> +<<set $activeSlave.tired = 1>> +<<set $activeSlave.sexualQuirk = "caring">> +<<set $activeSlave.bellySag = 20>> +<<set $activeSlave.bellySagPreg = 20>> +<<set $activeSlave.pubertyXX = 1>> +<<set $activeSlave.waist = 5>> +<<if $activeSlave.accent > 2>> + <<set $activeSlave.accent = 2>> +<</if>> + +Your desk flags a video message as having potential. It's a rather homely farmer begging for you to enslave her, not truly unusual given the ever increasing droughts and dangerous weather patterns. Given the huge stomach rounding out her worn clothing, she is likely ready to drop quints and desperately seeking any sort of future for them. You allow her to speak her plea. "Please <<if $PC.title == 1>>Sir<<else>>Ma'am<</if>>, I just can't go on out here. I'm always hungry and can barely even work with this belly in the way. I swear, it gets heavier every day and a life of physical labor just won't let me get by. I don't know what I'll do if you say no, so please, have mercy on a poor farmer." + +<<case "held POW">> + + <<set $activeSlaveOneTimeMinAge = Math.max($fertilityAge, 8)>> + <<set $activeSlaveOneTimeMaxAge = 22>> + <<set $one_time_age_overrides_pedo_mode = 1>> + <<include "Generate XX Slave">> + <<set $activeSlave.origin = "You helped free her from a POW camp after being abandoned by her country, leaving her deeply indebted to you.">> + <<set $activeSlave.devotion = random(0,20)>> + <<set $activeSlave.trust = random(0,20)>> + <<set $activeSlave.health = -80>> + <<set $activeSlave.muscles = random(-80, 0)>> + <<set $activeSlave.weight = random(-80, -60)>> + <<set $activeSlave.waist = random(-40, -20)>> + <<set $activeSlave.combatSkill = 1>> + <<set $activeSlave.boobs = random(3,6)*100>> + <<set $activeSlave.behavioralFlaw = "odd">> + <<set $activeSlave.behavioralQuirk = "insecure">> + <<set $activeSlave.sexualFlaw = "self hating">> + <<set $activeSlave.sexualQuirk = "unflinching">> + <<set $activeSlave.fetish = "masochist">> + <<set $activeSlave.fetishStrength = 100>> + <<set $activeSlave.fetishKnown = 0>> + <<set $activeSlave.vaginaLube = 0>> + <<set $activeSlave.collar = "shock punishment">> + <<set $activeSlave.tired = 1>> + <<set $activeSlave.energy = 0>> + <<if $activeSlave.actualAge < 13>> + <<set $activeSlave.career = "a child soldier">> + <<elseif (random(1,100) > 50)>> + <<set $activeSlave.career = "a mercenary">> + <<else>> + <<set $activeSlave.career = "a soldier">> + <</if>> + <<set $activeSlave.vagina = 3>> + <<set $activeSlave.anus = 2>> + + While digging through the database of a POW camp for anything of value, you find records of a <<if $activeSlave.actualAge > 17>>rather attractive<<elseif $activeSlave.actualAge > 12>>teenage<<else>>child<</if>> soldier long abandoned by her nation. You forge false orders to have her transported to a new location, a location that would be trivial for you to obtain her from. + + <br>Upon her inevitable arrival in your penthouse, you see + <<if $seeExtreme == 1>> + the traces of her wounds, that she has been greatly modified for war, and that she had been raped, repeatedly, despite her powerful body. + <<set $activeSlave.amp = -5, $activeSlave.teeth = "pointy", $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.chem = 1000, $activeSlave.attrXX = 0, $activeSlave.attrXY = 0>> + <<else>> + the traces of her wounds, that she had been left bound long enough for her body to atrophy, and that she had been raped, repeatedly. + <<if $seePreg == 1>> + <<set $activeSlave.preg = 2>> + <<set $activeSlave.pregType = 1>> + <<set $activeSlave.pregWeek = 2>> + <<SetBellySize $activeSlave>> + <</if>> + <</if>> + Her odd behaviour suggests that her will to live has nearly been snuffed out. She likely wouldn't have lasted much longer, though it's questionable if she still will if you let her walk free. + +<<case "embryo appropriation">> + + <<set $activeSlaveOneTimeMinAge = Math.max($fertilityAge, 8)>> + <<if $pedo_mode == 1>> + <<set $activeSlaveOneTimeMaxAge = 16>> + <<else>> + <<set $activeSlaveOneTimeMaxAge = 22>> + <</if>> + <<set $one_time_age_overrides_pedo_mode = 1>> + <<include "Generate XX Slave">> + <<set $activeSlave.origin = "Her womb held a baby you desired.">> + <<set $activeSlave.face = 100>> + <<set $activeSlave.intelligence = 3>> + <<if $activeSlave.vagina < 1>> + <<set $activeSlave.vagina = 1>> + <</if>> + <<set $activeSlave.preg = 20>> + <<set $activeSlave.pregWeek = 20>> + <<set $activeSlave.pregKnown = 1>> + <<if $seeHyperPreg == 0>> + <<set $activeSlave.pregType = 1>> + <<else>> + <<set $activeSlave.pregType = random(2,8)>> + <</if>> + <<SetBellySize $activeSlave>> + <<if $arcologies[0].FSSupremacist != "unset">> + <<set $activeSlave.race = $arcologies[0].FSSupremacistRace>> + <<elseif $arcologies[0].FSSubjugationist != "unset" && $activeSlave.race == $arcologies[0].FSSubjugationistRace>> + <<if $arcologies[0].FSSubjugationistRace == "white">> + <<set $activeSlave.race = "asian">> + <<else>> + <<set $activeSlave.race = "white">> + <</if>> + <</if>> + While perusing the confidential documents in a nearby hospital's databases, you come across a particularly interesting medical record with a rather lovely face attached to it. It would seem an incredibly attractive and good gened + <<if $activeSlave.actualAge > 17>> + young woman + <<elseif $activeSlave.actualAge > 12>> + teenager + <<else>> + little girl + <</if>> + has been has been receiving frequent prenatal check ups + <<if $seeHyperPreg == 0>> + for her growing pregnancy. + <<else>> + for the multiples crowding her womb. + <</if>> + Judging by her payment plan, the worrisome mother is driving herself into a steep debt and doesn't even realize it. You could easily buy her out and make a tidy profit off her likely to be valuable child<<if $seeHyperPreg == 1>>ren<</if>>, or keep them for yourself, if you wanted. + +<<case "rogue cyborg">> + <<set $activeSlaveOneTimeMaxAge = 13>> + <<include "Generate XX Slave">> + <<set $activeSlave.career = setup.bodyguardCareers.random()>> + <<set $activeSlave.origin = "An unsuccessful cyborg experiment set free.">> + <<set $activeSlave.devotion = random(0,20)>> + <<set $activeSlave.trust = random(0,20)>> + <<set $activeSlave.health = 100>> + <<set $activeSlave.weight = random(-11 -30)>> + <<set $activeSlave.waist = random(-11, -40)>> + <<set $activeSlave.combatSkill = 1>> + <<set $activeSlave.amp = -5>> + <<set $activeSlave.teeth = "pointy">> + <<set $activeSlave.muscles = random(30,70)>> + <<set $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]}))>> + <<set $activeSlave.face = 100>> + <<set $activeSlave.vagina = -1>> + <<set $activeSlave.ovaries = 0>> + <<set $activeSlave.anus = 0>> + <<set $activeSlave.chem = 1500>> + <<set $activeSlave.clothes = "a comfortable bodysuit">> + <<set $activeSlave.intelligence = 3>> + <<set $activeSlave.intelligenceImplant = 1>> + <<set $activeSlave.energy = 0>> + <<set $activeSlave.attrXX = 0, $activeSlave.attrXY = 0>> + <<set $activeSlave.customLabel = "Z-23series">> + <<set $activeSlave.behavioralFlaw = "none">> + <<set $activeSlave.behavioralQuirk = "none">> + <<set $activeSlave.sexualFlaw = "none">> + <<set $activeSlave.sexualQuirk = "none">> + <<set $activeSlave.fetish = "none">> + <<set $activeSlave.fetishStrength = 96>> + <<set $activeSlave.fetishKnown = 0>> + <<set $activeSlave.clitPiercing = 0>> + <<set $activeSlave.boobsTat = "She has the characters 'z-23' printed across her left breast.">> + While digging through the highest security and clearance level database of a powerful old government for anything of value, you discover the existence of a ultra top secret project to develop the most powerful and effective child cyborg ever created. The entire notion is absurd, but it seems they succeeded in creating something. During field testing it was discovered that it retained far too much humanity, resulting in the death of its handler. Unsure of what to do with the project, it has been placed on ice in the bowels of a black site. With a few simple commands, you could release it and order it to your arcology. <</switch>> /* END SLAVE GENERATION AND INTRODUCTION */ @@ -1746,12 +1938,14 @@ Every push, every desperate contraction must be agonizing to her. Fortunately yo <<set $contractCost = 2000>> <<case "DG SE" "farm virgin cow" "orphan rebellious female" "orphan femboy">> <<set $contractCost = 1500>> -<<case "CCS angel" "racer DG chaser" "racer loser">> +<<case "CCS angel" "racer DG chaser" "racer loser" "held POW">> <<set $contractCost = 5000>> <<case "CCS DA">> <<set $contractCost = 7500>> -<<case "racer winner" "captured teen" "paternalist swan song">> +<<case "racer winner" "captured teen" "paternalist swan song" "embryo appropriation">> <<set $contractCost = 10000>> +<<case "rogue cyborg">> + <<set $contractCost = 100000>> <<case "repo housekeeper" "repo nanny" "farm cow" "farm bull" "school sale" "school trap">> <<set $contractCost = 2500>> <<default>> @@ -1759,6 +1953,9 @@ Every push, every desperate contraction must be agonizing to her. Fortunately yo <</switch>> <<slaveCost $activeSlave>> <<set $slaveCost -= $contractCost>> +<<if $recruit == "rogue cyborg">> + <<set $slaveCost += 300000>> +<</if>> <br><br> @@ -1772,6 +1969,12 @@ Every push, every desperate contraction must be agonizing to her. Fortunately yo <<set $cash -= $contractCost>> <<replace "#result">> <<switch $recruit>> + <<case "held POW">> + You complete the legalities and biometric scanning quickly and without fuss; her will to fight long since broken. + <<case "embryo appropriation">> + She sobs as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She tries to resist placing her biometric signature in testament to the truth of her debt, but when you observe that the alternative is the death of her and her unborn, she complies. The process is completed with a distinct anticlimax: she is one of your slaves now, and soon so shall her spawn. + <<case "rogue cyborg">> + With your order received the target quickly seeks you out. After a huge sum of credits changes hands to render it penthouse safe, the legalities and biometric scanning are complete and you are now the proud owner of a cyberloli. <<case "female recruit">> You complete the legalities and biometric scanning quickly and without fuss. $activeSlave.slaveName bounces nervously on her heels. Finally she works up her courage and asks, <<if $HeadGirl.clothes != "no clothing">>"Can I have <<if $HeadGirl.clothes == "choosing her own clothes">>a cute outfit<<else>>$HeadGirl.clothes<</if>> like $HeadGirl.slaveName?"<<else>>"Can I work with $HeadGirl.slaveName?"<</if>> Your sternly tell her to call you <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Master<<else>>Mistress<</if>>, to ask questions only with permission, and to strip. She looks at $HeadGirl.slaveName, but $HeadGirl.slaveName returns her look with no compassion at all and tells her to do what you say. Looking suddenly fearful, $activeSlave.slaveName strips. Once your inspection of her body reaches her anus, she becomes suddenly nervous. "A-am I going to have t-to do butt stuff, <<Master>>?" <<case "male recruit">> @@ -1864,6 +2067,12 @@ Every push, every desperate contraction must be agonizing to her. Fortunately yo She cooperates as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She willingly places her biometric signature in testament to the truth of her voluntary enslavement. The process is completed with a distinct anticlimax: she is one of your slaves now. She looks almost relaxed, content in the knowledge that her daughters education has been paid in full. <<case "immigrant">> She comes immediately from the immigration center to your arcology. You patiently explain the realities of the situation to her. She isn't too bright and it takes a while for things to sink in. The scanners finally do it, though. She sobs as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She tries to resist placing her biometric signature in testament to the truth of her debt, but when you observe that the alternative is death, she complies. The process is completed with a distinct anticlimax: she is one of your slaves now. + <<case "overwhelmed farmgirl">> + She barely manages to waddle into your penthouse before crashing onto your couch with permission. She willingly places her biometric signature in testament to the truth of her voluntary enslavement. She looks almost relieved. "I traded my virginity for bread and look what it got me. I'm so glad you took me in, I don't know how I would have carried on in a few months, I mean look at me." She gestures to her gravid bulge. 'A few months'? You probe further. "Huh? Oh, yes... I'm only four months along... You can see why I needed this now, right? I'm bigger than every other girl I've ever seen and I'm not even halfway there. You saved my life, even if you, um, get rid of them, you still saved me. So thank you." You can't believe what you are hearing, but a quick sonogram confirms it. Both you and her stare in shock at the sheer number of children growing in her womb. A rough estimate places their count at a staggering one-hundred-and-fifty. "...no way... There can't be that many in me..." + <<set $activeSlave.preg = 16>> + <<set $activeSlave.pregType = 150>> + <<set $activeSlave.pregWeek = $activeSlave.preg>> + <<SetBellySize $activeSlave>> <</switch>> <<switch $recruit>> <<case "desperate birth">> @@ -1898,6 +2107,14 @@ Every push, every desperate contraction must be agonizing to her. Fortunately yo <<set $cash += $slaveCost>> <<replace "#result">> <<switch $recruit>> + <<case "held POW">> + You complete the legalities and biometric scanning quickly and without fuss; her will to fight long since broken. Though you do catch a faint glimmer of joy in her eyes as you tell her she's been purchased by a notorious Pit Master and will likely spend the rest of her life in combat. + <<case "embryo appropriation">> + <<set _profit = $slaveCost*$activeSlave.pregCount>> + <<set $cash += _profit>> + She sobs as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She tries to resist placing her biometric signature in testament to the truth of her debt, but when you observe that the alternative is the death of her and her unborn, she complies. A purchasing agent appears to take her away, but not after the slave breeder that bought her paid a ludicrous amount of ¤ per child. An additional @@.yellowgreen;¤<<print _profit>>@@ overall. + <<case "rogue cyborg">> + With your order received the target quickly seeks you out. After a huge sum of credits changes hands to render it safe, the legalities and biometric scanning are complete and it is sold off to a very eager robophile. <<case "female recruit">> You complete the legalities and biometric scanning quickly and without fuss. $activeSlave.slaveName bounces nervously on her heels. Finally she works up her courage and asks, <<if $HeadGirl.clothes != "no clothing">>"Can I have <<if $HeadGirl.clothes == "choosing her own clothes">>a cute outfit<<else>>$HeadGirl.clothes<</if>> like $HeadGirl.slaveName?"<<else>>"Can I work with $HeadGirl.slaveName?"<</if>> Your answer appears in the form of a purchasing agent, here to take her away. As he restrains the disbelieving girl, you tell her she's been purchased by a brothel, so she's going to be fucked about 70,000 times before she gets to be too old and is retired, so she can be sure she won't be bored. She releases a wail of utter despair, quickly cut off by a sturdy bag being fastened over her head. <<case "male recruit">> @@ -1944,6 +2161,9 @@ Every push, every desperate contraction must be agonizing to her. Fortunately yo She cooperates as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She willingly places her biometric signature in testament to the truth of her voluntary enslavement. A purchasing agent appears to take her away, which she accepts resignedly, though she does ask you who purchased her. Amused, you tell her that her reverence of education convinced you to sell her to a brothel catering to inexperienced men. "I'm going to be a little bit like a teacher?" She contemplates this unexpected turn of events. "Well, that's very thoughtful of you. Thank you." <<case "immigrant">> She comes immediately from the immigration center to your arcology. You patiently explain the realities of the situation to her. She isn't too bright and it takes a while for things to sink in. The scanners finally do it, though. She sobs as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She tries to resist placing her biometric signature in testament to the truth of her debt, but when you observe that the alternative is death, she complies. You add that she's already been purchased by a brothel, and would be well advised to keep obeying. She breaks down entirely at this. + <<case "overwhelmed farmgirl">> + She barely manages to waddle into your penthouse before asking to have a seat on your couch. You decline, since she is clearly so skilled at carrying children, she will spend the rest of her enslavement as a volume breeder. Her gaze falls to the floor, this at least means she'll be fed and get to have her children. She cooperates to having her biometric readings taken and logged, before being seated in a wheelchair and taken to her new home. + Hours later, you receive a brief message from the facility that purchased her. "150. One hundred and fifty babies. That is how many are crammed into that girl. She was a mere sixteen weeks along. If she lives through this, we may have a record breaking breeder on our hands. Felt the need to pass that along, you might have made us quite a profit this year." <</switch>> <</replace>> <</link>> //This will bring in <<print cashFormat($slaveCost)>>.// diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw index 2faccffa5c94275c45f0548e059c2be4f63e9a0f..35a3d87062725491d5ae1f11e1c91f07baa535fa 100644 --- a/src/uncategorized/reRelativeRecruiter.tw +++ b/src/uncategorized/reRelativeRecruiter.tw @@ -127,6 +127,7 @@ <<set $activeSlave.pregType = 0>> <<set $activeSlave.pregWeek = 0>> <<set $activeSlave.pregKnown = 0>> + <<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> $eventSlave.slaveName requests an interview with you. She's a devoted slave, and you grant it, and are happy you did when you see the troubled expression on her face. She explains<<if !canTalk($eventSlave)>> with desperate gestures<</if>> that diff --git a/src/uncategorized/recETSWorkaround.tw b/src/uncategorized/recETSWorkaround.tw index a979ab1114876a2f7002359db79c9e80588a6457..2c4000860e915c40650a7857258f1fe330b6b99a 100644 --- a/src/uncategorized/recETSWorkaround.tw +++ b/src/uncategorized/recETSWorkaround.tw @@ -118,6 +118,7 @@ Her sister-pimp walks in angrily demanding to know why you called her here. She The son cheers happily and hugs his relieved mother. She leans in and kisses him deeply. They ought to be an interesting addition to your penthouse. + <<set $activeSlave.slaveName = $activeSlave.birthName>> <<set $activeSlave.ID = $activeSlave.ID + 1000>> <<set $activeSlave.career = "a student">> @@ -140,6 +141,7 @@ The son cheers happily and hugs his relieved mother. She leans in and kisses him <<set $activeSlave.preg = 0>> <<set $activeSlave.pregKnown = 0>> <<set $activeSlave.pregWeek = 0>> +<<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> <<set $activeSlave.dick = 2>> <<set $activeSlave.foreskin = 3>> @@ -235,6 +237,7 @@ They cheer happily and hug each other tightly. They ought to be an interesting a <<set $activeSlave.preg = 0>> <<set $activeSlave.pregKnown = 0>> <<set $activeSlave.pregWeek = 0>> +<<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> <<set $activeSlave.dick = 2>> <<set $activeSlave.foreskin = 2>> @@ -432,7 +435,7 @@ The father hugs his son tight and slips a hand down his pants. They ought to be <<set $activeSlave.visualAge = $activeSlave.actualAge>> <<set $activeSlave.ovaryAge = $activeSlave.actualAge>> <<ResyncHeight $activeSlave>> -<<set $activeSlave.vagina = 0>> +<<set $activeSlave.vagina = -1>> <<if $activeSlave.actualAge < $potencyAge>> <<set $activeSlave.pubertyXY = 0>> <</if>> @@ -523,6 +526,7 @@ You turn to the child clutching her mother's grotesque belly. <<set $activeSlave.pregType = 0>> <<set $activeSlave.pregKnown = 0>> <<set $activeSlave.pregWeek = 0>> + <<set WombFlush($activeSlave)>> <<SetBellySize $activeSlave>> <<set $activeSlave.labor = 0>> <<set $activeSlave.ovaries = 0>> @@ -609,6 +613,7 @@ You turn to the child clutching her mother's grotesque belly. <<set $activeSlave.pubertyXX = 0>> <<set $activeSlave.vagina = 0>> <<set $activeSlave.pregKnown = 0>> + <<set WombFlush($activeSlave)>> <<if $fertilityAge <= 3>> <<set $activeSlave.pubertyXX = 1>> <<set $activeSlave.preg = 6>> @@ -642,3 +647,10 @@ You turn to the child clutching her mother's grotesque belly. <<set $activeSlave.birthSurname = _familyBirthSurname>> <<AddSlave $activeSlave>> + +<<switch $RecETSevent>> + <<case "incest mother son" "incest father daughter" "incest brother sister" "incest sister sister" "incest brother brother" "incest mother daughter" "incest father son">> + <<include "newSlaveIncestSex">> + <<default>> + /* do nothing */ +<</switch>> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 5606d1a5b22031b6b4e82894e96a409a690f392f..6a20cb58d965d87b7e129d446e97eae58e9a3fed 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -150,7 +150,7 @@ $possessiveCap $activeSlave.faceShape face is <</if>> <<if ($cyberMod == 1) && ($stockpile.ocularImplant > 0) && ($activeSlave.origEye != "implant")>> <<if ($activeSlave.eyes != -3)>> | <</if>> - | [[Give her ocular implants|Surgery Degradation][$activeSlave.origEye = "implant",$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "ocular implant"]] + | [[Give her ocular implants|Surgery Degradation][$activeSlave.origEye = "implant", $stockpile.ocularImplant--,$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "ocular implant"]] <</if>> <</if>> <</if>> @@ -208,7 +208,7 @@ $pronounCap has <</if>> <<case "straightening braces">> $possessiveCap crooked teeth are in braces. - [[Remove braces|Remote Surgery][$activeSlave.teeth = "crooked"]] + [[Remove braces|Remote Surgery][$activeSlave.teeth = "crooked",$surgeryType = "removeBraces"]] <<if ($seeExtreme == 1) && ($activeSlave.indentureRestrictions < 1)>> | [[Replace them with removable prosthetics|Surgery Degradation][$activeSlave.teeth = "removable",$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "teeth"]] | [[Replace them with sharp teeth|Surgery Degradation][$activeSlave.teeth = "pointy",$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "sharp"]] <</if>> @@ -504,8 +504,13 @@ waist. <br> $pronounCap's -<<if $activeSlave.pregKnown == 1>> +<<if $activeSlave.pregKnown > 0>> pregnant. +<<elseif $activeSlave.womb.length == 0 && $activeSlave.broodmother > 0>> + got a dormant broodmother implant in $possessive womb. +<<elseif $activeSlave.preg > 0>> + showing unusual discomfort as $possessive stomach is inspected. A quick test reveals that @@.lime;$pronoun is pregnant.@@ + <<set $activeSlave.pregKnown = 1>> <<elseif $activeSlave.bellyImplant > 0>> got a <<print $activeSlave.bellyImplant>>cc implant filled implant located in $possessive abdomen. <<if $activeSlave.cervixImplant == 1 >> @@ -529,7 +534,7 @@ $pronounCap's //$possessiveCap indenture forbids elective surgery// <<elseif $activeSlave.breedingMark == 1>> //You are forbidden from affecting $possessive fertility// -<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0>> +<<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0 || $activeSlave.broodmother > 0>> //$pronounCap is unable to support an abdominal implant at this time// <<elseif $activeSlave.bellyImplant >= 750000>> //$possessiveCap abdominal implant is so far beyond its maximum limit it is at risk of rupturing// @@ -750,12 +755,22 @@ Work on her sex: <</if>> <<if $activeSlave.indentureRestrictions < 1 && $activeSlave.breedingMark != 1>> <<if isFertile($activeSlave)>> - [[Implant a pregnancy generator|Surgery Degradation][$activeSlave.preg = 1,$activeSlave.pregWeek = 1,$activeSlave.pregKnown = 1,$activeSlave.pregType = 1,$activeSlave.broodmother = 1,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "preg"]] //This will have severe effects on $possessive health and mind// + [[Implant a pregnancy generator|Surgery Degradation][$activeSlave.preg = 1,$activeSlave.pregWeek = 1,$activeSlave.pregKnown = 1,$activeSlave.pregType = 1,$activeSlave.broodmother = 1,$activeSlave.broodmotherFetuses = 1,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "preg"]] //This will have severe effects on $possessive health and mind// <</if>> <</if>> <</if>> <</if>> +<<if $permaPregImplant == 1>> + <<if $activeSlave.broodmother >= 1 >> + <<if $activeSlave.womb.length == 0 >> + [[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = -2,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]] + <<else>> + $pronounCap is pregnant right now, so $possessive broodmother implant can't be safely extracted. + <</if>> + <</if>> +<</if>> + <<if $activeSlave.mpreg == 1>> <<if $activeSlave.preg > 0>> <br> diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index 60a71092505c774b3bcbe515c4d258d036fb7234..94981efcf4efc8d4c121ed4735af1dff24435453 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -297,7 +297,7 @@ On formal occasions, you are announced as $PCTitle. <</if>> <<elseif $arcologies[0].FSBodyPurist != "unset">> <<if $PC.boobsImplant == 1>> - Society finds fake breasts repuslive and yours are no exception; your balloon-like breasts @@.red;harm@@ your public image. + Society finds fake breasts repulsive and yours are no exception; your balloon-like breasts @@.red;harm@@ your public image. <<set $rep -= (10*$PC.boobsBonus)>> <</if>> <<if $PC.buttImplant == 1>> @@ -319,7 +319,7 @@ On formal occasions, you are announced as $PCTitle. <</if>> <</if>> -<<if ($PC.belly >= 1500) || ($PC.career == "escort" && $PC.belly >= 500)>> +<<if (($PC.belly >= 1500) || ($PC.career == "escort" && $PC.belly >= 500)) && $PC.preg > 0>> <<if $arcologies[0].FSRestart != "unset">> <<if $arcologies[0].FSRestartDecoration == 100>> <<if $PC.pregSource != -1>> @@ -383,7 +383,10 @@ On formal occasions, you are announced as $PCTitle. <<if $PC.career == "gang" && $rep < 15000>> Society @@.red;frowns@@ over being run by an ex-gang leader, no matter how strong they might have been. <<set $rep -= ($rep*0.1)>> -<<elseif $PC.career == "gang">> +<<elseif $PC.career == "BlackHat" && $rep < 15000>> + Society @@.red;dislikes@@ being run by someone so capable of dredging up secrets, especially when they used to do it for the highest bidder. + <<set $rep -= ($rep*0.1)>> +<<elseif $PC.career == "gang" || $PC.career == "BlackHat">> Your reputation is strong enough that society has come to accept your background as part of your image. <</if>> @@ -655,8 +658,10 @@ On formal occasions, you are announced as $PCTitle. <</if>> <</if>> -<<set $rep -= $repLoss>> -<<set $rep += $repGain>> +<<if !isNaN($repLoss) && !isNaN($repGain)>> + <<set $rep -= $repLoss>> + <<set $rep += $repGain>> +<</if>> <br> diff --git a/src/uncategorized/resSale.tw b/src/uncategorized/resSale.tw index 2e771c94fde5df3a4575c4a250de91983513405a..798ddd1882243fc483171ecf6d8de1d51f6d0cd8 100644 --- a/src/uncategorized/resSale.tw +++ b/src/uncategorized/resSale.tw @@ -61,7 +61,7 @@ You pause for a moment, and she plunges on: "<<if $PC.title == 1>>Sir<<else>>Ma' <<elseif $RESSale == "TGA">> My tutelage has been long and hard, and I'm very eager to begin my life as a slave." She's nude, and stands up to reveal her hardon. She spins for the camera, showing herself off. "I can help protect you, too: I'm proficient in unarmed combat, and I have weapons training. I would love to be your bitch, or your bodyguard, <<if $PC.title == 1>>Sir<<else>>Ma'am<</if>>," she says, doing her very best to sound appealing, like she's been told. <<elseif $RESSale == "HA">> - I am ready to serve you in any way you deem fit and do everything I can to protect your life." She's wearing a delicate maid uniform, beautifully contrasting her poweful physique and towering stature. "The academy has given me the opportunity to learn many valuable skills and I look forward put them at your service." + I am ready to serve you in any way you deem fit and do everything I can to protect your life." She's wearing a delicate maid uniform, beautifully contrasting her powerful physique and towering stature. "The academy has given me the opportunity to learn many valuable skills and I look forward put them at your service." <<else>> The time has come for me to serve my Sisters by leaving my community and becoming a slave. Our sex skills are unparalleled," she says proudly. She's nude, and reclines luxuriantly for the camera, showing her remarkable body off in all its gorgeous strangeness. Her boobs are huge, her dick is hard, her pussy is wet, and her ass is relaxed. "I love to fuck, <<if $PC.title == 1>>Sir<<else>>Ma'am<</if>>," she says, and you believe her. <<if ($PC.dick == 1) && ($PC.vagina == 1)>> diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw index 6374695dc82a1f064afe7e4688f4dfac9961b90d..94acc3234c31a15f0c939494a5b5383575dbac41 100644 --- a/src/uncategorized/rulesAssistant.tw +++ b/src/uncategorized/rulesAssistant.tw @@ -130,10 +130,43 @@ List of rules: <br> <<rbutton "_crule" _r>> $defaultRules[_r].name <</for>> <br> - <<link "Switch to selected rule">> + <<link "Switch to selected rule">> <<set $currentRule = $defaultRules[_crule]>> <<goto "Rules Assistant">> - <</link>> + <</link>> | +<</if>> + + <<link "Add a new rule">> + + <<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: "nds", accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hair: "nds", bodyhair:"nds", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: "nds", bellyImplant: "no default setting"}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds", bellyImplantVol: -1}>> + + /* pick an ID higher than the highest ID of any existing rule */ + <<for _tempRule.ID = 1, _r = 0; _r < _length; _r++>> + <<set _tempRule.ID = Math.max(_tempRule.ID, $defaultRules[_r].ID + 1)>> + <</for>> + <<set _tempRule.name = "Rule " + (_length+1)>> + + <<set $defaultRules.push(_tempRule)>> + <<set $currentRule = $defaultRules[_length]>> + <<goto "Rules Assistant">> + + <</link>> | + <<link "Remove rule '$currentRule.name'">> + <<set $defaultRules.deleteAt($r-1)>> + <<for $r = $defaultRules.length; $r > 0; $r-->> + <<if def $defaultRules[$r-1]>> + <<set $currentRule = $defaultRules[$r-1]>> + <<break>> + <</if>> + <</for>> + <<goto "Rules Assistant">> + <</link>> | + <span class="saveresult"></span> + <<timed 50ms>> + <<RAChangeSave>> + <</timed>> +<br><br> +<<if _length >= 10>>''@@.red;ATTENTION! Current rules count is 10 or above. High rules count can dramatically slow down game speed (especially if slaves count is high too), or even cause freeze of game page/browser. Use at your own risk!@@'' <br><br> <</if>> @@ -561,7 +594,7 @@ Clothes: <<RARuleModified>> <</link>> | -<<if ($arcologies[0].FSPhysicalIdealist != "unset") || ($cheatMode == 1) || ($clothesBoughtOil == 1)>> +<<if isItemAccessible("body oil")>> //FS// <<link "Body oil">> <<set $currentRule.clothes = "body oil">> @@ -570,7 +603,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSGenderFundamentalist != "unset") || ($cheatMode == 1) || ($clothesBoughtBunny == 1)>> +<<if isItemAccessible("a bunny outfit")>> //FS// <<link "Bunny outfit">> <<set $currentRule.clothes = "a bunny outfit">> @@ -579,7 +612,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSChattelReligionist != "unset") || ($cheatMode == 1) || ($clothesBoughtHabit == 1)>> +<<if isItemAccessible("a chattel habit")>> //FS// <<link "Chattel habit">> <<set $currentRule.clothes = "a chattel habit">> @@ -588,7 +621,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSPaternalist != "unset") || ($cheatMode == 1) || ($clothesBoughtConservative == 1)>> +<<if isItemAccessible("conservative clothing")>> //FS// <<link "Conservative clothing">> <<set $currentRule.clothes = "conservative clothing">> @@ -597,7 +630,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSArabianRevivalist != "unset") || ($cheatMode == 1) || ($clothesBoughtHarem == 1)>> +<<if isItemAccessible("harem gauze")>> //FS// <<link "Harem gauze">> <<set $currentRule.clothes = "harem gauze">> @@ -606,16 +639,16 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSAztecRevivalist != "unset") || ($cheatMode == 1) || ($clothesBoughtHuipil == 1)>> +<<if isItemAccessible("a huipil")>> //FS// <<link "Huipil">> - <<set $currentRule.clothes = "a huipil", $currentRule.choosesOwnClothes = 0>> + <<set $currentRule.clothes = "a huipil">> <<RAChangeClothes>> <<RARuleModified>> <</link>> | <</if>> -<<if ($arcologies[0].FSEdoRevivalist != "unset") || ($cheatMode == 1) || ($clothesBoughtKimono == 1)>> +<<if isItemAccessible("a kimono")>> //FS// <<link "Kimono">> <<set $currentRule.clothes = "a kimono">> @@ -624,7 +657,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSRepopulationFocus != "unset") || ($cheatMode == 1) || ($clothesBoughtMaternityDress == 1)>> +<<if isItemAccessible("a maternity dress")>> //FS// <<link "Maternity dress">> <<set $currentRule.clothes = "a maternity dress">> @@ -633,7 +666,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSRepopulationFocus != "unset") || ($cheatMode == 1) || ($clothesBoughtMaternityLingerie == 1)>> +<<if isItemAccessible("attractive lingerie for a pregnant woman")>> //FS// <<link "Maternity lingerie">> <<set $currentRule.clothes = "attractive lingerie for a pregnant woman">> @@ -642,7 +675,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSChineseRevivalist != "unset") || ($cheatMode == 1) || ($clothesBoughtQipao == 1)>> +<<if isItemAccessible("a slutty qipao")>> //FS// <<link "Slutty qipao">> <<set $currentRule.clothes = "a slutty qipao">> @@ -651,7 +684,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSHedonisticDecadence != "unset") || ($cheatMode == 1) || ($clothesBoughtLazyClothes == 1)>> +<<if isItemAccessible("stretch pants and a crop-top")>> //FS// <<link "Stretch pants and a crop-top">> <<set $currentRule.clothes = "stretch pants and a crop-top">> @@ -660,7 +693,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSRomanRevivalist != "unset") || ($cheatMode == 1) || ($clothesBoughtToga == 1)>> +<<if isItemAccessible("a toga")>> //FS// <<link "Toga">> <<set $currentRule.clothes = "a toga">> @@ -669,7 +702,7 @@ Clothes: <</link>> | <</if>> -<<if ($arcologies[0].FSPastoralist != "unset") || ($cheatMode == 1) || ($clothesBoughtWestern == 1)>> +<<if isItemAccessible("Western clothing")>> //FS// <<link "Western clothing">> <<set $currentRule.clothes = "Western clothing">> @@ -685,7 +718,7 @@ Clothes: <<RAChangeClothes>> <<RARuleModified>> <</link>> -<<if ($arcologies[0].FSDegradationist != "unset") || ($cheatMode == 1) || ($clothesBoughtChains == 1)>> +<<if isItemAccessible("chains")>> | //FS// <<link "Chains">> <<set $currentRule.clothes = "chains">> @@ -778,7 +811,7 @@ Collar: <span id="collar">''$currentRule.collar.''</span> <<RAChangeCollar>> <<RARuleModified>> <</link>> -<<if ($arcologies[0].FSGenderFundamentalist != "unset") || ($cheatMode == 1) || ($clothesBoughtBunny == 1)>> +<<if isItemAccessible("bowtie")>> | //FS// <<link "Bowtie collar">> <<set $currentRule.collar = "bowtie">> @@ -786,7 +819,7 @@ Collar: <span id="collar">''$currentRule.collar.''</span> <<RARuleModified>> <</link>> <</if>> -<<if ($arcologies[0].FSEgyptianRevivalist != "unset") || ($cheatMode == 1) || ($clothesBoughtEgypt == 1)>> +<<if isItemAccessible("ancient Egyptian")>> | //FS// <<link "Ancient Egyptian">> <<set $currentRule.collar = "ancient Egyptian">> @@ -1030,8 +1063,45 @@ Buttplugs for other slaves: <span id="buaccessory">''$currentRule.buttplug.''</s <</if>> <</for>> +<<if $bellyImplants >= 1>> + <br> + Belly implant target volume (if present): ''<span id = "bimpl">no default setting</span>.'' + <br> + <<rbutton "$currentRule.bellyImplantVol" "-1" "bimpl" "no changes">> No changes | + <<rbutton "$currentRule.bellyImplantVol" "0" "bimpl" "empty implant">> Empty | + <<rbutton "$currentRule.bellyImplantVol" "1500" "bimpl" "early pregnancy">> Small | + <<rbutton "$currentRule.bellyImplantVol" "5000" "bimpl" "second trimester pregnancy">> Mid-pregnancy | + <<rbutton "$currentRule.bellyImplantVol" "15000" "bimpl" "full-term pregnancy">> Full-term | + <<rbutton "$currentRule.bellyImplantVol" "30000" "bimpl" "full-term with twins pregnancy">> Twins | + <<rbutton "$currentRule.bellyImplantVol" "45000" "bimpl" "full-term with triplets pregnancy">> Triplets | + <<rbutton "$currentRule.bellyImplantVol" "60000" "bimpl" "full-term with quadruplets pregnancy">> Quads | + <<rbutton "$currentRule.bellyImplantVol" "75000" "bimpl" "full-term with quintuplets pregnancy">> Quints | + <<rbutton "$currentRule.bellyImplantVol" "90000" "bimpl" "full-term with sextuplets pregnancy">> Sextuplets | + <<rbutton "$currentRule.bellyImplantVol" "105000" "bimpl" "full-term with septuplets pregnancy">> Septuplets | + <<rbutton "$currentRule.bellyImplantVol" "120000" "bimpl" "full-term with octuplets pregnancy">> Octomom +<</if>> + <br><br> Body modification: [[Cosmetic Rules Assistant Settings][$artificialEyeColor = "",$artificialEyeShape = ""]] | [[Body Mod Rules Assistant Settings]] | [[Autosurgery Settings]] +<br> +Assistant-applied implants (Autosurgery global switch): +<span id = "assistantimplants"> +<<if $currentRule.autoSurgery == 1>> + ''ACTIVE, STAND CLEAR.'' + <<link "Off">> + <<set $currentRule.autoSurgery = 0>> + <<RAChangeAssistantImplants>> + <<RARuleModified>> + <</link>> +<<else>> + ''off.'' + <<link "Activate">> + <<set $currentRule.autoSurgery = 1>> + <<RAChangeAssistantImplants>> + <<RARuleModified>> + <</link>> +<</if>> +</span> <br><br> @@ -1487,6 +1557,10 @@ Slave diets: ''fat slaves will slim down to plush; skinny slaves will fill out to thin.'' <<elseif $currentRule.diet == "cleansing">> ''designed to promote health'' +<<elseif $currentRule.diet == "fertility">> + ''designed to promote ovulation'' +<<elseif $currentRule.diet == "cum production">> + ''designed to promote cum production'' <<else>> ''no default setting.'' <</if>> @@ -1551,6 +1625,22 @@ Slave diets: <<RARuleModified>> <</link>> <</if>> +<<if $dietFertility == 1>> + | + <<link "Fertility">> + <<set $currentRule.diet = "fertility">> + <<RAChangeDiet>> + <<RARuleModified>> + <</link>> +<</if>> +<<if $cumProDiet == 1>> + | + <<link "Cum production">> + <<set $currentRule.diet = "cum production">> + <<RAChangeDiet>> + <<RARuleModified>> + <</link>> +<</if>> <span id = "dietsupport"> <<if $currentRule.diet !== "no default setting">> @@ -1731,26 +1821,7 @@ Braces: <<RARuleModified>> <</link>> -<br> -Assistant-applied implants: -<span id = "assistantimplants"> -<<if $currentRule.autoSurgery == 1>> - ''ACTIVE, STAND CLEAR.'' - <<link "Off">> - <<set $currentRule.autoSurgery = 0>> - <<RAChangeAssistantImplants>> - <<RARuleModified>> - <</link>> -<<else>> - ''off.'' - <<link "Activate">> - <<set $currentRule.autoSurgery = 1>> - <<RAChangeAssistantImplants>> - <<RARuleModified>> - <</link>> -<</if>> -</span> <br><br> @@ -2441,43 +2512,25 @@ Relationship rules: <span id="relation">''$currentRule.relationshipRules.''</spa <<goto "Rules Assistant">> <</link>> <</if>> - | -<<link "Remove rule $r">> - <<set $defaultRules.deleteAt($r-1)>> - <<for $r = $defaultRules.length; $r > 0; $r-->> - <<if def $defaultRules[$r-1]>> - <<set $currentRule = $defaultRules[$r-1]>> - <<break>> - <</if>> - <</for>> - <<goto "Rules Assistant">> -<</link>> - -<</if>> /* closes if _length > 0 */ - -<br><br> - -<<if _length >= 10>>''@@.red;ATTENTION! Current rules count is 10 or above. High rules count can dramatically slow down game speed (especially if slaves count is high too), or even cause freeze of game page/browser. Use at your own risk!@@'' -<br><br> -<</if>> - - <<link "Add a new rule">> - - <<set _tempRule = {aphrodisiacs: "no default setting", condition: {id: "false"}, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: {boobs: "no default setting", butt: "no default setting", lips: "no default setting", dick: "no default setting", balls: "no default setting"}, autoSurgery: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "no default setting", facility: [], excludeFacility: [], excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {eyes: "no default setting", lactation: "no default setting", prostate: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting", drug: "no default setting", eyes: "no default setting", pregSpeed: "nds" }>> - - /* pick an ID higher than the highest ID of any existing rule */ - <<for _tempRule.ID = 1, _r = 0; _r < _length; _r++>> - <<set _tempRule.ID = Math.max(_tempRule.ID, $defaultRules[_r].ID + 1)>> +<span class="saveresult"></span> + <<timed 50ms>> + <<RAChangeSave>> +<</timed>> +| +<<link "Remove rule '$currentRule.name'">> + <<set $defaultRules.deleteAt($r-1)>> + <<for $r = $defaultRules.length; $r > 0; $r-->> + <<if def $defaultRules[$r-1]>> + <<set $currentRule = $defaultRules[$r-1]>> + <<break>> + <</if>> <</for>> - <<set _tempRule.name = "Rule " + (_length+1)>> - - <<set $defaultRules.push(_tempRule)>> - <<set $currentRule = $defaultRules[_length]>> <<goto "Rules Assistant">> + <</link>> +<</if>> /* closes if _length > 0 */ - <</link>> | - +<br><br> <<if _length > 0>> <span id="applyresult"></span> diff --git a/src/uncategorized/rulesAutosurgery.tw b/src/uncategorized/rulesAutosurgery.tw index 416a1b4bad6c1f4ca3636f9767fa4829b15f60dc..14934f98be80d7913ae11d5ac169497e9109ff48 100644 --- a/src/uncategorized/rulesAutosurgery.tw +++ b/src/uncategorized/rulesAutosurgery.tw @@ -1,79 +1,40 @@ :: Rules Autosurgery [nobr] <<set $surgeries = []>> +<<unset $thisSurgery>> -<<if $HGTastes>> - <<if $HGTastes == 1>> +<<if (def $HGTastes) && $HGTastes > 0>> + <<if $HGTastes == 1>> <<set $thisSurgery = {lactation: 0, cosmetic: 1, faceShape: "cute", lips: 10, hips: 0, hipsImplant: 0, butt: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, holes: 0}>> <<elseif $HGTastes == 2>> <<set $thisSurgery = {lactation: 0, cosmetic: 1, faceShape: "cute", lips: 60, hips: 0, hipsImplant: 0, butt: 4, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 1200, holes: 0}>> + <<elseif $HGTastes == 4>> + <<set $thisSurgery = {lactation: 1, cosmetic: 1, faceShape: "cute", lips: 10, hips: 3, hipsImplant: 0, butt: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, holes: 0}>> <<else>> <<set $thisSurgery = {lactation: 0, cosmetic: 1, faceShape: "cute", lips: 95, hips: 0, hipsImplant: 0, butt: 8, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 10000, holes: 2}>> <</if>> <<else>> - <<for _r = $defaultRules.length-1; _r >= 0; _r-->> - <<set _currentRule = $defaultRules[_r]>> - <<if (def _currentRule) && (_currentRule.autoSurgery != 0)>> - <<set $thisSurgery = _currentRule.surgery>> - <<set _temp = lastLactationSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.lactation = _temp.surgery.lactation>> + <<set $thisSurgery = autoSurgerySelector($slaves[$i], $defaultRules)>> + <<if ($thisSurgery.hips !== "no default setting") && ($thisSurgery.butt !== "no default setting")>> + <<if $slaves[$i].hips < -1>> + <<if $thisSurgery.butt > 2>> + <<set $thisSurgery.butt = 2>> <</if>> - <<set _temp = lastProstateSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.prostate = _temp.surgery.prostate>> + <<elseif $slaves[$i].hips < 0>> + <<if $thisSurgery.butt > 4>> + <<set $thisSurgery.butt = 4>> <</if>> - <<set _temp = lastLipSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.lips = _temp.surgery.lips>> + <<elseif $slaves[$i].hips > 0>> + <<if $thisSurgery.butt > 8>> + <<set $thisSurgery.butt = 8>> <</if>> - <<set _temp = lastButtSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.butt = _temp.surgery.butt>> - <</if>> - <<set _temp = lastBoobSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.boobs = _temp.surgery.boobs>> - <</if>> - <<set _temp = lastEyeSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.eyes = _temp.surgery.eyes>> - <</if>> - <<set _temp = lastBodyHairSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.bodyhair = _temp.surgery.bodyhair>> - <</if>> - <<set _temp = lastHairSurgeryRule($slaves[$i], $defaultRules)>> - <<if _temp != null>> - <<set $thisSurgery.hair = _temp.surgery.hair>> - <</if>> - <<if ($thisSurgery.hips !== "no default setting") && ($thisSurgery.butt !== "no default setting")>> - <<if $slaves[$i].hips < -1>> - <<if $thisSurgery.butt > 2>> - <<set $thisSurgery.butt = 2>> - <</if>> - <<elseif $slaves[$i].hips < 0>> - <<if $thisSurgery.butt > 4>> - <<set $thisSurgery.butt = 4>> - <</if>> - <<elseif $slaves[$i].hips > 0>> - <<if $thisSurgery.butt > 8>> - <<set $thisSurgery.butt = 8>> - <</if>> - <<elseif $slaves[$i].hips > 1>> - <<else>> - <<if $thisSurgery.butt > 6>> - <<set $thisSurgery.butt = 6>> - <</if>> - <</if>> + <<elseif $slaves[$i].hips > 1>> + <<else>> + <<if $thisSurgery.butt > 6>> + <<set $thisSurgery.butt = 6>> <</if>> - <<break>> <</if>> - <</for>> -<</if>> - -<<if ndef $thisSurgery>> - <<set $thisSurgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0, bodyhair: 0, hair: 0}>> + <</if>> <</if>> <<set $seed = 0>> @@ -116,14 +77,14 @@ <</if>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> -<<elseif ($slaves[$i].faceImplant <= 15) && ($slaves[$i].face <= 95) && ($thisSurgery.cosmetic != 0)>> +<<elseif ($slaves[$i].faceImplant <= 15) && ($slaves[$i].face <= 95) && ($thisSurgery.cosmetic > 0)>> <<set $surgeries.push("a nicer face")>> <<if $slaves[$i].faceShape == "masculine">><<set $slaves[$i].faceShape = "androgynous">><</if>> <<set $slaves[$i].faceImplant += 25-5*Math.trunc($PC.medicine/100)-5*$surgeryUpgrade>> <<set $slaves[$i].face = Math.clamp($slaves[$i].face+20,-100,100)>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> -<<elseif ($slaves[$i].faceImplant <= 15) && ($slaves[$i].ageImplant != 1) && ($slaves[$i].visualAge >= 25) && ($thisSurgery.cosmetic != 0)>> +<<elseif ($slaves[$i].faceImplant <= 15) && ($slaves[$i].ageImplant != 1) && ($slaves[$i].visualAge >= 25) && ($thisSurgery.cosmetic > 0)>> <<set $surgeries.push("an age lift")>> <<set $slaves[$i].ageImplant = 1>> <<set $slaves[$i].faceImplant += 25-5*Math.trunc($PC.medicine/100)-5*$surgeryUpgrade>> @@ -140,23 +101,37 @@ <</if>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> -<<elseif ($slaves[$i].voice == 1) && ($slaves[$i].voiceImplant == 0) && ($thisSurgery.cosmetic != 0)>> +<<elseif (($slaves[$i].underArmHStyle != "bald" && $slaves[$i].underArmHStyle != "hairless") || ($slaves[$i].pubicHStyle != "bald" && $slaves[$i].pubicHStyle != "hairless")) && ($thisSurgery.bodyhair == 2)>> + <<set $surgeries.push("body hair removal")>> + <<if $slaves[$i].underArmHStyle != "hairless">><<set $slaves[$i].underArmHStyle = "bald">><</if>> + <<if $slaves[$i].pubicHStyle != "hairless">><<set $slaves[$i].pubicHStyle = "bald">><</if>> + <<set $cash -= $surgeryCost>> +<<elseif ($slaves[$i].bald == 0 || $slaves[$i].hStyle != "bald") && ($thisSurgery.hair == 2)>> + <<set $surgeries.push("hair removal")>> + <<set $slaves[$i].hStyle = "bald", $slaves[$i].bald = 1>> + <<set $cash -= $surgeryCost>> +<<elseif ($slaves[$i].weight >= 10) && ($thisSurgery.cosmetic > 0)>> + <<set $surgeries.push("liposuction")>> + <<set $slaves[$i].weight -= 50>> + <<set $cash -= $surgeryCost>> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif ($slaves[$i].voice == 1) && ($slaves[$i].voiceImplant == 0) && ($thisSurgery.cosmetic > 0)>> <<set $surgeries.push("a feminine voice")>> <<set $slaves[$i].voice += 1>> <<set $slaves[$i].voiceImplant += 1>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> -<<elseif ($slaves[$i].waist >= -10) && ($thisSurgery.cosmetic != 0)>> +<<elseif ($slaves[$i].waist >= -10) && ($thisSurgery.cosmetic > 0)>> <<set $surgeries.push("a narrower waist")>> <<set $slaves[$i].waist -= 20>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> -<<elseif (($slaves[$i].boobShape == "saggy") || ($slaves[$i].boobShape == "downward-facing")) && ($thisSurgery.cosmetic != 0) && ($slaves[$i].breastMesh != 1)>> +<<elseif (($slaves[$i].boobShape == "saggy") || ($slaves[$i].boobShape == "downward-facing")) && ($thisSurgery.cosmetic > 0) && ($slaves[$i].breastMesh != 1)>> <<set $surgeries.push("a breast lift")>> <<set $slaves[$i].boobShape = "normal">> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> -<<elseif (($slaves[$i].boobShape == "normal") || ($slaves[$i].boobShape == "wide-set")) && ($thisSurgery.cosmetic != 0) && ($slaves[$i].breastMesh != 1)>> +<<elseif (($slaves[$i].boobShape == "normal") || ($slaves[$i].boobShape == "wide-set")) && ($thisSurgery.cosmetic > 0) && ($slaves[$i].breastMesh != 1)>> <<if $slaves[$i].boobs > 800>> <<set $slaves[$i].boobShape = "torpedo-shaped">> <<else>> @@ -192,6 +167,11 @@ <<set $slaves[$i].face = Math.clamp($slaves[$i].face+20,-100,100)>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif ($slaves[$i].hips < 1) && ($slaves[$i].hips < $thisSurgery.hips) && ($surgeryUpgrade == 1)>> + <<set $surgeries.push("wider hips")>> + <<set $slaves[$i].hips++, $slaves[$i].hipsImplant++>> + <<set $cash -= $surgeryCost>> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> <<elseif ($slaves[$i].faceImplant <= 45) && ($slaves[$i].ageImplant != 1) && ($slaves[$i].visualAge >= 25) && ($thisSurgery.cosmetic == 2)>> <<set $surgeries.push("an age lift")>> <<set $slaves[$i].ageImplant = 1>> @@ -223,6 +203,7 @@ <<elseif ($thisSurgery.butt == 0) && ($slaves[$i].buttImplant > 0)>> <<set $surgeries.push("surgery to remove her butt implants")>> <<set $slaves[$i].butt -= $slaves[$i].buttImplant>> + <<set $slaves[$i].buttImplant = 0>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> <<elseif ($thisSurgery.boobs == 0) && ($slaves[$i].boobsImplant > 0)>> @@ -288,6 +269,11 @@ <</if>> <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif ($slaves[$i].hips < 2) && ($slaves[$i].hips < $thisSurgery.hips) && ($surgeryUpgrade == 1)>> + <<set $surgeries.push("wider hips")>> + <<set $slaves[$i].hips++, $slaves[$i].hipsImplant++>> + <<set $cash -= $surgeryCost>> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> <<elseif ($slaves[$i].anus > 1) && ($thisSurgery.holes == 1)>> <<set $surgeries.push("a tighter anus")>> <<set $slaves[$i].anus = 1>> @@ -320,15 +306,38 @@ <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> <</if>> -<<elseif (($slaves[$i].underArmHStyle != "bald" && $slaves[$i].underArmHStyle != "hairless") || ($slaves[$i].pubicHStyle != "bald" && $slaves[$i].pubicHStyle != "hairless")) && ($thisSurgery.bodyhair == 2)>> - <<set $surgeries.push("body hair removal")>> - <<if $slaves[$i].underArmHStyle != "hairless">><<set $slaves[$i].underArmHStyle = "bald">><</if>> - <<if $slaves[$i].pubicHStyle != "hairless">><<set $slaves[$i].pubicHStyle = "bald">><</if>> +<<elseif ($slaves[$i].hips < 3) && ($slaves[$i].hips < $thisSurgery.hips) && ($surgeryUpgrade == 1)>> + <<set $surgeries.push("wider hips")>> + <<set $slaves[$i].hips++, $slaves[$i].hipsImplant++>> <<set $cash -= $surgeryCost>> -<<elseif ($slaves[$i].bald == 0 || $slaves[$i].hStyle != "bald") && ($thisSurgery.hair == 2)>> - <<set $surgeries.push("hair removal")>> - <<set $slaves[$i].hStyle = "bald", $slaves[$i].bald = 1>> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif $slaves[$i].bellyImplant < 0 && $bellyImplants > 0 && $thisSurgery.bellyImplant == "install" && $slaves[$i].womb.length == 0 && $slaves[$i].broodmother == 0>> + <<set $slaves[$i].bellyImplant = 100>> + <<set $slaves[$i].preg = -2>> + <<set $cash -= $surgeryCost>> + <<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1>> + <<set $surgeries.push("belly implant"), $surgeryType = "bellyIn">> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> + <<else>> + <<set $surgeries.push("male belly implant"), $surgeryType = "bellyInMale">> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 25>><<else>><<set $slaves[$i].health -= 50>><</if>> + <</if>> + <<silently>> + <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton>> + <<include "Surgery Degradation">> + <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB>> + <</silently>> +<<elseif $slaves[$i].bellyImplant >= 0 && $thisSurgery.bellyImplant == "remove">> + <<set $surgeries.push("belly implant removal"), $surgeryType = "bellyOut">> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> + <<set $slaves[$i].preg = 0>> + <<set $slaves[$i].bellyImplant = -1>> <<set $cash -= $surgeryCost>> + <<silently>> + <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton>> + <<include "Surgery Degradation">> + <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB>> + <</silently>> <<else>> <<set $seed = 1>> diff --git a/src/uncategorized/saChoosesOwnClothes.tw b/src/uncategorized/saChoosesOwnClothes.tw index 93268a33494f4efda62f72ec8aa68cc73fbdfa08..53b7fc4a6550028a457c4107759338eec7c21191 100644 --- a/src/uncategorized/saChoosesOwnClothes.tw +++ b/src/uncategorized/saChoosesOwnClothes.tw @@ -1,5 +1,6 @@ :: SA chooses own clothes [nobr] +/*for the time being, this will use female pronouns until the system is updated.*/ <<if $slaves[$i].choosesOwnClothes == 1>> <<SlavePronouns $slaves[$i]>> @@ -7,407 +8,69 @@ <<set $bellyAccessory = $slaves[$i].bellyAccessory>> <<if $slaves[$i].fetish == "mindbroken">> + <<set _corsetChoice = todaysCorset($slaves[$i]), _clothingChoice = todaysOutfit($slaves[$i])>> + <<set $slaves[$i].bellyAccessory = _corsetChoice.bellyAccessory, $slaves[$i].clothes = _clothingChoice.clothes>> + $pronounCap is fundamentally broken, but still follows some faint memories of standing within the wardrobe. - <<if $slaves[$i].amp != 1 && $slaves[$i].heels == 1>> - $pronounCap finds $pronoun can inexplicably walk if $pronoun wears heels; a daily lesson for $object, as $pronoun forgets shortly after leaving. - <<set $slaves[$i].shoes = either("heels", "extreme heels", "boots")>> + <<if $slaves[$i].amp != 1>> + <<set _shoeChoice = todaysShoes($slaves[$i])>> + _shoeChoice.text + <<set $slaves[$i].shoes = _shoeChoice.shoes>> <</if>> - <<if ($arcologies[0].FSRepopulationFocus > 0) && $slaves[$i].belly < 1500>> - $pronounCap sees the fake bellies; since every girl $pronoun has ever met has a rounded middle, it's only natural $pronoun is compelled to wear one. - <<if $slaves[$i].weight > 130>> - She struggles to fit it around her huge gut, only stopping when another slave takes it away from her so she moves on and stops blocking the wardrobe with her fat ass. - <<else>> - <<set $slaves[$i].bellyAccessory = "a large empathy belly">> - <</if>> - <</if>> - Faced with so many choices and no thought on the matter; - <<set _clothingPool = []>> - <<if ($arcologies[0].FSChattelReligionist > 0)>> - $pronoun commonly sees others wearing chattel habits and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "a chattel habit">> - <<else>> - <<if ($arcologies[0].FSEgyptianRevivalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("egyptian")>> - <<elseif ($arcologies[0].FSRomanRevivalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("roman")>> - <<elseif ($arcologies[0].FSAztecRevivalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("aztec")>> - <<elseif ($arcologies[0].FSEdoRevivalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("edo")>> - <<elseif ($arcologies[0].FSArabianRevivalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("arabic")>> - <<elseif ($arcologies[0].FSChineseRevivalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("chinese")>> - <</if>> - <<if ($arcologies[0].FSGenderFundamentalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("genderFund")>> - <</if>> - <<if ($arcologies[0].FSPaternalist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("paternalist")>> - <<elseif ($arcologies[0].FSDegradationist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("degradationist")>> - <</if>> - <<if ($arcologies[0].FSMaturityPreferentialist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("mature")>> - <<elseif ($arcologies[0].FSYouthPreferentialist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("youth")>> - <</if>> - <<if ($arcologies[0].FSPhysicalIdealist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("physicalIdealist")>> - <</if>> - <<if ($arcologies[0].FSPastoralist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("pastoralist")>> - <</if>> - <<if ($arcologies[0].FSBodyPurist > 0) && (random(1,3) == 1)>> - <<set _clothingPool.push("bodyPurist")>> - <</if>> - <<set _clothingPool.push("panties")>> - <<switch _randomClothes>> - <<case "egyptian">> - $pronoun commonly sees others wearing nothing but jewelry and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "slutty jewelry">> - <<case "roman">> - $pronoun commonly sees others wearing togas and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "a toga">> - <<case "aztec">> - $pronoun commonly sees others wearing huipils and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "a huipil">> - <<case "edo">> - $pronoun commonly sees others wearing kimonos and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "a kimono">> - <<case "arabic">> - $pronoun commonly sees others wearing silk and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "harem gauze">> - <<case "chinese">> - $pronoun commonly sees others wearing qipaos and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "a slutty qipao">> - <<case "genderFund">> - <<if random(1,2) == 1>> - $pronoun commonly sees cheerleaders around and instinctually follows along. - <<set $slaves[$i].clothes = either("a cheerleader outfit", "a schoolgirl outfit")>> - <<else>> - $pronoun commonly sees bunnies around and instinctually follows along. - <<set $slaves[$i].clothes = "a bunny outfit">> - <</if>> - <<case "paternalist">> - $pronoun commonly sees others wearing clothing and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = "conservative clothing">> - <<case "mature">> - $pronoun commonly sees others wearing suits and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = either("slutty business attire", "a nice maid outfit", "a military uniform", "nice business attire")>> - <<case "youth">> - $pronoun commonly sees schoolgirls around and instinctually follows along. - <<set $slaves[$i].clothes = either("a schoolgirl outfit", "a cheerleader outfit")>> - <<case "degradationist">> - $pronoun commonly sees others wearing chains and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = either("chains", "uncomfortable straps", "shibari ropes")>> - <<case "physicalIdealist">> - $pronoun commonly sees naked girls around and seldom realizes they are coated in oil. - <<set $slaves[$i].clothes = either("body oil", "no clothing", "no clothing")>> - <<case "pastoralist">> - $pronoun commonly sees cowgirls around and instinctually follows along. - <<set $slaves[$i].clothes = "Western clothing">> - <<case "bodyPurist">> - $pronoun commonly sees others wearing tight, form-fitting clothes and is drawn to doing so <<print $object>>self. - <<set $slaves[$i].clothes = either("a leotard", "a string bikini", "a scalemail bikini", "a slave gown", "a comfortable bodysuit", "restrictive latex", "clubslut netting", "a leotard", "a halter top dress")>> - <<default>> - $pronoun chooses to put on underwear, the reasons lost to $possessive, and moves on. - <<set $slaves[$i].clothes = "attractive lingerie">> - <</switch>> - <</if>> -<<else>> + _corsetChoice.text Faced with so many choices and no thought on the matter; _clothingChoice.text + +<<elseif ($slaves[$i].devotion <= 20)>> -<<if ($slaves[$i].devotion <= 20)>> - $pronounCap uses the ability to select outfits to cover up with comfortable cut-offs and a t-shirt, - <<set $slaves[$i].clothes = "cutoffs and a t-shirt">> - <<if ($slaves[$i].amp != 1)>> - <<if ($slaves[$i].heels == 0)>> - and wears comfortable flats, - <<set $slaves[$i].shoes = "flats">> - <<else>> - and angrily wears the heels $pronoun needs to walk, - <<set $slaves[$i].shoes = "heels">> - <</if>> + <<set _clothingChoice = todaysOutfit($slaves[$i])>> + <<set $slaves[$i].clothes = _clothingChoice.clothes>> + _clothingChoice.text + + <<if $slaves[$i].amp != 1>> + <<set _shoeChoice = todaysShoes($slaves[$i])>> + _shoeChoice.text + <<set $slaves[$i].shoes = _shoeChoice.shoes>> <</if>> + @@.mediumorchid;increasing $possessive independence.@@ <<set $slaves[$i].devotion -= 5>> <<else>> - $pronounCap @@.hotpink;loves@@ being able to dress <<print $object>>self, + <<set _neckChoice = todaysCollar($slaves[$i]), _corsetChoice = todaysCorset($slaves[$i]), _clothingChoice = todaysOutfit($slaves[$i])>> + <<set $slaves[$i].collar = _neckChoice.collar, $slaves[$i].bellyAccessory = _corsetChoice.bellyAccessory, $slaves[$i].clothes = _clothingChoice.clothes>> + + $pronounCap @@.hotpink;loves@@ being able to dress <<print $object>>self, _neckChoice.text _corsetChoice.text _clothingChoice.text <<set $slaves[$i].devotion += 1>> -<<if ($arcologies[0].FSEgyptianRevivalist > 0)>> - dons a wesekh to support your ancient Egyptian pretensions, - <<set $slaves[$i].collar = "ancient Egyptian">> -<</if>> - -<<if ($arcologies[0].FSRepopulationFocus > 0) && ($slaves[$i].belly < 1500) && $slaves[$i].sexualFlaw != "breeder">> - <<if $slaves[$i].weight > 130>> - struggles to fit a fake pregnant belly around her gut before giving up and hoping she can pass as fecund, - <<else>> - straps on a fake pregnant belly to fit in with all the other pregnant girls, - <<set $slaves[$i].bellyAccessory = "a large empathy belly">> - <</if>> -<<elseif ($slaves[$i].belly < 1500) && ($slaves[$i].fetish == "pregnancy") && isItemAccessible("a small empathy belly") && $slaves[$i].sexualFlaw != "breeder" && $slaves[$i].weight <= 130>> - <<if ($slaves[$i].fetishStrength <= 30)>> - <<set _bellySeed = random(1,3)>> - <<if _bellySeed == 1>> - straps on a 1st trimester belly to satisfy $possessive curiosity, - <<set $slaves[$i].bellyAccessory = "a small empathy belly">> - <<elseif _bellySeed == 2>> - straps on a 2nd trimester belly to satisfy $possessive curiosity, - <<set $slaves[$i].bellyAccessory = "a medium empathy belly">> - <<else>> - straps on a 3rd trimester belly to satisfy $possessive curiosity, - <<set $slaves[$i].bellyAccessory = "a large empathy belly">> - <</if>> - <<elseif ($slaves[$i].fetishStrength <= 95)>> - straps on a 3rd trimester belly to satisfy $possessive pregnancy fetish, - <<set $slaves[$i].bellyAccessory = "a large empathy belly">> - <<elseif ($slaves[$i].fetishStrength > 95)>> - straps on the largest belly $pronoun can find to satisfy $possessive pregnancy fetish, - <<set $slaves[$i].bellyAccessory = "a huge empathy belly">> - <</if>> -<<elseif (setup.fakeBellies.includes($bellyAccessory)) && ($slaves[$i].fetish != "pregnancy")>> - removes $possessive fake belly, since $pronoun dislikes it, - <<set $slaves[$i].bellyAccessory to "none">> -<<elseif (setup.fakeBellies.includes($bellyAccessory)) && ($slaves[$i].sexualFlaw == "breeder")>> - pulls $possessive fake belly off, disgusted by it, - <<set $slaves[$i].bellyAccessory = "none">> -<</if>> - -<<if ($arcologies[0].FSChattelReligionist > 0)>> - and wears a chattel habit to conform to your arcology's culture. - <<set $slaves[$i].clothes = "a chattel habit">> -<<elseif ($arcologies[0].FSEgyptianRevivalist > 0) && (random(1,3) == 1)>> - and complements it with golden bangles, since no clothing is necessary for a sex slave in your warm and sunny arcology. - <<set $slaves[$i].clothes = "slutty jewelry">> -<<elseif ($arcologies[0].FSRomanRevivalist > 0) && (random(1,3) == 1)>> - and wears a toga to take part in your Roman revivalism. - <<set $slaves[$i].clothes = "a toga">> -<<elseif ($arcologies[0].FSEdoRevivalist > 0) && (random(1,3) == 1)>> - and wears a kimono, overjoyed that such lovely clothing is now appropriate. - <<set $slaves[$i].clothes = "a kimono">> -<<elseif ($arcologies[0].FSArabianRevivalist > 0) && (random(1,3) == 1)>> - and wears a harem outfit to look like a slave girl fit for a Sultan. - <<set $slaves[$i].clothes = "harem gauze">> -<<elseif ($arcologies[0].FSChineseRevivalist > 0) && (random(1,3) == 1)>> - and wears a brief qipao to show off and look Chinese at the same time. - <<set $slaves[$i].clothes = "a slutty qipao">> -<<elseif ($arcologies[0].FSGenderFundamentalist > 0) && (random(1,3) == 1)>> - and wears a cheerleader outfit to look like a hot slut. - <<set $slaves[$i].clothes = "a cheerleader outfit">> -<<elseif ($arcologies[0].FSGenderFundamentalist > 0) && (random(1,3) == 1)>> - and wears a bunny outfit to look like a slut from the glory days. - <<set $slaves[$i].clothes = "a bunny outfit">> -<<elseif ($arcologies[0].FSPaternalist > 0) && (random(1,3) == 1)>> - and wears conservative clothing, as permitted by your paternalism. - <<set $slaves[$i].clothes = "conservative clothing">> -<<elseif ($arcologies[0].FSMaturityPreferentialist > 0) && (random(1,3) == 1) && ($slaves[$i].visualAge >= 30)>> - and wears a slutty suit to look like the ideal horny older woman. - <<set $slaves[$i].clothes = "slutty business attire">> -<<elseif ($arcologies[0].FSYouthPreferentialist > 0) && (random(1,3) == 1)>> - and wears a schoolgirl outfit to look younger. - <<set $slaves[$i].clothes = "a schoolgirl outfit">> -<<elseif ($arcologies[0].FSDegradationist > 0) && (random(1,3) == 1)>> - and wears chains, to degrade <<print $object>>self as required by your societal goals. - <<set $slaves[$i].clothes = "chains">> -<<elseif ($arcologies[0].FSPhysicalIdealist > 0) && (random(1,3) == 1)>> - and coats <<print $object>>self in body oil to show off how $pronoun's part of your physical idealism. - <<set $slaves[$i].clothes = "body oil">> -<<elseif ($arcologies[0].FSPastoralist > 0) && (random(1,3) == 1)>> - and wears Western clothing, since $pronoun thinks it fits with pastoralism. - <<set $slaves[$i].clothes = "Western clothing">> -<<elseif ($arcologies[0].FSBodyPurist > 0) && (random(1,3) == 1)>> - and wears a leotard to show off the purity of $possessive body. - <<set $slaves[$i].clothes = "a leotard">> -<<elseif ($slaves[$i].behavioralQuirk == "sinful") && (random(1,3) == 1)>> - and dresses up like a succubus because it makes $object feel naughty. - <<set $slaves[$i].clothes = "a succubus outfit">> -<<elseif ($slaves[$i].behavioralQuirk == "fitness") && (random(1,3) == 1)>> - and wears spats and a tank top to give herself a sporty look. - <<set $slaves[$i].clothes = "spats and a tank top">> -<<elseif ($slaves[$i].assignment == "guard you")>> - <<if ($slaves[$i].muscles > 30)>> - and wears a scalemail bikini to show off $possessive curves and strength. - <<set $slaves[$i].clothes = "a scalemail bikini">> - <<elseif random(1,2) == 1>> - and wears a bodysuit to show off $possessive curves without hindering $possessive deadliness. - <<set $slaves[$i].clothes = "a comfortable bodysuit">> - <<else>> - and wears a military uniform to look the part of the honor guard. - <<set $slaves[$i].clothes = "a military uniform">> - <</if>> -<<elseif ($slaves[$i].assignment == "be the Nurse")>> - and wears a nice nurse outfit to look professional before $possessive patients. - <<set $slaves[$i].clothes = "a nice nurse outfit">> -<<elseif ($slaves[$i].assignment == "recruit girls")>> - and wears a flattering mini dress to appear sexy and carefree before those desperately seeking a better life. - <<set $slaves[$i].clothes = "a mini dress">> -<<elseif ($slaves[$i].assignment == "be the Madam")>> - and wears a slutty suit to entice and arouse while still looking managerial. - <<set $slaves[$i].clothes = "slutty business attire">> -<<elseif ($slaves[$i].assignment == "be the DJ")>> - and wears clubslut netting to look like the perfect easy club girl. - <<set $slaves[$i].clothes = "clubslut netting">> -<<elseif ($slaves[$i].assignment == "be the Milkmaid")>> - and wears a sturdy maid outfit, since anything else might be damaged by $possessive hard work with the cows. - <<set $slaves[$i].clothes = "a nice maid outfit">> -<<elseif ($slaves[$i].assignment == "be the Milkmaid") && canPenetrate($slaves[$i]) && $cumSlaves > 2>> - and wears a slutty nurse outfit to help keep $possessive charges hard. - <<set $slaves[$i].clothes = "a slutty nurse outfit">> -<<elseif ($slaves[$i].assignment == "be your Head Girl")>> - and wears a handsome suit to give $object that extra touch of authority. - <<set $slaves[$i].clothes = "nice business attire">> -<<elseif ($slaves[$i].assignment == "be the Schoolteacher")>> - and wears a schoolgirl outfit to help keep $possessive charges on task. - <<set $slaves[$i].clothes = "a schoolgirl outfit">> -<<elseif ($slaves[$i].assignment == "be the Attendant")>> - and wears a string bikini, since it's all $pronoun can wear that won't be ruined by all the moisture in the spa. - <<set $slaves[$i].clothes = "a string bikini">> -<<elseif ($slaves[$i].assignment == "be the Wardeness")>> - and dons battledress, the better to intimidate the prisoners. - <<set $slaves[$i].clothes = "battledress">> -<<elseif ($slaves[$i].assignment == "be your concubine")>> - and goes naked, since it's $possessive honored role to be the chief object of your desire. - <<set $slaves[$i].clothes = "no clothing">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "submissive")>> - <<if random(1,2) == 1>> - and wears restrictive latex to encourage others to dominate $object. - <<set $slaves[$i].clothes = "restrictive latex">> - <<else>> - and wears shibari ropes to encourage others to dominate $object. - <<set $slaves[$i].clothes = "shibari ropes">> - <</if>> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "dom")>> - <<if random(1,2) == 1>> - and wears a handsome suit, since $pronoun likes other slaves to look up to $object. - <<set $slaves[$i].clothes = "nice business attire">> - <<else>> - and wears a full body latex catsuit to look the part of the whip cracking domme. - <<set $slaves[$i].clothes = "a latex catsuit">> - <</if>> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "masochist")>> - and wears painfully restrictive bondage gear, since $pronoun likes the torment. - <<set $slaves[$i].clothes = "uncomfortable straps">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "sadist")>> - and wears an elegant gown, since $pronoun thinks it makes $object look the part of the femme fatale. - <<set $slaves[$i].clothes = "a slave gown">> -<<elseif ($slaves[$i].attrKnown == 1) && ($slaves[$i].attrXY > 85)>> - and wears a schoolgirl outfit to show off some T&A to attract boys. - <<set $slaves[$i].clothes = "a schoolgirl outfit">> -<<elseif ($slaves[$i].attrKnown == 1) && ($slaves[$i].attrXX > 85)>> - and wears a fashionable gown, since girls appreciate nice clothes. - <<set $slaves[$i].clothes = "a slave gown">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "cumslut")>> - and wears cut-offs and a t-shirt, because the fun yet relatively conservative outfit seems to encourage others to ask $object for blowjobs. - <<set $slaves[$i].clothes = "cutoffs and a t-shirt">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "humiliation")>> - and wears leather straps with rings over $possessive private parts because $pronoun enjoys the embarrassment such a humiliating outfit causes $object. - <<set $slaves[$i].clothes = "uncomfortable straps">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "buttslut")>> - and wears nothing other than slutty bangles, because $pronoun likes to catch the eye without putting anything between cocks and $possessive rear end. - <<set $slaves[$i].clothes = "slutty jewelry">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "mindbroken")>> - or would, if $pronoun were competent or sane. - <<set $slaves[$i].clothes = "no clothing">> -<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "pregnancy")>> - and wears a short maid dress, because $pronoun wants to look motherly and fuckable at the same time. - <<set $slaves[$i].clothes = "a slutty maid outfit">> -<<elseif ($slaves[$i].energy > 95)>> - but goes nude, since as a nympho $pronoun gets plenty of attention anyway, and considers clothes an unnecessary hindrance. - <<set $slaves[$i].clothes = "no clothing">> -<<elseif ($slaves[$i].assignment == "rest")>> - and wears a comfortable t-shirt and cutoffs to relax. - <<set $slaves[$i].clothes = "cutoffs and a t-shirt">> -<<elseif ($slaves[$i].assignment == "be a subordinate slave")>> - but gives up and goes naked after the other slaves constantly tear whatever $pronoun's wearing off $object. - <<set $slaves[$i].clothes = "no clothing">> -<<elseif ($slaves[$i].assignment == "work a glory hole")>> - but doesn't bother wearing anything, since no one can see $possessive clothing when $pronoun's immured inside a glory hole. - <<set $slaves[$i].clothes = "no clothing">> -<<elseif ($slaves[$i].assignment == "take classes") || ($slaves[$i].assignment == "learn in the schoolroom")>> - and wears a schoolgirl outfit, since it seems most appropriate. - <<set $slaves[$i].clothes = "a schoolgirl outfit">> -<<elseif (($slaves[$i].assignment == "whore") || ($slaves[$i].assignment == "work in the brothel")) && $slaves[$i].belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")>> - and wears pretty lingerie to show off $possessive merchandise and accentuate $possessive <<if $slaves[$i].pregKnown == 1>>pregnancy<<else>>belly<</if>> while still looking a little classy. - <<set $slaves[$i].clothes = "attractive lingerie for a pregnant woman">> -<<elseif ($slaves[$i].assignment == "whore") || ($slaves[$i].assignment == "work in the brothel")>> - and wears pretty lingerie to show off $possessive merchandise and still look a little classy. - <<set $slaves[$i].clothes = "attractive lingerie">> -<<elseif ($slaves[$i].assignment == "serve the public") || ($slaves[$i].assignment == "serve in the club")>> - and wears string lingerie to look fun and fuckable. - <<set $slaves[$i].clothes = "a string bikini">> -<<elseif ($slaves[$i].assignment == "get milked") || ($slaves[$i].assignment == "work in the dairy")>> - and wears sturdy lingerie to offer the best support to $possessive sore, milk-filled udders. - <<set $slaves[$i].clothes = "attractive lingerie">> -<<elseif ($slaves[$i].assignment == "be a servant") || ($slaves[$i].assignment == "work as a servant")>> - and wears a sturdy maid outfit, since anything else might be damaged by $possessive hard work around the penthouse. - <<set $slaves[$i].clothes = "a nice maid outfit">> -<<elseif $slaves[$i].belly >= 5000>> - <<set _belly = bellyAdjective($slaves[$i])>> - <<if random(1,2) == 1>> - and wears pretty lingerie to show off $possessive merchandise while giving $possessive _belly belly plenty of room to hang free. - <<set $slaves[$i].clothes = "attractive lingerie">> - <<elseif isItemAccessible("attractive lingerie for a pregnant woman") && $slaves[$i].energy > 90>> - and wears pretty lingerie to show off $possessive merchandise and accentuate $possessive _belly pregnancy while giving it plenty of room to hang free. - <<set $slaves[$i].clothes = "attractive lingerie for a pregnant woman">> - <<elseif isItemAccessible("a maternity dress")>> - and wears a conservative dress with plenty of give for $possessive _belly belly to stretch it. - <<set $slaves[$i].clothes = "a maternity dress">> - <<else>> - and wears string lingerie to look fun and fuckable while giving $possessive _belly belly plenty of room to hang free. - <<set $slaves[$i].clothes = "a string bikini">> - <</if>> -<<else>> - and wears string lingerie to show off $possessive body. - <<set $slaves[$i].clothes = "a string bikini">> -<</if>> - -<<if $arcologies[0].FSRestart != "unset">> - <<if $slaves[$i].choosesOwnChastity == 1>> - <<if $slaves[$i].vagina > -1 && $slaves[$i].breedingMark == 1 && ($slaves[$i].vaginalAccessory == "chastity belt" || $slaves[$i].vaginalAccessory == "combined chastity")>> - $pronounCap unfastens $possessive chastity belt knowing full well $possessive role in life is to carry $possessive <<WrittenMaster $slaves[$i]>>'s children. - <<set $slaves[$i].vaginalAccessory = "none">> - <<elseif $slaves[$i].vagina > -1 && $slaves[$i].ovaries == 1 && $slaves[$i].preg == 0 && $slaves[$i].vaginalAccessory != "chastity belt">> - $pronounCap also affixes a chastity belt over $possessive vagina to discourage use of $possessive reproductive organ. - <<set $slaves[$i].vaginalAccessory = "chastity belt">> - <<elseif $slaves[$i].vagina > -1 && ($slaves[$i].ovaries == 0 || $slaves[$i].preg < -1) && $slaves[$i].vaginalAccessory == "chastity belt">> - $pronounCap removes $possessive chastity belt since no matter how hard someone tries, $pronoun can never become pregnant. - <<set $slaves[$i].vaginalAccessory = "none">> - <</if>> - <<if $slaves[$i].dick > 0 && $slaves[$i].balls > 0 && $slaves[$i].dickAccessory != "chastity">> - $pronounCap also affixes a chastity cage onto $possessive dick to discourage use of $possessive reproductive organ. - <<set $slaves[$i].dickAccessory = "chastity">> - <<elseif $slaves[$i].dick > 0 && $slaves[$i].balls == 0 && $slaves[$i].dickAccessory == "chastity">> - $pronounCap removes $possessive chastity cage since even if $pronoun could get erect, $pronoun only shoots blanks. - <<set $slaves[$i].dickAccessory = "none">> + /* this'll require <<WrittenMaster>> to become JS to work. Maybe later on when it beomces a widespread need */ + <<if $arcologies[0].FSRestart != "unset">> + <<if $slaves[$i].choosesOwnChastity == 1>> + <<if $slaves[$i].vagina > -1 && $slaves[$i].breedingMark == 1 && ($slaves[$i].vaginalAccessory == "chastity belt" || $slaves[$i].vaginalAccessory == "combined chastity")>> + $pronounCap unfastens $possessive chastity belt knowing full well $possessive role in life is to carry $possessive <<WrittenMaster $slaves[$i]>>'s children. + <<set $slaves[$i].vaginalAccessory = "none">> + <<elseif $slaves[$i].vagina > -1 && $slaves[$i].ovaries == 1 && $slaves[$i].preg == 0 && $slaves[$i].vaginalAccessory != "chastity belt">> + $pronounCap also affixes a chastity belt over $possessive vagina to discourage use of $possessive reproductive organ. + <<set $slaves[$i].vaginalAccessory = "chastity belt">> + <<elseif $slaves[$i].vagina > -1 && ($slaves[$i].ovaries == 0 || $slaves[$i].preg < -1) && $slaves[$i].vaginalAccessory == "chastity belt">> + $pronounCap removes $possessive chastity belt since no matter how hard someone tries, $pronoun can never become pregnant. + <<set $slaves[$i].vaginalAccessory = "none">> + <</if>> + <<if $slaves[$i].dick > 0 && $slaves[$i].balls > 0 && $slaves[$i].dickAccessory != "chastity">> + $pronounCap also affixes a chastity cage onto $possessive dick to discourage use of $possessive reproductive organ. + <<set $slaves[$i].dickAccessory = "chastity">> + <<elseif $slaves[$i].dick > 0 && $slaves[$i].balls == 0 && $slaves[$i].dickAccessory == "chastity">> + $pronounCap removes $possessive chastity cage since even if $pronoun could get erect, $pronoun only shoots blanks. + <<set $slaves[$i].dickAccessory = "none">> + <</if>> <</if>> <</if>> -<</if>> -<<if ($slaves[$i].amp != 1)>> - <<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "dom")>> - $pronounCap wears boots to look like a proper dominant. - <<set $slaves[$i].shoes = "boots">> - <<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "sadist")>> - $pronounCap wears boots, since $pronoun thinks they make $possessive look dangerous. - <<set $slaves[$i].shoes = "boots">> - <<elseif ($slaves[$i].heels == 1)>> - $pronounCap wears the heels $pronoun needs to walk. - <<set $slaves[$i].shoes = "heels">> - <<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "none")>> - $pronounCap wears comfortable flats, since $pronoun doesn't have a fetish to show off. - <<set $slaves[$i].shoes = "flats">> - <<else>> - $pronounCap wears heels to strut $possessive stuff. - <<set $slaves[$i].shoes = "heels">> + <<if $slaves[$i].amp != 1>> + <<set _shoeChoice = todaysShoes($slaves[$i])>> + _shoeChoice.text + <<set $slaves[$i].shoes = _shoeChoice.shoes>> <</if>> -<</if>> - -<</if>> /* closes devotion > 20 */ -<</if>> /* closes MB check */ +<</if>> /* closes MB check & devotion <= 20*/ <</if>> /* closes choosesOwnClothes check */ diff --git a/src/uncategorized/saDevotion.tw b/src/uncategorized/saDevotion.tw index 91a2c18b20a9f56a444eb25436881370101a8bab..b6717db8ef8d7318576ea461915c64622c29773a 100644 --- a/src/uncategorized/saDevotion.tw +++ b/src/uncategorized/saDevotion.tw @@ -504,14 +504,28 @@ <<set $slaves[$i].devotion += $freeSexualEnergy>> <<set $slaves[$i].oralCount += $freeSexualEnergy>> <<set $oralTotal += $freeSexualEnergy>> - <<if canDoVaginal($slaves[$i])>> + <<if canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0>> <<set $slaves[$i].vaginalCount += $freeSexualEnergy>> <<set $vaginalTotal += $freeSexualEnergy>> <</if>> - <<if canDoAnal($slaves[$i])>> + <<if canDoAnal($slaves[$i]) && $slaves[$i].anus > 0>> <<set $slaves[$i].analCount += $freeSexualEnergy>> <<set $analTotal += $freeSexualEnergy>> <</if>> + <<if $slaves[$i].boobs > 500 && $PC.dick > 0>> + <<set $slaves[$i].mammaryCount += $freeSexualEnergy>> + <<set $mammaryTotal += $freeSexualEnergy>> + <</if>> + <<if ($slaves[$i].toyHole == "dick") && canPenetrate($slaves[$i])>> + <<set $slaves[$i].penetrativeCount += $freeSexualEnergy>> + <<set $penetrativeTotal += $freeSexualEnergy>> + <<if isPlayerFertile($PC) && ($slaves[$i].ballType == "human") && ($slaves[$i].vasectomy != 1)>> + <<KnockMeUp $PC $freeSexualEnergy 0 $slaves[$i].ID 1>> + <</if>> + <<if $sexualOpeness == 0>> + <<set $PC.degeneracy++>> + <</if>> + <</if>> <</if>> <</if>> <</if>> diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw index fd85323b423357827e7c5177d0c4dec77121e339..e2b275ac84237d1b3410c799469755b764634c55 100644 --- a/src/uncategorized/saDiet.tw +++ b/src/uncategorized/saDiet.tw @@ -104,7 +104,7 @@ <<set $slaves[$i].health -= 4>> <<set $slaves[$i].trust -= 2>> <<elseif _weightLoss == 7>> - Distate for her food caused her to @@.lime;lose weight@@ a bit too quickly, and by the end of the week she looks @@.gold;a little unsettled@@ and @@.red;slightly malnourished.@@ + Distaste for her food caused her to @@.lime;lose weight@@ a bit too quickly, and by the end of the week she looks @@.gold;a little unsettled@@ and @@.red;slightly malnourished.@@ <<set $slaves[$i].health -= 1>> <<set $slaves[$i].trust -= 1>> <<elseif _weightLoss == 6>> @@ -363,53 +363,83 @@ She is no longer capable of actively working out. Her special diet @@.yellow;has ended.@@ <<set $slaves[$i].diet = "healthy">> <<else>> - <<if $slaves[$i].muscles <= 10>> - Her long workouts focus on cardio. She has finally @@.or;lost all visible musculature.@@ - <<set $slaves[$i].muscles = 0>> - <<set $slaves[$i].diet = "healthy">> - <<elseif ($slaves[$i].drugs == "steroids")>> - Her long workouts focus on cardio, but since she's still shooting gear, she @@.lime;loses mass slowly.@@ - <<set $slaves[$i].muscles -= 3>> - <<elseif ($slaves[$i].balls > 0) && ($slaves[$i].hormoneBalance <= -100)>> - Her long workouts focus on cardio, but since she's got so much natural and artificial testosterone, she @@.lime;loses mass slowly.@@ - <<set $slaves[$i].muscles -= 3>> - <<elseif ($slaves[$i].balls > 0) && ($slaves[$i].hormoneBalance >= 100)>> - Her long workouts focus on cardio, and with the natural testosterone in her system counteracted by hormone treatment, she @@.lime;loses musculature.@@ - <<set $slaves[$i].muscles -= 5>> - <<elseif ($slaves[$i].balls > 0)>> - Her long workouts focus on cardio, but with some natural testosterone in her system, she @@.lime;loses muscle slowly.@@ - <<set $slaves[$i].muscles -= 3>> - <<elseif ($slaves[$i].hormoneBalance >= 100)>> - Her long workouts focus on cardio, and with female hormone treatment, she @@.lime;loses musculature rapidly.@@ - <<set $slaves[$i].muscles -= 8>> - <<elseif ($slaves[$i].hormoneBalance <= -100)>> - Her long workouts focus on cardio, but under male hormone treatment, she @@.lime;loses muscle slowly.@@ - <<set $slaves[$i].muscles -= 3>> - <<else>> - Her long workouts focus on cardio, and she @@.lime;loses musculature.@@ - <<set $slaves[$i].muscles -= 5>> - <</if>> - <<if ($slaves[$i].behavioralQuirk == "fitness")>> - She approaches endurance work with real enthusiasm, quickly slimming her down. - <<set $slaves[$i].muscles -= 2>> - <</if>> - <<if random(1,100) > 90>> - <<if ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)>> - @@.orange;Her breasts get a little smaller.@@ - <<set $slaves[$i].boobs -= 50>> - <<elseif ($slaves[$i].butt > 1)>> - @@.orange;Her butt gets a little smaller.@@ - <<set $slaves[$i].butt -= 1>> - <</if>> - <</if>> - <<if random(1,100) > 80>> - Her workout successes have @@.green;improved her health.@@ - <<set $slaves[$i].health += 10>> - <</if>> - <<if $slaves[$i].weight > 10>> - Her workouts have also @@.orange;burned off some excess fat.@@ - <<set $slaves[$i].weight -= 2>> - <</if>> + <<if $slaves[$i].muscles <= 10>> + <<if $slaves[$i].muscles <= 10>> + Her long workouts focus on cardio. She has finally @@.orange;lost all visible musculature.@@ + <<set $slaves[$i].muscles = 0>> + <<set $slaves[$i].diet = "healthy">> + <<elseif ($slaves[$i].drugs == "steroids")>> + Her long workouts focus on cardio, but since she's still shooting gear, she @@.lime;loses mass slowly.@@ + <<set $slaves[$i].muscles -= 3>> + <<elseif ($slaves[$i].balls > 0) && ($slaves[$i].hormoneBalance <= -100)>> + Her long workouts focus on cardio, but since she's got so much natural and artificial testosterone, she @@.lime;loses mass slowly.@@ + <<set $slaves[$i].muscles -= 3>> + <<elseif ($slaves[$i].balls > 0) && ($slaves[$i].hormoneBalance >= 100)>> + Her long workouts focus on cardio, and with the natural testosterone in her system counteracted by hormone treatment, she @@.lime;loses musculature.@@ + <<set $slaves[$i].muscles -= 5>> + <<elseif ($slaves[$i].balls > 0)>> + Her long workouts focus on cardio, but with some natural testosterone in her system, she @@.lime;loses muscle slowly.@@ + <<set $slaves[$i].muscles -= 3>> + <<elseif ($slaves[$i].hormoneBalance >= 100)>> + Her long workouts focus on cardio, and with female hormone treatment, she @@.lime;loses musculature rapidly.@@ + <<set $slaves[$i].muscles -= 8>> + <<elseif ($slaves[$i].hormoneBalance <= -100)>> + Her long workouts focus on cardio, but under male hormone treatment, she @@.lime;loses muscle slowly.@@ + <<set $slaves[$i].muscles -= 3>> + <<else>> + Her long workouts focus on cardio, and she @@.lime;loses musculature.@@ + <<set $slaves[$i].muscles -= 5>> + <</if>> + <<if ($slaves[$i].behavioralQuirk == "fitness")>> + She approaches endurance work with real enthusiasm, quickly slimming her down. + <<set $slaves[$i].muscles -= 2>> + <</if>> + <<if random(1,100) > 90>> + <<if ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)>> + @@.orange;Her breasts get a little smaller.@@ + <<set $slaves[$i].boobs -= 50>> + <<elseif ($slaves[$i].butt > 1)>> + @@.orange;Her butt gets a little smaller.@@ + <<set $slaves[$i].butt -= 1>> + <</if>> + <</if>> + <<if random(1,100) > 80>> + Her workout successes have @@.green;improved her health.@@ + <<set $slaves[$i].health += 10>> + <</if>> + <<if $slaves[$i].weight > 10>> + Her workouts have also @@.orange;burned off some excess fat.@@ + <<set $slaves[$i].weight -= 2>> + <</if>> + <<else>> + Her long workouts focus on cardio to keep her body lithe. + <<if ($slaves[$i].behavioralQuirk == "fitness")>> + She @@.hotpink;enjoys@@ the time she's given to workout. + <<set $slaves[$i].devotion += 2>> + <</if>> + <<if $slaves[$i].muscles < -10>> + Since she is rather weak, her routine slowly tones her soft muscles. + <<set $slaves[$i].muscles++>> + <</if>> + <<if ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)>> + @@.orange;Her breasts get a little smaller.@@ + <<set $slaves[$i].boobs -= 50>> + <</if>> + <<if random(1,100) > 50>> + <<if ($slaves[$i].butt > 1)>> + @@.orange;Her butt loses a little mass.@@ + <<set $slaves[$i].butt -= 1>> + <</if>> + <</if>> + <<if random(1,100) > 50 && $slaves[$i].health <= 90 && $slaves[$i].health >= -20>> + Her workout successes have @@.green;improved her health.@@ + <<set $slaves[$i].health += 5>> + <</if>> + <<if $slaves[$i].weight > 10>> + Her workouts have also @@.orange;burned off some excess fat.@@ + <<set $slaves[$i].weight -= 2>> + <</if>> + <</if>> <</if>> <<case "cum production">> <<if $slaves[$i].fetish != "mindbroken">> @@ -449,7 +479,7 @@ Hormonal changes encourage her body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 500)>> + <<if ($slaves[$i].boobs < 500)>> Her breasts @@.lime;grow slightly@@ from the estrogen. <<set $slaves[$i].boobs += 10>> <</if>> @@ -478,7 +508,7 @@ Hormonal changes encourage her body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 600)>> + <<if ($slaves[$i].boobs < 600)>> Her breasts @@.lime;grow slightly@@ from the estrogen. <<set $slaves[$i].boobs += 10>> <</if>> @@ -499,7 +529,7 @@ Hormonal changes encourage her body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 400)>> + <<if ($slaves[$i].boobs < 400)>> Her breasts @@.lime;grow slightly@@ from the estrogen. <<set $slaves[$i].boobs += 10>> <</if>> @@ -548,7 +578,7 @@ Her balls @@.lime;swell@@ due to the male hormones in her diet. <<set $slaves[$i].balls += 1>> <</if>> - <<if ($slaves[$i].breasts > 400)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 400)>> Her breasts @@.orange;lose some mass@@ from the lack of estrogen in her diet. <<set $slaves[$i].boobs -= 10>> <</if>> @@ -565,7 +595,7 @@ Hormonal changes encourage her body to @@.lime;gain muscle.@@ <<set $slaves[$i].muscles += 1>> <</if>> - <<if ($slaves[$i].breasts > 500)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 500)>> Her breasts @@.orange;lose some mass@@ from the lack of estrogen in her diet. <<set $slaves[$i].boobs -= 10>> <</if>> @@ -593,7 +623,7 @@ Her balls @@.lime;swell@@ due to the male hormones in her diet. <<set $slaves[$i].balls += 1>> <</if>> - <<if ($slaves[$i].breasts > 300)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 300)>> Her breasts @@.orange;lose some mass@@ to better suit her body chemistry. <<set $slaves[$i].boobs -= 10>> <</if>> @@ -621,7 +651,7 @@ Hormonal changes encourage her body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 800)>> + <<if ($slaves[$i].boobs < 800)>> Her breasts @@.lime;grow slightly@@ to fit her developing femininity. <<set $slaves[$i].boobs += 10>> <</if>> @@ -682,6 +712,40 @@ <<set $slaves[$i].chem -= 2>> <</if>> <</if>> +<<case "fertility">> /* + ovum and small boosts to energy and attrXY */ + <<if !canGetPregnant($slaves[$i])>> + She is no longer able to get pregnant, for one reason or another. @@.yellow;Her fertility diet has been ended.@@ + <<set $slaves[$i].diet = "healthy">> + <</if>> + <<if $slaves[$i].fetish == "mindbroken">> + She doesn't really notice that @@.lime;her body is being prepared to carry multiples.@@ + <<if $slaves[$i].energy < 45 && $slaves[$i].energy > 20>> + She begins craving @@.green;sex for the sole purpose of reproduction,@@ even if she doesn't comprehend it. + <<set $slaves[$i].energy++>> + <</if>> + <<elseif $slaves[$i].sexualFlaw == "breeder">> + Her diet is @@.lime;prepping her to carry multiple fetues,@@ and she feels it. She @@.hotpink;eagerly awaits to swell with children.@@ + <<set $slaves[$i].devotion += 2>> + <<if $slaves[$i].attrXY < 70>> + She certainly notices @@.green;how much more attractive men are.@@ + <<set $slaves[$i].attrXY += 2>> + <</if>> + <<if $slaves[$i].energy < 45 && $slaves[$i].energy > 20>> + She begins craving @@.green;penetrative sex and hot loads left inside her@@ as well. + <<set $slaves[$i].energy++>> + <</if>> + <<else>> + She doesn't really notice that @@.lime;her body is being prepared to carry multiples,@@ other than the slight tingle in her lower belly. + <<set $slaves[$i].devotion -= 2, $slaves[$i].trust++, $slaves[$i].health += 2>> + <<if $slaves[$i].attrXY < 70>> + She certainly notices @@.green;how much more attractive men are,@@ however. + <<set $slaves[$i].attrXY += 2>> + <</if>> + <<if $slaves[$i].energy < 45 && $slaves[$i].energy > 20>> + She begins craving @@.green;penetrative sex and hot loads left inside her@@ as well. + <<set $slaves[$i].energy++>> + <</if>> + <</if>> <</switch>> <<if ($slaves[$i].dietCum > 0)>> @@ -923,7 +987,7 @@ Hormonal changes encourage its body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 500)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) < 500)>> Its breasts @@.lime;grow slightly@@ from the estrogen. <<set $slaves[$i].boobs += 10>> <</if>> @@ -948,7 +1012,7 @@ Hormonal changes encourage its body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 600)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) < 600)>> Its breasts @@.lime;grow slightly@@ from the estrogen. <<set $slaves[$i].boobs += 10>> <</if>> @@ -965,7 +1029,7 @@ Hormonal changes encourage its body to @@.lime;grow softer.@@ <<set $slaves[$i].weight += 1>> <</if>> - <<if ($slaves[$i].breasts <= 400)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) < 400)>> Its breasts @@.lime;grow slightly@@ from the estrogen. <<set $slaves[$i].boobs += 10>> <</if>> @@ -1005,7 +1069,7 @@ Its balls @@.lime;swell@@ due to the male hormones in its diet. <<set $slaves[$i].balls += 1>> <</if>> - <<if ($slaves[$i].breasts > 400)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 400)>> Its breasts @@.orange;lose some mass@@ from the lack of estrogen in its diet. <<set $slaves[$i].boobs -= 10>> <</if>> @@ -1014,7 +1078,7 @@ Hormonal changes encourage its body to @@.lime;gain muscle.@@ <<set $slaves[$i].muscles += 1>> <</if>> - <<if ($slaves[$i].breasts > 500)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 500)>> Its breasts @@.orange;lose some mass@@ from the lack of estrogen in its diet. <<set $slaves[$i].boobs -= 10>> <</if>> @@ -1038,7 +1102,7 @@ Its balls @@.lime;swell@@ due to the male hormones in its diet. <<set $slaves[$i].balls += 1>> <</if>> - <<if ($slaves[$i].breasts > 300)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 300)>> Its breasts @@.orange;lose some mass@@ to better suit its body chemistry. <<set $slaves[$i].boobs -= 10>> <</if>> @@ -1060,7 +1124,7 @@ Hormonal changes @@.lime;thin its waist.@@ <<set $slaves[$i].waist-->> <</if>> - <<if ($slaves[$i].breasts <= 800)>> + <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) < 800)>> Its breasts @@.lime;grow slightly@@ to fit its developing femininity. <<set $slaves[$i].boobs += 10>> <</if>> @@ -1087,7 +1151,14 @@ It can't get any healthier. @@.yellow;Its cleansing diet has been ended.@@ <<set $slaves[$i].diet = "healthy">> <</if>> - + +<<case "fertility">> /* + ovum and small boosts to energy and attrXY */ + The ports in Fuckdoll suits allow total dietary control, and it's barely aware its being @@.lime;prepared to carry multiples.@@ + <<if !canGetPregnant($slaves[$i])>> + It is no longer able to be impregnated. @@.yellow;Its fertility diet has been ended.@@ + <<set $slaves[$i].diet = "healthy">> + <</if>> + <</switch>> <</if>> /* CLOSES FUCKDOLL CHECK */ diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw index 63ace2b8fba10a7f42528b5eb7ca16e8e3b18e22..8f4fba274d4bd0dd04c44b864c304a8892664732 100644 --- a/src/uncategorized/saDrugs.tw +++ b/src/uncategorized/saDrugs.tw @@ -32,6 +32,9 @@ <<if ($slaves[$i].diet == "fattening")>> all the food $pronoun's required to consume fuels growth, <<if $slaves[$i].health > -20>>and<<else>>but<</if>> <<set _growth += 6>> + <<elseif ($slaves[$i].diet == "fertility")>> + the fertility hormones in $possessive food favor breast growth, <<if $slaves[$i].health > -20>>and<<else>>but<</if>> + <<set _growth += 1>> <<elseif ($slaves[$i].diet == "restricted")>> $possessive restricted diet means $possessive body has few resources to grow on, <<if $slaves[$i].health > -20>>but<<else>>and<</if>> <<set _growth -= 1>> @@ -96,7 +99,7 @@ <<set _growth += 10>> <<if ($slaves[$i].boobShape != "normal") && ($slaves[$i].breastMesh != 1)>> <<if random(1,10) == 1>> - $possessiveCap @@.coral;breasts lose their unique shape@@ as they adapt to their monstrous, unnatural size. There's simply nowhere else for her mass of boob to go, and its expansion fills her breasts out and points her nipples forward. + $possessiveCap @@.coral;breasts lose their unique shape@@ as they adapt to their monstrous, unnatural size. There's simply nowhere else for $possessive mass of boob to go, and its expansion fills $possessive breasts out and points $possessive nipples forward. <<set $slaves[$i].boobShape = "normal">> <</if>> <</if>> @@ -125,6 +128,9 @@ <<if ($slaves[$i].diet == "fattening")>> all the food $pronoun's required to consume fuels growth, <<if $slaves[$i].health > -20>>and<<else>>but<</if>> <<set _growth += 2>> + <<elseif ($slaves[$i].diet == "fertility")>> + the fertility hormones in $possessive food favor breast growth, <<if $slaves[$i].health > -20>>and<<else>>but<</if>> + <<set _growth += 1>> <<elseif ($slaves[$i].diet == "restricted")>> $possessive restricted diet means $possessive body has few resources to grow on, <<if $slaves[$i].health > -20>>but<<else>>and<</if>> <<set _growth -= 2>> @@ -410,6 +416,18 @@ diet. <</if>> <<set _growth -= 0.2>> + <<elseif ($slaves[$i].diet == "fertility")>> + the fertility hormones in $possessive food restrain $possessive + <<if $slaves[$i].dietMilk == 2>> + growth, but the generous amount of added milk mitigates its effect. + <<set _growth += 0.3>> + <<elseif $slaves[$i].dietMilk == 1>> + growth, but the added milk mitigates its effect. + <<set _growth += 0.2>> + <<else>> + growth. + <</if>> + <<set _growth -= 0.1>> <<elseif $slaves[$i].diet == "XY" || $slaves[$i].diet == "XX" || $slaves[$i].diet == "XXY">> $possessiveCap growth is restrained by $possessive sexual hormones rich <<if $slaves[$i].dietMilk == 2>> @@ -654,26 +672,26 @@ <<case "steroids">> <<if ($slaves[$i].dick == 0) && (random(1,100) > 40+($slaves[$i].clit*10))>> - The gear $pronoun's on @@.lime;increases the size of $possessive clit.@@ - <<set $slaves[$i].clit += 1>> + The gear $pronoun's on @@.lime;increases the size of $possessive clit.@@ + <<set $slaves[$i].clit += 1>> <<elseif ($slaves[$i].dick != 0) && ($slaves[$i].dick < 3) && (random(1,100) > 95)>> - The gear $pronoun's on @@.lime;increases the size of $possessive penis.@@ - <<set $slaves[$i].dick += 1>> + The gear $pronoun's on @@.lime;increases the size of $possessive penis.@@ + <<set $slaves[$i].dick += 1>> <<elseif ($slaves[$i].faceShape != "masculine") && ($slaves[$i].faceShape != "androgynous") && (random(1,100) > 95)>> - The gear $pronoun's on @@.orange;hardens $possessive face into androgyny.@@ - <<set $slaves[$i].faceShape = "androgynous">> + The gear $pronoun's on @@.orange;hardens $possessive face into androgyny.@@ + <<set $slaves[$i].faceShape = "androgynous">> <<elseif ($slaves[$i].balls != 0) && ($slaves[$i].scrotum != 0) && ($slaves[$i].balls < 3) && (random(1,100) > 95)>> - The gear $pronoun's on @@.lime;increases the size of $possessive balls.@@ - <<set $slaves[$i].balls += 1>> + The gear $pronoun's on @@.lime;increases the size of $possessive balls.@@ + <<set $slaves[$i].balls += 1>> <<elseif random(1,100) > 110-($slaves[$i].anus*10)>> - The steroids $pronoun's on have an effect on $possessive stretched anal muscles, giving $object a @@.lime;tighter butthole.@@ - <<set $slaves[$i].anus -= 1>> + The steroids $pronoun's on have an effect on $possessive stretched anal muscles, giving $object a @@.lime;tighter butthole.@@ + <<set $slaves[$i].anus -= 1>> <<elseif random(1,100) > 110-($slaves[$i].vagina*10)>> - The steroids $pronoun's on have an effect on $possessive vaginal muscles, giving $object a @@.lime;tighter pussy.@@ - <<set $slaves[$i].vagina -= 1>> - <<elseif ($slaves[$i].face-$slaves[$i].faceImplant > 10) && (random(1,100) > 90)>> - The gear $pronoun's on @@.orange;hardens $possessive pretty face a little.@@ - <<set $slaves[$i].face -= 5>> + The steroids $pronoun's on have an effect on $possessive vaginal muscles, giving $object a @@.lime;tighter pussy.@@ + <<set $slaves[$i].vagina -= 1>> + <<elseif ($slaves[$i].face-$slaves[$i].faceImplant > 10) && (random(1,100) > 95)>> + The gear $pronoun's on @@.orange;hardens $possessive pretty face a little.@@ + <<set $slaves[$i].face -= 5>> <</if>> <<case "anti-aging cream">> @@ -970,7 +988,7 @@ <<if $slaves[$i].health <= -100>> $possessiveCap critically poor health @@.orange;caused her to miscarry.@@ <<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>> - <<set $slaves[$i].pregType = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregKnown = 0>><<SetBellySize $slaves[$i]>> + <<set $slaves[$i].pregType = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregKnown = 0, WombFlush($slaves[$i])>><<SetBellySize $slaves[$i]>> <<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>> $pronounCap is <<if $slaves[$i].devotion < -50>> @@ -993,16 +1011,16 @@ <</if>> <<case "labor supressors">> <<set $slaves[$i].chem += 2>> - <<if $slaves[$i].preg > 60>> + <<if WombBirthReady($slaves[$i], 60) > 0>> <<set $slaves[$i].health -= 20>> <<set $slaves[$i].labor = 1>> <<set $slaves[$i].induce = 1>> <<set $birthee = 1>> $pronounCap has been ready to give birth for some time now. Supressing birth for so long @@.red;greatly affects $possessive health.@@ $pronounCap may @@.red;have trouble@@ giving birth to $possessive oversized child<<if $slaves[$i].pregType > 1>>ren<</if>>. $pronounCap seems to be in distress, $possessive body is @@.red;forcing $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> out!@@ - <<elseif $slaves[$i].preg > 50>> + <<elseif WombBirthReady($slaves[$i], 50) > 0>> <<set $slaves[$i].health -= 20>> $pronounCap has been ready to give birth for some time now. Supressing birth for so long @@.red;greatly affects $possessive health.@@ $pronounCap may @@.red;have trouble@@ giving birth to $possessive oversized child<<if $slaves[$i].pregType > 1>>ren<</if>>. - <<elseif $slaves[$i].preg > 40>> + <<elseif WombBirthReady($slaves[$i], 40) > 0>> <<set $slaves[$i].health -= 10>> Labor suppressing agents @@.red;negatively affect $possessive health.@@ <</if>> diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw index 5daec7e79b994725f87cb1c08572d301ff63e3f9..4b299deaffe99958bcb85041927ed5e0f0b229f7 100644 --- a/src/uncategorized/saGuardsYou.tw +++ b/src/uncategorized/saGuardsYou.tw @@ -180,7 +180,7 @@ Being continually trusted with your life @@.hotpink;increases her devotion to yo <<if $bodyguardTrains == 1 && $slaves[$i].devotion > 95 && $slaves[$i].trust > 50 && $slaves[$i].combatSkill > 0 && $slaves[$i].intelligence > 0>> She's confident in her martial skills, but smart enough to know that she isn't immortal, and devoted enough to worry about who will protect you should she die. - <<set _successorCandidates = $slaves.filter( function(s) { return s.assignmentVisible == 1 && bodyguardSuccessorEligible(s); } )>> + <<set _successorCandidates = $slaves.filter( function(s) { return (s.assignmentVisible == 1 || s.assignment == "be your Concubine" || s.assignment == "be the Wardeness" || s.assignment == "be your Head Girl" || s.assignment == "work as a servant" || s.assignment == "serve in the master suite") && bodyguardSuccessorEligible(s); } )>> <<set _combatSkilled = _successorCandidates.filter( function(s) { return s.combatSkill > 0; })>> <<if _combatSkilled.length < 2>> <<unset $subSlave>> diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw index f74a99b382e992d0e2d09647994688a1ffd94b8b..9bbe08e569921d4e117019bc26773ef11b40bc13 100644 --- a/src/uncategorized/saHormoneEffects.tw +++ b/src/uncategorized/saHormoneEffects.tw @@ -378,7 +378,7 @@ <<elseif $slaves[$i].hormoneBalance >= 100>> - <<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) < 500)>> + <<if ($slaves[$i].boobs-$slaves[$i].boobsImplant) < 500>> Hormonal effects cause @@.lime;a small amount of natural breast growth.@@ <<set $slaves[$i].boobs += 10+(15*$hormoneUpgradePower)>> <</if>> diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw index fdd653c4cc7acef0dc1733fa983ab40f34d3be16..8baedcb9b15550c9521d5761b8311430618ca645 100644 --- a/src/uncategorized/saLiveWithHG.tw +++ b/src/uncategorized/saLiveWithHG.tw @@ -305,7 +305,7 @@ Unsurprisingly, she gives in to her own cravings and also takes $slaves[$i].slaveName's loads until she @@.lime;gets pregnant@@ too. <<KnockMeUp $HeadGirl 100 2 $slaves[$i].ID>> <</if>> - <<elseif $HeadGirl.fetishKnown == 1>> + <<elseif $HeadGirl.fetishKnown == 1>> $HeadGirl.slaveName knows better than to even consider knocking up $slaves[$i].slaveName. <</if>> <<elseif ($HeadGirl.fetish == "pregnancy") && canImpreg($HeadGirl, $slaves[$i])>> @@ -324,7 +324,7 @@ <</if>> <<elseif $HeadGirl.fetish != "pregnancy" && $slaves[$i].pregKnown == 1 && $slaves[$i].preg < 30 && $arcologies[0].FSRepopulationFocus == "unset" && $HGSuiteDrugs == 1>> $HeadGirl.slaveName promptly aborts the child growing in $slaves[$i].slaveName since she prefers her girls not harboring someone else's child or loaded down with her own unwanted spawn. - <<set $slaves[$i].preg = 0, $slaves[$i].pregType = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregWeek = 0, $slaves[$i].pregKnown = 0>> + <<set $slaves[$i].preg = 0, WombFlush($slaves[$i]), $slaves[$i].pregType = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregWeek = 0, $slaves[$i].pregKnown = 0>> <<SetBellySize $slaves[$i]>> <</if>> <</if>> @@ -774,7 +774,7 @@ <<elseif ($slaves[$i].muscles <= 5) && ($slaves[$i].amp != 1) && ($slaves[$i].diet != "muscle building")>> $HeadGirl.slaveName likes a bit of muscle, so she makes $slaves[$i].slaveName work out hard. <<set $slaves[$i].diet = "muscle building">> -<<elseif ($slaves[$i].balls > 0) && ($HeadGirl.fetish is "cumslut") && ($HeadGirl.fetishKnown == 1) && ($slaves[$i].diet != "cum production") && ($cumProDiet == 1)>> +<<elseif ($slaves[$i].balls > 0) && ($HeadGirl.fetish == "cumslut") && ($HeadGirl.fetishKnown == 1) && ($slaves[$i].diet != "cum production") && ($cumProDiet == 1)>> HeadGirl.slaveName loves cum, so she puts $slaves[$i].slaveName on a diet designed to make her cum harder and stronger. <<set $slaves[$i].diet = "cum production">> <<elseif ($slaves[$i].diet != "healthy")>> @@ -788,6 +788,8 @@ <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> <<set $HGTastes = 1>> +<<elseif $arcologies[0].FSRepopulationFocus != "unset">> + <<set $HGTastes = 4>> <<elseif $arcologies[0].FSBodyPurist != "unset">> <<set $HGTastes = 1>> <<elseif $arcologies[0].FSDegradationist != "unset">> @@ -833,6 +835,9 @@ <<else>> <<set $slaves[$i].drugs = "breast injections">> <</if>> + <<elseif ($HGTastes == 4 || $HeadGirl.fetish == "pregnancy") && canImpreg($slaves[$i], $HeadGirl) && $arcologies[0].FSRestart == "unset">> + $HeadGirl.slaveName gives $slaves[$i].slaveName ferility enhancers, since she wants to see $slaves[$i].slaveName heavy with child. + <<set $slaves[$i].drugs = "fertility drugs">> <<elseif $HGTastes > 1>> <<if ($slaves[$i].lips <= 70)>> $HeadGirl.slaveName gives $slaves[$i].slaveName lip injections, since she thinks $slaves[$i].slaveName should have lips so big she can barely speak. diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index f0d600c790c10aa5bbfe3832d8954998036bb6d9..13f76dfe9945373058203d46f15ffbf481757a48 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -467,13 +467,16 @@ <</if>> <</if>> <<if ($slaves[$i].collar == "massive dildo gag")>> - <<if $slaves[$i].oralSkill < 50>> + <<if $slaves[$i].oralSkill < 75>> Living gagged by such an immense dildo, she can't help but get even better at having giant things rammed down her throat. <<set $skillIncrease = 5>><<OralSkillIncrease $slaves[$i]>> <</if>> <</if>> <</if>> +<</if>> /* CLOSES MINDBREAK CHECK FOR MENTAL ONLY ITEM EFFECTS */ +<</if>> /* CLOSES FUCKDOLL CHECK FOR MENTAL ONLY ITEM EFFECTS */ + <<if $slaves[$i].bellyAccessory != "none">> <<if $slaves[$i].bellyAccessory == "an extreme corset">> <<if $slaves[$i].belly >= 100000>> @@ -483,24 +486,25 @@ The tight corseting has @@.orange;caused her to miscarry,@@ which @@.red;damages her health.@@ <<set $slaves[$i].health -= 20>> <<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>> - <<set $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0, $slaves[$i].pregWeek = -4>> + <<set $slaves[$i].pregType = 0, WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0, $slaves[$i].pregWeek = -4>> <<SetBellySize $slaves[$i]>> <<if $slaves[$i].reservedChildren > 0>><<set $reservedChildren -= $slaves[$i].reservedChildren>><<set $slaves[$i].reservedChildren = 0>><</if>> - She is - <<if $slaves[$i].devotion < -50>> - @@.mediumorchid;filled with violent, consuming hatred@@ and @@.gold;fear.@@ Even though she knew her baby was destined for a slave orphanage, it seems she cared for it and views you as its killer. - <<set $slaves[$i].devotion -= 25, $slaves[$i].trust -= 25>> - <<elseif $slaves[$i].devotion < -20>> - @@.mediumorchid;afflicted by desperate, inconsolable grief@@ and @@.gold;horror.@@ Even though she knew her baby was destined for a slave orphanage, it seems she cared for it. - <<set $slaves[$i].devotion -= 10, $slaves[$i].trust -= 20>> - <<elseif $slaves[$i].devotion <= 20>> - @@.mediumorchid;consumed by enduring sorrow@@ and @@.gold;horror.@@ Even though she knew her baby was destined for a slave orphanage, it seems she cared for it. - <<set $slaves[$i].devotion -= 5, $slaves[$i].trust -= 5>> - <<elseif $slaves[$i].devotion <= 50>> - dully obedient. She has been broken to slave life so thoroughly that even this is neither surprising nor affecting. - <<else>> - @@.hotpink;pleased by this stark development@@, since she is so attentive to your will. She also expects she'll be able to fuck better now. - <<set $slaves[$i].devotion += 4>> + <<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> + <<if $slaves[$i].devotion < -50>> + She is @@.mediumorchid;filled with violent, consuming hatred@@ and @@.gold;fear.@@ Even though she knew her baby was destined for a slave orphanage, it seems she cared for it and views you as its killer. + <<set $slaves[$i].devotion -= 25, $slaves[$i].trust -= 25>> + <<elseif $slaves[$i].devotion < -20>> + She is @@.mediumorchid;afflicted by desperate, inconsolable grief@@ and @@.gold;horror.@@ Even though she knew her baby was destined for a slave orphanage, it seems she cared for it. + <<set $slaves[$i].devotion -= 10, $slaves[$i].trust -= 20>> + <<elseif $slaves[$i].devotion <= 20>> + She is @@.mediumorchid;consumed by enduring sorrow@@ and @@.gold;horror.@@ Even though she knew her baby was destined for a slave orphanage, it seems she cared for it. + <<set $slaves[$i].devotion -= 5, $slaves[$i].trust -= 5>> + <<elseif $slaves[$i].devotion <= 50>> + She is dully obedient. She has been broken to slave life so thoroughly that even this is neither surprising nor affecting. + <<else>> + She is @@.hotpink;pleased by this stark development@@, since she is so attentive to your will. She also expects she'll be able to fuck better now. + <<set $slaves[$i].devotion += 4>> + <</if>> <</if>> <<else>> <<if $slaves[$i].waist <= -95>> @@ -514,18 +518,29 @@ <<if $slaves[$i].waist >= -40>> It's so tight that it's @@.red;unhealthy.@@ <<set $slaves[$i].health -= 5>> - <<if $slaves[$i].devotion < -20>> - She @@.hotpink;barely has breath to think,@@ though she has enough to @@.gold;fear.@@ - <<set $slaves[$i].devotion += 2>> - <<set $slaves[$i].trust -= 2>> - <</if>> - <<if ($slaves[$i].fetish == "masochist") && ($slaves[$i].fetishKnown == 0)>> - During sex, every breath in and out is agonizing. Despite this, she seems to get off on the pain; she's a @@.lightcoral;natural masochist.@@ - <<set $slaves[$i].fetishKnown = 1>> - <<elseif ($slaves[$i].fetish == "none") || ($slaves[$i].fetishKnown == 0)>> - <<if $fetishChangeChance > random(0,100)>> - During sex, every breath in and out is agonizing. She learns to come in spite of, and then @@.lightcoral;because of the pain.@@ - <<set $slaves[$i].fetish = "masochist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>> + <<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> + <<if $slaves[$i].devotion < -20>> + She @@.hotpink;barely has breath to think,@@ though she has enough to @@.gold;fear.@@ + <<set $slaves[$i].devotion += 2, $slaves[$i].trust -= 2>> + <</if>> + <<if ($slaves[$i].fetish == "masochist")>> + During sex, every breath in and out is agonizing. + <<if ($slaves[$i].fetishKnown == 0)>> + Despite this, she seems to get off on the pain; she's a @@.lightcoral;natural masochist.@@ + <<set $slaves[$i].fetishKnown = 1>> + <<else>> + It only adds to her pleasure, much to her @@.hotpink;enjoyment.@@ + <<set $slaves[$i].devotion += 1>> + <<if ($slaves[$i].fetishStrength <= 95)>> + Such constant suffering @@.lightcoral;deepens her masochism.@@ + <<set $slaves[$i].fetishStrength += 2>> + <</if>> + <</if>> + <<elseif ($slaves[$i].fetish == "none") || ($slaves[$i].fetishKnown == 0)>> + <<if $fetishChangeChance > random(0,100)>> + During sex, every breath in and out is agonizing. She learns to come in spite of, and then @@.lightcoral;because of the pain.@@ + <<set $slaves[$i].fetish = "masochist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>> + <</if>> <</if>> <</if>> <</if>> @@ -549,45 +564,47 @@ $pronounCap has trouble keeping $possessive fake belly strapped around $possessive huge gut, forcing it to be removed to prevent damage. <<set $slaves[$i].bellyAccessory = "none">> <<else>> - <<if ($slaves[$i].sexualFlaw == "breeder")>> - She @@.mediumorchid;resents@@ being forced to carry a fake pregnancy instead of a real one. - <<set $slaves[$i].devotion -= 5>> - <<elseif ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -50) && ($slaves[$i].fetish == "pregnancy")>> - <<if ($slaves[$i].fetishStrength > 60)>> - As a pregnancy fetishist, she @@.hotpink;openly enjoys@@ wearing her fake belly around. - <<set $slaves[$i].devotion += 2>> - <<else>> - Her interest in pregnancy helps her @@.hotpink;enjoy@@ wearing a fake belly. - <<set $slaves[$i].devotion += 1>> - <</if>> - <<elseif ($slaves[$i].fetish == "pregnancy") && ($slaves[$i].devotion > 50)>> - She carries her fake belly @@.hotpink;with pride@@, eager for the day you give her one of her own. - <<set $slaves[$i].devotion += 1>> - <<elseif ($slaves[$i].fetish == "pregnancy") && ($slaves[$i].pregKnown == 0) && ($slaves[$i].vagina > -1)>> - The fake belly she wears @@.mediumorchid;reminds her@@ that she isn't pregnant with a child. - <<set $slaves[$i].devotion -= 1>> - <<elseif ($slaves[$i].vagina == 0) && $arcologies[0].FSRepopulationFocus == "unset">> - The fake belly she wears @@.gold;worries@@ her that you will soon put a real baby in her. - <<set $slaves[$i].trust -= 1>> - <</if>> - <<if $slaves[$i].bellyAccessory == "a huge empathy belly" and $slaves[$i].fetish != "pregnancy">> - <<if $slaves[$i].devotion > 50>> - Her full-sized twins belly is heavy and unwieldy, but she carries it @@.hotpink;proudly@@ for you. - <<set $slaves[$i].devotion += 1>> - <<else>> - Her full-sized twins belly is heavy and unwieldy, and she @@.mediumorchid;despises@@ being forced to bear it. - <<set $slaves[$i].devotion -= 1>> - <</if>> - <</if>> - <<if ($slaves[$i].fetish == "pregnancy") && ($slaves[$i].fetishStrength <= 95)>> - <<if random(1,100) >= 20>> - Pretending to be pregnant has @@.lightcoral;furthered her interest in pregnancy.@@ - <<set $slaves[$i].fetishStrength += 4>> - <<elseif ($slaves[$i].fetishStrength <= 40)>> - Lugging around a fake pregnancy for the week has shown her she @@.coral;isn't as into pregnancy as she thought.@@ - <<set $slaves[$i].fetish = "none", $slaves[$i].fetishStrength = 10>> - <</if>> - <</if>> + <<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> + <<if ($slaves[$i].sexualFlaw == "breeder")>> + She @@.mediumorchid;resents@@ being forced to carry a fake pregnancy instead of a real one. + <<set $slaves[$i].devotion -= 5>> + <<elseif ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -50) && ($slaves[$i].fetish == "pregnancy")>> + <<if ($slaves[$i].fetishStrength > 60)>> + As a pregnancy fetishist, she @@.hotpink;openly enjoys@@ wearing her fake belly around. + <<set $slaves[$i].devotion += 2>> + <<else>> + Her interest in pregnancy helps her @@.hotpink;enjoy@@ wearing a fake belly. + <<set $slaves[$i].devotion += 1>> + <</if>> + <<elseif ($slaves[$i].fetish == "pregnancy") && ($slaves[$i].devotion > 50)>> + She carries her fake belly @@.hotpink;with pride@@, eager for the day you give her one of her own. + <<set $slaves[$i].devotion += 1>> + <<elseif ($slaves[$i].fetish == "pregnancy") && ($slaves[$i].pregKnown == 0) && ($slaves[$i].vagina > -1)>> + The fake belly she wears @@.mediumorchid;reminds her@@ that she isn't pregnant with a child. + <<set $slaves[$i].devotion -= 1>> + <<elseif ($slaves[$i].vagina == 0) && $arcologies[0].FSRepopulationFocus == "unset">> + The fake belly she wears @@.gold;worries@@ her that you will soon put a real baby in her. + <<set $slaves[$i].trust -= 1>> + <</if>> + <<if $slaves[$i].bellyAccessory == "a huge empathy belly" and $slaves[$i].fetish != "pregnancy">> + <<if $slaves[$i].devotion > 50>> + Her full-sized twins belly is heavy and unwieldy, but she carries it @@.hotpink;proudly@@ for you. + <<set $slaves[$i].devotion += 1>> + <<else>> + Her full-sized twins belly is heavy and unwieldy, and she @@.mediumorchid;despises@@ being forced to bear it. + <<set $slaves[$i].devotion -= 1>> + <</if>> + <</if>> + <<if ($slaves[$i].fetish == "pregnancy") && ($slaves[$i].fetishStrength <= 95)>> + <<if random(1,100) >= 20>> + Pretending to be pregnant has @@.lightcoral;furthered her interest in pregnancy.@@ + <<set $slaves[$i].fetishStrength += 4>> + <<elseif ($slaves[$i].fetishStrength <= 40)>> + Lugging around a fake pregnancy for the week has shown her she @@.coral;isn't as into pregnancy as she thought.@@ + <<set $slaves[$i].fetish = "none", $slaves[$i].fetishStrength = 10>> + <</if>> + <</if>> + <</if>> <</if>> <</if>> <</if>> @@ -595,7 +612,7 @@ <<if ($slaves[$i].shoes == "heels")>> <<if ($slaves[$i].amp < 0)>> Her P-Limb legs work just as well in heels as they do out of them. - <<else>> + <<elseif $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> <<if $slaves[$i].devotion < -20>> She @@.mediumorchid;resents being forced@@ to wear high heels. <<set $slaves[$i].devotion -= 2>> @@ -604,7 +621,7 @@ <<elseif ($slaves[$i].shoes == "boots")>> <<if ($slaves[$i].amp < 0)>> Her P-Limb legs work just as well in boots as they do out of them. - <<else>> + <<elseif $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> <<if $slaves[$i].devotion < -20>> She @@.mediumorchid;resents being forced@@ to wear high heeled boots. <<set $slaves[$i].devotion -= 2>> @@ -613,11 +630,20 @@ <<elseif ($slaves[$i].shoes == "extreme heels")>> <<if ($slaves[$i].amp < 0)>> Her P-Limb legs work just as well in extreme heels as they do out of them. - <<else>> + <<elseif $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> <<if $slaves[$i].devotion < -20>> She @@.mediumorchid;resents being forced@@ to wear @@.gold;painfully@@ high heels. <<set $slaves[$i].devotion -= 2>> <<set $slaves[$i].trust -= 2>> + <<elseif ($slaves[$i].fetish == "masochist")>> + It is difficult to walk in her extreme heels, but she + <<if ($slaves[$i].fetishKnown == 0)>> + seems to enjoy every painful step; she's a @@.lightcoral;natural masochist.@@ + <<set $slaves[$i].fetishKnown = 1>> + <<else>> + @@.hotpink;appreciates@@ every painful step you make her take. + <<set $slaves[$i].devotion += 1>> + <</if>> <<else>> She is kept @@.hotpink;mindful@@ and @@.gold;fearful@@ by the difficulty of walking in her extreme heels. <<set $slaves[$i].devotion += 1>> @@ -627,26 +653,19 @@ <<set $slaves[$i].health -= 2>> <</if>> <<else>> - <<if ($slaves[$i].heels == 1)>> - <<if !canWalk($slaves[$i])>> - <<if ($slaves[$i].fetish != "mindbroken")>> - <<if ($slaves[$i].devotion >= -20) && ($slaves[$i].fetish == "submissive") && ($slaves[$i].fetishKnown == 1)>> - She @@.hotpink;loves being forced@@ to crawl around like some kind of animal. - <<set $slaves[$i].devotion += 1>> - <<elseif $slaves[$i].devotion > 50>> - She accepts being forced to crawl around on all fours. - <<else>> - She @@.mediumorchid;resents being forced@@ to crawl around like some kind of animal, but it keeps her properly @@.gold;afraid.@@ - <<set $slaves[$i].devotion -= 2, $slaves[$i].trust -= 4>> - <</if>> - <</if>> - <</if>> + <<if ($slaves[$i].heels == 1) && !canWalk($slaves[$i]) && ($slaves[$i].fetish != "mindbroken")>> + <<if ($slaves[$i].devotion >= -20) && ($slaves[$i].fetish == "submissive") && ($slaves[$i].fetishKnown == 1)>> + She @@.hotpink;loves being forced@@ to crawl around like some kind of animal. + <<set $slaves[$i].devotion += 1>> + <<elseif $slaves[$i].devotion > 50>> + She accepts being forced to crawl around on all fours. + <<else>> + She @@.mediumorchid;resents being forced@@ to crawl around like some kind of animal, but it keeps her properly @@.gold;afraid.@@ + <<set $slaves[$i].devotion -= 2, $slaves[$i].trust -= 4>> + <</if>> <</if>> <</if>> -<</if>> /* CLOSES MINDBREAK CHECK FOR MENTAL ONLY ITEM EFFECTS */ -<</if>> /* CLOSES FUCKDOLL CHECK FOR MENTAL ONLY ITEM EFFECTS */ - <<if ($slaves[$i].vaginalAccessory != "none")>> <<if ($slaves[$i].vaginalAccessory == "dildo")>> <<if ($slaves[$i].vagina < 1) && (random(1,100) > 50)>> @@ -655,13 +674,11 @@ <<else>> Her pussy easily accommodates the dildo she's required to wear. <</if>> - <<if $slaves[$i].fuckdoll == 0>> - <<if $slaves[$i].fetish != "mindbroken">> - <<if ($slaves[$i].sexualFlaw == "hates penetration") && (random(1,100) > 50)>> - The habit @@.green;reduces her dislike of having her pussy filled.@@ - <<set $slaves[$i].sexualFlaw = "none">> - <</if>> - <</if>> + <<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> + <<if ($slaves[$i].sexualFlaw == "hates penetration") && (random(1,100) > 50)>> + The habit @@.green;reduces her dislike of having her pussy filled.@@ + <<set $slaves[$i].sexualFlaw = "none">> + <</if>> <</if>> <<elseif ($slaves[$i].vaginalAccessory == "long dildo")>> <<if ($slaves[$i].vagina < 1) && (random(1,100) > 50)>> @@ -795,7 +812,7 @@ The dildo penetrating her womb @@.orange;caused her to miscarry,@@ which @@.red;damages her health.@@ <<set $slaves[$i].health -= 20>> <<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>> - <<set $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0, $slaves[$i].pregWeek = -4>> + <<set $slaves[$i].pregType = 0, WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0, $slaves[$i].pregWeek = -4>> <<SetBellySize $slaves[$i]>> She is <<if $slaves[$i].devotion < -50>> @@ -889,7 +906,7 @@ In fact, she @@.hotpink;regularly orgasms@@ even in non-sexual situations as the plug is @@.green;constantly stimulating@@ her rear-end. <<set $slaves[$i].devotion += 1>> <<set $slaves[$i].energy += 1>> - <</if>> + <</if>> <</if>> <<else>> <<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> @@ -3302,15 +3319,15 @@ <<if $slaves[$i].diet == "muscle building">> <<if ($slaves[$i].muscles > 30)>> - <<if ($slaves[$i].face-$slaves[$i].faceImplant > 10) && (random(1,100) > 90)>> - All the hormones in $possessive system from $possessive heavy workouts @@.orange;harden $possessive face a little.@@ + <<if ($slaves[$i].face-$slaves[$i].faceImplant > 10) && (random(1,100) > 90) && $slaves[$i].drugs == "steroids">> + All the hormones in $possessive system from $possessive heavy, steroid enhanced workouts @@.orange;harden $possessive face a little.@@ <<set $slaves[$i].face -= 5>> <</if>> <<if (($slaves[$i].boobs - $slaves[$i].boobsImplant) > 250)>> - <<if (random(1,100) > 95)>> - All the hormones in $possessive system from $possessive heavy workouts @@.orange;shrink $possessive breasts slightly.@@ - <<set $slaves[$i].boobs -= 50>> - <</if>> + <<if (random(1,100) > 95)>> + All the hormones in $possessive system from $possessive heavy workouts @@.orange;shrink $possessive breasts slightly.@@ + <<set $slaves[$i].boobs -= 50>> + <</if>> <</if>> <</if>> <</if>> @@ -3487,7 +3504,7 @@ <<elseif $slaves[$i].drugs == "hormone blockers">> The hormone blockers $pronoun is on suppress $possessive hormones, natural or not. <<if $slaves[$i].energy > 20>> - $possessiveCap libido is similarly + $possessiveCap libido is similarly <<set _supp = 1, $slaves[$i].energy-->> <</if>> <<if _supp == 1>> @@ -3583,6 +3600,8 @@ <<if ($slaves[$i].diet == "XX" || $slaves[$i].diet == "XXY")>> <<set $slaves[$i].pubertyAgeXX -= 0.1>> + <<elseif $slaves[$i].diet == "fertility">> + <<set $slaves[$i].pubertyAgeXX -= 0.1>> <</if>> <<if ($slaves[$i].drugs == "fertility drugs")>> <<set $slaves[$i].pubertyAgeXX -= 0.1>> @@ -4115,7 +4134,11 @@ <</if>> <</if>> <</if>> /* closes .preg >= 10 */ - <<SetPregType $slaves[$i]>> + + <<if ($slaves[$i].preg > 0 && $slaves[$i].pregType == 0)>> //Catch for strange cases - now with checking. + <<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, $slaves[$i].preg)>> + <</if>> <</if>> /* END PREG EFFECTS */ @@ -4134,7 +4157,7 @@ /* CAN GET PREGNANT (fertile, not on contraceptives and not wearing chastity) */ -<<if canGetPregnant($slaves[$i])>> +<<if canGetPregnant($slaves[$i]) && (($slaves[$i].assignment == "work in the dairy" && $dairyPregSetting == 0) || $slaves[$i].assignment != "work in the dairy")>> <<set _conceptionSeed = random(1,100)>> @@ -4168,7 +4191,8 @@ <</if>> <</if>> - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>> <<set $activeSlave = $slaves[$i]>><<if $slaves[$i].mpreg == 1>><<AnalVCheck 10>><<else>><<VaginalVCheck 10>><</if>><<set $slaves[$i] = $activeSlave>> <<elseif (($slaves[$i].vagina == 0) || (($slaves[$i].anus == 0) && ($slaves[$i].mpreg > 0)))>> @@ -4262,8 +4286,9 @@ <</if>> /* closes not fuckdoll not mindbroken */ <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = $HeadGirl.ID, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1, $HGCum -= 1, $HeadGirl.penetrativeCount += 10, $penetrativeTotal += 10>> - <<SetPregType $slaves[$i]>> - <<set $activeSlave = $slaves[$i]>><<if $slaves[$i].mpreg == 1>><<AnalVCheck 10>><<else>><<VaginalVCheck 10>><</if>><<set $slaves[$i] to $activeSlave>> + <<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $HeadGirl.ID, 1)>> + <<set $activeSlave = $slaves[$i]>><<if $slaves[$i].mpreg == 1>><<AnalVCheck 10>><<else>><<VaginalVCheck 10>><</if>><<set $slaves[$i] = $activeSlave>> <<for $j = 0; $j < $slaves.length; $j++>> <<if $HeadGirl.ID == $slaves[$j].ID>> <<set $slaves[$j] = $HeadGirl>> @@ -4280,13 +4305,15 @@ <<case "be your Concubine">> <<if ($PC.dick == 1) && ($slaves[$i].fuckdoll == 0) && ($slaves[$i].fetish != "mindbroken") && ($slaves[$i].eggType == "human")>> As your concubine, she takes care to only share her fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>> with you. Her efforts paid off; @@.lime;she has become pregnant with your child.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>> <</if>> <<case "serve in the master suite">> <<if ($PC.dick == 1) && ($slaves[$i].eggType == "human") && (($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg != 1 && $slaves[$i].vagina > 0) || ($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg == 1 && $slaves[$i].anus > 0) || ($slaves[$i].toyHole == "pussy" && $slaves[$i].mpreg != 1) || ($slaves[$i].mpreg == 1 && $slaves[$i].toyHole == "ass"))>> You frequently avail yourself to her fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>. It's no surprise when @@.lime;she ends up pregnant with your child.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>> <<else>> /% look for a random father among master suite slaves %/ <<set _msSlaves = $slaves.filter(function(s) { return s.assignment == "serve in the master suite"; })>> @@ -4301,28 +4328,32 @@ <</if>> /* found eligible father */ After all the unprotected sex $pronoun had this week, it's really no surprise when @@.lime;$pronoun ends up pregnant.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = _msSlaves[_m].ID, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = _msSlaves[_m].ID, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>> <<break>> <</if>> <</for>> <</if>> - + <<case "please you">> <<if ($PC.dick == 1) && ($slaves[$i].eggType == "human") && (($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg != 1 && $slaves[$i].vagina > 0) || ($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg == 1 && $slaves[$i].anus > 0) || ($slaves[$i].toyHole == "pussy" && $slaves[$i].mpreg != 1) || ($slaves[$i].mpreg == 1 && $slaves[$i].toyHole == "ass"))>> You frequently avail yourself to her fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>. It's no surprise when @@.lime;she ends up pregnant with your child.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>> <</if>> - + <<case "work in the brothel" "serve in the club" "whore" "serve the public">> <<if ($slaves[$i].eggType == "human")>> Due to all the citizens cumming in $possessive fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>, @@.lime;$pronoun has become pregnant.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -2, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -2, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -2, 1)>> <</if>> <<case "work a glory hole" "be confined in the arcade">> <<if ($slaves[$i].eggType == "human")>> Due to all the customers cumming in $possessive fertile, restrained <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>, @@.lime;$pronoun has become pregnant.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -2, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -2, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -2, 1)>> <</if>> <<default>> /* random impregnation chance on other assignments - consider relationships first */ @@ -4347,17 +4378,15 @@ <<set $slaves[$i].pregSource = _tempRival.ID>> <<elseif (random(1,100) > 60) && ($PC.dick == 1) && ($slaves[$i].eggType == "human")>> /* still 40% chance of impregnation by PC */ <<set $slaves[$i].pregSource = -1>> - <<elseif (random(1,100) > 95) && ($slaves[$i].eggType == "human")>> /* 5% chance of impregnation by random citizen - TODO: make this optional for players who want random fathers from among their own slaves only */ + <<elseif (random(1,100) > 95) && ($slaves[$i].eggType == "human") && $slaves[$i].devotion < 20>> /* 5% chance of impregnation by random citizen - TODO: make this optional for players who want random fathers from among their own slaves only */ <<set $slaves[$i].pregSource = -2>> <<else>> - /* default pregSource to a random citizen in case no eligible father is found */ - <<set $slaves[$i].pregSource = ($slaves[$i].eggType == "human") ? -2 : 0>> /* pregmod: random citizens cannot father non-human children */ /* pick a random starting point in the slave array and iterate (wrapping around) until finding eligible father or coming back to starting point */ <<if $slaves.length == 1>> - <<if canImpreg($slaves[$i], $slaves[$i]) && _conceptionSeed > 95>> + <<if canImpreg($slaves[$i], $slaves[$i]) && _conceptionSeed > 95 && ($slaves[$i].releaseRules == "permissive" || $slaves[$i].releaseRules == "masturbation")>> <<set $slaves[$i].pregSource = $slaves[$i].ID>> <</if>> - <<else>> + <<elseif $slaves[$i].releaseRules == "permissive" || ($slaves[$i].devotion < 20 && $slaves[$i].trust > 50) || $universalRulesConsent == 0>> <<set _sourceSeed = random(0,$slaves.length-1)>> <<for _m = _sourceSeed + 1; _m != _sourceSeed; _m++>> <<if _m == $slaves.length>><<set _m = 0>><</if>> /* wrap around */ @@ -4374,7 +4403,8 @@ <</if>> <<if $slaves[$i].pregSource != 0>> A quick scan after a bout of morning nausea reveals that @@.lime;$pronoun has become pregnant.@@ - <<set $slaves[$i].preg = 1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>> <</if>> <</if>> /* closes random chance and non-zero sex acts check */ <</switch>> /* closes assignment checks */ @@ -4382,12 +4412,17 @@ <</if>> /* CLOSES CAN GET PREGNANT */ /* PREGNANCY TYPE SANITY CHECK (not for pregnancies started above) */ -<<if $slaves[$i].preg < 1>> +<<if $slaves[$i].preg <= 0>> <<if $slaves[$i].pregType != 0>> <<set $slaves[$i].pregType = 0>> + <<set WombFlush($slaves[$i])>> <</if>> <<elseif $slaves[$i].preg > 0 && $slaves[$i].pregType == 0>> - <<SetPregType $slaves[$i]>> + <<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>> +<</if>> +<<if $slaves[$i].readyOva != 0>> + <<set $slaves[$i].readyOva = 0>> <</if>> <</if>> /* closes $seePreg */ @@ -4874,7 +4909,7 @@ <<set $pornFameBonus = 1>> <<if $studio == 1>> <<if $slaves[$i].pornFameSpending > 0>> - <<set $pornFameBonus += 0.2 + ($slaves[$i].pornFameSpending/10000)>> + <<set $pornFameBonus += 0.2 + (($slaves[$i].pornFameSpending/10000)*$HackingSkillMultiplier)>> <<if ($slaves[$i].pornFameSpending >= 4000)>> $possessiveCap near-ubiquitous presence in arcology pornography greatly increases $possessive impact on society. <<elseif ($slaves[$i].pornFameSpending >= 2000)>> @@ -4890,7 +4925,7 @@ <</if>> <<if $arcologies[0].FSSupremacist != "unset">> - <<if ($slaves[$i].race is $arcologies[0].FSSupremacistRace)>> + <<if ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> <<if ($slaves[$i].assignment == "serve the public") || ($slaves[$i].assignment == "whore") || ($slaves[$i].assignment == "work in the brothel") || ($slaves[$i].assignment == "serve in the club") || ($slaves[$i].assignment == "work a glory hole") || ($slaves[$i].assignment == "be confined in the arcade")>> <<if $arcologies[0].FSSupremacist >= $FSLockinLevel*0.6>> Society @@.red;strongly disapproves@@ of your keeping a slave of the $arcologies[0].FSSupremacistRace race in a degrading, public role; this also holds back acceptance of $arcologies[0].FSSupremacistRace superiority. @@ -5033,13 +5068,26 @@ Society is @@.green;pleased@@ by $slaves[$i].slaveName's advanced pregnancy. <<FSChangePorn "Repopulationist" 2>> <</if>> + <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> + They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. + <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> + The fact that $pronoun is $arcologies[0].FSSupremacistRace only makes it better. + <</if>> <<elseif $slaves[$i].weight > 130>> $slaves[$i].slaveName is so fat, society just assumes there is a baby somewhere in there, though they wish it was more obvious. <<elseif $slaves[$i].bellyPreg >= 1500>> Society is @@.green;pleased@@ by $slaves[$i].slaveName's pregnancy. <<FSChangePorn "Repopulationist" 1>> + <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> + They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. + <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> + The fact that $pronoun is $arcologies[0].FSSupremacistRace only makes it better. + <</if>> + <<elseif $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace) && $slaves[$i].bellyImplant >= 1500>> + Society @@.green;is satisfied@@ with $slaves[$i].slaveName's implant filled belly since $possessive kind really shouldn't be breeding. + <<set $repGain += 0.1*$FSSingleSlaveRep>> <<elseif $slaves[$i].bellyImplant >= 1500 && (($slaves[$i].ovaries == 0 && $slaves[$i].mpreg == 0) || $slaves[$i].preg < -1)>> - Society @@.green;accepts@@ $slaves[$i].slaveName's implant filled belly due to her infertility. + Society @@.green;accepts@@ $slaves[$i].slaveName's implant filled belly due to $possessive infertility. <<set $repGain += 0.1*$FSSingleSlaveRep>> <<elseif setup.fakeBellies.includes($bellyAccessory)>> Society is @@.green;placated@@ by $slaves[$i].slaveName's fake belly. @@ -5048,8 +5096,15 @@ Society is @@.green;pleased@@ by $slaves[$i].slaveName's recent birth. <<FSChangePorn "Repopulationist" 2>> <<elseif $slaves[$i].collar == "preg biometrics" && $slaves[$i].preg > 0>> - Society is @@.green;pleased@@ by $slaves[$i].slaveName's collar revealing her womb's secret<<if $slaves[$i].pregType > 1>>s<</if>> even when $possessive body is trying its best to keep <<if $slaves[$i].pregType > 1>>them<<else>>it<</if>> hidden. + Society is @@.green;pleased@@ by $slaves[$i].slaveName's collar revealing $possessive womb's secret<<if $slaves[$i].pregType > 1>>s<</if>> even when $possessive body is trying its best to keep <<if $slaves[$i].pregType > 1>>them<<else>>it<</if>> hidden. <<FSChangePorn "Repopulationist" 1>> + <<if $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> + They just wish it wasn't <<print $arcologies[0].FSSubjugationistRace>>, of course. + <<elseif $arcologies[0].FSSupremacist != "unset" && ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>> + The fact that $pronoun is $arcologies[0].FSSupremacistRace only makes it better. + <</if>> + <<elseif $arcologies[0].FSSubjugationist != "unset" && ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>> + Society is perfectly fine with $slaves[$i].slaveName not reproducing. $possessiveCap belly is still unattractively small, however. <<elseif ($slaves[$i].ovaries == 0 && $slaves[$i].mpreg == 0) || ($slaves[$i].preg < -1) || ($slaves[$i].pubertyXX == 0)>> Society is @@.red;mildly disappointed@@ that $slaves[$i].slaveName is unable to become pregnant. <<FSChangePorn "Repopulationist" -1>> @@ -6059,6 +6114,7 @@ <<if ($slaves[$i].boobs > 30000+($slaves[$i].muscles*100))>> <<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) || $arcologies[0].FSAssetExpansionistResearch == 0>> <<if ($slaves[$i].drugs != "breast injections" && $slaves[$i].drugs != "intensive breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>> + <<if $slaves[$i].bellyPreg < 300000 && $slaves[$i].hormoneBalance < 400>> <<if ($slaves[$i].boobs > 30000+($slaves[$i].muscles*100))>> Her breasts are larger than her body can possibly sustain without industrial intervention, and they @@.orange;naturally lose mass.@@ <<set $slaves[$i].boobs = Math.clamp($slaves[$i].boobs-25, 30000+($slaves[$i].muscles*100), 50000)>> @@ -6069,6 +6125,7 @@ <</if>> <</if>> <</if>> + <</if>> <<if ($slaves[$i].boobs > 40000)>> Her immense breasts are so big they pin her to the floor, taking the weight off her body. <<if $slaves[$i].devotion <= 50>> @@ -6115,6 +6172,7 @@ <<if ($slaves[$i].boobs > 5000+($slaves[$i].muscles*10))>> <<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) || $arcologies[0].FSAssetExpansionistResearch == 0>> <<if ($slaves[$i].drugs != "breast injections" && $slaves[$i].drugs != "intensive breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>> + <<if $slaves[$i].bellyPreg < 300000 && $slaves[$i].hormoneBalance < 400>> <<if ($slaves[$i].boobs > 5000+($slaves[$i].muscles*10))>> Her breasts are larger than her body can possibly sustain without industrial intervention, and they @@.orange;naturally lose mass.@@ <<set $slaves[$i].boobs = Math.clamp($slaves[$i].boobs-25, 5000+($slaves[$i].muscles*10), 50000)>> @@ -6125,6 +6183,7 @@ <</if>> <</if>> <</if>> + <</if>> <<if ($slaves[$i].boobs > 40000)>> Her titanic breasts are so massive they dwarf her body. She has no choice but to accept immobility. <<elseif ($slaves[$i].boobs > 20000)>> @@ -6180,6 +6239,7 @@ <<if ($slaves[$i].boobs > 10000+($slaves[$i].muscles*20))>> <<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) || $arcologies[0].FSAssetExpansionistResearch == 0>> <<if ($slaves[$i].drugs != "breast injections" && $slaves[$i].drugs != "intensive breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>> + <<if $slaves[$i].bellyPreg < 300000 && $slaves[$i].hormoneBalance < 400>> <<if ($slaves[$i].boobs > 10000+($slaves[$i].muscles*20))>> Her breasts are larger than her body can possibly sustain without industrial intervention, and they @@.orange;naturally lose mass.@@ <<set $slaves[$i].boobs = Math.clamp($slaves[$i].boobs-25, 10000+($slaves[$i].muscles*20), 50000)>> @@ -6190,6 +6250,7 @@ <</if>> <</if>> <</if>> + <</if>> <<if ($slaves[$i].boobs > 40000)>> Her immense breasts are so huge they rest upon the floor even when she tries to stand, taking the weight off her small body. <<if $slaves[$i].devotion <= 50>> @@ -6245,6 +6306,7 @@ <<if ($slaves[$i].boobs > 20000+($slaves[$i].muscles*50))>> <<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) || $arcologies[0].FSAssetExpansionistResearch == 0>> <<if ($slaves[$i].drugs != "breast injections" && $slaves[$i].drugs != "intensive breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>> + <<if $slaves[$i].bellyPreg < 300000 && $slaves[$i].hormoneBalance < 400>> <<if ($slaves[$i].boobs > 20000+($slaves[$i].muscles*50))>> Her breasts are larger than her body can possibly sustain without industrial intervention, and they @@.orange;naturally lose mass.@@ <<set $slaves[$i].boobs = Math.clamp($slaves[$i].boobs-25, 20000+($slaves[$i].muscles*50), 50000)>> @@ -6255,6 +6317,7 @@ <</if>> <</if>> <</if>> + <</if>> <<if ($slaves[$i].boobs > 25000)>> Her immense breasts are so big they pin her to the floor, taking the weight off her youthful body. She finds pulling them along @@.mediumorchid;mildly annoying.@@ <<set $slaves[$i].devotion -= 1>> @@ -7062,12 +7125,12 @@ <<set _oldFame = $slaves[$i].pornFame>> <<if ($slaves[$i].pornFame < 35) && ($slaves[$i].prestige > 1)>> Interest in porn of $object is very high, since $pronoun's already quite prestigious. - <<set $slaves[$i].pornFame += 1>> + <<set $slaves[$i].pornFame += 1*$HackingSkillMultiplier>> <<elseif ($slaves[$i].pornFame < 10) && ($slaves[$i].prestige > 0)>> Interest in porn of $object is high, since $pronoun's already prestigious. - <<set $slaves[$i].pornFame += 1>> + <<set $slaves[$i].pornFame += 1*$HackingSkillMultiplier>> <</if>> - <<set $slaves[$i].pornFame += ($slaves[$i].pornFameSpending/1000)>> + <<set $slaves[$i].pornFame += (($slaves[$i].pornFameSpending/1000)*$HackingSkillMultiplier)>> <<if ($slaves[$i].prestige < 3) && ($slaves[$i].pornFame >= 100) && (_oldFame < 100)>> <<set $slaves[$i].prestige = 3>> @@.green;$pronounCap has become world famous for $possessive career in slave pornography!@@ Millions are now intimately familiar with @@ -7277,6 +7340,7 @@ <<set $slaves[$i].pregSource = 0>> <<set $slaves[$i].pregWeek = 0>> <<set $slaves[$i].pregKnown = 0>> + <<set WombFlush($slaves[$i])>> <<SetBellySize $slaves[$i]>> <<set $cash -= 100000>> <<set $failedElite += 150>> @@ -7290,17 +7354,21 @@ <</if>> <</if>> -<<if ($slaves[$i].preg > 37) && ($slaves[$i].broodmother == 0) && (random(1,100) > 90) && $slaves[$i].pregControl != "labor supressors">> - <<set $slaves[$i].labor = 1>> - <<set $birthee = 1>> -<<elseif ($slaves[$i].preg > 41) && ($slaves[$i].broodmother == 0) && $slaves[$i].pregControl != "labor supressors">> - <<set $slaves[$i].labor = 1>> - <<set $birthee = 1>> -<<elseif ($slaves[$i].preg > 37) && ($slaves[$i].broodmother > 0) && ($slaves[$i].assignment != "labor in the production line")>> - <<set $slaves[$i].labor = 1>> - <<set $birthee = 1>> - <<if $slaves[$i].ovaryAge >= 47>> - <<set $slaves[$i].broodmotherCountDown = 37>> +/*--------------- main labor triggers: -------- */ + +<<if $slaves[$i].pregControl != "labor supressors" && $slaves[$i].assignment != "labor in the production line">> + <<if $slaves[$i].broodmother < 1>> + <<if WombBirthReady($slaves[$i], 43) > 0>> /*check for really ready fetuses - 43 weeks - max, overdue*/ + <<set $slaves[$i].labor = 1, $birthee = 1>> + <<elseif WombBirthReady($slaves[$i], 40) > 0 && (random(1,100) > 50)>> /*check for really ready fetuses - 40 weeks - normal*/ + <<set $slaves[$i].labor = 1, $birthee = 1>> + <<elseif WombBirthReady($slaves[$i], 36) > 0 && (random(1,100) > 90)>> /*check for really ready fetuses - 36 weeks minimum */ + <<set $slaves[$i].labor = 1, $birthee = 1>> + <</if>> + <<else>> + <<if WombBirthReady($slaves[$i], 37)>> /* broodmothers ready at 37 week always */ + <<set $slaves[$i].labor = 1, $birthee = 1>> + <</if>> <</if>> <</if>> @@ -7337,7 +7405,7 @@ <</if>> <<if $seeAge == 1>> <<set _deathSeed = (($slaves[$i].health*2)-($slaves[$i].physicalAge*2)-($slaves[$i].chem*4)-($slaves[$i].addict*3))>> - <<if $slaves[$i].physicalAge >= 90 && random(1,1000) > 800+_deathSeed>> + <<if $slaves[$i].physicalAge >= Math.max((70+($slaves[$i].health/5)-($slaves[$i].addict)-($slaves[$i].chem/20)),50) && random(1,1000) > 800+_deathSeed>> <<set $slaves[$i].death = "old">> <<set $slaveDeath = 1>> <</if>> diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw index 8e9f36ec79550f358c2b160ec085499c1d669a8a..a965788da5afbe51daf13bd355927e99acbc2c48 100644 --- a/src/uncategorized/saPleaseYou.tw +++ b/src/uncategorized/saPleaseYou.tw @@ -832,7 +832,7 @@ serves you this week. <</if>> <</if>> -<<FResult $slaves[$i]>> +<<set FResult($slaves[$i])>> <<Beauty $slaves[$i]>> <<set _multiplier = 0.1>> @@ -856,7 +856,11 @@ serves you this week. <<set _multiplier += 0.05>> <</if>> -<<set $repGain += Math.trunc(($beauty*$FResult)*_multiplier)>> +<<if $beauty>> + <<set $repGain += Math.trunc(($beauty*$FResult)*_multiplier)>> +<<else>> + <b>@@.red;Error: slaves' beauty undefined, report this issue!@@</b> +<</if>> Keeping $object as nothing but your personal <<if ($slaves[$i].toyHole == "pussy")>> diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw index 0fb613f8923f98d9760a45dade8fe37d9008793c..3ee4a75cf6a29753e016f2bbdb7917271fbf1def 100644 --- a/src/uncategorized/saRelationships.tw +++ b/src/uncategorized/saRelationships.tw @@ -308,6 +308,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <<elseif _SlaveI.father == -1>> She @@ -365,6 +374,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <<elseif $PC.mother == _SlaveI.ID || $PC.father == _SlaveI.ID>> She @@ -422,6 +440,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <<elseif areSisters(_SlaveI, $PC) > 0>> <<set _PCrelative = areSisters(_SlaveI, $PC)>> @@ -495,6 +522,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <</if>> <<if (_SlaveI.devotion + _SlaveI.trust < 150)>> @@ -573,6 +609,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <<elseif _SlaveI.father == -1 && _SlaveI.fetish != "mindbroken">> She @@ -630,6 +675,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <<elseif ($PC.mother == _SlaveI.ID || $PC.father == _SlaveI.ID) && _SlaveI.fetish != "mindbroken">> She @@ -687,6 +741,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <<elseif areSisters(_SlaveI, $PC) > 0 && _SlaveI.fetish != "mindbroken">> <<set _PCrelative = areSisters(_SlaveI, $PC)>> @@ -760,6 +823,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ your incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <</if>> /* obsolete due to forced marriage @@ -1177,6 +1249,15 @@ <<set $repGain += $FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05*$FSSingleSlaveRep*$pornFameBonus>> <</if>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ their incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <</if>> <<set $relation = 0>> @@ -1238,6 +1319,15 @@ @@.green;The effect is greatly enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. <<set $repGain += $FSSingleSlaveRep * ($arcologies[0].FSEgyptianRevivalist / $FSLockinLevel), $arcologies[0].FSEgyptianRevivalist += 0.05 * $FSSingleSlaveRep * $pornFameBonus>> <</if>> + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Society @@.green;enjoys@@ their incestuous relationship since incest is currently trendy. + <<set $repGain += 1.5*$FSSingleSlaveRep>> + <<if _SlaveI.bellyPreg >= 1500>> + <<if _SlaveI.pregSource == $relation.ID>> + @@.green;The effect is enhanced@@ by _SlaveI.slaveName's pureblooded pregnancy. + <<set $repGain += $FSSingleSlaveRep>> + <</if>> + <</if>> <</if>> <</if>> <</if>> /* closes extended family mode */ diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw index e9c63ce224d89aa4f34c0dfb85adb6102bd1d2c1..e65a3b6ec068fe4cdd81862e6f454d12dda746a8 100644 --- a/src/uncategorized/saServeThePublic.tw +++ b/src/uncategorized/saServeThePublic.tw @@ -8,7 +8,7 @@ <<set $publicServants += 1>> <</if>> -<<FResult $slaves[$i]>> +<<set FResult($slaves[$i])>> <<if ($slaves[$i].releaseRules == "restrictive") && ($slaves[$i].standardReward !== "orgasm")>> <<set $FResult += 2>> <</if>> @@ -473,16 +473,22 @@ Her appearance attracted $beauty members of the public (<<print Math.trunc($beau are public sluts too, she earns extra attention. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Citizens are very excited about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Citizens are very excited about being able to participate in incestuous sex. <</if>> <<elseif _children.length > 1>> Since her relatives, _children[0].slaveName and _children[1].slaveName, are public sluts too, she earns extra attention. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Citizens are very excited about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Citizens are very excited about being able to participate in incestuous sex. <</if>> <<elseif _children.length > 0>> Since her relative, _children[0].slaveName, is a public slut too, she earns extra attention. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Citizens are very excited about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Citizens are very excited about being able to participate in incestuous sex. <</if>> <</if>> <</if>> @@ -494,6 +500,8 @@ Her appearance attracted $beauty members of the public (<<print Math.trunc($beau Since her $slaves[$j].relation $slaves[$j].slaveName is a public slut too, she earns extra attention. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Citizens are very excited about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Citizens are very excited about being able to participate in incestuous sex. <</if>> <</if>> <<break>> diff --git a/src/uncategorized/saServeYourOtherSlaves.tw b/src/uncategorized/saServeYourOtherSlaves.tw index f75f3188ae09d344796a0e8f0ea75b7b8bbeccca..d0b392f0947f5ac03965df529b6d3c37306d2f90 100644 --- a/src/uncategorized/saServeYourOtherSlaves.tw +++ b/src/uncategorized/saServeYourOtherSlaves.tw @@ -61,20 +61,20 @@ <<set $slaves[$i].tired = 1>> <<if $slaves[$i].sexualFlaw == "self hating">> With so many other slaves taking advantage of her body, her life's purpose of @@.hotpink;being nothing more than a piece of meat@@ has come true. - <<set $slaves[$i].deovtion += 5>> + <<set $slaves[$i].devotion += 5>> <<elseif $slaves[$i].sexualFlaw == "attention whore">> With little competition for her body and so many slaves eager to use her, her dreams of being the center of attention are @@.hotpink;have come true.@@ <<if $slaves[$i].weight < 10 && $slaves[$i].belly < 100>> <<if canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0 && canDoAnal($slaves[$i]) && $slaves[$i].anus > 0>> She ends each day cradling her cum swollen stomach, marvelling at the "attention" bestowed upon her. <<elseif (canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0) || (canDoAnal($slaves[$i]) && $slaves[$i].anus > 0)>> - By the end of the day, her stomach has a noticible bulge to it from all the "attention" bestowed upon her. + By the end of the day, her stomach has a noticeable bulge to it from all the "attention" bestowed upon her. <</if>> <</if>> - <<set $slaves[$i].deovtion += 5>> + <<set $slaves[$i].devotion += 5>> <<elseif $slaves[$i].energy > 95>> With so many other slaves using her body, her @@.hotpink;burning libido is finally sated.@@ - <<set $slaves[$i].deovtion += 2>> + <<set $slaves[$i].devotion += 2>> <</if>> <<else>> Since <<if $subSlave == 1>>she is the only slave<<else>>there are so few other slaves<</if>> servicing your stock, she is used to the @@.red;point of exhaustion.@@ @@ -97,20 +97,20 @@ <</if>> <<if $slaves[$i].sexualFlaw == "self hating">> With so many other slaves taking advantage of her body, her life's purpose of @@.hotpink;being nothing more than a piece of meat@@ has come true. - <<set $slaves[$i].deovtion += 5>> + <<set $slaves[$i].devotion += 5>> <<elseif $slaves[$i].sexualFlaw == "attention whore">> With little competition for her body and so many slaves eager to use her, her dreams of being the center of attention are @@.hotpink;have come true.@@ <<if $slaves[$i].weight < 10 && $slaves[$i].belly < 100>> <<if canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0 && canDoAnal($slaves[$i]) && $slaves[$i].anus > 0>> She ends each day cradling her cum swollen stomach, marvelling at the "attention" bestowed upon her. <<elseif (canDoVaginal($slaves[$i]) && $slaves[$i].vagina > 0) || (canDoAnal($slaves[$i]) && $slaves[$i].anus > 0)>> - By the end of the day, her stomach has a noticible bulge to it from all the "attention" bestowed upon her. + By the end of the day, her stomach has a noticeable bulge to it from all the "attention" bestowed upon her. <</if>> <</if>> - <<set $slaves[$i].deovtion += 5>> + <<set $slaves[$i].devotion += 5>> <<elseif $slaves[$i].energy > 95>> With so many other slaves using her body, her @@.hotpink;burning libido is finally sated.@@ - <<set $slaves[$i].deovtion += 2>> + <<set $slaves[$i].devotion += 2>> <</if>> <</if>> <</if>> diff --git a/src/uncategorized/saStayConfined.tw b/src/uncategorized/saStayConfined.tw index 087fc68a9b5c57b29623877e5b8ea77c05841451..d1ff670255494fe687b5f1c129acbd5adfa4ac34 100644 --- a/src/uncategorized/saStayConfined.tw +++ b/src/uncategorized/saStayConfined.tw @@ -2,6 +2,7 @@ <<SlavePronouns $slaves[$i]>> +<<if $slaves[$i].fetish != "mindbroken">> <<if ($slaves[$i].devotion < -50)>> is kept in solitary confinement whenever $pronoun is not being forced to do something else. $pronounCap still hates $possessive place in the world, but being forced to rely on slave life as $possessive only human contact @@.hotpink;grinds down $possessive resistance.@@ <<set $slaves[$i].devotion += 2>> @@ -31,8 +32,18 @@ The stress of confinement @@.red;damages $possessive health@@. <<set $slaves[$i].health -= 10>> -<<if ($slaves[$i].sentence == 0) && (($slaves[$i].devotion > 20) || (($slaves[$i].devotion >= -20) && ($slaves[$i].trust < -20)) || (($slaves[$i].devotion >= -50) && ($slaves[$i].trust < -50)))>> - $pronounCap is now willing to @@.hotpink;do as $pronoun's told@@, so @@.yellow;$possessive assignment has defaulted to rest.@@ +<<else>> + is oblivious to $possessive confinement. +<</if>> + +<<if ($slaves[$i].sentence == 0) && (($slaves[$i].devotion > 20) || (($slaves[$i].devotion >= -20) && ($slaves[$i].trust < -20)) || (($slaves[$i].devotion >= -50) && ($slaves[$i].trust < -50)) || ($slaves[$i].fetish == "mindbroken"))>> + $pronounCap + <<if $slaves[$i].fetish == "mindbroken">> + broken mind hinges entirely on other's guidance, + <<else>> + is now willing to @@.hotpink;do as $pronoun's told@@, + <</if>> + so @@.yellow;$possessive assignment has defaulted to rest.@@ <<if $slaves[$i].assignment == "be confined in the cellblock">> <<set _brokenSlaves++, _DL--, _dI-->> <</if>> diff --git a/src/uncategorized/saTakeClasses.tw b/src/uncategorized/saTakeClasses.tw index 10c5ab07135e547307e0e914774dc69d6867cec0..dae37313d594e94f438aa7b9ddda33a385902b13 100644 --- a/src/uncategorized/saTakeClasses.tw +++ b/src/uncategorized/saTakeClasses.tw @@ -4,7 +4,12 @@ <<set _learning = 1>> -<<if ($slaves[$i].assignment == "learn in the schoolroom")>> +<<if $slaves[$i].fetish == "mindbroken">> + is no longer mentally capable and @@.yellow;has been dropped from class.@@ + <<if $slaves[$i].assignment == "take classes">> + <<removeJob $slaves[$i] "take classes">> + <</if>> +<<elseif ($slaves[$i].assignment == "learn in the schoolroom")>> <<if ($Schoolteacher != 0)>> <<set _seed = $Schoolteacher.intelligence+$Schoolteacher.intelligenceImplant>> <<if ($Schoolteacher.visualAge > 35)>> @@ -60,169 +65,172 @@ <</if>> <</if>> -<<if ($slaves[$i].intelligence >= 3)>> - $pronounCap is a genius, - <<set _learning += 1>> -<<elseif ($slaves[$i].intelligence >= 2)>> - $pronounCap is highly intelligent - <<set _learning += 1>> -<<elseif ($slaves[$i].intelligence >= 1)>> - $pronounCap is of above average intelligence - <<if (random(1,100) < 70)>> +<<if $slaves[$i].fetish != "mindbroken">> + <<if ($slaves[$i].intelligence >= 3)>> + $pronounCap is a genius, <<set _learning += 1>> - <</if>> -<<elseif ($slaves[$i].intelligence >= 0)>> - $pronounCap is of average intelligence - <<if (random(1,100) < 50)>> + <<elseif ($slaves[$i].intelligence >= 2)>> + $pronounCap is highly intelligent <<set _learning += 1>> - <</if>> -<<else>> - <<set _seed = 50 + $slaves[$i].intelligence*20>> - <<if ($schoolroomUpgradeRemedial == 1) && random(1,100) < 50>> - <<set _seed = 50>> - <</if>> - <<if (random(1,100) < _seed)>> - <<set _learning += 1>> - <</if>> - <<if ($slaves[$i].intelligence >= -1)>> - $pronounCap is of below average intelligence - <<elseif ($slaves[$i].intelligence >= -2)>> - $pronounCap is quite stupid + <<elseif ($slaves[$i].intelligence >= 1)>> + $pronounCap is of above average intelligence + <<if (random(1,100) < 70)>> + <<set _learning += 1>> + <</if>> + <<elseif ($slaves[$i].intelligence >= 0)>> + $pronounCap is of average intelligence + <<if (random(1,100) < 50)>> + <<set _learning += 1>> + <</if>> <<else>> - $pronounCap is an imbecile, + <<set _seed = 50 + $slaves[$i].intelligence*20>> + <<if ($schoolroomUpgradeRemedial == 1) && random(1,100) < 50>> + <<set _seed = 50>> + <</if>> + <<if (random(1,100) < _seed)>> + <<set _learning += 1>> + <</if>> + <<if ($slaves[$i].intelligence >= -1)>> + $pronounCap is of below average intelligence + <<elseif ($slaves[$i].intelligence >= -2)>> + $pronounCap is quite stupid + <<else>> + $pronounCap is an imbecile, + <</if>> <</if>> -<</if>> -<<if ($slaves[$i].devotion > 95)>> - and worshipful of you, - <<set _learning += 1>> -<<elseif ($slaves[$i].devotion > 50)>> - and devoted to you, - <<if (random(1,100) < 70)>> - <<set _learning += 1>> - <</if>> -<<elseif ($slaves[$i].devotion > 20)>> - and obedient to you, - <<if (random(1,100) < 50)>> - <<set _learning += 1>> - <</if>> -<<elseif ($slaves[$i].trust < -20)>> - and frightened of you, - <<if (random(1,100) < 50)>> + <<if ($slaves[$i].devotion > 95)>> + and worshipful of you, <<set _learning += 1>> + <<elseif ($slaves[$i].devotion > 50)>> + and devoted to you, + <<if (random(1,100) < 70)>> + <<set _learning += 1>> + <</if>> + <<elseif ($slaves[$i].devotion > 20)>> + and obedient to you, + <<if (random(1,100) < 50)>> + <<set _learning += 1>> + <</if>> + <<elseif ($slaves[$i].trust < -20)>> + and frightened of you, + <<if (random(1,100) < 50)>> + <<set _learning += 1>> + <</if>> + <<else>> + and neither likes you nor is afraid of you, <</if>> -<<else>> - and neither likes you nor is afraid of you, -<</if>> -<<if (_learning <= 1)>> - and $pronoun learns slowly this week. -<<elseif (_learning == 2)>> - and $pronoun does well with $possessive studies this week. -<<else>> - and $pronoun is perfectly studious this week. -<</if>> + <<if (_learning <= 1)>> + and $pronoun learns slowly this week. + <<elseif (_learning == 2)>> + and $pronoun does well with $possessive studies this week. + <<else>> + and $pronoun is perfectly studious this week. + <</if>> -<<set _seed = 0>> -<<set $skillIncrease = 10+$slaves[$i].intelligence>> -<<for _j = 0; _j < _learning; _j++>> - <<if ($slaves[$i].devotion <= 20) && (_seed == 0)>> - Since $pronoun is wanting in basic obedience, $pronoun suffers through courses on @@.hotpink;$possessive place@@ in the Free Cities world. - <<set $slaves[$i].devotion += 10>> - <<set _seed = 1>> - <<elseif ($slaves[$i].oralSkill <= 10)>> - Since $pronoun is orally incompetent, $pronoun is taught basic gag reflex suppression exercises and other simple oral things. - <<OralSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].vaginalSkill <= 10) && ($slaves[$i].vagina > 0) && canDoVaginal($slaves[$i])>> - Since $pronoun is unskilled at using $possessive pussy, $pronoun is taught kegel exercises and other simple vaginal skills. - <<VaginalSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].vaginalSkill <= 10) && ($slaves[$i].vagina >= 0)>> - Since $pronoun is unskilled at using $possessive pussy and not permitted to learn through practice, $pronoun is taught kegel exercises, vaginal basics and several new positions. - <<VaginalSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].analSkill <= 10) && ($slaves[$i].anus > 0) && canDoAnal($slaves[$i])>> - Since $pronoun is a novice at taking it up $possessive butt, $pronoun is taught relaxation exercises and other simple anal basics. - <<AnalSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].analSkill <= 10) && ($slaves[$i].anus >= 0)>> - Since $pronoun is a novice at taking it up $possessive butt and not permitted to learn through practice, $pronoun is taught relaxation exercises and other simple anal basics. - <<AnalSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].whoreSkill <= 10)>> - Since $pronoun has little idea what's involved in selling $possessive body, $pronoun is taught basic safety practices and other simple prostitution skills. - <<WhoreSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].entertainSkill <= 10)>> - Since $possessive entertainment value is limited to $possessive holes, $pronoun is taught simple conversational skills and other courtesan's essentials. - <<EntertainSkillIncrease $slaves[$i]>> - <<elseif ($schoolroomUpgradeSkills == 1)>> - <<if ($slaves[$i].oralSkill <= 30)>> - Having completed the basic sex slave curriculum, $pronoun studies more advanced ways to use $possessive lips and tongue to please cocks, cunts, and asses. + <<set _seed = 0>> + <<set $skillIncrease = 10+$slaves[$i].intelligence>> + <<for _j = 0; _j < _learning; _j++>> + <<if ($slaves[$i].devotion <= 20) && (_seed == 0)>> + Since $pronoun is wanting in basic obedience, $pronoun suffers through courses on @@.hotpink;$possessive place@@ in the Free Cities world. + <<set $slaves[$i].devotion += 10>> + <<set _seed = 1>> + <<elseif ($slaves[$i].oralSkill <= 10)>> + Since $pronoun is orally incompetent, $pronoun is taught basic gag reflex suppression exercises and other simple oral things. <<OralSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].whoreSkill <= 30)>> - Having completed the basic sex slave curriculum, $pronoun studies intermediate prostitution, including how to stay as safe as possible and maximize $possessive efficiency. - <<WhoreSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].entertainSkill <= 30)>> - Having completed the basic sex slave curriculum, $pronoun studies courtesanship, including social dynamics and flirtation more subtle than straightforward begging for sex. - <<EntertainSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].vaginalSkill <= 30) && ($slaves[$i].vagina >= 0)>> - Having completed the basic sex slave curriculum, $pronoun studies more advanced techniques and exotic positions to make use of $possessive <<if $slaves[$i].vagina == 0>>virgin pussy for use in $possessive first time<<else>>pussy<</if>>. + <<elseif ($slaves[$i].vaginalSkill <= 10) && ($slaves[$i].vagina > 0) && canDoVaginal($slaves[$i])>> + Since $pronoun is unskilled at using $possessive pussy, $pronoun is taught kegel exercises and other simple vaginal skills. <<VaginalSkillIncrease $slaves[$i]>> - <<elseif ($slaves[$i].analSkill <= 30)>> - Having completed the basic sex slave curriculum, $pronoun studies more advanced techniques and exotic positions to make use of $possessive <<if $slaves[$i].vagina == 0>>virgin ass for use in $possessive first time<<else>>ass<</if>>. + <<elseif ($slaves[$i].vaginalSkill <= 10) && ($slaves[$i].vagina >= 0)>> + Since $pronoun is unskilled at using $possessive pussy and not permitted to learn through practice, $pronoun is taught kegel exercises, vaginal basics and several new positions. + <<VaginalSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].analSkill <= 10) && ($slaves[$i].anus > 0) && canDoAnal($slaves[$i])>> + Since $pronoun is a novice at taking it up $possessive butt, $pronoun is taught relaxation exercises and other simple anal basics. + <<AnalSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].analSkill <= 10) && ($slaves[$i].anus >= 0)>> + Since $pronoun is a novice at taking it up $possessive butt and not permitted to learn through practice, $pronoun is taught relaxation exercises and other simple anal basics. <<AnalSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].whoreSkill <= 10)>> + Since $pronoun has little idea what's involved in selling $possessive body, $pronoun is taught basic safety practices and other simple prostitution skills. + <<WhoreSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].entertainSkill <= 10)>> + Since $possessive entertainment value is limited to $possessive holes, $pronoun is taught simple conversational skills and other courtesan's essentials. + <<EntertainSkillIncrease $slaves[$i]>> + <<elseif ($schoolroomUpgradeSkills == 1)>> + <<if ($slaves[$i].oralSkill <= 30)>> + Having completed the basic sex slave curriculum, $pronoun studies more advanced ways to use $possessive lips and tongue to please cocks, cunts, and asses. + <<OralSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].whoreSkill <= 30)>> + Having completed the basic sex slave curriculum, $pronoun studies intermediate prostitution, including how to stay as safe as possible and maximize $possessive efficiency. + <<WhoreSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].entertainSkill <= 30)>> + Having completed the basic sex slave curriculum, $pronoun studies courtesanship, including social dynamics and flirtation more subtle than straightforward begging for sex. + <<EntertainSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].vaginalSkill <= 30) && ($slaves[$i].vagina >= 0)>> + Having completed the basic sex slave curriculum, $pronoun studies more advanced techniques and exotic positions to make use of $possessive <<if $slaves[$i].vagina == 0>>virgin pussy for use in $possessive first time<<else>>pussy<</if>>. + <<VaginalSkillIncrease $slaves[$i]>> + <<elseif ($slaves[$i].analSkill <= 30)>> + Having completed the basic sex slave curriculum, $pronoun studies more advanced techniques and exotic positions to make use of $possessive <<if $slaves[$i].vagina == 0>>virgin ass for use in $possessive first time<<else>>ass<</if>>. + <<AnalSkillIncrease $slaves[$i]>> + <</if>> <</if>> - <</if>> -<</for>> + <</for>> -<<if ($slaves[$i].intelligenceImplant < 1) || ($slaves[$i].intelligenceImplant > 1)>> - $pronounCap makes some progress towards a basic education. - <<set $slaves[$i].intelligenceImplant += 0.1*_learning>> - <<if ($slaves[$i].intelligenceImplant >= 1)>> - <<set $slaves[$i].intelligenceImplant = 1>> - $pronounCap has completed a course of slave education, and for most purposes $pronoun is now @@.deepskyblue;more intelligent.@@ - <<if ($slaves[$i].intelligence < 3)>> - <<set $slaves[$i].intelligence += 1>> + <<if ($slaves[$i].intelligenceImplant < 1) || ($slaves[$i].intelligenceImplant > 1)>> + $pronounCap makes some progress towards a basic education. + <<set $slaves[$i].intelligenceImplant += 0.1*_learning>> + <<if ($slaves[$i].intelligenceImplant >= 1)>> + <<set $slaves[$i].intelligenceImplant = 1>> + $pronounCap has completed a course of slave education, and for most purposes $pronoun is now @@.deepskyblue;more intelligent.@@ + <<if ($slaves[$i].intelligence < 3)>> + <<set $slaves[$i].intelligence += 1>> + <</if>> <</if>> <</if>> -<</if>> -<<if ($slaves[$i].intelligenceImplant == 1)>> -<<if $slaves[$i].voice != 0>> - <<if ($slaves[$i].intelligence > random(-4,4))>> - <<if ($schoolroomUpgradeLanguage == 0)>> - <<if ($slaves[$i].accent > 3)>> - $pronounCap has @@.green;learned some $language,@@ and can make $possessive point with some gesturing, though $pronoun speaks $language horribly. + <<if ($slaves[$i].intelligenceImplant == 1)>> + <<if $slaves[$i].voice != 0>> + <<if ($slaves[$i].intelligence > random(-4,4))>> + <<if ($schoolroomUpgradeLanguage == 0)>> + <<if ($slaves[$i].accent > 3)>> + $pronounCap has @@.green;learned some $language,@@ and can make $possessive point with some gesturing, though $pronoun speaks $language horribly. + <<set $slaves[$i].accent -= 1>> + <<if $slaves[$i].speechRules == "language lessons">> + <<set $slaves[$i].speechRules = "accent elimination">> + <</if>> + <<elseif ($slaves[$i].accent == 3)>> + $pronounCap has @@.green;learned functional $language,@@ and can make <<print $object>>self understood, though $possessive $slaves[$i].nationality accent is still quite heavy. <<set $slaves[$i].accent -= 1>> - <<if $slaves[$i].speechRules == "language lessons">> - <<set $slaves[$i].speechRules = "accent elimination">> <</if>> - <<elseif ($slaves[$i].accent == 3)>> - $pronounCap has @@.green;learned functional $language,@@ and can make <<print $object>>self understood, though $possessive $slaves[$i].nationality accent is still quite heavy. - <<set $slaves[$i].accent -= 1>> + <<else>> + <<if ($slaves[$i].accent > 3)>> + $pronounCap has @@.green;learned some $language,@@ and can make $possessive point with some gesturing, though $pronoun speaks $language horribly. + <<set $slaves[$i].accent -= 1>> + <<elseif ($slaves[$i].accent >= 2)>> + $pronounCap has @@.green;learned decent $language,@@ though $pronoun retains enough of $possessive $slaves[$i].nationality accent to make $possessive voice distinctly sexy. + <<set $slaves[$i].accent = 1>> + <</if>> <</if>> - <<else>> - <<if ($slaves[$i].accent > 3)>> - $pronounCap has @@.green;learned some $language,@@ and can make $possessive point with some gesturing, though $pronoun speaks $language horribly. - <<set $slaves[$i].accent -= 1>> - <<elseif ($slaves[$i].accent >= 2)>> - $pronounCap has @@.green;learned decent $language,@@ though $pronoun retains enough of $possessive $slaves[$i].nationality accent to make $possessive voice distinctly sexy. - <<set $slaves[$i].accent = 1>> <</if>> <</if>> <</if>> -<</if>> -<</if>> -<<if ($slaves[$i].intelligenceImplant == 1) && ($slaves[$i].assignment == "take classes")>> -<<if ($slaves[$i].voice == 0) || ($slaves[$i].accent <= 1) || (($schoolroomUpgradeLanguage == 0) && ($slaves[$i].accent <= 2))>> -<<if ($slaves[$i].oralSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].oralSkill > 10))>> -<<if ($slaves[$i].whoreSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].whoreSkill > 10))>> -<<if ($slaves[$i].entertainSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].entertainSkill > 10))>> -<<if ($slaves[$i].analSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].analSkill > 10))>> -<<if ($slaves[$i].vaginalSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].vaginalSkill > 10)) || ($slaves[$i].vagina < 0)>> - $pronounCap can learn little from further classes, so @@.yellow;$possessive assignment has defaulted to rest.@@ - <<removeJob $slaves[$i] "take classes">> -<</if>> -<</if>> -<</if>> -<</if>> -<</if>> -<</if>> + + <<if ($slaves[$i].intelligenceImplant == 1) && ($slaves[$i].assignment == "take classes")>> + <<if ($slaves[$i].voice == 0) || ($slaves[$i].accent <= 1) || (($schoolroomUpgradeLanguage == 0) && ($slaves[$i].accent <= 2))>> + <<if ($slaves[$i].oralSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].oralSkill > 10))>> + <<if ($slaves[$i].whoreSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].whoreSkill > 10))>> + <<if ($slaves[$i].entertainSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].entertainSkill > 10))>> + <<if ($slaves[$i].analSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].analSkill > 10))>> + <<if ($slaves[$i].vaginalSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].vaginalSkill > 10)) || ($slaves[$i].vagina < 0)>> + $pronounCap can learn little from further classes, so @@.yellow;$possessive assignment has defaulted to rest.@@ + <<removeJob $slaves[$i] "take classes">> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> <</if>> diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw index 1dddc3109105b40cff3456999b3e8337a15efb92..dfcf6d445e740502c52df0a94c05525c95eaa850 100644 --- a/src/uncategorized/saWhore.tw +++ b/src/uncategorized/saWhore.tw @@ -3,7 +3,7 @@ <!-- Statistics gathering --> <<set _incomeStats = getSlaveStatisticData($slaves[$i], $slaves[$i].assignment === Job.BROTHEL ? $facility.brothel : undefined)>> -<<FResult $slaves[$i]>> +<<set FResult($slaves[$i])>> <<if ($slaves[$i].releaseRules == "restrictive") && ($slaves[$i].standardReward !== "orgasm")>> <<set $FResult += 2>> <</if>> @@ -475,16 +475,22 @@ Her appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a da are selling themselves too, she earns extra ¤ by working with them. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Customers are very enthusiastic about being able to participate in incestuous sex. <</if>> <<elseif _children.length > 1>> Since her relatives, _children[0].slaveName and _children[1].slaveName, are selling themselves too, she earns extra ¤ by working with them. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Customers are very enthusiastic about being able to participate in incestuous sex. <</if>> <<elseif _children.length > 0>> Since her relative, _children[0].slaveName, is selling herself too, she earns extra ¤ by working with her. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Customers are very enthusiastic about being able to participate in incestuous sex. <</if>> <</if>> <</if>> @@ -496,6 +502,8 @@ Her appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a da Since her $slaves[$j].relation $slaves[$j].slaveName is selling herself too, she earns extra ¤ by working with her. <<if $arcologies[0].FSEgyptianRevivalist > 20>> Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. + <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> + Customers are very enthusiastic about being able to participate in incestuous sex. <</if>> <</if>> <<break>> diff --git a/src/uncategorized/scheduledEvent.tw b/src/uncategorized/scheduledEvent.tw index 31837a07a9cbfdcf7ec9b733534e3405293c9d71..3b12a10d450c56fcd3af38279ff27c1f957af98a 100644 --- a/src/uncategorized/scheduledEvent.tw +++ b/src/uncategorized/scheduledEvent.tw @@ -173,29 +173,26 @@ <<goto "RES Failure">> <<elseif ($TFS.schoolPresent == 1) && ($organFarmUpgrade != 0) && ($TFS.farmUpgrade == 0)>> <<goto "TFS Farm Upgrade">> + +/* Nicea */ <<elseif ($nicaea == 1) && ($organFarmUpgrade != 0) && ($TFS.farmUpgrade == 0)>> <<goto "TFS Farm Upgrade">> -<<elseif $arcologies[0].FSChattelReligionist != "unset">> - <<if $nicaeaHeld == 1>> - <<if $plot == 1>><<goto "Nonrandom Event">><<else>><<goto "Random Nonindividual Event">><</if>> - <<elseif ($nicaeaAnnounceable == 1) && ($nicaeaAnnounced != 1)>> - <<goto "SE nicaea announcement">> - <<elseif $nicaeaPreparation == 1>> - <<if $nicaeaInvolvement != 0>> - <<goto "SE nicaea preparation">> - <<else>> - <<set $nicaeaPreparation = 0>> - <<if $plot == 1>><<goto "Nonrandom Event">><<else>><<goto "Random Nonindividual Event">><</if>> - <</if>> - <<elseif $nicaeaInvolvement >= 0>> - <<set $nicaeaRollA = random(-1,0), $nicaeaRollB = random(-1,0), $nicaeaRollC = random(-1,0)>> - <<set $nicaeaFocus = either("owners", "slaves")>> - <<set $nicaeaAssignment = either("whore", "serve the public", "please you")>> - <<set $nicaeaAchievement = either("devotion", "trust", "slaves")>> - <<goto "SE nicaea council">> +<<elseif ($nicaeaHeld != 1) && ($arcologies[0].FSChattelReligionist != "unset") && ($nicaeaAnnounceable == 1) && ($nicaeaAnnounced != 1)>> + <<goto "SE nicaea announcement">> +<<elseif ($nicaeaHeld != 1) && ($arcologies[0].FSChattelReligionist != "unset") && ($nicaeaPreparation == 1)>> + <<if $nicaeaInvolvement != 0>> + <<goto "SE nicaea preparation">> <<else>> + <<set $nicaeaPreparation = 0>> <<if $plot == 1>><<goto "Nonrandom Event">><<else>><<goto "Random Nonindividual Event">><</if>> <</if>> +<<elseif ($nicaeaHeld != 1) && ($arcologies[0].FSChattelReligionist != "unset") && ($nicaeaInvolvement >= 0)>> + <<set $nicaeaRollA = random(-1,0), $nicaeaRollB = random(-1,0), $nicaeaRollC = random(-1,0)>> + <<set $nicaeaFocus = either("owners", "slaves")>> + <<set $nicaeaAssignment = either("whore", "serve the public", "please you")>> + <<set $nicaeaAchievement = either("devotion", "trust", "slaves")>> + <<goto "SE nicaea council">> + <<elseif (Math.trunc($week/24) == ($week/24)) && ($securityForceCreate == 1) && ($SFMODToggle == 1) && $OverallTradeShowAttendance >= 1>> <<goto "securityForceTradeShow">> <<elseif $plot == 1>> diff --git a/src/uncategorized/schoolroomReport.tw b/src/uncategorized/schoolroomReport.tw index 515eb1a17919766ea3c3ddbd4048a1bdef2c91a8..4e4842320cbe4a9391d10019895ba029bad0c068 100644 --- a/src/uncategorized/schoolroomReport.tw +++ b/src/uncategorized/schoolroomReport.tw @@ -176,23 +176,29 @@ <<set $slaves[$i].livingRules = "normal">> <</if>> /% Education done? Has to be here before we run the SA's or there will be double entries for slave %/ - <<if ($slaves[$i].intelligenceImplant == 1)>> - <<if ($slaves[$i].voice == 0) || ($slaves[$i].accent <= 1) || (($schoolroomUpgradeLanguage == 0) && ($slaves[$i].accent <= 2))>> - <<if ($slaves[$i].oralSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].oralSkill > 10))>> - <<if ($slaves[$i].whoreSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].whoreSkill > 10))>> - <<if ($slaves[$i].entertainSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].entertainSkill > 10))>> - <<if ($slaves[$i].analSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].analSkill > 10))>> - <<if ($slaves[$i].vaginalSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].vaginalSkill > 10)) || ($slaves[$i].vagina < 0)>> - <br><br>''__@@.pink;$slaves[$i].slaveName@@__'' can learn little from further classes, so @@.yellow;her assignment has defaulted to rest.@@ + <<if $slaves[$i].fetish == "mindbroken">> <<removeJob $slaves[$i] "learn in the schoolroom">> <<set _restedSlaves++, _dI--, _DL-->> <<continue>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> + <<else>> + <<if ($slaves[$i].intelligenceImplant == 1)>> + <<if ($slaves[$i].voice == 0) || ($slaves[$i].accent <= 1) || (($schoolroomUpgradeLanguage == 0) && ($slaves[$i].accent <= 2))>> + <<if ($slaves[$i].oralSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].oralSkill > 10))>> + <<if ($slaves[$i].whoreSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].whoreSkill > 10))>> + <<if ($slaves[$i].entertainSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].entertainSkill > 10))>> + <<if ($slaves[$i].analSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].analSkill > 10))>> + <<if ($slaves[$i].vaginalSkill > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].vaginalSkill > 10)) || ($slaves[$i].vagina < 0)>> + <br><br>''__@@.pink;$slaves[$i].slaveName@@__'' can learn little from further classes, so @@.yellow;her assignment has defaulted to rest.@@ + <<removeJob $slaves[$i] "learn in the schoolroom">> + <<set _restedSlaves++, _dI--, _DL-->> + <<continue>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> <</if>> <<if $showEWD != 0>> <br><br> diff --git a/src/uncategorized/seBirth.tw b/src/uncategorized/seBirth.tw index f9b97baa098dcdd91bb0de02bd35e8e0a66accc1..f48e8fe31f4c587112411c3e32fec694f91c8153 100644 --- a/src/uncategorized/seBirth.tw +++ b/src/uncategorized/seBirth.tw @@ -1,5 +1,19 @@ :: SE Birth [nobr] +/* +Refactoring this passage. Main idea for structure: + +1. Making all checks about where and how slave give birth (health too). +2. Showing scene (widget with preparations) +3. Make calculation of birth process. All live babies will be added to slave property .curBabies as array. They will be it as long, as slave not give next birth. Enought time for any processing. +4. Showing scene of birth based on calculation (broodmother and normal is merged in one scene, just with variations). +5. Dealing with babies - they are in separate array, no need to mess with mother .pregType or .preg now. +6. Setting up postpartum +7. Dealing with moter critical states. + +I need to break single passage to several widgets, as it's been overcomplicated monster with too many nested if's - true horror for me. :) At least for testing and bugfixing time, later it's can be merged back, if needed for processing speed up. + +*/ <<set $nextButton = "Continue">> <<set $nextLink = "Scheduled Event">> @@ -8,1107 +22,27 @@ <</if>> <<for $i to 0; $i < $slaves.length; $i++>> -<<if $slaves[$i].labor == 1>> -<<set _dispositionId = _.uniqueId('babyDisposition-')>> - -<<set $slaves[$i].pregControl = "none">> - -<<SlavePronouns $slaves[$i]>> -<<set _count = $slaves[$i].pregType>> - -<<set $humiliation = 0>> -<<set $suddenBirth = 1>> -<<set $seed = random(1,100)>> -<<set $csec = 0>> -<<set $slaveDead = 0>> -<<set $birthed = 1>> -<<set $birthDamage = 0>> - -/* birth complications calcs */ -<<if $slaves[$i].mpreg == 1>> -<<if $slaves[$i].anus < 2>> - <<set $birthDamage += 3>> -<</if>> -<<else>> -<<if $slaves[$i].vagina < 2>> - <<set $birthDamage += 3>> -<</if>> -<</if>> -<<if $slaves[$i].hips < 0>> - <<set $birthDamage += (2-$slaves[$i].hips)>> -<</if>> -<<if $slaves[$i].weight <= -95>> - <<set $birthDamage += 7>> -<<elseif $slaves[$i].weight <= -30>> - <<set $birthDamage += 5>> -<</if>> -<<if $slaves[$i].muscles < -95>> - <<set $birthDamage += 30>> -<<elseif $slaves[$i].muscles < -30>> - <<set $birthDamage += 4>> -<<elseif $slaves[$i].muscles < -5>> - <<set $birthDamage += 2>> -<</if>> -<<if $slaves[$i].health < -20>> - <<set $birthDamage += (4-($slaves[$i].health/10))>> -<</if>> -<<if $slaves[$i].physicalAge < 6>> - <<set $birthDamage += 5>> -<<elseif $slaves[$i].physicalAge < 9>> - <<set $birthDamage += 3>> -<<elseif $slaves[$i].physicalAge < 13>> - <<set $birthDamage += 1>> -<</if>> -<<if $slaves[$i].birthsTotal == 0>> - <<set $birthDamage += 2>> -<</if>> -<<if $slaves[$i].mpreg != 1>> -<<if $slaves[$i].vaginaLube == 0>> - <<set $birthDamage += 1>> -<</if>> -<</if>> -<<if $slaves[$i].tired > 0>> - <<set $birthDamage += 2>> -<</if>> -<<if $slaves[$i].preg >= 59>> /* better get her a c-sec*/ - <<if $slaves[$i].physicalAge < 6>> - <<set $birthDamage += 50>> - <<elseif $slaves[$i].physicalAge < 9>> - <<set $birthDamage += 30>> - <<elseif $slaves[$i].physicalAge < 13>> - <<set $birthDamage += 20>> - <</if>> - <<if $slaves[$i].hips < 0>> - <<set $birthDamage += (20-$slaves[$i].hips)>> - <</if>> -<<elseif $slaves[$i].preg > 50>> - <<if $slaves[$i].physicalAge < 6>> - <<set $birthDamage += 10>> - <<elseif $slaves[$i].physicalAge < 9>> - <<set $birthDamage += 6>> - <<else>> - <<set $birthDamage += 2>> - <</if>> - <<if $slaves[$i].hips < 0>> - <<set $birthDamage += (2-$slaves[$i].hips)>> - <</if>> -<</if>> -<<if $slaves[$i].mpreg == 1>> - <<if $slaves[$i].anus >= 2>> - <<set $birthDamage -= 2>> - <</if>> -<<else>> - <<if $slaves[$i].vagina >= 2>> - <<set $birthDamage -= 2>> - <</if>> -<</if>> -<<if $slaves[$i].hips > 0>> - <<set $birthDamage -= $slaves[$i].hips>> -<</if>> -<<if $slaves[$i].intelligenceImplant > 0>> - <<set $birthDamage -= 2>> -<</if>> -<<if $slaves[$i].birthsTotal > 0>> - <<set $birthDamage -= 3>> -<</if>> -<<if $slaves[$i].mpreg != 1>> -<<if $slaves[$i].vaginaLube > 0>> - <<set $birthDamage -= $slaves[$i].vaginaLube>> -<</if>> -<</if>> -<<if $slaves[$i].curatives > 0>> - <<set $birthDamage -= 3>> -<</if>> -<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>> - <<set $birthDamage = 0>> -<</if>> - -/* early birth calcs */ -<<if $slaves[$i].induce == 1>> - <<set $suddenBirth += 20>> -<</if>> -<<if !canWalk($slaves[$i])>> - <<set $suddenBirth += 10>> -<</if>> -<<if $slaves[$i].fetish == "mindbroken">> - <<set $suddenBirth += 18>> -<</if>> -<<if $slaves[$i].fetish == "humiliation">> - <<set $suddenBirth += 1 + $slaves[$i].fetishStrength/25>> -<</if>> -<<if $slaves[$i].weight > 190>> - <<set $suddenBirth += 10>> -<<elseif $slaves[$i].weight > 160>> - <<set $suddenBirth += 4>> -<<elseif $slaves[$i].weight > 130>> - <<set $suddenBirth += 2>> -<<elseif $slaves[$i].weight > 95>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].muscles < -95>> - <<set $suddenBirth += 20>> -<<elseif $slaves[$i].muscles < -30>> - <<set $suddenBirth += 4>> -<<elseif $slaves[$i].muscles < -5>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].health < 0>> - <<set $suddenBirth += 2>> -<</if>> -<<if $slaves[$i].heels == 1>> - <<set $suddenBirth += 3>> -<</if>> -<<if $slaves[$i].boobs > 40000>> - <<set $suddenBirth += 3>> -<<elseif $slaves[$i].boobs > 20000>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].butt > 6>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].dick >= 6>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].balls >= 6>> - <<set $suddenBirth += 1>> -<</if>> -<<if $slaves[$i].shoes == "extreme heels">> - <<set $suddenBirth += 2>> -<</if>> -<<if $slaves[$i].mpreg != 1>> -<<if $slaves[$i].vagina > 2>> - <<set $suddenBirth += 2>> -<</if>> -<<if $slaves[$i].vaginalAccessory != "none">> - <<set $suddenBirth -= 20>> -<</if>> -<</if>> -<<set $suddenBirth -= ($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)>> -/* end calcs */ - -<<if $slaves[$i].fuckdoll == 0>> - -<<if $slaves[$i].broodmother == 0 || $slaves[$i].broodmotherCountDown == 1>> - -<<if $slaves[$i].assignment != "work in the dairy">> - -<<if $universalRulesCSec == 1>> - -<<Birth>> - -<<else>> - -<<if $slaves[$i].amp != 1>> /* amps are always carried in time */ - -<<if (random(1,20) > $suddenBirth) || ($universalRulesBirthing == 1)>> /* did she make it to her birthing area? */ - Feeling childbirth approaching, <<if !canWalk($slaves[$i])>>$slaves[$i].slaveName is helped<<else>>$slaves[$i].slaveName makes $possessive way<</if>> to $possessive prepared birthing area. - -<<Birth>> - -<<else>> /* did not make it to birthing area */ - -<<if (($birthDamage > 15 && random(1,100) > 50) || ($birthDamage > 20)) && ($slaves[$i].assignment != "be the Nurse" || $slaves[$i].assignment != "get treatment in the clinic")>> - -<<DeadlyBirth>> - -<<else>> - -<<SuddenBirth>> - -<</if>> /* closes deadly birth */ - -<</if>> /* closes reg birth */ - -<<else>> /* made it to birthing area */ - With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area. - -<<AmpBirth>> - -<</if>> /* close amp birth */ - -<</if>> /* close always c-sec */ - -<<else>> -<br> - <<if $dairyRestraintsSetting > 1 and $slaves[$i].career == "a bioreactor">> - As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> All these events are meaningless to $object, as $possessive consciousness has long since been snuffed out. - <<elseif $dairyRestraintsSetting > 1>> - <<if $slaves[$i].fetish == "mindbroken">> - As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> $pronounCap doesn't care about any of this, as the only thoughts left in $possessive empty mind revolve around the sensations in $possessive crotch and breasts. - <<else>> - As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. $pronounCap struggles in $possessive bindings, attempting to break free in order to birth $possessive coming child, but $possessive efforts are pointless. $pronounCap is forced to give birth, restrained, into the waiting holder. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive vagina.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more. $slaves[$i].slaveName moans, partially with pleasure and partially with defeat, under the growing pressure within $possessive body. Tears stream down $possessive face as <<if $slaves[$i].births > 0>>$pronoun is forcibly impregnated once more<<else>>$pronoun attempts to shift in $possessive restraints to peek around $possessive swollen breasts, but $pronoun is too well secured. $pronounCap'll realize what is happening when $possessive belly grows large enough to brush against $possessive breasts as the milker sucks from them<<if $slaves[$i].dick > 0>> or $possessive dick begins rubbing its underside<</if>><</if>>.<</if>> $possessiveCap mind slips slightly more as $pronoun focuses on $possessive fate as nothing more than animal, destined to be milked and bare offspring until $possessive body gives out. - <<set $slaves[$i].trust -= 10>> - <<set $slaves[$i].devotion -= 10>> - <</if>> - <<else>> - <<if $slaves[$i].fetish == "mindbroken">> - While getting milked, $slaves[$i].slaveName's water breaks. $pronounCap shows little interest and continues kneading $possessive breasts. Instinctively $pronoun begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap pays no heed to $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall, instead focusing entirely on draining $possessive breasts. - <<else>> - While getting milked, $slaves[$i].slaveName's water breaks,<<if $dairyPregSetting > 0>> this is a regular occurrence to $object now so<<else>> but<</if>> $pronoun continues enjoying $possessive milking. $pronounCap begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap catches <<if canSee($slaves[$i])>>a glimpse<<else>>the sound<</if>> of $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall before returning $possessive focus to draining $possessive breasts. - <</if>> - <</if>> -<</if>> /* close cow birth */ - -<<else>> - - <<if $slaves[$i].amp == 1>> - With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area. - <<AmpBirth>> - <<elseif $slaves[$i].broodmother == 1>> - <<BroodmotherBirth>> - <<else>> - <<HyperBroodmotherBirth>> - <</if>> - -<</if>> /* close broodmother birth */ - -<<else>> /*fuckdoll birth */ - <<if $universalRulesCSec == 1>> - <<set $csec = 1>> - $slaves[$i].slaveName's suit's systems alert that it is ready to give birth; it is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up. - <<elseif $universalRulesBirthing == 1>> - $slaves[$i].slaveName's suit's systems alert that it is ready to give birth. It is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up. - <<elseif $birthDamage > 10>> - <<set $csec = 1>> - $slaves[$i].slaveName's suit's systems alert that it is ready to give birth. Since it fails to qualify as a birthing model, it is quickly taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and to be cleaned up. - <<else>> - $slaves[$i].slaveName's suit's systems alert you that it is ready to give birth. You carefully pose it as it labors on bringing its child<<if $slaves[$i].pregType > 1>>ren<</if>> into the world and sit back to enjoy yourself as its <<if $slaves[$i].pregType > 1>>first<</if>> baby starts to crown. Once both it and yourself are finished, you send its offspring off and it to the autosurgery for cleaning. - <</if>> - It barely comprehends what has happened, nor will it realize when another child is conceived in it. -<</if>> /* close fuckdoll birth */ - -<<if $slaves[$i].assignment == "work in the dairy" && $dairyPregSetting > 0>> - -<br> -<br> -As a human cow, $pronoun @@.orange;gave birth@@<<if $slaves[$i].broodmother > 1>> but $possessive overfilled womb barely lost any size. $possessiveCap body gave life <<elseif $slaves[$i].broodmother > 0>> but $possessive stomach barely shrank at all. $possessiveCap body gave life <</if>> -<<if $slaves[$i].broodmother == 2>> - to nearly a dozen calves throughout the week. -<<elseif $slaves[$i].broodmother == 1>> - to a single calf this week. -<<elseif $slaves[$i].pregType <= 1>> - to a single calf. -<<elseif $slaves[$i].pregType >= 40>> - to a massive brood of $slaves[$i].pregType calves. After half a day of labor and birth, $possessive belly sags softly. -<<elseif $slaves[$i].pregType >= 20>> - to a brood of $slaves[$i].pregType calves. After several hours of labor and birth, $possessive belly sags softly. -<<elseif $slaves[$i].pregType >= 10>> - to a squirming pile of $slaves[$i].pregType calves. -<<elseif $slaves[$i].pregType == 9>> - to calf nonuplets. -<<elseif $slaves[$i].pregType == 8>> - to calf octuplets. -<<elseif $slaves[$i].pregType == 7>> - to calf septuplets. -<<elseif $slaves[$i].pregType == 6>> - to calf sextuplets. -<<elseif $slaves[$i].pregType == 5>> - to calf quintuplets. -<<elseif $slaves[$i].pregType == 4>> - to calf quadruplets. -<<elseif $slaves[$i].pregType == 3>> - to calf triplets. -<<else>> - to calf twins. -<</if>> - -<<if $slaves[$i].broodmother == 2>> - <<set $slaves[$i].births += 12>> - <<set $slaves[$i].birthsTotal += 12>> - <<set $birthsTotal += 12>> - <<set $slaves[$i].preg = 37>> - <<if $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += 12>> - <</if>> -<<elseif $slaves[$i].broodmother == 1>> - <<set $slaves[$i].births += 1>> - <<set $slaves[$i].birthsTotal += 1>> - <<set $birthsTotal += 1>> - <<set $slaves[$i].preg = 37>> - <<if $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += 1>> - <</if>> - <<if $slaves[$i].broodmotherCountDown > 0>> - <<set $slaves[$i].broodmotherCountDown-->> - <<if $slaves[$i].broodmotherCountDown == 0>> - $pronounCap also passed the implant making $object a broodmother alongside the afterbirth. - <<set $slaves[$i].preg = 0>> - <<set $slaves[$i].pregType = 0>> - <<set $slaves[$i].pregSource = 0>> - <<set $slaves[$i].pregKnown = 0>> - <<set $slaves[$i].pregWeek = -4>> - <<set $slaves[$i].broodmother = 0>> - <</if>> - <</if>> - <<SetBellySize $slaves[$i]>> -<<else>> - <<set $slaves[$i].preg = 0>> - <<set $slaves[$i].births += $slaves[$i].pregType>> - <<set $slaves[$i].birthsTotal += $slaves[$i].pregType>> - <<set $birthsTotal += $slaves[$i].pregType>> - <<if $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += $slaves[$i].pregType>> - <</if>> - <<set $slaves[$i].pregType = 0>> - <<set $slaves[$i].pregSource = 0>> - <<set $slaves[$i].pregKnown = 0>> - <<set $slaves[$i].pregWeek = -4>> - <<SetBellySize $slaves[$i]>> -<</if>> - -<br><br> -<<if $slaves[$i].mpreg == 1>> -Childbirth has @@.lime;stretched out $possessive anus.@@ -<<if ($dairyPregSetting > 1) && ($slaves[$i].anus < 4)>> - <<set $slaves[$i].anus += 1>> -<<elseif ($slaves[$i].anus < 3)>> - <<set $slaves[$i].anus += 1>> -<</if>> -<<else>> -Childbirth has @@.lime;stretched out $possessive vagina.@@ -<<if ($dairyPregSetting > 1) && ($slaves[$i].vagina < 4)>> - <<set $slaves[$i].vagina += 1>> -<<elseif ($slaves[$i].vagina < 3)>> - <<set $slaves[$i].vagina += 1>> -<</if>> -<</if>> - -<<if ($slaves[$i].devotion) < 20 && $slaves[$i].fetish != "mindbroken">> - $pronounCap @@.mediumorchid;despises@@ you for using $object as a breeder. - <<set $slaves[$i].devotion -= 10>> -<</if>> - -<<else>> - -<<if $slaveDead == 0>> - -<<if $slaves[$i].reservedChildren > 0>> /*incubator adding*/ - -<<seBirthToIncubator>> - -<<else>> - -<<if $csec == 1>> - -<<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>> -<<if def _getFather>> - <<set $daddy = _getFather.slaveName>> -<</if>> - -<br> -<br> -$pronounCap was given @@.orange;a cesarean section@@ due to health concerns. From $possessive womb, -<<if $slaves[$i].pregType <= 1>> - a single baby, -<<elseif $slaves[$i].pregType >= 40>> - a massive brood of $slaves[$i].pregType babies, -<<elseif $slaves[$i].pregType >= 20>> - a brood of $slaves[$i].pregType babies, -<<elseif $slaves[$i].pregType >= 10>> - a squirming pile of $slaves[$i].pregType babies, -<<elseif $slaves[$i].pregType == 9>> - nonuplets, -<<elseif $slaves[$i].pregType == 8>> - octuplets, -<<elseif $slaves[$i].pregType == 7>> - septuplets, -<<elseif $slaves[$i].pregType == 6>> - sextuplets, -<<elseif $slaves[$i].pregType == 5>> - quintuplets, -<<elseif $slaves[$i].pregType == 4>> - quadruplets, -<<elseif $slaves[$i].pregType == 3>> - triplets, -<<else>> - twins, -<</if>> -created by -<<if $slaves[$i].pregSource == -1>> - your magnificent dick, -<<elseif $slaves[$i].pregSource == -2>> - your arcology's eager citizens, -<<elseif $slaves[$i].pregSource == -3>> - the Societal Elite, -<<elseif $slaves[$i].pregSource == 0>> - an unknown father, -<<elseif $slaves[$i].ID == $daddy.ID>> - $possessive own curiosity over if $pronoun could fuck <<print $possessive>>self, -<<else>> - $daddy's virile cock and balls, -<</if>> -entered the world. - -<<if $arcologies[0].FSRestart != "unset">> -<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> -<br><br> - The Societal Elite @@.green;are pleased@@ at the new additions to their class. - <<set $failedElite -= 2*$slaves[$i].pregType>> -<<else>> -<br> -<br> - The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty society under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world. - <<set $failedElite += 5*$slaves[$i].pregType>> - <<set $rep -= 10*$slaves[$i].pregType>> -<</if>> -<</if>> - -<br> -<br> -Since $possessive <<if $slaves[$i].mpreg == 1>>ass<<else>>vagina<</if>> was spared from childbirth, @@.lime;it retained its tightness.@@ - -<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>> - <br> - <<if $slaves[$i].pregSource == -1>> - <<if $slaves[$i].devotion < 20 && ($week-$slaves[$i].weekAcquired >= $slaves[$i].weekAcquired)>> + <<if $slaves[$i].labor == 1>> + <<set $dispositionId = _.uniqueId('babyDisposition-')>> + Birth report: @@.coral;$slaves[$i].slaveName <<if $slaves[$i].slaveSurname != 0>>$slaves[$i].slaveSurname<</if>>@@ <br> - $pronounCap @@.mediumorchid;despises@@ you for using $possessive body to bear your children. - <<set $slaves[$i].devotion -= 10>> - <<elseif $slaves[$i].devotion > 50>> - <br> - <<print $pronounCap>>'s @@.hotpink;so proud@@ to have successfully carried children for you. - <<set $slaves[$i].devotion += 3>> - <</if>> - <</if>> - <br> - <<span _dispositionId>> - <<if $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> - <<set _lostBabies = 1>> - As soon as $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> were born, the Societal Elite collected them to be raised into upstanding members of the new society. - <<elseif $Cash4Babies == 1>> - <<set _lostBabies = 1>> - <<set _babyCost = random(-12,12)>> - <<if ($slaves[$i].relationship == -3)>> - You make sure $possessive children are cared for, since $pronoun is your wife. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@ - <<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>> - <<set _lostBabies = 0>> - <<elseif ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>> - $possessiveCap children are guaranteed to be treated well despite the laws you've passed since $pronoun is a member of your harem. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@ - <<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>> - <<set _lostBabies = 0>> - <<else>> - <<if $slaves[$i].broodmother == 2>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@ - <<set $cash += 12*(50+_babyCost)>> - <<elseif $slaves[$i].broodmother == 1>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@ - <<set $cash += (50+_babyCost)>> - <<else>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@ - <<set $cash += $slaves[$i].pregType*(50+_babyCost)>> - <</if>> - <</if>> - <</if>> - <<if _lostBabies != 1>> - <<set $slaveOrphanageTotal += $slaves[$i].pregType>> - Unless you provide otherwise, the child<<if $slaves[$i].pregType > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - worships you so completely that $pronoun will not resent this. - <<elseif $slaves[$i].devotion > 50>> - is devoted to you, but $pronoun will @@.mediumorchid;struggle to accept this.@@ - <<set $slaves[$i].devotion -= 2>> - <<elseif $slaves[$i].devotion > 20>> - has accepted being a sex slave, but $pronoun will @@.mediumorchid;resent this intensely.@@ - <<set $slaves[$i].devotion -= 3>> - <<else>> - will of course @@.mediumorchid;hate you for this.@@ - <<set $slaves[$i].devotion -= 4>> - <</if>> - <<capture $i, _dispositionId, _count>> - <<if $arcologies[0].FSRepopulationFocus > 40>> - <<link 'Send them to a breeder school'>> - <<replace `"#" + _dispositionId`>> - The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. $pronounCap can't wait to see $possessive child<<if _count > 1>>ren<</if>> proudly furthering your cause. - <<set $slaves[$i].devotion += 4>> - <<elseif $slaves[$i].devotion > 50>> - heard about these and will be @@.hotpink;happy that $possessive child<<if _count > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that. - <<set $slaves[$i].devotion += 4>> - <<elseif $slaves[$i].devotion > 20>> - will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will is broken enough to hope that $possessive offspring will have a better life, or at least an enjoyable one. - <<else>> - will of course @@.mediumorchid;hate you for this.@@ The mere thought of $possessive $fertilityAge year old daughter<<if _count > 1>>s<</if>> swollen with life, and proud of it, fills $object with @@.gold;disdain.@@ - <<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>> - <</if>> - <<set $breederOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> - <</replace>> - <</link>> - //Will cost a one time <<print cashFormat(50)>>// | - <</if>> - <<link 'Send them to a citizen school'>> - <<replace `"#" + _dispositionId`>> - The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. - <<elseif $slaves[$i].devotion > 50>> - knows about these and will be @@.hotpink;overjoyed.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that. - <<elseif $slaves[$i].devotion > 20>> - will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $possessive offspring will have a better life. - <<else>> - will naturally retain some resentment over being separated from $possessive child<<if _count > 1>>ren<</if>>, but this should be balanced by hope that $possessive offspring will have a better life. - <</if>> - <<set $slaves[$i].devotion += 4, $citizenOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> - <</replace>> - <</link>> - //Will cost <<print cashFormat(100)>> weekly// - | <<link 'Have them raised privately'>> - <<replace `"#" + _dispositionId`>> - The child<<if _count > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - will @@.hotpink;worship you utterly@@ for this. - <<elseif $slaves[$i].devotion > 50>> - understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@ - <<elseif $slaves[$i].devotion > 20>> - will miss $possessive child<<if _count > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $pronoun>>'ll understand this is the best possible outcome for a slave mother. - <<else>> - will resent being separated from $possessive child<<if _count > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here. - <</if>> - The child<<if _count > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. - <<set $slaves[$i].devotion += 6, $privateOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> - <</replace>> - <</link>> - //Will cost <<print cashFormat(500)>> weekly// - <</capture>> - <</if>> - <</span>> -<<elseif $Cash4Babies == 1>> - <<set _babyCost = random(-12,12)>> - <<if $slaves[$i].broodmother == 2>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@ - <<set $cash += 12*(50+_babyCost)>> - <<elseif $slaves[$i].broodmother == 1>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@ - <<set $cash += (50+_babyCost)>> - <<else>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@ - <<set $cash += $slaves[$i].pregType*(50+_babyCost)>> - <</if>> -<</if>> + <<seBirthPreChek>> -<<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>> -<<set $slaves[$i].births += $slaves[$i].pregType>> -<<set $slaves[$i].birthsTotal += $slaves[$i].pregType>> -<<set $birthsTotal += $slaves[$i].pregType>> -<<if $slaves[$i].pregSource > 0>> - <<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>> - <<if _babyDaddy != -1>> - <<set $slaves[_babyDaddy].slavesFathered += $slaves[$i].pregType>> - <</if>> -<<elseif $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += $slaves[$i].pregType>> -<</if>> -<<set $slaves[$i].pregType = 0>> -<<set $slaves[$i].pregSource = 0>> -<<set $slaves[$i].pregKnown = 0>> -<<set $slaves[$i].pregWeek = -4>> -<<SetBellySize $slaves[$i]>> -<<set $csec = 0>> + <<seBirthPreScene>> -<<else>> /* normal birth */ + <<seBirthCalc>> -<<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>> -<<if def _getFather>> - <<set $daddy = _getFather.slaveName>> -<</if>> - -<<if $humiliation == 1>> - <br><br> - Giving birth in such a manner was completely humiliating, - <<if $slaves[$i].fetish == "humiliation">> - and a complete turn on to $object. $possessiveCap humiliation fetish @@.lightcoral;strengthens@@ as $pronoun eagerly fantasizes about giving birth in public again. - <<set $slaves[$i].fetishStrength += 4>> - <<elseif $slaves[$i].fetish == "none" || $slaves[$i].fetishStrength <= 60>> - and a curious experience to $object. <<if random(1,5) == 1>>@@.lightcoral;$pronounCap has developed a humiliation fetish.@@<<set $slaves[$i].fetish = "humiliation">><<else>>$pronounCap hopes to never repeat it.<</if>> - <<elseif $slaves[$i].devotion <= 20>> - and completely devastating to $possessive image of herself. The experience @@.hotpink;habituates $object@@ to cruelties of slavery. - <<set $slaves[$i].devotion += 5>> - <<else>> - and $pronoun hopes to never undergo it again. - <</if>> -<</if>> - -<br> -<br> -$pronounCap @@.orange;gave birth@@<<if $slaves[$i].broodmother > 1>>, but $possessive overfilled womb barely lost any size. $possessiveCap body gave life <<elseif $slaves[$i].broodmother > 0>>, but $possessive stomach barely shrank at all. $possessiveCap body gave life <</if>> -<<if $slaves[$i].broodmother == 2>> - to nearly a dozen babies throughout the week. -<<elseif $slaves[$i].broodmother == 1>> - to a single baby this week, -<<elseif $slaves[$i].pregType >= 40>> - to a massive brood of $slaves[$i].pregType babies, -<<elseif $slaves[$i].pregType >= 20>> - to a brood of $slaves[$i].pregType babies, -<<elseif $slaves[$i].pregType >= 10>> - to a squirming pile of $slaves[$i].pregType babies, -<<elseif $slaves[$i].pregType == 9>> - to nonuplets, -<<elseif $slaves[$i].pregType == 8>> - to octuplets, -<<elseif $slaves[$i].pregType == 7>> - to septuplets, -<<elseif $slaves[$i].pregType == 6>> - to sextuplets, -<<elseif $slaves[$i].pregType == 5>> - to quintuplets, -<<elseif $slaves[$i].pregType == 4>> - to quadruplets, -<<elseif $slaves[$i].pregType == 3>> - to triplets, -<<else>> - to twins, -<</if>> -created by -<<if $slaves[$i].pregSource == -1>> - your magnificent dick. -<<elseif $slaves[$i].pregSource == -2>> - your arcology's eager citizens. -<<elseif $slaves[$i].pregSource == -3>> - the Societal Elite. -<<elseif $slaves[$i].pregSource == 0>> - an unknown father. -<<elseif $slaves[$i].ID == $daddy.ID>> - $possessive own curiosity over if $pronoun could fuck <<print $possessive>>self. -<<else>> - $daddy's virile cock and balls. -<</if>> -<<if $slaves[$i].pregType >= 80>> - After an entire day of labor and birth, $possessive belly sags heavily. -<<elseif $slaves[$i].pregType >= 40>> - After half a day of labor and birth, $possessive belly sags emptily. -<<elseif $slaves[$i].pregType >= 20>> - After several hours of labor and birth, $possessive belly sags softly. -<</if>> - -<<if $arcologies[0].FSRestart != "unset">> -<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> -<br><br> - The Societal Elite @@.green;are pleased@@ at the new additions to their class. - <<set $failedElite -= 2*$slaves[$i].pregType>> -<<else>> -<br> -<br> - The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to be born under your watch. Society @@.red;frowns@@ on the birth of more subhumans into the world. - <<set $failedElite += 5*$slaves[$i].pregType>> - <<set $rep -= 10*$slaves[$i].pregType>> -<</if>> -<</if>> - -<<if ($slaves[$i].vagina == 0) || ($slaves[$i].mpreg == 1 && $slaves[$i].anus == 0)>> -<<if $slaves[$i].fetish != "mindbroken">> -<br> -<br> -<<if ($slaves[$i].fetish == "masochist")>> - Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience.<<if $slaves[$i].fetishKnown == 0>>$pronounCap seems to have orgasmed several times during the experience, $pronoun appears to @@.lightcoral;really like pain@@.<<else>> However, due to $possessive masochistic streak, $pronoun @@.hotpink;greatly enjoyed@@ said experience<</if>>. - <<set $slaves[$i].health -= 10>> - <<set $slaves[$i].devotion += 2>> - <<set $slaves[$i].fetishKnown = 1>> -<<else>> - Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience. $pronounCap @@.mediumorchid;despises@@ you for taking $possessive virginity in such a @@.gold;horrifying@@ way. - <<set $slaves[$i].health -= 40>> - <<set $slaves[$i].devotion -= 25.0>> - <<set $slaves[$i].trust -= 25.0>> -<</if>> -<</if>> -<</if>> - - -<br> -<<if $slaves[$i].birthsTotal == 0>> -<br> - $possessiveCap inexperience @@.red;complicated $possessive first birth@@. -<</if>> -<<if $slaves[$i].mpreg == 1>> -<<if $slaves[$i].anus < 2>> -<br> - $possessiveCap tight ass @@.red;hindered $possessive baby's birth@@. -<</if>> -<<else>> -<<if $slaves[$i].vagina < 2>> -<br> - $possessiveCap tight vagina @@.red;hindered $possessive baby's birth@@. -<</if>> -<<if $slaves[$i].vaginaLube == 0>> -<br> - $possessiveCap dry vagina made pushing $possessive child out @@.red;painful@@. -<</if>> -<</if>> -<<if $slaves[$i].hips < 0>> -<br> - $possessiveCap narrow hips made birth @@.red;troublesome@@. -<</if>> -<<if $slaves[$i].weight < -95>> -<br> - $possessiveCap very thin body @@.red;was nearly incapable of birthing $possessive child@@. -<<elseif $slaves[$i].weight <= -30>> -<br> - $possessiveCap thin body was @@.red;ill-suited $possessive childbirth@@. -<</if>> -<<if $slaves[$i].health < -20>> -<br> - $possessiveCap poor health made laboring @@.red;exhausting@@. -<</if>> -<<if $slaves[$i].physicalAge < 6>> -<br> - $possessiveCap very young body was @@.red;not designed to be able pass a baby@@. -<<elseif $slaves[$i].physicalAge < 9>> -<br> - $possessiveCap young body had @@.red;a lot of trouble@@ birthing $possessive baby. -<<elseif $slaves[$i].physicalAge < 13>> -<br> - $possessiveCap young body had @@.red;trouble birthing@@ $possessive baby. -<</if>> -<<if $slaves[$i].tired > 0>> -<br> - $pronounCap was so tired, $pronoun @@.red;lacked the energy to effectively push@@. -<</if>> -<<if $slaves[$i].muscles < -95>> -<br> - $pronounCap tried and tried but $possessive frail body @@.red;could not push $possessive child out@@. -<<elseif $slaves[$i].muscles < -30>> -<br> - $possessiveCap very weak body @@.red;barely managed to push@@ out $possessive child. -<<elseif $slaves[$i].muscles < -5>> -<br> - $possessiveCap weak body @@.red;struggled to push@@ out $possessive child. -<</if>> -<<if $slaves[$i].preg > 50>> -<br> - $possessiveCap's child had extra time to grow @@.red;greatly complicating childbirth@@. -<</if>> -<<if (($slaves[$i].vagina >= 2 || $slaves[$i].vaginaLube > 0) && $slaves[$i].mpreg == 1) || $slaves[$i].births > 0 || $slaves[$i].hips > 0 || (setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95) || $slaves[$i].intelligenceImplant > 0>> -<br>However: -<<if $slaves[$i].mpreg == 1>> -<<if $slaves[$i].anus >= 2>> -<br> - $possessiveCap @@.green;loose ass@@ made birthing $possessive child easier. -<</if>> -<<else>> -<<if $slaves[$i].vagina >= 2>> -<br> - $possessiveCap @@.green;loose vagina@@ made birthing $possessive child easier. -<</if>> -<<if $slaves[$i].vaginaLube > 0>> -<br> - $possessiveCap @@.green;moist vagina@@ hastened $possessive child's birth. -<</if>> -<</if>> -<<if $slaves[$i].birthsTotal > 0>> -<br> - $pronounCap has @@.green;given birth before@@, so $pronoun knows just what to do. -<</if>> -<<if $slaves[$i].hips > 0>> -<br> - $possessiveCap @@.green;wide hips@@ greatly aided childbirth. -<</if>> -<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>> -<br> - Thanks to $possessive @@.green;previous career@@, childbirth went smoothly. -<</if>> -<<if $slaves[$i].intelligenceImplant > 0>> -<br> - $pronounCap was @@.green;taught how to handle birth@@ in class. -<</if>> -<</if>> + <<seBirthMainScene>> -<br> -<br> -<<if $slaves[$i].assignment != "work in the dairy" && $slaves[$i].broodmother == 0 && $csec == 0>> -All in all, -<<if $birthDamage > 15>> - childbirth was @@.red;horrifically difficult for $object and nearly claimed $possessive life@@. -<<elseif $birthDamage > 10>> - childbirth was extremely difficult for $object and @@.red;greatly damaged $possessive health@@. -<<elseif $birthDamage > 5>> - childbirth was difficult for $object and @@.red;damaged $possessive health@@. -<<elseif $birthDamage > 0>> - childbirth was painful for $object, though not abnormally so, and @@.red;damaged $possessive health@@. -<<else>> - childbirth was @@.green;no problem@@ for $object. -<</if>> -<<if $birthDamage > 0>> -<<set $slaves[$i].health -= Math.round(($birthDamage/2)*10)>> -<</if>> -<</if>> + <<seBirthBabies>> -<br> -<br> -<<if $slaves[$i].mpreg == 1>> -<<if ($slaves[$i].anus < 0)>> /* you somehow got a pregnant slave with no vagina catch */ -Childbirth has @@.lime;has torn $object a gaping anus.@@ -<<elseif ($slaves[$i].anus == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */ -Childbirth has @@.lime;ruined $possessive virgin ass.@@ -<<elseif ($slaves[$i].anus == 1)>> -Childbirth has @@.lime;greatly stretched out $possessive ass.@@ -<<elseif ($slaves[$i].anus == 2)>> -Childbirth has @@.lime;stretched out $possessive ass.@@ -<<elseif ($slaves[$i].anus == 3)>> -$possessiveCap ass was loose enough to not be stretched by childbirth. -<<elseif ($slaves[$i].anus < 10)>> -Childbirth stood no chance of stretching $possessive gaping ass. -<<elseif ($slaves[$i].anus == 10)>> -$possessiveCap child could barely stretch $possessive cavernous ass. -<<else>> -Childbirth has @@.lime;stretched out $possessive ass.@@ -<</if>> -<<else>> -<<if ($slaves[$i].vagina < 0)>> /* you somehow got a pregnant slave with no vagina catch */ -Childbirth has @@.lime;has torn $object a gaping vagina.@@ -<<elseif ($slaves[$i].vagina == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */ -Childbirth has @@.lime;ruined $possessive virgin vagina.@@ -<<elseif ($slaves[$i].vagina == 1)>> -Childbirth has @@.lime;greatly stretched out $possessive vagina.@@ -<<elseif ($slaves[$i].vagina == 2)>> -Childbirth has @@.lime;stretched out $possessive vagina.@@ -<<elseif ($slaves[$i].vagina == 3)>> -$possessiveCap vagina was loose enough to not be stretched by childbirth. -<<elseif ($slaves[$i].vagina < 6)>> -Childbirth stood no chance of stretching $possessive gaping vagina. -<<elseif ($slaves[$i].vagina == 10)>> -$possessiveCap child could barely stretch $possessive cavernous vagina. -<<else>> -Childbirth has @@.lime;stretched out $possessive vagina.@@ -<</if>> -<</if>> + <<seBirthPostpartum>> -<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>> - <br> - <<if $slaves[$i].pregSource == -1>> - <<if $slaves[$i].devotion < 20 && ($week-$slaves[$i].weekAcquired >= $slaves[$i].weekAcquired)>> - <br> - $pronounCap @@.mediumorchid;despises@@ you for using $possessive body to bear your children. - <<set $slaves[$i].devotion -= 10>> - <<elseif $slaves[$i].devotion > 50>> - <br> - <<print $pronounCap>>'s @@.hotpink;so proud@@ to have successfully carried children for you. - <<set $slaves[$i].devotion += 3>> - <</if>> - <</if>> - <br> - <<span _dispositionId>> - <<if $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> - <<set _lostBabies = 1>> - As soon as $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> were born, the Societal Elite collected them to be raised into upstanding members of the new society. - <<elseif $Cash4Babies == 1>> - <<set _lostBabies = 1>> - <<set _babyCost = random(-12,12)>> - <<if ($slaves[$i].relationship == -3)>> - You make sure $possessive children are cared for, since $pronoun is your wife. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@ - <<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>> - <<set _lostBabies = 0>> - <<elseif ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>> - $possessiveCap children are guaranteed to be treated well despite the laws you've passed since $pronoun is a member of your harem. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@ - <<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>> - <<set _lostBabies = 0>> - <<else>> - <<if $slaves[$i].broodmother == 2>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@ - <<set $cash += 12*(50+_babyCost)>> - <<elseif $slaves[$i].broodmother == 1>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@ - <<set $cash += (50+_babyCost)>> - <<else>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@ - <<set $cash += $slaves[$i].pregType*(50+_babyCost)>> - <</if>> - <</if>> - <</if>> - <<if _lostBabies != 1>> - <<set $slaveOrphanageTotal += $slaves[$i].pregType>> - Unless you provide otherwise, the child<<if $slaves[$i].pregType > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - worships you so completely that $pronoun will not resent this. - <<elseif $slaves[$i].devotion > 50>> - is devoted to you, but $pronoun will @@.mediumorchid;struggle to accept this.@@ - <<set $slaves[$i].devotion -= 2>> - <<elseif $slaves[$i].devotion > 20>> - has accepted being a sex slave, but $pronoun will @@.mediumorchid;resent this intensely.@@ - <<set $slaves[$i].devotion -= 3>> - <<else>> - will of course @@.mediumorchid;hate you for this.@@ - <<set $slaves[$i].devotion -= 4>> - <</if>> - <<capture $i, _dispositionId, _count>> - <<if $arcologies[0].FSRepopulationFocus > 40>> - <<link 'Send them to a breeder school'>> - <<replace `"#" + _dispositionId`>> - The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. $pronounCap can't wait to see $possessive child<<if _count > 1>>ren<</if>> proudly furthering your cause. - <<set $slaves[$i].devotion += 4>> - <<elseif $slaves[$i].devotion > 50>> - heard about these and will be @@.hotpink;happy that $possessive child<<if _count > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that. - <<set $slaves[$i].devotion += 4>> - <<elseif $slaves[$i].devotion > 20>> - will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will is broken enough to hope that $possessive offspring will have a better life, or at least an enjoyable one. - <<else>> - will of course @@.mediumorchid;hate you for this.@@ The mere thought of $possessive $fertilityAge year old daughter<<if _count > 1>>s<</if>> swollen with life, and proud of it, fills $object with @@.gold;disdain.@@ - <<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>> - <</if>> - <<set $breederOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> - <</replace>> - <</link>> - //Will cost a one time <<print cashFormat(50)>>// | - <</if>> - <<link 'Send them to a citizen school'>> - <<replace `"#" + _dispositionId`>> - The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. - <<elseif $slaves[$i].devotion > 50>> - knows about these and will be @@.hotpink;overjoyed.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that. - <<elseif $slaves[$i].devotion > 20>> - will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $possessive offspring will have a better life. - <<else>> - will naturally retain some resentment over being separated from $possessive child<<if _count > 1>>ren<</if>>, but this should be balanced by hope that $possessive offspring will have a better life. - <</if>> - <<set $slaves[$i].devotion += 4, $citizenOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> - <</replace>> - <</link>> - //Will cost <<print cashFormat(100)>> weekly// - | <<link 'Have them raised privately'>> - <<replace `"#" + _dispositionId`>> - The child<<if _count > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $slaves[$i].slaveName - <<if $slaves[$i].devotion > 95>> - will @@.hotpink;worship you utterly@@ for this. - <<elseif $slaves[$i].devotion > 50>> - understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@ - <<elseif $slaves[$i].devotion > 20>> - will miss $possessive child<<if _count > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $pronoun>>'ll understand this is the best possible outcome for a slave mother. - <<else>> - will resent being separated from $possessive child<<if _count > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here. - <</if>> - The child<<if _count > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition. - <<set $slaves[$i].devotion += 6, $privateOrphanageTotal += _count, $slaveOrphanageTotal -= _count>> - <</replace>> - <</link>> - //Will cost <<print cashFormat(500)>> weekly// - <</capture>> - <</if>> - <</span>> -<<elseif $Cash4Babies == 1>> - <<set _babyCost = random(-12,12)>> - <<if $slaves[$i].broodmother == 2>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@ - <<set $cash += 12*(50+_babyCost)>> - <<elseif $slaves[$i].broodmother == 1>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@ - <<set $cash += (50+_babyCost)>> - <<else>> - $possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@ - <<set $cash += $slaves[$i].pregType*(50+_babyCost)>> - <</if>> -<</if>> + <<seBirthCritical>> + + <br><br><hr style="margin:0"><br> -<<if $slaves[$i].broodmother == 2>> - <<set $slaves[$i].births += 12>> - <<set $slaves[$i].birthsTotal += 12>> - <<set $birthsTotal += 12>> - <<if $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += 12>> - <</if>> - <<if $slaves[$i].mpreg == 1>> - <<if $slaves[$i].anus < 3>> - <<set $slaves[$i].anus = 3>> - <</if>> - <<else>> - <<if $slaves[$i].vagina < 3>> - <<set $slaves[$i].vagina = 3>> - <</if>> - <</if>> - <<set $slaves[$i].preg = 37>> -<<elseif $slaves[$i].broodmother == 1>> - <<set $slaves[$i].births += 1>> - <<set $slaves[$i].birthsTotal += 1>> - <<set $birthsTotal += 1>> - <<if $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += 1>> <</if>> - <<if $slaves[$i].mpreg == 1>> - <<if $slaves[$i].anus < 3>> - <<set $slaves[$i].anus = 3>> - <</if>> - <<else>> - <<if $slaves[$i].vagina < 3>> - <<set $slaves[$i].vagina = 3>> - <</if>> - <</if>> - <<set $slaves[$i].preg = 37>> - <<if $slaves[$i].broodmotherCountDown > 0>> - <<set $slaves[$i].broodmotherCountDown-->> - <<if $slaves[$i].broodmotherCountDown == 0>> - $pronounCap also passed the implant making $object a broodmother alongside the afterbirth. - <<set $slaves[$i].preg = 0>> - <<set $slaves[$i].pregType = 0>> - <<set $slaves[$i].pregSource = 0>> - <<set $slaves[$i].pregKnown = 0>> - <<set $slaves[$i].pregWeek = -4>> - <<set $slaves[$i].broodmother = 0>> - <</if>> - <</if>> - <<SetBellySize $slaves[$i]>> -<<else>> - <<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>> - <<set $slaves[$i].births += $slaves[$i].pregType>> - <<set $slaves[$i].birthsTotal += $slaves[$i].pregType>> - <<set $birthsTotal += $slaves[$i].pregType>> - <<if $slaves[$i].pregSource > 0>> - <<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>> - <<if _babyDaddy != -1>> - <<set $slaves[_babyDaddy].slavesFathered += $slaves[$i].pregType>> - <</if>> - <<elseif $slaves[$i].pregSource == -1>> - <<set $PC.slavesFathered += $slaves[$i].pregType>> - <</if>> - <<set $slaves[$i].pregType = 0>> - <<set $slaves[$i].pregSource = 0>> - <<set $slaves[$i].pregKnown = 0>> - <<set $slaves[$i].pregWeek = -4>> - <<SetBellySize $slaves[$i]>> - <<if $slaves[$i].mpreg == 1>> - <<if $slaves[$i].anus < 3>> - <<set $slaves[$i].anus = 3>> - <</if>> - <<else>> - <<if $slaves[$i].vagina < 3>> - <<set $slaves[$i].vagina = 3>> - <</if>> - <</if>> -<</if>> - -<</if>> /* closes c-section */ - -<</if>> /* closes incubator addition */ - -<<else>> - -<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> - The Societal Elite @@.red;are furious@@ you would allow an elite child to perish under your watch. - <<set $failedElite += 100>> -<</if>> -<<set $activeSlave = $slaves[$i]>> -<<include "Remove activeSlave">> - -<</if>> /* closes slave died in cb */ - -<</if>> /* closes dairy birth exception */ - -<<if $slaves[$i].health <= -100>> - <br><br> - While attempting to recover, $slaves[$i].slaveName @@.red;passes away@@ from complications. $possessiveCap body was fatally damaged during childbirth, but $possessive offspring is healthy, so $possessive legacy will carry on. - <<set $activeSlave = $slaves[$i]>> - <<include "Remove activeSlave">> - <<set $slaveDead = 1>> -<</if>> - -<<if $slaveDead != 1>> - <<set $slaves[$i].labor = 0>> - <<set $slaves[$i].induce = 0>> -<<else>> - <<set $slaveDead = 0>> -<</if>> -<br><br><hr style="margin:0"><br> -<</if>> <</for>> <<set $birthee = 0>> diff --git a/src/uncategorized/seCustomSlaveDelivery.tw b/src/uncategorized/seCustomSlaveDelivery.tw index d26664ad96263f16ba2d367736ce0c30c7011efb..b72157121a584513af3d8250eb4024eb76d673ec 100644 --- a/src/uncategorized/seCustomSlaveDelivery.tw +++ b/src/uncategorized/seCustomSlaveDelivery.tw @@ -80,8 +80,10 @@ <<if $customSlave.analVirgin == 0>> <<set $activeSlave.anus = $customSlave.analVirgin>> <</if>> -<<if $customSlave.voice != -1>> +<<if def $customSlave.voice && $customSlave.voice != -1>> <<set $activeSlave.voice = $customSlave.voice>> +<<else>> + <<set $activeSlave.voice = random(0,3)>> <</if>> <<set $activeSlave.health = $customSlave.health>> <<set $activeSlave.muscles = $customSlave.muscles>> diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw index 608f4d1144887024f471aad3dc14f5c35bafcc66..3309c2bd8c798dcb6ba2728fc77af2c7c03cdfce 100644 --- a/src/uncategorized/seIndependenceDay.tw +++ b/src/uncategorized/seIndependenceDay.tw @@ -186,6 +186,8 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve You share a rather some of the highlights of your late master's life; the moral of the story is that you've seen how to lead from someone who was a leader... It didn't help your standing much. <<elseif $PC.career == "celebrity">> You share a hilarious anecdote from your background as a celebrity, one which the old world tabloids never did learn about, until now. + <<elseif $PC.career == "BlackHat">> + You share a series of juicy details of some old world politicians, driving home just how much you know. <<else>> You cast yourself as one of the leading citizens of the Free Cities, from the beginning. <</if>> diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw index a01f97c0d69273e5a6076d32123254cab55f3495..2c9823202f936ff60db48bc76b7713acf932435c 100644 --- a/src/uncategorized/seLethalPit.tw +++ b/src/uncategorized/seLethalPit.tw @@ -195,7 +195,7 @@ You review the rules - the combatants will use their choice of swords, and the f <<if !canSee($fighterOne)>> Her lack of eyesight is certain death. -<<elseif ($fighterOne.eyes == -1 && ($fighterOne.eyewear != "corrective glasses" || $fighterOne.eyewear != "corrective contacts")) || ($fighterOne.eyes == 1 && ($fighterOne.eyewear == "blurring glasses" || $fighterOne.eyewear == "blurring contacts"))>> +<<elseif (($fighterOne.eyes == -1) && ($fighterOne.eyewear != "corrective glasses") && ($fighterOne.eyewear != "corrective contacts")) || ($fighterOne.eyes == 1 && ($fighterOne.eyewear == "blurring glasses" || $fighterOne.eyewear == "blurring contacts"))>> Her poor eyesight makes her a weaker combatant. <</if>> @@ -344,7 +344,7 @@ You review the rules - the combatants will use their choice of swords, and the f <<if !canSee($fighterTwo)>> Her lack of eyesight is certain death. -<<elseif ($fighterTwo.eyes == -1 && ($fighterTwo.eyewear != "corrective glasses" || $fighterTwo.eyewear != "corrective contacts")) || ($fighterTwo.eyes == 1 && ($fighterTwo.eyewear == "blurring glasses" || $fighterTwo.eyewear == "blurring contacts"))>> +<<elseif (($fighterTwo.eyes == -1) && ($fighterTwo.eyewear != "corrective glasses") && ($fighterTwo.eyewear != "corrective contacts")) || ($fighterTwo.eyes == 1 && ($fighterTwo.eyewear == "blurring glasses" || $fighterTwo.eyewear == "blurring contacts"))>> Her poor eyesight makes her a weaker combatant. <</if>> diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw index ebe7f1aed5d032aff76c4c2c213cb234cd72f5e5..8b449ae7272197b7fa57c82209e35fdb4b80b136 100644 --- a/src/uncategorized/seNonlethalPit.tw +++ b/src/uncategorized/seNonlethalPit.tw @@ -154,7 +154,7 @@ You review the rules - the combatants are wearing light gloves, and the fight wi <<if !canSee($fighterOne)>> Her lack of eyesight means certain defeat. -<<elseif ($fighterOne.eyes == -1 && ($fighterOne.eyewear != "corrective glasses" || $fighterOne.eyewear != "corrective contacts")) || ($fighterOne.eyes == 1 && ($fighterOne.eyewear == "blurring glasses" || $fighterOne.eyewear == "blurring contacts"))>> +<<elseif (($fighterOne.eyes == -1) && ($fighterOne.eyewear != "corrective glasses") && ($fighterOne.eyewear != "corrective contacts")) || ($fighterOne.eyes == 1 && ($fighterOne.eyewear == "blurring glasses" || $fighterOne.eyewear == "blurring contacts"))>> Her poor eyesight makes her a weaker fighter. <</if>> @@ -292,7 +292,7 @@ You review the rules - the combatants are wearing light gloves, and the fight wi <<if !canSee($fighterTwo)>> Her lack of eyesight means certain defeat. -<<elseif ($fighterTwo.eyes == -1 && ($fighterTwo.eyewear != "corrective glasses" || $fighterTwo.eyewear != "corrective contacts")) || ($fighterTwo.eyes == 1 && ($fighterTwo.eyewear == "blurring glasses" || $fighterTwo.eyewear == "blurring contacts"))>> +<<elseif (($fighterTwo.eyes == -1) && ($fighterTwo.eyewear != "corrective glasses") && ($fighterTwo.eyewear != "corrective contacts")) || ($fighterTwo.eyes == 1 && ($fighterTwo.eyewear == "blurring glasses" || $fighterTwo.eyewear == "blurring contacts"))>> Her poor eyesight makes her a weaker fighter. <</if>> diff --git a/src/uncategorized/seRaiding.tw b/src/uncategorized/seRaiding.tw index 133e91a27589b6b8fe4ee54d002b18e9d6de3d8d..a0a5d1cb25b92f072f4dd199539c2008db7035e2 100644 --- a/src/uncategorized/seRaiding.tw +++ b/src/uncategorized/seRaiding.tw @@ -83,7 +83,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, 0, 0, 0, 5, 10, 20, 30, 39)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -118,7 +119,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10, 20, 30, 39)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -148,7 +150,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -225,7 +228,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 5)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -253,7 +257,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -300,7 +305,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -374,7 +380,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 5)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -403,7 +410,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -435,7 +443,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 39)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -492,7 +501,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 39)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> @@ -536,7 +546,8 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the <<if isFertile($activeSlave) && $seePreg != 0>> <<set $activeSlave.preg = either(-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 39)>> <<if $activeSlave.preg > 0>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> diff --git a/src/uncategorized/seRecruiterSuccess.tw b/src/uncategorized/seRecruiterSuccess.tw index dd97f0bdb1307c57f575f9a5df32538dacbbc334..089fec83f5aa19a020addc0aa671928f78003be3 100644 --- a/src/uncategorized/seRecruiterSuccess.tw +++ b/src/uncategorized/seRecruiterSuccess.tw @@ -141,7 +141,8 @@ Your recruiter $Recruiter.slaveName has succeeded; she's convinced an old world <<set $activeSlave.health = random(-80,-20)>> <<set $activeSlave.vagina = random(1,3)>> <<set $activeSlave.preg = random(15,39)>> -<<SetPregType $activeSlave>> +<<set $activeSlave.pregType = setPregType($activeSlave)>> +<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>> <<set $activeSlave.pregKnown = 1>> <<set $activeSlave.pregWeek = $activeSlave.preg>> <<SetBellySize $activeSlave>> diff --git a/src/uncategorized/seRetirement.tw b/src/uncategorized/seRetirement.tw index f2ae903301389c58e55f5db3672b30d2493101e6..3a78ff690aae948155c6173fcf7538d1e3d387c4 100644 --- a/src/uncategorized/seRetirement.tw +++ b/src/uncategorized/seRetirement.tw @@ -147,7 +147,7 @@ When you return to your desk you realize something. that she's quite eager to fuck you as a free woman. <<if $activeSlave.relationship == -3>> <<if $activeSlave.devotion+$activeSlave.trust >= 175>> - When she knows she has your attention, she flashes <<if $activeSlave.amp != 1>>her hand, revealing the steel ring that she wore when she was your slave wife<<else>> the steel ring that she wore when she was your slave wife attached to the same chain you placed around her neck on your wedding<</if>>. Even though the ring is meaningless to society, it holds a speacial meaning to you and her. + When she knows she has your attention, she flashes <<if $activeSlave.amp != 1>>her hand, revealing the steel ring that she wore when she was your slave wife<<else>> the steel ring that she wore when she was your slave wife attached to the same chain you placed around her neck on your wedding<</if>>. Even though the ring is meaningless to society, it holds a special meaning to you and her. <<else>> When she knows she has your attention, she produces the steel ring that she wore when she was your slave wife. She doesn't put it on, but she kisses it suggestively before putting it back in her purse. <</if>> diff --git a/src/uncategorized/seWedding.tw b/src/uncategorized/seWedding.tw index ddfadefffeb5d1f9e5a7b8f4b09bb4fb014d2fd7..d845c26f30d21714bef3a5144cfe8ec97b28a2ef 100644 --- a/src/uncategorized/seWedding.tw +++ b/src/uncategorized/seWedding.tw @@ -42,7 +42,8 @@ <<if canGetPregnant($activeSlave) && (random(1,100) > 70) && $activeSlave.eggType == "human">> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoVaginal($activeSlave)>> <<set _randomVag = random(30,60)>> @@ -56,7 +57,8 @@ <<if canGetPregnant($activeSlave) && (random(1,100) > 70) && $activeSlave.eggType == "human">> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoAnal($activeSlave)>> <<set _randomAnal = random(30,60)>> @@ -70,7 +72,8 @@ <<if canGetPregnant($activeSlave) && (random(1,100) > 70) && $activeSlave.eggType == "human">> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<else>> <<set _randomOral = random(60,100)>> @@ -95,7 +98,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 70)>> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoVaginal($activeSlave)>> <<set _randomVag = random(3,7)>> @@ -108,7 +112,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 70)>> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoAnal($activeSlave)>> <<set _randomAnal = random(1,4)>> @@ -121,7 +126,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 70)>> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<else>> <<set _randomOral = random(15,20)>> @@ -146,7 +152,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 70)>> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoVaginal($activeSlave)>> <<set _randomVag = random(3,7)>> @@ -159,7 +166,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 70)>> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoAnal($activeSlave)>> <<set _randomAnal = random(1,4)>> @@ -172,7 +180,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 70)>> A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<else>> <<set _randomOral = random(15,20)>> @@ -207,7 +216,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 90)>> A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoAnal($activeSlave)>> <<set $activeSlave.analCount += 1, $analTotal += 1>> @@ -215,7 +225,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 90)>> A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<else>> <<set $activeSlave.oralCount += 1, $oralTotal += 1>> @@ -229,7 +240,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 90)>> A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<elseif canDoAnal($activeSlave)>> <<set $activeSlave.analCount += 1, $analTotal += 1>> @@ -237,7 +249,8 @@ <<if canImpreg($activeSlave, $slaves[_m]) && (random(1,100) > 90)>> A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this. <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>> <</if>> <<else>> <<set $activeSlave.oralCount += 1, $oralTotal += 1>> @@ -376,7 +389,8 @@ $activeSlave.slaveName isn’t particularly excited about what’s coming, but she’s fully prepared for it and accepted it as a fact of life. There are worse things one can be than the slave-wife of a wealthy arcology owner. You <<if $activeSlave.amp == 1>>gather her up and hold her in front of you, pulling her panties off as you do. Showing considerable dexterity, you maneuver your dick inside her while holding her against your <<if $PC.boobs == 1>>breasts<<else>>chest<</if>><<else>>take her hand and pull her to her feet while she shimmies out of her panties. She cocks her hips for you and you slide your cock inside her before taking her knees and drawing them up to hold her in midair, impaled on you<</if>>. Though her face is towards the crowd, her mind is concentrated on your hard cock, pumping in and out of her at an angle; to her, it is what it is. She gasps when your seed flows into her, orgasming shortly after to @@.green;applause from your guests.@@ You'll fuck her repeatedly over the next few days, ensuring impregnation. <</if>> <<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>> - <<SetPregType $activeSlave>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, $activeSlave.preg)>> <<set $activeSlave.pregSource = -1>> <<if ($activeSlave.vagina == 0) || ($activeSlave.mpreg == 1 && $activeSlave.anus == 0)>> Naturally, the ceremony @@.lime;took her virginity;@@ diff --git a/src/uncategorized/securityForceEOWReport.tw b/src/uncategorized/securityForceEOWReport.tw index 10782f6682b5f8957e4dd6a66dea4f4867da75a6..cbbd692503e9780a2983b4b941f9ed559140380e 100644 --- a/src/uncategorized/securityForceEOWReport.tw +++ b/src/uncategorized/securityForceEOWReport.tw @@ -110,6 +110,11 @@ <<if $securityForceSubmarine > 0>> <<set $securityForceRecruit += ($securityForceSubmarine)>> <</if>> <</if>> + + <<switch $ColonelCore>> + <<case "kind" "collected.">> + <<set $securityForceRecruit += 2>> + <</switch>> /* If focus is recruit/train, 95% of the above is added to the personnel total of the SF. Else, 25% (which will, at medium/high personnel levels, not wholly counteract attrition, needing some recruitment every so often to keep the total high). */ <<if $securityForceFocus == "recruit">> @@ -152,7 +157,7 @@ <<if $securityForceAircraftPower > 0>> <<set $securityForceTrade += (0.25*($securityForceAircraftPower))>> <</if>> <<if $securityForceSpacePlanePower > 0>> - <<set $securityForceTrade += (0.0025*($securityForceSpacePlanePower))>> <</if>> + <<set $securityForceTrade += (0.25*($securityForceSpacePlanePower))>> <</if>> <<if $securityForceFortressZeppelin > 0>> <<set $securityForceTrade += (0.25*($securityForceFortressZeppelin))>> <</if>> <<if $securityForceAC130 > 0>> @@ -183,6 +188,11 @@ <<if $securityForceHeavyAmphibiousTransport > 0>> <<set $securityForceTrade += (0.25*($securityForceHeavyAmphibiousTransport))>> <</if>> <</if>> + + <<switch $ColonelCore>> + <<case "kind" "collected.">> + <<set $securityForceTrade += 0.15>> + <</switch>> /* Manpower effects - extra 0.5% per 100-gate in terms of manpower. Kicks in at over 200, since some of the SF is on overhead, logistics, repairs, rest, etc. */ <<if $securityForcePersonnel > 200>> @@ -224,7 +234,7 @@ <<set _RaidingEfficiency = .1>> /* Raiding Efficiency Modifier Calculations - /* Drugs make them better at everything, but especially much better at raiding - much easier to murder and pillage when you're fucked out of your mind on a mix of meth, pcp, and lsd. Having an effective; CIC (Combat Infomation Centre) at the barracks,airforce, Satellite,AC-130,major and more efficent facility support massivey improves raiding efficiency. If we are dealing with an oceanic aracolgy the sub and carrier massively improve efficiency. */ + /* Drugs make them better at everything, but especially much better at raiding - much easier to murder and pillage when you're fucked out of your mind on a mix of meth, pcp, and lsd. Having an effective; CIC (Combat Infomation Centre) at the barracks,airforce, Satellite,AC-130,major and more efficient facility support massivey improves raiding efficiency. If we are dealing with an oceanic aracolgy the sub and carrier massively improve efficiency. */ /* Facilities */ @@ -277,9 +287,10 @@ <</if>> /* Colonel */ - <<if $ColonelCore == "warmonger">> + <<switch $ColonelCore>> + <<case "warmonger" "cruel" "psychopathic">> <<set $securityForceMissionEfficiency *= 1+(_RaidingEfficiency)>> - <</if>> + <</switch>> <<if $securityForceSexedColonel > 0>> <<set $securityForceMissionEfficiency *= 1+($securityForceSexedColonel*_RaidingEfficiency)>> <</if>> diff --git a/src/uncategorized/securityForceNamingColonel.tw b/src/uncategorized/securityForceNamingColonel.tw index 0f85f90ab42053527cb7557e2cfe9f86d720db3f..35076488ac10b804bdb82190290a69ae4198a551 100644 --- a/src/uncategorized/securityForceNamingColonel.tw +++ b/src/uncategorized/securityForceNamingColonel.tw @@ -28,62 +28,74 @@ You close the link to the communication system and read a message from your assi <br>-------------------- <br><<link "Invite them inside">> <<replace "#address">> - The figure that enters is not what you were expecting, given your previous experiences with the mercenary groups that work with the arcology owners of the Free Cities. Most mercenaries you've worked with have been grizzled stout men, veterans of the Old World militaries that finally had too much and went private. This one's different, + The figure that enters is not what you were expecting, given your previous experiences with the mercenary groups that work with the arcology owners of the Free Cities. Most mercenaries you've worked with have been grizzled stout men, veterans of the Old World militaries that finally had too much and went private. This one's different, <<if $ColonelCore != "">> likely to be ''$ColonelCore'' <</if>> <span id="result0"> - <<if $ColonelCore == 0>> you can guess from her face that at her core she is likely to be:<</if>> + <<if $ColonelCore == "">> you can guess from her face that at her core she is likely to be: <<link "Kind,">> <<replace "#result0">> she strikes you as a kind person. <<set $ColonelCore = "kind">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "mischievous,">> <<replace "#result0">> she strikes you as someone who enjoys playfully causing trouble. <<set $ColonelCore = "mischievous">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "cruel,">> <<replace "#result0">> she strikes you as terribly cruel. - <<set $ColonelCore = "cruel">> + <<set $ColonelCore = "cruel">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "psychopathic,">> <<replace "#result0">> she strikes you as a complete psychopath. <<set $ColonelCore = "psychopathic">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "sociopathic,">> <<replace "#result0">> she strikes you as a complete sociopath. <<set $ColonelCore = "sociopathic">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "a warmonger,">> <<replace "#result0">> she strikes you as someone who just loves war. <<set $ColonelCore = "warmonger">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "jaded,">> she strikes you as someone who's seen too much to really care anymore. <<replace "#result0">> <<set $ColonelCore = "jaded">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "shell shocked,">> <<replace "#result0">> she strikes you as someone who's been through hell. <<set $ColonelCore = "shell shocked">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "brazen,">> <<replace "#result0">> she strikes you as someone who doesn't know shame. <<set $ColonelCore = "brazen">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>><<link "collected.">> <<replace "#result0">> she seems calm and collected. <<set $ColonelCore = "collected">> + <<goto "Security Force Naming-Colonel">> <</replace>> <</link>> - </span> + <</if>> + </span> +<<if $ColonelCore != "">> <br><br> She strides in, stopping in front of your desk, not bothering to put on even the semi-military air (complete with salute) that most mercenaries tend to adopt when meeting new clients. She's very tall and wearing the pants, boots, gloves, and tank top of a female combat armour under-suit. Her bare arms and upper body are corded with muscle, and through the tank top's thin fabric you can see both the shape of her muscled abdomen and the curves of her small but perky breasts, complete with what your experience tells you are barbell nipple piercings. Her eyes are alive with intelligence, and you can see her scanning your office, clearly impressed by its opulence. Her hair is shaved close to the scalp, and her ears and nose are heavily pierced. You can make out three long, ugly scars running over top of the mottled tissue of a previous, severe burn along one side of her face, as well as numerous smaller scars and burns on her bare arms. She's been disarmed prior to meeting you, and you see, in addition to an empty pistol holster on her hip, at least three empty knife holsters. @@ -106,11 +118,32 @@ You close the link to the communication system and read a message from your assi <br><br> - The merc laughs again. "I could get used to a place like this." She waves her hand around the office. "I bet you want to know why I'd be trustworthy for something like this." You don't correct her. "Thought so." Her demeanour softens, and you can detect a hit of nervousness. " I would say that I've never turned on a client and leave it at that, but this is different. It's getting worse out there. I'm sure you know that." You give her a slight nod. "Four times now I've woken up in the middle of the night and had to kill someone. Two of them were the people I'd taken to bed. You can't even trust your drunken fucks any more." + The merc laughs again. "I could get used to a place like this." She waves her hand around the office. "I bet you want to know why I'd be trustworthy for something like this." You don't correct her. "Thought so." Her demeanour softens, and you can detect a hit of nervousness. " I would say that I've never turned on a client and leave it at that, but this is different. It's getting worse out there. I'm sure you know that." You give her a slight nod. "Four times now I've woken up in the middle of the night and had to kill someone. Two of them were the people I'd taken to bed. You can't even trust your drunken fucks any more." + <<switch $ColonelCore>> + <<case "kind">> + What a shame but that is the world today. + <<case "cruel" "sociopathic">> + Who doesn't like a good hard fuck and stab? + <<case "jaded">> + Meh what else is new? + <</switch>> <br><br> - "I like fighting, but I want to live somewhere where I can relax from life out there. You give me the job and a place to live, let me hang up the uncertainty of being a merc, and I'll die for you if it comes to that. I promise the people I recruit will feel the same. Besides,<<if $ColonelCore == "warmonger">>I could get used to fighting vastly out matched foes."<<elseif $ColonelCore == "cruel">>" she indicates the slave again, "I could get used to having my own stable. Spending my R&R time with a cold beer in one hand, a few lines of coke or a stack of pills in front of me, and a terrified little slavegirl locked between my legs, struggling to breathe, sounds pretty fucking good to me."<</if>> + "I like fighting, but I want to live somewhere where I can relax from life out there. You give me the job and a place to live, let me hang up the uncertainty of being a merc, and I'll die for you if it comes to that. I promise the people I recruit will feel the same. Besides, I could get used to + <<switch $ColonelCore>> + <<case "warmonger">> + fighting vastly out matched foes. + <<case "cruel">> + having my own stable to abuse as I see fit. + <<case "mischievous">> + causing a little chaos. + <</switch>> + Spending my R&R time with a cold beer in one hand, a few lines of coke or a stack of pills in front of me, + <<if $ColonelCore == "cruel">> + and a terrified little slavegirl locked between my legs, struggling to breathe, + <</if>> + sounds pretty fucking good to me." <br><br> @@ -141,6 +174,7 @@ You close the link to the communication system and read a message from your assi <<set $securityForceActive = 1, $securityForceSubsidyActive = 1>> <</replace>> <</link>> +<</if>> <</replace>> <</link>> -</span> +</span> \ No newline at end of file diff --git a/src/uncategorized/securityForceProposal.tw b/src/uncategorized/securityForceProposal.tw index 8ccda752c3b1d8cb1ae2ee5e1ea1db94e82014ab..dec9bd3ad52fca57818e50ee775e3a0e3238a624 100644 --- a/src/uncategorized/securityForceProposal.tw +++ b/src/uncategorized/securityForceProposal.tw @@ -32,7 +32,7 @@ Such a force would solve many problems. More soldiers would mean more control, w <<set $cash -= _price>> <<set $nextButton = "Continue">> <</replace>> -<</link>> //Initial costs are <<print cashFormat(_price)>>, and upon establishment force will have significant support costs until it is self-sufficient.// +<</link>> //Initial costs are <<print cashFormat(_price)>>, and upon establishment the force will have significant support costs until it is self-sufficient.// <<link "The mercenaries are enough">> <<replace "#result">> On second thought, such a force is not needed. Your methods have served well so far - why should there be any change going forward? diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw index eef5961155f48dcf53af609e89f1aabeebb477a5..fa67db158d93b5a252f1957b68e5d4ff24534614 100644 --- a/src/uncategorized/sellSlave.tw +++ b/src/uncategorized/sellSlave.tw @@ -413,7 +413,9 @@ A reputable slave appraiser arrives promptly to inspect her and certify her qual <<else>> Her rebelliousness is a major negative <</if>> -<<if (($activeSlave.devotion+30) > $activeSlave.trust) && (($activeSlave.devotion-30) < $activeSlave.trust)>> +<<if $activeSlave.devotion >= -20 && $activeSlave.devotion <= 20 && $activeSlave.trust <= 20 && $activeSlave.trust > -20>> + but +<<elseif ($activeSlave.trust > 20 && $activeSlave.devotion > 20) || ($activeSlave.trust < -20 && $activeSlave.devotion < -20)>> and <<else>> but diff --git a/src/uncategorized/servantsQuartersReport.tw b/src/uncategorized/servantsQuartersReport.tw index 2a3beac3e641b32fc950797dd13b3821b38aab0a..3d699147b7984c3757403517a9bcda1b3b907867 100644 --- a/src/uncategorized/servantsQuartersReport.tw +++ b/src/uncategorized/servantsQuartersReport.tw @@ -51,7 +51,8 @@ <<set $i = $slaveIndices[$ServQiIDs[_dI]]>> <<if (canImpreg($slaves[$i], $Stewardess))>> <<KnockMeUp $slaves[$i] 100 2 $Stewardess.ID>> - <<set $slaves[$i].preg = 1, $slaves[$i].pregKnown = 1, $slaves[$i].pregWeek = 1, $slaves[$i].pregSource = $Stewardess.ID>><<SetPregType $slaves[$i]>> + <<set $slaves[$i].preg = 1, $slaves[$i].pregKnown = 1, $slaves[$i].pregWeek = 1, $slaves[$i].pregSource = $Stewardess.ID>><<set $slaves[$i].pregType = setPregType($slaves[$i])>> + <<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>> <<set $slaves[$i].vagina = Math.clamp($slaves[$i].vagina,1,10), _stewardessImpregnated++, $slaves[$i].vaginalCount += 10, $vaginalTotal += 10>> <<set $slaves[$i].need = 0>> <</if>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index d247417e87ab0142e207f7e992804946e5abe608..4d092685b3a6e14a2da7e1082998d2716f9a7136 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -2,7 +2,7 @@ <<set $nextLink = "Economics", $nextButton = "Continue", _SL = $slaves.length, $RapeableIDs = []>> -<h1>$arcologies[0].name Weekly Slave Report - Week $week</h1> +<h1> $arcologies[0].name Weekly Slave Report - Week $week</h1> <<for $i = 0; $i < _SL; $i++>> @@ -260,21 +260,6 @@ <<set $Concubine = $slaves[$i], $fuckSlaves++>> <<case "serve in the master suite" "please you">> <<set $fuckSlaves++>> -<<case "take classes">> - <<if $slaves[$i].fetish == "mindbroken">> - <<removeJob $slaves[$i] "take classes">> - ''__@@.pink;$slaves[$i].slaveName@@__'' is no longer mentally capable and @@.yellow;has been dropped from class.@@ - <</if>> -<<case "learn in the schoolroom">> - <<if $slaves[$i].fetish == "mindbroken">> - <<removeJob $slaves[$i] "learn in the schoolroom">> - ''__@@.pink;$slaves[$i].slaveName@@__'' is no longer mentally capable and @@.yellow;has been dropped from class.@@ - <</if>> -<<case "be confined in the cellblock">> - <<if $slaves[$i].fetish == "mindbroken">> - <<removeJob $slaves[$i] "be confined in the cellblock">> - ''__@@.pink;$slaves[$i].slaveName@@__'' has mentally broken and thus can not be broken further. @@.yellow;She has been released from the cellblock.@@ - <</if>> <</switch>> <<if $Lurcher>> @@ -316,28 +301,42 @@ <<if $slaves[$i].bellyPain != 0>> <<set $slaves[$i].bellyPain = 0>> <</if>> -/* preg speed control changes*/ +/* preg speed and advance*/ + <<if $slaves[$i].preg > 0>> - <<if $slaves[$i].pregWeek <= 0 || $slaves[$i].pregWeek > $slaves[$i].preg>> /* at .preg = 1, .pregWeek should be 1 also */ - <<set $slaves[$i].pregWeek = $slaves[$i].preg>> - <<else>> - <<set $slaves[$i].pregWeek++>> - <</if>> + <<set _pregSpeed = 1>> /*base speed is normal*/ <<if $slaves[$i].pregControl == "slow gestation">> - <<set $slaves[$i].preg += 0.5>> - <<set $slaves[$i].preg = (Math.ceil($slaves[$i].preg*10)/10)>> /* trick to avoid precision lost error showed like week: 29.499999999999998*/ + <<set _pregSpeed = 0.5>> <<elseif $slaves[$i].pregControl == "speed up">> - <<set $slaves[$i].preg += 2>> - <<else>> - <<set $slaves[$i].preg++>> + <<set _pregSpeed = 2>> <</if>> - <<SetBellySize $slaves[$i]>> + + <<if $slaves[$i].broodmother == 1 && $slaves[$i].broodmotherOnHold != 1>> /* broodmother advance block */ + <<if ($week / $slaves[$i].broodmotherFetuses == Math.round($week / $slaves[$i].broodmotherFetuses)) && $slaves[$i].broodmotherFetuses < 1>> + /*one fetus in few week - selection and adding*/ + <<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 0)>> + <<else>> + /*one or more fetuses in one week*/ + <<set WombImpregnate($slaves[$i], Math.floor($slaves[$i].broodmotherFetuses), $slaves[$i].pregSource, 0)>> /* really 0, it's will be advanced right few lines down.*/ + <</if>> + <<if $slaves[$i].ovaryAge >= 47>> + <<set $slaves[$i].broodmotherOnHold = 1 >> + <<set $slaves[$i].broodmotherCountDown = 37 - WombMinPreg($slaves[$i])>> + <</if>> + <</if>> + + <<set WombProgress($slaves[$i], _pregSpeed)>> + <<set $slaves[$i].pregKnown = 1>> -<</if>> -/* end of preg speed control changes*/ -<<if $slaves[$i].pregWeek < 0>> <<set $slaves[$i].pregWeek++>> <</if>> +<<if $slaves[$i].pregWeek < 0 >> /*postpartum state*/ + <<set $slaves[$i].pregWeek++>> +<</if>> + +<<SetBellySize $slaves[$i]>> /* here will be also set through WombGetVolume .bellyPreg, .pregType, to current values. */ + +/* end of preg speed and advance*/ <<if $slaves[$i].devotion >= -50>> <<if $slaves[$i].energy > 20>> @@ -356,6 +355,9 @@ <<if ($slaves[$i].ovaries == 1 || $slaves[$i].mpreg == 1) && $slaves[$i].pubertyXX == 1 && $slaves[$i].physicalAge <= ($slaves[$i].pubertyAgeXX + 2) && $slaves[$i].physicalAge < 18>> <<set $slaves[$i].need = ($slaves[$i].need*2)>> <</if>> + <<if $slaves[$i].diet == "fertility">> + <<set $slaves[$i].need += 10>> + <</if>> <</if>> <</if>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 4d70dfb9e6c725ad0deb961ef6b1093dd1528f71..49216679889ba29b8c8df046c54d0f07cda6e2f7 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1038,10 +1038,11 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 <<set $activeSlave.preg = 0>> <<SetBellySize $activeSlave>> <</if>> - <<elseif $activeSlave.broodmotherCountDown > 0>> - //Her pregnancy implant is shutting down; she will be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + <<elseif $activeSlave.broodmotherOnHold == 1>> + //Her pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; she is expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>// + [[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] <<elseif $activeSlave.preg >= -1>> - Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. + Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> <<link "Use contraceptives">><<set $activeSlave.preg = -1>> <<SlaveInteractFertility>> @@ -1058,8 +1059,11 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 [[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]] | [[Give her a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> + <<if $activeSlave.broodmotherOnHold != 1>> + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] + <</if>> <<if ($activeSlave.preg > 37)>> - [[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]] + | [[Induce mass childbirth|BirthStorm]] <</if>> <<elseif ($activeSlave.preg > 35)>> [[Give her a cesarean section|csec]] @@ -1080,8 +1084,9 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 <<set $activeSlave.preg = 0>> <<SetBellySize $activeSlave>> <</if>> - <<elseif $activeSlave.broodmotherCountDown > 0>> - //Its pregnancy implant is shutting down; it will be completely emptied of its contained brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + <<elseif $activeSlave.broodmotherOnHold == 1>> + //Its pregnancy implant is turned off; it expected to be completely emptied of its remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + [[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] <<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> @@ -1098,8 +1103,11 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 [[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]] | [[Give it a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> + <<if $activeSlave.broodmotherOnHold != 1>> + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] + <</if>> <<if ($activeSlave.preg > 37)>> - [[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]] + | [[Induce mass childbirth|BirthStorm]] <</if>> <<elseif ($activeSlave.preg > 35)>> [[Give it a cesarean section|csec]] @@ -1226,6 +1234,9 @@ Hormones: <strong><span id="hormones"> <<if ($activeSlave.balls > 0) && ($cumProDiet == 1)>> | <<link "Cum production">><<set $activeSlave.diet = "cum production">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> <</if>> +<<if canGetPregnant($activeSlave) && ($dietFertility == 1)>> +| <<link "Fertility">><<set $activeSlave.diet = "fertility">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> +<</if>> <<if ($activeSlave.weight >= -95)>> | <<link "Lose weight">><<set $activeSlave.diet = "restricted">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> <<else>> @@ -1250,11 +1261,11 @@ Hormones: <strong><span id="hormones"> <<else>> | //She has no limbs and thus can't effectively build muscle// <</if>> -<<if $activeSlave.muscles > 5 && canWalk($activeSlave)>> +<<if ($activeSlave.muscles > 5 || $activeSlave.fuckdoll == 0) && canWalk($activeSlave)>> | <<link "Slim down">><<set $activeSlave.diet = "slimming">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> <<elseif !canWalk($activeSlave)>> | //She can't move and thus can't trim down// -<<else>> +<<elseif $activeSlave.fuckdoll > 0>> | //She has no muscles left to lose// <</if>> diff --git a/src/uncategorized/slaveMarkets.tw b/src/uncategorized/slaveMarkets.tw index aed3114825fd246de092025b4316b7963ca2a59b..b8195c7a495e19573f37c0be8a529ae9d9fe4282 100644 --- a/src/uncategorized/slaveMarkets.tw +++ b/src/uncategorized/slaveMarkets.tw @@ -19,7 +19,7 @@ You visit the slave markets off the arcology plaza. It's always preferable to ex <<elseif $seed == 2>> "I guarantee they are all alive, maybe not healthy but alive. Well, except that one, just ignore that one." <<elseif $seed == 3>> - "We ask that you don't use this merchandise for organ harvesting, we have plenty of nonfuctional ones for that." + "We ask that you don't use this merchandise for organ harvesting, we have plenty of nonfunctional ones for that." <<else>> "If you are looking for a body to do unmentionable things to, you came to the right place! Though these in particular just barely fall under slave laws." <</if>> @@ -168,9 +168,9 @@ You visit the slave markets off the arcology plaza. It's always preferable to ex <<if $opinion != 0>> <<set $slaveCost -= Math.trunc($slaveCost*$opinion*0.05)>> <<if $opinion > 2>> - Your cultural ties with ''$arcologies[$numArcology].name'' helps keep the price reasonable. + Your cultural ties with '' $arcologies[$numArcology].name'' helps keep the price reasonable. <<elseif $opinion < -2>> - Your social misalignment with ''$arcologies[$numArcology].name'' drives up the price. + Your social misalignment with '' $arcologies[$numArcology].name'' drives up the price. <</if>> <</if>> <</if>> diff --git a/src/uncategorized/slaveShelter.tw b/src/uncategorized/slaveShelter.tw index 75788104e472f4cfac847ce638f11965e776ce06..289ad31ac4de1b9161983ef90f1391f6bc976bc6 100644 --- a/src/uncategorized/slaveShelter.tw +++ b/src/uncategorized/slaveShelter.tw @@ -187,7 +187,8 @@ You contact the Slave Shelter to review the profile of the slave the Shelter is <<set $shelterSlave.preg = either(-3, -2, -2, -2, 0, 0, 2, 3, 4, 5)>> <<if $shelterSlave.preg > 0>> <<set $shelterSlave.pregSource = -2, $shelterSlave.pregKnown = 1>> - <<SetPregType $shelterSlave>> + <<set $shelterSlave.pregType = setPregType($shelterSlave)>> + <<set WombImpregnate($shelterSlave, $shelterSlave.pregType, $shelterSlave.pregSource, $shelterSlave.preg)>> <</if>> <</if>> <<if $shelterSlave.vagina > -1>> diff --git a/src/uncategorized/slaveSold.tw b/src/uncategorized/slaveSold.tw index d5af7f29cccbe5d1862ceec0240e5ce2ff9674e2..ad84364685e7dd9d9eb24566a6e869b650fcd64e 100644 --- a/src/uncategorized/slaveSold.tw +++ b/src/uncategorized/slaveSold.tw @@ -4,7 +4,7 @@ <<set $display = 0>> -<<if !["elite auction", "tentacle bred", "womb filler", "organ crafter", "abortion TV", "repopulationist arcology", "eugenics arcology", "peacekeepers"].includes($buyer)>> /* organ crafter is not viable now, the elite won't part so easily with a prize, some take place x months later when the event's max is 15 weeks, and the rest are snuff events. You don't want that slave back. */ +<<if !["elite auction", "tentacle bred", "womb filler", "organ crafter", "abortion TV", "repopulationist arcology", "eugenics arcology", "peacekeepers"].includes($buyer) && ((($activeSlave.actualAge < $retirementAge-1) && $PhysicalRetirementAgePolicy != 1) || (($activeSlave.physicalAge < $retirementAge-1) && $PhysicalRetirementAgePolicy == 1))>> /* organ crafter is not viable now, the elite won't part so easily with a prize, some take place x months later when the event's max is 15 weeks, and the rest are snuff events. You don't want that slave back. */ <<if !$boomerangSlave || $boomerangWeeks > 15>> <<if $activeSlave.fuckdoll == 0>> <<if canWalk($activeSlave)>> @@ -13,7 +13,7 @@ <<if $activeSlave.devotion > 50>> <<if $activeSlave.trust > 95 || $activeSlave.trust < -20 || $activeSlave.intelligence < 0>> <<set $boomerangSlave = $activeSlave, $boomerangWeeks = 1, $boomerangBuyer = $buyer>> - <<set $boomerangStats = {PCpregSource: 0, PCmother: 0, PCfather: 0, boomerangMother: [], boomerangFather: [], boomerangPregSources: [], boomerangMotherTank: [], boomerangFatherTank: []}>> + <<set $boomerangStats = {PCpregSource: 0, PCmother: 0, PCfather: 0, boomerangMother: [], boomerangFather: [], boomerangPregSources: [], boomerangMotherTank: [], boomerangFatherTank: [], boomerangRelationship: 0, boomerangRivalry: 0, boomerangRelation: 0}>> <<if $familyTesting == 1>> <<if $activeSlave.ID == $PC.pregSource>> <<set $boomerangStats.PCpregSource = $activeSlave.ID>> @@ -49,6 +49,9 @@ <</if>> <<set $activeSlave.sisters = 0, $activeSlave.daughters = 0>> <<else>> + <<if $activeSlave.relation != 0>> + <<set $boomerangStats.boomerangRelation = $activeSlave.relationTarget>> + <</if>> <<for _ss = 0; _ss < $slaves.length; _ss++>> <<if $slaves[_ss].ID != $activeSlave.ID>> <<if $activeSlave.ID == $slaves[_ss].pregSource>> @@ -57,6 +60,12 @@ <</if>> <</for>> <</if>> + <<if $activeSlave.relationship > 0>> + <<set $boomerangStats.boomerangRelationship = $activeSlave.relationshipTarget>> + <</if>> + <<if $activeSlave.rivalry > 0>> + <<set $boomerangStats.boomerangRivalry = $activeSlave.rivalryTarget>> + <</if>> <</if>> <</if>> <</if>> diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw index a16d5aec219c1e28d4796a09191591cd370b3192..25d697893794dbc5ca1bfb3317fa2aad4979e76f 100644 --- a/src/uncategorized/slaveSummary.tw +++ b/src/uncategorized/slaveSummary.tw @@ -86,42 +86,46 @@ <<switch _Pass>> <<case "Main">> - /* - <<if $slaveAssignmentTab == "overview">> - <<if $showOneSlave == "Head Girl">> - <<if (_Slave.assignment != "be your Head Girl")>><<continue>><</if>> - <<elseif $showOneSlave == "recruit girls">> - <<if (_Slave.assignment != "recruit girls")>><<continue>><</if>> - <<elseif $showOneSlave == "guard you">> - <<if (_Slave.assignment != "guard you")>><<continue>><</if>> + + <<if $useSlaveSummaryTabs == 1>> + <<if $slaveAssignmentTab == "overview">> + <<if $showOneSlave == "Head Girl">> + <<if (_Slave.assignment != "be your Head Girl")>><<continue>><</if>> + <<elseif $showOneSlave == "recruit girls">> + <<if (_Slave.assignment != "recruit girls")>><<continue>><</if>> + <<elseif $showOneSlave == "guard you">> + <<if (_Slave.assignment != "guard you")>><<continue>><</if>> + <</if>> + + <<elseif $slaveAssignmentTab == "resting">> + <<if _Slave.assignment != "rest">><<continue>><</if>> + <<elseif $slaveAssignmentTab == "stay confined">> + <<if (_Slave.assignment != "stay confined")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "take classes">> + <<if (_Slave.assignment != "take classes")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "please you">> + <<if (_Slave.assignment != "please you")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "whore">> + <<if (_Slave.assignment != "whore")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "serve the public">> + <<if (_Slave.assignment != "serve the public")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "be a servant">> + <<if (_Slave.assignment != "be a servant")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "get milked">> + <<if (_Slave.assignment != "get milked")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "work a glory hole">> + <<if (_Slave.assignment != "work a glory hole")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "be a subordinate slave">> + <<if (_Slave.assignment != "be a subordinate slave")>><<continue>><</if>> + <<elseif $slaveAssignmentTab == "all">> + <<if $useSlaveSummaryOverviewTab == 1>> + <<if (_Slave.assignment == "be your Head Girl") + || (_Slave.assignment == "recruit girls") + || (_Slave.assignment == "guard you")>><<continue>><</if>> + <</if>> <</if>> - - <<elseif $slaveAssignmentTab == "resting">> - <<if _Slave.assignment != "rest">><<continue>><</if>> - <<elseif $slaveAssignmentTab == "stay confined">> - <<if (_Slave.assignment != "stay confined")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "take classes">> - <<if (_Slave.assignment != "take classes")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "please you">> - <<if (_Slave.assignment != "please you")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "whore">> - <<if (_Slave.assignment != "whore")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "serve the public">> - <<if (_Slave.assignment != "serve the public")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "be a servant">> - <<if (_Slave.assignment != "be a servant")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "get milked">> - <<if (_Slave.assignment != "get milked")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "work a glory hole">> - <<if (_Slave.assignment != "work a glory hole")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "be a subordinate slave">> - <<if (_Slave.assignment != "be a subordinate slave")>><<continue>><</if>> - <<elseif $slaveAssignmentTab == "all">> - <<if (_Slave.assignment == "be your Head Girl") - || (_Slave.assignment == "recruit girls") - || (_Slave.assignment == "guard you")>><<continue>><</if>> - <</if>> - */ + <</if>> + <<if (_Slave.choosesOwnClothes == 1) && (_Slave.clothes == "choosing her own clothes")>> <<set $i = _ssi, _oldDevotion = _Slave.devotion>> <<silently>><<include "SA chooses own clothes">><</silently>> diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw index dd92143fb39ca3b55a77758f1b4b6fc1ef35de46..c809b43ebd5971983ab69208fe541b080fbc9b8b 100644 --- a/src/uncategorized/spa.tw +++ b/src/uncategorized/spa.tw @@ -71,7 +71,7 @@ $spaNameCaps <</if>> <<set _Tmult0 = Math.trunc($spa*1000*$upgradeMultiplierArcology)>> -<br>$spaNameCaps can house $spa while they recuperate here. Curretly $spaSlaves are recuperating. +<br>$spaNameCaps can house $spa slaves while they recuperate here. Curretly $spaSlaves are recuperating. [[Expand the spa|Spa][$cash -= _Tmult0, $spa += 5]] //Costs <<print cashFormat(_Tmult0)>>// <br> diff --git a/src/uncategorized/spaReport.tw b/src/uncategorized/spaReport.tw index 8cd1b76355ffe000c593d5cda28266c83e6c202e..f91c0c1eb927e5d71a0dbd7e903b99fbae4df45d 100644 --- a/src/uncategorized/spaReport.tw +++ b/src/uncategorized/spaReport.tw @@ -87,7 +87,7 @@ <<if ($slaves[$i].fetish == "mindbroken") && ($slaves[$i].health > 20) && (_attendantUsedCure == 0) && ($spaFix != 2)>> <<set _attendantUsedCure = 1>> <<if (random(1,100) > 90-$Attendant.devotion)>> - @@.green;Something almost miraculous has happened.@@ $Attendant.slaveName has always refused to believe that $slaves[$i].slaveName could not be reached, and has lavished patient tenderness on her in $spaName. $slaves[$i].slaveName has begun to respond, and is stirring from her mental torpor. + <br> @@.green;Something almost miraculous has happened.@@ $Attendant.slaveName has always refused to believe that $slaves[$i].slaveName could not be reached, and has lavished patient tenderness on her in $spaName. $slaves[$i].slaveName has begun to respond, and is stirring from her mental torpor. <<set $slaves[$i].devotion = -3, $slaves[$i].sexualFlaw = "apathetic", $slaves[$i].behavioralFlaw = either("hates men", "odd"), $slaves[$i].fetish = "none", $slaves[$i].fetishKnown = 1>> <<if ($arcologies[0].FSPaternalist > 0)>> Society @@.green;strongly approves@@ of $slaves[$i].slaveName being restored to sanity, which advances ideals about enlightened slave ownership. @@ -197,11 +197,11 @@ <<if $slaves[$i].behavioralFlaw != "none">> <<SoftenBehavioralFlaw $slaves[$i]>> <<set _attendantUsedCure += 1>> - $Attendant.slaveName works carefully with $slaves[$i].slaveName, and successfully @@.green;softens her behavioral flaw@@ into an appealing quirk. + <br> $Attendant.slaveName works carefully with $slaves[$i].slaveName, and successfully @@.green;softens her behavioral flaw@@ into an appealing quirk. <<elseif $slaves[$i].sexualFlaw != "none">> <<SoftenSexualFlaw $slaves[$i]>> <<set _attendantUsedCure += 1>> - $Attendant.slaveName works carefully with $slaves[$i].slaveName, and successfully @@.green;softens her sexual flaw@@ into an appealing quirk. + <br> $Attendant.slaveName works carefully with $slaves[$i].slaveName, and successfully @@.green;softens her sexual flaw@@ into an appealing quirk. <</if>> <</if>> <</for>> diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 6bfeedb42ed4561d8c94c7cddf864df74a06dc5a..efd4f7b0a7994ca17cd6550b7f0ebade4c063af2 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -507,14 +507,6 @@ <br><span id="manageArcology"><<link "Manage Arcology">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Arcology">><</link>></span> @@.cyan;[C]@@ <br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@ <br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@ - <br><span id="PAOButton"><<link [[Personal Assistant|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@ - <br><span id="policyButton"><<link [[Policies]]>><</link>></span> @@.cyan;[Y]@@ - <<if $FSAnnounced>> - <br><span id="FSButton"><<link [[Future Societies|Future Society]]>><</link>></span> @@.cyan;[F]@@ - <</if>> - <br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[V]@@ - <br><span id="optionsButton"><<link "Game Options">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Options">><</link>></span> @@.cyan;[O]@@ - <<if $secExp == 1>> <<if $propHub == 1>> <br><span id="propHub"><<link "Manage PR">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "propagandaHub">><</link>></span> @@.cyan;[Shift+H]@@ @@ -528,15 +520,27 @@ <<if $riotCenter == 1>> <br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@ <</if>> - <br><span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@ <</if>> - <<if $cyberMod != 0 && $researchLab.built == "true">> <br>[[Manage Research Lab|Research Lab][$temp = 0]] <</if>> <<if ($securityForceActive)>> - <br><span id="SFMButton"><<link [[SF Barracks|SFM Barracks]]>><</link>></span> @@.cyan;[Z]@@ + <br><span id="SFMButton"><<link [[SF Barracks|SFM Barracks]]>><</link>></span> @@.cyan;[Z]@@ + <</if>> + + <br> + <br><span id="PAOButton"><<link [[Personal Assistant|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@ + <br><span id="policyButton"><<link [[Policies]]>><</link>></span> @@.cyan;[Y]@@ + <<if $secExp == 1>> + <br><span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@ <</if>> + <<if $FSAnnounced>> + <br><span id="FSButton"><<link [[Future Societies|Future Society]]>><</link>></span> @@.cyan;[F]@@ <<if $FSCredits > 0>>@@.yellow;[!]@@<</if>> + <</if>> + <br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[V]@@ + + <br> + <br><span id="optionsButton"><<link "Game Options">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Options">><</link>></span> @@.cyan;[O]@@ <</if>> <br> @@ -544,14 +548,6 @@ <br> <br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@ <br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@ - <br><span id="PAOButton"><<link [[Personal Assistant|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@ - <br><span id="policyButton"><<link [[Policies]]>><</link>></span> @@.cyan;[Y]@@ - <<if $FSAnnounced>> - <br><span id="FSButton"><<link [[Future Societies|Future Society]]>><</link>></span> @@.cyan;[F]@@ - <</if>> - <br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[V]@@ - <br><span id="optionsButton"><<link "Game Options">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Options">><</link>></span> @@.cyan;[O]@@ - <<if $secExp == 1>> <<if $propHub == 1>> <br><span id="propHub"><<link "Manage PR">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "propagandaHub">><</link>></span> @@.cyan;[Shift+H]@@ @@ -565,15 +561,26 @@ <<if $riotCenter == 1>> <br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@ <</if>> - <br><span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@ <</if>> - <<if $cyberMod != 0 && $researchLab.built == "true">> <br>[[Manage Research Lab|Research Lab][$temp = 0]] <</if>> <<if ($securityForceActive)>> <br><span id="SFMButton"><<link [[SF Barracks|SFM Barracks]]>><</link>></span> @@.cyan;[Z]@@ + <</if>> + + <br> + <br><span id="PAOButton"><<link [[Personal Assistant|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@ + <br><span id="policyButton"><<link [[Policies]]>><</link>></span> @@.cyan;[Y]@@ + <<if $secExp == 1>> + <br><span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@ + <</if>> + <<if $FSAnnounced>> + <br><span id="FSButton"><<link [[Future Societies|Future Society]]>><</link>></span> @@.cyan;[F]@@ <</if>> + <br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[V]@@ + <br> + <br><span id="optionsButton"><<link "Game Options">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Options">><</link>></span> @@.cyan;[O]@@ <<elseif _Pass == "Manage Penthouse">> <br> <br><span id="manageArcology"><<link [[Manage Arcology|Manage Arcology]]>><</link>></span> @@.cyan;[C]@@ diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index bb0eac8dcafdfdf3a6d203608dccbf02be57259e..b8fc71114d172763e7647244390d10bf46c1d7ff 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -25,8 +25,9 @@ <<set $seed = $activeSlave.devotion>> -<<if ($activeSlave.health < random(-100,-80)) && ($surgeryType != "braces")>> +<<if ($activeSlave.health < random(-100,-80)) && ($surgeryType != "braces") && ($surgeryType != "removeBraces")>> $activeSlave.slaveName @@.red;has died from complications of surgery.@@ + <<if $surgeryType == "ocular implant">>At least the ocular implants are still good.<<set $stockpile.ocularImplant++>><</if>> <<include "Remove activeSlave">> <<set $nextLink = "Main">> <<elseif $surgeryType == "breastShapePreservation" && (($activeSlave.health-($activeSlave.boobs/1000)) < random(-100,-80))>> @@ -408,12 +409,31 @@ As the remote surgery's long recovery cycle completes, <<replace "#seed">> You simply take her on the spot, using her to your liking and shooting a load deep into her receptive pussy. The implant rewards her upon successful fertilization, so her moans of pleasure as you pull out of her inform you she'll soon <<if $activeSlave.broodmother == 2>>be greatly swollen<<else>>grow heavy<</if>> with @@.lime;your brood.@@ <<set $activeSlave.pregSource = -1>> + <<set WombImpregnate($activeSlave, 1, -1, 1)>> /* to ensure player fatherinity we need actual fetus here */ <<VaginalVCheck>> <</replace>> <</link>> </span> <</if>> +<<case "pregRemove">> + <<if ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She is @@.red; filled with despair@@ about missing being swollen with life and rubs her flat belly with sorrow. Only one fact slightly soothes her and allows to remain sane - at least she not become infertile and still can get pregnant naturally. As with all surgery @@.red;her health has been slightly affected.@@ + <<set $activeSlave.trust -= 10>> + <<set $activeSlave.devotion -= 30>> + <<elseif ($activeSlave.devotion > 50)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She's @@.hotpink;grateful@@ that you allow her body to be free of constant pregnancy stress, and a little nervous about if you will appreciate her enough without such dedication. As with all surgery @@.red;her health has been slightly affected.@@ + <<set $activeSlave.devotion += 4>> + <<elseif ($activeSlave.devotion >= -20)>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She understands the realities of her life as a slave, so it isn't much of a shock. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body. + <<set $activeSlave.trust -= 10>> + <<else>> + She leaves the surgery with a certain soreness and minor pain in her lower abdomen, she knows that her days as broodmother is finished. She does not understand the realities of her life as a slave at a core level, so she's @@.mediumorchid;terrified and angry@@ that you can change her boby so radically just at your will. As with all surgery @@.red;her health has been slightly affected.@@ She is @@.gold;sensibly fearful@@ of your total power over her body and her now empty womb. + <<set $activeSlave.trust -= 15>> + <<set $activeSlave.devotion -= 15>> + <</if>> + + <<case "freshOvaries">> <<if $activeSlave.ovaryAge >= 45>> <<if (($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)) || $activeSlave.origin == "She sold herself to you in the hope of someday bearing children.">> @@ -1174,16 +1194,31 @@ As the remote surgery's long recovery cycle completes, <<elseif ($activeSlave.teeth == "cosmetic braces")>> Quite aware that her aching teeth are now in braces, <<if ($activeSlave.devotion > 50)>> - She smiles tentatively at <<if canSee($activeSlave)>>herself in the mirror<<else>>you<</if>>. Her teeth are already quite straight, so she doesn't understand why you've done this. She's not unwilling to put up with inexplicable things you command, however, so she resolves to put up with this, too. + she smiles tentatively at <<if canSee($activeSlave)>>herself in the mirror<<else>>you<</if>>. Her teeth are already quite straight, so she doesn't understand why you've done this. She's not unwilling to put up with inexplicable things you command, however, so she resolves to put up with this, too. <<elseif ($activeSlave.devotion > 20)>> - She pulls her lips back to <<if canSee($activeSlave)>>check them out<<else>>feel them<</if>>. The discomfort is limited by the fact that her teeth are already straight. She doesn't understand why you've given her braces anyway, so her reaction is limited to vague confusion. + she pulls her lips back to <<if canSee($activeSlave)>>check them out<<else>>feel them<</if>>. The discomfort is limited by the fact that her teeth are already straight. She doesn't understand why you've given her braces anyway, so her reaction is limited to vague confusion. <<else>> - She pulls her lips back to <<if canSee($activeSlave)>>check them out<<else>>feel them<</if>>. Her teeth are already straight, limiting the discomfort but confusing her greatly. She's not a little relieved that the autosurgery's attention to her mouth only left her with pointless braces, and is only @@.mediumorchid;mildly angered@@ by the strange intrusion. + she pulls her lips back to <<if canSee($activeSlave)>>check them out<<else>>feel them<</if>>. Her teeth are already straight, limiting the discomfort but confusing her greatly. She's not a little relieved that the autosurgery's attention to her mouth only left her with pointless braces, and is only @@.mediumorchid;mildly angered@@ by the strange intrusion. <<set $activeSlave.devotion -= 2>> <</if>> Though unpleasant, orthodontia isn't particularly harmful; her health is unaffected. <</if>> +<<case "removeBraces">> + Quite aware that her teeth are now free of her braces, + <<if ($activeSlave.devotion > 50)>> + she smiles tentatively <<if canSee($activeSlave)>>at herself in the mirror<<else>>and runs her tongue across her teeth<</if>> only to find they are as crooked as ever. She immediately shuts her mouth, @@.mediumorchid;her opinion of you souring,@@ and carries on as if you had never put them on her in the first place. + <<set $activeSlave.devotion -= 4>> + <<elseif ($activeSlave.devotion > 20)>> + she pulls her lips back to <<if canSee($activeSlave)>>check them out<<else>>feel them<</if>> only to find they are as crooked as ever. She immediately shuts her mouth, @@.mediumorchid;her opinion of you souring,@@ and carries on as if you had never put them on her in the first place. + <<set $activeSlave.devotion -= 2>> + <<else>> + she pulls her lips back to <<if canSee($activeSlave)>>check them out<<else>>feel them<</if>>. She knows that straightening teeth is expensive and sighs, feeling that she's @@.mediumorchid;not worth the expense.@@ No matter what she thought of you, she felt she would at least benefit from having nice teeth, and now it's clear to her: @@.gold;You don't care.@@ + <<set $activeSlave.devotion -= 5, $activeSlave.trust -= 5>> + <</if>> + Though unpleasant, orthodontia isn't particularly harmful; her health is unaffected. + + <<case "teeth">> <<if ($activeSlave.devotion > 50)>> She clearly feels quite normal except for a vague ache around her jaw. It takes a good while for her to figure out what has happened, but eventually she gets enough sensation in her mouth to realize that she is wearing prosthetic teeth that she can remove. She gasps with shock, but figures out the idea quickly enough by experimentally <<if $activeSlave.amp != 1>>sucking on two fingers.<<else>>simulating oral sex with her own tongue.<</if>> @@.hotpink;She has become more submissive due to your radical reshaping of her body.@@ Since the surgery was invasive, @@.red;her health has been greatly affected.@@ @@ -1929,7 +1964,7 @@ As the remote surgery's long recovery cycle completes, <<if ($PC.medicine >= 100)>> <br><br> Since you @@.springgreen;performed the surgery yourself,@@ and you do artist's work, her health is @@.green;less affected@@ by the surgery than it would have been if you'd paid some hack to do it remotely. - <<if ($surgeryType != "braces")>> + <<if ($surgeryType != "braces") && ($surgeryType != "removeBraces")>> <<set $activeSlave.health += 5>> <</if>> <<if ($activeSlave.fetish != "mindbroken")>> @@ -1944,7 +1979,7 @@ As the remote surgery's long recovery cycle completes, She is @@.mediumorchid;even more hateful@@ of you afterward than she would otherwise be. It must seem to her that she's nothing more than a test subject to you. <<set $activeSlave.devotion -= 5>> <</if>> - <<elseif ($surgeryType != "braces")>> + <<elseif ($surgeryType != "braces") && ($surgeryType != "removeBraces")>> <<if ($activeSlave.devotion > 50)>> Since she's happy with the results, she's almost beside herself with @@.hotpink;gratitude,@@ and filled with @@.mediumaquamarine;admiration@@ of your skill. <<set $activeSlave.devotion += 4, $activeSlave.trust += 4>> diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw index 7f1087b8f09385afe0d6b4fc7f167d44396ff10d..ef7a49c941f14cc3ab371c241bd944a60a3a47f2 100644 --- a/src/utility/assayWidgets.tw +++ b/src/utility/assayWidgets.tw @@ -230,7 +230,7 @@ <<else>> /* FUCKDOLL */ -<<set $beauty += 100 + ($args[0].waist/20) - ($args[0].muscles/30) +($args[0].lips/10) + ($args[0].face/10) + ($args[0].clit) + (($args[0].height-160)/10) + (2*$args[0].hips)>> +<<set $beauty += 120 - ($args[0].waist/20) - ($args[0].muscles/30) + ($args[0].lips/10) + ($args[0].clit) + (($args[0].height-160)/10) + (2*$args[0].hips)>> <</if>> /* CLOSES FUCKDOLL CHECK */ @@ -1113,311 +1113,6 @@ <</widget>> -<<widget "FResult">> - -<<set $FResult = (3-$args[0].anus)+($args[0].muscles/30)>> - -<<if $args[0].muscles < -95>> - <<set $FResult -= 5>> -<<elseif $args[0].muscles < -30>> - <<set $FResult -= 2>> -<</if>> - -<<set $seed = $oralUseWeight + $vaginalUseWeight + $analUseWeight>> - -<<if $seed > 0>> -<<set $FResult += (6+$args[0].tonguePiercing)*($oralUseWeight/$seed)*($args[0].oralSkill/30)>> -<<if $args[0].sexualFlaw == "cum addict">> - <<set $FResult += ($oralUseWeight/$seed)*($args[0].oralSkill/30)>> -<</if>> -<<if $args[0].vagina > -1>> -<<if $args[0].vaginalAccessory != "chastity belt">> - <<set $FResult += 6*($vaginalUseWeight/$seed)*($args[0].vaginalSkill/30)>> - <<set $FResult += (3-$args[0].vagina)>> - <<set $FResult += ($args[0].vaginaLube)>> -<</if>> -<</if>> - <<set $FResult += 6*($analUseWeight/$seed)*($args[0].analSkill/30)>> -<<if $args[0].sexualFlaw == "anal addict">> - <<set $FResult += ($analUseWeight/$seed)*($args[0].analSkill/30)>> -<</if>> -<<if $args[0].inflationType == "aphrodisiac">> - <<set $FResult += ($analUseWeight/$seed)*($args[0].inflation*3)>> -<</if>> -<</if>> - -<<if $args[0].fuckdoll == 0>> /* NOT A FUCKDOLL */ - -<<if $familyTesting == 1>> - <<if totalRelatives($args[0]) > 0>> - <<for $j = 0; $j < $slaves.length; $j++>> - <<if $args[0].mother == $slaves[$j].ID>> - <<if $slaves[$j].assignment == $args[0].assignment>> - <<set $FResult += 1>> - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - <<set $FResult += 1>> - <</if>> - <</if>> - <</if>> - <<if $args[0].father == $slaves[$j].ID>> - <<if $slaves[$j].assignment == $args[0].assignment>> - <<set $FResult += 1>> - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - <<set $FResult += 1>> - <</if>> - <</if>> - <</if>> - <<if $slaves[$j].mother == $args[0].ID || $slaves[$j].father == $args[0].ID>> - <<if $slaves[$j].assignment == $args[0].assignment>> - <<set $FResult += 1>> - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - <<set $FResult += 1>> - <</if>> - <</if>> - <</if>> - <<if areSisters($args[0], $slaves[$j]) > 0>> - <<if $slaves[$j].assignment == $args[0].assignment>> - <<set $FResult += 1>> - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - <<set $FResult += 1>> - <</if>> - <</if>> - <</if>> - <</for>> - <</if>> -<<else>> - <<if $args[0].relation != 0>> - <<set _fre = $slaves.findIndex(function(s) { return s.ID == $args[0].relationTarget && s.assignment == $args[0].assignment; })>> - <<if _fre != -1>> - <<set $FResult += 2>> - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - <<set $FResult += 2>> - <</if>> - <</if>> - <</if>> -<</if>> -<<if $args[0].relationship > 0>> - <<set _fre = $slaves.findIndex(function(s) { return s.ID == $args[0].relationshipTarget && s.assignment == $args[0].assignment; })>> - <<if _fre != -1>> - <<set $FResult += 1>> - <</if>> -<<elseif $args[0].relationship == -1>> - <<set $FResult += 2>> -<</if>> -<<if $args[0].rivalry != 0>> - <<set _fre = $slaves.findIndex(function(s) { return s.ID == $args[0].rivalryTarget && s.assignment == $args[0].assignment; })>> - <<if _fre != -1>> - <<set $FResult -= 1>> - <</if>> -<</if>> - -<<if $args[0].drugs == "male hormone injections" || $args[0].drugs == "female hormone injections">> - <<set $FResult -= 10>> -<</if>> - -<<if $args[0].diet == "XXY">> - <<set $FResult += 2>> -<<elseif $args[0].diet == "XY" || $args[0].diet == "XX">> - <<set $FResult += 1>> -<<elseif $args[0].diet == "cum production">> - <<set $FResult += 1>> -<</if>> - -<<if $arcologies[0].FSRepopulationFocus > 20>> - <<if $args[0].preg > 10>> - <<set $FResult += 2>> - <<else>> - <<set $FResult -= 2>> - <</if>> -<<elseif $arcologies[0].FSRestart > 20>> - <<if $args[0].bellyPreg >= 500 && $args[0].breedingMark == 1>> - <<set $FResult += 1>> - <<elseif $args[0].preg > 10>> - <<set $FResult -= 10>> - <<else>> - <<set $FResult += 0>> - <</if>> -<</if>> - -<<if ($args[0].clitPiercing > 2)>> - <<set $FResult += 1>> -<</if>> - -<<if $arcologies[0].FSSupremacist != "unset">> - <<if $args[0].race == $arcologies[0].FSSupremacistRace>> - <<set $FResult -= ($arcologies[0].FSSupremacist/5)+($arcologies[0].FSSupremacistLawME*10)>> - <</if>> -<</if>> -<<if $arcologies[0].FSSubjugationist != "unset">> - <<if $args[0].race == $arcologies[0].FSSubjugationistRace>> - <<set $FResult += ($arcologies[0].FSSubjugationist/10)+($arcologies[0].FSSubjugationistLawME)>> - <</if>> -<</if>> - -<<if ($args[0].fetishKnown == 1)>> -<<if ($args[0].fetishStrength > 60)>> -<<if ($args[0].fetish != "none")>> - <<set $FResult += $args[0].fetishStrength/5>> -<</if>> -<</if>> -<</if>> -<<if ($args[0].attrKnown == 1)>> -<<set $FResult += Math.trunc($args[0].attrXX/20)>> -<<set $FResult += Math.trunc($args[0].attrXY/20)>> -<<if ($args[0].energy > 95)>> - <<set $FResult += 3>> -<<elseif ($args[0].energy > 80)>> - <<set $FResult += 2>> -<<elseif ($args[0].energy > 60)>> - <<set $FResult += 1>> -<<elseif ($args[0].energy <= 20)>> - <<set $FResult -= 2>> -<<elseif ($args[0].energy <= 40)>> - <<set $FResult -= 1>> -<</if>> -<</if>> - -<<if ($args[0].sexualFlaw != "none")>> - <<set $FResult -= 2>> -<</if>> -<<if ($args[0].sexualQuirk != "none")>> - <<set $FResult += 2>> -<</if>> -<<if ($args[0].behavioralFlaw != "none")>> - <<set $FResult -= 2>> -<</if>> -<<if ($args[0].behavioralQuirk != "none")>> - <<set $FResult += 2>> -<</if>> - -<<if setup.whoreCareers.includes($args[0].career)>> - <<set $FResult += 1>> -<<elseif ($args[0].oralCount + $args[0].analCount + $args[0].vaginalCount + $args[0].mammaryCount + $args[0].penetrativeCount > 1000)>> - <<set $FResult += 1>> -<</if>> - -<<if !canSee($args[0])>> - <<set $FResult -= 3>> -<<elseif $args[0].eyes <= -1>> - <<if $args[0].eyewear != "corrective glasses">> - <<if $args[0].eyewear != "corrective contacts">> - <<set $FResult -= 1>> - <</if>> - <</if>> -<<elseif $args[0].eyewear == "blurring glasses">> - <<set $FResult -= 1>> -<<elseif $args[0].eyewear == "blurring contacts">> - <<set $FResult -= 1>> -<</if>> - -<<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <<if ndef $racialVarieties>> - <<set $racialVarieties = []>> - <</if>> - <<set $seed = 0>> - <<for $j = 0; $j < $racialVarieties.length; $j++>> - <<if $args[0].race == $racialVarieties[$j]>> - <<set $seed = 1>> - <</if>> - <</for>> - <<if $seed == 0>> - <<set $racialVarieties.push($args[0].race)>> - <</if>> -<</if>> - -<<if $arcologies[0].FSYouthPreferentialist != "unset">> - <<if $args[0].visualAge < 30>> - <<if $args[0].actualAge > 30>> - <<set $FResult += 5>> /* experienced for her apparent age */ - <</if>> - <<if $args[0].physicalAge > 30>> - <<set $FResult -= $args[0].physicalAge/2>> /* young bodies shouldn't be creaking like that */ - <</if>> - <</if>> -<<elseif $arcologies[0].FSMaturityPreferentialist != "unset">> - <<if $args[0].visualAge >= 30 && $args[0].actualAge >= 30 && $args[0].physicalAge < $args[0].visualAge>> - <<set _kickingBody = Math.min((($args[0].physicalAge-$args[0].visualAge)*2),20)>> /* looks and acts mature, but has a body that just won't quit */ - <<set $FResult += _kickingBody>> - <</if>> -<</if>> - -<<else>> /* FUCKDOLL */ - -<<set $FResult += $args[0].fuckdoll/10>> - -<</if>> /* CLOSES FUCKDOLL CHECK */ - -<<set $FResult += Math.max(0, $args[0].aphrodisiacs)*2>> -<<if $args[0].inflationType == "aphrodisiac">> - <<set $FResult += $args[0].inflation*4>> -<</if>> - -<<if ($args[0].lactation > 0)>> - <<set $FResult += 1>> -<</if>> - -<<if $seeAge == 1>> -<<if $args[0].physicalAge == $minimumSlaveAge && $args[0].physicalAge == $fertilityAge && canGetPregnant($args[0]) && ($arcologies[0].FSRepopulationFocus != "unset" || $arcologies[0].FSGenderFundamentalist != "unset")>> - <<set $FResult += 1>> - <<if $args[0].birthWeek == 0>> - <<set $FResult += 1*$FResult>> - <<elseif $args[0].birthWeek < 4>> - <<set $FResult += 0.2*$FResult>> - <</if>> -<<elseif $args[0].physicalAge == $minimumSlaveAge>> - <<set $FResult += 1>> - <<if $args[0].birthWeek == 0>> - <<set $FResult += 0.5*$FResult>> - <<elseif $args[0].birthWeek < 4>> - <<set $FResult += 0.1*$FResult>> - <</if>> -<<elseif $args[0].physicalAge == $fertilityAge && canGetPregnant($args[0]) && ($arcologies[0].FSRepopulationFocus != "unset" || $arcologies[0].FSGenderFundamentalist != "unset")>> - <<set $FResult += 1>> - <<if $args[0].birthWeek == 0>> - <<set $FResult += 0.5*$FResult>> - <<elseif $args[0].birthWeek < 4>> - <<set $FResult += 0.1*$FResult>> - <</if>> -<</if>> -<</if>> - -<<if ($args[0].fetish == "mindbroken")>> - <<set $FResult = Math.trunc($FResult*0.4)>> -<<else>> - <<set $FResult = Math.trunc($FResult*0.7)>> -<</if>> - -<<if $args[0].pregWeek < 0>> - <<set $FResult = Math.trunc($FResult*((10+($args[0].pregWeek))*.10))>> /* should be reduced the msot just after birth and increase until normal */ -<</if>> - -<<if $args[0].amp == 0>> -<<elseif $args[0].amp == 1>> - <<set $FResult -= 2>> -<<elseif $args[0].amp == -2>> -<<elseif $args[0].amp == -5>> -<<else>> - <<set $FResult -= 1>> -<</if>> - -<<if $arcologies[0].FSHedonisticDecadence > 20>> - <<if $args[0].weight < 10>> - <<set $FResult -= 2>> - <<elseif $args[0].weight > 190>> /* literally too fat to fuck */ - <<set $FResult -= 5>> - <</if>> -<</if>> - -<<if $FResult < 2>> - <<if $arcologies[0].FSSupremacist != "unset" && $args[0].race == $arcologies[0].FSSupremacistRace>> - <<set $FResult = 0>> - <<else>> - <<set $FResult = 2>> - <</if>> -<</if>> - -<</widget>> - <<widget "Deadliness">> <<set $deadliness = 2>> @@ -1540,7 +1235,7 @@ <<if !canSee($args[0])>> <<set $deadliness -= 8>> -<<elseif ($args[0].eyes == -1 && ($args[0].eyewear != "corrective glasses" || $args[0].eyewear != "corrective contacts")) || ($args[0].eyes == 1 && ($args[0].eyewear == "blurring glasses" || $args[0].eyewear == "blurring contacts"))>> +<<elseif (($args[0].eyes == -1) && ($args[0].eyewear != "corrective glasses") && ($args[0].eyewear != "corrective contacts")) || ($args[0].eyes == 1 && ($args[0].eyewear == "blurring glasses" || $args[0].eyewear == "blurring contacts"))>> <<set $deadliness -= 1>> <</if>> @@ -1613,10 +1308,10 @@ <</if>> <<if $args[0].visualAge < 13>> - <<if $args[0].vagina > -1>> - <<set $desc = "loli " + $desc>> - <<else>> + <<if $args[0].genes == "XY" && $args[0].vagina == -1>> <<set $desc = "shota " + $desc>> + <<else>> + <<set $desc = "loli " + $desc>> <</if>> <</if>> @@ -1662,7 +1357,9 @@ <<set $desc = "big bottomed " + $desc>> <</if>> -<<if $args[0].births >= 10>> +<<if $args[0].weight > 10 && $args[0].weight < 100 && $args[0].boobs > 5000 && $args[0].butt > 5 && $args[0].hips >= 2 && $args[0].bellyPreg >= 30000 && $args[0].births >= 10>> + <<set $desc = $desc + "fertility goddess">> +<<elseif $args[0].births >= 6>> <<set $desc = $desc + " broodmother">> <<elseif $args[0].births >= 3>> <<set $desc = $desc + " breeder">> @@ -1953,7 +1650,14 @@ <<widget "fetishChangeChance">> <<if $args[0].clitSetting != $args[0].fetish>> - <<set $fetishChangeChance = Math.trunc(Math.clamp(($args[0].devotion/4)-($args[0].fetishStrength/4), 0, 100))>> + <<if $args[0].balls>> + <<set _sex = $potencyAge-$args[0].actualAge>> + <<elseif $args[0].ovaries || $args[0].mpreg>> + <<set _sex = $fertilityAge-$args[0].actualAge>> + <<else>> + <<set _sex = 0>> + <</if>> + <<set $fetishChangeChance = Math.trunc(Math.clamp(($args[0].devotion/4)-($args[0].fetishStrength/4)-(Math.max(_sex,0)*10), 0, 100))>> <<else>> <<set $fetishChangeChance = 0>> <</if>> @@ -1963,7 +1667,7 @@ <<widget "slaveCost">> <<Beauty $args[0]>> -<<FResult $args[0]>> +<<set FResult($args[0])>> <<set $slaveCost = ($beauty*$FResult)>> diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw index 8b9895bdcc82a3fb20d5f759b8b5ee38e37c7c19..12280b27e71083c71358214b02a4b8f1d9247996 100644 --- a/src/utility/birthWidgets.tw +++ b/src/utility/birthWidgets.tw @@ -1186,6 +1186,11 @@ Feeling childbirth approaching, $slaves[$i].slaveName is helped to her prepared <</switch>> +<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>> + <br>The Societal Elite @@.red;are furious@@ you would allow an elite child to perish under your watch<<if _curBabies > 1>>, let alone mulitple<</if>>. + <<set $failedElite += 100>> +<</if>> + <</widget>> diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw index 550433dee32b4bb8ca9f8fc5ccacb2bbfdb27425..519ee037a5e5255c3c270e19a6cd0401d86c9d95 100644 --- a/src/utility/descriptionWidgets.tw +++ b/src/utility/descriptionWidgets.tw @@ -18,6 +18,7 @@ <<case "slaving">>This week you will learn slaving. <<case "engineering">>This week you will learn engineering. <<case "medicine">>This week you will learn medicine. +<<case "hacking">>This week you will learn hacking. <<case "proclamation">>This week you plan to issue a proclamation about $proclamationType. <<default>> <<if _PA.length > 0>> @@ -29,83 +30,39 @@ this week. <</if>> <</switch>> +<</if>> /* closes wound check */ -<<if $lowercaseDonkey == 1>> -<span id="managePA"><strong><<link "Change plans">><<goto "Personal Attention Select">><</link>></strong></span> @@.cyan;[A]@@ +<<if $PCWounded != 1>><span id="managePA"><strong><<link "Change plans">><<goto "Personal Attention Select">><</link>></strong></span> @@.cyan;[A]@@<</if>> -<<if $useTabs == 0>> +<<if $useSlaveSummaryOverviewTab != 1>> /* Hide this block if it will be shown on the overview tab */ <br> <<if _HG > -1>> ''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is <<if ndef $headGirlFocus>>serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.<<else>>your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort,<</if>> and is focusing on your slaves' $headGirlFocus.<</if>> <span id="manageHG"><strong><<link "Manage Head Girl">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@ - <<set $showOneSlave = "Head Girl">> <<elseif (_HG == -1) && ($slaves.length > 1)>> - You have @@.red;not@@ selected a Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>. <span id="manageHG"><strong><<link "Select one">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@ + You have not selected a Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>. <span id="manageHG"><strong><<link "Select one">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@ <<elseif (_HG == -1)>> //You do not have enough slaves to keep a Head Girl// <</if>> <br> <<if _RC > -1>> - ''__@@.pink;<<SlaveFullName $Recruiter>>@@__'' is working - <<if $recruiterTarget != "other arcologies">> - to recruit girls. - <<else>> - as a Sexual - <<if $arcologies[0].influenceTarget == -1>> - Ambassador, but @@.red;she has no target to influence.@@ - <<else>> - Ambassador to <<for $i = 0; $i < $arcologies.length; $i++>><<if $arcologies[$i].direction == $arcologies[0].influenceTarget>>$arcologies[$i].name<<break>><</if>><</for>>. - <</if>> - <</if>> + ''__@@.pink;<<SlaveFullName $Recruiter>>@@__'' is working to recruit girls. <span id="manageRecruiter"><strong><<link "Manage Recruiter">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@ - <<set $showOneSlave = "recruit girls">> <<else>> - You have @@.red;not@@ selected a Recruiter. + You have not selected a Recruiter. <span id="manageRecruiter"><strong><<link "Select one">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@ <</if>> <<if ($dojo != 0)>> <br> <<if _BG > -1>> ''__@@.pink;<<SlaveFullName $Bodyguard>>@@__'' is serving as your bodyguard. <span id="manageBG"><strong><<link "Manage Bodyguard">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@ - <<set $showOneSlave = "guard you">> <<else>> - You have @@.red;not@@ selected a Bodyguard. <span id="manageBG"><strong><<link "Select one">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@ + You have not selected a Bodyguard. <span id="manageBG"><strong><<link "Select one">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@ <</if>> <</if>> <</if>> -<<else>> - -<span id="managePA"><strong><<link "Change plans">><<goto "Personal Attention Select">><</link>></strong></span> @@.cyan;[A]@@ -<br> -<<if _HG > -1>> - ''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is <<if ndef $headGirlFocus>>serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.<<else>>your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort,<</if>> and is focusing on your slaves' $headGirlFocus.<</if>> - <span id="manageHG"><strong><<link "Manage Head Girl">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@ -<<elseif (_HG == -1) && ($slaves.length > 1)>> - You have not selected a Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>. <span id="manageHG"><strong><<link "Select one">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@ -<<elseif (_HG == -1)>> - //You do not have enough slaves to keep a Head Girl// -<</if>> -<br> -<<if _RC > -1>> - ''__@@.pink;<<SlaveFullName $Recruiter>>@@__'' is working to recruit girls. - <span id="manageRecruiter"><strong><<link "Manage Recruiter">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@ -<<else>> - You have not selected a Recruiter. - <span id="manageRecruiter"><strong><<link "Select one">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@ -<</if>> -<<if ($dojo != 0)>> - <br> - <<if _BG > -1>> - ''__@@.pink;<<SlaveFullName $Bodyguard>>@@__'' is serving as your bodyguard. <span id="manageBG"><strong><<link "Manage Bodyguard">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@ - <<else>> - You have not selected a Bodyguard. <span id="manageBG"><strong><<link "Select one">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@ - <</if>> -<</if>> - -<</if>> /* closes lowercase_donkey's BS */ - /* cycle through slaves, for each slave cycle through completed organs and track how many are of the interrogated slave (and if organs have a slaves to be implanted on) */ <<if $completedOrgans.length > 0>> <<set _validOrgans = 0>> @@ -212,7 +169,6 @@ <br>@@.yellow;For your first purchase, @@<strong>[[The Futanari Sisters][$slavesSeen += 1]]</strong>@@.yellow; will sell at half price this week.@@ <</if>> <</if>> -<</if>> /* closes wound check */ </center> <</widget>> diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index 98b14b42d9933b49da201a460a596a37df5ba852..f7ebbb9a887532d375fdd3bdb55c5e6788f0da6e 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -2693,7 +2693,7 @@ $pronounCap's got a $pronounCap's such a nympho that despite this, $possessive limp member is tipped by a drop of precum. <</if>> <<elseif ($activeSlave.dick > 1) && ($activeSlave.hormoneBalance >= 100)>> - Since $pronoun's on an intense regimen of female hormones, $possessive cock is soft. + Since $possessive body is flooded with female hormones, $possessive cock is soft. <<if ($activeSlave.devotion > 75)>> Despite this, $pronoun's so devoted to you that being near you has $possessive horny. $possessiveCap limp member is tipped by a drop of precum. <<elseif ($activeSlave.drugs == "testicle enhancement") || ($activeSlave.drugs == "hyper testicle enhancement")>> @@ -3263,7 +3263,7 @@ $pronounCap's got a <<if $activeSlave.dick > 0>> <<if $activeSlave.vagina > -1>> $possessiveCap - <<if $activeSlave.ovaries == 1>> + <<if $activeSlave.genes == "XX">> beautifully natural <<else>> artificial @@ -3962,7 +3962,7 @@ $possessiveCap <<elseif $activeSlave.weight > 160>> $possessiveCap face is round and plump with a trio of extra chins. <<elseif $activeSlave.weight > 130>> - $possessiveCap face is chubby with an obivous second chin. + $possessiveCap face is chubby with an obvious second chin. <<elseif $activeSlave.weight > 97>> $possessiveCap face is soft with barely a second chin. <</if>> @@ -4185,7 +4185,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4212,7 +4212,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4245,7 +4245,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4272,7 +4272,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4305,7 +4305,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4332,7 +4332,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4363,7 +4363,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4388,7 +4388,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4414,12 +4414,30 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 30>> Given how far along $pronoun is, $pronoun is clearly having an obscene number of children. + <<elseif $activeSlave.preg > 42>> + <<if $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. It has grown so large that $pronoun will never be able to birth it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 3>> + $possessiveCap womb contains a trio of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 4>> + $possessiveCap womb contains a quartet of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 5>> + $possessiveCap womb contains a quintet of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 6>> + $possessiveCap womb contains a sextet of oversized babies. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 7>> + $possessiveCap womb contains a septet of oversized babies. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 8>> + $possessiveCap womb contains an octet of oversized babies. There is little chance of $object giving birth to them. + <</if>> <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4444,7 +4462,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4469,14 +4487,28 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 40>> Given how far along $pronoun is, $pronoun is clearly having an obscene number of children. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with octuplets. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. It has grown so large that $pronoun will never be able to birth it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 3>> + $possessiveCap womb contains a trio of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 4>> + $possessiveCap womb contains a quartet of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 5>> + $possessiveCap womb contains a quintet of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 6>> + $possessiveCap womb contains a sextet of oversized babies. There is little chance of $object giving birth to them. + <<elseif $activeSlave.pregType == 7>> + $possessiveCap womb contains a septet of oversized babies. There is little to no chance of $object giving birth to them. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4500,7 +4532,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4525,14 +4557,26 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 40>> Given how far along $pronoun is, $pronoun is clearly having more than seven. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with septuplets. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. It has grown so large that $pronoun will never be able to birth it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 3>> + $possessiveCap womb contains a trio of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 4>> + $possessiveCap womb contains a quartet of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 5>> + $possessiveCap womb contains a quintet of massive unborn children. There is little chance of $object giving birth to them. + <<elseif $activeSlave.pregType == 6>> + $possessiveCap womb contains a sextet of oversized babies. There is little to no chance of $object giving birth to them. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4556,7 +4600,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4581,14 +4625,24 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 40>> Given how far along $pronoun is, $pronoun is clearly having more than six. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with sextuplets. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. It has grown so large that $pronoun will never be able to birth it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 3>> + $possessiveCap womb contains a trio of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 4>> + $possessiveCap womb contains a quartet of massive unborn children. There is little chance of $object giving birth to them. + <<elseif $activeSlave.pregType == 5>> + $possessiveCap womb contains a quintet of oversized babies. There is little to no chance of $object giving birth to them. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4612,7 +4666,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4637,14 +4691,22 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 40>> Given how far along $pronoun is, $pronoun is clearly having more than five. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with quintuplets. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. It has grown so large that $pronoun will never be able to birth it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of massive unborn children. They have grown so large that $pronoun will never be able to birth them. + <<elseif $activeSlave.pregType == 3>> + $possessiveCap womb contains a trio of massive unborn children. There is little chance of $object giving birth to them. + <<elseif $activeSlave.pregType == 4>> + $possessiveCap womb contains a quartet of oversized babies. There is little to no chance of $object giving birth to them. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4668,7 +4730,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4693,14 +4755,20 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 36>> Given how far along $pronoun is, $pronoun is clearly having more than four. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with quadruplets. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. It has grown so large that $pronoun will never be able to birth it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of massive unborn children. There is little to no chance of $object giving birth to them. + <<elseif $activeSlave.pregType == 3>> + $possessiveCap womb contains a trio of oversized babies. There is little chance of $object giving birth to them. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4724,7 +4792,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4749,14 +4817,18 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 35>> Given how far along $pronoun is, $pronoun is clearly having more than three. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with triplets. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive unborn child. There is little to no chance of $object giving birth to it. + <<elseif $activeSlave.pregType == 2>> + $possessiveCap womb contains a pair of oversized babies. There is little chance of $object giving birth to them. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4780,7 +4852,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4805,14 +4877,16 @@ $pronounCap has <</if>> <<if $activeSlave.preg < 33>> Given how far along $pronoun is, $pronoun is clearly having more than two. - <<else>> + <<elseif $activeSlave.preg < 42>> $pronounCap is clearly full-term with twins. + <<elseif $activeSlave.pregType == 1>> + $possessiveCap womb contains one single, massive child. There is little chance of $object giving birth to it. <</if>> <<if $activeSlave.bellyFluid >= 1500>> <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4836,7 +4910,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4868,7 +4942,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4892,7 +4966,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -4940,7 +5014,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -4964,7 +5038,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -5007,7 +5081,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <<else>> @@ -5031,7 +5105,7 @@ $pronounCap has <<if $activeSlave.inflationMethod == 2>> There is a distinct curve to $possessive upper belly; the result of a stomach filled with $activeSlave.inflationType. <<else>> - $possessiveCaps stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. + $possessiveCap stomach bulges a little larger thanks to all the $activeSlave.inflationType in $possessive bowels. <</if>> <</if>> <</if>> @@ -5433,14 +5507,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's corset strains around $possessive massive gut. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly comfortably bulges out of $possessive corset. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly comfortably bulges out of $possessive corset. <<else>> $activeSlave.slaveName's huge pregnant belly comfortably bulges out of $possessive corset. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly comfortably bulges out of $possessive corset. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly comfortably bulges out of $possessive corset. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly comfortably bulges out of $possessive corset. @@ -5452,7 +5530,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's huge gut hangs out the hole in $possessive corset designed to accommodate a pregnant belly. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly comfortably bulges out of $possessive corset. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly comfortably hangs out of $possessive corset. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly comfortably bulges out of $possessive corset. @@ -5462,7 +5542,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's large gut hangs out the hole in $possessive corset designed to accommodate a pregnant belly. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly comfortably rounds out $possessive corset. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is lightly compressed by $possessive corset making $possessive uncomfortable. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly comfortably rounds out $possessive corset. @@ -5570,7 +5652,9 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's massively fat belly is brutally squeezed by the suit forming a firm latex globe with the slightest bit of give to it. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly is allowed to bulge out of a huge hole in the suit. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly is allowed to bulge out of a huge hole in the suit. <<else>> @@ -5581,7 +5665,9 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly is allowed to bulge out of a huge hole in the suit. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly is allowed to bulge out of a huge hole in the suit. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly is allowed to bulge out of a huge hole in the suit. @@ -5593,7 +5679,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's big fat belly is cruelly squeezed by the suit. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly is allowed to bulge out of a hole in the suit. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is allowed to bulge out of a hole in the suit. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly is allowed to bulge out of a hole in the suit. @@ -5603,7 +5691,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's fat belly is cruelly squeezed by the suit. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnancy is tighly squeezed by the suit creating a noticeable bulge. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is tightly squeezed by the suit. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly nearly requires $object to be switched into a suit with a hole for it to hang out from. @@ -5833,7 +5923,19 @@ $pronounCap has $activeSlave.slaveName's blouse is pulled taut just trying to cover the top of $possessive massively fat belly; the rest is allowed to jiggle freely. <</if>> <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + <<if ($activeSlave.boobs > 24000)>> + $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive huge pregnant belly, though they do a fine job of hiding it themselves. + <<elseif ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly is barely hidden by $possessive massive tits and oversized sweater. + <<elseif ($activeSlave.boobs > 8000)>> + $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive huge pregnant belly. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's sweater is pulled taut by $possessive huge pregnant belly; it barely reaches $possessive popped navel. + <<else>> + $activeSlave.slaveName's blouse is pulled taut by $possessive huge pregnant belly; it barely reaches $possessive popped navel. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> <<if ($activeSlave.boobs > 24000)>> $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive huge implant-filled belly, though they do a fine job of hiding it themselves. @@ -5860,10 +5962,22 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> - <<if ($activeSlave.boobs > 20000)>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + <<if ($activeSlave.boobs > 24000)>> + $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive big pregnant belly, though they do a fine job of hiding it themselves. + <<elseif ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big pregnant belly is hidden by $possessive massive tits and oversized sweater. + <<elseif ($activeSlave.boobs > 8000)>> + $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive big pregnant belly. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's sweater is pulled taut by $possessive big pregnant belly, the bottom of which can be seen peeking out from underneath. $possessiveCap popped navel forms a small tent in the material. + <<else>> + $activeSlave.slaveName's blouse is pulled taut by $possessive big pregnant belly, the bottom of which can be seen peeking out from underneath. $possessiveCap popped navel forms a small tent in $possessive shirt. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 24000)>> $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive hugely swollen belly, though they do a fine job of hiding it themselves. - <<elseif ($activeSlave.boobs > 10000)>> + <<elseif ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's hugely swollen belly is hidden by $possessive massive tits and oversized sweater. <<elseif ($activeSlave.boobs > 8000)>> $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive hugely swollen belly. @@ -5922,10 +6036,22 @@ $pronounCap has $activeSlave.slaveName's blouse is pulled tight over most of $possessive big fat belly; the rest is allowed to jiggle freely. <</if>> <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> - <<if ($activeSlave.boobs > 20000)>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + <<if ($activeSlave.boobs > 24000)>> + $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive pregnant belly, though they do a fine job of hiding it themselves. + <<elseif ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's pregnant belly is hidden by $possessive massive tits and oversized sweater. + <<elseif ($activeSlave.boobs > 8000)>> + $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive pregnant belly. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's sweater is pulled taut by $possessive pregnant belly. $possessiveCap popped navel forms a small tent in material. + <<else>> + $activeSlave.slaveName's blouse is pulled taut by $possessive pregnant belly. $possessiveCap popped navel forms a small tent in $possessive shirt. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 24000)>> $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive jiggling <<print $activeSlave.inflationType>>-filled belly, though they do a fine job of hiding it themselves. - <<elseif ($activeSlave.boobs > 10000)>> + <<elseif ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is hidden by $possessive massive tits and oversized sweater. <<elseif ($activeSlave.boobs > 8000)>> $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive jiggling <<print $activeSlave.inflationType>>-filled belly. @@ -5935,9 +6061,9 @@ $pronounCap has $activeSlave.slaveName's blouse is pulled taut by $possessive jiggling <<print $activeSlave.inflationType>>-filled belly. $possessiveCap popped navel forms a small tent in $possessive shirt. <</if>> <<elseif $activeSlave.bellyImplant > 0>> - <<if ($activeSlave.boobs > 20000)>> + <<if ($activeSlave.boobs > 24000)>> $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive implant-filled belly, though they do a fine job of hiding it themselves. - <<elseif ($activeSlave.boobs > 10000)>> + <<elseif ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's implant-filled belly is hidden by $possessive massive tits and oversized sweater. <<elseif ($activeSlave.boobs > 8000)>> $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive implant-filled belly. @@ -5972,10 +6098,22 @@ $pronounCap has $activeSlave.slaveName's blouse is pulled tight over $possessive fat belly. The bottom of which peeks out from under it. <</if>> <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> - <<if ($activeSlave.boobs > 20000)>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + <<if ($activeSlave.boobs > 24000)>> + $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive small pregnant belly, though they do a fine job of hiding it themselves. + <<elseif ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's small pregnant belly is hidden by $possessive massive tits and oversized sweater. + <<elseif ($activeSlave.boobs > 8000)>> + $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive small pregnant belly. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's sweater bulges with $possessive small pregnant belly. + <<else>> + $activeSlave.slaveName's blouse bulges with $possessive small pregnant belly. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 24000)>> $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive <<print $activeSlave.inflationType>>-swollen belly, though they do a fine job of hiding it themselves. - <<elseif ($activeSlave.boobs > 10000)>> + <<elseif ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is hidden by $possessive massive tits and oversized sweater. <<elseif ($activeSlave.boobs > 8000)>> $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive <<print $activeSlave.inflationType>>-swollen belly. @@ -5985,9 +6123,9 @@ $pronounCap has $activeSlave.slaveName's blouse bulges with $possessive <<print $activeSlave.inflationType>>-swollen belly. <</if>> <<elseif $activeSlave.bellyImplant > 0>> - <<if ($activeSlave.boobs > 20000)>> + <<if ($activeSlave.boobs > 24000)>> $activeSlave.slaveName's immense breasts keep $possessive oversized sweater from covering $possessive implant-rounded belly, though they do a fine job of hiding it themselves. - <<elseif ($activeSlave.boobs > 10000)>> + <<elseif ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's implant-rounded belly is hidden by $possessive massive tits and oversized sweater. <<elseif ($activeSlave.boobs > 8000)>> $activeSlave.slaveName's oversized breasts keep $possessive sweater far from $possessive implant-rounded belly. @@ -6091,14 +6229,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's chains are practically buried in $possessive massively fat belly. The only hint of their presence are the deep ravines of flesh formed around them. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly is tightly wrapped with chains. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly is tightly wrapped with chains, causing it to bulge angrily as well as making $object squirm in discomfort. <<else>> $activeSlave.slaveName's huge pregnant belly is tightly wrapped with chains, causing it to bulge angrily as well as making $object squirm in discomfort. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly is tightly wrapped with chains. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly is tightly wrapped with chains, causing it to bulge angrily. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly is tightly wrapped with chains, causing it to bulge angrily. @@ -6110,7 +6252,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's chains sink deep into $possessive big fat belly; most end up swallowed by $possessive folds. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly is tightly wrapped with chains. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is tightly wrapped with chains, causing it to bulge angrily. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly is tightly wrapped with chains, causing it to bulge angrily. @@ -6120,7 +6264,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's chains sink deep into $possessive fat belly, several even disappearing beneath $possessive folds. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly is tightly wrapped with chains. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is tightly wrapped with chains. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly is tightly wrapped with chains. @@ -6182,14 +6328,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's flannel shirt can't close over $possessive massively fat belly, so $pronoun has left the bottom buttons open leaving it to hang, and jiggle, freely. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's flannel shirt can't close over $possessive huge pregnant belly, so $pronoun has left the bottom buttons open leaving $possessive belly hanging out. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's flannel shirt can't close over $possessive huge implant-filled belly, so $pronoun has left the bottom buttons open leaving $possessive stomach hanging out. <<else>> $activeSlave.slaveName's flannel shirt can't close over $possessive huge pregnant belly, so $pronoun has left the bottom buttons open leaving $possessive belly hanging out. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's flannel shirt can't close over $possessive big pregnant belly, so $pronoun has left the bottom buttons open leaving $possessive belly hanging out. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's flannel shirt can't close over $possessive hugely swollen belly, so $pronoun has left the bottom buttons open leaving $possessive belly hanging out. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's flannel shirt can't close over $possessive big implant-filled belly, so $pronoun has left the bottom buttons open leaving $possessive stomach hanging out. @@ -6201,7 +6351,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's flannel shirt can't close over $possessive big fat belly, so $pronoun has left the bottom buttons open leaving it to hang free. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's flannel shirt's buttons strain over $possessive pregnant belly. A patch of $possessive underbelly peeks from beneath the taut fabric and the exhausted garmit frequently rides up in defeat. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's flannel shirt's buttons strain over $possessive jiggling <<print $activeSlave.inflationType>>-filled belly. The struggling garmit frequently rides up in defeat. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's flannel shirt's buttons strain over $possessive implant-filled belly. A patch of $possessive underbelly peeks from beneath the taut fabric and the exhausted garmit frequently rides up in defeat. @@ -6211,7 +6363,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's flannel shirt strains to stay shut over $possessive fat belly, fat bulges between $possessive buttons and quite a bit of $possessive lower belly hangs out beneath $possessive shirt. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's flannel shirt bulges with $possessive small pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's flannel shirt bulges with $possessive <<print $activeSlave.inflationType>>-swollen belly. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's flannel shirt bulges with $possessive implant-rounded belly. @@ -6266,14 +6420,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's massively fat belly is covered in a sheen of special oil meant to prevent stretch marks. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly is covered in a sheen of oil. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly is covered in a sheen of special oil meant to prevent stretch marks. <<else>> $activeSlave.slaveName's huge pregnant belly is covered in a sheen of special oil meant to prevent stretch marks. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly is covered in a sheen of oil. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly is covered in a sheen of oil. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly is covered in a sheen of special oil meant to prevent stretch marks. @@ -6285,7 +6443,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's big fat belly is covered in a sheen of special oil meant to prevent stretch marks. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly is covered in a sheen of oil. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is covered in a sheen of oil. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly is covered in a sheen of special oil meant to prevent stretch marks. @@ -6295,7 +6455,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's fat belly is covered in a sheen of oil. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly is covered in a sheen of oil. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is covered in a sheen of oil. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly is covered in a sheen of oil. @@ -6357,14 +6519,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's toga bares $possessive middle to allow $possessive massively fat belly to hang free. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's toga tightly hugs $possessive huge pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's toga tightly hugs $possessive huge implant-filled belly. <<else>> $activeSlave.slaveName's toga tightly hugs $possessive huge pregnant belly. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's toga bulges greatly with $possessive big pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's toga bulges greatly with $possessive hugely swollen belly. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's toga bulges greatly with $possessive big implant-filled belly. @@ -6376,7 +6542,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's toga bulges greatly with $possessive big fat belly. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly rounds out the front of $possessive toga. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly rounds out the front of $possessive toga. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly rounds out the front of $possessive toga. @@ -6386,7 +6554,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's toga bulges with $possessive fat belly. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly gently bulges $possessive toga. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly gently bulges $possessive toga. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly gently bulges $possessive toga. @@ -6446,14 +6616,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's huipil meekly rests atop $possessive massively fat belly, though it itself is big enough to act in its stead. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly lifts $possessive huipil, exposing $possessive crotch for all to see. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly lifts $possessive huipil, exposing $possessive crotch for all to see. <<else>> $activeSlave.slaveName's huge pregnant belly lifts $possessive huipil, exposing $possessive crotch for all to see. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly lifts $possessive huipil, exposing $possessive crotch for all to see. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly lifts $possessive huipil, exposing $possessive crotch for all to see. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly lifts $possessive huipil, exposing $possessive crotch for all to see. @@ -6465,7 +6639,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's big fat belly lifts $possessive huipil, yet isn't big enough to hide $possessive shame. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly lifts $possessive huipil. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly lifts $possessive huipil. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly lifts $possessive huipil. @@ -6476,7 +6652,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's huipil gets lifted by $possessive fat belly, so it's useless for covering $possessive body. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly slightly bulges under $possessive huipil. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly slightly bulges under $possessive huipil. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly slightly bulges under $possessive huipil. @@ -6545,14 +6723,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $possessiveCap qipao is slit up the side. However, it merely rests atop $possessive massively fat belly. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $possessiveCap qipao is slit up the side. However, it only covers half of $possessive huge pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $possessiveCap qipao is slit up the side. However, it only covers half of $possessive huge implant-filled belly. <<else>> $possessiveCap qipao is slit up the side. However, it only covers half of $possessive huge pregnant belly. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $possessiveCap qipao is slit up the side. However, it barely covers $possessive big pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $possessiveCap qipao is slit up the side. However, it barely covers $possessive hugely swollen belly. <<elseif $activeSlave.bellyImplant > 0>> $possessiveCap qipao is slit up the side. However, it barely covers $possessive big implant-filled belly. @@ -6564,7 +6746,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $possessiveCap qipao is slit up the side. However, it barely covers $possessive big fat belly. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $possessiveCap qipao is slit up the side. However, it only covers $possessive pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $possessiveCap qipao is slit up the side. However, it only covers $possessive jiggling <<print $activeSlave.inflationType>>-filled belly. <<elseif $activeSlave.bellyImplant > 0>> $possessiveCap qipao is slit up the side. However, it only covers $possessive implant-filled belly. @@ -6574,7 +6758,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $possessiveCap qipao is slit up the side. However, it only covers $possessive fat belly, allowing it to hang free. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $possessiveCap qipao is slit up the side. The front is pushed out by $possessive small pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $possessiveCap qipao is slit up the side. The front is pushed out by $possessive <<print $activeSlave.inflationType>>-swollen belly. <<elseif $activeSlave.bellyImplant > 0>> $possessiveCap qipao is slit up the side. The front is pushed out by $possessive implant-rounded belly. @@ -6643,14 +6829,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's slave outfit's straps are practically buried in $possessive massively fat belly. The only hint of their presence are the deep ravines of flesh formed around them. The straps connect to a steel ring around $possessive navel; though the only evidence of its existence is an unusually deep fold across $possessive middle. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's slave outfit's straining straps press into $possessive huge pregnant belly. The straps connect to a steel ring encircling $possessive popped navel. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive huge implant-filled belly, causing flesh to spill out of the gaps and $object squirm with discomfort. The straps connect to a steel ring encircling $possessive popped navel. <<else>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive huge pregnant belly, causing flesh to spill out of the gaps and $object squirm with discomfort. The straps connect to a steel ring encircling $possessive popped navel. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's slave outfit's straining straps press into $possessive big pregnant belly. The straps connect to a steel ring encircling $possessive popped navel. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive hugely swollen belly, causing flesh to spill out of the gaps. The straps connect to a steel ring encircling $possessive popped navel. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive big implant-filled belly, causing flesh to spill out of the gaps. The straps connect to a steel ring encircling $possessive popped navel. @@ -6662,7 +6852,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's slave outfit's straps sink deep into $possessive big fat belly; most end up swallowed by $possessive folds. The straps connect to a steel ring that parts the fold concealing $possessive navel, allowing it to be seen once again. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's slave outfit's straining straps press into $possessive pregnant belly. The straps connect to a steel ring encircling $possessive popped navel. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive jiggling <<print $activeSlave.inflationType>>-filled belly, causing flesh to spill out of the gaps. The straps connect to a steel ring encircling $possessive popped navel. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive implant-filled belly, causing flesh to spill out of the gaps. The straps connect to a steel ring encircling $possessive popped navel. @@ -6672,7 +6864,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's slave outfit's straps sink deep into $possessive fat belly, several even disappearing beneath $possessive folds. The straps connect to a steel ring that parts the fold concealing $possessive navel, allowing it to be seen once again. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's slave outfit's straining straps press into $possessive small pregnant belly. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive <<print $activeSlave.inflationType>>-swollen belly. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's slave outfit's straining straps press into $possessive implant-rounded belly. @@ -6727,14 +6921,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's binding ropes are practically buried in $possessive massively fat belly. The only hint of their presence are the deep ravines of flesh formed around them. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly is tightly bound with rope. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly is tightly bound with ropes; flesh bulges angrily from between them. <<else>> $activeSlave.slaveName's huge pregnant belly is tightly bound with ropes; flesh bulges angrily from between them. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly is tightly bound with rope. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly is tightly bound with ropes. It bulges lewdly through the gaps. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly is tightly bound with ropes; flesh bulges angrily from between them. @@ -6746,7 +6944,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's binding ropes sink deep into $possessive big fat belly; most end up swallowed by $possessive folds. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly is tightly bound with rope. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is tightly bound with rope. It bulges lewdly through the gaps. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly is tightly bound with rope; flesh bulges angrily from between them. @@ -6756,7 +6956,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's binding ropes sink deep into $possessive fat belly, several even disappearing beneath $possessive folds. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly is tightly bound with rope. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is tightly bound with rope forcing it to bulge out the gaps. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly is tightly bound with rope; flesh bulges from between them. @@ -6825,14 +7027,18 @@ $pronounCap has <<elseif $activeSlave.weight > 190>> $activeSlave.slaveName's massively fat belly greatly distends and $possessive latex suit. $pronounCap looks like an over-inflated balloon ready to pop. <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + $activeSlave.slaveName's huge pregnant belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon ready to pop. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's huge implant-filled belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon ready to pop. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. <<else>> $activeSlave.slaveName's huge pregnant belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon ready to pop. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. <</if>> <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + $activeSlave.slaveName's big pregnant belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon nearing its limit. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's hugely swollen belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon ready to pop. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's big implant-filled belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon nearing its limit. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. @@ -6844,7 +7050,9 @@ $pronounCap has <<elseif $activeSlave.weight > 130>> $activeSlave.slaveName's big fat belly greatly distends $possessive latex suit. $pronounCap looks like an over-inflated balloon. <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + $activeSlave.slaveName's pregnant belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-filled belly greatly distends $possessive latex suit, leaving $object looking like an over-inflated balloon. Only $possessive popped navel sticking out the front of $possessive belly disrupts the smoothness. @@ -6854,7 +7062,9 @@ $pronounCap has <<elseif $activeSlave.weight > 95>> $activeSlave.slaveName's fat belly is compressed by $possessive latex suit, leaving it looking round and smooth. <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> - <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + $activeSlave.slaveName's small pregnant belly greatly bulges under $possessive latex suit. + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly greatly bulges under $possessive latex suit. <<elseif $activeSlave.bellyImplant > 0>> $activeSlave.slaveName's implant-rounded belly greatly bulges under $possessive latex suit. @@ -6869,122 +7079,515 @@ $pronounCap has $activeSlave.slaveName's latex suit tightly hugs $possessive stomach to showcase $possessive ripped abs. <</if>> <<case "a military uniform">> - <<if $activeSlave.bellyPreg >= 600000>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's titanic bulging pregnant belly hangs out $possessive open tunic and shirt - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt lies half open, since $possessive titanic bulging pregnant belly has triumphed over $possessive buttons. - <<else>> - $activeSlave.slaveName's tunic and shirt lie half open, since $possessive titanic bulging pregnant belly has triumphed over $possessive buttons. - <</if>> - <<elseif $activeSlave.bellyPreg >= 300000>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's massive pregnant belly hangs out $possessive open tunic and shirt - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt lies half open, since $possessive massive pregnant belly has triumphed over $possessive buttons. + <<if $activeSlave.belly >= 1000000>> + //WIP// + <<elseif $activeSlave.belly >= 750000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's monolithic implant-filled belly bulges tremendously out of $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive monolithic implant-filled belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive monolithic implant-filled belly. + <</if>> <<else>> - $activeSlave.slaveName's tunic and shirt lie half open, since $possessive massive pregnant belly has triumphed over $possessive buttons. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's monolithic pregnant belly bulges tremendously out of $possessive open tunic and undershirt, giving $possessive new recruits the room they need. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive monolithic pregnant belly. It takes full advantage of the freedom to bulge in every direction; $possessive new recruits taking as much space as they can get. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive monolithic pregnant belly. It takes full advantage of the freedom to bulge in every direction; $possessive new recruits taking as much space as they can get. + <</if>> <</if>> - <<elseif $activeSlave.weight > 190>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's massively fat belly is barely obscured by $possessive massive tits and, in turn, obscures $possessive skirt. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt lies half open, since $possessive massively fat belly has triumphed over $possessive buttons. It hangs free, obscuring $possessive skirt. + <<elseif $activeSlave.belly >= 600000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's titanic implant-filled belly hangs heavily out of $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive titanic implant-filled belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive titanic implant-filled belly. + <</if>> <<else>> - $activeSlave.slaveName's tunic and shirt lie half open, since $possessive massively fat belly has triumphed over $possessive buttons. It hangs free, obscuring $possessive skirt. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's titanic pregnant belly hangs heavily out of $possessive open tunic and undershirt, giving $possessive new recruits the room they need. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive titanic pregnant belly. It takes full advantage of the freedom to hang heavily, $possessive new recruits squirming happily. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive titanic pregnant belly. It takes full advantage of the freedom to hang heavily, $possessive new recruits squirming happily. + <</if>> <</if>> - <<elseif $activeSlave.bellyPreg >= 10000 || ($activeSlave.bellyAccessory == "a huge empathy belly") || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's big pregnant belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt strains to contain $possessive big pregnant belly. + <<elseif $activeSlave.belly >= 450000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's gigantic implant-filled belly hangs heavily out of $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive gigantic implant-filled belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive gigantic implant-filled belly. + <</if>> <<else>> - $activeSlave.slaveName's big pregnant belly greatly stretches $possessive uniform's jacket. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's gigantic pregnant belly hangs heavily out of $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive gigantic pregnant belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive gigantic pregnant belly. + <</if>> <</if>> - <<elseif $activeSlave.weight > 160>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's hugely fat belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt strains to contain $possessive hugely fat belly, forcing fat to bulge between the overworked buttons. The bottom of it peeks out from under $possessive poor shirt, obscuring the waist of $possessive skirt. + <<elseif $activeSlave.belly >= 300000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's massive implant-filled belly hangs out $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive massive implant-filled belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive massive implant-filled belly. + <</if>> <<else>> - $activeSlave.slaveName's hugely fat belly distends $possessive uniform's jacket. The bottom of which hangs out from under it, obscuring the waist of $possessive skirt. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's massive pregnant belly hangs out $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive massive pregnant belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive massive pregnant belly. + <</if>> <</if>> - <<elseif $activeSlave.weight > 130>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's big fat belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt strains to contain $possessive big fat belly. The bottom of which peeks out from under it and hangs over the waist of $possessive skirt. + <<elseif $activeSlave.belly >= 150000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's giant implant-filled belly hangs out $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive giant implant-filled belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive giant implant-filled belly. + <</if>> <<else>> - $activeSlave.slaveName's big fat belly is notably distends $possessive uniform's jacket. The bottom of which just barely peeks out from under it, hanging over the waist of $possessive skirt. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's giant pregnant belly hangs out $possessive open tunic and undershirt. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since there is no chance of closing the buttons over $possessive giant pregnant belly. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since there is no chance of closing the buttons over $possessive giant pregnant belly. + <</if>> <</if>> - <<elseif $activeSlave.bellyPreg >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's pregnant belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt strains to contain $possessive pregnant belly. + <<elseif $activeSlave.belly >= 120000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's giant implant-filled belly parts $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since $possessive giant implant-filled belly has triumphed over its buttons and has joined $possessive breasts in dominating $possessive tunic. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since $possessive giant implant-filled belly has triumphed over $possessive buttons. + <</if>> <<else>> - $activeSlave.slaveName's pregnant belly notably distends $possessive uniform's jacket. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's giant pregnant belly parts $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since $possessive giant pregnant belly has triumphed over its buttons and has joined $possessive breasts in dominating $possessive tunic. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since $possessive giant pregnant belly has triumphed over $possessive buttons. + <</if>> <</if>> - <<elseif $activeSlave.weight > 95>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's fat belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's shirt struggles to cover $possessive fat belly. The bottom of which peeks out from under it. + <<elseif $activeSlave.belly >= 45000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge implant-filled belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since $possessive huge implant-filled belly has triumphed over its buttons and has joined $possessive breasts in dominating $possessive tunic. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since $possessive huge implant-filled belly has triumphed over $possessive buttons. + <</if>> <<else>> - $activeSlave.slaveName's fat belly is covered by $possessive uniform's jacket. The bottom of which just barely peeks out from under it. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt lies half open, since $possessive huge pregnant belly has triumphed over its buttons and has joined $possessive breasts in dominating $possessive tunic. + <<else>> + $activeSlave.slaveName's tunic and undershirt lie half open, since $possessive huge pregnant belly has triumphed over $possessive buttons. + <</if>> <</if>> - <<elseif (($activeSlave.bellyPreg >= 1500) || ($activeSlave.bellyAccessory == "a small empathy belly"))>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's growing belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's undershirt covers $possessive growing belly. + <<elseif $activeSlave.belly >= 30000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge implant-filled belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt barely closes as it struggles to contain $possessive huge implant-filled belly. + <<else>> + $activeSlave.slaveName's tunic lies half open, since $possessive huge implant-filled belly has triumphed over $possessive uniform's buttons. + <</if>> <<else>> - $activeSlave.slaveName's uniform covers $possessive growing belly. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt barely closes as it struggles to contain $possessive huge pregnant belly. + <<else>> + $activeSlave.slaveName's tunic lies half open, since $possessive huge pregnant belly has triumphed over $possessive uniform's buttons. + <</if>> <</if>> - <<elseif $activeSlave.weight > 30>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's chubby belly is obscured by $possessive massive tits. + <<elseif $activeSlave.weight > 190>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's massively fat belly is barely obscured by $possessive massive tits and, in turn, obscures $possessive skirt. <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's undershirt covers $possessive chubby belly. The bottom of which just barely peeks out from under it. + $activeSlave.slaveName's undershirt lies half open, since $possessive massively fat belly has triumphed over $possessive buttons. It hangs free, obscuring $possessive skirt. <<else>> - $activeSlave.slaveName's uniform covers $possessive chubby belly. The bottom of which just barely peeks out from under it. + $activeSlave.slaveName's tunic and undershirt lie half open, since $possessive massively fat belly has triumphed over $possessive buttons. It hangs free, obscuring $possessive skirt. <</if>> - <</if>> -<<case "a nice nurse outfit">> - <<if $activeSlave.bellyPreg >= 600000>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's titanic bulging pregnant belly parts $possessive uncovered breasts. + <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive huge pregnant belly. + <<else>> + $activeSlave.slaveName's huge pregnant belly threatens to pop the buttons off $possessive uniform's jacket. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge implant-filled belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive huge implant-filled belly. + <<else>> + $activeSlave.slaveName's huge implant-filled belly threatens to pop the buttons off $possessive uniform's jacket. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly is barely obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive huge pregnant belly. + <<else>> + $activeSlave.slaveName's huge pregnant belly threatens to pop the buttons off $possessive uniform's jacket. + <</if>> + <</if>> + <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive big pregnant belly. + <<else>> + $activeSlave.slaveName's big pregnant belly greatly stretches $possessive uniform's jacket. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's hugely swollen belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive hugely swollen belly. + <<else>> + $activeSlave.slaveName's hugely swollen belly greatly stretches $possessive uniform's jacket. + <</if>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big implant-filled belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive big implant-filled belly. + <<else>> + $activeSlave.slaveName's big implant-filled belly greatly stretches $possessive uniform's jacket. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive big pregnant belly. + <<else>> + $activeSlave.slaveName's big pregnant belly greatly stretches $possessive uniform's jacket. + <</if>> + <</if>> + <<elseif $activeSlave.weight > 160>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's hugely fat belly is obscured by $possessive massive tits. <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive titanic bulging pregnant belly. + $activeSlave.slaveName's undershirt strains to contain $possessive hugely fat belly, forcing fat to bulge between the overworked buttons. The bottom of it peeks out from under $possessive poor top, obscuring the waist of $possessive skirt. <<else>> - $activeSlave.slaveName's scrub top rests meekly atop $possessive titanic bulging pregnant belly. + $activeSlave.slaveName's hugely fat belly distends $possessive uniform's jacket. The bottom of which hangs out from under it, obscuring the waist of $possessive skirt. <</if>> - <<elseif $activeSlave.bellyPreg >= 300000>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's massive pregnant belly parts $possessive uncovered breasts. + <<elseif $activeSlave.weight > 130>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big fat belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive big fat belly. The bottom of which peeks out from under it and hangs over the waist of $possessive skirt. + <<else>> + $activeSlave.slaveName's big fat belly is notably distends $possessive uniform's jacket. The bottom of which just barely peeks out from under it, hanging over the waist of $possessive skirt. + <</if>> + <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive pregnant belly. + <<else>> + $activeSlave.slaveName's pregnant belly notably distends $possessive uniform's jacket. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive jiggling <<print $activeSlave.inflationType>>-filled belly. + <<else>> + $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly notably distends $possessive uniform's jacket. + <</if>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's implant-filled belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive implant-filled belly. + <<else>> + $activeSlave.slaveName's implant-filled belly notably distends $possessive uniform's jacket. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt strains to contain $possessive pregnant belly. + <<else>> + $activeSlave.slaveName's pregnant belly notably distends $possessive uniform's jacket. + <</if>> + <</if>> + <<elseif $activeSlave.weight > 95>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's fat belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt struggles to cover $possessive fat belly. The bottom of which peeks out from under it. + <<else>> + $activeSlave.slaveName's fat belly is covered by $possessive uniform's jacket. The bottom of which just barely peeks out from under it. + <</if>> + <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's small pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt covers $possessive small pregnant belly. + <<else>> + $activeSlave.slaveName's uniform covers $possessive small pregnant belly. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt covers $possessive <<print $activeSlave.inflationType>>-swollen belly. + <<else>> + $activeSlave.slaveName's uniform covers $possessive <<print $activeSlave.inflationType>>-swollen belly. + <</if>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's implant-rounded belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt covers $possessive implant-rounded belly. + <<else>> + $activeSlave.slaveName's uniform covers $possessive implant-rounded belly. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's growing belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt covers $possessive growing belly. + <<else>> + $activeSlave.slaveName's uniform covers $possessive growing belly. + <</if>> + <</if>> + <<elseif $activeSlave.weight > 30>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's chubby belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt covers $possessive chubby belly. The bottom of which just barely peeks out from under it. + <<else>> + $activeSlave.slaveName's uniform covers $possessive chubby belly. The bottom of which just barely peeks out from under it. + <</if>> + <<elseif $activeSlave.bellyPreg >= 100 || $activeSlave.bellyImplant >= 100>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's slightly swollen belly can be glimpsed beneath $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's undershirt tighly hugs the slight swell to $possessive lower belly. + <<else>> + $activeSlave.slaveName's tunic looks a little tight around the middle. + <</if>> + <<elseif $activeSlave.muscles > 30>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's ripped abs can be glimpsed beneath $possessive massive tits. <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive massive pregnant belly. + $activeSlave.slaveName's undershirt barely conceals $possessive ripped abs. + <<else>> + $activeSlave.slaveName's ripped abs are completely hidden under $possessive uniform. + <</if>> + <</if>> +<<case "a nice nurse outfit">> + <<if $activeSlave.belly >= 1000000>> + //WIP// + <<elseif $activeSlave.belly >= 750000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's monolithic implant-filled belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room to hang tremendously. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive monolithic implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room to hang tremendously. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive monolithic implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more space to hang tremendously. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's monolithic pregnant belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room it desperately needs. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive monolithic pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room it desperately needs. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive monolithic pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room it desperately needs. + <</if>> + <</if>> + <<elseif $activeSlave.belly >= 600000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's titanic implant-filled belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room to hang heavily. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive titanic implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room to hang heavily. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive titanic implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more space to hang heavily. + <</if>> <<else>> - $activeSlave.slaveName's scrub top rests meekly atop $possessive massive pregnant belly. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's titanic pregnant belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room it needs to bulge. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive titanic pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room it needs to bulge. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive titanic pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room it needs to bulge. + <</if>> + <</if>> + <<elseif $activeSlave.bellyPreg >= 450000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's gigantic implant-filled belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive gigantic implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive gigantic implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more space. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's gigantic pregnant belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb more room to grow. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive gigantic pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb the room is needs. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive gigantic pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb more space to expand. + <</if>> + <</if>> + <<elseif $activeSlave.bellyPreg >= 300000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's massive implant-filled belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive massive implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more room. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive massive implant-filled belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled implant more space. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's massive pregnant belly parts $possessive uncovered breasts. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb more room. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's oversized breasts keep $possessive scrub top far from $possessive massive pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb more room. + <<else>> + $activeSlave.slaveName's scrub top rests meekly atop $possessive massive pregnant belly. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb more room. + <</if>> + <</if>> + <<elseif $activeSlave.belly >= 120000>> + <<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's giant implant-filled belly peaks out from between $possessive massive tits. $pronounCap finds it impossible to fasten $possessive trousers with $possessive stomach in the way. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive giant implant-filled belly hangs out from under them, bulging hugely from $possessive unfastened trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive giant implant-filled belly hangs out from under $possessive top and forces $object to leave $possessive trousers unfastened. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's giant pregnant belly peaks out from between $possessive massive tits. In addition, $pronoun's left $possessive trousers unfastened to give $possessive overfilled womb more room. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive giant pregnant belly hangs out from under them, bulging from $possessive unfastened trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive giant pregnant belly hangs out from under $possessive top and forces $object to leave $possessive trousers unfastened. + <</if>> <</if>> <<elseif $activeSlave.weight > 190>> - <<if ($activeSlave.boobs > 6000)>> + <<if ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's massively fat belly is partially obscured by $possessive massive tits; in turn, it obscures $possessive trousers. <<elseif ($activeSlave.boobs > 4000)>> $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive massively fat belly freely hangs out from under them, obscuring $possessive trousers. <<else>> $activeSlave.slaveName's scrub top rests meekly atop $possessive massively fat belly. <</if>> - <<elseif $activeSlave.bellyPreg >= 10000 || ($activeSlave.bellyAccessory == "a huge empathy belly") || ($activeSlave.bellyAccessory == "a large empathy belly")>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's big pregnant belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive big pregnant belly hangs out from under them, obscuring $possessive trousers. + <<elseif $activeSlave.belly >= 15000 || ($activeSlave.bellyAccessory == "a huge empathy belly")>> + <<if $activeSlave.bellyAccessory == "a huge empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly slightly parts $possessive massive tits. $pronounCap finds it impossible to fasten $possessive trousers with $possessive stomach in the way. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive huge pregnant belly hangs out from under them, bulging from $possessive unfastened trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive huge pregnant belly hangs out from under $possessive top and forces $object to leave $possessive trousers unfastened. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge implant-filled belly slightly parts $possessive massive tits. $pronounCap finds it impossible to fasten $possessive trousers with $possessive stomach in the way. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive huge implant-filled belly hangs out from under them, bulging from $possessive unfastened trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive huge implant-filled belly hangs out from under $possessive top and forces $object to leave $possessive trousers unfastened. + <</if>> <<else>> - $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive big pregnant belly hangs out from under $possessive top, obscuring $possessive trousers. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge pregnant belly slightly parts $possessive massive tits. $pronounCap finds it impossible to fasten $possessive trousers with $possessive stomach in the way. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive huge pregnant belly hangs out from under them, bulging from $possessive unfastened trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive huge pregnant belly hangs out from under $possessive top and forces $object to leave $possessive trousers unfastened. + <</if>> + <</if>> + <<elseif $activeSlave.belly >= 10000 || ($activeSlave.bellyAccessory == "a large empathy belly")>> + <<if $activeSlave.bellyAccessory == "a large empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive big pregnant belly hangs out from under them, straining the buttons on $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive big pregnant belly hangs out from under $possessive top, straining the buttons on $possessive trousers. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's hugely swollen belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive hugely swollen belly hangs out from under them, obscuring $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive hugely swollen belly hangs out from under $possessive top, obscuring $possessive trousers. + <</if>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's huge implant-filled belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive huge implant-filled belly hangs out from under them, straining the buttons on $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive huge implant-filled belly hangs out from under $possessive top, straining the buttons on $possessive trousers. + <</if>> + <<else>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's big pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive big pregnant belly hangs out from under them, straining the buttons on $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive big pregnant belly hangs out from under $possessive top, straining the buttons on $possessive trousers. + <</if>> <</if>> <<elseif $activeSlave.weight > 160>> - <<if ($activeSlave.boobs > 6000)>> + <<if ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's hugely fat belly is mostly obscured by $possessive massive tits. <<elseif ($activeSlave.boobs > 4000)>> $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive hugely fat belly freely hangs out from under them, obscuring $possessive trousers. @@ -6992,44 +7595,112 @@ $pronounCap has $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive hugely fat belly freely hangs from under $possessive top, obscuring $possessive trousers. <</if>> <<elseif $activeSlave.weight > 130>> - <<if ($activeSlave.boobs > 6000)>> + <<if ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's big fat belly is obscured by $possessive massive tits. <<elseif ($activeSlave.boobs > 4000)>> $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive big fat belly freely hangs out from under them, obscuring $possessive trousers. <<else>> $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive big fat belly freely hangs from under $possessive top, obscuring $possessive trousers. <</if>> - <<elseif $activeSlave.bellyPreg >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's pregnant belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive pregnant belly hangs out from under them, obscuring $possessive trousers. + <<elseif $activeSlave.belly >= 5000 || ($activeSlave.bellyAccessory == "a medium empathy belly")>> + <<if $activeSlave.bellyAccessory == "a medium empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive pregnant belly hangs out from under them, slightly obscuring $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive pregnancy hangs out from under $possessive top, slightly obscuring $possessive trousers. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's jiggling <<print $activeSlave.inflationType>>-filled belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive jiggling <<print $activeSlave.inflationType>>-filled belly hangs out from under them, slightly obscuring $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive jiggling <<print $activeSlave.inflationType>>-filled hangs out from under $possessive top, slightly obscuring $possessive trousers. + <</if>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's implant-filled belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive implant-filled belly hangs out from under them, slightly obscuring $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive implant-filled belly hangs out from under $possessive top, slightly obscuring $possessive trousers. + <</if>> <<else>> - $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive pregnancy hangs out from under $possessive top, slightly obscuring $possessive trousers. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive pregnant belly hangs out from under them, slightly obscuring $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive pregnancy hangs out from under $possessive top, slightly obscuring $possessive trousers. + <</if>> <</if>> <<elseif $activeSlave.weight > 95>> - <<if ($activeSlave.boobs > 6000)>> + <<if ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's fat belly is obscured by $possessive massive tits. <<elseif ($activeSlave.boobs > 4000)>> $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive fat belly freely hangs out from under them, obscuring $possessive trousers. <<else>> $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive fat belly freely hangs from under $possessive top, obscuring $possessive trousers. <</if>> - <<elseif (($activeSlave.bellyPreg >= 1500) || ($activeSlave.bellyAccessory == "a small empathy belly"))>> - <<if ($activeSlave.boobs > 6000)>> - $activeSlave.slaveName's growing belly is obscured by $possessive massive tits. - <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive growing belly is completely exposed. + <<elseif $activeSlave.belly >= 1500 || $activeSlave.bellyAccessory == "a small empathy belly">> + <<if $activeSlave.bellyAccessory == "a small empathy belly">> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's small pregnant belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive small pregnant belly is completely exposed. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive small pregnant belly completely. + <</if>> + <<elseif $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's <<print $activeSlave.inflationType>>-swollen belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive <<print $activeSlave.inflationType>>-swollen belly is completely exposed. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive <<print $activeSlave.inflationType>>-swollen belly completely. + <</if>> + <<elseif $activeSlave.bellyImplant > 0>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's implant-rounded belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive implant-rounded belly is completely exposed. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive implant-rounded belly completely. + <</if>> <<else>> - $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive growing belly completely. + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's growing belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive growing belly is completely exposed. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive growing belly completely. + <</if>> <</if>> <<elseif $activeSlave.weight > 30>> - <<if ($activeSlave.boobs > 6000)>> + <<if ($activeSlave.boobs > 12000)>> $activeSlave.slaveName's chubby belly is obscured by $possessive massive tits. <<elseif ($activeSlave.boobs > 4000)>> - $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive chubby belly is completely exposed and allowed to hang over the waist of $possessive pants. + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive chubby belly is completely exposed and allowed to hang over the waist of $possessive trousers. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive chubby belly completely; though it does hide the top of $possessive trousers. + <</if>> + <<elseif $activeSlave.bellyPreg >= 100 || $activeSlave.bellyImplant >= 100>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's slightly swollen belly is obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive slightly swollen belly can be clearly seen poking over $possessive trousers. <<else>> - $activeSlave.slaveName's nurse outfit is almost conservative, it covers $possessive chubby belly completely; though it does hide the top of $possessive pants. + $activeSlave.slaveName's nurse outfit is almost conservative, though $possessive trousers are fastened a little lower and $possessive scrub top tightly clings to the slight swell of $possessive lower belly. + <</if>> + <<elseif $activeSlave.muscles > 30>> + <<if ($activeSlave.boobs > 12000)>> + $activeSlave.slaveName's ripped abs are mostly obscured by $possessive massive tits. + <<elseif ($activeSlave.boobs > 4000)>> + $activeSlave.slaveName's nurse outfit could be called conservative, if it could cover more than half of $possessive breasts; $possessive ripped abs are completely exposed for all to see. + <<else>> + $activeSlave.slaveName's nurse outfit is almost conservative, though you can nearly make out $possessive ripped abs beneath $possessive scrub top. <</if>> <</if>> <<case "a mini dress">> @@ -8008,34 +8679,137 @@ $pronounCap has <<elseif ($activeSlave.pregWeek < 0) && ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>> $pronounCap is recovering from $possessive recent pregnancy. <<elseif $activeSlave.preg == 0 && $activeSlave.vagina > -1>> - <<if $activeSlave.pregType > 30>> + <<if $activeSlave.readyOva > 30>> $possessiveCap lower belly is noticeably bloated, $possessive breasts bigger and more sensitive, and $possessive pussy swollen and leaking fluids. $pronoun desperately needs a dick in $object and reminds you of a bitch in heat. - <<elseif $activeSlave.pregType > 20>> + <<elseif $activeSlave.readyOva > 20>> $possessiveCap lower belly is noticeably bloated and $possessive pussy swollen and leaking fluids. $pronounCap is very ready to be seeded. - <<elseif $activeSlave.pregType > 2>> + <<elseif $activeSlave.readyOva > 2>> $possessiveCap lower belly is slightly bloated and $possessive pussy swollen and leaking fluids. $pronounCap is ready to be seeded. <</if>> <<elseif $activeSlave.bellyPreg >= 1000000>> //WIP// <<elseif $activeSlave.bellyPreg >= 750000>> $pronounCap is @@.red;on the brink of bursting!@@ $possessiveCap belly is painfully stretched and $possessive womb packed to capacity; the slightest provocation could cause $object to rupture. + <<if $activeSlave.preg >= 55>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <</if>> <<elseif $activeSlave.bellyImplant >= 750000>> $pronounCap looks @@.red;ready to pop!@@ $pronounCap stomach is painfully stretched by $possessive straining <<print $activeSlave.bellyImplant>>cc belly implant. It is well past it's recommended capacity and at risk of rupturing. <<elseif $activeSlave.bellyPreg >= 600000>> - $pronounCap is @@.pink;dangerously pregnant,@@ $possessive overburdened womb is filled with $activeSlave.pregType babies. + $pronounCap is @@.pink;dangerously pregnant,@@ $possessive overburdened womb is filled with + <<if $activeSlave.preg >= 55>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<else>> + $activeSlave.pregType babies. + <</if>> <<elseif $activeSlave.bellyImplant >= 600000>> $pronounCap looks @@.pink;dangerously pregnant.@@ $pronounCap stomach is massively stretched by $possessive absurdly overfilled <<print $activeSlave.bellyImplant>>cc belly implant. <<elseif $activeSlave.bellyPreg >= 450000>> - $pronounCap is @@.pink;grotesquely pregnant,@@ $possessive womb is packed with $activeSlave.pregType babies. + $pronounCap is @@.pink;grotesquely pregnant,@@ $possessive womb is packed with + <<if $activeSlave.preg >= 55>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<else>> + $activeSlave.pregType babies. + <</if>> <<elseif $activeSlave.bellyImplant >= 450000>> $pronounCap looks @@.pink;absurdly pregnant.@@ $pronounCap stomach is massively stretched by $possessive overfilled <<print $activeSlave.bellyImplant>>cc belly implant. <<elseif $activeSlave.bellyPreg >= 300000>> - $pronounCap is @@.pink;absurdly pregnant@@ with $activeSlave.pregType children. + $pronounCap is @@.pink;absurdly pregnant@@ with + <<if $activeSlave.preg >= 55>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<else>> + $activeSlave.pregType children. + <</if>> <<elseif $activeSlave.bellyImplant >= 300000>> $pronounCap looks @@.pink;absurdly pregnant.@@ $pronounCap overburdened middle is filled by $possessive <<print $activeSlave.bellyImplant>>cc belly implant. <<elseif $activeSlave.bellyPreg >= 120000>> $pronounCap is - <<if $activeSlave.pregType > 9>> + <<if $activeSlave.preg >= 55>> + @@.pink;obscenely pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;obscenely pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;obscenely pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 9>> @@.pink;obscenely pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8057,7 +8831,31 @@ $pronounCap has <<elseif $activeSlave.bellyPreg >= 15000>> $pronounCap is <<if $activeSlave.bellyPreg >= 105000>> - <<if $activeSlave.pregType > 8>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 8>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8077,7 +8875,31 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.bellyPreg >= 90000>> - <<if $activeSlave.pregType > 7>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 7>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8099,7 +8921,31 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.bellyPreg >= 75000>> - <<if $activeSlave.pregType > 6>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 6>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8123,7 +8969,31 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.bellyPreg >= 60000>> - <<if $activeSlave.pregType > 5>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 5>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8149,7 +9019,31 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.bellyPreg >= 45000>> - <<if $activeSlave.pregType > 4>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 4>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8177,7 +9071,31 @@ $pronounCap has <</if>> <</if>> <<elseif $activeSlave.bellyPreg >= 30000>> - <<if $activeSlave.pregType > 3>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 3>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8207,7 +9125,31 @@ $pronounCap has <</if>> <</if>> <<else>> - <<if $activeSlave.pregType > 2>> + <<if $activeSlave.preg >= 55>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is horrifically overdue; $pronoun should have given birth a staggering <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 50>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is extremely overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.preg >= 43>> + @@.pink;massively pregnant@@ with + <<if $activeSlave.pregType == 1>> + a single overgrown baby. + <<else>> + $activeSlave.pregType overgrown babies. + <</if>> + $pronounCap is very overdue; $pronoun should have given birth <<print ($activeSlave.preg-40)>> weeks ago. + <<elseif $activeSlave.pregType > 2>> @@.pink;massively pregnant@@ with <<if $activeSlave.pregType >= 50>> an absurd number of children. @@ -8366,6 +9308,71 @@ $pronounCap has <<elseif $activeSlave.preg > 0 && $activeSlave.pregKnown == 0>> $possessiveCap period is late. <</if>> +<<if $activeSlave.preg+5 <= $activeSlave.pregWeek && $activeSlave.preg <= 42 && $activeSlave.bellyPreg >= 100>> + Despite being pregnant for $activeSlave.pregWeek weeks, + <<if $activeSlave.preg > 35 && $activeSlave.preg+10 <= $activeSlave.pregWeek>> + $possessive pregnancy is finally nearing its end. + <<elseif $activeSlave.preg+40 <= $activeSlave.pregWeek>> + <<if $activeSlave.preg == $activeSlave.pregWeek/2>> + $pronoun could shockingly pass for a girl half as far along. + <<elseif $activeSlave.preg == $activeSlave.pregWeek/4>> + $pronoun could shockingly pass for a girl only a quarter as far along. + <<else>> + $pronoun shockingly only looks like a girl on her $activeSlave.preg week of pregnancy. + <</if>> + <<elseif $activeSlave.preg+20 <= $activeSlave.pregWeek>> + <<if $activeSlave.preg == $activeSlave.pregWeek/2>> + $pronoun could surprisingly pass for a girl half as far along. + <<elseif $activeSlave.preg == $activeSlave.pregWeek/4>> + $pronoun could surprisingly pass for a girl only a quarter as far along. + <<else>> + $pronoun surprisingly only looks like a girl on her $activeSlave.preg week of pregnancy. + <</if>> + <<elseif $activeSlave.preg+10 <= $activeSlave.pregWeek>> + <<if $activeSlave.preg == $activeSlave.pregWeek/2>> + $pronoun could pass for a girl half as far along. + <<elseif $activeSlave.preg == $activeSlave.pregWeek/4>> + $pronoun could pass for a girl only a quarter as far along. + <<else>> + $pronoun only looks like a woman on her $activeSlave.preg week of pregnancy. + <</if>> + <<else>> + $possessive pregnancy is smaller than anticipated. + <</if>> +<<elseif $activeSlave.preg > $activeSlave.pregWeek && $activeSlave.preg <= 42 && $activeSlave.bellyPreg >= 100>> + <<if $activeSlave.preg > 35 && $activeSlave.preg >= $activeSlave.pregWeek+10>> + Even though $pronoun is a mere $activeSlave.pregWeek weeks along, $possessive pregnancy is at its end. + <<elseif $activeSlave.preg >= $activeSlave.pregWeek+15>> + Despite being pregnant for only $activeSlave.pregWeek weeks, + <<if $activeSlave.preg == $activeSlave.pregWeek*2>> + $pronoun could shockingly pass for a girl twice as far along. + <<elseif $activeSlave.preg == $activeSlave.pregWeek*4>> + $pronoun could shockingly pass for a girl nearly four times as far along. + <<else>> + $pronoun shockingly looks like a girl on her $activeSlave.preg week of pregnancy. + <</if>> + <<elseif $activeSlave.preg >= $activeSlave.pregWeek+10>> + Despite being pregnant for only $activeSlave.pregWeek weeks, + <<if $activeSlave.preg == $activeSlave.pregWeek*2>> + $pronoun could surprisingly pass for a girl twice as far along. + <<elseif $activeSlave.preg == $activeSlave.pregWeek*4>> + $pronoun could surprisingly pass for a girl nearly four times as far along. + <<else>> + $pronoun surprisingly looks like a girl on her $activeSlave.preg week of pregnancy. + <</if>> + <<elseif $activeSlave.preg >= $activeSlave.pregWeek+5>> + Despite being pregnant for only $activeSlave.pregWeek weeks, + <<if $activeSlave.preg == $activeSlave.pregWeek*2>> + $pronoun could pass for a girl twice as far along. + <<elseif $activeSlave.preg == $activeSlave.pregWeek*4>> + $pronoun could pass for a girl nearly four times as far along. + <<else>> + $pronoun looks like a woman on her $activeSlave.preg week of pregnancy. + <</if>> + <<else>> + Despite being pregnant for only $activeSlave.pregWeek weeks, $possessive pregnancy is larger than anticipated. + <</if>> +<</if>> <<if $activeSlave.pregKnown == 1 && $saleDescription == 0>> <<if $activeSlave.preg > 5>> <<if $activeSlave.pregSource == -1>> diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 51bf9c1b397bc6acf0ae37d5ed49f0fbff590825..f0b1174b360148522f3a18bf5d1587ed70fa0885 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -2185,7 +2185,7 @@ $possessiveCap <<elseif $activeSlave.nails == 8>> $possessiveCap nails are shiny and metallic. <<elseif $activeSlave.nails == 9>> - $possessiveCap nails are shiny, mettalic and color-coordinated with $possessive $activeSlave.hColor hair. + $possessiveCap nails are shiny, metallic and color-coordinated with $possessive $activeSlave.hColor hair. <<else>> $possessiveCap nails are neatly clipped. <</if>> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 0446a50d580ebb2dfafcb70f77a9ca7b859ff906..f3d898ba58618c8ec37eee4772a472d5026039c0 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -47,7 +47,12 @@ <<if $activeSlave.tankBaby == 2>> She thinks of losing her anal virginity to her <<WrittenMaster $activeSlave>> a @@.hotpink;necessity.@@ She expects her asshole to be seeing a lot more attention now. <<else>> - She thinks of losing her anal virginity to you as a @@.hotpink;connection@@ with her beloved <<WrittenMaster $activeSlave>>. She looks forward to having her asshole fucked by you again. + She thinks of losing her anal virginity to you as a @@.hotpink;connection@@ with her beloved <<WrittenMaster $activeSlave>>. + <<if ($activeSlave.fetishKnown && $activeSlave.fetish == "buttslut") || ($activeSlave.energy > 95) || (($activeSlave.attrXY >= 85) && ($PC.dick != 0)) || (($activeSlave.attrXX >= 85) && ($PC.dick == 0))>> + She can't wait to be fucked in the ass by you again. + <<else>> + She looks forward to having her asshole fucked by you again. + <</if>> <</if>> <<set $activeSlave.devotion += 4>> <<elseif ($activeSlave.devotion > 20)>> @@ -91,7 +96,12 @@ <<if $activeSlave.tankBaby == 2>> She thinks of losing her virginity to her <<WrittenMaster $activeSlave>> a @@.hotpink;necessity to be happy.@@ She expects her pussy to be seeing a lot more attention in the future. <<else>> - @@.hotpink;She enjoys losing her cherry to you.@@ She looks forward to having her pussy fucked by you again. + @@.hotpink;She enjoys losing her cherry to you.@@ + <<if ($activeSlave.fetishKnown && $activeSlave.fetish == "pregnancy") || ($activeSlave.energy > 95) || (($activeSlave.attrXY >= 85) && ($PC.dick != 0)) || (($activeSlave.attrXX >= 85) && ($PC.dick == 0))>> + She can't wait to have her pussy fucked by you again. + <<else>> + She looks forward to having her pussy fucked by you again. + <</if>> <</if>> <<set $activeSlave.devotion += 4>> <<elseif $activeSlave.devotion > 20>> @@ -663,8 +673,9 @@ <<set $activeSlave.preg = 0>> <<SetBellySize $activeSlave>> <</if>> - <<elseif $activeSlave.broodmotherCountDown > 0>> - //Her pregnancy implant is shutting down; she will be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + <<elseif $activeSlave.broodmotherOnHold == 1>> + //Her pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; she is expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>// + [[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] <<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> @@ -677,8 +688,11 @@ [[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]] | [[Give her a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> + <<if $activeSlave.broodmotherOnHold != 1>> + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] + <</if>> <<if ($activeSlave.preg > 37)>> - [[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]] + | [[Induce mass childbirth|BirthStorm]] <</if>> <<elseif ($activeSlave.preg > 35)>> [[Give her a cesarean section|csec]] @@ -699,8 +713,9 @@ <<set $activeSlave.preg = 0>> <<SetBellySize $activeSlave>> <</if>> - <<elseif $activeSlave.broodmotherCountDown > 0>> - //Its pregnancy implant is shutting down; it will be completely emptied of its contained brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + <<elseif $activeSlave.broodmotherOnHold == 1>> + //Its pregnancy implant is turned off; it expected to be completely emptied of its remaining brood in $activeSlave.broodmotherCountDown week $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// + [[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] <<elseif ($activeSlave.preg >= -1)>> __Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>. <<if ($activeSlave.preg == 0)>> @@ -717,8 +732,11 @@ [[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]] | [[Give it a cesarean section|csec]] <<elseif ($activeSlave.broodmother > 0)>> + <<if $activeSlave.broodmotherOnHold != 1>> + [[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] + <</if>> <<if ($activeSlave.preg > 37)>> - [[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]] + | [[Induce mass childbirth|BirthStorm]] <</if>> <<elseif ($activeSlave.preg > 35)>> [[Give it a cesarean section|csec]] @@ -1753,7 +1771,7 @@ <<if def $PC.customTitleLisp>><<set $titleEnunciate = $PC.customTitleLisp>><<elseif $PC.title != 0>><<set $titleEnunciate = "Mathter">><<else>><<set $titleEnunciate = "Mithtreth">><</if>> <<if $allowFamilyTitles == 1>> <<if $args[0].father == -1>> - <<if $args[0].actualAge < 4>> + <<if $args[0].actualAge < 4 && $args[0].physicalAge < 4>> <<set $titleEnunciate = "Dadda">> <<elseif $args[0].actualAge < 9>> <<set $titleEnunciate = "Daddy">> @@ -1761,7 +1779,7 @@ <<set $titleEnunciate = "Dad">> <</if>> <<elseif $args[0].mother == -1>> - <<if $args[0].actualAge < 4>> + <<if $args[0].actualAge < 4 && $args[0].physicalAge < 4>> <<set $titleEnunciate = "Mama">> <<elseif $args[0].actualAge < 9>> <<set $titleEnunciate = "Mommy">> @@ -1807,7 +1825,7 @@ <<if def $PC.customTitle>><<set $titleEnunciate = $PC.customTitle>><<elseif $PC.title != 0>><<set $titleEnunciate = "Master">><<else>><<set $titleEnunciate = "Mistress">><</if>> <<if $allowFamilyTitles == 1>> <<if $args[0].father == -1>> - <<if $args[0].actualAge < 4>> + <<if $args[0].actualAge < 4 && $args[0].physicalAge < 4>> <<set $titleEnunciate = "Dadda">> <<elseif $args[0].actualAge < 9>> <<set $titleEnunciate = "Daddy">> @@ -1815,7 +1833,7 @@ <<set $titleEnunciate = "Dad">> <</if>> <<elseif $args[0].mother == -1>> - <<if $args[0].actualAge < 4>> + <<if $args[0].actualAge < 4 && $args[0].physicalAge < 4>> <<set $titleEnunciate = "Mama">> <<elseif $args[0].actualAge < 9>> <<set $titleEnunciate = "Mommy">> @@ -2191,71 +2209,118 @@ This experience <</widget>> <<widget "ValidateFacilityDecoration">> -/* Used by following widget, called with <<ValidateFacilityDecoration var>> where var is for example $spaDecoration */ -<<if $args[0] != "standard">> - <<if !Number.isFinite($arcologies[0].FSSupremacist) && ($args[0] == "Supremacist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSSubjugationist) && ($args[0] == "Subjugationist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSGenderRadicalist) && ($args[0] == "Gender Radicalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSGenderFundamentalist) && ($args[0] == "Gender Fundamentalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSPaternalist) && ($args[0] == "Paternalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSBodyPurist) && ($args[0] == "Body Purist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSTransformationFetishist) && ($args[0] == "Transformation Fetishist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSYouthPreferentialist) && ($args[0] == "Youth Preferentialist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSMaturityPreferentialist) && ($args[0] == "Maturity Preferentialist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSSlimnessEnthusiast) && ($args[0] == "Slimness Enthusiast")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSAssetExpansionist) && ($args[0] == "Asset Expansionist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSPastoralist) && ($args[0] == "Pastoralist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSPhysicalIdealist) && ($args[0] == "Physical Idealist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSChattelReligionist) && ($args[0] == "Chattel Religionist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSDegradationist) && ($args[0] == "Degradationist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSRomanRevivalist) && ($args[0] == "Roman Revivalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSEgyptianRevivalist) && ($args[0] == "Egyptian Revivalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSEdoRevivalist) && ($args[0] == "Edo Revivalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSArabianRevivalist) && ($args[0] == "Arabian Revivalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSChineseRevivalist) && ($args[0] == "Chinese Revivalist")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSRepopulationFocus) && ($args[0] == "Repopulation Focus")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSRestart) && ($args[0] == "Eugenics")>> - <<set $args[0] = "standard">> - <<elseif !Number.isFinite($arcologies[0].FSHedonisticDecadence) && ($args[0] == "Hedonistic")>> - <<set $args[0] = "standard">> +/* Used by following widget, called with <<ValidateFacilityDecoration "var">> where var is for example "spaDecoration" -- quotes are needed to pass var as reference - DO NOT INCLUDE $ PREFIX! */ +<<switch State.variables[$args[0]]>> /* get value of var name that was provided */ +<<case "standard">> + /* nothing to do */ +<<case "Supremacist">> + <<if !Number.isFinite($arcologies[0].FSSupremacist)>> + <<set State.variables[$args[0]] = "standard">> <</if>> -<</if>> +<<case "Subjugationist">> + <<if !Number.isFinite($arcologies[0].FSSubjugationist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Gender Radicalist">> + <<if !Number.isFinite($arcologies[0].FSGenderRadicalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Gender Fundamentalist">> + <<if !Number.isFinite($arcologies[0].FSGenderFundamentalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Paternalist">> + <<if !Number.isFinite($arcologies[0].FSPaternalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Body Purist">> + <<if !Number.isFinite($arcologies[0].FSBodyPurist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Transformation Fetishist">> + <<if !Number.isFinite($arcologies[0].FSTransformationFetishist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Youth Preferentialist">> + <<if !Number.isFinite($arcologies[0].FSYouthPreferentialist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Maturity Preferentialist">> + <<if !Number.isFinite($arcologies[0].FSMaturityPreferentialist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Slimness Enthusiast">> + <<if !Number.isFinite($arcologies[0].FSSlimnessEnthusiast)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Asset Expansionist">> + <<if !Number.isFinite($arcologies[0].FSAssetExpansionist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Pastoralist">> + <<if !Number.isFinite($arcologies[0].FSPastoralist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Physical Idealist">> + <<if !Number.isFinite($arcologies[0].FSPhysicalIdealist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Chattel Religionist">> + <<if !Number.isFinite($arcologies[0].FSChattelReligionist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Degradationist">> + <<if !Number.isFinite($arcologies[0].FSDegradationist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Roman Revivalist">> + <<if !Number.isFinite($arcologies[0].FSRomanRevivalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Egyptian Revivalist">> + <<if !Number.isFinite($arcologies[0].FSEgyptianRevivalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Edo Revivalist">> + <<if !Number.isFinite($arcologies[0].FSEdoRevivalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Arabian Revivalist">> + <<if !Number.isFinite($arcologies[0].FSArabianRevivalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Chinese Revivalist">> + <<if !Number.isFinite($arcologies[0].FSChineseRevivalist)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Repopulation Focus">> + <<if !Number.isFinite($arcologies[0].FSRepopulationFocus)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Eugenics">> + <<if !Number.isFinite($arcologies[0].FSRestart)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<<case "Hedonistic">> + <<if !Number.isFinite($arcologies[0].FSHedonisticDecadence)>> + <<set State.variables[$args[0]] = "standard">> + <</if>> +<</switch>> <</widget>> <<widget "ClearFacilityDecorations">> /* Called when a FS is abandoned or failed out of. */ -<<if $brothel > 0>><<ValidateFacilityDecoration $brothelDecoration>><</if>> -<<if $club > 0>><<ValidateFacilityDecoration $clubDecoration>><</if>> -<<if $dairy > 0>><<ValidateFacilityDecoration $dairyDecoration>><</if>> -<<if $spa > 0>><<ValidateFacilityDecoration $spaDecoration>><</if>> -<<if $clinic > 0>><<ValidateFacilityDecoration $clinicDecoration>><</if>> -<<if $schoolroom > 0>><<ValidateFacilityDecoration $schoolroomDecoration>><</if>> -<<if $cellblock > 0>><<ValidateFacilityDecoration $cellblockDecoration>><</if>> -<<if $servantsQuarters > 0>><<ValidateFacilityDecoration $servantsQuartersDecoration>><</if>> -<<if $arcade > 0>><<ValidateFacilityDecoration $arcadeDecoration>><</if>> -<<if $masterSuite > 0>><<ValidateFacilityDecoration $masterSuiteDecoration>><</if>> +<<if $brothel > 0>><<ValidateFacilityDecoration "brothelDecoration">><</if>> +<<if $club > 0>><<ValidateFacilityDecoration "clubDecoration">><</if>> +<<if $dairy > 0>><<ValidateFacilityDecoration "dairyDecoration">><</if>> +<<if $spa > 0>><<ValidateFacilityDecoration "spaDecoration">><</if>> +<<if $clinic > 0>><<ValidateFacilityDecoration "clinicDecoration">><</if>> +<<if $schoolroom > 0>><<ValidateFacilityDecoration "schoolroomDecoration">><</if>> +<<if $cellblock > 0>><<ValidateFacilityDecoration "cellblockDecoration">><</if>> +<<if $servantsQuarters > 0>><<ValidateFacilityDecoration "servantsQuartersDecoration">><</if>> +<<if $arcade > 0>><<ValidateFacilityDecoration "arcadeDecoration">><</if>> +<<if $masterSuite > 0>><<ValidateFacilityDecoration "masterSuiteDecoration">><</if>> <</widget>> @@ -2291,65 +2356,71 @@ This experience <</widget>> /* + OBSOLETE: Use setPregType()instead! Call as <<SetPregType>> $args[0]: Slave. */ -<<widget "SetPregType">> - <<if $args[0].ID == -1>> - <<if $PC.birthMaster > 0>> /* Predisposed to twins */ - <<if $PC.fertDrugs == 1>> - <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>> - <</if>> - <<else>> - <<if $PC.fertDrugs == 1>> - <<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> - <</if>> - <</if>> - <<else>> - <<if $args[0].pregType == 0>> - <<if ($args[0].drugs == "super fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(20,29)>> +<<widget "SetPregType">> /* IMHO rework is posssible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */ + <<if $args[0].broodmother < 1>> /* Broodmothers should be not processed here. Necessary now.*/ + <<if (def $args[0].readyOva) && $args[0].readyOva > 0 >> + <<set $args[0].pregType = $args[0].readyOva, $args[0].readyOva = 0>> /* just single override; for delayed impregnation cases */ + <</if>> + <<if $args[0].ID == -1>> + <<if $PC.birthMaster > 0>> /* Predisposed to twins */ + <<if $PC.fertDrugs == 1>> + <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4)>> <<else>> - <<set $args[0].pregType = random(10,29)>> + <<set $args[0].pregType = either(1, 1, 1, 2, 2, 2, 2, 2, 2, 3)>> + <</if>> + <<if $PC.forcedFertDrugs > 0>> + <<set $args[0].pregType += either(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4)>> <</if>> <<else>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(10,29)>> + <<if $PC.fertDrugs == 1>> + <<set $args[0].pregType = either(1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4)>> <<else>> - <<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>> + <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> - <</if>> - <<elseif ($args[0].drugs == "fertility drugs")>> - <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(4,5)>> - <<else>> - <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>> + <<if $PC.forcedFertDrugs > 0>> + <<set $args[0].pregType += either(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4)>> <</if>> - <<else>> - <<if ($args[0].hormones == 2)>> - <<set $args[0].pregType = random(2,5)>> + <</if>> + <<else>> + <<if $args[0].pregType == 0>> + <<if ($args[0].drugs == "super fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(20,29)>> + <<else>> + <<set $args[0].pregType = random(10,29)>> + <</if>> + <<else>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(10,29)>> + <<else>> + <<set $args[0].pregType = either(3, 4, 4, 4, 5, 5, 6, 10, 11, 20)>> + <</if>> + <</if>> + <<elseif ($args[0].drugs == "fertility drugs")>> + <<if (($masterSuitePregnancyFertilitySupplements == 1) && (($args[0].assignment == "serve in the master suite") || ($args[0].assignment == "be your Concubine")))>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(4,5)>> + <<else>> + <<set $args[0].pregType = either(2, 2, 3, 3, 3, 3, 4, 4, 5, 5)>> + <</if>> + <<else>> + <<if ($args[0].hormones == 2)>> + <<set $args[0].pregType = random(2,5)>> + <<else>> + <<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>> + <</if>> + <</if>> <<else>> - <<set $args[0].pregType = either(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)>> + <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> <</if>> - <<else>> - <<set $args[0].pregType = either(1, 1, 1, 1, 1, 1, 1, 1, 1, 2)>> <</if>> <</if>> - <</if>> <</widget>> /* @@ -2369,7 +2440,8 @@ This experience <<if $args[0].ID != -1>> <<set $args[0].pregWeek = 1>> <</if>> - <<SetPregType $args[0]>> + <<set $args[0].pregType = setPregType($args[0])>> + <<set WombImpregnate($args[0], $args[0].pregType, $args[0].pregSource, 1)>> <<if $menstruation == 1>> <<elseif ndef $args[4]>> <<set $args[0].pregKnown = 1>> @@ -2389,7 +2461,8 @@ This experience <<if $args[0].ID != -1>> <<set $args[0].pregWeek = 1>> <</if>> - <<SetPregType $args[0]>> + <<set $args[0].pregType = setPregType($args[0])>> + <<set WombImpregnate($args[0], $args[0].pregType, $args[0].pregSource, 1)>> <<if $menstruation == 1>> <<elseif ndef $args[4]>> <<set $args[0].pregKnown = 1>> @@ -2413,6 +2486,8 @@ This experience $args[0]: Slave. */ <<widget "SetBellySize">> + +/* <<if $args[0].broodmother == 1>> <<if $args[0].broodmotherCountDown > 0>> <<set $args[0].bellyPreg = setup.broodSizeOneShutDown[$args[0].broodmotherCountDown]>> @@ -2426,11 +2501,17 @@ This experience <<else>> <<set $args[0].bellyPreg = 0>> <</if>> + + This block now relpaced with universal code +*/ + <<set WombNormalizePreg($args[0])>> /*now with support for legacy code that advance pregnancy by setting .preg++ */ + <<if $args[0].bellyImplant > 0>> <<set _implantSize = $args[0].bellyImplant>> <<else>> <<set _implantSize = 0>> <</if>> + <<if $args[0].inflation == 3>> <<set $args[0].bellyFluid = 10000>> <<elseif $args[0].inflation == 2>> @@ -2440,7 +2521,9 @@ This experience <<else>> <<set $args[0].bellyFluid = 0>> <</if>> + <<set $args[0].belly = $args[0].bellyPreg+$args[0].bellyFluid+_implantSize>> + <</widget>> /* see how they are on a single line? This permits "."s and other things to be appended directly onto the widget result */ diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw index d649368d6e7b89636743c89a61776e42ed890597..a52df2fd0ab2ac311c226581c735e08443f57561 100644 --- a/src/utility/raWidgets.tw +++ b/src/utility/raWidgets.tw @@ -1627,6 +1627,10 @@ Other drugs: // Will be overriden by hormones and other drugs where applicable./ ''designed to promote hermaphrodite development.'' <<elseif $currentRule.diet == "cleansing">> ''designed to promote health.'' +<<elseif $currentRule.diet == "fertility">> + ''designed to promote ovulation'' +<<elseif $currentRule.diet == "cum production">> + ''designed to promote cum production'' <<else>> ''no default setting.'' <</if>> @@ -1891,7 +1895,7 @@ Diet support for growth drugs: % Call as <<RASaveRule>> %/ <<widget "RASaveRule">> -<<replace #saveresult>> +<<replace .saveresult>> <<for _t = 0; _t < $defaultRules.length; _t++>> <<if ($currentRule.ID != $defaultRules[_t].ID)>> <<continue>> @@ -1910,7 +1914,7 @@ Diet support for growth drugs: <</if>> <<set $defaultRules[_t] = $currentRule>> - //Rule $r saved// + //Rule '$currentRule.name' saved// <<break>> <</for>> <</replace>> @@ -1921,8 +1925,8 @@ Diet support for growth drugs: % Call as <<RAChangeSave>> %/ <<widget "RAChangeSave">> -<<replace #saveresult>> -<<link "Save Rule $r">> +<<replace .saveresult>> +<<link "Save Rule '$currentRule.name'">> <<RASaveRule>> <</link>> <</replace>> @@ -2460,12 +2464,22 @@ Your brand design is ''$brandDesign.'' ''invasive.'' <<elseif ($currentRule.surgery.cosmetic == 1)>> ''subtle.'' - <<else>> + <<elseif $currentRule.surgery.cosmetic == 0>> ''none.'' + <<else>> + ''off.'' <</if>> <br> + <<if ($currentRule.surgery.cosmetic !== "nds")>> + <<link "No default setting">> + <<set $currentRule.surgery.cosmetic = "nds">> + <<RASurgeryChangeCosmetic>> + <</link>> | + <<else>> + Off | + <</if>> <<if ($currentRule.surgery.cosmetic !== 0)>> <<link "None">> <<set $currentRule.surgery.cosmetic = 0>> @@ -2731,17 +2745,17 @@ Your brand design is ''$brandDesign.'' <<elseif ($currentRule.surgery.holes == 1)>> ''hole tightening'' will be applied. <<else>> - ''none.'' + ''No default setting.'' <</if>> <br> - <<if ($currentRule.surgery.holes != 0)>> - <<link "Off">> - <<set $currentRule.surgery.holes = 0>> + <<if ($currentRule.surgery.holes != "nds")>> + <<link "No default setting">> + <<set $currentRule.surgery.holes = "nds">> <<RASurgeryChangeHoles>> <</link>> | <<else>> - Off | + No default setting | <</if>> <<if ($currentRule.surgery.holes != 1)>> <<link "Tightening">> @@ -2776,9 +2790,9 @@ Your brand design is ''$brandDesign.'' <</if>> <br> - <<if ($currentRule.surgery.bodyhair != 0)>> + <<if ($currentRule.surgery.bodyhair != "nds")>> <<link "No default setting">> - <<set $currentRule.surgery.bodyhair = 0>> + <<set $currentRule.surgery.bodyhair = "nds">> <<RASurgeryBodyHair>> <</link>> | <<else>> @@ -2820,9 +2834,9 @@ Your brand design is ''$brandDesign.'' <</if>> <br> - <<if ($currentRule.surgery.hair != 0)>> + <<if ($currentRule.surgery.hair != "nds")>> <<link "No default setting">> - <<set $currentRule.surgery.hair = 0>> + <<set $currentRule.surgery.hair = "nds">> <<RASurgeryHair>> <</link>> | <<else>> @@ -2957,7 +2971,7 @@ Your brand design is ''$brandDesign.'' <<case "no default setting">> <<run delete _currentRule.setAssignment>> - <<case "rest">> + <<case "rest" "please you">> /% slaves always qualify for this assignment %/ <<case "live with your Head Girl">> @@ -3105,6 +3119,7 @@ Your brand design is ''$brandDesign.'' <</switch>> /% merge the current rule (possibly modified by the code above) into the combined rule %/ + /* <br>+++ currentRule <<print JSON.stringify(_currentRule)>><br> */ <<set _combinedRule = mergeRules([_combinedRule, _currentRule])>> <</for>> /* done merging rules; from here onwards, we should only use _combinedRule */ @@ -3541,6 +3556,44 @@ Your brand design is ''$brandDesign.'' <</if>> <</if>> /* CLOSES FUCKDOLL CHECK */ + +/* Here is belly implant size control, it's used in Surgery Degradation passage to setup devotion and trust changes. */ +<<if (def _combinedRule.bellyImplantVol) && $args[0].bellyImplant >= 0 && _combinedRule.bellyImplantVol >= 0>> + <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton, _as = $activeSlave, $activeSlave = $args[0]>> /* this is hack to use Surgery Degradation without breaking normal End Week routine */ + <br> + <<if $args[0].health > -10 >> + <<set _bdiff = _combinedRule.bellyImplantVol - $args[0].bellyImplant>> + <<if _bdiff >= 5000 && $activeSlave.bellyPain == 0 && $args[0].health > 50>> + $args[0].slaveName's belly is way too small, so she has been directed to have intensive belly implant filling procedures throughout this week. + <<set $surgeryType = "bellyUp", $activeSlave.bellyImplant += 1000, $activeSlave.bellyPain += 2>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <<elseif _bdiff >= 500 && $activeSlave.bellyPain < 2 >> + $args[0].slaveName's belly has not reached the desired size, so she has been directed to have belly implant filling procedures throughout this week. + <<set $surgeryType = "bellyUp", $activeSlave.bellyImplant += 500, $activeSlave.bellyPain += 1>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <<elseif _bdiff <= -5000 >> + $args[0].slaveName's belly is way too big, so she has been directed to have intensive belly implant draining procedures throughout this week. + <<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 1000>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <<elseif _bdiff <= -500 >> + $args[0].slaveName's belly is too big, so she has been directed to have belly implant draining procedures throughout this week. + <<set $surgeryType = "bellyDown", $activeSlave.bellyImplant -= 500>> + <<silently>> + <<include "Surgery Degradation">> + <</silently>> + <</if>> + <<else>> + $args[0].slaveName is not healthy enough to safely adjust her belly implant. + <</if>> + <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB, $activeSlave = _as>> +<</if>> + /* < -------------------------------------------------------------------------Drug Assignment -------------------------------------------------------------------------------------------> */ /* Fertility */ <<if isFertile($args[0])>> @@ -4082,6 +4135,30 @@ Your brand design is ''$brandDesign.'' <<set $args[0].diet = "cleansing">> <br>$args[0].slaveName has been put on a diet of cleansers. <</if>> + <<elseif (_combinedRule.diet == "fertility")>> + <<if canGetPregnant($args[0])>> + <<if ($args[0].diet !== "fertility")>> + <<set $args[0].diet = "fertility">> + <br>$args[0].slaveName has been put on a diet to enhance fertilty. + <</if>> + <<else>> + <<if ($args[0].diet !== "healthy")>> + <<set $args[0].diet = "healthy">> + <br>$args[0].slaveName has been put on a standard diet since she is currently unable to become pregnant. + <</if>> + <</if>> + <<elseif (_combinedRule.diet == "cum production")>> + <<if ($args[0].balls > 0)>> + <<if ($args[0].diet !== "cum production")>> + <<set $args[0].diet = "cum production">> + <br>$args[0].slaveName has been put on a diet to promote cum production. + <</if>> + <<else>> + <<if ($args[0].diet !== "healthy")>> + <<set $args[0].diet = "healthy">> + <br>$args[0].slaveName has been put on a standard diet since she is no longer able to produce cum. + <</if>> + <</if>> <</if>> <</if>> <<elseif (def _combinedRule.muscles) && (_combinedRule.muscles !== "no default setting") && ($args[0].amp != 1)>> /* no diet rule, muscles only */ @@ -4178,16 +4255,16 @@ Your brand design is ''$brandDesign.'' <</if>> <<if $args[0].pregKnown == 1 && _combinedRule.pregSpeed != "nds" && $args[0].breedingMark != 1 && $args[0].indentureRestrictions < 1 && $args[0].broodmother == 0>> - <<if _combinedRule.pregSpeed == "slow" && $args[0].preg < 31>> + <<if _combinedRule.pregSpeed == "slow" && $args[0].preg < 35>> <<set $args[0].pregControl = "slow gestation">> <br>$args[0].slaveName is pregnant, so she has been put on the gestation slowing agents. - <<elseif _combinedRule.pregSpeed == "fast" && $args[0].preg < 31 && $args[0].health > -50>> + <<elseif _combinedRule.pregSpeed == "fast" && $args[0].preg < 35 && $args[0].health > -50>> <<set $args[0].pregControl = "speed up">> <br>$args[0].slaveName is pregnant, so she has been put on rapid gestation agents. CAUTION! Can be dangerous. Clinic supervision is recommended. - <<elseif _combinedRule.pregSpeed == "suppress" && $args[0].preg > 30 && $args[0].health > -50>> + <<elseif _combinedRule.pregSpeed == "suppress" && $args[0].preg > 34 && $args[0].health > -50>> <<set $args[0].pregControl = "labor supressors">> <br>$args[0].slaveName is ready to birth, so she has been put on labor suppressing agents. - <<elseif _combinedRule.pregSpeed == "stimulate" && $args[0].preg >= 31 && $args[0].health > -50>> + <<elseif _combinedRule.pregSpeed == "stimulate" && $args[0].preg >= 37 && $args[0].health > -50>> <<set $args[0].labor = 1,$args[0].induce = 1,$birthee = 1>> <br>$args[0].slaveName is ready to birth, so her labor has been stimulated. <<elseif _combinedRule.pregSpeed == "fast" && $args[0].pregControl == "speed up" && $args[0].health <= -50>> @@ -4539,6 +4616,21 @@ is now _combinedRule.hLength cm long. <<elseif $args[0].fetishStrength < 100>> <<set _used = 1>> <</if>> + <</if>> + <<if _used == 0>> + <<if (def _combinedRule.clitSettingEnergy) && (_combinedRule.clitSettingEnergy !== "no default setting")>> + <<if $args[0].energy < _combinedRule.clitSettingEnergy>> + <<if $args[0].clitSetting !== "all">> + <br>$args[0].slaveName's smart piercing has been set to enhance libido. + <</if>> + <<set $args[0].clitSetting = "all", _used = 1>> + <<elseif $args[0].energy >= _combinedRule.clitSettingEnergy + 10>> + <<if $args[0].clitSetting !== "none">> + <br>$args[0].slaveName's smart piercing has been set to suppress libido. + <</if>> + <<set $args[0].clitSetting = "none", _used = 1>> + <</if>> + <</if>> <</if>> <<if _used == 0>> <<if (def _combinedRule.clitSettingXY) && (_combinedRule.clitSettingXY !== "no default setting")>> @@ -4570,21 +4662,6 @@ is now _combinedRule.hLength cm long. <</if>> <</if>> <</if>> - <<if _used == 0>> - <<if (def _combinedRule.clitSettingEnergy) && (_combinedRule.clitSettingEnergy !== "no default setting")>> - <<if $args[0].energy < _combinedRule.clitSettingEnergy>> - <<if $args[0].clitSetting !== "all">> - <br>$args[0].slaveName's smart piercing has been set to enhance libido. - <</if>> - <<set $args[0].clitSetting = "all", _used = 1>> - <<elseif $args[0].energy >= _combinedRule.clitSettingEnergy + 10>> - <<if $args[0].clitSetting !== "none">> - <br>$args[0].slaveName's smart piercing has been set to suppress libido. - <</if>> - <<set $args[0].clitSetting = "none", _used = 1>> - <</if>> - <</if>> - <</if>> <</if>> <<if ($args[0].vagina != -1)>> diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw index 054ca19fd08fe1709e632a4578b74923a1a77940..13699405762262e35af4eb52d8f72a23ecc454b6 100644 --- a/src/utility/slaveCreationWidgets.tw +++ b/src/utility/slaveCreationWidgets.tw @@ -6,7 +6,7 @@ Called from Gen XX, Gen XY, CheatMode DB, InitNationalities. %/ <<widget "BaseSlave">> - <<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>> + <<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>> <</widget>> /% @@ -465,12 +465,12 @@ <<else>>Barren. <</if>> </span> - <<link "Ready to Drop">><<set $activeSlave.preg = 40,$activeSlave.pregType = 1,$activeSlave.belly = 15000,$activeSlave.bellyPreg = 15000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Ready to drop.<</replace>><<StartingGirlsCost>><</link>> | - <<link "Advanced">><<set $activeSlave.preg = 34,$activeSlave.pregType = 1,$activeSlave.belly = 10000,$activeSlave.bellyPreg = 10000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Advanced.<</replace>><<StartingGirlsCost>><</link>> | - <<link "Showing">><<set $activeSlave.preg = 27,$activeSlave.pregType = 1,$activeSlave.belly = 5000,$activeSlave.bellyPreg = 5000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Showing.<</replace>><<StartingGirlsCost>><</link>> | - <<link "Early">><<set $activeSlave.preg = 12,$activeSlave.pregType = 1,$activeSlave.belly = 100,$activeSlave.bellyPreg = 100,$activeSlave.pubertyXX = 1>><<replace "#preg">>Early.<</replace>><<StartingGirlsCost>><</link>> | - <<link "None">><<set $activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0>><<replace "#preg">>None.<</replace>><<StartingGirlsCost>><</link>> | - <<link "Barren">><<set $activeSlave.preg = -2,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0>><<replace "#preg">>Barren.<</replace>><<StartingGirlsCost>><</link>> + <<link "Ready to Drop">><<set $activeSlave.preg = 40,$activeSlave.pregType = 1,$activeSlave.pregWeek = 40,$activeSlave.pregKnown = 1,$activeSlave.belly = 15000,$activeSlave.bellyPreg = 15000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Ready to drop.<</replace>><<StartingGirlsCost>><</link>> | + <<link "Advanced">><<set $activeSlave.preg = 34,$activeSlave.pregType = 1,$activeSlave.pregWeek = 34,$activeSlave.pregKnown = 1,$activeSlave.belly = 10000,$activeSlave.bellyPreg = 10000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Advanced.<</replace>><<StartingGirlsCost>><</link>> | + <<link "Showing">><<set $activeSlave.preg = 27,$activeSlave.pregType = 1,$activeSlave.pregWeek = 27,$activeSlave.pregKnown = 1,$activeSlave.belly = 5000,$activeSlave.bellyPreg = 5000,$activeSlave.pubertyXX = 1>><<replace "#preg">>Showing.<</replace>><<StartingGirlsCost>><</link>> | + <<link "Early">><<set $activeSlave.preg = 12,$activeSlave.pregType = 1,$activeSlave.pregWeek = 12,$activeSlave.pregKnown = 1,$activeSlave.belly = 100,$activeSlave.bellyPreg = 100,$activeSlave.pubertyXX = 1>><<replace "#preg">>Early.<</replace>><<StartingGirlsCost>><</link>> | + <<link "None">><<set $activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0>><<run WombFlush($activeSlave)>><<replace "#preg">>None.<</replace>><<StartingGirlsCost>><</link>> | + <<link "Barren">><<set $activeSlave.preg = -2,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0>><<run WombFlush($activeSlave)>><<replace "#preg">>Barren.<</replace>><<StartingGirlsCost>><</link>> <br>''Puberty:'' <span id="pub"> <<if $activeSlave.pubertyXX == 1>>Postpubescent. @@ -479,7 +479,7 @@ </span> <<textbox "$activeSlave.pubertyAgeXX" $activeSlave.pubertyAgeXX "Starting Girls">> <<link "Postpubescent">><<set $activeSlave.pubertyXX = 1>><<replace "#pub">>Postpubescent.<</replace>><<StartingGirlsCost>><</link>> | - <<link "Prepubescent">><<set $activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge,$activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0>><<replace "#pub">>Prepubescent.<</replace>><<StartingGirlsCost>><</link>> + <<link "Prepubescent">><<set $activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge,$activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0>><<run WombFlush($activeSlave)>><<replace "#pub">>Prepubescent.<</replace>><<StartingGirlsCost>><</link>> <<if $PC.dick == 1>> <br> ''Father:'' <span id="father"> @@ -847,6 +847,8 @@ @@.mediumaquamarine;+10 trust@@ and @@.hotpink;+10 devotion.@@ <<elseif $PC.career == "wealth">> two free levels of @@.cyan;sex skills.@@ + <<elseif $PC.career == "BlackHat">> + one free level of @@.cyan;intelligence.@@ <<else>> @@.hotpink;+10 devotion,@@ one free level of @@.cyan;prostitution skill@@ and @@.cyan;entertainment skill,@@ and two free levels of @@.cyan;sex skills.@@ <</if>>// @@ -1552,11 +1554,11 @@ %/ <<widget "CustomSlaveVoice">> <<replace #voice>> - <<if $customSlave.voice == 3>>high, girly voice. - <<elseif $customSlave.voice == 2>>feminine voice. - <<elseif $customSlave.voice == 1>>deep voice. - <<elseif $customSlave.voice == 0>>mute. - <<elseif $customSlave.voice == -1>>Voice is unimportant. + <<if $customSlave.voice == 3>>High, girly voice. + <<elseif $customSlave.voice == 2>>Feminine voice. + <<elseif $customSlave.voice == 1>>Deep voice. + <<elseif $customSlave.voice == 0>>Mute. + <<else>>Voice is unimportant. <</if>> <</replace>> <</widget>> @@ -1581,7 +1583,7 @@ <<widget "CustomSlaveWeight">> <<replace #weight>> <<if $customSlave.weight == -50>>Very thin. - <<elseif $customSlave.weight == -15>>thin. + <<elseif $customSlave.weight == -15>>Thin. <<elseif $customSlave.weight == 0>>Average weight. <<elseif $customSlave.weight == 15>>Chubby. <<elseif $customSlave.weight == 50>>Plump. @@ -1685,7 +1687,7 @@ <<else>>Normal vagina. <</if>> <<link "No vagina">> - <<set $customSlave.vagina = -1, $customSlave.preg = 0, $customSlave.ovaries = 0>> + <<set $customSlave.vagina = -1, $customSlave.preg = 0, WombFlush($activeSlave), $customSlave.ovaries = 0>> <<CustomSlaveVagina>> <</link>> <</replace>> @@ -2366,12 +2368,12 @@ <<if isFertile($activeSlave)>> <<set $activeSlave.vagina = random(1,4)>> <<set $activeSlave.preg = random(21,39)>> - <<SetBellySize $activeSlave>> <<if random(1,2) == 1 && $seeHyperPreg == 1>> <<set $activeSlave.pregType = random(3,29)>> <<else>> <<set $activeSlave.pregType = random(3,8)>> <</if>> + <<SetBellySize $activeSlave>> <</if>> <<set $activeSlave.lactation = random(0,1)>> <<elseif $arcologies[_market].FSRestart > 50>> @@ -2428,6 +2430,7 @@ <<set $activeSlave.mpreg = 1>> <<if isFertile($activeSlave)>> <<set $activeSlave.preg = random(1,39)>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> <<SetBellySize $activeSlave>> <</if>> <</if>> @@ -2459,6 +2462,7 @@ <<set $activeSlave.preg = 0>> /*removing contraception of default slave generation so isFertile can work right*/ <<if isFertile($activeSlave)>> <<set $activeSlave.preg = random(1,40)>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> <<SetBellySize $activeSlave>> <<set $activeSlave.lactation = random(0,1)>> <</if>> @@ -2720,23 +2724,38 @@ <</if>> <</if>> + <<if $arcologies[_market].FSIncestFetishist > 20>> + Incest is acceptable, if not preferable to them. + <<if $activeSlave.sexualQuirk == "none" && $activeSlave.behavioralQuirk == "none">> + <<if random(0,1) == 0>> + <<set $activeSlave.sexualQuirk = "perverted">> + <<else>> + <<set $activeSlave.behavioralQuirk = "sinful">> + <</if>> + <<elseif $activeSlave.sexualQuirk == "none" || $activeSlave.sexualQuirk == "perverted">> + <<set $activeSlave.sexualQuirk = "perverted">> + <<else>> + <<set $activeSlave.behavioralQuirk = "sinful">> + <</if>> + <</if>> + <<if ($arcologies[0].FSDegradationist != "unset") && ($arcologies[_market].FSPaternalist != "unset")>> <<set $activeSlave.devotion = random(-90,-60)>> <<set $activeSlave.trust = -20>> - ''$arcologies[_market].name'' is Paternalist, and your arcology is Degradationist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a literal Hell on Earth. + '' $arcologies[_market].name'' is Paternalist, and your arcology is Degradationist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a literal Hell on Earth. <<elseif ($arcologies[0].FSDegradationist != "unset") && ($arcologies[_market].FSPaternalist != "unset")>> <<set $activeSlave.devotion = random(60,90)>> <<set $activeSlave.trust = 20>> - ''$arcologies[_market].name'' is Degradationist, and your arcology is Paternalist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a promised land. + '' $arcologies[_market].name'' is Degradationist, and your arcology is Paternalist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a promised land. <<elseif $opinion != 0>> <<set $activeSlave.devotion += $opinion>> <<set $activeSlave.trust += $opinion>> <<set $activeSlave.devotion = Math.clamp($activeSlave.devotion, -100, 75)>> <<set $activeSlave.trust = Math.clamp($activeSlave.trust, -100, 75)>> <<if $opinion > 2>> - Your arcology's close social alignment with ''$arcologies[_market].name'' makes its slaves more accepting of the prospect of life in your arcology, and willing to trust that they'll know how to survive there. + Your arcology's close social alignment with '' $arcologies[_market].name'' makes its slaves more accepting of the prospect of life in your arcology, and willing to trust that they'll know how to survive there. <<elseif $opinion < -2>> - Your arcology's very different culture from ''$arcologies[_market].name'''s makes its slaves unhappy with the prospect of life in your arcology, and afraid of what will happen to them there. + Your arcology's very different culture from '' $arcologies[_market].name'''s makes its slaves unhappy with the prospect of life in your arcology, and afraid of what will happen to them there. <</if>> <</if>> @@ -2800,6 +2819,9 @@ <<set $activeSlave.health = random(-80,20)>> <<if $activeSlave.vagina > 1 && isFertile($activeSlave)>> <<set $activeSlave.preg = either(-2, -1, -1, -1, -1, -1, -1, -1, 1, 20, 40)>> + <<if $activeSlave.preg > 0>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <</if>> <<SetBellySize $activeSlave>> <</if>> @@ -2833,6 +2855,9 @@ <<if $activeSlave.vagina > -1>> <<set $activeSlave.preg = either(-2, -1, -1, -1, -1, -1, -1, -1, 1, 1)>> <<if $activeSlave.physicalAge < $activeSlave.pubertyAgeXX>><<set $activeSlave.preg = -1>><</if>> + <<if $activeSlave.preg > 0>> + <<set $activeSlave.pregType = setPregType($activeSlave)>> + <</if>> <<SetBellySize $activeSlave>> <<set $activeSlave.vaginalSkill = random(15,100)>> <<set $activeSlave.vagina = random(1,3)>> @@ -3517,6 +3542,8 @@ <<set $activeSlave.preg = random(1,40)>> <</if>> <</if>> + <<set $activeSlave.pregType = 1>> + <<set $activeSlave.pregWeek = $activeSlave.preg>> <</if>> <<SetBellySize $activeSlave>> <<set $activeSlave.intelligenceImplant = 1>> @@ -3804,7 +3831,7 @@ <<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>> <<case "Motherly Attendant">> <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.health = random(80,95), $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.face = random(60,90)>> - <<set $activeSlave.career = either("a counselor", "a dispatch officer", "a lifeguard", "a masseuse", "a psychologist", "a therapist"), $activeSlave.birthsTotal = random(1,3), $activeSlave.pregKnown = 1, $activeSlave.preg = random(20,35), $activeSlave.pregWeek = $activeSlave.preg>> + <<set $activeSlave.career = either("a counselor", "a dispatch officer", "a lifeguard", "a masseuse", "a psychologist", "a therapist"), $activeSlave.birthsTotal = random(1,3), $activeSlave.pregKnown = 1, $activeSlave.preg = random(20,35), $activeSlave.pregWeek = $activeSlave.preg, $activeSlave.pregType = 1>> <<SetBellySize $activeSlave>> <<set $activeSlave.actualAge = random(36,$retirementAge-3)>> <<set $activeSlave.vagina = random(3,4)>> diff --git a/src/uncategorized/slaveGenerationWidgets.tw b/src/utility/slaveGenerationWidgets.tw similarity index 83% rename from src/uncategorized/slaveGenerationWidgets.tw rename to src/utility/slaveGenerationWidgets.tw index 27ba8fede099883ac29d6b77419ab513c5b150ef..15068d57c3ac13162f79c0c63403bc27ee4124ba 100644 --- a/src/uncategorized/slaveGenerationWidgets.tw +++ b/src/utility/slaveGenerationWidgets.tw @@ -2,7 +2,7 @@ <<widget "NationalityToRace">> <<set $args[0].race - = (setup.raceSelector[$args[0].nationality] || setup.raceSelector[""]).random()>> + = hashChoice(setup.raceSelector[$args[0].nationality] || setup.raceSelector[""])>> <</widget>> <<widget "NationalityToName">> @@ -743,6 +743,172 @@ <</if>> <<case "Tongan">> <<set $args[0].accent = _naturalAccent>> + <<case "Catalan">> + <<set $args[0].accent = _naturalAccent>> +<<case "Equatoguinean">> + <<if $language == "Spanish">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "French Polynesian">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Kurdish">> + <<set $args[0].accent = _naturalAccent>> +<<case "Tibetan">> + <<if $language == "Chinese">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Bissau-Guinean">> + <<if $language == "Portuguese">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Chadian">> + <<if $language == "Arabic">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Comorian">> + <<set $args[0].accent = _naturalAccent>> +<<case "Ivorian">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Mauritanian">> + <<if $language == "Arabic">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Mauritian">> + <<set $args[0].accent = _naturalAccent>> +<<case "Mosotho">> + <<set $args[0].accent = _naturalAccent>> +<<case "Sierra Leonean">> + <<if $language == "English">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Swazi">> + <<set $args[0].accent = _naturalAccent>> +<<case "Angolan">> + <<if $language == "Portuguese">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Sahrawi">> + <<if $language == "Arabic">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Burkinabé">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Cape Verdean">> + <<if $language == "Portuguese">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Motswana")>> + <<if $language == "English">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Somali">> + <<if $language == "Arabic">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Rwandan">> + <<set $args[0].accent = _naturalAccent>> +<<case "São Toméan">> + <<if $language == "Portuguese">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Beninese">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Central African">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Gambian">> + <<if $language == "English">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Senegalese">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Togolese">> + <<if $language == "French">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Eritrean">> + <<set $args[0].accent = _naturalAccent>> +<<case "Guinean">> + <<set $args[0].accent = _naturalAccent>> +<<case "Malawian">> + <<set $args[0].accent = _naturalAccent>> +<<case "Zairian">> + <<set $args[0].accent = _naturalAccent>> +<<case "Liberian">> + <<if $language == "English">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Mozambican">> + <<if $language == "Portuguese">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "Namibian">> + <<if $language == "English">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> +<<case "South Sudanese">> + <<if $language == "English">> + <<set $args[0].accent = 1>> + <<else>> + <<set $args[0].accent = _naturalAccent>> + <</if>> <<case "Roman Revivalist">> <<if $language == "Latin">> <<set $args[0].accent = 0>> diff --git a/src/utility/summaryWidgets.tw b/src/utility/summaryWidgets.tw index 5b86241f962fed3f135c90291dd2c73244a0438b..8a6e22f32231870aa9f72d41e6a11c6956ed226e 100644 --- a/src/utility/summaryWidgets.tw +++ b/src/utility/summaryWidgets.tw @@ -39,5 +39,5 @@ <<if isNaN($args[0].penetrativeCount)>><<set $args[0].penetrativeCount = 0>>//Pentration count has broken, report what you just did!<</if>> <<if ndef $args[0].foreskin>><<set $args[0].foreskin = 0>><</if>> <<if $args[0].amp != 0 && $args[0].heels == 1>><<set $args[0].heels = 0>><</if>> -<<if $args[0].vagina < 0 && $args[0].mpreg == 0 && $args[0].preg == -1>><<set $args[0].preg = 0>><</if>> +<<if $args[0].vagina < 0 && $args[0].mpreg == 0 && $args[0].preg == -1>><<set $args[0].preg = 0, WombFlush($args[0])>><</if>> <</widget>>