BenchmarkTest

Benchmark created on


Setup



"use strict";
function strcmpOffset(src, target, offset = 0) {
    // 确保偏移量在合理范围内
    if (offset < 0 || offset >= src.length) {
        return -1;
    }
    // 使用循环进行字符比较
    for (let i = offset, j = 0; i < src.length && j < target.length; i++, j++) {
        if (src[i] < target[j])
            return -1;
        if (src[i] > target[j])
            return 1;
    }
    // 处理长度不同的情况
    if ((src.length - offset) < target.length)
        return -1;
    if ((src.length - offset) > target.length)
        return 1;
    return 0; // 如果两个字符串相等,返回 0
}
function tryReplaceStringFuzzyWithHint(s, v, passageNameOrFileName) {
    // first , we try to match and replace with const string in +-2 , this is the fastest way
    if (s.substring(v.pos, v.pos + v.from.length) === v.from) {
        s = s.substring(0, v.pos) + v.to + s.substring(v.pos + v.from.length);
    }
    else if (s.substring(v.pos - 1, v.pos + v.from.length - 1) === v.from) {
        s = s.substring(0, v.pos - 1) + v.to + s.substring(v.pos - 1 + v.from.length);
    }
    else if (s.substring(v.pos - 2, v.pos + v.from.length - 2) === v.from) {
        s = s.substring(0, v.pos - 2) + v.to + s.substring(v.pos - 2 + v.from.length);
    }
    else if (s.substring(v.pos + 1, v.pos + v.from.length + 1) === v.from) {
        s = s.substring(0, v.pos + 1) + v.to + s.substring(v.pos + 1 + v.from.length);
    }
    else if (s.substring(v.pos + 2, v.pos + v.from.length + 2) === v.from) {
        s = s.substring(0, v.pos + 2) + v.to + s.substring(v.pos + 2 + v.from.length);
    }
    else {
        // otherwise , we try to match and replace with fuzzy match in [-10~+30]
        try {
            let re = new RegExp((v.from), '');
            // re.lastIndex = v.pos;
            const startPos = Math.max(0, v.pos - 10);
            const endPos = Math.min(s.length, v.pos + v.from.length + 30);
            const mm = re.exec(s.substring(startPos, endPos));
            if (mm) {
                const pStart = startPos + mm.index;
                const pEnd = pStart + v.from.length;
                s = s.substring(0, pStart) + v.to + s.substring(pEnd);
            }
            else {
                console.error('tryReplaceStringFuzzyWithHint cannot find: ', [v.from], ' in ', [passageNameOrFileName], ' at ', [v.pos], ' in ', [s.substring(v.pos - 10, v.pos + v.from.length + 10)]);
            }
            re = undefined;
        }
        catch (e) {
            console.error(e);
            console.error('tryReplaceStringFuzzyWithHint cannot find with error: ', [v.from], ' in ', [passageNameOrFileName], ' at ', [v.pos], ' in ', [s.substring(v.pos - 10, v.pos + v.from.length + 10)]);
        }
    }
    return s;
}
function tryReplaceStringFuzzyWithHint2(s, v, passageNameOrFileName) {
    // first , we try to match and replace with const string in +-2 , this is the fastest way
    if (strcmpOffset(s, v.from, v.pos) == 0) {
        s = s.substring(0, v.pos) + v.to + s.substring(v.pos + v.from.length);
    }
    else if (strcmpOffset(s, v.from, v.pos - 1) == 0) {
        s = s.substring(0, v.pos - 1) + v.to + s.substring(v.pos - 1 + v.from.length);
    }
    else if (strcmpOffset(s, v.from, v.pos - 2) == 0) {
        s = s.substring(0, v.pos - 2) + v.to + s.substring(v.pos - 2 + v.from.length);
    }
    else if (strcmpOffset(s, v.from, v.pos + 1) == 0) {
        s = s.substring(0, v.pos + 1) + v.to + s.substring(v.pos + 1 + v.from.length);
    }
    else if (strcmpOffset(s, v.from, v.pos + 2) == 0) {
        s = s.substring(0, v.pos + 2) + v.to + s.substring(v.pos + 2 + v.from.length);
    }
    else {
        // otherwise , we try to match and replace with fuzzy match in [-10~+30]
        try {
            let re = new RegExp((v.from), '');
            // re.lastIndex = v.pos;
            const startPos = Math.max(0, v.pos - 10);
            const endPos = Math.min(s.length, v.pos + v.from.length + 30);
            const mm = re.exec(s.substring(startPos, endPos));
            if (mm) {
                const pStart = startPos + mm.index;
                const pEnd = pStart + v.from.length;
                s = s.substring(0, pStart) + v.to + s.substring(pEnd);
            }
            else {
                console.error('tryReplaceStringFuzzyWithHint cannot find: ', [v.from], ' in ', [passageNameOrFileName], ' at ', [v.pos], ' in ', [s.substring(v.pos - 10, v.pos + v.from.length + 10)]);
            }
            re = undefined;
        }
        catch (e) {
            console.error(e);
            console.error('tryReplaceStringFuzzyWithHint cannot find with error: ', [v.from], ' in ', [passageNameOrFileName], ' at ', [v.pos], ' in ', [s.substring(v.pos - 10, v.pos + v.from.length + 10)]);
        }
    }
    return s;
}


let s = "I am a curious cat, let's play!";
let v = {
    pos: 7,
    from: 'curious cat',
    to: 'playful kitten'
};
let passageNameOrFileName = "Example Passage";


let src_str = ":: Widgets [widget]\n" +
    "<<widget \"toggledebug\">>\n" +
    "\t<<if $debug>>\n" +
    "\t\t<<set $debug to 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $debug to 0>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"statbar\">>\n" +
    "\t<div @class=\"(_args[2] is true ? 'rightMeter' : 'meter')\">\n" +
    "\t\t<<if _args[0] is 0>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set _percent=Math.floor((_args[0]/_args[1])*100)>>\n" +
    "\t\t\t<<switch Math.floor(_percent/10)>>\n" +
    "\t\t\t\t<<case 8 9>><<set _statColor to \"pinkbar\">>\n" +
    "\t\t\t\t<<case 6 7>><<set _statColor to \"purplebar\">>\n" +
    "\t\t\t\t<<case 4 5>><<set _statColor to \"bluebar\">>\n" +
    "\t\t\t\t<<case 2 3>><<set _statColor to \"lbluebar\">>\n" +
    "\t\t\t\t<<case 0 1>><<set _statColor to \"tealbar\">>\n" +
    "\t\t\t\t<<default>><<set _statColor to \"redbar\">>\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t\t<div @class=\"_statColor\" @style=\"'width:' + _percent + '%'\"></div>\n" +
    "\t\t<</if>>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"statbarinverted\">>\n" +
    "\t<<set _now to _args[0]>><<set _max to _args[1]>>\n" +
    "\t<div @class=\"(_args[2] is true ? 'rightMeter' : 'meter')\">\n" +
    "\t\t<<if _args[0] is 0>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set _percent=Math.floor((_args[0]/_args[1])*100)>>\n" +
    "\t\t\t<<switch Math.floor(_percent/10)>>\n" +
    "\t\t\t\t<<case 8 9>><<set _statColor to \"tealbar\">>\n" +
    "\t\t\t\t<<case 6 7>><<set _statColor to \"lbluebar\">>\n" +
    "\t\t\t\t<<case 4 5>><<set _statColor to \"bluebar\">>\n" +
    "\t\t\t\t<<case 2 3>><<set _statColor to \"purplebar\">>\n" +
    "\t\t\t\t<<case 0 1>><<set _statColor to \"pinkbar\">>\n" +
    "\t\t\t\t<<default>><<set _statColor to \"greenbar\">>\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t\t<div @class=\"_statColor\" @style=\"'width:' + _percent + '%'\"></div>\n" +
    "\t\t<</if>>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wateraction\">>\n" +
    "\t<<if currentSkillValue('swimmingskill') lt 100>>\n" +
    "\t\t<<pass 18 sec>>\n" +
    "\t\t<<set $oxygen -= 180>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 18>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 200>>\n" +
    "\t\t<<pass 15 sec>>\n" +
    "\t\t<<set $oxygen -= 150>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 15>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 300>>\n" +
    "\t\t<<pass 12 sec>>\n" +
    "\t\t<<set $oxygen -= 120>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 12>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 400>>\n" +
    "\t\t<<pass 10 sec>>\n" +
    "\t\t<<set $oxygen -= 100>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 10>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 500>>\n" +
    "\t\t<<pass 8 sec>>\n" +
    "\t\t<<set $oxygen -= 80>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 8>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 600>>\n" +
    "\t\t<<pass 8 sec>>\n" +
    "\t\t<<set $oxygen -= 80>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 8>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 700>>\n" +
    "\t\t<<pass 7 sec>>\n" +
    "\t\t<<set $oxygen -= 70>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 7>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 800>>\n" +
    "\t\t<<pass 7 sec>>\n" +
    "\t\t<<set $oxygen -= 70>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 7>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 900>>\n" +
    "\t\t<<pass 6 sec>>\n" +
    "\t\t<<set $oxygen -= 60>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 6>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 1000>>\n" +
    "\t\t<<pass 6 sec>>\n" +
    "\t\t<<set $oxygen -= 60>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 6>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 1100>>\n" +
    "\t\t<<pass 5 sec>>\n" +
    "\t\t<<set $oxygen -= 50>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 5>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif currentSkillValue('swimmingskill') lt 1200>>\n" +
    "\t\t<<pass 4 sec>>\n" +
    "\t\t<<set $oxygen -= 40>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 4>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<pass 3 sec>>\n" +
    "\t\t<<set $oxygen -= 30>>\n" +
    "\t\t<<if $lake_ice_broken gte 1>>\n" +
    "\t\t\t<<if random(1, 120) lte 3>>\n" +
    "\t\t\t\t<<unset $lake_ice_broken>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"underwater\">>\n" +
    "\t<<water>><<set $underwater to 1>><<set $underwatercheck to 1>>\n" +
    "\t<<if $combat isnot 1>>\n" +
    "\t\t<<if $oxygen lt 0 and $nooxygen is 1>>\n" +
    "\t\t\t<<set $stress += 1000>>\n" +
    "\t\t<<elseif $oxygen lt 0 and $nooxygen isnot 1>>\n" +
    "\t\t\t<<set $nooxygen to 1>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $nooxygen to 0>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<span class=\"lblue\">氧气:</span>\n" +
    "\t\t<<if $oxygen lt 0>>\n" +
    "\t\t\t<span class=\"red\">你窒息了! 你的压力将会持续增长。在没有新鲜空气的情况下,你很快就会昏倒。</span>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<oxygencaption>>\n" +
    "\t\t<<if $underwaterintro isnot 1 and $combat isnot 1 and !$possessed>>\n" +
    "\t\t\t<<set $underwaterintro to 1>>\n" +
    "\t\t\t<i>你不可能永远屏住呼吸,你的游泳技能越高,每次行动经过的时间就越短,消耗的氧气也会更少。</i>\n" +
    "\t\t\t<br><br>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"oxygenrefresh\">>\n" +
    "\t<<set $oxygen to $oxygenmax>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"oxygen\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set $oxygen += _args[0]>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args[0] lt 0>>\n" +
    "\t\t<<set _strangle to 1>>\n" +
    "\t<</if>>\n" +
    "\t<<set $oxygen = Math.clamp($oxygen, 0, $oxygenmax)>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"virginitylosttext\">>\n" +
    "\t<<if $templePromised is _args[0]>>\n" +
    "\t\t<span class=\"lblue\">但你的纯洁之证依旧完好如初。</span>\n" +
    "\t<<else>>\n" +
    "\t\t<span class=\"red\">永久地夺走了你的贞操。</span>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"neutral\">> <!-- This widget's names ('neutral') is awful. Maybe 'molest' might better describe its use? -->\n" +
    "\t<!-- args[1] now modifies the arousal applied to the PC -->\n" +
    "\t<!-- Consult the 'arousal' widget to see how -->\n" +
    "\t<<if _args[0] and (typeof _args[0]) is \"number\">>\n" +
    "\n" +
    "\t\t<<if $consensual isnot 1>>\n" +
    "\t\t\t<<if $drunk gt 0>>\n" +
    "\t\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>>\n" +
    "\t\t\t\t<<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set $_stress_multiplier to 10>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<stress _args[0] $_stress_multiplier>>\n" +
    "\t\t\t<<combattrauma _args[0]>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t\t<<set _arousal to 20 * _args[0]>>\n" +
    "\t\t<<if _args[1] and _args[2] and (typeof _args[1]) is \"string\" and (typeof _args[2]) is \"number\">>\n" +
    "\t\t\t<<arousal _arousal _args[1]>>\n" +
    "\t\t\t<<enemyarousal _args[0] _args[2]>>\n" +
    "\t\t<<elseif _args[1] and (typeof _args[1]) is \"string\">>\n" +
    "\t\t\t<<arousal _arousal _args[1]>>\n" +
    "\t\t\t<<enemyarousal _args[0]>>\n" +
    "\t\t<<elseif _args[1] and (typeof _args[1]) is \"number\">>\n" +
    "\t\t\t<<arousal _arousal>>\n" +
    "\t\t\t<<enemyarousal _args[0] _args[1]>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"neutralbreast\">>\n" +
    "\t<<neutral _args[0] \"breasts\">>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"neutralgenitals\">>\n" +
    "\t<<neutral _args[0] \"genitals\">>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"enemyarousal\">>\n" +
    "\t<<set $enemyarousal += _args[0]>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"sex\">>\n" +
    "\t<!-- args[1] - indicates target: \"genitals\" if penile or vaginal, \"anus\" if anal, \"mouth\" if oral -->\n" +
    "\n" +
    "\t<!-- Comment Akoz: args[2] was used at some places to show double penetration and at others -->\n" +
    "\t<!-- to pass which enemy NPC is doing the fucking. I'd leave it to mean the later, but -->\n" +
    "\t<!-- I didn't want to make a decision about a system I'm not working on. -->\n" +
    "\t<!-- So I chose to leave args[2] unused -->\n" +
    "\n" +
    "\t<!-- Comment Purity: args[2] is now used to check which NPC is causing it. -->\n" +
    "\t<!-- For double penetration, the widget is now called twice. Once for each NPC. -->\n" +
    "\t<<if _args[0] and (typeof _args[0]) is \"number\">>\n" +
    "\t\t<<if $consensual isnot 1>>\n" +
    "\t\t\t<<if $drunk gt 0>>\n" +
    "\t\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>>\n" +
    "\t\t\t\t<<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set $_stress_multiplier to 10>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<stress _args[0] $_stress_multiplier>>\n" +
    "\t\t\t<<combattrauma _args[0]>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<stress _args[0] -10>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _arousal to 20 * _args[0]>>\n" +
    "\t\t<<set _enemyarousal to 2 * _args[0]>>\n" +
    "\t\t<<if _args[1] is undefined>>\n" +
    "\t\t\t<<error {\n" +
    "\t\t\t\tmessage : `Expected a second parameter, but none was provided.`,\n" +
    "\t\t\t\tsource : \"Called from \" + Utils.GetStack()\n" +
    "\t\t\t}>>\n" +
    "\t\t<<elseif _args[2] and (typeof _args[2]) is \"number\">>\n" +
    "\t\t\t<<if wearingCondom(_args[2]) and [\"genital\",\"genitals\",\"anal\"].includes(_args[1])>>\n" +
    "\t\t\t\t<<switch $NPCList[_args[2]].condom.type>>\n" +
    "\t\t\t\t\t<<case \"plain\">>\n" +
    "\t\t\t\t\t\t<<set _arousal to Math.floor(_arousal * 0.9)>>\n" +
    "\t\t\t\t\t\t<<set _enemyarousal to Math.floor(_enemyarousal * 0.9)>>\n" +
    "\t\t\t\t\t<<default>>\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if wearingCondom(\"player\") and [\"genital\",\"genitals\"].includes(_args[1])>>\n" +
    "\t\t\t\t<<switch $player.condom.type>>\n" +
    "\t\t\t\t\t<<case \"plain\">>\n" +
    "\t\t\t\t\t\t<<set _arousal to Math.floor(_arousal * 0.9)>>\n" +
    "\t\t\t\t\t\t<<set _enemyarousal to Math.floor(_enemyarousal * 0.9)>>\n" +
    "\t\t\t\t\t<<default>>\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<arousal _arousal _args[1]>>\n" +
    "\t\t<<enemyarousal _enemyarousal>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<!--_args[0] is the base value, _args[1] is the skill-->\n" +
    "<<widget \"sexControl\">>\n" +
    "\t<<if _args[0] and _args[1] gte 800>>\n" +
    "\t\t<<set _loss to _args[1] / 180 * _args[0]>>\n" +
    "\t\t<<if _args[1] gte 1200>>\n" +
    "\t\t\t<<set _loss += 1>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t\t<<if $enemyarousal gte $enemyarousalmax * 0.7>>\n" +
    "\t\t\t<<set _loss *= 2>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $enemyarousal gte $enemyarousalmax * 0.9>>\n" +
    "\t\t\t<<set _loss *= 2>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _loss *= $enemyArousalLossReduction>>\n" +
    "\t\t<<if $enemyArousalLossReduction gt 0.2>>\n" +
    "\t\t\t<<set $enemyArousalLossReduction -= (_args[1] gte 1200 ? 0.03 : 0.04)>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $enemyarousal to Math.clamp($enemyarousal - Math.round(_loss), Math.min($enemyarousal, $enemyarousalmax / 5), $enemyarousalmax)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"violence\">>\n" +
    "\t<!-- NG tuning v2.7 $arousal from $masochism/50 to /7. PC now orgasms at least once during spanking encounter at 50% masocism level and twice at 100% masoohism. /10 at max is required to orgasm once at 100% masochism. -->\n" +
    "\t<!-- NG added stress reduction for masochists. Trauma left same -->\n" +
    "\t<<if _args.length gte 1>>\n" +
    "\t\t<<set _violence = _args[0]>>\n" +
    "\t\t<<set _stressMod = _args[1] || 1>>\n" +
    "\t\t<<set _traumaMod = _args[2] || 1>>\n" +
    "\t\t<<set _painMod = _args[3] || 1>>\n" +
    "\t\t<!-- args[4] - indicates NPC id (but is currently unused) -->\n" +
    "\n" +
    "\t\t<<if _violence gt 0 or _violence lt 0>>\n" +
    "\t\t\t<<if $drunk gt 0>>\n" +
    "\t\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>>\n" +
    "\t\t\t\t<<set _drunkMod to [9,8,6,4,3][$_drunk_level]>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _drunkMod to 10>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if $possessed is true and _violence gte 0>>\n" +
    "\t\t\t\t<<set $_controlMod to (10 * $enemyno)>>\n" +
    "\t\t\t\t<<control `_violence / $_controlMod`>>\n" +
    "\t\t\t\t<<set $wraith.will -= _violence>>\n" +
    "\t\t\t\t<<set _possessMod to 3>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _possessMod to 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $stress += (_violence * _drunkMod * _stressMod) * (1 - ($masochism / 1200))>>\n" +
    "\t\t\t<<combattrauma _violence * _traumaMod>>\n" +
    "\t\t\t<<set $pain += (_violence * _painMod * (1 - ($masochism / 1200)) * (1 - ($sciencetrait / 10)) / _possessMod)>>\n" +
    "\t\t\t<<set _arousal to (_violence * (0 + ($masochism / 18)))>>\n" +
    "\t\t\t<<arousal _arousal/_possessMod \"maso\">>\n" +
    "\t\t\t<<if $orgasmdown gte 1>>\n" +
    "\t\t\t\t<<if $masochism gte 800>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 20)`>>\n" +
    "\t\t\t\t<<elseif $masochism gte 500>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 10)`>>\n" +
    "\t\t\t\t<<elseif $masochism gte 300>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 6)`>>\n" +
    "\t\t\t\t<<elseif $masochism gte 100>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 2)`>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<<masochism _violence>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if _violence gte 6>>\n" +
    "\t\t\t\t<<set $enemyanger -= 5>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set $enemyanger -= _violence>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $enemyarousal += 1>>\n" +
    "\t\t\t<<painclamp>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"violence_noncombat\">>\n" +
    "\t<<if _args.length gte 1>>\n" +
    "\t\t<<set _violence = _args[0]>>\n" +
    "\t\t<<set _stressMod = _args[1] || 1>>\n" +
    "\t\t<<set _traumaMod = _args[2] || 1>>\n" +
    "\t\t<<set _painMod = _args[3] || 1>>\n" +
    "\t\t<<set _arousalMod = _args[4] || 1>>\n" +
    "\n" +
    "\t\t<<if _violence gt 0 or _violence lt 0>>\n" +
    "\t\t\t<<if $drunk gt 0>>\n" +
    "\t\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>>\n" +
    "\t\t\t\t<<set _drunkMod to [9,8,6,4,3][$_drunk_level]>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _drunkMod to 10>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $stress += (_violence * _drunkMod * _stressMod) * (1 - ($masochism / 1200))>>\n" +
    "\t\t\t<<trauma _violence * _traumaMod>>\n" +
    "\t\t\t<<set $pain += (_violence * _painMod * (1 - ($masochism / 1200)) * (1 - ($sciencetrait / 10)))>>\n" +
    "\t\t\t<<set _arousal to (_violence * _arousalMod * (0 + ($masochism / 18)))>>\n" +
    "\t\t\t<<arousal _arousal \"maso\">>\n" +
    "\t\t\t<<set $arousalmasochism += (_violence * (0 + ($masochism / 7)))>>\n" +
    "\t\t\t<<if $orgasmdown gte 1>>\n" +
    "\t\t\t\t<<if $masochism gte 800>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 20)`>>\n" +
    "\t\t\t\t<<elseif $masochism gte 500>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 10)`>>\n" +
    "\t\t\t\t<<elseif $masochism gte 300>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 6)`>>\n" +
    "\t\t\t\t<<elseif $masochism gte 100>>\n" +
    "\t\t\t\t\t<<masochism `(_violence / 2)`>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<<masochism _violence>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<painclamp>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"submission\">>\n" +
    "\t<!-- Comment Akoz: this won't use sensitivities as I reckon this arousal source is -->\n" +
    "\t<!-- entirely psychological. -->\n" +
    "\t<!-- args[0] - the submission value -->\n" +
    "\t<!-- args[1] - the NPC to whom PC is submitting (currently unused) -->\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<if $consensual isnot 1>>\n" +
    "\t\t\t<<if $drunk gt 0>>\n" +
    "\t\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>>\n" +
    "\t\t\t\t<<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set $_stress_multiplier to 10>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<stress _args[0] $_stress_multiplier>>\n" +
    "\t\t\t<<sub `_args[0] / 4`>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $stress -= 10 * _args[0]>>\n" +
    "\t\t\t<<set $assertive += 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _arousal to 20 * _args[0]>>\n" +
    "\t\t<<arousal _arousal>>\n" +
    "\t\t<<set $enemyarousal += 3 * _args[0]>>\n" +
    "\t\t<<set $enemytrust += 2>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"defiance\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set _defiance to (_args[0] * (1 + ($sadism / 1000)))>>\n" +
    "\t\t<<set $stress -= 10 * _defiance>>\n" +
    "\t\t<<combattrauma `-_defiance`>>\n" +
    "\t\t<<set $enemyanger += 5 * _defiance>>\n" +
    "\t\t<<def `_args[0] / 4`>>\n" +
    "\t\t<<set $enemytrust -= 4>>\n" +
    "\t\t<<set _defiance_arousal to (_defiance * ($sadism / 40))>>\n" +
    "\t\t<<arousal _defiance_arousal>>\n" +
    "\t\t<<if $arousal gte ($arousalmax * 0.8)>>\n" +
    "\t\t\t<<sadism _args[0]>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _thedamage to (2 * _defiance * ($physique / 4000))>>\n" +
    "\t\t<<if $enemyno gte 2>>\n" +
    "\t\t\t<<npcdamage _args[1]>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $enemyhealth -= _thedamage>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"brat\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<if $drunk gt 0>>\n" +
    "\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>>\n" +
    "\t\t\t<<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $_stress_multiplier to 10>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<stress _args[0] $_stress_multiplier>>\n" +
    "\t\t<<combattrauma `-1 * _args[0]`>>\n" +
    "\t\t<<if _args[1] is \"demanding\">>\n" +
    "\t\t\t<<set $enemyanger += 20 * _args[0]>>\n" +
    "\t\t<<elseif $NPCList[0].legs isnot \"walk\">>\n" +
    "\t\t\t<<set $enemyanger += 5 * _args[0]>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<def `_args[0] / 4`>>\n" +
    "\t\t<<set $enemytrust -= 2>>\n" +
    "\t\t<<set $NPCList[0].bold to ($NPCList[0].bold gte _args[0] * 10 ? $NPCList[0].bold - _args[0] * 10 : 0)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"meek\">>\n" +
    "\t<!-- Comment Akoz: this won't use sensitivities as I reckon this arousal source is -->\n" +
    "\t<!-- entirely psychological. -->\n" +
    "\t<!-- args[0] - the meek value -->\n" +
    "\t<!-- args[1] - the NPC for whom PC is acting meekly (currently unused) -->\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<if $consensual isnot 1>>\n" +
    "\t\t\t<<sub `_args[0] / 4`>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $assertive += 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _arousal to 20 * _args[0]>>\n" +
    "\t\t<<arousal _arousal>>\n" +
    "\t\t<<set $enemyarousal += _args[0]>>\n" +
    "\t\t<<set $enemytrust += 1>>\n" +
    "\t\t<<set $enemyanger -= _args[0]>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"crimeUp\">><<silently>>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if _args[0] eq null>>\n" +
    "\t\t\t<<set _crimeError to `No input found for crimeUp widget!`>>\n" +
    "\t\t<<elseif isNaN(_args[0])>>\n" +
    "\t\t\t<<set _crimeError to `NaN input found for crimeUp widget: '${_args[0]}'`>>\n" +
    "\t\t<<elseif _args[0] lt 0>>\n" +
    "\t\t\t<<set _crimeError to `Negative input found for crimeUp widget: '${_args[0]}'`>>\n" +
    "\t\t<<elseif _args[0] gt 0>>\n" +
    "\t\t\t<<set _crimeType to _args[1] || \"thievery\">>\n" +
    "\t\t\t<<if !setup.crimeNames[_crimeType]>>\n" +
    "\t\t\t\t<<run Errors.report(\"Extra-Illegal crime committed of type; \" + _crimeType + \" defaulted to thievery\")>>\n" +
    "\t\t\t\t<<set _crimeType to \"thievery\">>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $_crimemod to Number(_args[0])>>\n" +
    "\t\t\t<<set $_crimeMult to 1>>\n" +
    "\n" +
    "\t\t\t<<if ![\"coercion\", \"resisting\"].includes(_crimeType)>>\n" +
    "\t\t\t\t<!-- ignore stealth (or concealed identity) for crimes where it is irrelevant; -->\n" +
    "\t\t\t\t<!-- resisting arrest where the player's identity is explicitly known, and coercion where the player's force of personality is needed -->\n" +
    "\t\t\t\t/* The following commented code contains experimental factors for calculating stealth */\n" +
    "\t\t\t\t/*\n" +
    "\t\t\t\t\t<<set $_crime1 to Math.clamp($crime, C.crime.min, C.crime.max / 10)>>\n" +
    "\t\t\t\t\t<<set $_crime2 to $crime - $_crime1>>\n" +
    "\t\t\t\t\t<<set $_crime2 to Math.clamp($crime - $_crime1, C.crime.min, C.crime.max / 10)>>\n" +
    "\t\t\t\t\t<!-- crime1 = first 5k of crime, crime2 = next 5k of crime -->\n" +
    "\t\t\t\t\t<<set $_normCrime1 to normalise($_crime1, C.crime.max / 10)>>\n" +
    "\t\t\t\t\t<<set $_normCrime2 to normalise($_crime2, C.crime.max / 10)>>\n" +
    "\t\t\t\t\t<!-- Both normalized to percentage of max/10 (currently 5k) -->\n" +
    "\t\t\t\t\t<<set $_stealthReduce1 to expCurve($_normcrime1, 3.0)>>\n" +
    "\t\t\t\t\t<!-- First 5k of crime at a curve to 5000 -->\n" +
    "\t\t\t\t*/\n" +
    "\t\t\t\t<<set $_stealthfactor to ( 0.15 * ( 1 - normalise($crime[_crimeType].current, C.crime.max / 5 ) ) )>>\n" +
    "\t\t\t\t<!-- Stealth gives 15%, but reduced by existing crime stat down to 0 at C.crime.max / 5 -->\n" +
    "\t\t\t\t<!-- At 10k crime of the current type, stealthy equipment is effectively useless - too much evidence -->\n" +
    "\n" +
    "\t\t\t\t<!-- Filter to all items with type \"stealthy\" and count them -->\n" +
    "\t\t\t\t<<set $_stealthMult to Object.values($worn).filter(item => item.type.includes(\"stealthy\")).length>>\n" +
    "\t\t\t\t<<set $_crimeMult -= $_stealthfactor * $_stealthMult>>\n" +
    "\n" +
    "\t\t\t\t<!-- Filter to all items with type \"unstealthy\" and count them -->\n" +
    "\t\t\t\t<<set $_unstealthMult to Object.values($worn).filter(item => item.type.includes(\"unstealthy\")).length>>\n" +
    "\t\t\t\t<<set $_crimeMult += 0.15 * $_unstealthMult>>\n" +
    "\n" +
    "\t\t\t\t<<if [\"thievery\", \"petty\", \"trespassing\"].includes(_crimeType)>>\n" +
    "\t\t\t\t\t<!-- For stealthy crimes, player skulduggery skill gives further reduction up to another 15%. 1000 is max skulduggery clamp, replace as needed -->\n" +
    "\t\t\t\t\t<<set $_skillMult to ( 0.15 * normalise($skulduggery, 1000) )>>\n" +
    "\t\t\t\t\t<<set $_crimeMult -= $_skillMult>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t\t<<set $_crimemod to Math.ceil($_crimemod * $_crimeMult)>>\n" +
    "\t\t\t\t<<if [\"petty\"].includes(_crimeType) and $skulduggery gte 500>>\n" +
    "\t\t\t\t\t<!-- Petty thievery has extra flat reduction if skulduggery skill above 500 (C+), possibly negating the crime gain entirely -->\n" +
    "\t\t\t\t\t<<set $_crimemod -= Math.floor($skulduggery / 10)>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<set $_crimemod to Math.clamp($_crimemod, 0, C.crime.max)>>\n" +
    "\n" +
    "\t\t\t<<if $_crimemod gt 0>>\n" +
    "\t\t\t\t<!-- If crime gain is still greater than 0, add to crime daily, history, count, and Avery crimetracker-->\n" +
    "\t\t\t\t<!-- crimemod lte 0 represents a crime the player completely got away with, so nothing is recorded-->\n" +
    "\t\t\t\t<<set C.crime[_crimeType] += $_crimemod>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"History\"] += $_crimemod>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"Daily\"] += $_crimemod>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"Count\"] += 1>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"CountHistory\"] += 1>>\n" +
    "\t\t\t\t<<if $averyCrimeTracker neq null>>\n" +
    "\t\t\t\t\t<<set $averyCrimeTracker += $_crimemod>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t\t<<if [\"thievery\", \"petty\"].includes(_crimeType) and\n" +
    "\t\t\t\t$foxbuild gte 1 and \n" +
    "\t\t\t\tMath.max($wolfbuild, $catbuild, $cowbuild, $birdbuild, $foxbuild) is $foxbuild>>\n" +
    "\t\t\t\t\t<!-- If the player steals enough, and fox is their highest beast TF (and above 0), apply fox TF pressure -->\n" +
    "\t\t\t\t\t<<if !$foxCrimeProgress>>\n" +
    "\t\t\t\t\t\t<!-- Resets daily at 6AM, in dawnCheck, time.js -->\n" +
    "\t\t\t\t\t\t<<set $foxCrimeProgress to 0>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<<set $foxCrimeProgress += $_crimemod>>\n" +
    "\t\t\t\t\t<<set $_foxCrimeRequired = Math.floor(50 * (1 + $foxbuild))>>\n" +
    "\t\t\t\t\t<<if $foxCrimeProgress gte $_foxCrimeRequired>>\n" +
    "\t\t\t\t\t\t<<transform fox 1>>\n" +
    "\t\t\t\t\t\t<<set $foxCrimeMessage to true>>\n" +
    "\t\t\t\t\t\t<<set $foxCrimeProgress to Math.clamp($foxCrimeProgress, 0, ($foxCrimeProgress - $_foxCrimeRequired))>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t\t<<if _args[2]>>\n" +
    "\t\t\t\t\t<!-- Optional argument to record more specific crimes with description. Does not work yet, unused.-->\n" +
    "\t\t\t\t\t<<set _description to _args[2]>>\n" +
    "\t\t\t\t\t<<if !setup.crimeDescs[_description]>>\n" +
    "\t\t\t\t\t\t<<run Errors.report(\"Extra-Illegal crime committed of description; \" + _description + \" crime event not logged\")>>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<<run C.crime.logEvent($_crimemod, _crimeType, _description)>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<if $earSlime.event is \"steal something\" and [\"thievery\", \"petty\"].includes(_crimeType)>>\n" +
    "\t\t\t\t<<set $earSlime.event to \"\">><<set $earSlime.noSleep to false>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</silently>><<if _crimeError>><<error {message:T.crimeError}>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"crimeUpFlat\">><<silently>>\n" +
    "\t<!-- stripped down widget with no extra effects, modifiers, or optional arguments, ideally used for cheats and debugging -->\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if _args[0] eq null>>\n" +
    "\t\t\t<<set _crimeError to `No input found for crimeUpFlat widget!`>>\n" +
    "\t\t<<elseif isNaN(_args[0])>>\n" +
    "\t\t\t<<set _crimeError to `NaN input found for crimeUpFlat widget: '${_args[0]}'`>>\n" +
    "\t\t<<elseif _args[0] lt 0>>\n" +
    "\t\t\t<<set _crimeError to `Negative input found for crimeUpFlat widget: '${_args[0]}'`>>\n" +
    "\t\t<<elseif _args[0] gt 0>>\n" +
    "\t\t\t<<set _crimeType to _args[1] || \"thievery\">>\n" +
    "\t\t\t<<if !setup.crimeNames[_crimeType]>>\n" +
    "\t\t\t\t<<run Errors.report(\"Extra-Illegal crime (flat) committed of type; \" + _crimeType + \" defaulted to thievery\")>>\n" +
    "\t\t\t\t<<set _crimeType to \"thievery\">>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $_crimemod to Number(_args[0])>>\n" +
    "\t\t\t<<if _args[0] gt 0>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType] += $_crimemod>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"History\"] += $_crimemod>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"Daily\"] += $_crimemod>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"Count\"] += 1>>\n" +
    "\t\t\t\t<<set C.crime[_crimeType + \"CountHistory\"] += 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</silently>><<if _crimeError>><<error {message:T.crimeError}>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"crimeDown\">><<silently>>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if _args[0] eq null>>\n" +
    "\t\t\t<<set _crimeError to `No input found for crimeDown widget!`>>\n" +
    "\t\t<<elseif isNaN(_args[0])>>\n" +
    "\t\t\t<<set _crimeError to `NaN input found for crimeDown widget: '${_args[0]}'`>>\n" +
    "\t\t<<elseif _args[0] lt 0>>\n" +
    "\t\t\t<<set _crimeError to `Negative input found for crimeDown widget: '${_args[0]}'`>>\n" +
    "\t\t<<elseif _args[0] gt 0>>\n" +
    "\t\t\t<<set _crimeDown to _args[0]>>\n" +
    "\t\t\t<<if _args[1] and _args[1] isnot \"all\">>\n" +
    "\t\t\t\t<<set _crimeType to _args[1]>>\n" +
    "\t\t\t\t<<if !setup.crimeNames[_crimeType]>>\n" +
    "\t\t\t\t\t<<run Errors.report(\"Extra-Illegal crime reduced of type; \" + _crimeType + \" defaulted to thievery\")>>\n" +
    "\t\t\t\t\t<<set _crimeType to \"thievery\">>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<if C.crime[_crimeType] gt 0>>\n" +
    "\t\t\t\t\t<<if _crimeDown lte 1>>\n" +
    "\t\t\t\t\t\t<!-- Reduce crime by percent -->\n" +
    "\t\t\t\t\t\t<<set C.crime[_crimeType] to Math.ceil(C.crime[_crimeType] * _crimeDown)>>\n" +
    "\t\t\t\t\t\t<<set C.crime[_crimeType + \"Daily\"] to Math.ceil(C.crime[_crimeType + \"Daily\"] * _crimeDown)>>\n" +
    "\t\t\t\t\t\t<<set C.crime[_crimeType + \"Count\"] to Math.ceil(C.crime[_crimeType + \"Count\"] * _crimeDown)>>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<!-- Reduce crime by value -->\n" +
    "\t\t\t\t\t\t<<set $_crimeDiv to normalise(C.crime[_crimeType] - _crimeDown, C.crime[_crimeType], C.crime.min)>>\n" +
    "\t\t\t\t\t\t<<set C.crime[_crimeType] -= _crimeDown>>\n" +
    "\t\t\t\t\t\t<<set C.crime[_crimeType + \"Daily\"] -= _crimeDown>>\n" +
    "\t\t\t\t\t\t<!-- Reduce crime type count by same percentile as total crime loss-->\n" +
    "\t\t\t\t\t\t<<set C.crime[_crimeType + \"Count\"] to Math.ceil(C.crime[_crimeType + \"Count\"] * $_crimeDiv)>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<!-- If no crime type specified, apply to all -->\n" +
    "\t\t\t\t<<for _crimeType range Object.keys(setup.crimeNames)>>\n" +
    "\t\t\t\t\t<<if C.crime[_crimeType] gt 0>>\n" +
    "\t\t\t\t\t\t<<if _crimeDown lte 1>>\n" +
    "\t\t\t\t\t\t\t<!-- Reduce crime by percent -->\n" +
    "\t\t\t\t\t\t\t<<set C.crime[_crimeType] to Math.ceil(C.crime[_crimeType] * _crimeDown)>>\n" +
    "\t\t\t\t\t\t\t<<set C.crime[_crimeType + \"Daily\"] to Math.ceil(C.crime[_crimeType + \"Daily\"] * _crimeDown)>>\n" +
    "\t\t\t\t\t\t\t<<set C.crime[_crimeType + \"Count\"] to Math.ceil(C.crime[_crimeType + \"Count\"] * _crimeDown)>>\n" +
    "\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t<<set $_crimeDiv to normalise(C.crime[_crimeType] - _crimeDown, C.crime[_crimeType], C.crime.min)>>\n" +
    "\t\t\t\t\t\t\t<<set C.crime[_crimeType] -= _crimeDown>>\n" +
    "\t\t\t\t\t\t\t<<set C.crime[_crimeType + \"Daily\"] -= _crimeDown>>\n" +
    "\t\t\t\t\t\t\t<<set C.crime[_crimeType + \"Count\"] to Math.ceil(C.crime[_crimeType + \"Count\"] * $_crimeDiv)>>\n" +
    "\t\t\t\t\t\t\t<<unset $_crimeDiv>>\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</for>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</silently>><<if _crimeError>><<error {message:T.crimeError}>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"crimeClear\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if _args[0] and _args[0] isnot \"all\">>\n" +
    "\t\t\t<<set _crimeClearType to _args[0]>>\n" +
    "\t\t\t<<if !setup.crimeNames[_crimeClearType]>>\n" +
    "\t\t\t\t<<run Errors.report(\"Extra-Illegal crime cleared of type; \" + _crimeClearType)>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set C.crime[_crimeClearType] = 0>>\n" +
    "\t\t\t\t<<set C.crime[_crimeClearType + \"Count\"] = 0>>\n" +
    "\t\t\t\t<<set C.crime[_crimeClearType + \"Daily\"] = 0>>\n" +
    "\t\t\t\t<<run C.crime.clearEvents(_crimeClearType)>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<!-- If no crime type specified, zero all categories -->\n" +
    "\t\t\t<<for _crimeClearType range Object.keys(setup.crimeNames)>>\n" +
    "\t\t\t\t<<set C.crime[_crimeClearType] = 0>>\n" +
    "\t\t\t\t<<set C.crime[_crimeClearType + \"Count\"] = 0>>\n" +
    "\t\t\t\t<<set C.crime[_crimeClearType + \"Daily\"] = 0>>\n" +
    "\t\t\t\t<<run C.crime.clearEvents()>>\n" +
    "\t\t\t<</for>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"crimeClearEvent\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if _args[0] and _args[0] isnot \"all\">>\n" +
    "\t\t\t<<set _crimeClearEvent to _args[0]>>\n" +
    "\t\t\t<<if !setup.crimeDescs[_crimeClearEvent]>>\n" +
    "\t\t\t\t<<run Errors.report(\"Extra-Illegal crime event cleared of description; \" + _crimeClearEvent)>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<run C.crime.clearEvents(null, _crimeClearEvent)>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<run C.crime.clearEvents()>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"listCrimeCheats\">>\n" +
    "\t<<if Object.keys(V.crime.events).length isnot 0>>\n" +
    "\t\t<<for $_ce range Object.keys(V.crime.events)>>\n" +
    "\t\t\t<<print $_ce.replace(\"default\",\"通常\").replace(\"legacy\",\"遗留问题\").replace(\"escape\",\"越狱\").replace(\"cake\",\"蛋糕案\").replace(\"kylarPrison\",\"凯拉尔越狱\") + \":\" + setup.crimeDescs[$_ce] + \"\" + $crime.events[$_ce].length + \"次\">>\n" +
    "\t\t\t<br>\n" +
    "\t\t<</for>>\n" +
    "\t<<else>>\n" +
    "\t\t<span class=\"red\">没有特殊的犯罪事件</span>\n" +
    "\t\t<br>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"crimeParade\">>\n" +
    "\t<<for $_crimeType range Object.keys(setup.crimeNames)>>\n" +
    "\t\t<<if C.crime[$_crimeType + \"Count\"] gte 1>>\n" +
    "\t\t\t<<set $_crimes_output to \"\">>\n" +
    "\t\t\t<<number `C.crime[$_crimeType + \"Count\"]` \"silent\">>\n" +
    "\t\t\t<<set $_crimes_output += \"- \" + _text_output + \"次数\">>\n" +
    "\t\t\t<<if C.crime[$_crimeType + \"Count\"] isnot 1>>\n" +
    "\t\t\t\t<<set $_crimes_output += \"\">>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $_crimes_output += \"\" + toTitleCase(setup.crimeNames[$_crimeType])>>\n" +
    "\t\t\t<<unset _text_output>>\n" +
    "\t\t\t<<set $_crimes_event_list to []>>\n" +
    "\t\t\t<<for $_ce range Object.keys($crime.events)>>\n" +
    "\t\t\t\t<<set $_crDescLen to $crime.events[$_ce].filter(e => e.type is $_crimeType).length>>\n" +
    "\t\t\t\t<<if $_crDescLen gte 1>>\n" +
    "\t\t\t\t\t<<number $_crDescLen \"silent\">>\n" +
    "\t\t\t\t\t<<set $_crDescStr to _text_output + \"次数\">>\n" +
    "\t\t\t\t\t<<if $_crDescLen gt 1>>\n" +
    "\t\t\t\t\t\t<<set $_crDescStr += \"\">>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<<set $_crDescStr += \"\" + setup.crimeDescs[$_ce]>>\n" +
    "\t\t\t\t\t<<unset _text_output>>\n" +
    "\t\t\t\t\t<<set $_crimes_event_list.push($_crDescStr)>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</for>>\n" +
    "\t\t\t<<if $_crimes_event_list.length isnot 0>>\n" +
    "\t\t\t\t<<set $_crimes_output += \",包括\">>\n" +
    "\t\t\t\t<<set $_crimes_output += formatList($_crimes_event_list, \"和\", true,\"、\")>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<set $_crimes_output += \"。\">><span class=\"red\"><<print $_crimes_output>></span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<</if>>\n" +
    "\t<</for>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"seductionskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"seductionskill\") / 100)>><<seductionskill 5>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"seductionskilluptext\">>\n" +
    "\t<<if $seductionskill lt 1000>>\n" +
    "\t\t<span class=\"gold\">你对自己的诱惑能力更加的自信。</span>\n" +
    "\t\t<br><br>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"seductionskillusecombat\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"seductionskill\") / 100)>><<seductionskill 5>><<set $seductionskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"oralskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"oralskill\") / 100)>><<oralskill 5>><<set $oralskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"vaginalskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"vaginalskill\") / 100)>><<vaginalskill 5>><<set $vaginalskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"analskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"analskill\") / 100)>><<analskill 5>><<set $analskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"handskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"handskill\") / 100)>><<handskill 5>><<set $handskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"feetskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"feetskill\") / 100)>><<feetskill 5>><<set $feetskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"bottomskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"bottomskill\") / 100)>><<bottomskill 5>><<set $bottomskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"thighskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"thighskill\") / 100)>><<thighskill 5>><<set $thighskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"chestskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"chestskill\") / 100)>><<chestskill 5>><<set $chestskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"penileskilluse\">>\n" +
    "\t<<set $enemyarousal += (currentSkillValue(\"penileskill\") / 100)>><<penileskill 5>><<set $penileskillup to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"skulduggeryskilluse\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<set $skulduggery += 3>>\n" +
    "\t\t<<if $skulduggery lt 1000>>\n" +
    "\t\t\t<span class=\"gold\"> 你学到了一些诡术上的技巧。</span>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<br><br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"combatskulduggeryskilluse\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<set $skulduggery += 3>>\n" +
    "\t\t<<set $skulduggery to Math.clamp($skulduggery, 0, 1000)>>\n" +
    "\t\t<<if $skulduggery lt 1000>>\n" +
    "\t\t\t<span class=\"gold\"> 你学到了一些诡术上的技巧。</span>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"swimmingskilluse\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<set $swimmingskill += 9>>\n" +
    "\t\t<<if $swimmingskill lt 1000>>\n" +
    "\t\t\t<span class=\"gold\"> 你对自己的泳技更加自信。</span>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $swimmingskill to Math.clamp($swimmingskill, 0, 1000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"danceskilluse\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<danceskill 1>>\n" +
    "\t\t<<if $danceskill lt 1000>>\n" +
    "\t\t\t<span class=\"gold\"> 你对自己的舞技更加自信。</span>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"schoolskillgeneral\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<set $_subject to _args[0]>>\n" +
    "\t\t<<set $_gain to _args[1] || 1>>\n" +
    "\n" +
    "\t\t<<set _skill_mod to [2.4, 1.2, 0.6, 0.3][Math.clamp(V[$_subject + \"trait\"], 0, 3)]>>\n" +
    "\n" +
    "\t\t<<if _args[2] isnot \"no_star\">>\n" +
    "\t\t\t<<if V[$_subject + \"_star\"] lt 3>>\n" +
    "\t\t\t\t<<set V[$_subject + \"_star\"] += 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if $worn.face.type.includes(\"glasses\")>>\n" +
    "\t\t\t\t<<set _skill_mod *= 1.2>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if $exposed gte 1>>\n" +
    "\t\t\t\t<<set _skill_mod *= 1.2>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t\t<<set V[$_subject + \"_exam\"] to Math.clamp(V[$_subject + \"_exam\"] + ($_gain * _skill_mod), -107, 200)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"scienceskill\">>\n" +
    "\t<<schoolskillgeneral \"science\" _args[0] _args[1]>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"mathsskill\">>\n" +
    "\t<<schoolskillgeneral \"maths\" _args[0] _args[1]>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"englishskill\">>\n" +
    "\t<<schoolskillgeneral \"english\" _args[0] _args[1]>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"historyskill\">>\n" +
    "\t<<schoolskillgeneral \"history\" _args[0] _args[1]>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"passiveStudy\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<switch $studyBooks.rented>>\n" +
    "\t\t\t<<case \"science\">>\n" +
    "\t\t\t\t<<scienceskill 6 \"no_star\">>\n" +
    "\t\t\t<<case \"maths\">>\n" +
    "\t\t\t\t<<mathsskill 6 \"no_star\">>\n" +
    "\t\t\t<<case \"English\">>\n" +
    "\t\t\t\t<<englishskill 6 \"no_star\">>\n" +
    "\t\t\t<<case \"history\">>\n" +
    "\t\t\t\t<<historyskill 6 \"no_star\">>\n" +
    "\t\t\t<<default>>\n" +
    "\t\t<</switch>>\n" +
    "\t\t<<switch $studyBooks.stolen>>\n" +
    "\t\t\t<<case \"science\">>\n" +
    "\t\t\t\t<<scienceskill 6 \"no_star\">>\n" +
    "\t\t\t<<case \"maths\">>\n" +
    "\t\t\t\t<<mathsskill 6 \"no_star\">>\n" +
    "\t\t\t<<case \"English\">>\n" +
    "\t\t\t\t<<englishskill 6 \"no_star\">>\n" +
    "\t\t\t<<case \"history\">>\n" +
    "\t\t\t\t<<historyskill 6 \"no_star\">>\n" +
    "\t\t\t<<default>>\n" +
    "\t\t<</switch>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"schoolskill\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<historyskill _args[0]>>\n" +
    "\t\t<<mathsskill _args[0]>>\n" +
    "\t\t<<scienceskill _args[0]>>\n" +
    "\t\t<<englishskill _args[0]>>\n" +
    "\t<<else>>\n" +
    "\t\t<<historyskill>>\n" +
    "\t\t<<mathsskill>>\n" +
    "\t\t<<scienceskill>>\n" +
    "\t\t<<englishskill>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"athletics\">>\n" +
    "\t<<if _args[0] and $statFreeze isnot true>>\n" +
    "\t\t<<set _temp to _args[0]>>\n" +
    "\t\t<<if $exposed gte 2>>\n" +
    "\t\t\t<<set $athletics += 2>>\n" +
    "\t\t<<elseif $exposed is 1>>\n" +
    "\t\t\t<<set $athletics += 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $athletics += Math.trunc(_temp * 1.4)>>\n" +
    "\t\t<<set $athletics to Math.clamp($athletics, 0, 1000)>>\n" +
    "\t\t<<set $tending to Math.clamp($tending, 0, 1000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tending\">>\n" +
    "\t<<if _args[0] and $statFreeze isnot true>>\n" +
    "\t\t<<set $tending += (_args[0] * 2)>>\n" +
    "\t\t<<set $tending to Math.clamp($tending, 0, 1000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"housekeeping\">>\n" +
    "<<if _args[0] and $statFreeze isnot true and $housekeeping lt _args[1]>>\n" +
    "\t<<set $housekeeping += (_args[0] * 2)>>\n" +
    "\t<<set $housekeeping to Math.clamp($housekeeping, 0, 1000)>>\n" +
    "<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"danceskill\">>\n" +
    "\t<<if _args[0] and $statFreeze isnot true>>\n" +
    "\t\t<<set $danceskill += _args[0]>>\n" +
    "\t\t<<set $danceskill to Math.clamp($danceskill, 0, 1000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"physique\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if _args[0]>><<set _temp to _args[0]>><<set $workouts += _args[0]>><<else>><<set _temp to 1>><<set $workouts += 1>><</if>>\n" +
    "\t\t<<if $exposed gte 2>>\n" +
    "\t\t\t<<set _temp *= 1.2>>\n" +
    "\t\t<<elseif $exposed is 1>>\n" +
    "\t\t\t<<set _temp *= 1.1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $physique += 10 * _temp>><<set $physiqueuse += _temp>>\n" +
    "\t\t<<if _args[1]>>\n" +
    "\t\t\t<<if _args[1] isnot \"noMessage\">>\n" +
    "\t\t\t\t<<if ($combat is 1 and _args[1] isnot \"workout\") or _args[1] is \"invig\">>\n" +
    "\t\t\t\t\t<span class=\"gold\"> 你感到活力十足。</span>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<span class=\"gold\"> 你得到了锻炼。</span>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif $combat is 1>>\n" +
    "\t\t\t<span class=\"gold\"> 你感到活力十足。</span>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<span class=\"gold\"> 你得到了锻炼。</span>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $physique = Math.clamp($physique, 0, $physiquesize)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"physique_loss\">>\n" +
    "\t<<if _args[0] and $statFreeze isnot true>>\n" +
    "\t\t<<set $physique -= 10 * _args[0]>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"bruise\">>\n" +
    "\t<<if _args[0] and $statFreeze isnot true>>\n" +
    "\t\t<<switch _args[0]>>\n" +
    "\t\t<<case \"face\">>\n" +
    "\t\t\t<<set $facebruise += 1>>\n" +
    "\t\t\t<<set $facebruise to Math.clamp($facebruise, 0, 100)>>\n" +
    "\t\t<<case \"neck\">>\n" +
    "\t\t\t<<set $neckbruise += 1>>\n" +
    "\t\t\t<<set $neckbruise to Math.clamp($neckbruise, 0, 100)>>\n" +
    "\t\t<<case \"chest\">>\n" +
    "\t\t\t<<set $chestbruise += 1>>\n" +
    "\t\t\t<<set $chestbruise to Math.clamp($chestbruise, 0, 100)>>\n" +
    "\t\t<<case \"rightarm\">>\n" +
    "\t\t\t<<set $rightarmbruise += 1>>\n" +
    "\t\t\t<<set $rightarmbruise to Math.clamp($rightarmbruise, 0, 100)>>\n" +
    "\t\t<<case \"leftarm\">>\n" +
    "\t\t\t<<set $leftarmbruise += 1>>\n" +
    "\t\t\t<<set $leftarmbruise to Math.clamp($leftarmbruise, 0, 100)>>\n" +
    "\t\t<<case \"tummy\">>\n" +
    "\t\t\t<<set $tummybruise += 1>>\n" +
    "\t\t\t<<set $tummybruise to Math.clamp($tummybruise, 0, 100)>>\n" +
    "\t\t<<case \"bottom\">>\n" +
    "\t\t\t<<set $bottombruise += 1>>\n" +
    "\t\t\t<<set $bottombruise to Math.clamp($bottombruise, 0, 100)>>\n" +
    "\t\t<<case \"thigh\">>\n" +
    "\t\t\t<<set $thighbruise += 1>>\n" +
    "\t\t\t<<set $thighbruise to Math.clamp($thighbruise, 0, 100)>>\n" +
    "\t\t<<case \"anus\">>\n" +
    "\t\t\t<<set $anusbruise += 1>>\n" +
    "\t\t\t<<set $anusbruise to Math.clamp($anusbruise, 0, 100)>>\n" +
    "\t\t<<case \"vagina\">>\n" +
    "\t\t\t<<set $vaginabruise += 1>>\n" +
    "\t\t\t<<set $vaginabruise to Math.clamp($vaginabruise, 0, 100)>>\n" +
    "\t\t<<case \"penis\">>\n" +
    "\t\t\t<<set $penisbruise += 1>>\n" +
    "\t\t\t<<set $penisbruise to Math.clamp($penisbruise, 0, 100)>>\n" +
    "\t\t<<case \"full\">>\n" +
    "\t\t\t<<set $facebruise += 1>>\n" +
    "\t\t\t<<set $neckbruise += 1>>\n" +
    "\t\t\t<<set $chestbruise += 1>>\n" +
    "\t\t\t<<set $rightarmbruise += 1>>\n" +
    "\t\t\t<<set $leftarmbruise += 1>>\n" +
    "\t\t\t<<set $tummybruise += 1>>\n" +
    "\t\t\t<<set $bottombruise += 1>>\n" +
    "\t\t\t<<set $thighbruise += 1>>\n" +
    "\n" +
    "\t\t\t<<set $facebruise to Math.clamp($facebruise, 0, 100)>>\n" +
    "\t\t\t<<set $chestbruise to Math.clamp($chestbruise, 0, 100)>>\n" +
    "\t\t\t<<set $tummybruise to Math.clamp($tummybruise, 0, 100)>>\n" +
    "\t\t\t<<set $vaginabruise to Math.clamp($vaginabruise, 0, 100)>>\n" +
    "\t\t\t<<set $penisbruise to Math.clamp($penisbruise, 0, 100)>>\n" +
    "\t\t\t<<set $anusbruise to Math.clamp($anusbruise, 0, 100)>>\n" +
    "\t\t\t<<set $bottombruise to Math.clamp($bottombruise, 0, 100)>>\n" +
    "\t\t\t<<set $thighbruise to Math.clamp($thighbruise, 0, 100)>>\n" +
    "\t\t\t<<set $leftarmbruise to Math.clamp($leftarmbruise, 0, 100)>>\n" +
    "\t\t\t<<set $rightarmbruise to Math.clamp($rightarmbruise, 0, 100)>>\n" +
    "\t\t\t<<set $neckbruise to Math.clamp($neckbruise, 0, 100)>>\n" +
    "\t\t<</switch>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"rapestat\">><<if $statFreeze isnot true>><<set $rapestat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"moleststat\">><<if $statFreeze isnot true>><<set $moleststat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"vaginalstat\">><<if $statFreeze isnot true>><<set $vaginalstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"vaginalejacstat\">><<if $statFreeze isnot true>><<set $vaginalejacstat += 1>><<purity -1>><<internalejac>><<fertiliseParasites \"vagina\">><<creampie \"self\" \"vagina\">><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"analstat\">><<if $statFreeze isnot true>><<set $analstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"analejacstat\">><<if $statFreeze isnot true>><<set $analejacstat += 1>><<purity -1>><<internalejac>><<fertiliseParasites>><<creampie \"self\" \"anus\">><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"oralstat\">><<if $statFreeze isnot true>><<set $oralstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"oralejacstat\">><<if $statFreeze isnot true>><<set $oralejacstat += 1>><<purity -1>><<internalejac>><<creampie \"self\" \"mouth\">><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"handstat\">><<if $statFreeze isnot true>><<set $handstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"handejacstat\">><<if $statFreeze isnot true>><<set $handejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"feetstat\">><<if $statFreeze isnot true>><<set $feetstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"feetejacstat\">><<if $statFreeze isnot true>><<set $feetejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"thighstat\">><<if $statFreeze isnot true>><<set $thighstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"thighejacstat\">><<if $statFreeze isnot true>><<set $thighejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"cheststat\">><<if $statFreeze isnot true>><<set $cheststat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"chestejacstat\">><<if $statFreeze isnot true>><<set $chestejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"bottomstat\">><<if $statFreeze isnot true>><<set $bottomstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"bottomejacstat\">><<if $statFreeze isnot true>><<set $bottomejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"penilestat\">><<if $statFreeze isnot true>><<set $penilestat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"penileejacstat\">><<if $statFreeze isnot true>><<set $penileejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"clothesstripstat\">><<if $statFreeze isnot true>><<set $clothesstripstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"clothesruinstat\">><<if $statFreeze isnot true>><<set $clothesruinstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"orgasmstat\">><<if $statFreeze isnot true>><<set $orgasmstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"ejacstat\">><<if $statFreeze isnot true>><<set $ejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"hitstat\">><<if $statFreeze isnot true>><<set $hitstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"attackstat\">><<if $statFreeze isnot true>><<set $attackstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"vaginalentranceejacstat\">><<if $statFreeze isnot true>><<set $vaginalentranceejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"faceejacstat\">><<if $statFreeze isnot true>><<set $faceejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"hairejacstat\">><<if $statFreeze isnot true>><<set $hairejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"tummyejacstat\">><<if $statFreeze isnot true>><<set $tummyejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"neckejacstat\">><<if $statFreeze isnot true>><<set $neckejacstat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"dancestat\">><<if $statFreeze isnot true>><<set $dancestat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"analdoublestat\">><<if $statFreeze isnot true>><<set $analdoublestat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"vaginaldoublestat\">><<if $statFreeze isnot true>><<set $vaginaldoublestat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"sextoystat\">><<if $statFreeze isnot true>><<set $sextoystat += 1>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"urinestat\">><<if $statFreeze isnot true>><<if _args[0]>><<set $urinestat += _args[0]>><<else>><<set $urinestat += 1>><</if>><</if>><</widget>>\n" +
    "\n" +
    "<<widget \"distinction_stat\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<set $distinction_stat += 1>>\n" +
    "\t\t<<if $distinction_stat gte 15>>\n" +
    "\t\t\t<<earnFeat \"Distinguished\">>\n" +
    "\t\t<<elseif $distinction_stat gte 5>>\n" +
    "\t\t\t<<earnFeat \"Distinctive\">>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<earnFeat \"Distinction\">>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"knot_stat\">>\n" +
    "\t<<if $statFreeze isnot true>>\n" +
    "\t\t<<if $knot_stat is undefined>>\n" +
    "\t\t\t<<set $knot_stat to 0>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $knot_stat += 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"hunger\">>\n" +
    "\t<<if _args[0] and $statFreeze isnot true>>\n" +
    "\t\t<<set $hunger += _args[0]>>\n" +
    "\t\t<<set $hunger = Math.clamp($hunger, 0, 2000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"hunger_description\">>\n" +
    "\t<<if $hunger gte 2000>><span class=\"red\">你正在挨饿!</span>\n" +
    "\t<<elseif $hunger gte 1600>><span class=\"pink\">你饥肠辘辘。</span>\n" +
    "\t<<elseif $hunger gte 1200>><span class=\"purple\">你非常饥饿。</span>\n" +
    "\t<<elseif $hunger gte 800>><span class=\"blue\">你觉得饿了。</span>\n" +
    "\t<<elseif $hunger gte 400>><span class=\"lblue\">你不是很饿。</span>\n" +
    "\t<<elseif $hunger gte 1>><span class=\"teal\">你完全饱了。</span>\n" +
    "\t<<else>><span class=\"green\">你吃的很撑。</span>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"thirst\">>\n" +
    "\t<<if $thirst gte 2000>><span class=\"red\">你完全脱水了!</span>\n" +
    "\t<<elseif $thirst gte 1600>><span class=\"pink\">你口干舌燥。</span>\n" +
    "\t<<elseif $thirst gte 1200>><span class=\"purple\">你感觉很渴。</span>\n" +
    "\t<<elseif $thirst gte 800>><span class=\"blue\">你喉咙发干。</span>\n" +
    "\t<<elseif $thirst gte 400>><span class=\"lblue\">你不是很渴。</span>\n" +
    "\t<<elseif $thirst gte 1>><span class=\"teal\">你并不口渴。</span>\n" +
    "\t<<elseif $thirst lte 0>><span class=\"green\">你完全不渴。</span>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tirednesscaption\">>\n" +
    "\t<<if Number.isFinite($tiredness)>>\n" +
    "\t\t<div id=\"tirednesscaption\" @title=\"'疲劳: ' + $tiredness.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t疲劳:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $tiredness gte C.tiredness.max>>\n" +
    "\t\t\t\t\t\t<span class=\"red\">你已经筋疲力竭。</span>\n" +
    "\t\t\t\t\t<<elseif $tiredness gte (C.tiredness.max / 5) * 4>>\n" +
    "\t\t\t\t\t\t<span class=\"pink\">你非常的疲倦。</span>\n" +
    "\t\t\t\t\t<<elseif $tiredness gte (C.tiredness.max / 5) * 3>>\n" +
    "\t\t\t\t\t\t<span class=\"purple\">你感到疲惫。</span>\n" +
    "\t\t\t\t\t<<elseif $tiredness gte (C.tiredness.max / 5) * 2>>\n" +
    "\t\t\t\t\t\t<span class=\"blue\">你有点累了。</span>\n" +
    "\t\t\t\t\t<<elseif $tiredness gte C.tiredness.max / 5>>\n" +
    "\t\t\t\t\t\t<span class=\"lblue\">你十分清醒。</span>\n" +
    "\t\t\t\t\t<<elseif $tiredness gte 1>>\n" +
    "\t\t\t\t\t\t<span class=\"teal\">你的精力充沛。</span>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<span class=\"green\">你感觉精神饱满。</span>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\n" +
    "\t\t\t<<if $tiredness gte C.tiredness.max>>\n" +
    "\t\t\t\t<<set $stress += (($tiredness - C.tiredness.max) * 16)>><<set $trauma += (($tiredness - C.tiredness.max) / 3)>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<set $tiredness = Math.clamp($tiredness, 0, C.tiredness.max)>>\n" +
    "\t\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t\t<<statbar $tiredness `C.tiredness.max` _showCaptionText>>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"hygiene\">>\n" +
    "\t<<if $hygiene gte 2000>>\n" +
    "\t\t<span class=\"red\">你的身上满是污秽。</span>\n" +
    "\t<<elseif $hygiene gte 1600>>\n" +
    "\t\t<span class=\"pink\">你被弄脏了。</span>\n" +
    "\t<<elseif $hygiene gte 1200>>\n" +
    "\t\t<span class=\"purple\">你很臭。</span>\n" +
    "\t<<elseif $hygiene gte 800>>\n" +
    "\t\t<span class=\"blue\">你很邋遢。</span>\n" +
    "\t<<elseif $hygiene gte 400>>\n" +
    "\t\t<span class=\"lblue\">你很整洁。</span>\n" +
    "\t<<elseif $hygiene gte 1>>\n" +
    "\t\t<span class=\"teal\">你很干净。</span>\n" +
    "\t<<elseif $hygiene lte 0>>\n" +
    "\t\t<span class=\"green\">你干净的无可挑剔。</span>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"stresscaption\">>\n" +
    "\t<<if Number.isFinite($stress)>>\n" +
    "\t\t<div id=\"stresscaption\" @title=\"'压力: ' + $stress.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t压力:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $stress gte $stressmax>>\n" +
    "\t\t\t\t\t\t<span class=\"red\">巨大的压力击垮了你!</span>\n" +
    "\t\t\t\t\t<<elseif $stress gte ($stressmax / 5) * 4>>\n" +
    "\t\t\t\t\t\t<span class=\"pink\">你的精神接近崩溃。</span>\n" +
    "\t\t\t\t\t<<elseif $stress gte ($stressmax / 5) * 3>>\n" +
    "\t\t\t\t\t\t<span class=\"purple\">焦虑使你几乎无法呼吸。</span>\n" +
    "\t\t\t\t\t<<elseif $stress gte ($stressmax / 5) * 2>>\n" +
    "\t\t\t\t\t\t<span class=\"blue\">你的内心紧绷。</span>\n" +
    "\t\t\t\t\t<<elseif $stress gte $stressmax / 5>>\n" +
    "\t\t\t\t\t\t<span class=\"lblue\">你勉强保持镇定。</span>\n" +
    "\t\t\t\t\t<<elseif $stress gte 1>>\n" +
    "\t\t\t\t\t\t<span class=\"teal\">你很平静。</span>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<span class=\"green\">你心如止水。</span>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<<set $stress = Math.clamp($stress, 0, $stressmax)>>\n" +
    "\t\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t\t<<statbar $stress $stressmax _showCaptionText>>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"traumacaption\">>\n" +
    "\t<<if Number.isFinite($trauma)>>\n" +
    "\t\t<div id=\"traumacaption\" @title=\"'创伤: ' + $trauma.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t创伤:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $trauma gte $traumamax>>\n" +
    "\t\t\t\t\t\t<span class=\"red\">无尽的痛楚使你麻木不仁。</span>\n" +
    "\t\t\t\t\t<<elseif $trauma gte ($traumamax / 5) * 4>>\n" +
    "\t\t\t\t\t\t<span class=\"pink\">过去的阴影折磨着你。</span>\n" +
    "\t\t\t\t\t<<elseif $trauma gte ($traumamax / 5) * 3>>\n" +
    "\t\t\t\t\t\t<span class=\"purple\">你十分的焦躁。</span>\n" +
    "\t\t\t\t\t<<elseif $trauma gte ($traumamax / 5) * 2>>\n" +
    "\t\t\t\t\t\t<span class=\"blue\">你感到焦虑。</span>\n" +
    "\t\t\t\t\t<<elseif $trauma gte ($traumamax / 5) * 1>>\n" +
    "\t\t\t\t\t\t<span class=\"lblue\">你感到心神不宁。</span>\n" +
    "\t\t\t\t\t<<elseif $trauma gte 1>>\n" +
    "\t\t\t\t\t\t<span class=\"teal\">你有些紧张。</span>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<span class=\"green\">你的精神十分健康。</span>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t\t<<statbar $trauma $traumamax _showCaptionText>>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"innocencecaption\">>\n" +
    "\t<div id=\"innocencecaption\">\n" +
    "\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t纯真:\n" +
    "\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t<<if $awareness gte 0>>\n" +
    "\t\t\t\t\t<span class=\"red\">你已不再天真。</span>\n" +
    "\t\t\t\t<<elseif $awareness gt -40>>\n" +
    "\t\t\t\t\t<span class=\"pink\">你无所适从。</span>\n" +
    "\t\t\t\t<<elseif $awareness gt -80>>\n" +
    "\t\t\t\t\t<span class=\"purple\">你困惑不解。</span>\n" +
    "\t\t\t\t<<elseif $awareness gt -120>>\n" +
    "\t\t\t\t\t<span class=\"blue\">你开始感到好奇。</span>\n" +
    "\t\t\t\t<<elseif $awareness gt -160>>\n" +
    "\t\t\t\t\t<span class=\"lblue\">你轻信别人的话语。</span>\n" +
    "\t\t\t\t<<elseif $awareness gt -200>>\n" +
    "\t\t\t\t\t<span class=\"teal\">你天真无邪。</span>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<span class=\"green\">你懵懂无知。</span>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t</div>\n" +
    "\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t<<statbarinverted $awareness -200 _showCaptionText>>\n" +
    "\t\t<div style=\"clear:both;\"></div>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"controlcaption\">>\n" +
    "\t<<if Number.isFinite($control)>>\n" +
    "\t\t<div id=\"controlcaption\" @title=\"'自控: ' + $control.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t自控:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $possessed>>\n" +
    "\t\t\t\t\t\t<<if $control gte $controlmax>>\n" +
    "\t\t\t\t\t\t\t<span class=\"green\">你全盘掌控着自己。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 4>>\n" +
    "\t\t\t\t\t\t\t<span class=\"teal\">你几乎完全掌控着自己。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 3>>\n" +
    "\t\t\t\t\t\t\t<span class=\"lblue\">你的控制力正在动摇。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 2>>\n" +
    "\t\t\t\t\t\t\t<span class=\"blue\">你的身体沉重而空洞。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 1>>\n" +
    "\t\t\t\t\t\t\t<span class=\"purple\">你的意识逐渐麻木。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte 1>>\n" +
    "\t\t\t\t\t\t\t<span class=\"pink\">你正在被操纵。</span>\n" +
    "\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t<span class=\"red\">你已经无力反抗。</span>\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<<if $control gte $controlmax>>\n" +
    "\t\t\t\t\t\t\t<span class=\"green\">你充满自信。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 4>>\n" +
    "\t\t\t\t\t\t\t<span class=\"teal\">你感到不安。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 3>>\n" +
    "\t\t\t\t\t\t\t<span class=\"lblue\">你开始忧虑。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 2>>\n" +
    "\t\t\t\t\t\t\t<span class=\"blue\">你很焦虑。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte ($controlmax / 5) * 1>>\n" +
    "\t\t\t\t\t\t\t<span class=\"purple\">你感到害怕。</span>\n" +
    "\t\t\t\t\t\t<<elseif $control gte 1>>\n" +
    "\t\t\t\t\t\t\t<span class=\"pink\">你有些惊恐。</span>\n" +
    "\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t<span class=\"red\">你极度恐慌。</span>\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t\t<<statbarinverted $control $controlmax _showCaptionText>>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"arousalcaption\">>\n" +
    "\t<<if Number.isFinite($arousal)>>\n" +
    "\t\t<div id=\"arousalcaption\" @title=\"'性奋: ' + $arousal.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t性奋:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $arousal gte $arousalmax>>\n" +
    "\t\t\t\t\t\t<span class=\"red\">你颤栗着达到了高潮。</span>\n" +
    "\t\t\t\t\t<<elseif $arousal gte ($arousalmax / 5) * 4>>\n" +
    "\t\t\t\t\t\t<span class=\"pink\">触电般热浪于小腹聚集。</span>\n" +
    "\t\t\t\t\t<<elseif $arousal gte ($arousalmax / 5) * 3>>\n" +
    "\t\t\t\t\t\t<span class=\"purple\">你身体轻颤着索求更多。</span>\n" +
    "\t\t\t\t\t<<elseif $arousal gte ($arousalmax / 5) * 2>>\n" +
    "\t\t\t\t\t\t<span class=\"blue\">你的身体因欲望而抽痛。</span>\n" +
    "\t\t\t\t\t<<elseif $arousal gte $arousalmax / 5>>\n" +
    "\t\t\t\t\t\t<span class=\"lblue\">情欲在你的体内积累。</span>\n" +
    "\t\t\t\t\t<<elseif $arousal gte 1>>\n" +
    "\t\t\t\t\t\t<span class=\"teal\">你的身体微微发烫。</span>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<span class=\"green\">你很冷静。</span>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t\t<<statbar $arousal $arousalmax _showCaptionText>>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"allurecaption\">>\n" +
    "\t<<if Number.isFinite($allure)>>\n" +
    "\t\t<div id=\"allurecaption\" @title=\"'诱惑: ' + $allure.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t诱惑:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $allure gte (6000 * $alluremod)>><span class=\"red\">你看起来需要被蹂躏。</span>\n" +
    "\t\t\t\t\t<<elseif $allure gte (4000 * $alluremod)>><span class=\"pink\">你看起来很有伤风化。</span>\n" +
    "\t\t\t\t\t<<elseif $allure gte (3000 * $alluremod)>><span class=\"purple\">你看起来非常色情。</span>\n" +
    "\t\t\t\t\t<<elseif $allure gte (2000 * $alluremod)>><span class=\"blue\">你在人群中十分显眼。</span>\n" +
    "\t\t\t\t\t<<elseif $allure gte (1500 * $alluremod)>><span class=\"lblue\">你引人注目。</span>\n" +
    "\t\t\t\t\t<<elseif $allure gte (1000 * $alluremod)>><span class=\"teal\">偶尔有人偷偷看你几眼。</span>\n" +
    "\t\t\t\t\t<<else>><span class=\"green\">你看起来平平无奇。</span>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? 'meter' : 'rightMeter')\">\n" +
    "\t\t\t\t<<set $percent=Math.floor(($allure/(8000 * $alluremod))*100)>>\n" +
    "\t\t\t\t<<if $allure gte (6000 * $alluremod)>>\n" +
    "\t\t\t\t<<print '<div class=\"redbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $allure gte (4000 * $alluremod)>>\n" +
    "\t\t\t\t<<print '<div class=\"pinkbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $allure gte (3000 * $alluremod)>>\n" +
    "\t\t\t\t<<print '<div class=\"purplebar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $allure gte (2000 * $alluremod)>>\n" +
    "\t\t\t\t<<print '<div class=\"bluebar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $allure gte (1500 * $alluremod)>>\n" +
    "\t\t\t\t<<print '<div class=\"lbluebar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $allure gte (1000 * $alluremod)>>\n" +
    "\t\t\t\t<<print '<div class=\"tealbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t<<print '<div class=\"greenbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\n" +
    "\t\t\t<<if $allure gte 8000 * $alluremod>><<set $allure to 8000 * $alluremod>><</if>>\n" +
    "\t\t\t<<if $alluretest is 1>>\n" +
    "\t\t\t\t<<set $allure += 100000>>\n" +
    "\t\t\t<<elseif $alluretest is 2>>\n" +
    "\t\t\t\t<<set $allure -= 100000>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"updateallure\">>\n" +
    "\t<<run new Wikifier(null, '<<calculateallure>>')>>\n" +
    "\t<<run $('#allurecaption').replaceWith(new Wikifier(null, '<<allurecaption>>').output)>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"oxygencaption\">>\n" +
    "\t<div id=\"oxygencaption\">\n" +
    "\t\t<<if _args[0] is true>>\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t空气:\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<<set _showCaptionText to !$options.showCaptionText>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<unset _showCaptionText>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<statbarinverted $oxygen $oxygenmax _showCaptionText>>\n" +
    "\t\t<div style=\"clear:both;\"></div>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"flashbacktown\">>\n" +
    "\t<span class=\"red\">远方传来了车鸣声。你惊慌失措,幽灵般的触手探入你的身体,束缚了你的四肢……一个无言的声音在嘲笑、贬低着你。尽管只持续了一会儿,但压抑与恐惧依旧让你胆战心惊。</span>\n" +
    "\t<<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 12>><<trauma 6>>\n" +
    "\t<br><br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"flashbackhome\">>\n" +
    "\t<span class=\"red\">远方传来了车驰声。你惊慌失措,幽灵般的触手探入你的身体,束缚了你的四肢……一个无言的声音在嘲笑、贬低着你。尽管只持续了一会儿,但压抑与恐惧依旧让你胆战心惊。</span>\n" +
    "\t<<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>>\n" +
    "\t<br><br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"flashbackbeach\">>\n" +
    "\t<span class=\"red\">远方有海鸥在叫。你惊慌失措,幽灵般的触手探入你的身体,限束缚了你的四肢……一个无言的声音在嘲笑、贬低着你。尽管只持续了一会儿,但压抑与恐惧依旧让你胆战心惊。</span>\n" +
    "\t<<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>>\n" +
    "\t<br><br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"flashbackunderground\">>\n" +
    "\t<span class=\"red\">你感到大地在颤抖。你惊慌失措,幽灵般的触手探入你的身体,束缚了你的四肢……一个无言的声音在嘲笑、贬低着你。尽管只持续了一会儿,但压抑与恐惧依旧让你胆战心惊。</span>\n" +
    "\t<<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>>\n" +
    "\t<br><br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"flashbackschool\">>\n" +
    "\t<span class=\"red\">你回想起你在学校是怎样被人嘲笑与欺侮的。你开始惊慌,幽灵般的触手探入你的身体,束缚了你的四肢……一个无言的声音在嘲笑、贬低着你。尽管只持续了一会儿,但压抑与恐惧依旧让你胆战心惊。</span>\n" +
    "\t<<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>>\n" +
    "\t<br><br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"drunkcaption\">>\n" +
    "\t<<if $drunk gt 0>>\n" +
    "\t\t<<set $_colour to getColourClassFromPercentage($drunk * (100 / 480))>>\n" +
    "\t\t<<set $_barColour to $_colour + \"bar\">>\n" +
    "\t\t<<set $_percent to Math.floor(($drunk/1000)*100)>>\n" +
    "\t\t<<set $_barWidth to `width:${$_percent}%`>>\n" +
    "\n" +
    "\t\t<div id=\"drunkcaption\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4) * 120>>\n" +
    "\t\t\t\t\t<<switch $_drunk_level>>\n" +
    "\t\t\t\t\t\t<<case 0>><span @class=\"$_colour\">你有些头晕。</span>\n" +
    "\t\t\t\t\t\t<<case 120>><span @class=\"$_colour\">你略有醉意。</span>\n" +
    "\t\t\t\t\t\t<<case 240>><span @class=\"$_colour\">你喝醉了。</span>\n" +
    "\t\t\t\t\t\t<<case 360>><span @class=\"$_colour\">你烂醉如泥。</span>\n" +
    "\t\t\t\t\t\t<<case 480>><span @class=\"$_colour\">你醉的不省人事。</span>\n" +
    "\t\t\t\t\t<</switch>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t醉意:\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? 'meter' : 'rightMeter')\">\n" +
    "\t\t\t\t<div @class=\"$_barColour\" @style=\"$_barWidth\"></div>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"druggedcaption\">>\n" +
    "\t<<if $drugged gt 0>>\n" +
    "\t\t<<set $_colour to getColourClassFromPercentage($drugged / 5)>>\n" +
    "\t\t<<set $_barColour to $_colour + \"bar\">>\n" +
    "\t\t<<set $_percent to Math.floor(($drugged/1000)*100)>>\n" +
    "\t\t<<set $_barWidth to `width:${$_percent}%`>>\n" +
    "\n" +
    "\t\t<div id=\"druggedcaption\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<span class=\"pink\">一股淫荡暖意充斥了你。</span>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t药物:\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? 'meter' : 'rightMeter')\">\n" +
    "\t\t\t\t<div @class=\"$_barColour\" @style=\"$_barWidth\"></div>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"hallucinogencaption\">>\n" +
    "\t<<if $hallucinogen gt 0>>\n" +
    "\t\t<<set $_colour to getColourClassFromPercentage($hallucinogen / 5)>>\n" +
    "\t\t<<set $_barColour to $_colour + \"bar\">>\n" +
    "\t\t<<set $_percent to Math.floor(($hallucinogen/1000)*100)>>\n" +
    "\t\t<<set $_barWidth to `width:${$_percent}%`>>\n" +
    "\n" +
    "\t\t<div id=\"hallucinogencaption\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<span class=\"purple\">你的感知发生了变化</span>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t致幻:\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? 'meter' : 'rightMeter')\">\n" +
    "\t\t\t\t<div @class=\"$_barColour\" @style=\"$_barWidth\"></div>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"paincaption\">>\n" +
    "\t<<if Number.isFinite($pain)>>\n" +
    "\t\t<div id=\"paincaption\" @title=\"'疼痛: ' + $pain.toFixed(2)\">\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? '' : 'rightMeterText')\">\n" +
    "\t\t\t\t疼痛:\n" +
    "\t\t\t\t<<if $options.showCaptionText is true>>\n" +
    "\t\t\t\t\t<<if $pain gte 100 and $willpowerpain is 0>><span class=\"red\">你无法控制地啜泣起来。</span>\n" +
    "\t\t\t\t\t<<elseif $pain gte 80>><span class=\"pink\">疼痛使你大哭不止。</span>\n" +
    "\t\t\t\t\t<<elseif $pain gte 60>><span class=\"purple\">你抽泣不止。</span>\n" +
    "\t\t\t\t\t<<elseif $pain gte 40>><span class=\"blue\">眼泪从你的脸颊上流下。</span>\n" +
    "\t\t\t\t\t<<elseif $pain gte 20>><span class=\"lblue\">泪花在你眼中打转。</span>\n" +
    "\t\t\t\t\t<<elseif $pain gte 1>><span class=\"teal\">你有些难受。</span>\n" +
    "\t\t\t\t\t<<else>><span class=\"green\">你感觉良好。</span>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div @class=\"($options.showCaptionText is true ? 'meter' : 'rightMeter')\">\n" +
    "\t\t\t\t<<set $percent=Math.floor(($pain/100)*100)>>\n" +
    "\t\t\t\t<<if $pain gte 100 and $willpowerpain is 0>>\n" +
    "\t\t\t\t<<print '<div class=\"redbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $pain gte 80>>\n" +
    "\t\t\t\t<<print '<div class=\"pinkbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $pain gte 60>>\n" +
    "\t\t\t\t<<print '<div class=\"purplebar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $pain gte 40>>\n" +
    "\t\t\t\t<<print '<div class=\"bluebar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $pain gte 20>>\n" +
    "\t\t\t\t<<print '<div class=\"lbluebar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<elseif $pain gte 1>>\n" +
    "\t\t\t\t<<print '<div class=\"tealbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t<<print '<div class=\"greenbar\" style=\"width:' + $percent + '%\"></div>'>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t</div>\n" +
    "\t\t\t<div style=\"clear:both;\"></div>\n" +
    "\t\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"raped\">>\n" +
    "\t<<if $rapeavoid is 1 and $consensual is 0 and $gamemode isnot \"soft\">>\n" +
    "\t\t<<set $rapeavoid to 0>><<rapestat>>\n" +
    "\t\t<<if $enemytype is \"man\" and !($npc.length is 1 and $npc[0] is \"Eden\")>>\n" +
    "\t\t\t<<famerape $enemynomax>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $awareness lte 200>>\n" +
    "\t\t\t<<awareness 5>>\n" +
    "\t\t<<elseif $awareness lte 400>>\n" +
    "\t\t\t<<awareness 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $enemytype is \"beast\" or $enemytype is \"struggle\">>\n" +
    "\t\t\t<<set $beastrapestat += 1>>\n" +
    "\t\t\t<<if $awareness lte 300>>\n" +
    "\t\t\t\t<<awareness 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $enemytype is \"tentacles\">>\n" +
    "\t\t\t<<set $tentaclerapestat += 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $enemytype is \"tentacles\" or $enemytype is \"struggle\">>\n" +
    "\t\t\t<<if $awareness lte 400>>\n" +
    "\t\t\t\t<<awareness 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<controlloss>>\n" +
    "\t<<elseif $sexavoid is 1 and $consensual is 1>>\n" +
    "\t\t<<set $sexavoid to 0>>\n" +
    "\t\t<<if $enemytype is \"man\" and !($npc.length is 1 and $npc[0] is \"Eden\")>>\n" +
    "\t\t\t<<famesex $enemynomax>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<controlloss>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"molested\">>\n" +
    "\t<<if $gamemode is \"soft\">>\n" +
    "\t\t<<set $consensual to 1>>\n" +
    "\t<<elseif $molestavoid is 1 and $consensual is 0>>\n" +
    "\t\t<<set $molestavoid to 0>>\n" +
    "\t\t<<moleststat>>\n" +
    "\n" +
    "\t\t<<if $flashbacks gte 1>>\n" +
    "\t\t\t<<switch $location>>\n" +
    "\t\t\t\t<<case \"town\">><<if $flashbacktown is 0>><<set $flashbacktown to 14>><</if>>\n" +
    "\t\t\t\t<<case \"home\">><<if $flashbackhome is 0>><<set $flashbackhome to 14>><</if>>\n" +
    "\t\t\t\t<<case \"beach\">><<if $flashbackbeach is 0>><<set $flashbackbeach to 14>><</if>>\n" +
    "\t\t\t\t<<case \"school\">><<if $flashbackschool is 0>><<set $flashbackschool to 14>><</if>>\n" +
    "\t\t\t\t<<case \"underground\">><<if $flashbackunderground is 0>><<set $flashbackunderground to 14>><</if>>\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $awareness lte 200>>\n" +
    "\t\t\t<<awareness 5>>\n" +
    "\t\t<<elseif $awareness lte 400>>\n" +
    "\t\t\t<<awareness 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $enemytype is \"beast\" or $enemytype is \"struggle\">>\n" +
    "\t\t\t<<if $awareness lte 300>>\n" +
    "\t\t\t\t<<awareness 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $enemytype is \"tentacles\" or $enemytype is \"struggle\">>\n" +
    "\t\t\t<<if $awareness lte 400>>\n" +
    "\t\t\t\t<<awareness 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"consensual\">>\n" +
    "\t<<if $awareness lte 200>>\n" +
    "\t\t<<awareness 5>>\n" +
    "\t<<elseif $awareness lte 400>>\n" +
    "\t\t<<awareness 1>>\n" +
    "\t<</if>>\n" +
    "\t<<if $enemytype is \"beast\" or $enemytype is \"struggle\">>\n" +
    "\t\t<<if $awareness lte 300>>\n" +
    "\t\t\t<<awareness 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $enemytype is \"tentacles\">>\n" +
    "\t\t<<if $awareness lte 400>>\n" +
    "\t\t\t<<awareness 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<set $trueconsensual to 1>>\n" +
    "\t<<if $npc.length is 1 and ($npc[0] is \"Robin\" and $NPCName[$NPCNameList.indexOf(\"Robin\")].dom lte 10 and $debug is 1) or ($npc[0] is \"Sydney\" and $NPCName[$NPCNameList.indexOf(\"Sydney\")].purity gte 50)>>\n" +
    "\t\t<<npc_submissive>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"controlloss\">>\n" +
    "\t<<if $gamemode is \"soft\">>\n" +
    "\t<<elseif $consensual is 0>>\n" +
    "\t\t<<set $pullaway to 0>>\n" +
    "\t\t<<set $novaginal to 0>>\n" +
    "\t\t<<set $noanal to 0>>\n" +
    "\t\t<<set $nopenile to 0>>\n" +
    "\t\t<<if $control gt 1>>\n" +
    "\t\t\t<<if $molesttrait gte 1 and $rapeavoid is 1>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set $controlstart to $control>><<control -25>>\n" +
    "\t\t\t\t<<if $control gte ($controlmax * 0.74)>>\n" +
    "\t\t\t\t\t<span class=\"purple\">你的控制感动摇了。</span>\n" +
    "\t\t\t\t<<elseif $control gte ($controlmax * 0.49)>>\n" +
    "\t\t\t\t\t<span class=\"purple\">你的控制感下降了。</span>\n" +
    "\t\t\t\t<<elseif $control gte ($controlmax * 0.24)>>\n" +
    "\t\t\t\t\t<span class=\"pink\">你的控制感破碎了。</span>\n" +
    "\t\t\t\t<<elseif $control gte 1>>\n" +
    "\t\t\t\t\t<span class=\"pink\">你的控制感崩溃了。</span>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<span class=\"red\">你完全失去了对自己的控制。</span>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"beastescape\">>\n" +
    "\t<<trauma 12>><<pain 6>><<stress 12>>\n" +
    "\t<<set $worn.over_lower.integrity -= 20>>\n" +
    "\t<<set $worn.over_upper.integrity -= 20>>\n" +
    "\t<<set $worn.lower.integrity -= 20>>\n" +
    "\t<<set $worn.upper.integrity -= 20>>\n" +
    "\t<<set $worn.under_lower.integrity -= 20>>\n" +
    "\t<<set $worn.under_upper.integrity -= 20>>\n" +
    "\t<<bruise full>>\n" +
    "\t<<gtrauma>><<gpain>><<gstress>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"weatherdisplay\">>\n" +
    "\t<<if Time.season is \"winter\">>\n" +
    "\t\t<<set _weather_display to \"winter\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _weather_display to \"normal\">>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $options.images is 1>>\n" +
    "\t\t<<if Time.dayState is \"day\">>\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/tentskyday.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/day.png\">\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"weather\" src=\"img/misc/tentskyday.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>\t<img id=\"weather\" src=\"img/misc/clearday.png\">\n" +
    "\t\t\t\t\t<<case \"overcast\">> <img id=\"weather\" @src=\"'img/misc/' + _weather_display + '/overcastday.png'\">\n" +
    "\t\t\t\t\t<<case \"rain\">>\t\t<img id=\"weather\" src=\"img/misc/rainday.gif\">\n" +
    "\t\t\t\t\t<<case \"snow\">>\t\t<img id=\"weather\" src=\"img/misc/winter/snowday.gif\">\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<switch $location>>\n" +
    "\t\t\t\t<<case \"beach\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachday.gif'\">\n" +
    "\t\t\t\t<<case \"chalets\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachday.gif'\">\n" +
    "\t\t\t\t<<case \"sea\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ocean_day.gif'\">\n" +
    "\t\t\t\t<<case \"home\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/home_day.gif'\">\n" +
    "\t\t\t\t<<case \"town\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/town_day.gif'\">\n" +
    "\t\t\t\t<<case \"docks\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/docks_day.png'\">\n" +
    "\t\t\t\t<<case \"pub\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/pubday.png'\">\n" +
    "\t\t\t\t<<case \"forest\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestday.gif'\">\n" +
    "\t\t\t\t<<case \"churchyard\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/churchyard_day.png'\">\n" +
    "\t\t\t\t<<case \"sepulchre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sepulchre_day.png'\">\n" +
    "\t\t\t\t<<case \"lake\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/lakeday.gif'\">\n" +
    "\t\t\t\t<<case \"asylum\">>\n" +
    "\t\t\t\t\t<<if $hallucinations gte 1>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumdayvfast.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumdayslow.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"tentworld\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tentacles_day.gif'\">\n" +
    "\t\t\t\t<<case \"underground\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergroundday.png'\">\n" +
    "\t\t\t\t<<case \"sewers\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sewersday.gif'\">\n" +
    "\t\t\t\t<<case \"school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/schoolday.png'\">\n" +
    "\t\t\t\t<<case \"cabin\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabinday.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabinday.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"pool\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/poolday.gif'\">\n" +
    "\t\t\t\t<<case \"landfill\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/landfillday.png'\">\n" +
    "\t\t\t\t<<case \"dilapidated_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dilapidated_shop_day.png'\">\n" +
    "\t\t\t\t<<case \"adult_shop\">>\n" +
    "\t\t\t\t\t<<getadultshopstate>>\n" +
    "\t\t\t\t\t<<if $adultshopstate is \"closed\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sex_shop_day.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sex_shop_day_open.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"temple\">>\n" +
    "\t\t\t\t\t<<if Time.year is 361>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templeday_old.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templeday.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"strip_club\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/strip_club_day.png'\">\n" +
    "\t\t\t\t<<case \"shopping_centre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/shopping_centre_day.png'\">\n" +
    "\t\t\t\t<<case \"police_station\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/police_station_day.png'\">\n" +
    "\t\t\t\t<<case \"park\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" src=\"img/misc/winter/park_day.png\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" src=\"img/misc/normal/park_day.gif\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"museum\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/museum_day.png'\">\n" +
    "\t\t\t\t<<case \"hospital\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/hospital_day.png'\">\n" +
    "\t\t\t\t<<case \"dance_studio\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dance_studio_day.png'\">\n" +
    "\t\t\t\t<<case \"compound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/compound_day.gif'\">\n" +
    "\t\t\t\t<<case \"brothel\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/brothel_day.png'\">\n" +
    "\t\t\t\t<<case \"cafe\">>\n" +
    "\t\t\t\t\t<<if $chef_state gte 9>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_renovated_day.png'\">\n" +
    "\t\t\t\t\t<<elseif $chef_state gte 7>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_construction_day.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_day.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"arcade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/arcade_day.png'\">\n" +
    "\t\t\t\t<<case \"meadow\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/meadow_day.gif'\">\n" +
    "\t\t\t\t<<case \"farm\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/farm_day.png'\">\n" +
    "\t\t\t\t<<case \"alex_farm\">>\n" +
    "\t\t\t\t\t<<if $bus is \"woodland\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestday.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_farm_day.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"alex_cottage\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_cottage_day.png'\">\n" +
    "\t\t\t\t<<case \"riding_school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/riding_school_day.gif'\">\n" +
    "\t\t\t\t<<case \"estate\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/remy_farm_day.png'\">\n" +
    "\t\t\t\t<<case \"wolf_cave\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/wolf_cave_day.png'\">\n" +
    "\t\t\t\t<<case \"forest_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forest_shop_day.png'\">\n" +
    "\t\t\t\t<<case \"lake_ruin\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ruins_day.gif'\">\n" +
    "\t\t\t\t<<case \"moor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/moor_day.gif'\">\n" +
    "\t\t\t\t<<case \"tower\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tower_day.gif'\">\n" +
    "\t\t\t\t<<case \"castle\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tower_day.gif'\">\n" +
    "\t\t\t\t<<case \"night_monster_lair\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/night_monster_lair_day.gif'\">\n" +
    "\t\t\t\t<<case \"alley\">>\n" +
    "\t\t\t\t\t<<if $bus is \"industrial\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/indust_alley_day.gif'\">\n" +
    "\t\t\t\t\t<<elseif $bus is \"residential\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/resi_alley_day.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alley_day.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"drain\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/drain.gif'\">\n" +
    "\t\t\t\t<<case \"spa\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/spa_day.gif'\">\n" +
    "\t\t\t\t<<case \"prison\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/prison_day.gif'\">\n" +
    "\t\t\t\t<<case \"promenade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/promenade_beach_day.gif'\">\n" +
    "\t\t\t\t<<case \"factory\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/factory_day.gif'\">\n" +
    "\t\t\t\t<<case \"pound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dog_pound_day.gif'\">\n" +
    "\t\t\t\t<<case \"office_building\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/office_day.png'\">\n" +
    "\t\t\t\t<<case \"kylar_manor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/kylar_manor_day.png'\">\n" +
    "\t\t\t\t<<case \"flats\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/flats_day.png'\">\n" +
    "\t\t\t\t<<case \"canal\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/canal_day.gif'\">\n" +
    "\t\t\t\t<<case \"mines\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergroundday.png'\">\n" +
    "\t\t\t\t<<case \"seapirates\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/boat_day.gif'\">\n" +
    "\t\t\t\t<<case \"island\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/island_day.gif'\">\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t<<elseif Time.dayState is \"night\">>\n" +
    "\t\t\t<!-- if bloodmoon -->\n" +
    "\t\t\t<<set _bloodmoon to (isBloodmoon() or $forcedBloodmoon)>>\n" +
    "\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/tentskynight.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<img id=\"daystate\" @src=\"'img/misc' + (_bloodmoon ? '/fullnight.png' : '/night.png')\">\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"weather\" src=\"img/misc/tentskynight.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>\t<img id=\"weather\" src=\"img/misc/clearnight.png\">\n" +
    "\t\t\t\t\t<<case \"overcast\">> <img id=\"weather\" @src=\"'img/misc/' + _weather_display + '/overcastnight.png'\">\n" +
    "\t\t\t\t\t<<case \"rain\">>\t\t<img id=\"weather\" src=\"img/misc/rainnight.gif\">\n" +
    "\t\t\t\t\t<<case \"snow\">>\t\t<img id=\"weather\" src=\"img/misc/winter/snownight.gif\">\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<switch $location>>\n" +
    "\t\t\t\t<<case \"beach\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachnight.gif'\">\n" +
    "\t\t\t\t<<case \"chalets\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachnight.gif'\">\n" +
    "\t\t\t\t<<case \"sea\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ocean_night.gif'\">\n" +
    "\t\t\t\t<<case \"home\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/home_night_blood.gif' : '/home_night.gif')\">\n" +
    "\t\t\t\t<<case \"town\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/town_night.gif'\">\n" +
    "\t\t\t\t<<case \"docks\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/docks_night.png'\">\n" +
    "\t\t\t\t<<case \"pub\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/pubnight.png'\">\n" +
    "\t\t\t\t<<case \"forest\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/forestbloodmoon.gif' : '/forestnight.png')\">\n" +
    "\t\t\t\t<<case \"churchyard\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/churchyard_night.png'\">\n" +
    "\t\t\t\t<<case \"sepulchre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sepulchre_night.png'\">\n" +
    "\t\t\t\t<<case \"lake\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/lakebloodmoon.gif' : '/lakenight.gif')\">\n" +
    "\t\t\t\t<<case \"asylum\">>\n" +
    "\t\t\t\t\t<<if $hallucinations gte 1>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumnightvfast.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumnightslow.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"tentworld\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tentacles_night.gif'\">\n" +
    "\t\t\t\t<<case \"underground\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergroundnight.png'\">\n" +
    "\t\t\t\t<<case \"sewers\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sewersnight.gif'\">\n" +
    "\t\t\t\t<<case \"school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/schoolnight.png'\">\n" +
    "\t\t\t\t<<case \"cabin\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabinnight.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabinnight.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"pool\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/poolnight.gif'\">\n" +
    "\t\t\t\t<<case \"dilapidated_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dilapidated_shop_night.png'\">\n" +
    "\t\t\t\t<<case adult_shop>>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sex_shop_night.gif'\">\n" +
    "\t\t\t\t<<case \"landfill\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/landfillnight.png'\">\n" +
    "\t\t\t\t<<case \"temple\">>\n" +
    "\t\t\t\t\t<<if Time.year is 361>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templenight_old.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templenight.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"strip_club\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/strip_club_night.png'\">\n" +
    "\t\t\t\t<<case \"shopping_centre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/shopping_centre_night.png'\">\n" +
    "\t\t\t\t<<case \"police_station\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/police_station_night.png'\">\n" +
    "\t\t\t\t<<case \"park\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" src=\"img/misc/winter/park_night.png\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" src=\"img/misc/normal/park_night.gif\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"museum\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/museum_night.png'\">\n" +
    "\t\t\t\t<<case \"hospital\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/hospital_night.png'\">\n" +
    "\t\t\t\t<<case \"dance_studio\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dance_studio_night.png'\">\n" +
    "\t\t\t\t<<case \"compound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/compound_night.gif'\">\n" +
    "\t\t\t\t<<case \"brothel\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/brothel_night.png'\">\n" +
    "\t\t\t\t<<case \"cafe\">>\n" +
    "\t\t\t\t\t<<if $chef_state gte 9>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_renovated_night.png'\">\n" +
    "\t\t\t\t\t<<elseif $chef_state gte 7>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_construction_night.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_night.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"arcade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/arcade_night.png'\">\n" +
    "\t\t\t\t<<case \"meadow\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/meadow_night.gif'\">\n" +
    "\t\t\t\t<<case \"farm\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/farm_night.png'\">\n" +
    "\t\t\t\t<<case \"alex_farm\">>\n" +
    "\t\t\t\t\t<<if $bus is \"woodland\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestnight.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_farm_night.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"alex_cottage\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_cottage_night.png'\">\n" +
    "\t\t\t\t<<case \"riding_school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/riding_school_night.gif'\">\n" +
    "\t\t\t\t<<case \"estate\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/remy_farm_night.png'\">\n" +
    "\t\t\t\t<<case \"wolf_cave\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/wolf_cave_night.png'\">\n" +
    "\t\t\t\t<<case \"forest_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forest_shop_night.png'\">\n" +
    "\t\t\t\t<<case \"lake_ruin\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/ruins_blood_moon.gif' : '/ruins_night.gif')\">\n" +
    "\t\t\t\t<<case \"moor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/moor_night.gif'\">\n" +
    "\t\t\t\t<<case \"tower\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/tower_blood.gif' : '/tower_night.gif')\">\n" +
    "\t\t\t\t<<case \"castle\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/tower_blood.gif' : '/tower_night.gif')\">\n" +
    "\t\t\t\t<<case \"night_monster_lair\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/night_monster_lair_night.gif'\">\n" +
    "\t\t\t\t<<case \"alley\">>\n" +
    "\t\t\t\t\t<<if $bus is \"industrial\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/indust_alley_blood.gif' : '/indust_alley_night.gif')\">\n" +
    "\t\t\t\t\t<<elseif $bus is \"residential\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/resi_alley_blood.gif' : '/resi_alley_night.gif')\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/alley_blood.gif' : '/alley_night.gif')\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"drain\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/drain.gif'\">\n" +
    "\t\t\t\t<<case \"spa\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/spa_night.gif'\">\n" +
    "\t\t\t\t<<case \"prison\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + (_bloodmoon ? '/prison_blood_moon.gif' : '/prison_night.gif')\">\n" +
    "\t\t\t\t<<case \"promenade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/promenade_beach_night.gif'\">\n" +
    "\t\t\t\t<<case \"factory\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/factory_night.png'\">\n" +
    "\t\t\t\t<<case \"pound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dog_pound_night.png'\">\n" +
    "\t\t\t\t<<case \"office_building\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/office_night.png'\">\n" +
    "\t\t\t\t<<case \"kylar_manor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/kylar_manor_night.png'\">\n" +
    "\t\t\t\t<<case \"flats\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/flats_night.png'\">\n" +
    "\t\t\t\t<<case \"canal\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/canal_night.gif'\">\n" +
    "\t\t\t\t<<case \"mines\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergroundnight.png'\">\n" +
    "\t\t\t\t<<case \"seapirates\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/boat_night.gif'\">\n" +
    "\t\t\t\t<<case \"island\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/island_night.gif'\">\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t<<elseif Time.dayState is \"dawn\">>\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/tentskydawn.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/dawn.png\">\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"weather\" src=\"img/misc/tentskydawn.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>\t<img id=\"weather\" src=\"img/misc/cleardawn.png\">\n" +
    "\t\t\t\t\t<<case \"overcast\">> <img id=\"weather\" @src=\"'img/misc/' + _weather_display + '/overcastdawn.png'\">\n" +
    "\t\t\t\t\t<<case \"rain\">>\t\t<img id=\"weather\" src=\"img/misc/raindawn.gif\">\n" +
    "\t\t\t\t\t<<case \"snow\">>\t\t<img id=\"weather\" src=\"img/misc/winter/snowdawn.gif\">\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<switch $location>>\n" +
    "\t\t\t\t<<case \"beach\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachdawn.gif'\">\n" +
    "\t\t\t\t<<case \"chalets\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachdawn.gif'\">\n" +
    "\t\t\t\t<<case \"sea\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ocean_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"home\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/home_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"town\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/town_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"docks\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/docks_dawn.png'\">\n" +
    "\t\t\t\t<<case \"pub\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/pubdawn.png'\">\n" +
    "\t\t\t\t<<case \"forest\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestdawn.png'\">\n" +
    "\t\t\t\t<<case \"churchyard\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/churchyard_dawn.png'\">\n" +
    "\t\t\t\t<<case \"sepulchre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sepulchre_dawn.png'\">\n" +
    "\t\t\t\t<<case \"lake\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/lakedawn.gif'\">\n" +
    "\t\t\t\t<<case \"asylum\">>\n" +
    "\t\t\t\t\t<<if $hallucinations gte 1>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumdawnvfast.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumdawnslow.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"tentworld\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tentacles_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"underground\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergrounddawn.png'\">\n" +
    "\t\t\t\t<<case \"sewers\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sewersdawn.gif'\">\n" +
    "\t\t\t\t<<case \"school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/schooldawn.png'\">\n" +
    "\t\t\t\t<<case \"cabin\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabindawn.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabindawn.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"pool\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/pooldawn.gif'\">\n" +
    "\t\t\t\t<<case \"landfill\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/landfilldawn.png'\">\n" +
    "\t\t\t\t<<case \"dilapidated_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dilapidated_shop_dawn.png'\">\n" +
    "\t\t\t\t<<case \"adult_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sex_shop_dawn.png'\">\n" +
    "\t\t\t\t<<case \"temple\">>\n" +
    "\t\t\t\t\t<<if Time.year is 361>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templedawn_old.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templedawn.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"strip_club\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/strip_club_dawn.png'\">\n" +
    "\t\t\t\t<<case \"shopping_centre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/shopping_centre_dawn.png'\">\n" +
    "\t\t\t\t<<case \"police_station\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/police_station_dawn.png'\">\n" +
    "\t\t\t\t<<case \"park\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/park_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"museum\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/museum_dawn.png'\">\n" +
    "\t\t\t\t<<case \"hospital\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/hospital_dawn.png'\">\n" +
    "\t\t\t\t<<case \"dance_studio\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dance_studio_dawn.png'\">\n" +
    "\t\t\t\t<<case \"compound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/compound_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"brothel\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/brothel_dawn.png'\">\n" +
    "\t\t\t\t<<case \"cafe\">>\n" +
    "\t\t\t\t\t<<if $chef_state gte 9>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_renovated_dawn.png'\">\n" +
    "\t\t\t\t\t<<elseif $chef_state gte 7>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_construction_dawn.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_dawn.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"arcade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/arcade_dawn.png'\">\n" +
    "\t\t\t\t<<case \"meadow\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/meadow_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"farm\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/farm_dawn.png'\">\n" +
    "\t\t\t\t<<case \"alex_farm\">>\n" +
    "\t\t\t\t\t<<if $bus is \"woodland\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestdawn.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_farm_dawn.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"alex_cottage\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_cottage_dawn.png'\">\n" +
    "\t\t\t\t<<case \"riding_school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/riding_school_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"estate\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/remy_farm_dawn.png'\">\n" +
    "\t\t\t\t<<case \"wolf_cave\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/wolf_cave_dawn.png'\">\n" +
    "\t\t\t\t<<case \"forest_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forest_shop_dawn.png'\">\n" +
    "\t\t\t\t<<case \"lake_ruin\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ruins_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"moor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/moor_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"tower\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tower_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"castle\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tower_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"night_monster_lair\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/night_monster_lair_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"alley\">>\n" +
    "\t\t\t\t\t<<if $bus is \"industrial\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/indust_alley_dawn.gif'\">\n" +
    "\t\t\t\t\t<<elseif $bus is \"residential\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/resi_alley_dawn.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alley_dawn.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"drain\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/drain.gif'\">\n" +
    "\t\t\t\t<<case \"spa\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/spa_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"prison\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/prison_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"promenade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/promenade_beach_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"factory\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/factory_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"pound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dog_pound_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"office_building\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/office_dawn.png'\">\n" +
    "\t\t\t\t<<case \"kylar_manor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/kylar_manor_dawn.png'\">\n" +
    "\t\t\t\t<<case \"flats\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/flats_dawn.png'\">\n" +
    "\t\t\t\t<<case \"canal\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/canal_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"mines\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergrounddawn.png'\">\n" +
    "\t\t\t\t<<case \"seapirates\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/boat_dawn.gif'\">\n" +
    "\t\t\t\t<<case \"island\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/island_dawn.gif'\">\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t<<elseif Time.dayState is \"dusk\">>\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/tentskydusk.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<img id=\"daystate\" src=\"img/misc/dusk.png\">\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<if $location is \"tentworld\">>\n" +
    "\t\t\t\t<img id=\"weather\" src=\"img/misc/tentskydusk.png\">\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>\t<img id=\"weather\" src=\"img/misc/cleardusk.png\">\n" +
    "\t\t\t\t\t<<case \"overcast\">> <img id=\"weather\" @src=\"'img/misc/' + _weather_display + '/overcastdusk.png'\">\n" +
    "\t\t\t\t\t<<case \"rain\">>\t\t<img id=\"weather\" src=\"img/misc/raindusk.gif\">\n" +
    "\t\t\t\t\t<<case \"snow\">>\t\t<img id=\"weather\" src=\"img/misc/winter/snowdusk.gif\">\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<</if>>\n" +
    "\n" +
    "\t\t\t<<switch $location>>\n" +
    "\t\t\t\t<<case \"beach\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachdusk.gif'\">\n" +
    "\t\t\t\t<<case \"chalets\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/beachdusk.gif'\">\n" +
    "\t\t\t\t<<case \"sea\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ocean_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"home\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/home_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"town\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/town_dusk.png'\">\n" +
    "\t\t\t\t<<case \"docks\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/docks_dusk.png'\">\n" +
    "\t\t\t\t<<case \"pub\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/pubdusk.png'\">\n" +
    "\t\t\t\t<<case \"forest\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestdusk.gif'\">\n" +
    "\t\t\t\t<<case \"churchyard\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/churchyard_dusk.png'\">\n" +
    "\t\t\t\t<<case \"sepulchre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sepulchre_dusk.png'\">\n" +
    "\t\t\t\t<<case \"lake\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/lakedusk.gif'\">\n" +
    "\t\t\t\t<<case \"asylum\">>\n" +
    "\t\t\t\t\t<<if $hallucinations gte 1>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumduskvfast.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/asylumduskslow.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"tentworld\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tentacles_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"underground\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergrounddusk.png'\">\n" +
    "\t\t\t\t<<case \"sewers\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sewersdusk.gif'\">\n" +
    "\t\t\t\t<<case \"school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/schooldusk.png'\">\n" +
    "\t\t\t\t<<case \"cabin\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabindusk.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cabindusk.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"pool\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/pooldusk.gif'\">\n" +
    "\t\t\t\t<<case \"landfill\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/landfilldusk.png'\">\n" +
    "\t\t\t\t<<case \"dilapidated_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dilapidated_shop_dusk.png'\">\n" +
    "\t\t\t\t<<case \"adult_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/sex_shop_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"temple\">>\n" +
    "\t\t\t\t\t<<if Time.year is 361>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templedusk_old.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/templedusk.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"strip_club\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/strip_club_dusk.png'\">\n" +
    "\t\t\t\t<<case \"shopping_centre\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/shopping_centre_dusk.png'\">\n" +
    "\t\t\t\t<<case \"police_station\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/police_station_dusk.png'\">\n" +
    "\t\t\t\t<<case \"park\">>\n" +
    "\t\t\t\t\t<<if Time.season is \"winter\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" src=\"img/misc/winter/park_dusk.png\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" src=\"img/misc/normal/park_dusk.gif\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"museum\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/museum_dusk.png'\">\n" +
    "\t\t\t\t<<case \"hospital\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/hospital_dusk.png'\">\n" +
    "\t\t\t\t<<case \"dance_studio\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dance_studio_dusk.png'\">\n" +
    "\t\t\t\t<<case \"compound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/compound_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"brothel\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/brothel_dusk.png'\">\n" +
    "\t\t\t\t<<case \"cafe\">>\n" +
    "\t\t\t\t\t<<if $chef_state gte 9>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_renovated_dusk.png'\">\n" +
    "\t\t\t\t\t<<elseif $chef_state gte 7>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_construction_dusk.png'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/cafe_dusk.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"arcade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/arcade_dusk.png'\">\n" +
    "\t\t\t\t<<case \"meadow\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/meadow_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"farm\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/farm_dusk.png'\">\n" +
    "\t\t\t\t<<case \"alex_farm\">>\n" +
    "\t\t\t\t\t<<if $bus is \"woodland\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forestdusk.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_farm_dusk.png'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"alex_cottage\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alex_cottage_dusk.png'\">\n" +
    "\t\t\t\t<<case \"riding_school\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/riding_school_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"estate\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/remy_farm_dusk.png'\">\n" +
    "\t\t\t\t<<case \"wolf_cave\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/wolf_cave_dusk.png'\">\n" +
    "\t\t\t\t<<case \"forest_shop\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/forest_shop_dusk.png'\">\n" +
    "\t\t\t\t<<case \"lake_ruin\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/ruins_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"moor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/moor_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"tower\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tower_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"castle\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/tower_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"night_monster_lair\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/night_monster_lair_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"alley\">>\n" +
    "\t\t\t\t\t<<if $bus is \"industrial\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/indust_alley_dusk.gif'\">\n" +
    "\t\t\t\t\t<<elseif $bus is \"residential\">>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/resi_alley_dusk.gif'\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/alley_dusk.gif'\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<case \"drain\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/drain.gif'\">\n" +
    "\t\t\t\t<<case \"spa\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/spa_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"prison\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/prison_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"promenade\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/promenade_beach_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"factory\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/factory_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"pound\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/dog_pound_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"office_building\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/office_dusk.png'\">\n" +
    "\t\t\t\t<<case \"kylar_manor\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/kylar_manor_dusk.png'\">\n" +
    "\t\t\t\t<<case \"flats\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/flats_dusk.png'\">\n" +
    "\t\t\t\t<<case \"canal\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/canal_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"mines\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/undergrounddusk.png'\">\n" +
    "\t\t\t\t<<case \"seapirates\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/boat_dusk.gif'\">\n" +
    "\t\t\t\t<<case \"island\">>\n" +
    "\t\t\t\t\t<img id=\"location\" @src=\"'img/misc/' + _weather_display + '/island_dusk.gif'\">\n" +
    "\t\t\t<</switch>>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<switch Time.dayState>>\n" +
    "\t\t\t<<case \"day\">>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>外面阳光明媚。\n" +
    "\t\t\t\t\t<<case \"rain\">>外面正在下雨。\n" +
    "\t\t\t\t\t<<case \"overcast\">>乌云遮住了日光。\n" +
    "\t\t\t\t\t<<case \"snow\">>雪花从空中飘落。\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<<case \"night\">>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>星星在夜光下闪烁。\n" +
    "\t\t\t\t\t<<case \"rain\">>外面正在下雨。\n" +
    "\t\t\t\t\t<<case \"overcast\">>漫天的乌云遮蔽了星光。\n" +
    "\t\t\t\t\t<<case \"snow\">>雪花安静地从空中飘落。\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<<case \"dawn\">>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>太阳正从地平线上缓缓升起。\n" +
    "\t\t\t\t\t<<case \"rain\">>外面正在下雨。\n" +
    "\t\t\t\t\t<<case \"overcast\">>外面乌云密布。\n" +
    "\t\t\t\t\t<<case \"snow\">>雪花从空中飘落。\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t\t<<case \"dusk\">>\n" +
    "\t\t\t\t<<switch $weather>>\n" +
    "\t\t\t\t\t<<case \"clear\">>落日的余晖在地平线上闪烁。\n" +
    "\t\t\t\t\t<<case \"rain\">>外面正在下雨。\n" +
    "\t\t\t\t\t<<case \"overcast\">>外面乌云密布。\n" +
    "\t\t\t\t\t<<case \"snow\">>雪花在夕阳下飘落。\n" +
    "\t\t\t\t<</switch>>\n" +
    "\t\t<</switch>>\n" +
    "\t\t<br>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wearandtear\">>\n" +
    "\t<<if _args[0] is \"dance\">>\n" +
    "\t\t<<if !$worn.over_upper.type.includes(\"dance\")>>\n" +
    "\t\t\t<<set $worn.over_upper.integrity -= 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if !$worn.over_lower.type.includes(\"dance\")>>\n" +
    "\t\t\t<<set $worn.over_lower.integrity -= 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if !$worn.upper.type.includes(\"dance\")>>\n" +
    "\t\t\t<<set $worn.upper.integrity -= 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if !$worn.lower.type.includes(\"dance\")>>\n" +
    "\t\t\t<<set $worn.lower.integrity -= 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if !$worn.under_lower.type.includes(\"dance\")>>\n" +
    "\t\t\t<<set $worn.under_lower.integrity -= 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if !$worn.under_upper.type.includes(\"dance\")>>\n" +
    "\t\t\t<<set $worn.under_upper.integrity -= 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $worn.over_upper.integrity -= 1>><<set $worn.over_lower.integrity -= 1>><<set $worn.upper.integrity -= 1>><<set $worn.lower.integrity -= 1>><<set $worn.under_lower.integrity -= 1>><<set $worn.under_upper.integrity -= 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"dry_towel\">>\n" +
    "\t<<dry_full>>\n" +
    "\t<<exposure>>\n" +
    "\t<<if $exposed gte 1>>\n" +
    "\t\t<<towelup>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"towelup\">>\n" +
    "\t<<if $exposed gte 1>>\n" +
    "\t\t<<if $upperwetstage gte 3>>\n" +
    "\t\t\t<<upperwear 3>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $lowerwetstage gte 3>>\n" +
    "\t\t\t<<lowerwear 3>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $worn.upper.exposed gte 1>>\n" +
    "\t\t\t<<upperwear 14>>\n" +
    "\t\t<<elseif $worn.lower.exposed gte 1>>\n" +
    "\t\t\t<<lowerwear 3>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"towelupm\">>\n" +
    "\t<<if $exposed gte 1>>\n" +
    "\t\t<<if $lowerwetstage gte 3>>\n" +
    "\t\t\t<<lowerwear 3>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $worn.lower.exposed gte 1>>\n" +
    "\t\t\t<<lowerwear 3>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"ragup\">>\n" +
    "<<if $worn.upper.exposed gte 2>>\n" +
    "\t<<upperwear 79>>\n" +
    "<</if>>\n" +
    "\n" +
    "<<if $worn.lower.exposed gte 2>>\n" +
    "\t<<lowerwear 71>>\n" +
    "<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"plantupper\">>\n" +
    "\t<<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1\n" +
    "\tor $worn.upper.exposed gte 2 and $underupperwetstage gte 3\n" +
    "\tor $upperwetstage gte 3 and $worn.under_upper.exposed gte 1\n" +
    "\tor $upperwetstage gte 3 and $underupperwetstage gte 3\n" +
    "\tor _args[0] is \"force\">>\n" +
    "\t\t<<upperwear 6>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"plantlower\">>\n" +
    "\t<<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1\n" +
    "\tor $worn.lower.exposed gte 2 and $underlowerwetstage gte 3\n" +
    "\tor $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1\n" +
    "\tor $lowerwetstage gte 3 and $underlowerwetstage gte 3\n" +
    "\tor _args[0] is \"force\">>\n" +
    "\t\t<<lowerwear 8>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"plantup\">>\n" +
    "\t<<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1 or $upperwetstage gte 3 and $underupperwetstage gte 3>>\n" +
    "\t\t<<upperwear 6>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 or $lowerwetstage gte 3 and $underlowerwetstage gte 3 or $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1>>\n" +
    "\t\t<<lowerwear 8>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"schoolspareclothes\">>\n" +
    "\t<<if !$worn.upper.type.includes(\"school\") or !$worn.lower.type.includes(\"school\") and $worn.upper.set is $worn.lower.set>>\n" +
    "\t\t<<upperwear 5>><<set $worn.upper.colour to either(\"black\", \"blue\", \"brown\", \"green\", \"pink\", \"purple\", \"red\", \"tangerine\", \"teal\", \"white\", \"yellow\")>><<set $worn.upper.integrity /= 2>>\n" +
    "\t<</if>>\n" +
    "\t<<if !$worn.lower.type.includes(\"school\")>>\n" +
    "\t\t<<if $clothingselector is \"m\">>\n" +
    "\t\t\t<<lowerwear 6>><<set $worn.lower.colour to either(\"black\", \"blue\", \"brown\", \"green\", \"pink\", \"purple\", \"red\", \"tangerine\", \"teal\", \"white\", \"yellow\")>><<set $worn.lower.integrity /= 2>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<lowerwear 7>><<set $worn.lower.colour to either(\"black\", \"blue\", \"brown\", \"green\", \"pink\", \"purple\", \"red\", \"tangerine\", \"teal\", \"white\", \"yellow\")>><<set $worn.lower.integrity /= 2>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"spareschoolswimsuit\">>\n" +
    "\t<<underupperwear 2>><<set $worn.under_upper.colour to either(\"black\", \"blue\", \"brown\", \"green\", \"pink\", \"purple\", \"red\", \"tangerine\", \"teal\", \"white\", \"yellow\")>><<set $worn.under_upper.integrity /= 2>>\n" +
    "\t<<set $worn.under_lower.colour to clone($worn.under_upper.colour)>><<set $worn.under_lower.integrity /= 2>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"spareschoolswimshorts\">>\n" +
    "\t<<underlowerwear 7>><<set $worn.under_lower.colour to either(\"black\", \"blue\", \"brown\", \"green\", \"pink\", \"purple\", \"red\", \"tangerine\", \"teal\", \"white\", \"yellow\")>><<set $worn.under_lower.integrity /= 2>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"exposure\">>\n" +
    "\t<<if ![\"beach\",\"pool\",\"sea\",\"lake\",\"lake_ruin\"].includes($location)>>\n" +
    "\t\t<<set $libertine to 0>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $libertine to 1>>\n" +
    "\t<</if>>\n" +
    "\t<<if $location is \"dance_studio\" and $worn.under_lower.type.includes(\"dance\") and $worn.under_upper.type.includes(\"dance\")>>\n" +
    "\t\t<<set $libertine to 1>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<set $worn.over_upper.exposedcarry to $worn.over_upper.exposed>>\n" +
    "\t<<set $worn.over_lower.exposedcarry to $worn.over_lower.exposed>>\n" +
    "\t<<set $worn.upper.exposedcarry to $worn.upper.exposed>>\n" +
    "\t<<set $worn.lower.exposedcarry to $worn.lower.exposed>>\n" +
    "\t<<set $worn.under_lower.exposedcarry to $worn.under_lower.exposed>>\n" +
    "\t<<set $worn.under_upper.exposedcarry to $worn.under_upper.exposed>>\n" +
    "\n" +
    "\t<<if $upperwetstage gte 3>>\n" +
    "\t\t<<set $worn.upper.exposed to 2>>\n" +
    "\t<</if>>\n" +
    "\t<<if $lowerwetstage gte 3>>\n" +
    "\t\t<<set $worn.lower.exposed to 2>>\n" +
    "\t<</if>>\n" +
    "\t<<if $underlowerwetstage gte 3>>\n" +
    "\t\t<<set $worn.under_lower.exposed to 1>>\n" +
    "\t<</if>>\n" +
    "\t<<if $underupperwetstage gte 3>>\n" +
    "\t\t<<set $worn.under_upper.exposed to 1>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<exposedcheck>>\n" +
    "\n" +
    "\t<<set $exposed to 0>>\n" +
    "\t<<if $worn.upper.exposed gte 1 and $worn.over_upper.exposed gte 1>>\n" +
    "\t\t<<if $player.gender_appearance is \"m\">>\n" +
    "\t\t<<elseif $libertine gte 1 or $possessed or [\"plaid school pinafore\",\"school pinafore\"].includes($worn.lower.name)>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $exposed to 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.upper.exposed gte 2 and $worn.over_upper.exposed gte 2 and $player.gender_appearance isnot \"m\">>\n" +
    "\t\t<<if $possessed>>\n" +
    "\t\t<<elseif [\"plaid school pinafore\",\"school pinafore\"].includes($worn.lower.name)>>\n" +
    "\t\t<<elseif $libertine is 1>>\n" +
    "\t\t\t<<set $topless to 1>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $exposed to 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $topless to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.lower.exposed gte 1 and $worn.over_lower.exposed gte 1>>\n" +
    "\t\t<<if $libertine gte 1 or $possessed>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $exposed to 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $worn.lower.exposed gte 2 and $worn.over_lower.exposed gte 2>>\n" +
    "\t\t<<if $possessed>>\n" +
    "\t\t<<elseif $worn.under_lower.exposed gte 1>>\n" +
    "\t\t\t<<set $exposed to 2>>\n" +
    "\t\t<<elseif $libertine gte 1>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $exposed to 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<set $worn.over_upper.exposed to $worn.over_upper.exposedcarry>>\n" +
    "\t<<set $worn.over_lower.exposed to $worn.over_lower.exposedcarry>>\n" +
    "\t<<set $worn.upper.exposed to $worn.upper.exposedcarry>>\n" +
    "\t<<set $worn.lower.exposed to $worn.lower.exposedcarry>>\n" +
    "\t<<set $worn.under_lower.exposed to $worn.under_lower.exposedcarry>>\n" +
    "\t<<set $worn.under_upper.exposed to $worn.under_upper.exposedcarry>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"integritycheck\">>\n" +
    "\t<<if $worn.over_upper.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.over_upper.integrity lte 0>>\n" +
    "\t\t\t<<set $worn.over_upper.type.push(\"broken\")>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.over_upper.cn_name_cap<<upperplural>>被撕成了碎片<<if $worn.upper.exposed gte 2>>,使你<<breasts>>暴露在了空气之中<</if>>。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<overupperruined>><<clothesruinstat>><<if $worn.upper.exposed gte 2>><<set $upperoff to 0>><</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.over_lower.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.over_lower.integrity lte 0>>\n" +
    "\t\t\t<<set $worn.over_lower.type.push(\"broken\")>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.over_lower.cn_name_cap<<upperplural>>被撕成了碎片<<if $worn.lower.exposed gte 2>>,使你<<undies>>暴露在了空气之中<</if>>。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<overlowerruined>><<clothesruinstat>><<if $worn.lower.exposed gte 2>><<set $upperoff to 0>><</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.upper.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.upper.integrity lte 0>>\n" +
    "\t\t\t<<set $worn.upper.type.push(\"broken\")>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.upper.cn_name_cap<<upperplural>>被撕成了碎片,使你<<breasts>>暴露在了空气之中。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<upperruined>><<clothesruinstat>><<set $upperoff to 0>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.lower.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.lower.integrity lte 0>>\n" +
    "\t\t\t<<set $worn.lower.type.push(\"broken\")>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.lower.cn_name_cap<<lowerplural>>被撕成了碎片,使你<<undies>>暴露在了空气之中。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<lowerruined>><<clothesruinstat>><<set $loweroff to 0>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.under_upper.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.under_upper.integrity lte 0>>\n" +
    "\t\t\t<<set $worn.under_upper.type.push(\"broken\")>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.under_upper.cn_name_cap<<underupperplural>>被撕成了碎片,使你<<breasts>>暴露在了空气之中。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<underupperruined>><<clothesruinstat>><<set $underupperoff to 0>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.under_lower.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.under_lower.integrity lte 0>>\n" +
    "\t\t\t<<set $worn.under_lower.type.push(\"broken\")>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.under_lower.cn_name_cap<<underlowerplural>>被撕成了碎片,使你<<if $worn.genitals.name isnot \"naked\">>$worn.genitals.cn_name_cap暴露在了空气之中。<<else>><<genitals>>暴露在了空气之中。<</if>></span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<underlowerruined>><<clothesruinstat>><<set $underloweroff to 0>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.genitals.name isnot \"naked\">>\n" +
    "\t\t<<if $worn.genitals.integrity lte 0>>\n" +
    "\t\t\t<<set _chastityBreak to 1>>\n" +
    "\t\t\t<<if _args[0] isnot \"no_text\">>\n" +
    "\t\t\t\t<span class=\"lewd\">你的$worn.genitals.cn_name_cap破裂了,使你<<genitals>>暴露在了空气之中。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if playerChastity()>>\n" +
    "\t\t\t\t<<set $worn.genitals.type.push(\"broken\")>>\n" +
    "\t\t\t\t<<if $vaginalchastityparasite isnot 0>>\n" +
    "\t\t\t\t\t<span class=\"pink\">随着<<print $worn.genitals.cn_name_cap>>的耐久耗尽,那个<<= $vaginalchastityparasite.replace(\"eels\",\"鳗鱼\").replace(\"worms\",\"蠕虫\").replace(\"pale slimes\",\"苍白史莱姆\").replace(\"slimes\",\"史莱姆\").replace(\"snakes\",\"蛇\").replace(\"fish\",\"鱼\").replace(\"spiders\",\"蜘蛛\").replace(\"maggots\",\"蛆虫\")>>也从你的阴道里掉了出来。</span>\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t<<set $vaginalchastityparasite to 0>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<if $penilechastityparasite isnot 0>>\n" +
    "\t\t\t\t\t<span class=\"pink\">随着<<print $worn.genitals.cn_name_cap>>的耐久耗尽,那个<<= $penilechastityparasite.replace(\"eels\",\"鳗鱼\").replace(\"worms\",\"蠕虫\").replace(\"pale slimes\",\"苍白史莱姆\").replace(\"slimes\",\"史莱姆\").replace(\"snakes\",\"蛇\").replace(\"fish\",\"鱼\").replace(\"spiders\",\"蜘蛛\").replace(\"maggots\",\"蛆虫\")>>也从你的肉棒上掉了下来。</span>\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t<<set $penilechastityparasite to 0>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<if $analchastityparasite isnot 0>>\n" +
    "\t\t\t\t\t<span class=\"pink\">随着<<print $worn.genitals.cn_name_cap>>的耐久耗尽,那个<<= $analchastityparasite.replace(\"eels\",\"鳗鱼\").replace(\"worms\",\"蠕虫\").replace(\"pale slimes\",\"苍白史莱姆\").replace(\"slimes\",\"史莱姆\").replace(\"snakes\",\"蛇\").replace(\"fish\",\"鱼\").replace(\"spiders\",\"蜘蛛\").replace(\"maggots\",\"蛆虫\")>>也从你的菊穴掉落下来。</span>\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t<<set $analchastityparasite to 0>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<if playerChastity(\"anus\")>>\n" +
    "\t\t\t\t\t<<set $worn.genitals.anal_shield to 0>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<genitalsruined>><<clothesruinstat>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"arm_unbind\">>\n" +
    "\t<<set $rightboundcarry to 0>>\n" +
    "\t<<set $leftboundcarry to 0>>\n" +
    "\t<<set $leftarm to 0>>\n" +
    "\t<<set $rightarm to 0>>\n" +
    "\t<<if $worn.upper.type.includes(\"binding\")>>\n" +
    "\t\t<<set _unbind_check to 1>>\n" +
    "\t\t<<if $worn.upper.set is $worn.lower.set>>\n" +
    "\t\t\t<<set $worn.lower.type.push(\"broken\")>>\n" +
    "\t\t\t<<lowerruined>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $worn.upper.type.push(\"broken\")>>\n" +
    "\t\t<<upperruined>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"unbind\">>\n" +
    "\t<<set $rightboundcarry to 0>>\n" +
    "\t<<set $leftboundcarry to 0>>\n" +
    "\t<<set $leftarm to 0>>\n" +
    "\t<<set $rightarm to 0>>\n" +
    "\t<<remove_shackle>>\n" +
    "\t<<leg_unbind>>\n" +
    "\t<<if $head is \"bound\">>\n" +
    "\t\t<<set $head to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if $worn.upper.type.includes(\"binding\")>>\n" +
    "\t\t<<set _unbind_check to 1>>\n" +
    "\t\t<<if $worn.upper.set is $worn.lower.set>>\n" +
    "\t\t\t<<set $worn.lower.type.push(\"broken\")>>\n" +
    "\t\t\t<<lowerruined>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $worn.upper.type.push(\"broken\")>>\n" +
    "\t\t<<upperruined>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"bind\">>\n" +
    "\t<<set $leftarm to \"bound\">>\n" +
    "\t<<set $rightarm to \"bound\">>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"legbind\">>\n" +
    "\t<<set $leftleg to \"bound\">>\n" +
    "\t<<set $rightleg to \"bound\">>\n" +
    "\t<<set $feetuse to \"bound\">>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"leg_unbind\">>\n" +
    "\t<<set $leftleg to 0>>\n" +
    "\t<<set $rightleg to 0>>\n" +
    "\t<<set $feetuse to 0>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"remove_shackle\">>\n" +
    "\t<<if $worn.feet.type.includes(\"shackle\")>>\n" +
    "\t\t<<set $worn.feet.type.push(\"broken\")>>\n" +
    "\t\t<<feetruined>>\n" +
    "\t\t<<leg_unbind>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"shackle_feet\">>\n" +
    "\t<<feetwear 3>>\n" +
    "\t<<legbind>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"headbind\">>\n" +
    "\t<<set $head to \"bound\">>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"bindings\">>\n" +
    "\t<<if $leftarm is \"bound\" and $position isnot \"wall\">><<set $leftboundcarry to 1>><</if>>\n" +
    "\t<<if $rightarm is \"bound\" and $position isnot \"wall\">><<set $rightboundcarry to 1>><</if>>\n" +
    "\t<<if $rightboundcarry is 1 and $rightarm isnot \"bound\">>\n" +
    "\t\t<<set $rightarm to \"bound\">>\n" +
    "\t<</if>>\n" +
    "\t<<if $leftboundcarry is 1 and $leftarm isnot \"bound\">>\n" +
    "\t\t<<set $leftarm to \"bound\">>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"water\">>\n" +
    "\t<<if !waterproofCheck($worn.upper) and !$worn.upper.type.includes(\"naked\") and _args[0] isnot \"waist\">>\n" +
    "\t\t<<set $upperwet to 200>>\n" +
    "\t<</if>>\n" +
    "\t<<if !waterproofCheck($worn.lower) and !$worn.lower.type.includes(\"naked\")>>\n" +
    "\t\t<<set $lowerwet to 200>>\n" +
    "\t<</if>>\n" +
    "\t<<if !waterproofCheck($worn.upper) and !waterproofCheck($worn.under_upper) and !$worn.under_upper.type.includes(\"naked\") and _args[0] isnot \"waist\">>\n" +
    "\t\t<<set $underupperwet to 200>>\n" +
    "\t<</if>>\n" +
    "\t<<if !waterproofCheck($worn.lower) and !waterproofCheck($worn.under_lower) and !$worn.under_lower.type.includes(\"naked\")>>\n" +
    "\t\t<<set $underlowerwet to 200>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<waterwash>>\n" +
    "\t<<set $inwater to 1>>\n" +
    "\t<<set _water_warmth to 0>>\n" +
    "\t<<if $location isnot \"sea\" and $outside is 1 and Time.season is \"winter\">>\n" +
    "\t\t<<if $worn.upper.type.includes(\"diving\") or $worn.under_upper.type.includes(\"diving\")>>\n" +
    "\t\t\t<<set _water_warmth += 1>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $worn.lower.type.includes(\"diving\") or $worn.under_lower.type.includes(\"diving\")>>\n" +
    "\t\t\t<<set _water_warmth += 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _water_warmth to 2>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wet_all\">>\n" +
    "\t<<wet_upper>>\n" +
    "\t<<wet_lower>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wet_upper\">>\n" +
    "\t<<for _slot range [\"over_upper\", \"upper\", \"under_upper\"]>>\n" +
    "\t\t<<if waterproofCheck($worn[_slot])>>\n" +
    "\t\t\t/* if the clothing is waterproof, protect it and layers below from getting wet */\n" +
    "\t\t\t<<break>>\n" +
    "\t\t<<elseif !$worn[_slot].type.includes(\"naked\")>>\n" +
    "\t\t\t/* skin wetness system is not implemented... yet? */\n" +
    "\t\t\t<<set V[_slot + \"wet\"] to 200>>\n" +
    "\t\t\t<<set V[_slot + \"wetstage\"] to 3>>\n" +
    "\t\t<</if>>\n" +
    "\t<</for>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wet_lower\">>\n" +
    "\t<<for _slot range [\"over_lower\", \"lower\", \"under_lower\"]>>\n" +
    "\t\t<<if waterproofCheck($worn[_slot])>>\n" +
    "\t\t\t<<break>>\n" +
    "\t\t<<elseif !$worn[_slot].type.includes(\"naked\")>>\n" +
    "\t\t\t<<set V[_slot + \"wet\"] to 200>>\n" +
    "\t\t\t<<set V[_slot + \"wetstage\"] to 3>>\n" +
    "\t\t<</if>>\n" +
    "\t<</for>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"storecleanup\">>\n" +
    "\t<<unset $action_unclad_over_outfit>>\n" +
    "\t<<unset $action_unclad_over_upper>>\n" +
    "\t<<unset $action_unclad_over_lower>>\n" +
    "\t<<unset $action_unclad_outfit>>\n" +
    "\t<<unset $action_unclad_upper>>\n" +
    "\t<<unset $action_unclad_lower>>\n" +
    "\t<<unset $action_unclad_under_outfit>>\n" +
    "\t<<unset $action_unclad_under_lower>>\n" +
    "\t<<unset $action_unclad_under_upper>>\n" +
    "\t<<unset $action_unclad_legs>>\n" +
    "\t<<unset $action_unclad_feet>>\n" +
    "\t<<unset $action_unclad_neck>>\n" +
    "\t<<unset $action_unclad_head>>\n" +
    "\t<<unset $action_unclad_face>>\n" +
    "\t<<unset $action_unclad_hands>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"undiestrauma\">>\n" +
    "\t<<if !$worn.under_lower.type.includes(\"naked\")>>\n" +
    "\t\t<<gtrauma>><<gstress>><<trauma 1>><<stress 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<gtrauma>><<gstress>><<trauma 3>><<stress 3>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"goo\">>\n" +
    "\t<<goocount>>\n" +
    "\n" +
    "\t<<if $liquidoutsidecount gte 1>>\n" +
    "\t\t<!-- Variables constructed: $semenoutsidecount, $goooutsidecount, $nectaroutsidecount -->\n" +
    "\t\t<<set _liquid to formatList(\n" +
    "\t\t\t[\"semen\", \"goo\", \"nectar\"].filter(stuff => V[stuff + \"outsidecount\"] gte 1)\n" +
    "\t\t\t).replace(\"semen\", \"精液\").replace(\"goo\", \"粘液\").replace(\"nectar\", \"花蜜\").replace(\" and \", \"和\").replace(\",\", \"、\")\n" +
    "\t\t>>\n" +
    "\t\t<<if $liquidoutsidecount gte 100>>\n" +
    "\t\t\t<span class=\"red\">你全身上下都浸润在淫秽的液体之中。</span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif $liquidoutsidecount gte 25>>\n" +
    "\t\t\t<span class=\"pink\">大量的<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>浸透了你。</span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif $liquidoutsidecount gte 20>>\n" +
    "\t\t\t<span class=\"purple\">你身上沾满了<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>></span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif $liquidoutsidecount gte 15>>\n" +
    "\t\t\t<span class=\"purple\">你的皮肤被<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>湿润了。</span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif $liquidoutsidecount gte 10>>\n" +
    "\t\t\t<span class=\"purple\">你被<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>弄湿了。</span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif $liquidoutsidecount gte 5>>\n" +
    "\t\t\t<span class=\"purple\">你的皮肤被<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>湿润了。</span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif $liquidoutsidecount gte 1>>\n" +
    "\t\t\t<span class=\"blue\">一些<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>粘在你的皮肤上。</span>\n" +
    "\t\t\t<br>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $player.bodyliquid.vagina.goo gte 1 or $player.bodyliquid.vagina.semen gte 1 or $player.bodyliquid.vagina.nectar>>\n" +
    "\t\t<!-- Variables constructed: $player.bodyliquid.vagina.semen, $player.bodyliquid.vagina.goo, $player.bodyliquid.vagina.nectar -->\n" +
    "\t\t<<set _liquid to formatList(\n" +
    "\t\t\t[\"semen\", \"goo\", \"nectar\"].filter(stuff => V.player.bodyliquid.vagina[stuff] gte 1)\n" +
    "\t\t\t).replace(\"semen\", \"精液\").replace(\"goo\", \"粘液\").replace(\"nectar\", \"花蜜\").replace(\" and \", \"和\").replace(\",\", \"、\")\n" +
    "\t\t>>\n" +
    "\t\t<<set _liquidUpper to _liquid.toUpperFirst()>>\n" +
    "\t\t<<if _liquid.includes(\" \")>>\n" +
    "\t\t\t<<set _s to \"\">>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set _s to \"s\">>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<switch Math.clamp(setup.bodyliquid.combined(\"vagina\"), 1, 5)>>\n" +
    "\t\t\t<<case 5>>\n" +
    "\t\t\t\t<span class=\"red\">无法容下的<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>一股股从你胀满的子宫中溢出。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 4>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>从你<<pussy>>满溢而出。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 3>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>从你<<pussy>>中顺着大腿缓缓淌下。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 2>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>在地面与你<<pussy>>间拉出一条细丝。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 1>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>从你<<pussy>>中滴落。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t<</switch>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $player.bodyliquid.anus.goo gte 1 or $player.bodyliquid.anus.semen gte 1 or $player.bodyliquid.anus.nectar>>\n" +
    "\t\t<!-- Variables constructed: $player.bodyliquid.anus.semen, $player.bodyliquid.anus.goo, $player.bodyliquid.anus.nectar -->\n" +
    "\t\t<<set _liquid to formatList(\n" +
    "\t\t\t[\"semen\", \"goo\", \"nectar\"].filter(stuff => V.player.bodyliquid.anus[stuff] gte 1)\n" +
    "\t\t\t).replace(\"semen\", \"精液\").replace(\"goo\", \"粘液\").replace(\"nectar\", \"花蜜\").replace(\" and \", \"和\").replace(\",\", \"、\")\n" +
    "\t\t>>\n" +
    "\t\t<<set _liquidUpper to _liquid.toUpperFirst()>>\n" +
    "\t\t<<if _liquid.includes(\" \")>>\n" +
    "\t\t\t<<set _s to \"\">>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set _s to \"s\">>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<switch Math.clamp(setup.bodyliquid.combined(\"anus\"), 1, 5)>>\n" +
    "\t\t\t<<case 5>>\n" +
    "\t\t\t\t<span class=\"red\">你的肠中充满了_liquid。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 4>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>从你<<bottom>>中满溢而出。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 3>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>顺着你<<bottom>>缓缓淌下。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 2>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>在地面与你<<bottom>>间拉出一条细丝。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 1>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>从你的股间滴落。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t<</switch>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $player.bodyliquid.mouth.goo gte 1 or $player.bodyliquid.mouth.semen gte 1 or $player.bodyliquid.mouth.nectar>>\n" +
    "\t\t<!-- Variables constructed: $player.bodyliquid.mouth.semen, $player.bodyliquid.mouth.goo, $player.bodyliquid.mouth.nectar -->\n" +
    "\t\t<<set _liquid to formatList(\n" +
    "\t\t\t[\"semen\", \"goo\", \"nectar\"].filter(stuff => V.player.bodyliquid.mouth[stuff] gte 1)\n" +
    "\t\t\t).replace(\"semen\", \"精液\").replace(\"goo\", \"粘液\").replace(\"nectar\", \"花蜜\").replace(\" and \", \"和\").replace(\",\", \"、\")\n" +
    "\t\t>>\n" +
    "\t\t<<set _liquidUpper to _liquid.toUpperFirst()>>\n" +
    "\t\t<<if _liquid.includes(\" \")>>\n" +
    "\t\t\t<<set _s to \"\">>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set _s to \"s\">>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _liquidUpper to _liquid.toUpperFirst()>>\n" +
    "\t\t<<switch Math.clamp(setup.bodyliquid.combined(\"mouth\"), 1, 5)>>\n" +
    "\t\t\t<<case 5>>\n" +
    "\t\t\t\t<span class=\"red\">你不断地咳出<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 4>>\n" +
    "\t\t\t\t<span class=\"pink\">满溢的<<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>正汇成丝线从你的唇缝中淌下。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 3>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>从你的唇缝间滴落。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 2>>\n" +
    "\t\t\t\t<span class=\"pink\"><<switch _liquidUpper>><<case \"Semen\">>精液<<case \"Goo\">>粘液<<case \"Nectar\">>花蜜<<default>>_liquidUpper<</switch>>在你的唇间拉出一道细线。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case 1>>\n" +
    "\t\t\t\t<span class=\"pink\">残存<<switch _liquid>><<case \"semen\">>精液<<case \"goo\">>粘液<<case \"nectar\">>花蜜<<default>>_liquid<</switch>>味在你嘴中扩散。</span>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t<</switch>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"clampgoo\">>\n" +
    "\t<<for _bodypart range setup.bodyliquid.bodyparts>>\n" +
    "\t\t<<set $player.bodyliquid[_bodypart][\"goo\"] to Math.clamp($player.bodyliquid[_bodypart][\"goo\"], 0, 5)>>\n" +
    "\t\t<<set $player.bodyliquid[_bodypart][\"semen\"] to Math.clamp($player.bodyliquid[_bodypart][\"semen\"], 0, 5)>>\n" +
    "\t\t<<set $player.bodyliquid[_bodypart][\"nectar\"] to Math.clamp($player.bodyliquid[_bodypart][\"nectar\"], 0, 5)>>\n" +
    "\t<</for>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"goocount\">>\n" +
    "\t<<clampgoo>>\n" +
    "\t<<set $goocount to $player.bodyliquid.neck.goo + $player.bodyliquid.rightarm.goo + $player.bodyliquid.leftarm.goo + $player.bodyliquid.thigh.goo + $player.bodyliquid.bottom.goo + $player.bodyliquid.tummy.goo + $player.bodyliquid.chest.goo + $player.bodyliquid.face.goo + $player.bodyliquid.hair.goo + $player.bodyliquid.feet.goo + $player.bodyliquid.vaginaoutside.goo + ($player.bodyliquid.vagina.goo * 3) + ($player.bodyliquid.penis.goo * 3) + ($player.bodyliquid.anus.goo * 3) + ($player.bodyliquid.mouth.goo * 3)>>\n" +
    "\t<<set $semencount to $player.bodyliquid.neck.semen + $player.bodyliquid.rightarm.semen + $player.bodyliquid.leftarm.semen + $player.bodyliquid.thigh.semen + $player.bodyliquid.bottom.semen + $player.bodyliquid.tummy.semen + $player.bodyliquid.chest.semen + $player.bodyliquid.face.semen + $player.bodyliquid.hair.semen + $player.bodyliquid.feet.semen + $player.bodyliquid.vaginaoutside.semen + ($player.bodyliquid.vagina.semen * 3) + ($player.bodyliquid.penis.semen * 3) + ($player.bodyliquid.anus.semen * 3) + ($player.bodyliquid.mouth.semen * 3)>>\n" +
    "\t<<set $nectarcount to $player.bodyliquid.neck.nectar + $player.bodyliquid.rightarm.nectar + $player.bodyliquid.leftarm.nectar + $player.bodyliquid.thigh.nectar + $player.bodyliquid.bottom.nectar + $player.bodyliquid.tummy.nectar + $player.bodyliquid.chest.nectar + $player.bodyliquid.face.nectar + $player.bodyliquid.hair.nectar + $player.bodyliquid.feet.nectar + $player.bodyliquid.vaginaoutside.nectar + ($player.bodyliquid.vagina.nectar * 3) + ($player.bodyliquid.penis.nectar * 3) + ($player.bodyliquid.anus.nectar * 3) + ($player.bodyliquid.mouth.nectar * 3)>>\n" +
    "\t<<set $liquidcount to $goocount + $semencount + $nectarcount>>\n" +
    "\n" +
    "\t<<set $goooutsidecount to $player.bodyliquid.neck.goo + $player.bodyliquid.rightarm.goo + $player.bodyliquid.leftarm.goo + $player.bodyliquid.thigh.goo + $player.bodyliquid.bottom.goo + $player.bodyliquid.tummy.goo + $player.bodyliquid.chest.goo + $player.bodyliquid.face.goo + $player.bodyliquid.hair.goo + $player.bodyliquid.feet.goo + $player.bodyliquid.vaginaoutside.goo + ($player.bodyliquid.penis.goo * 3)>>\n" +
    "\t<<set $semenoutsidecount to $player.bodyliquid.neck.semen + $player.bodyliquid.rightarm.semen + $player.bodyliquid.leftarm.semen + $player.bodyliquid.thigh.semen + $player.bodyliquid.bottom.semen + $player.bodyliquid.tummy.semen + $player.bodyliquid.chest.semen + $player.bodyliquid.face.semen + $player.bodyliquid.hair.semen + $player.bodyliquid.feet.semen + $player.bodyliquid.vaginaoutside.semen + ($player.bodyliquid.penis.semen * 3)>>\n" +
    "\t<<set $nectaroutsidecount to $player.bodyliquid.neck.nectar + $player.bodyliquid.rightarm.nectar + $player.bodyliquid.leftarm.nectar + $player.bodyliquid.thigh.nectar + $player.bodyliquid.bottom.nectar + $player.bodyliquid.tummy.nectar + $player.bodyliquid.chest.nectar + $player.bodyliquid.face.nectar + $player.bodyliquid.hair.nectar + $player.bodyliquid.feet.nectar + $player.bodyliquid.vaginaoutside.nectar + ($player.bodyliquid.penis.nectar * 3)>>\n" +
    "\t<<set $liquidoutsidecount to $goooutsidecount + $semenoutsidecount + $nectaroutsidecount>>\n" +
    "\n" +
    "\t<<set $goobodycount to $player.bodyliquid.thigh.goo + $player.bodyliquid.bottom.goo + $player.bodyliquid.tummy.goo + $player.bodyliquid.chest.goo + $player.bodyliquid.vaginaoutside.goo + ($player.bodyliquid.vagina.goo * 3) + ($player.bodyliquid.penis.goo * 3) + ($player.bodyliquid.anus.goo * 3)>>\n" +
    "\t<<set $semenbodycount to $player.bodyliquid.thigh.semen + $player.bodyliquid.bottom.semen + $player.bodyliquid.tummy.semen + $player.bodyliquid.chest.semen + $player.bodyliquid.vaginaoutside.semen + ($player.bodyliquid.vagina.semen * 3) + ($player.bodyliquid.penis.semen * 3) + ($player.bodyliquid.anus.semen * 3)>>\n" +
    "\t<<set $nectarbodycount to $player.bodyliquid.thigh.nectar + $player.bodyliquid.bottom.nectar + $player.bodyliquid.tummy.nectar + $player.bodyliquid.chest.nectar + $player.bodyliquid.vaginaoutside.nectar + ($player.bodyliquid.vagina.nectar * 3) + ($player.bodyliquid.penis.nectar * 3) + ($player.bodyliquid.anus.nectar * 3)>>\n" +
    "\t<<set $liquidbodycount to $goobodycount + $semenbodycount + $nectarbodycount>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"outergoo\">>\n" +
    "\t<<bodyliquid \"neck\" \"goo\">>\n" +
    "\t<<bodyliquid \"rightarm\" \"goo\">>\n" +
    "\t<<bodyliquid \"leftarm\" \"goo\">>\n" +
    "\t<<bodyliquid \"thigh\" \"goo\">>\n" +
    "\t<<bodyliquid \"bottom\" \"goo\">>\n" +
    "\t<<bodyliquid \"tummy\" \"goo\">>\n" +
    "\t<<bodyliquid \"chest\" \"goo\">>\n" +
    "\t<<bodyliquid \"face\" \"goo\">>\n" +
    "\t<<bodyliquid \"hair\" \"goo\">>\n" +
    "\t<<bodyliquid \"feet\" \"goo\">>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"waist_goo\">>\n" +
    "\t<<bodyliquid \"feet\" \"goo\" 5>>\n" +
    "\t<<bodyliquid \"bottom\" \"goo\" 5>>\n" +
    "\t<<bodyliquid \"thigh\" \"goo\" 5>>\n" +
    "\t<<if $player.penisExist>>\n" +
    "\t\t<<bodyliquid \"penis\" \"goo\" 5>>\n" +
    "\t<</if>>\n" +
    "\t<<if $player.vaginaExist>>\n" +
    "\t\t<<bodyliquid \"vaginaoutside\" \"goo\" 5>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"random_goo\">>\n" +
    "\t<<set $_rng to random (0, 9)>> <!-- 1-10 but 0 indexed -->\n" +
    "\t<<set $_part_text to [\n" +
    "\t\t\"neck\", \"right arm\", \"left arm\", \"thigh\", \"bottom\",\n" +
    "\t\t\"tummy\", \"chest\", \"face\", \"hair\", \"feet\"\n" +
    "\t\t].select($_rng)>>\n" +
    "\t<<set $_part to $_part_text.replace(\" \",\"\")>>\n" +
    "\t<<set $player.bodyliquid[$_part].goo += 1>>\n" +
    "\n" +
    "\t<<print either(\"飞溅到你的\", \"涂抹到你的\", \"落在了你的\", \"溅到了你的\")>><<set $_part_text to $_part_text.replace(\"neck\",\"脖子上\").replace(\"right arm\",\"右臂上\").replace(\"left arm\",\"左臂上\").replace(\"thigh\",\"大腿上\").replace(\"bottom\",\"屁股上\").replace(\"tummy\",\"小腹上\").replace(\"chest\",\"胸部上\").replace(\"face\",\"脸上\").replace(\"hair\",\"头发上\").replace(\"feet\",\"脚上\")>>\n" +
    "\t<span class=\"purple\">$_part_text。</span>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"random_semen\">>\n" +
    "\t<<set $_rng to random (0, 9)>> <!-- 1-10 but 0 indexed -->\n" +
    "\t<<set $_part_text to [\n" +
    "\t\t\"neck\", \"right arm\", \"left arm\", \"thigh\", \"bottom\",\n" +
    "\t\t\"tummy\", \"chest\", \"face\", \"hair\", \"feet\"\n" +
    "\t\t].select($_rng)>>\n" +
    "\t<<set $_part to $_part_text.replace(\" \",\"\")>>\n" +
    "\t<<set $player.bodyliquid[$_part].semen += 1>>\n" +
    "\n" +
    "\t<<print either(\"飞溅到你的\", \"涂抹到你的\", \"落在了你的\", \"溅到了你的\")>><<set $_part_text to $_part_text.replace(\"neck\",\"脖子上\").replace(\"right arm\",\"右臂上\").replace(\"left arm\",\"左臂上\").replace(\"thigh\",\"大腿上\").replace(\"bottom\",\"屁股上\").replace(\"tummy\",\"小腹上\").replace(\"chest\",\"胸部上\").replace(\"face\",\"脸上\").replace(\"hair\",\"头发上\").replace(\"feet\",\"脚上\")>>\n" +
    "\t<span class=\"purple\">$_part_text。</span>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"random_goo_head\">>\n" +
    "\t<<set $_rng to random (0, 3)>> <!-- 1-10 but 0 indexed -->\n" +
    "\t<<set $_part_text to [\n" +
    "\t\t\"neck\", \"chest\", \"face\", \"hair\"\n" +
    "\t\t].select($_rng)>>\n" +
    "\t<<set $_part to $_part_text.replace(\" \",\"\")>>\n" +
    "\t<<set $player.bodyliquid[$_part].goo += 1>>\n" +
    "\n" +
    "\t<<print either(\"飞溅到你的\", \"涂抹到你的\", \"落在了你的\", \"溅到了你的\")>><<set $_part_text to $_part_text.replace(\"neck\",\"脖子上\").replace(\"right arm\",\"右臂上\").replace(\"left arm\",\"左臂上\").replace(\"thigh\",\"大腿上\").replace(\"bottom\",\"屁股上\").replace(\"tummy\",\"小腹上\").replace(\"chest\",\"胸部上\").replace(\"face\",\"脸上\").replace(\"hair\",\"头发上\").replace(\"feet\",\"脚上\")>>\n" +
    "\t<span class=\"purple\">$_part_text。</span>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"random_semen_head\">>\n" +
    "\t<<set $_rng to random (0, 3)>> <!-- 1-10 but 0 indexed -->\n" +
    "\t<<set $_part_text to [\n" +
    "\t\t\"neck\", \"chest\", \"face\", \"hair\"\n" +
    "\t\t].select($_rng)>>\n" +
    "\t<<set $_part to $_part_text.replace(\" \",\"\")>>\n" +
    "\t<<set $player.bodyliquid[$_part].semen += 1>>\n" +
    "\n" +
    "\t<<print either(\"飞溅到你的\", \"涂抹到你的\", \"落在了你的\", \"溅到了你的\")>><<set $_part_text to $_part_text.replace(\"neck\",\"脖子上\").replace(\"right arm\",\"右臂上\").replace(\"left arm\",\"左臂上\").replace(\"thigh\",\"大腿上\").replace(\"bottom\",\"屁股上\").replace(\"tummy\",\"小腹上\").replace(\"chest\",\"胸部上\").replace(\"face\",\"脸上\").replace(\"hair\",\"头发上\").replace(\"feet\",\"脚上\")>>\n" +
    "\t<span class=\"purple\">$_part_text。</span>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"washmakeup\">>\n" +
    "\t<<if $makeup.lipstick != 0 or $makeup.eyeshadow != 0 or ($makeup.mascara != 0 and !$makeup.mascara.includes('waterproof')) or $makeup.concealer != 0>>\n" +
    "\t\t<<set $makeupWashed = 1>>\n" +
    "\t\t<<set $makeup.lipstick = 0>>\n" +
    "\t\t<<set $makeup.eyeshadow = 0>>\n" +
    "\t\t<<if $makeup.mascara and !$makeup.mascara.includes('waterproof')>>\n" +
    "\t\t\t<<set $makeup.mascara = 0>>\n" +
    "\t\t\t<<set $makeup.mascara_running = 0>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $makeup.concealer = 0>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"waterwash\">>\n" +
    "\t<<if $combat isnot 1>>\n" +
    "\t\t<<for _bodypart range setup.bodyliquid.bodyparts>>\n" +
    "\t\t\t<<if $player.bodyliquid[_bodypart][\"goo\"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<bodyliquid _bodypart \"goo\" -1>><</if>>\n" +
    "\t\t\t<<if $player.bodyliquid[_bodypart][\"semen\"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<bodyliquid _bodypart \"semen\" -1>><</if>>\n" +
    "\t\t\t<<if $player.bodyliquid[_bodypart][\"nectar\"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<bodyliquid _bodypart \"nectar\" -1>><</if>>\n" +
    "\t\t<</for>>\n" +
    "\t\t<<washRecordedSperm \"vagina\" \"pc\">>\n" +
    "\t\t<<washRecordedSperm \"anus\" \"pc\">>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $waterwash gte 10>>\n" +
    "\t\t<span class=\"lewd\">大量淫液被冲入水中。你希望这不会引起注意。</span><br>\n" +
    "\t<<elseif $waterwash gte 5>>\n" +
    "\t\t<span class=\"lewd\">很多淫液被冲入水中。你希望这不会引起注意。</span><br>\n" +
    "\t<<elseif $waterwash gte 2>>\n" +
    "\t\t<span class=\"lewd\">淫液被冲入水中。你希望这不会引起注意。</span><br>\n" +
    "\t<<elseif $waterwash is 1>>\n" +
    "\t\t<span class=\"lewd\">一些淫液被冲入水中。你希望这不会引起注意。</span><br>\n" +
    "\t<</if>>\n" +
    "\t<<set $waterwash to 0>>\n" +
    "\n" +
    "\t<<washmakeup>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wash\">>\n" +
    "\t<<washRecordedSperm \"vagina\" \"pc\">>\n" +
    "\t<<washRecordedSperm \"anus\" \"pc\">>\n" +
    "\t<<bodyliquid \"clear\">>\n" +
    "\t<<if $parasite.right_thigh.name is \"maggot\">>\n" +
    "\t\t<<removeparasite right_thigh>>\n" +
    "\t<</if>>\n" +
    "\t<<if $parasite.left_thigh.name is \"maggot\">>\n" +
    "\t\t<<removeparasite left_thigh>>\n" +
    "\t<</if>>\n" +
    "\t<<if $parasite.right_arm.name is \"maggot\">>\n" +
    "\t\t<<removeparasite right_arm>>\n" +
    "\t<</if>>\n" +
    "\t<<if $parasite.left_arm.name is \"maggot\">>\n" +
    "\t\t<<removeparasite left_arm>>\n" +
    "\t<</if>>\n" +
    "\t<<if $parasite.tummy.name is \"maggot\">>\n" +
    "\t\t<<removeparasite tummy>>\n" +
    "\t<</if>>\n" +
    "\t<<if $parasite.bottom.name is \"maggot\">>\n" +
    "\t\t<<removeparasite bottom>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "<<for _active_bodypart range setup.bodyparts>>\n" +
    "\t<<if $skin[_active_bodypart].pen is \"pen\" or $skin[_active_bodypart].pen is \"lipstick\" or $skin[_active_bodypart].pen is \"mud\">>\n" +
    "\t\t<<bodywriting_clear _active_bodypart>>\n" +
    "\t<</if>>\n" +
    "<</for>>\n" +
    "<<washmakeup>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wash_face\">>\n" +
    "\t<<bodyliquid \"face\" \"semen\" -5>>\n" +
    "\t<<bodyliquid \"face\" \"goo\" -5>>\n" +
    "\t<<bodyliquid \"face\" \"nectar\" -5>>\n" +
    "\t<<if $skin.left_cheek.pen is \"pen\" or $skin.left_cheek.pen is \"lipstick\" or $skin.left_cheek.pen is \"mud\">>\n" +
    "\t\t<<bodywriting_clear left_cheek>>\n" +
    "\t<</if>>\n" +
    "\t<<if $skin.right_cheek.pen is \"pen\" or $skin.right_cheek.pen is \"lipstick\" or $skin.right_cheek.pen is \"mud\">>\n" +
    "\t\t<<bodywriting_clear right_cheek>>\n" +
    "\t<</if>>\n" +
    "\t<<if $skin.forehead.pen is \"pen\" or $skin.forehead.pen is \"lipstick\" or $skin.forehead.pen is \"mud\">>\n" +
    "\t\t<<bodywriting_clear forehead>>\n" +
    "\t<</if>>\n" +
    "\t<<washmakeup>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wash_mouth\">>\n" +
    "\t<<bodyliquid \"mouth\" \"semen\" -5>>\n" +
    "\t<<bodyliquid \"mouth\" \"goo\" -5>>\n" +
    "\t<<bodyliquid \"mouth\" \"nectar\" -5>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tipset\">>\n" +
    "\t<<set $tip to random(1000, 3000)>>\n" +
    "\t<<if $tip lte 2000>>\n" +
    "\t\t<<set $tipreaction to \"low\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $tipreaction to \"mid\">>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if _args[0] is \"serving\">>\n" +
    "\t\t<!-- +20% for every visible clothing item with 'serving' tag -->\n" +
    "\t\t<<set $_servingClothesCount to getVisibleClothesList().countWith(item => item.type.includes(\"serving\"))>>\n" +
    "\t\t<<set $tip += $tip * 0.2 * $_servingClothesCount>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<set $tip to $tipmod * $tip>>\n" +
    "\t<<set $tip *= (1 + ($attractiveness / 10000))>>\n" +
    "\t<<if $mathstrait gte 1>>\n" +
    "\t\t<<set $tip *= (1 + ($mathstrait / 4))>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<set $tip to Math.trunc($tip)>>\n" +
    "\t<<if $tip lt $tip_add>>\n" +
    "\t\t<<set $tip to $tip_add>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $tip gte 10000 and _args[0] isnot \"body\">>\n" +
    "\t\t<<set $tip to 2000 * Math.round( $tip / 2000.0 )>>\n" +
    "\t<<elseif $tip gte 1000>>\n" +
    "\t\t<<set $tip to 500 * Math.round( $tip / 500.0 )>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $tip to 50 * Math.round( $tip / 50.0 )>>\n" +
    "\t<</if>>\n" +
    "\t<<set $tip to Math.max( $tip, 50 )>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tipreceive\">>\n" +
    "\t<span class=\"gold\"><<if random(1, 10000) is 10000>>你得到了一笔小费<<else>>你赚到了<</if>><<printmoney $tip>>。</span>\n" +
    "\t<<set $money += $tip>>\n" +
    "\t<<if $tip gte 50000>>\n" +
    "\t\t<<earnFeat \"Negotiator\">>\n" +
    "\t<</if>>\n" +
    "\t<<set $tip to 0>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tip_neg\">>\n" +
    "\t经过协商,报酬被定为<<printmoney $tip>>,\n" +
    "\t<<if $tipreaction is \"low\">>\n" +
    "\t\t这低于你的期望。\n" +
    "\t<<else>>\n" +
    "\t\t听起来十分公道。\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tip_up\">>\n" +
    "\t<<He>>加价至<<printmoney $tip>>。\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"passout\">>\n" +
    "\t<<set $stress -= 5000>>\n" +
    "\t<<set $passoutstat += 1>>\n" +
    "\t<<ruffleHair>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"vaginaraped\">>\n" +
    "\t<<if $NPCList[$vaginatarget] isnot undefined>>\n" +
    "\t\t<<if $templePromised isnot $NPCList[$vaginatarget].fullDescription>>\n" +
    "\t\t\t<<fallenTransform>> /*transformations.twee*/\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<fallenTransform>>\n" +
    "\t<</if>>\n" +
    "\t<<set $vaginafucked to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"penisraped\">>\n" +
    "\t<<if $NPCList[$penistarget] isnot undefined>>\n" +
    "\t\t<<if $templePromised isnot $NPCList[$penistarget].fullDescription>>\n" +
    "\t\t\t<<fallenTransform>> /*transformations.twee*/\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<fallenTransform>>\n" +
    "\t<</if>>\n" +
    "\t<<set $penisfucked to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"anusraped\">>\n" +
    "\t<<set $anusfucked to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"internalejac\">>\n" +
    "\t<<if $demon gte 6>>\n" +
    "\t\t<<set $demonabsorb += 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"sexcheck\">>/*Sets variable to 1 if the PC is penetrated, penetrating, or similar.*/\n" +
    "\t<<if $vaginastate is \"penetrated\" or\n" +
    "\t$anusstate is \"penetrated\" or\n" +
    "\t$mouthstate is \"penetrated\" or\n" +
    "\t$penisstate is \"otheranus\" or\n" +
    "\t$penisstate is \"penetrated\" or\n" +
    "\t$anusstate is \"othermouth\" or\n" +
    "\t$vaginastate is \"othermouth\" or\n" +
    "\t$penisstate is \"othermouth\" or\n" +
    "\t$penisstate is \"tentacle\" or\n" +
    "\t$penisstate is \"tentacledeep\" or\n" +
    "\t$vaginastate is \"tentacle\" or\n" +
    "\t$vaginastate is \"tentacledeep\" or\n" +
    "\t$anusstate is \"tentacle\" or\n" +
    "\t$anusstate is \"tentacledeep\" or\n" +
    "\t$mouthstate is \"tentacle\" or\n" +
    "\t$mouthstate is \"tentacledeep\">>\n" +
    "\t\t<<set $current_sex to 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $current_sex to 0>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"textmap\">>\n" +
    "\t<<if $options.mapMovement is true and !$possessed>>\n" +
    "\t__Map__<br>\n" +
    "\t\t|.....<a class=\"no-numberify mapmove\" onclick=\"mapMove('Barb Street')\" title=\"Barb Street\">倒</a> ⚊ <a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Cliff Street')\" title=\"Cliff Street\">峭</a> ⚊ <a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Starfish Street')\" title=\"Starfish Street\">海</a> ⚊ <a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Mer Street')\" title=\"Mer Street\">梅</a><br>\n" +
    "\t\t|..╱ ╲ ╱ ╲ ╱ ╲ ╱ ╲<br>\n" +
    "\t\t|<a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Domus Street')\" title=\"Domus Street\">宅</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Residential alleyways')\" title=\"ResidentialAlley\">&#9866;</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Connudatus Street')\" title=\"Connudatus Street\">康</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Commercial alleyways')\" title=\"CommercialAlley\">&#9866; </a><a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('High Street')\" title=\"High Street\">商</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Park')\" title=\"Park\">&#9866;</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Oxford Street')\" title=\"Oxford Street\">牛</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Industrial alleyways')\" title=\"IndustrialAlley\">&#9866;</a> <a class=\"no&#9866;numberify mapmove\" onclick=\"mapMove('Harvest Street')\" title=\"Harvest Street\">丰</a><br>\n" +
    "\t\t|..╲ ╱ ╲ ╱ ╲ ╱ ╲ ╱<br>\n" +
    "\t\t|.....<a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Danube Street')\" title=\"Danube Street\">多</a> ⚊ <a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Wolf Street')\" title=\"Wolf Street\">狼</a> ⚊ <a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Nightingale Street')\" title=\"Nightingale Street\">南</a> ⚊ <a class=\"no⚊numberify mapmove\" onclick=\"mapMove('Elk Street')\" title=\"Elk Street\">麋</a><br>\n" +
    "\t<<else>>\n" +
    "\t\t__Map__<br>\n" +
    "\t\t|.....倒 ⚊ 峭 ⚊ 海 ⚊ 梅<br>\n" +
    "\t\t|..╱ ╲ ╱ ╲ ╱ ╲ ╱ ╲<br>\n" +
    "\t\t|宅 &#9866; 康 &#9866; 商 &#9866; 牛 &#9866; 丰<br>\n" +
    "\t\t|..╲ ╱ ╲ ╱ ╲ ╱ ╲ ╱<br>\n" +
    "\t\t|.....多 ⚊ 狼 ⚊ 南 ⚊ 麋<br>\n" +
    "\t<</if>>\n" +
    "\t<br>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"map\">>\n" +
    "\t<<set $map.location to _args[0]>>\n" +
    "\t<<if $options.images is 1 and $options.mapMovement is true and $options.mapLegacy isnot true and !$possessed>>\n" +
    "\t\t<<set _boxLocations to [\n" +
    "\t\t\t{ x: 1,\t\ty: 46}, /*Domus\t\t\t\t*/\n" +
    "\t\t\t{ x: 38,\ty: 9},\t/*Barb\t\t\t\t*/\n" +
    "\t\t\t{ x: 38,\ty: 83},\t/*Danube\t\t\t*/\n" +
    "\t\t\t{ x: 63,\ty: 46},\t/*Connudatus\t\t*/\n" +
    "\t\t\t{ x: 88,\ty: 9},\t/*Cliff\t\t\t\t*/\n" +
    "\t\t\t{ x: 88,\ty: 83},\t/*Wolf\t\t\t\t*/\n" +
    "\t\t\t{ x: 114,\ty: 46},\t/*High\t\t\t\t*/\n" +
    "\t\t\t{ x: 146,\ty: 9},\t/*Starfish\t\t\t*/\n" +
    "\t\t\t{ x: 146,\ty: 83},\t/*Nightingale\t\t*/\n" +
    "\t\t\t{ x: 176,\ty: 46},\t/*Oxford\t\t\t*/\n" +
    "\t\t\t{ x: 204,\ty: 9},\t/*Mer\t\t\t\t*/\n" +
    "\t\t\t{ x: 204,\ty: 83},\t/*Elk\t\t\t\t*/\n" +
    "\t\t\t{ x: 230,\ty: 46},\t/*Harvest\t\t\t*/\n" +
    "\t\t\t{ x: 38,\ty: 46},\t/*Residential Alley\t*/\n" +
    "\t\t\t{ x: 88,\ty: 46},\t/*Commercial Alley\t*/\n" +
    "\t\t\t{ x: 146,\ty: 46},\t/*Park\t\t\t\t*/\n" +
    "\t\t\t{ x: 204,\ty: 46}\t/*Industrial Alley\t*/\n" +
    "\t\t]>>\n" +
    "\n" +
    "\t\t/*This version of sugarcube doesn't perform any processing inside of SVG elements, so we need to perform those actions ourselves inside a custom macro */\n" +
    "\t\t<<svg 260 130>>\n" +
    "\t\t\t<image x=\"2\" xlink:href=\"img/misc/map.png\"> </image>\n" +
    "\t\t\t<image x=\"2\" @xlink:href=\"'img/misc/maparrow' + $map.location + '.png'\"> </image>\n" +
    "\n" +
    "\t\t\t<<for _i to 0; _i lt $map.arrayList.length; _i++>>\n" +
    "\t\t\t\t<<set _canMoveTo = $debug || $map.available[$passage].includes($map.arrayList[_i])>>\n" +
    "\t\t\t\t<<set _showMarker = $debug || ($options.mapMarkers && (_canMoveTo || $passage is $map.arrayList[_i]))>>\n" +
    "\n" +
    "\t\t\t\t<a class=\"mapmove\"\n" +
    "\t\t\t\t\t\t@onclick=\"'mapMove(V.map.arrayList[' + _i + ']);'\"\n" +
    "\t\t\t\t\t\t@alt=\"$map.arrayList[_i] + (_canMoveTo ? ' (0:05)' : '')\"\n" +
    "\t\t\t\t\t\t@title=\"$map.arrayList[_i] + (_canMoveTo ? ' (0:05)' : '')\">\n" +
    "\n" +
    "\t\t\t\t\t<rect @x=\"_boxLocations[_i].x\"\n" +
    "\t\t\t\t\t\t\t@y=\"_boxLocations[_i].y\"\n" +
    "\t\t\t\t\t\t\theight=\"34\"\n" +
    "\t\t\t\t\t\t\twidth=\"30\"\n" +
    "\t\t\t\t\t\t\t@style=\"'stroke:cyan;fill-opacity:0;stroke-opacity:' + (_showMarker ? '0.6' : '0') + ';'\">\n" +
    "\t\t\t\t\t</rect>\n" +
    "\t\t\t\t</a>\n" +
    "\t\t\t<</for>>\n" +
    "\t\t<</svg>>\n" +
    "\n" +
    "\t<<elseif $options.images is 1 and $options.mapLegacy isnot true>>\n" +
    "\t\t<svg width=\"260\" height=\"130\">\n" +
    "\t\t\t<image x=\"2\" xlink:href=\"img/misc/map.png\"/>\n" +
    "\t\t\t<image x=\"2\" @xlink:href=\"'img/misc/maparrow'+$map.location+'.png'\"/>\n" +
    "\t\t</svg>\n" +
    "\t<<elseif $options.images is 1>>\n" +
    "\t\t<<if $options.mapMovement is true and !$possessed>>\n" +
    "\t\t\t<!-- Image Map Generated by http://www.image-map.net/ -->\n" +
    "\t\t\t<map id=\"town-image-map\" name=\"town-image-map\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"倒钩街\" title=\"倒钩街\" coords=\"62,20,39,42\" shape=\"rect\" onclick=\"mapMove('Barb Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"宅邸街\" title=\"宅邸街\" coords=\"2,75,26,49\" shape=\"rect\" onclick=\"mapMove('Domus Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"多瑙河街\" title=\"多瑙河街\" coords=\"33,110,70,84\" shape=\"rect\" onclick=\"mapMove('Danube Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"狼街\" title=\"狼街\" coords=\"86,117,114,86\" shape=\"rect\" onclick=\"mapMove('Wolf Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"商业街\" title=\"商业街\" coords=\"116,77,139,46\" shape=\"rect\" onclick=\"mapMove('High Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"康努达塔斯街\" title=\"康努达塔斯街\" coords=\"64,77,88,49\" shape=\"rect\" onclick=\"mapMove('Connudatus Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"峭壁街\" title=\"峭壁街\" coords=\"88,40,117,-1\" shape=\"rect\" onclick=\"mapMove('Cliff Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"海星街\" title=\"海星街\" coords=\"147,41,172,12\" shape=\"rect\" onclick=\"mapMove('Starfish Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"南丁格尔街\" title=\"南丁格尔街\" coords=\"143,115,170,82\" shape=\"rect\" onclick=\"mapMove('Nightingale Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"牛津街\" title=\"牛津街\" coords=\"170,73,203,45\" shape=\"rect\" onclick=\"mapMove('Oxford Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"梅尔街\" title=\"梅尔街\" coords=\"202,42,229,14\" shape=\"rect\" onclick=\"mapMove('Mer Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"麋鹿街\" title=\"麋鹿街 coords=\"197,111,238,77\" shape=\"rect\" onclick=\"mapMove('Elk Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"丰收街\" title=\"丰收街\" coords=\"252,46,228,76\" shape=\"rect\" onclick=\"mapMove('Harvest Street')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"工业区小巷\" title=\"工业区小巷\" coords=\"225,73,209,53\" shape=\"rect\" onclick=\"mapMove('Industrial alleyways')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"公园\" title=\"公园\" coords=\"154,65,170,52\" shape=\"rect\" onclick=\"mapMove('Park')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"商业街小巷\" title=\"商业街小巷\" coords=\"94,69,110,56\" shape=\"rect\" onclick=\"mapMove('Commercial alleyways')\">\n" +
    "\t\t\t\t<area class=\"no-numberify\" alt=\"住宅小巷\" title=\"住宅小巷\" coords=\"38,70,57,56\" shape=\"rect\" onclick=\"mapMove('Residential alleyways')\">\n" +
    "\t\t\t</map>\n" +
    "\t\t<</if>>\n" +
    "\t\t<div id=\"divmap\"><img id=\"map\" src=\"img/misc/map.png\"><img id=\"maparrow\" usemap=\"#town-image-map\" @src=\"'img/misc/maparrow' + _args[0] + '.png'\"></div>\n" +
    "\t<<else>>\n" +
    "\t\t<<textmap>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"rentday\">>\n" +
    "\t<<set $_text_output to [\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"][$rentday-1]>>\n" +
    "\t<<print $_text_output>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"tearup\">>\n" +
    "\t<<if $pain lte 20>>\n" +
    "\t\t<<set $pain to 20>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"roomoptions\">>\n" +
    "\t<<if $sexStats.pills.boughtOnce is true or $sexStats.pills[\"pills\"][\"Dr Harper\\'s prescription\"].owned gte 1 or $sexStats.pills[\"pills\"][\"asylum\\'s prescription\"].owned gte 1>>\n" +
    "\t\t<<icon \"pill collection.png\">><<link [[检查你的药物|PillCollection]]>><<set $pillsExitPassage to $passage>><<endevent>><</link>>\n" +
    "\t\t<br>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"christmas_options\">>\n" +
    "\t<<if $christmas_wrap is 1>>\n" +
    "\t\t<<switch $christmas_gift_robin>>\n" +
    "\t\t\t<<case \"shirt_unwrapped\">>\n" +
    "\t\t\t\t<<gifticon \"shirt\">><<link [[包好罗宾的衬衫和短裤 (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to \"shirt\">><<set $christmas_gift_robin_wrapped to 1>><</link>>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case \"sundress_unwrapped\">>\n" +
    "\t\t\t\t<<gifticon \"sundress\">><<link [[包好罗宾的连衣裙 (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to \"sundress\">><<set $christmas_gift_robin_wrapped to 1>><</link>>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case \"kimono_unwrapped\">>\n" +
    "\t\t\t\t<<gifticon \"kimono\">><<link [[包好罗宾的和服 (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to \"kimono\">><<set $christmas_gift_robin_wrapped to 1>><</link>>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case \"tuxedo_set_unwrapped\">>\n" +
    "\t\t\t\t<<gifticon \"tuxedo\">><<link [[包好罗宾的燕尾服 (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to \"tuxedo\">><<set $christmas_gift_robin_wrapped to 1>><</link>>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case \"gothic_gown_unwrapped\">>\n" +
    "\t\t\t\t<<gifticon \"gothic\">><<link [[包好罗宾的哥特长裙 (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to \"gothic gown\">><<set $christmas_gift_robin_wrapped to 1>><</link>>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t<<case \"christmas_unwrapped\">>\n" +
    "\t\t\t\t<<gifticon \"christmas hat\">><<link [[包好罗宾的圣诞套装 (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to \"christmas\">><<set $christmas_gift_robin_wrapped to 1>><</link>>\n" +
    "\t\t\t\t<br>\n" +
    "\t\t<</switch>>\n" +
    "\t\t<<if $christmas_gift is \"clothes_unwrapped\">>\n" +
    "\t\t\t<<gifticon \"christmas\">><<link [[包好孤儿们的礼物 (3:00)|Bedroom Orphans Clothes Wrap]]>><<pass 180>><<set $christmas_gift to \"clothes\">><</link>>\n" +
    "\t\t\t<br>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $christmas is 1 and !$christmas_wraith>>\n" +
    "\t\t<<rngWraith 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "\n" +
    "<<widget \"encountersteal\">>\n" +
    "\t<<rng>>\n" +
    "\t<<if isPubfameTaskAccepted(\"morgan\") and $npc.includes(\"Morgan\")>>\n" +
    "\t\t<<pubfameComplete \"morgan\" \"steal\">>\n" +
    "\t\t<<combatskulduggeryskilluse>><<combatcontrol 10>><<gcombatcontrol>>\n" +
    "\t<<elseif isPubfameTaskAccepted(\"hospital\") and $pubfame.hospital.active is 1>>\n" +
    "\t\t<<pubfameComplete \"hospital\" \"steal\">>\n" +
    "\t\t<<crimeUp 20 \"petty\">><<combatskulduggeryskilluse>><<combatcontrol 10>><<gcombatcontrol>>\n" +
    "\t<<elseif $location is \"prison\">>\n" +
    "\t\t<<set _teeth to random(3,10)>>\n" +
    "\t\t你抓走了一把白色半透明的宝石。\n" +
    "\t\t<<prison_teeth _teeth>> <<prison_teeth_text _teeth>>\n" +
    "\t<<elseif $rng gte 96 and $spray lt $spraymax>>\n" +
    "\t\t<<spray 1>>\n" +
    "\t\t<span class=\"green\">你补充了一份防狼喷雾。</span>\n" +
    "\t\t<<crimeUp 50 \"petty\">><<combatskulduggeryskilluse>><<combatcontrol 10>><<gcombatcontrol>>\n" +
    "\t<<elseif $rng gte 90 and !$compoundcard>>\n" +
    "\t\t<<set $compoundcard to 1>>\n" +
    "\t\t你偷到了一张奇怪的卡片。上面有一行小字,讲的是<span class=\"gold\">麋鹿街</span>上的一处位置。\n" +
    "\t<<else>>\n" +
    "\t\t<<rng 5 100>>\n" +
    "\t\t你偷到了<<moneyGain $rng>>。\n" +
    "\t\t<<crimeUp $rng \"petty\">><<combatskulduggeryskilluse>><<combatcontrol 10>><<gcombatcontrol>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"statbaricons\">>\n" +
    "\t<<if $options.images is 1 and _args[0]>>\n" +
    "\t\t<<if _args[1] gte 1>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 1>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 2>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 2>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 3>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 3>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 4>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 4>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 5>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 5>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 6>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 6>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 7>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 7>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 8>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 8>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 9>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 9>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args[1] gte 10>>\n" +
    "\t\t\t<img id=\"statbar\" @src=\"'img/ui/' + _args[0] + '.png'\">\n" +
    "\t\t<<elseif _args[2] gte 10>>\n" +
    "\t\t\t<img id=\"statbar\" src=\"img/ui/point.png\">\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"characteristic-text\">>\n" +
    "\t<<set _config = _args[0]>>\n" +
    "\n" +
    "\t<<if _config.states and _config.states.length gt 0>>\n" +
    "\n" +
    "\t\t<<set _config.currentLevel = 0>>\n" +
    "\t\t/* Loop through the provided states to find the one we are currently at*/\n" +
    "\t\t<<for _i to 0; _i lt _config.states.length; _i++>>\n" +
    "\t\t\t<<if _config.currentValue gte _config.states[_i].requiredValue>>\n" +
    "\t\t\t\t<<set _config.currentLevel = _i>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</for>>\n" +
    "\n" +
    "\t\t/* Set the details to show from the current state */\n" +
    "\t\t<<set _config.preText = _config.states[_config.currentLevel].preText || _config.preText>>\n" +
    "\t\t<<set _config.description = _config.states[_config.currentLevel].description>>\n" +
    "\t\t<<set _config.postText = _config.states[_config.currentLevel].postText || _config.postText>>\n" +
    "\t\t<<set _config.color = _config.states[_config.currentLevel].color>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if _config.preText>>\n" +
    "\t\t_config.preText\n" +
    "\t<</if>>\n" +
    "\t<span @class=\"_config.color\">_config.description</span>\n" +
    "\t<<if _config.postText>>\n" +
    "\t\t_config.postText\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"characteristic-box\">>\n" +
    "\t<<set _config = _args[0]>>\n" +
    "\t<<if _config.states and _config.states.length gt 0>>\n" +
    "\n" +
    "\t\t<<set _config.currentLevel = 0>>\n" +
    "\t\t/* Loop through the provided states to find the one we are currently at*/\n" +
    "\t\t<<for _i to 0; _i lt _config.states.length; _i++>>\n" +
    "\t\t\t<<if _config.currentValue gte _config.states[_i].requiredValue>>\n" +
    "\t\t\t\t<<set _config.currentLevel = _i>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</for>>\n" +
    "\n" +
    "\t\t/* Set the details to show from the current state */\n" +
    "\t\t<<set _config.level =\t\t_config.states[_config.currentLevel].level>>\n" +
    "\t\t<<set _config.description = _config.states[_config.currentLevel].description>>\n" +
    "\t\t<<set _config.color =\t\t_config.states[_config.currentLevel].color>>\n" +
    "\n" +
    "\t\t/* Determine the colour of the bottom bar based on a few types, default is to match the level colour */\n" +
    "\t\t<<if _config.meterColorType eq 'next'>>\n" +
    "\t\t\t<<if _config.currentLevel lt _config.states.length - 1>>\n" +
    "\t\t\t\t<<set _config.meterColor = _config.states[_config.currentLevel + 1].color>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _config.meterColor = _config.states[_config.currentLevel].color>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif _config.meterColorType eq 'prev'>>\n" +
    "\t\t\t<<if _config.currentLevel gt 0>>\n" +
    "\t\t\t\t<<set _config.meterColor = _config.states[_config.currentLevel - 1].color>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _config.meterColor = _config.states[_config.currentLevel].color>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif _config.meterColorType eq 'max'>>\n" +
    "\t\t\t<<if _config.currentLevel eq _config.states.length - 1>>\n" +
    "\t\t\t\t<<set _config.meterColor = _config.states[_config.currentLevel].color>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<if _config.meterColor eq undefined>>\n" +
    "\t\t\t\t<<set _config.meterColor = _config.states[_config.currentLevel].color>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t\t/* Calculate the percent to the next level based on the gap between the nearest two states */\n" +
    "\t\t<<if _config.percent isnot undefined>>\n" +
    "\t\t\t<<set _config.percent = Math.floor(_config.percent)>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<if _config.currentLevel eq (_config.states.length - 1)>>\n" +
    "\t\t\t\t/* Calculate percentage above highest state if max value is specified */\n" +
    "\t\t\t\t<<if _config.maxValue>>\n" +
    "\t\t\t\t\t<<set _config.percent = Math.floor(100*(_config.currentValue - _config.states[_config.currentLevel].requiredValue) / (_config.maxValue - _config.states[_config.currentLevel].requiredValue))>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<<set _config.percent = 100>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _config.percent = Math.floor(100*(_config.currentValue - _config.states[_config.currentLevel].requiredValue) / (_config.states[_config.currentLevel + 1].requiredValue - _config.states[_config.currentLevel].requiredValue))>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t<<else>>\n" +
    "\t\t<<set _config.percent= Math.floor(_config.currentValue)>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<set _config.barWidth = Math.clamp(_config.percent, 0, 100)>>\n" +
    "\n" +
    "\t<div class=\"characteristic-box\">\n" +
    "\t\t<div class=\"characteristic-top-line\">\n" +
    "\t\t\t<<if $options.images is 1 and _config.icon>>\n" +
    "\t\t\t\t<img class=\"characteristic-icon\" @src=\"'img/' + _config.icon + '.png'\" />\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<span class=\"characteristic-title\">_config.name<<characteristic-box-modifier `clone(_config.modifier)` `clone(_config.modTypes)` `clone(_config.name)`>></span>\n" +
    "\t\t\t<<if _config.states>>\n" +
    "\t\t\t\t<<if _config.displayType eq \"level\">>\n" +
    "\t\t\t\t\t<span @class=\"'characteristic-level ' + _config.color\">\n" +
    "\t\t\t\t\t\t<big>_config.level</big><small>/<<print (_config.states.length - 1)>></small>\n" +
    "\t\t\t\t\t</span>\n" +
    "\t\t\t\t<<elseif _config.displayType eq \"grade\">>\n" +
    "\t\t\t\t\t<span class=\"characteristic-level\">\n" +
    "\t\t\t\t\t\t<span @class=\"_config.color\">_config.level</span> <<if _config.level neq 'None'>><small class=\"grade-percent black\">_config.percent%</small><</if>>\n" +
    "\t\t\t\t\t</span>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t</div>\n" +
    "\t\t<<if _config.description>>\n" +
    "\t\t\t<span @class=\"'characteristic-description ' + _config.color\">_config.description</span>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _config.showStars>>\n" +
    "\t\t\t<span class=\"characteristic-description grade-progress\">每日进度</span>\n" +
    "\t\t\t<div class=\"progress-stars\">\n" +
    "\t\t\t\t<img class=\"icon\" @src=\"'img/ui/' + (_config.starLevel > 0 ? 'bronze_star'\t: 'empty_star') + '.png'\" />\n" +
    "\t\t\t\t<img class=\"icon\" @src=\"'img/ui/' + (_config.starLevel > 1 ? 'silver_star'\t: 'empty_star') + '.png'\" />\n" +
    "\t\t\t\t<img class=\"icon\" @src=\"'img/ui/' + (_config.starLevel > 2 ? 'gold_star'\t: 'empty_star') + '.png'\" />\n" +
    "\t\t\t</div>\n" +
    "\t\t<</if>>\n" +
    "\t\t<div class=\"meter\">\n" +
    "\t\t\t<div @class=\"(_config.meterColor ? _config.meterColor + 'bar' : 'goldbar')\" @style=\"'width:' + _config.barWidth + '%'\"></div>\n" +
    "\t\t</div>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"characteristic-box-modifier\">><<silently>>\n" +
    "\t<<if _args[0] isnot undefined or _args[0] isnot 100>>\n" +
    "\t\t<<set $_modifier to _args[0] - 100>>\n" +
    "\t\t<<if $_modifier gt 0>>\n" +
    "\t\t\t<<set $_result to \" <small class='green characteristic-modifier'>(+\"+$_modifier+\"%)</small>\">>\n" +
    "\t\t<<elseif $_modifier lt 0>>\n" +
    "\t\t\t<<set $_result to \" <small class='red characteristic-modifier'>(\"+$_modifier+\"%)</small>\">>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>>\n" +
    "\t<<if $_result>>\n" +
    "\t\t<<set $_good to _args[1].good>>\n" +
    "\t\t<<set $_bad to _args[1].bad>>\n" +
    "\t\t<<set $_stat to _args[2].toLowerCase()>>\n" +
    "\t\t<span @class=\"$_modifier gt 0 ? 'green' : 'red'\"><mouse class = \"tooltip-small\">\n" +
    "\t\t\t$_result\n" +
    "\t\t\t<<if $_good.length gt 0 and $_bad.length gt 0>>\n" +
    "\t\t\t\t<span class=\"green\">有助你$_stat技术的物品: <<print $_good>> <span class=\"red\">有碍你$_stat技术的物品: <<print $_bad>></span></span>\n" +
    "\t\t\t<<elseif $_good.length gt 0>>\n" +
    "\t\t\t\t<span class=\"green\">有助你$_stat技术的物品: <<print $_good>></span>\n" +
    "\t\t\t<<elseif $_bad.length gt 0>>\n" +
    "\t\t\t\t<span class=\"red\">有碍你$_stat技术的物品: <<print $_bad>></span>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t</mouse></span>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"relation-text\">>\n" +
    "\t<<set _config = _args[0]>>\n" +
    "\n" +
    "\t<<if _config.states and _config.states.length gt 0>>\n" +
    "\n" +
    "\t\t<<set _config.currentLevel = _config.states[0]>>\n" +
    "\t\t<<if _config.currentLevel.secondaryStates>>\n" +
    "\t\t\t<<set _config.currentLevel = _config.currentLevel.secondaryStates[0]>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t\t/* Loop through the provided states to find the one we are currently at*/\n" +
    "\t\t<<script>>\n" +
    "\t\t\tfor(let i = 0; i < T.config.states.length; i++) {\n" +
    "\n" +
    "\t\t\t\tif(T.config.currentValue >= T.config.states[i].requiredValue) {\n" +
    "\n" +
    "\t\t\t\t\tif(T.config.states[i].secondaryStates) {\n" +
    "\n" +
    "\t\t\t\t\t\tfor(let j = 0; j < T.config.states[i].secondaryStates.length; j++) {\n" +
    "\t\t\t\t\t\t\tif(T.config.secondaryValue >= T.config.states[i].secondaryStates[j].requiredValue) {\n" +
    "\t\t\t\t\t\t\t\tT.config.currentLevel = T.config.states[i].secondaryStates[j];\n" +
    "\t\t\t\t\t\t\t}\n" +
    "\t\t\t\t\t\t}\n" +
    "\n" +
    "\t\t\t\t\t} else {\n" +
    "\t\t\t\t\t\tT.config.currentLevel = T.config.states[i];\n" +
    "\t\t\t\t\t}\n" +
    "\t\t\t\t}\n" +
    "\t\t\t}\n" +
    "\n" +
    "\t\t<</script>>\n" +
    "\n" +
    "\t\t/* Set the details to show from the current state */\n" +
    "\t\t<<set _config.preText =\t\t_config.currentLevel.preText || _config.preText>>\n" +
    "\t\t<<set _config.description = _config.currentLevel.description>>\n" +
    "\t\t<<set _config.postText =\t_config.currentLevel.postText || _config.postText>>\n" +
    "\t\t<<set _config.color =\t\t_config.currentLevel.color>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\n" +
    "\t<<if _config.preText>>\n" +
    "\t\t_config.preText\n" +
    "\t<</if>>\n" +
    "\t<span @class=\"_config.color\">_config.description</span>\n" +
    "\t<<if _config.postText>>\n" +
    "\t\t_config.postText\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"relation-box-simple\">>\n" +
    "\t<<set _boxConfig = _args[0]>>\n" +
    "\t<div class=\"relation-box\" @style=\"(_boxConfig.style || '')\">\n" +
    "\t\t<<if _boxConfig.name>>\n" +
    "\t\t\t<div class=\"relation-top-line\">\n" +
    "\t\t\t\t<<if $options.images and _boxConfig.icon>>\n" +
    "\t\t\t\t\t\t<img class=\"relation-icon\" @src=\"_boxConfig.icon\" />\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<span class=\"relation-name\">_boxConfig.name</span>\n" +
    "\t\t\t</div>\n" +
    "\t\t<</if>>\n" +
    "\t\t<div class=\"relation-description\">\n" +
    "\t\t\t_boxConfig.description\n" +
    "\t\t</div>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"relation-box-wolves\">>\n" +
    "\t<<if $wolfpackfear gte 1 || $wolfpacktrust gte 1 || $syndromewolves gte 1 || $wolfpackleader gte 1>>\n" +
    "\t<div class=\"relation-box\" @style=\"(_boxConfig.style || '')\">\n" +
    "\t\t<div class=\"relation-top-line\">\n" +
    "\t\t\t<<if $options.images>>\n" +
    "\t\t\t\t\t<img class=\"relation-icon\" src=\"img/misc/icon/wolfpup.png\" />\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<span class=\"relation-name\">狼群</span>\n" +
    "\t\t</div>\n" +
    "\t\t<div class=\"relation-description\">\n" +
    "\t\t\t狼群\n" +
    "\t\t\t<<if $wolfpackleader gte 1>>把你视作<span class=\"green\">狼群首领。</span>\n" +
    "\t\t\t\t<<elseif $syndromewolves gte 1>>把你视作<span class=\"green\">它们的<<ppackbrother>>。</span>\n" +
    "\t\t\t\t<<elseif $wolfpacktrust gte 12>><span class=\"green\">信任你</span>\n" +
    "\t\t\t\t<<elseif $wolfpacktrust gte 6>><span class=\"teal\">开始接纳你。</span>\n" +
    "\t\t\t\t<<elseif $wolfpackfear gte 12>><span class=\"red\">恐惧你。</span>\n" +
    "\t\t\t\t<<elseif $wolfpackfear gte 6>><span class=\"purple\">开始恐惧你。</span>\n" +
    "\t\t\t\t<<else>><span class=\"pink\">把你视作猎物。</span>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t</div>\n" +
    "\t</div>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"relation-box\">>\n" +
    "\t<<silently>>\n" +
    "\t\t<<set _npcData = _args[0]>>\n" +
    "\t\t<<set _npcOverrides = _args[1] || {}>>\n" +
    "\n" +
    "\t\t<<script>>\n" +
    "\n" +
    "\t\t\t/* Returns true/false based on whether the requirements to display a stat are met, automatically true if no requirement specified */\n" +
    "\t\t\tT.checkRequirements = function (stat) {\n" +
    "\t\t\t\tlet statOverrides = T.npcOverrides[stat];\n" +
    "\n" +
    "\t\t\t\tif(statOverrides)\n" +
    "\t\t\t\t\treturn !statOverrides.hasOwnProperty(\"requirements\") || statOverrides.requirements;\n" +
    "\t\t\t\telse\n" +
    "\t\t\t\t\treturn true;\n" +
    "\t\t\t};\n" +
    "\n" +
    "\t\t\tT.importantNpcStats = [\"love\", \"lust\", \"dom\", \"trauma\", \"rage\", \"purity\", \"corruption\", \"harmony\", \"ferocity\"];\n" +
    "\t\t\tT.otherNpcStats = [\"love\", \"lust\"];\n" +
    "\n" +
    "\t\t\tlet statDefaults = {\n" +
    "\t\t\t\t\"love\" : {\n" +
    "\t\t\t\t\tname : \"爱意\",\n" +
    "\t\t\t\t\tvalue : T.npcData.love,\n" +
    "\t\t\t\t\tactiveIcon : 'img/ui/heart.png',\n" +
    "\t\t\t\t\tinactiveIcon: 'img/ui/emptyheart.png',\n" +
    "\t\t\t\t\tcolor: 'red'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"lust\" : {\n" +
    "\t\t\t\t\tname : \"性欲\",\n" +
    "\t\t\t\t\tvalue : T.npcData.lust,\n" +
    "\t\t\t\t\ticonOrientation : 'vertical',\n" +
    "\t\t\t\t\tactiveIcon : 'img/ui/vial.png',\n" +
    "\t\t\t\t\tinactiveIcon : 'img/ui/emptyvial.png',\n" +
    "\t\t\t\t\tcolor: 'pink'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"dom\" : {\n" +
    "\t\t\t\t\tname : \"支配度\",\n" +
    "\t\t\t\t\tvalue : T.npcData.dom,\n" +
    "\t\t\t\t\tactiveIcon : \"img/ui/collar.png\",\n" +
    "\t\t\t\t\tcolor: 'purple'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"trauma\" : {\n" +
    "\t\t\t\t\tname : \"创伤\",\n" +
    "\t\t\t\t\tvalue : T.npcData.trauma,\n" +
    "\t\t\t\t\tactiveIcon : \"img/ui/redbolt.png\",\n" +
    "\t\t\t\t\tcolor: 'teal'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"rage\" : {\n" +
    "\t\t\t\t\tname : \"愤怒\",\n" +
    "\t\t\t\t\tvalue : T.npcData.rage,\n" +
    "\t\t\t\t\tactiveIcon : \"img/ui/rage.png\",\n" +
    "\t\t\t\t\tcolor: 'gold'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"purity\" : {\n" +
    "\t\t\t\t\tname: \"纯洁\",\n" +
    "\t\t\t\t\tvalue: T.npcData.purity,\n" +
    "\t\t\t\t\tactiveIcon: (T.npcData.virginity.vaginal == false || T.npcData.virginity.penile == false ? \"img/ui/sym_fallen_purity.png\" : \"img/ui/sym_purity.png\"),\n" +
    "\t\t\t\t\tcolor: 'white'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"corruption\" : {\n" +
    "\t\t\t\t\tname: \"堕落\",\n" +
    "\t\t\t\t\tvalue: T.npcData.corruption,\n" +
    "\t\t\t\t\ticonOrientation : 'horizontal-inverted',\n" +
    "\t\t\t\t\tactiveIcon: \"img/ui/sym_demon_purity.png\",\n" +
    "\t\t\t\t\tcolor: 'purple'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"harmony\" : {\n" +
    "\t\t\t\t\tname: \"和谐\",\n" +
    "\t\t\t\t\tvalue: V.wolfpackharmony,\n" +
    "\t\t\t\t\ticonOrientation : 'vertical',\n" +
    "\t\t\t\t\tactiveIcon: \"img/ui/wolfharmony.png\",\n" +
    "\t\t\t\t\tcolor: 'purple'\n" +
    "\t\t\t\t},\n" +
    "\t\t\t\t\"ferocity\" : {\n" +
    "\t\t\t\t\tname: \"残暴\",\n" +
    "\t\t\t\t\tvalue: V.wolfpackferocity,\n" +
    "\t\t\t\t\ticonOrientation : 'vertical',\n" +
    "\t\t\t\t\tactiveIcon: \"img/ui/wolfferocity.png\",\n" +
    "\t\t\t\t\tcolor: 'purple'\n" +
    "\t\t\t\t}\n" +
    "\t\t\t};\n" +
    "\n" +
    "\t\t\tT.getStatConfig = function(stat) {\n" +
    "\t\t\t\tlet baseConfig = statDefaults[stat] || {};\n" +
    "\n" +
    "\t\t\t\treturn Object.assign({}, baseConfig, T.npcOverrides[stat]);\n" +
    "\t\t\t};\n" +
    "\t\t\tif(V.loveInterest){\n" +
    "\t\t\t\t/* Check if this is a main love interest */\n" +
    "\t\t\t\tif (V.loveInterest.primary == T.npcData.nam) {\n" +
    "\t\t\t\t\tT.loveInterest = true;\n" +
    "\t\t\t\t} else if (V.loveInterest.secondary == T.npcData.nam) {\n" +
    "\t\t\t\t\tT.loveInterest = true;\n" +
    "\t\t\t\t} else if (V.loveInterest.tertiary == T.npcData.nam) {\n" +
    "\t\t\t\t\tT.loveInterest = true;\n" +
    "\t\t\t\t} else {\n" +
    "\t\t\t\t\tT.loveInterest = false;\n" +
    "\t\t\t\t}\n" +
    "\t\t\t}\n" +
    "\t\t<</script>>\n" +
    "\t<</silently>>\n" +
    "\t<<if _npcData and _npcData.init is 1>>\n" +
    "\t\t<<if (_npcData.nam is (\"Ivory Wraith\") or ($wraith.mimic is _npcData.nam and $wraith.revealed))>>\n" +
    "\t\t\t<<rngWraithSocial>>\n" +
    "\t\t\t<<if _npcData.nam is (\"Ivory Wraith\") and ($wraith.mimic is \"\" and (_wraithEventSocial or $wraith.type)) and $wraithIntro>>\n" +
    "\t\t\t\t<div class=\"relation-box\">\n" +
    "\t\t\t\t\t<div class=\"relation-top-line\">\n" +
    "\t\t\t\t\t\t<span class=\"relation-name\">\n" +
    "\t\t\t\t\t\t\t<<print _npcData.nam.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t\t\t\t\t\t\t<small class=\"relation-title black\"><i>_wraithTitle</i></small>\n" +
    "\t\t\t\t\t\t</span>\n" +
    "\t\t\t\t\t\t<div class=\"quick-stats\">\n" +
    "\t\t\t\t\t\t\t<<for _j = 0; _j lt _otherNpcStats.length; _j++>>\n" +
    "\t\t\t\t\t\t\t\t<<if _npcData[_otherNpcStats[_j]] gt 0 and _checkRequirements(_otherNpcStats[_j])>>\n" +
    "\t\t\t\t\t\t\t\t\t<<relation-box-stat _getStatConfig(_otherNpcStats[_j])>>\n" +
    "\t\t\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t\t\t<</for>>\n" +
    "\t\t\t\t\t\t</div>\n" +
    "\t\t\t\t\t</div>\n" +
    "\t\t\t\t\t<div class=\"relation-description\">\n" +
    "\t\t\t\t\t\t<<if $options.images is 1 and (_rngWraithFace is 1 or $possessed)>>\n" +
    "\t\t\t\t\t\t\t<img id=\"wraith\" @src=\"'img/misc/icon/wraith' + V.wraith.state + '.png'\">\n" +
    "\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t<<npcrelationship _npcData.nam>>\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t</div>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t<<elseif $wraithIntro and $wraith.mimic is _npcData.nam and $wraith.revealed and _npcOverrides and _npcOverrides.important>>\n" +
    "\t\t\t\t<div class=\"relation-box\">\n" +
    "\t\t\t\t\t<div class=\"relation-top-line\">\n" +
    "\t\t\t\t\t\t<span class=\"relation-name\">\n" +
    "\t\t\t\t\t\t\t<<print _npcData.nam.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>?\n" +
    "\t\t\t\t\t\t\t<small class=\"relation-title black\"><i>_wraithTitle</i></small>\n" +
    "\t\t\t\t\t\t</span>\n" +
    "\t\t\t\t\t\t<<if _loveInterest>>\n" +
    "\t\t\t\t\t\t\t<img class=\"love-interest-icon\" src=\"img/ui/love_interest.png\" alt=\"Love Interest\" title=\"Love Interest\"/>\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t</div>\n" +
    "\t\t\t\t\t<div class=\"relation-description\">\n" +
    "\t\t\t\t\t\t<<set _rngWraithLineChance to 1>>\n" +
    "\t\t\t\t\t\t<<npcrelationship \"Ivory Wraith\">>\n" +
    "\t\t\t\t\t</div>\n" +
    "\t\t\t\t\t<div @class=\"'relation-stat-list' + ($options.images ? '' : ' no-images')\">\n" +
    "\t\t\t\t\t\t<<for _j = 0; _j lt _importantNpcStats.length-2; _j++>>\n" +
    "\t\t\t\t\t\t\t<<if _npcData[_importantNpcStats[_j]] gt 0 and _checkRequirements(_importantNpcStats[_j])>>\n" +
    "\t\t\t\t\t\t\t\t<<relation-box-stat _getStatConfig(_importantNpcStats[_j]) true>>\n" +
    "\t\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t\t<</for>>\n" +
    "\t\t\t\t\t</div>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t/* Do not display anything */\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif _npcOverrides and _npcOverrides.important>>\n" +
    "\t\t\t<div class=\"relation-box\">\n" +
    "\t\t\t\t<div class=\"relation-top-line\">\n" +
    "\t\t\t\t\t<span class=\"relation-name\">\n" +
    "\t\t\t\t\t\t<<print _npcData.nam.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t\t\t\t\t\t<small class=\"relation-title black\"><i><<print _npcData.title.replace(\"businessperson\", \"商人\").replace(\"businessman\", \"商人\").replace(\"businesswoman\", \"商人\").replace(\"caretaker\", \"监护人\").replace(\"brothel owner\", \"妓院老板\").replace(\"dance coach\", \"舞蹈教练\").replace(\"club owner\", \"俱乐部老板\").replace(\"English teacher\", \"语文老师\").replace(\"huntress\", \"猎人\").replace(\"hunter\", \"猎人\").replace(\"shopkeeper\", \"商店店主\").replace(\"doctor\", \"医生\").replace(\"pious\", \"敬虔者\").replace(\"nun\", \"修女\").replace(\"monk\", \"修士\").replace(\"loner\", \"不合群者\").replace(\"criminal\", \"罪犯\").replace(\"headteacher\", \"校长\").replace(\"headmaster\", \"校长\").replace(\"headmistress\", \"校长\").replace(\"swimming teacher\", \"游泳老师\").replace(\"sewer dweller\", \"下水道居民\").replace(\"maths teacher\", \"数学老师\").replace(\"orphan\", \"孤儿\").replace(\"cafe owner\", \"咖啡店主\").replace(\"science teacher\", \"科学老师\").replace(\"bully\", \"霸凌者\").replace(\"history teacher\", \"历史老师\").replace(\"alpha\", \"头狼\").replace(\"photographer\", \"摄影师\").replace(\"mayor\", \"市长\").replace(\"farmer\", \"农场主\").replace(\"farmhand\", \"农工\").replace(\"terror\", \"恐怖者\").replace(\"smuggler\", \"走私者\").replace(\"faithful\", \"虔信者\").replace(\"fallen\", \"堕落者\").replace(\"reflection\", \"映像\").replace(\"explorer\", \"探险家\").replace(\"delinquent\", \"违法者\").replace(\"pirate\",\"海盗\")>></i></small>\n" +
    "\t\t\t\t\t</span>\n" +
    "\t\t\t\t\t<<if _loveInterest>>\n" +
    "\t\t\t\t\t\t<img class=\"love-interest-icon\" src=\"img/ui/love_interest.png\" alt=\"Love Interest\" title=\"Love Interest\"/>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t\t<div class=\"relation-description\">\n" +
    "\t\t\t\t\t<<npcrelationship _npcData.nam>>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t\t<div @class=\"'relation-stat-list' + ($options.images ? '' : ' no-images')\">\n" +
    "\t\t\t\t\t<<if _importantNPCs[_k].nam is \"Black Wolf\">><<set _npcStats to _importantNpcStats.length>>\n" +
    "\t\t\t\t\t\t<<else>><<set _npcStats to _importantNpcStats.length-2>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<<for _j = 0; _j lt _npcStats; _j++>>\n" +
    "\t\t\t\t\t\t<<if _npcData[_importantNpcStats[_j]] gt 0 and _checkRequirements(_importantNpcStats[_j])>>\n" +
    "\t\t\t\t\t\t\t<<relation-box-stat _getStatConfig(_importantNpcStats[_j]) true>>\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<</for>>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t</div>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<div class=\"relation-box\">\n" +
    "\t\t\t\t<div class=\"relation-top-line\">\n" +
    "\t\t\t\t\t<span class=\"relation-name\">\n" +
    "\t\t\t\t\t\t<<print _npcData.nam.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t\t\t\t\t\t<small class=\"relation-title black\"><i><<print _npcData.title.replace(\"businessperson\", \"商人\").replace(\"businessman\", \"商人\").replace(\"businesswoman\", \"商人\").replace(\"caretaker\", \"监护人\").replace(\"brothel owner\", \"妓院老板\").replace(\"dance coach\", \"舞蹈教练\").replace(\"club owner\", \"俱乐部老板\").replace(\"English teacher\", \"语文老师\").replace(\"huntress\", \"猎人\").replace(\"hunter\", \"猎人\").replace(\"shopkeeper\", \"商店店主\").replace(\"doctor\", \"医生\").replace(\"pious\", \"敬虔者\").replace(\"nun\", \"修女\").replace(\"monk\", \"修士\").replace(\"loner\", \"不合群者\").replace(\"criminal\", \"罪犯\").replace(\"headteacher\", \"校长\").replace(\"headmaster\", \"校长\").replace(\"headmistress\", \"校长\").replace(\"swimming teacher\", \"游泳老师\").replace(\"sewer dweller\", \"下水道居民\").replace(\"maths teacher\", \"数学老师\").replace(\"orphan\", \"孤儿\").replace(\"cafe owner\", \"咖啡店主\").replace(\"science teacher\", \"科学老师\").replace(\"bully\", \"霸凌者\").replace(\"history teacher\", \"历史老师\").replace(\"alpha\", \"头狼\").replace(\"photographer\", \"摄影师\").replace(\"mayor\", \"市长\").replace(\"farmer\", \"农场主\").replace(\"farmhand\", \"农工\").replace(\"terror\", \"恐怖者\").replace(\"smuggler\", \"走私者\").replace(\"faithful\", \"虔信者\").replace(\"fallen\", \"堕落者\").replace(\"reflection\", \"映像\").replace(\"explorer\", \"探险家\").replace(\"delinquent\", \"违法者\").replace(\"pirate\",\"海盗\")>></i></small>\n" +
    "\t\t\t\t\t</span>\n" +
    "\t\t\t\t\t<div class=\"quick-stats\">\n" +
    "\t\t\t\t\t\t<<for _j = 0; _j lt _otherNpcStats.length; _j++>>\n" +
    "\t\t\t\t\t\t\t<<if _npcData[_otherNpcStats[_j]] gt 0 and _checkRequirements(_otherNpcStats[_j])>>\n" +
    "\t\t\t\t\t\t\t\t<<relation-box-stat _getStatConfig(_importantNpcStats[_j])>>\n" +
    "\t\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t\t<</for>>\n" +
    "\t\t\t\t\t</div>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t\t<div class=\"relation-description\">\n" +
    "\t\t\t\t\t<<npcrelationship _npcData.nam>>\n" +
    "\t\t\t\t</div>\n" +
    "\t\t\t</div>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"relation-box-stat\">>\n" +
    "\t<<silently>>\n" +
    "\t\t<<set _config = _args[0]>>\n" +
    "\t\t<<set _important = _args[1]>>\n" +
    "\n" +
    "\t\t<<set _config.progress = Math.floor(Math.clamp(100*((_config.value - (_config.minValue || 0)) / (_config.maxValue || 100)), 0, 100))>>\n" +
    "\t<</silently>>\n" +
    "\t<div class=\"relation-stat-block\" @style=\"'--progress: ' + _config.progress + '%;'\">\n" +
    "\t\t<<if _important>>\n" +
    "\t\t\t<label><<print _config.name.replace(\"Love\", \"爱意\").replace(\"Lust\", \"性欲\").replace(\"Dominance\", \"支配欲\").replace(\"Trauma\", \"创伤\").replace(\"Rage\", \"愤怒\").replace(\"Purity\", \"纯洁\").replace(\"Corruption\", \"堕落\").replace(\"Wolf Pack Harmony\", \"狼窝的和谐\").replace(\"Wolf Pack Ferocity\", \"狼窝的凶猛\").replace(\"Confidence\", \"自信\").replace(\"Jealousy\", \"嫉妒\")>></label>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $options.images>>\n" +
    "\t\t\t<div class=\"relation-stat\">\n" +
    "\t\t\t\t<span @class=\"'relation-stat-icon ' + (_config.iconOrientation || 'horizontal')\">\n" +
    "\t\t\t\t\t<img class=\"active-icon-img\" @src=\"_config.activeIcon\">\n" +
    "\t\t\t\t\t<<if _config.inactiveIcon>>\n" +
    "\t\t\t\t\t\t<img class=\"inactive-icon-img\" @src=\"_config.inactiveIcon\">\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t<img class=\"inactive-icon-img outlined\" @src=\"_config.activeIcon\">\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t</span>\n" +
    "\t\t\t\t<span class=\"relation-stat-percent black\">_config.progress<small>%</small></span>\n" +
    "\t\t\t</div>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<if _important>>\n" +
    "\t\t\t\t<span class=\"relation-stat-percent black\">&nbsp;_config.progress<small>%</small></span>\n" +
    "\t\t\t\t<div @class=\"'progress-bar ' + _config.color + 'bar'\"></div>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"connector-box\">>\n" +
    "\t<div @class=\"'connector-box ' + (_args[3] ? 'invert' : '')\" @style=\"'--connector-height: ' + _args[0] + 'px; --center-offset: ' + (_args[1] || 50) + '%; --end-offset: ' + (_args[2] || 0) + 'px;'\">\n" +
    "\t\t<div class=\"connector-box-top\"></div>\n" +
    "\t\t<div class=\"connector-box-bottom\"></div>\n" +
    "\t</div>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"oralpassage\">>\n" +
    "\t<<takeVirginity _args[0] \"oral\">><<oralstat>><<oralejacstat>><<ejacstat>><<cumswallow 'human'>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"relationshipclamp\">>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Robin\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].trauma = Math.clamp($NPCName[_i].trauma, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 100)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Whitney\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 30)>>\n" +
    "\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 20)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Eden\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 200)>>\n" +
    "\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 150)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Kylar\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].rage = Math.clamp($NPCName[_i].rage, 0, 100)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Avery\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].rage = Math.clamp($NPCName[_i].rage, 0, 100)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Great Hawk\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 100)>>\n" +
    "\t<<alexclamp>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Sydney\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 150)>>\n" +
    "\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].purity = Math.clamp($NPCName[_i].purity, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].corruption = Math.clamp($NPCName[_i].corruption, 0, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Black Wolf\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 150)>>\n" +
    "\t<<set $NPCName[_i].harmony = Math.clamp($wolfpackharmony || 0, 0, 100)>>\n" +
    "\t<<set $NPCName[_i].ferocity = Math.clamp($wolfpackferocity || 0, 0, 100)>>\n" +
    "\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Darryl\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"River\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Mason\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>>\n" +
    "\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, -50, 50)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Sam\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Wren\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Charlie\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Bailey\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Briar\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Doren\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Gwylan\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Harper\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Jordan\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Landry\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Leighton\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Morgan\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Winter\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Niki\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Quinn\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Remy\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Zephyr\")>>\n" +
    "\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>>\n" +
    "\t<<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>>\n" +
    "\n" +
    "\t<<set _i to $NPCNameList.indexOf(\"Ivory Wraith\")>>\n" +
    "\t<<if $wraith.state is \"haunt\">>\n" +
    "\t\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 10)>>\n" +
    "\t\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 10, 20)>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 20)>>\n" +
    "\t\t<<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 20)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"fringecheck\">>\n" +
    "\t<<if $fringetype is \"default\">>\n" +
    "\t\t<<set $fringetype to \"messy\">>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"haircheck\">>\n" +
    "\t<<if $hairtype is \"default\">>\n" +
    "\t\t<<set $hairtype to \"messy\">>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"fringedescription\">>\n" +
    "\t<<if $haircolour isnot $hairfringecolour>>\n" +
    "\t\t<<if $hairFringeColourStyle is \"gradient\">>\n" +
    "\t\t\t<<set _colour to \"双色\">>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<run Object.values(setup.colours.hair_map).forEach(colour => {if (V.hairfringecolour== colour.variable) V.hairfringecolourCN = colour.name_cap;})>><<set _colour to $hairfringecolourCN>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $_fringe to _colour + \"刘海\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $_fringe to \"刘海\">>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $fringelength gte 980>>\n" +
    "\t\t并且拥有非常长的<<print $_fringe>>。\n" +
    "\t<<elseif $fringelength gte 800>>\n" +
    "\t\t并且拥有很长的<<print $_fringe>>。\n" +
    "\t<<elseif $fringelength gte 600>>\n" +
    "\t\t并且拥有有些长的<<print $_fringe>>。\n" +
    "\t<<elseif $fringelength gte 400>>\n" +
    "\t\t并且拥有长度普通的<<print $_fringe>>。\n" +
    "\t<<elseif $fringelength gte 200>>\n" +
    "\t\t并且拥有有些短的<<print $_fringe>>。\n" +
    "\t<<else>>\n" +
    "\t\t并且拥有特别短的<<print $_fringe>>。\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"willpowerpain\">>\n" +
    "\t<<if $pain gte 100 and $willpowerpain is undefined and _willpowerpainchecked isnot true>>\n" +
    "\t\t<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>>\n" +
    "\t\t\t<span class=\"green\">压倒性的疼痛朝你袭来,但你撑了过去。</span>\n" +
    "\t\t\t<<gwillpower>><<willpower 1>>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<span class=\"red\">压倒性的疼痛夺去了你反抗的力气。</span>\n" +
    "\t\t\t<<if $position is \"stalk\">>\n" +
    "\t\t\t\t你膝盖一软,瘫了下去。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<ggwillpower>><<willpower 5>><<set $willpowerpain to 0>>\n" +
    "\t\t\t<br>\n" +
    "\t\t<</if>>\n" +
    "\t<<set _willpowerpainchecked to true>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"willpowerorgasm\">>\n" +
    "\t<<if $orgasmdown gte 1 and _willpowerorgasmchecked isnot true>>\n" +
    "\t\t<<if (currentSkillValue('willpower') / 10) gte (($orgasmdown * 30) + random(1, 80))>>\n" +
    "\t\t\t<span class=\"green\">高潮如同电流一般击穿了你战栗的身体,你强忍着不被快感所击溃。</span>\n" +
    "\t\t\t<<gwillpower>><<willpower 1>><<set $orgasmdown to 0>>\n" +
    "\t\t\t<br>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<span class=\"red\">高潮如同电流一般击穿了你痉挛的身体,你的大脑因快乐而一片空白。</span>\n" +
    "\t\t\t<<if $position is \"stalk\">>\n" +
    "\t\t\t\t你膝盖一软,瘫了下去。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<gwillpower>><<willpower 1>>\n" +
    "\t\t\t<br>\n" +
    "\t\t<</if>>\n" +
    "\t<<set _willpowerorgasmchecked to true>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"clothescolour\">><<silently>>\n" +
    "\t<<set _slot to _args[0]>>\n" +
    "\t<<if $worn[_slot].colour isnot 0 and $worn[_slot].colour isnot undefined>>\n" +
    "\t\t<<if $worn[_slot].colour.substring(0, 3) is \"wet\">>\n" +
    "\t\t\t<<set _text_output to $worn[_slot].colour.substring(3)>>\n" +
    "\t\t<<elseif $worn[_slot].colour_sidebar is 1>>\n" +
    "\t\t\t<<if $worn[_slot].colour == \"custom\">>\n" +
    "\t\t\t\t<<set _text_output to getCustomColourName($worn[_slot].colourCustom)>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set _text_output to $worn[_slot].colour>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</silently>><<print _text_output>><</widget>>\n" +
    "\n" +
    "<<widget \"nounderwearcheck\">>\n" +
    "\t/*Checks if the PC is pantiless, but otherwise decent. Results in low level exhibitionism increases.*/\n" +
    "\t<<if !$worn.lower.type.includes(\"naked\") and $worn.under_lower.type.includes(\"naked\") and $exposed lte 0 and $exhibitionism lt 19>>\n" +
    "\t\t<<set $no_underwear += 1>>\n" +
    "\t<</if>>\n" +
    "\t<<if $no_underwear gte 8>>\n" +
    "\t\t<<set $no_underwear to 0>>\n" +
    "\t\t<<set $effectsmessage to 1>>\n" +
    "\t\t<<set $exhibitionism_message to 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"breastfed\">>\n" +
    "\t<<set $milk_drank_stat += random(1, 5)>>\n" +
    "\t<<if random(1, 100) gte 70>>\n" +
    "\t\t<<if $NPCList[0].type and $NPCList[0].type is \"wolfgirl\">>\n" +
    "\t\t\t<<transform wolf 1>>\n" +
    "\t\t<<elseif $NPCList[0].type and $NPCList[0].type is \"foxgirl\">>\n" +
    "\t\t\t<<transform fox 1>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<transform cat 1>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $milkdranktrait is 1>><<physique 1>><</if>>\n" +
    "\t<<purity -1>>\n" +
    "\t<<set $hunger -= 200>><<set $thirst -= 200>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"nectarfed\">>\n" +
    "\t<<set _nectarGain to 0>>\n" +
    "\t<<set _nectarGain += (Math.ceil(_args[0] / 10) + random(0,2))>>\n" +
    "\t<<set $nectar_drank_stat += _nectarGain>>\n" +
    "\t<<set $nectar_addiction += _nectarGain>>\n" +
    "\t<<if _args[0] gte 11>>\n" +
    "\t\t<<purity -1>>\n" +
    "\t<</if>>\n" +
    "\t<<set $hunger -= (_args[0] * 5)>><<set $thirst -= (_args[0] * 5)>>\n" +
    "\t<<drugs _args[0]>><<set $arousal += _args[0]>>\n" +
    "\t<<if $ejaculating is 1>>\n" +
    "\t\t<<alcohol `(_args[0] * 3)`>>\n" +
    "\t\t<<bodyliquid \"mouth\" \"nectar\">>\n" +
    "\t<</if>>\n" +
    "\t<<if $backgroundTraits.includes(\"plantlover\")>>\n" +
    "\t\t<<if $nectar_timer lte 14>>\n" +
    "\t\t\t<span class=\"green\">你感到一股如释重负的解脱感。</span> <<stress -12>><<llstress>><<pain -4>><<lpain>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set _nectarStress to (-1 * _nectarGain)>>\n" +
    "\t\t\t<<physique 1 \"invig\">><<stress _nectarStress>><<lstress>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set $nectar_timer to 21>>\n" +
    "\t<</if>>\n" +
    "\t<<set $nectar_addiction = Math.clamp($nectar_addiction, 0, 200)>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"setup_pillory\">>\n" +
    "\t<<set $pillory_tenant to {person : clone($baseNPC), exists : 0, duration : 0, served : 0, startday: 0, starthour : 0, endday : 0, endhour : 0,\n" +
    "\t\t\t\t\t\t\t\tcrowd : 0, wet : 0, upperexposed : 0 , lowerexposed : 0, fruit : 0, fruitstock: 0, face : 0, ass : 0, genital : 0, broken : 0,\n" +
    "\t\t\t\t\t\t\t\tlastviewed : { day : 0, hour: 0}, special : {name : \"\", desc : \"\"}}>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"new_npc_pillory\">>\n" +
    "\t<<if not _args[0]>>\n" +
    "\t\t<<if $rng gte 20>><<generate1>><<else>><<generatec1>><</if>>\n" +
    "\t\t<<set _already_served to random(0,2)>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _already_served to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<set $pillory_tenant.exists to 1>>\n" +
    "\t<<set $pillory_tenant.person to clone($NPCList[0])>>\n" +
    "\t<<set $pillory_tenant.duration to random(4,27)>>\n" +
    "\t<<set $pillory_tenant.startday to Time.days>>\n" +
    "\t<<set $pillory_tenant.starthour to (Time.hour - _already_served)>>\n" +
    "\t<<set _endhour to ($pillory_tenant.starthour + $pillory_tenant.duration)>>\n" +
    "\t<<set $pillory_tenant.endday to Time.days>>\n" +
    "\t<<if _endhour gte 24>><<set $pillory_tenant.endday += 1>><<set _endhour -= 24>><</if>>\n" +
    "\t/*Repeat incase $duration is gte 24hrs and starting time gte 21. E.g. worst case: Time.hour = 23 and duration=27hrs, end time should be 0200 @ +2days.\n" +
    "\tSo 23 + 27 = 50; add 1 to end-day and minus 24hrs gives 26; add 1 to end-day and minus 24 gives hr 2.*/\n" +
    "\t<<if _endhour gte 24>><<set $pillory_tenant.endday += 1>><<set _endhour -= 24>><</if>>\n" +
    "\t<<set $pillory_tenant.endhour to _endhour>>\n" +
    "\t<<set $pillory_tenant.crowd to 1>>\n" +
    "\t<<set $pillory_tenant.wet to 0>>\n" +
    "\t<<set $pillory_tenant.upperexposed to 0>>\n" +
    "\t<<set $pillory_tenant.lowerexposed to 0>>\n" +
    "\t<<set $pillory_tenant.fruit to 0>>\n" +
    "\t<<set $pillory_tenant.fruitstock to 3>>\n" +
    "\t<<set $pillory_tenant.spank to 0>>\n" +
    "\t<<set $pillory_tenant.face to 0>>\n" +
    "\t<<set $pillory_tenant.ass to 0>>\n" +
    "\t<<set $pillory_tenant.genital to 0>>\n" +
    "\t<<set $pillory_tenant.broken to 0>>\n" +
    "\t<<set $pillory_tenant.lastviewed.day to Time.days>>\n" +
    "\t<<set $pillory_tenant.lastviewed.hour to Time.hour>>\n" +
    "\n" +
    "\t<<person1>>\n" +
    "\t<<if $pillory_tenant.special.name is \"\">>\n" +
    "\t\t一个<<person>><<if _already_served is 0>>正被锁在颈手枷上。<<else>>在不久前刚被锁到颈手枷上<</if>>\n" +
    "\t\t<<endevent>>\n" +
    "\t\t<<npc_pillory_release_schedule>>\n" +
    "\t\t<br><br>\n" +
    "\t<<else>>\n" +
    "\t\t流言称<<he>>将被锁到颈手枷上。\n" +
    "\t\t<br>\n" +
    "\t\t<<endevent>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"imprison_whitney\">>\n" +
    "\t<<clear_pillory>>\n" +
    "\t<<npc Whitney>>\n" +
    "\t<<set C.npc.Whitney.state to \"pillory\">>\n" +
    "\t<<set $pillory_tenant.special.name to \"Whitney\">>\n" +
    "\t<<set $pillory_tenant.special.desc to C.npc.Whitney.title>>\n" +
    "\t<<new_npc_pillory $NPCList[0]>>\n" +
    "\t<<endevent>>\n" +
    "\t<<set $framed to 0>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"imprison_leighton\">>\n" +
    "\t<<clear_pillory>>\n" +
    "\t<<npc Leighton>>\n" +
    "\t<<set $pillory_tenant.special.name to \"Leighton\">>\n" +
    "\t<<set $pillory_tenant.special.desc to C.npc.Leighton.title>>\n" +
    "\t<<new_npc_pillory $NPCList[0]>>\n" +
    "\t<<endevent>>\n" +
    "\t<<set $framed to 0>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"imprison_npc\">> /* number as argument to select npc 0-5. Only use at end of scene. */\n" +
    "\t<<clear_pillory>>\n" +
    "\t<<if not _args[0]>>\n" +
    "\t\t<<set _id to 0>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _id to _args[0]>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args[1]>>\n" +
    "\t\t<<set $pillory_tenant.special.desc to _args[1]>>\n" +
    "\t<</if>>\n" +
    "\t<<new_npc_pillory $NPCList[_id]>>\n" +
    "\t<<endevent>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"get_pillory_npc\">>\n" +
    "\t<<set $NPCList[0] to clone($pillory_tenant.person)>><<person1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"A_pillory_person\">>  /* Can't simplify to <<pillory_person>> because: 'a thin man', but not 'a Whitney') */\n" +
    "\t<<silently>><<set _out to \"\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<if $pillory_tenant.special.name is \"\">>\n" +
    "\t\t<<set _out += \"一个<<person>>\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _out += $pillory_tenant.special.name.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>><<print _out>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"The_pillory_person\">>\n" +
    "\t<<silently>><<set _out to \"\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<if $pillory_tenant.special.name is \"\">>\n" +
    "\t\t<<set _out += \"那<<person>>\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _out += $pillory_tenant.special.name.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>><<print _out>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"a_pillory_person\">>\n" +
    "\t<<silently>><<set _out to \"\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<if $pillory_tenant.special.name is \"\">>\n" +
    "\t\t<<set _out += \"一个<<person>>\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _out += $pillory_tenant.special.name.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>><<print _out>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"the_pillory_person\">>\n" +
    "\t<<silently>><<set _out to \"\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<if $pillory_tenant.special.name is \"\">>\n" +
    "\t\t<<set _out += \"那<<person>>\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _out += $pillory_tenant.special.name.replace(\"Avery\",\"艾弗里\").replace(\"Bailey\",\"贝利\").replace(\"Briar\",\"布莱尔\").replace(\"Charlie\",\"查里\").replace(\"Darryl\",\"达里尔\").replace(\"Doren\",\"多伦\").replace(\"Eden\",\"伊甸\").replace(\"Gwylan\",\"格威岚\").replace(\"Harper\",\"哈珀\").replace(\"Jordan\",\"约旦\").replace(\"Kylar\",\"凯拉尔\").replace(\"Landry\",\"兰德里\").replace(\"Leighton\",\"礼顿\").replace(\"Mason\",\"梅森\").replace(\"Morgan\",\"摩根\").replace(\"River\",\"瑞沃\").replace(\"Robin\",\"罗宾\").replace(\"Sam\",\"萨姆\").replace(\"Sirris\",\"西里斯\").replace(\"Whitney\",\"惠特尼\").replace(\"Winter\",\"温特\").replace(\"Niki\",\"尼奇\").replace(\"Quinn\",\"奎因\").replace(\"Remy\",\"雷米\").replace(\"Alex\",\"艾利克斯\").replace(\"Wren\",\"伦恩\").replace(\"Sydney\",\"悉尼\").replace(\"Taylor\",\"泰勒\").replace(\"Casey\",\"凯西\").replace(\"Ivory Wraith\",\"象牙幽灵\").replace(\"Black Wolf\",\"黑狼\").replace(\"Great Hawk\",\"巨鹰\").replace(\"Zephyr\",\"泽菲尔\")>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>><<print _out>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"pillory_type\">>\n" +
    "\t<<silently>><<set _out to \"\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<if $pillory_tenant.special.name is \"\">>\n" +
    "\t\t<<set _out += \"<<person>>\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _out += $pillory_tenant.special.desc.replace(\"businessperson\", \"商人\").replace(\"businessman\", \"商人\").replace(\"businesswoman\", \"商人\").replace(\"caretaker\", \"监护人\").replace(\"brothel owner\", \"妓院老板\").replace(\"dance coach\", \"舞蹈教练\").replace(\"club owner\", \"俱乐部老板\").replace(\"English teacher\", \"语文老师\").replace(\"huntress\", \"猎人\").replace(\"hunter\", \"猎人\").replace(\"shopkeeper\", \"商店店主\").replace(\"doctor\", \"医生\").replace(\"pious\", \"敬虔者\").replace(\"nun\", \"修女\").replace(\"monk\", \"修士\").replace(\"loner\", \"不合群者\").replace(\"criminal\", \"罪犯\").replace(\"headteacher\", \"校长\").replace(\"headmaster\", \"校长\").replace(\"headmistress\", \"校长\").replace(\"swimming teacher\", \"游泳老师\").replace(\"sewer dweller\", \"下水道居民\").replace(\"maths teacher\", \"数学老师\").replace(\"orphan\", \"孤儿\").replace(\"cafe owner\", \"咖啡店主\").replace(\"science teacher\", \"科学老师\").replace(\"bully\", \"霸凌者\").replace(\"history teacher\", \"历史老师\").replace(\"alpha\", \"头狼\").replace(\"photographer\", \"摄影师\").replace(\"mayor\", \"市长\").replace(\"farmer\", \"农场主\").replace(\"farmhand\", \"农工\").replace(\"terror\", \"恐怖者\").replace(\"smuggler\", \"走私者\").replace(\"faithful\", \"虔信者\").replace(\"fallen\", \"堕落者\").replace(\"reflection\", \"映像\").replace(\"explorer\", \"探险家\").replace(\"delinquent\", \"违法者\").replace(\"pirate\",\"海盗\")>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>><<print _out>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"npc_pillory\">>\n" +
    "\t<<A_pillory_person>>被锁在小镇的颈手枷上。\n" +
    "\t<<npc_pillory_release_schedule>>\n" +
    "\t<br><br>\n" +
    "\t<<endevent>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"npc_pillory_detail\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<A_pillory_person>>被锁在小镇的颈手枷上。\n" +
    "\t<<npc_pillory_appearance>>\n" +
    "\t<<npc_pillory_abuse>>\n" +
    "\t<<npc_pillory_release_schedule>>\n" +
    "\t<br><br>\n" +
    "\t<<endevent>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"npc_pillory_appearance\">>\n" +
    "\t<<update_npc_pillory_appearance>>\n" +
    "\t/*Desc*/\n" +
    "\t<<if Time.dayState is \"night\">>\n" +
    "\t\t<<if $pillory_tenant.crowd gte 10>>一大群醉醺醺的暴徒围了上来\n" +
    "\t\t<<elseif $pillory_tenant.crowd gte 6>>一大群喧闹的人群聚集在周围\n" +
    "\t\t<<elseif $pillory_tenant.crowd gte 4>>一群险恶的人围在一起\n" +
    "\t\t<<else>>一群人数不多但险恶的团体潜伏在周围\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<if $pillory_tenant.crowd gte 10>>一群兴奋、嘲笑的人群围了上来\n" +
    "\t\t<<elseif $pillory_tenant.crowd gte 6>>一大群人挤在周围\n" +
    "\t\t<<elseif $pillory_tenant.crowd gte 4>>一群好奇的人在附近徘徊\n" +
    "\t\t<<else>>一小群人在看着\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>一个<<pillory_type>>被锁在颈手枷上。\n" +
    "\t<<if $pillory_tenant.broken gte 32>><<He>>看起来精神受创,也许因为已经遭受的虐待而永远地崩溃了。\n" +
    "\t<<elseif $pillory_tenant.broken gte 16>><<He>>正因所遭受的虐待而哭泣着。\n" +
    "\t<<elseif $pillory_tenant.broken gte 8>><<He>>正因那些欺压而哭泣着。\n" +
    "\t<<elseif $pillory_tenant.broken gte 4>><<He>>虽然很不安,但努力掩饰着。\n" +
    "\t<<else>><<He>>目中无人,一脸不屑。\n" +
    "\t<</if>>\n" +
    "\t<br>\n" +
    "\n" +
    "\t/*describe exposure*/\n" +
    "\t<<if $pillory_tenant.upperexposed gte 3>>\n" +
    "\t\t<<His>>的$pillory_tenant.person.breastsdesc完全暴露在人群中。\n" +
    "\t\t<<if $pillory_tenant.spank gte 8>><<His>>的乳头通红,看起来被捏、拍打、吸吮、咬和拉扯过。\n" +
    "\t\t<<elseif $pillory_tenant.spank gte 4>><<His>>的乳头看起来因虐待而疼痛。\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif $pillory_tenant.upperexposed gte 2>>\n" +
    "\t\t<<if $pronoun is \"f\">>\n" +
    "\t\t\t<<His>>赤裸着上身,仅剩一副可怜的胸罩将<<his>>的$pillory_tenant.person.breastsdesc挡住。\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<His>>赤裸着上身,把那$pillory_tenant.person.breastsdesc完全暴露了在人群之中。\n" +
    "\t\t\t<<if $pillory_tenant.spank gte 8>><<His>>乳头通红,看起来被捏,拍打,咬和拉扯过。\n" +
    "\t\t\t<<elseif $pillory_tenant.spank gte 4>><<His>>的乳头看起来因虐待而疼痛。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif $pillory_tenant.upperexposed gte 1>><<His>>上衣被撕破,把<<his>>的<<if $pronoun is \"f\">>胸罩<<else>>$pillory_tenant.person.breastsdesc<</if>>暴露在了人群之中。\n" +
    "\t<</if>>\n" +
    "\t<<if $pillory_tenant.lowerexposed gte 2>><<His>>的屁股<<if $pillory_tenant.upperexposed gte 1>>也<</if>>暴露出来,使得\n" +
    "\t\t<<if $pillory_tenant.person.gender is \"f\">><<his>>的小穴\n" +
    "\t\t<<else>><<his>> $pillory_tenant.person.penisdesc\n" +
    "\t\t<</if>>人人都能看到。\n" +
    "\t\t<<if $pillory_tenant.spank gte 5>><<His>>屁股有被粗暴对待过的迹象\n" +
    "\t\t\t<<if $pillory_tenant.fruit gte 5>>被拍打着,并且<<his>>那<<if $pillory_tenant.face gte 2>>被精液<<if $pillory_tenant.face gte 4>>涂满的<<else>>粘到的<</if>><</if>>脸上尽是淤青和烂水果。\n" +
    "\t\t\t<<else>>被拍打着。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif $pillory_tenant.fruit gte 6>><<His>><<if $pillory_tenant.face gte 2>><<if $pillory_tenant.face gte 4>>沾满<<else>>沾有<</if>>精液<</if>>的脸上满是淤青和碎水果。\n" +
    "\t\t<<elseif $pillory_tenant.fruit gte 2>><<His>><<if $pillory_tenant.face gte 2>><<if $pillory_tenant.face gte 4>>沾满<<else>>沾有<</if>>精液<</if>>的脸上满是伤痕和碎水果。\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $pillory_tenant.ass gte 2>><<His>>屁股被强奸的次数不止\n" +
    "\t\t\t<<if $pillory_tenant.genital gte 2>>一次,\n" +
    "\t\t\t\t<<if $pillory_tenant.person.gender is \"m\">>黏液覆盖着<<his>><<print either(\"暴露的\",\"被虐待的\",\"可怜的\")>>肉棒。\n" +
    "\t\t\t\t<<else>>精液从<<his>><<print either(\"袒露\",\"红肿\",\"被残虐\")>>的小穴中<<if $pillory_tenant.genital gte 4>>流出<<else>>滴落<</if>>。\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<<else>>一次.\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif $pillory_tenant.genital gte 5>><<His>>的<<if $pillory_tenant.person.gender is \"m\">>肉棒<<else>>小穴<</if>>正被人残暴的凌辱着。\n" +
    "\t\t<<elseif $pillory_tenant.genital gte 2>><<He>>看上去被侵犯了不止一次。\n" +
    "\t\t<</if>>\n" +
    "\t<<elseif $pillory_tenant.lowerexposed gte 1>>\n" +
    "\t\t<<His>><<if $pronoun is \"f\">>衣服被拉起越过腰部,<<else>>裤子被拉下,<</if>>\n" +
    "\t\t把<<his>>的内衣暴露在了人群之中。\n" +
    "\t<<elseif $pillory_tenant.wet is 2>><<His>>的衣服被雨淋湿了。\n" +
    "\t<<elseif $pillory_tenant.wet is 1>><<His>>透明的衣服在慢慢地变干。\n" +
    "\t<</if>>\n" +
    "\t<<if $pillory_tenant.upperexposed is 0 and $pillory_tenant.lowerexposed is 0 and $pillory_tenant.face is 0 and $pillory_tenant.fruit gte 1>>\n" +
    "\t\t<<if $pillory_tenant.fruit gte 6>><<His>>脸上满是伤痕和烂水果。\n" +
    "\t\t<<elseif $pillory_tenant.fruit gte 2>><<His>>的脸上满是瘀伤和碎水果。\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"update_npc_pillory_appearance\">>\n" +
    "\t<<if ($pillory_tenant.lastviewed.day isnot Time.days) or (Time.hour gte $pillory_tenant.lastviewed.hour + 2)>>\n" +
    "\t\t/* last viewed time tracked to avoid this firing on every viewing */\n" +
    "\t\t<<set $pillory_tenant.lastviewed.day to Time.days>>\n" +
    "\t\t<<set $pillory_tenant.lastviewed.hour to Time.hour>>\n" +
    "\n" +
    "\t\t/*Weather effects*/\n" +
    "\t\t<<if $weather is \"rain\">><<set $pillory_tenant.wet to 2>>\n" +
    "\t\t<<elseif $pillory_tenant.wet is 2>><<set $pillory_tenant.wet to 1>>\n" +
    "\t\t<<else>><<set $pillory_tenant.wet to 0>>\n" +
    "\t\t<</if>>\n" +
    "\n" +
    "\t\t/*Chance of abuse based on crowd and time passed*/\n" +
    "\t\t<<if Time.days - $pillory_tenant.startday is 2>><<set _chance to 24>>\n" +
    "\t\t<<elseif Time.days - $pillory_tenant.startday is 1>><<set _chance to 12>>\n" +
    "\t\t<<else>><<set _chance to (Time.hour - $pillory_tenant.starthour)>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<set _chance *= $pillory_tenant.crowd>>\n" +
    "\t\t/*increased by spectacle*/\n" +
    "\t\t<<set _factor to ($pillory_tenant.upperexposed + $pillory_tenant.lowerexposed + $pillory_tenant.fruit\n" +
    "\t\t\t\t\t\t\t+ $pillory_tenant.spank + $pillory_tenant.face + $pillory_tenant.ass + $pillory_tenant.genital)>>\n" +
    "\t\t<<if Time.dayState is \"night\">><<set _factor += 3>><</if>>\n" +
    "\t\t<<if $pillory_tenant.wet is 2>><<set _factor += 4>><</if>>\n" +
    "\t\t<<set _prob to (_chance * _factor)>>\n" +
    "\n" +
    "\t\t/*Out of sight changes to tenant */\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (40 - _prob)>><<set $pillory_tenant.fruit += 1>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (60 - _prob)>><<set $pillory_tenant.crowd += 2>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (60 - _prob)>><<set $pillory_tenant.upperexposed += 1>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (80 - _prob)>><<set $pillory_tenant.lowerexposed += 1>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (100 - _prob)>><<set $pillory_tenant.crowd += 2>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (100 - _prob)>><<set $pillory_tenant.fruit += 2>><<set $pillory_tenant.face += 1>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (100 - _prob) and $pillory_tenant.lowerexposed gte 2>><<set $pillory_tenant.spank += 2>><<else>><<set $pillory_tenant.spank += 1>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (100 - _prob) and $pillory_tenant.lowerexposed gte 2>><<set $pillory_tenant.genital += 1>><</if>>\n" +
    "\t\t<<rng>>\n" +
    "\t\t<<if $rng gte (100 - _prob) and $pillory_tenant.lowerexposed gte 2>><<set $pillory_tenant.ass += 1>><</if>>\n" +
    "\n" +
    "\t\t/*lock down exposure and replenish fruit */\n" +
    "\t\t<<if $pillory_tenant.upperexposed gte 3>><<if $pillory_tenant.person.gender is \"f\" or $pillory_tenant.person.pronoun is \"f\">><<set $pillory_tenant.upperexposed to 3>><<else>><<set $pillory_tenant.upperexposed to 2>><</if>><</if>>\n" +
    "\t\t<<if $pillory_tenant.lowerexposed gt 2>><<set $pillory_tenant.lowerexposed to 2>><</if>>\n" +
    "\t\t<<set $pillory_tenant.fruitstock to 3>>\n" +
    "\t\t<<set $pillory_tenant.broken += ($pillory_tenant.ass + $pillory_tenant.genital + $pillory_tenant.face + $pillory_tenant.fruit + $pillory_tenant.spank)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"npc_pillory_abuse\">>\n" +
    "\t<br>\n" +
    "\t<<if ($pillory_tenant.lastviewed.day isnot Time.days) or (Time.hour gte $pillory_tenant.lastviewed.hour + 1)>>\n" +
    "\t\t<<set $pillory_tenant.lastviewed.hour to Time.hour>>\n" +
    "\t\t<<rng>><<generate2>><<person2>>\n" +
    "\t\t<<set _ly to either(\"violently\",\"openly\",\"angrily\",\"furiously\",\"cheekily\",\"repeatedly\",\"clumsily\",\"roughly\",\"theatrically\",\"dutifully\",\"merrily\",\"gleefully\",\"drunkenly\",\"ineptly\")>>\n" +
    "\t\t<<if Time.dayState isnot \"night\">>\n" +
    "\t\t\t<<if $rng gte 56>> /* 45% chance of jeer and shout only, 55% chance of something active */\n" +
    "\t\t\t\t一群人在一个<<person>>的带领下,开始对犯人大声地嘲笑和辱骂。\n" +
    "\t\t\t<<elseif $rng gte 41>> /* 15% */\n" +
    "\t\t\t\t<<rng>>\n" +
    "\t\t\t\t<<if $pillory_tenant.person.pronoun is \"f\" and $rng gte 40>> /* 60% if upper-exposed F */\n" +
    "\t\t\t\t\t一个穿着粗糙的农民服装的<<person>>拿着铁桶向着颈手枷走去。\n" +
    "\t\t\t\t\t在把水桶放在<<pillory_type>>的胸部下面后,<<person2>><<he>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.upperexposed lte 1>>囚犯的上衣被移除了,<</if>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.upperexposed lte 2>><<set $pillory_tenant.upperexposed to 3>>的胸罩被脱了下来,<</if>>\n" +
    "\t\t\t\t\t抓住<<pillory_type>>的$pillory_tenant.person.breastsdesc,并开始尝试将奶水挤进桶里。\n" +
    "\t\t\t\t\t<br><br>\n" +
    "\t\t\t\t\t<<if $rng % 3 is 0>>\n" +
    "\t\t\t\t\t\t<<if $rng % 2>>\n" +
    "\t\t\t\t\t\t\t乳汁从她的胸部喷涌而出。农夫微笑着很快掌握了节奏,熟练地开始用手挤着双乳。\n" +
    "\t\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t\t\"好姑娘,\"那个农夫揉了揉<<the_pillory_person>>的头发,然后带着几乎满满的水桶离开了。\n" +
    "\t\t\t\t\t\t<<else>><<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t\t\t\t乳汁从<<pillory_type>>的乳房中滴落下来,在持续不断地挤压和拉扯的下,农夫最终\n" +
    "\t\t\t\t\t\t\t在挤了相当多的乳汁之后,她的$pillory_tenant.person.breastsdesc看起来红肿不堪。\n" +
    "\t\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t\t农夫拍了拍囚犯的头,然后带着 <<person2>><<his>>那半满的铁桶离开了。\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<<else>><<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t\t\t尽管拉动与挤压变得愈发的粗暴,但乳汁还是没有出来。\n" +
    "\t\t\t\t\t\t<<if $rng % 2>>\n" +
    "\t\t\t\t\t\t\t<<person2>><<person>>了口气,然后拍了拍她的头。 \"可怜的女孩,你都干涸了。\"\n" +
    "\t\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t\t<<He>>走到<<pillory_type>>的后面,然后\n" +
    "\t\t\t\t\t\t\t<<if $pillory_tenant.lowerexposed lte 1>>脱掉了<<his>><<print either(\"丝绸内裤\",\"单色内裤\",\"破损内裤\",\"男式短裤\")>>,\n" +
    "\t\t\t\t\t\t\t<<else>>将<<his>>的臀瓣分开,<</if>><<if $pillory_tenant.person.gender is \"f\">>把<<his>>的小穴<<else>>把<<his>>的屁股<</if>>暴露在了所有人的面前。\n" +
    "\t\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t\t\"这头牛没奶了,\"<<person2>><<he>>向人群呼喊,<<if $pillory_tenant.person.gender is \"f\">>\"来个人给她添个牛犊。\"<<else>>\"来个人填满她。\"<</if>>\n" +
    "\t\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t\t<<He>>拿着空桶走了。\n" +
    "\t\t\t\t\t\t\t<<set $pillory_tenant.lowerexposed to 2>>\n" +
    "\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t在得知什么也挤不出来之后,农夫叹了口气,失望地带着空桶离开了。\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<elseif $pillory_tenant.person.gender is \"m\" and $rng gte 40>>\n" +
    "\t\t\t\t\t一个穿着粗糙的农民服装的<<person>>拿着透明玻璃杯向着颈手枷靠近。\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t把一个玻璃罐放在了<<pillory_type>>的乳房下方,随后<<person2>><<he>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.lowerexposed lte 0>><<if $pillory_tenant.person.pronoun is \"m\">>拉下囚犯的裤子,<<else>>撩起囚犯的裙子,<</if>><</if>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.lowerexposed lte 1>><<set $pillory_tenant.lowerexposed to 2>><<if $pillory_tenant.person.pronoun is \"m\">>脱掉底裤,<<else>>脱掉内裤,<</if>><</if>>\n" +
    "\t\t\t\t\t抓住囚犯的$pillory_tenant.person.penisdesc,并开始摩擦。\n" +
    "\t\t\t\t\t囚犯看起来被震惊住了——之后是愤怒,最后又成了矛盾。<<person1>><<he>>最终在嘲笑声中射了出来,填满了靠近的透明玻璃杯,重又回归到了震惊之中。\n" +
    "\t\t\t\t\t<<person2>>\n" +
    "\t\t\t\t\t<<if $rng % 3>>\n" +
    "\t\t\t\t\t\t农夫朝玻璃杯里瞥了一眼,又开始磨蹭那个囚犯的下体……手法非常的娴熟,甚至一手玩着手机,\n" +
    "\t\t\t\t\t\t,另一只手还能让那个<<pillory_type>>来到高潮。\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t十分钟后,农夫端着一杯精液走开了,而<<the_pillory_person>>仍被挂在颈手枷上,脸上的表情\n" +
    "\t\t\t\t\t\t在震惊、羞愧、痛苦和满足之间徘徊。\n" +
    "\t\t\t\t\t<<else>><<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t\t\t那个农夫一手拿着<<his>>的手机,另一只手则在试图让<<pillory_type>>重新达到高潮。\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t大概过了一分钟左右,那个农夫困惑的抬起头,然后对那个<<the_pillory_person>>的不回应感到恼火。\n" +
    "\t\t\t\t\t\t那个<<person2>><<person>>从<<his>>的口袋里掏出一个装置,然后将装置的一端夹在那个<<pillory_type>>的阴茎根部,\n" +
    "\t\t\t\t\t\t并将另一端深深地插入了囚犯的菊穴里。\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t农夫按下一个按钮。伴随着一声响亮的电子噼啪声,<<the_pillory_person>>不停地叫喊、抽搐着,身体开始持续不断地高潮。\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t浏览手机约20秒后,<<person2>><<person>>关掉设备,看了一眼玻璃杯,满意地点了点头。\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t人群全神贯注地看着农夫重复着过程,一遍又一遍,直到精液填满了杯子,农夫才欣然离开。\n" +
    "\t\t\t\t\t\t<<the_pillory_person>>瘫软地挂在颈手枷上,<<his>>的脸因痛苦、羞耻和一种奇怪的满足而抽搐扭曲着。\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t<<elseif $pillory_tenant.person.gender is \"f\" and $rng gte 20>>\n" +
    "\t\t\t\t\t一个穿着粗糙的农民服装的<<person>>拿着玻璃杯向颈手枷靠近。\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t把烧杯放在<<pillory_type>>腹股沟下,随后<<person2>><<he>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.lowerexposed lte 0>><<if $pillory_tenant.person.pronoun is \"f\">>拉起犯人的裙子,<<else>>下犯人的裤子,<</if>><</if>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.lowerexposed lte 1>><<set $pillory_tenant.lowerexposed to 2>><<if $pillory_tenant.person.pronoun is \"f\">>脱下她的内裤,<<else>>脱掉他的内裤,<</if>><</if>>\n" +
    "\t\t\t\t\t贴近囚犯的小穴开始摩擦了起来。\n" +
    "\t\t\t\t\t片刻的震惊之后,<<the_pillory_person>>抿着嘴,让自己屈服于这种堕落,任由冰冷的金属塞进\n" +
    "\t\t\t\t\t<<his>>的小穴。不过片刻之后,<<he>>脸上的表情就变为了惊恐——有什么东西夹住了<<he>>的阴蒂。强烈的电流顿时袭来,<<he>>尖叫着扭动着身躯。\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t人群全神贯注地看着<<the_pillory_person>>在高潮中颤抖着扭动。农夫则一脸淡定,拿着\n" +
    "\t\t\t\t\t用烧杯接着<<the_pillory_person>>体内流出的液体的同时浏览着<<person2>><<his>>的手机。\n" +
    "\t\t\t\t\t最后,农夫关掉并取走了<<his>>的机器。<<Hes>>耸了耸肩,看着手机拿着\n" +
    "\t\t\t\t\t装满液体的烧杯满意地离开了\n" +
    "\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t<<The_pillory_person>>看起来羞愧异常,脸上的表情在震惊、羞耻和性疲惫之间来回转换着。\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<<if Time.month > 4 && Time.month < 9 and $rng % 4>>\n" +
    "\t\t\t\t\t\t<<set _bug to either(\"蜜蜂\",\"黄蜂\",\"大黄蜂\")>>\n" +
    "\t\t\t\t\t\t一只_bug围着<<The_pillory_person>>转来转去。<<him>>害怕地大喊大叫,无助地扭动拍打着。\n" +
    "\t\t\t\t\t\t<br>\n" +
    "\t\t\t\t\t\t<<if $rng % 3 is 0>>\n" +
    "\t\t\t\t\t\t\t一位好心的旁观者挥手将_bug赶走。\n" +
    "\t\t\t\t\t\t<<elseif $rng % 3 is 1>>\n" +
    "\t\t\t\t\t\t\t人群哄堂大笑,最终_bug失去了兴趣,慢悠悠地飞走了。\n" +
    "\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t<<if $pillory_tenant.lowerexposed is 2 and $rng % 2>>\n" +
    "\t\t\t\t\t\t\t\t<<if $pronoun is \"m\">><<set _part to either(\"屁股\",\"大腿上部\",\"腿内侧\",\"肉棒\",\"睾丸\",\"臀部\")>>\n" +
    "\t\t\t\t\t\t\t\t<<else>><<set _part to either(\"屁股\",\"大腿\",\"腿内侧\",\"小穴\",\"臀部\")>>\n" +
    "\t\t\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t\t\t<<elseif $pillory_tenant.upperexposed gte 3 and $pronoun is \"f\">>\n" +
    "\t\t\t\t\t\t\t\t<<set _part to either(\"胸部\",\"乳头\",\"腋窝\",\"肋骨\",\"膈部\",\"背部\")>>\n" +
    "\t\t\t\t\t\t\t<<elseif $pillory_tenant.upperexposed gte 2>>\n" +
    "\t\t\t\t\t\t\t\t<<set _part to either(\"胸部\",\"腋窝\",\"肋骨\",\"肚子\",\"背部\")>>\n" +
    "\t\t\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t\t\t<<set _part to either(\"手臂\",\"肩膀\",\"脸颊\",\"腿部\",\"腰部\",\"手腕\",\"肘部\")>>\n" +
    "\t\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t\t\t<<He>><<print either(\"大叫着\",\"尖叫着\",\"抱怨着\",\"哭叫着\")>>祈求虫子的离开,_part传来阵阵刺痛。\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t\t一个愤怒的<<monk>>从神殿责骂人群的道德沦丧。\n" +
    "\t\t\t\t\t\t许多人看起来很惭愧,有些人离开了。\n" +
    "\t\t\t\t\t\t<<set $pillory_tenant.crowd -= 1>>\n" +
    "\t\t\t\t\t\t<<if $pillory_tenant.upperexposed + $pillory_tenant.lowerexposed gte 1>>\n" +
    "\t\t\t\t\t\t\t<<set $pillory_tenant.upperexposed to 0>><<set $pillory_tenant.lowerexposed to 0>>\n" +
    "\t\t\t\t\t\t\t那个<<monk>>最终通过更换<<pillory_type>>的衣服来恢复<<his>>的尊严。\n" +
    "\t\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<<elseif $rng gte 36>> /* 5% */\n" +
    "\t\t\t\t一个<<person>>朝那个<<pillory_type>>扔水果,由于无法移动或抵御,水果直接击中了<<him>>的脸。\n" +
    "\t\t\t\t这看起来很痛,尤其是在<<he>>无法擦掉眼睛里的汁液时。\n" +
    "\t\t\t\t<<set $pillory_tenant.fruit += 1>>\n" +
    "\t\t\t<<elseif $rng gte 26>> /* 10% */\n" +
    "\t\t\t\t一个<<person>>把水果扔向<<pillory_type>>,但却没有丢中。\n" +
    "\t\t\t<<elseif $rng gte 16>> /* 10% */\n" +
    "\t\t\t\t一个<<person>>走到颈手枷前,轻轻地抚摸起<<pillory_type>>的<<if $pronoun is \"f\">>乳房。<<else>>蛋蛋。<</if>>\n" +
    "\t\t\t<<elseif $rng gte 11 and $pillory_tenant.upperexposed lt 3>>/* 5% */\n" +
    "\t\t\t\t一个<<person>>走到那个<<pillory_type>>面前,然后\n" +
    "\t\t\t\t<<if $pillory_tenant.upperexposed is 2>>\n" +
    "\t\t\t\t\t<<if $pronoun is \"f\">>\n" +
    "\t\t\t\t\t_ly脱掉<<his>>的胸罩,把$pillory_tenant.person.breastsdesc直直地暴露在了嘲笑的人群面前。\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t_ly扭着<<his>>的乳头。\n" +
    "\t\t\t\t\t<<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<elseif $pillory_tenant.upperexposed is 1>>\n" +
    "\t\t\t\t\t<<if $pronoun is \"f\">>\n" +
    "\t\t\t\t\t脱掉了<<his>>的上衣,只留下可怜的胸罩暴露在嘲笑的人群面前。\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t脱掉了<<his>>的上衣,就这样把$pillory_tenant.person.breastsdesc暴露在了嘲笑的人群面前。\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<<if $pronoun is \"f\">>\n" +
    "\t\t\t\t\t在嘲笑声中掀起<<his>>的上衣,让胸罩在人群面前一闪而过。\n" +
    "\t\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t掀起<<his>>的上衣,把大半块胸部暴露在了嘲笑的人群面前。\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<</if>><<set $pillory_tenant.upperexposed += 1>>\n" +
    "\t\t\t<<elseif $rng gte 6 and $pillory_tenant.lowerexposed lt 2>>/* 5% */\n" +
    "\t\t\t\t一个<<person>>走到<<the_pillory_person>>前,并\n" +
    "\t\t\t\t<<if $pillory_tenant.lowerexposed is 1>>\n" +
    "\t\t\t\t\t<<if $pillory_tenant.person.gender is \"f\">>脱掉<<pillory_type>>的内衣,将<<his>>的屁股和阴部完全暴露在嘲笑的人群面前。\n" +
    "\t\t\t\t\t<<else>>完全脱下<<pillory_type>>的内衣,将<<his>>的屁股和<<his>>的$pillory_tenant.person.penisdesc暴露在正在嘲笑的人群面前。\n" +
    "\t\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<else>>\n" +
    "\t\t\t\t\t<<if $pronoun is \"f\">>掀起了<<pillory_type>>的裙子,<<else>>脱下来<<his>>的裤子,<</if>>把<<his>>的内衣暴露给了正在嘲笑的观众.\n" +
    "\t\t\t\t<</if>><<set $pillory_tenant.lowerexposed += 1>>\n" +
    "\t\t\t<<else>><<set $pillory_tenant.spank += 1>>/* 5% */\n" +
    "\t\t\t\t一个<<person>>走到<<pillory_type>>前,并狠狠地拍打<<him>>的屁股。啪啪的声音回荡在整个街道上。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<else>> /*night*/\n" +
    "\t\t\t<<if $rng gte 86>> /* 15% chance of jeer and shout only, 85% chance of something active */\n" +
    "\t\t\t\t一群人在一个<<person>>的带领下对犯人放肆嘲笑着。\n" +
    "\t\t\t<<elseif $rng gte 81>> /* 5% */\n" +
    "\t\t\t\t一个<<person>>把水果扔向<<pillory_type>>,因为无法防御和闪躲,水果直接打在了<<the_pillory_person>>的脸上,这引起了一片欢呼声.\n" +
    "\t\t\t\t这看起来很痛,尤其是在<<he>>无法擦掉眼睛里的汁液时。\n" +
    "\t\t\t\t<<set $pillory_tenant.fruit += 1>>\n" +
    "\t\t\t<<elseif $rng gte 76>> /* 5% */\n" +
    "\t\t\t\t一个<<person>>把水果扔向<<pillory_type>>,但却没有丢中。\n" +
    "\t\t\t<<elseif $pillory_tenant.person.pronoun is \"f\" and $pillory_tenant.upperexposed lt 3>>\n" +
    "\t\t\t\t<<set $pillory_tenant.upperexposed to 3>>\n" +
    "\t\t\t\t一个<<person>>走到那个无助的<<pillory_type>>面前,然后脱掉了<<his>>所有的上衣,把<<his>>的<<if $pronoun is \"f\">>$pillory_tenant.person.breastsdesc<<else>>胸部<</if>>暴露在人群前。\n" +
    "\t\t\t<<elseif $pillory_tenant.person.pronoun is \"m\" and $pillory_tenant.upperexposed lt 2>>\n" +
    "\t\t\t\t<<set $pillory_tenant.upperexposed to 2>>\n" +
    "\t\t\t\t一个<<person>>走到那个无助的<<pillory_type>>面前,然后脱掉了<<his>>所有的上衣,把<<his>>的<<if $pronoun is \"f\">>$pillory_tenant.person.breastsdesc<<else>>胸部<</if>>暴露在人群前。\n" +
    "\t\t\t<<elseif $pillory_tenant.lowerexposed lt 2>>\n" +
    "\t\t\t\t<<set $pillory_tenant.lowerexposed to 2>>\n" +
    "\t\t\t\t一个<<person>>走到无助的<<pillory_type>>前,脱掉了<<his>>下身所有的衣服,把<<his>>的<<if $pillory_tenant.person.gender is \"f\">>小穴<<else>>$pillory_tenant.person.penisdesc<</if>>就这样直直地暴露在人群的面前。口哨声顿时响起,一片欢呼雀跃。\n" +
    "\t\t\t<<elseif $rng gte 66>> /* 10% */\n" +
    "\t\t\t\t一个<<person>>试图煽动附近的狗爬到犯人赤裸的屁股上。它\n" +
    "\t\t\t\t<<if $rng % 2>>对着<<the_pillory_person>>的屁股试探地闻了几下,但\n" +
    "\t\t\t\t<</if>>不感兴趣.\n" +
    "\t\t\t<<elseif $rng gte 58>> /* 8% */\n" +
    "\t\t\t\t<<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t一个<<person>>偷偷溜到颈手枷后,然后_ly打向<<pillory_type>>那裸露的<<if $pillory_tenant.person.gender is \"f\">>小穴,<<else>>蛋蛋。<</if>>当<<he>>发出痛苦的嚎叫声时,人群无情嘲笑了起来。\n" +
    "\t\t\t<<elseif $rng gte 51>> /* 7% */\n" +
    "\t\t\t\t<<set $pillory_tenant.spank += 2>><br>\n" +
    "\t\t\t\t某个你在学校附近见过但从未上过课的老师正醉醺醺地走向颈手枷。\n" +
    "\t\t\t\t<<if $pillory_tenant.special.name is \"Whitney\">>\n" +
    "\t\t\t\t\t<br><<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t\t\"嘿,你好啊,惠特尼!<<print either(\"很高兴在这里见到你!\",\"看看这是谁啊!\",\"你被困在那里了吗?多么不幸啊!\",\"这不是一个大转变吗?\",\"在这里看到你真是个惊喜!\")>>\"<<he>>边说边笑道。\n" +
    "\t\t\t\t\t\"<<print either(\"我们都知道,这是你应得的。\",\"我们都知道你是有资格获得这个待遇的。\",\"而今天的课程将是关于后果的问题。\",\"还记得你给我起的那个刻薄绰号吗?\",\"还记得你那天在我的课上做了什么吗?\")>>\"\n" +
    "\t\t\t\t<<elseif $pillory_tenant.special.name is \"Leighton\">>\n" +
    "\t\t\t\t\t<br><<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t\t\"嗯,你好,是你吗,老板?\"<<he>>说着的同时躲在颈手枷后面尽量不让人发现。\n" +
    "\t\t\t\t\t\"<<print either(\"我想现在是时候进行一些'匿名员工反馈'了。\",\"还记得你说过的'残忍是为了仁慈'吗?'\",\"所以我想现在轮到你来做一些'坦率和诚实的反馈'了?\",\"那么,这是表达员工不满的'正确论坛'吗?\")>>\"\n" +
    "\t\t\t\t<<else>><br>\n" +
    "\t\t\t\t\t\"喂,你好,\"<<he>>咧嘴笑着说道。\n" +
    "\t\t\t\t\t\"<<print either(\"看起来你很调皮。\",\"纪律是很重要的。\",\"这不是一个可爱的夜晚吗?你不觉得吗?看看那轮圆月!\")>>\"\n" +
    "\t\t\t\t<</if>><br>\n" +
    "\t\t\t\t<<He>>开始打<<pillory_type>>的屁股,直到<<person2>><<his>>的手臂打到发软为止.当<<person1>><<person>>因痛苦而嚎叫时,人群爆发出一阵一阵的嘲笑声。\n" +
    "\t\t\t<<elseif $rng gte 41>> /* 10% */\n" +
    "\t\t\t\t<<set $pillory_tenant.face += 1>>\n" +
    "\t\t\t\t一个<<person>>走到颈手枷前,_ly在<<pillory_type>>面前自慰。\n" +
    "\t\t\t\t<<person2>><<if $pronoun is \"m\">>的精液很快就溅到了<<the_pillory_person>>的脸上。\n" +
    "\t\t\t\t<<else>><<He>>用<<his>>的下体摩擦着<<the_pillory_person>><<person2>>的脸,直到达到高潮为止。\n" +
    "\t\t\t\t<</if>>人群欢呼雀跃,笑声不断.\n" +
    "\t\t\t<<elseif $rng gte 31>> /* 10% */\n" +
    "\t\t\t\t<<set $pillory_tenant.ass += 1>>\n" +
    "\t\t\t\t一个<<person>>走到颈手枷后,_ly<<if $pronoun is \"m\">>强暴着<<else>>指奸着<</if>><<pillory_type>>的菊穴。而人群则为<<person2>><<him>>欢呼了起来。\n" +
    "\t\t\t<<elseif $rng gte 21>> /* 10% */\n" +
    "\t\t\t\t<<set $pillory_tenant.genital += 1>>\n" +
    "\t\t\t\t一个<<person>>走到颈手枷后,_ly<<if $pronoun is \"m\">>强暴着<<the_pillory_person>><<else>>用穿戴式假阳具强暴着<<the_pillory_person>><</if>>。而人群则为<<person2>><<him>>拍照欢呼。\n" +
    "\t\t\t<<elseif $rng gte 11>> /* 10% */\n" +
    "\t\t\t\t<<set $pillory_tenant.genital += 1>><<set $pillory_tenant.ass += 1>>\n" +
    "\t\t\t\t人群围观並拍下流浪狗强暴<<the_pillory_person>>的照片。一个<<person2>><<person>><<print either(\"用饼干\",\"拍拍它的头\",\"用甜食\",\"用奶油面包\")>>奖励这只狗狗。\n" +
    "\t\t\t\t<br>\n" +
    "\t\t\t\t众人享受着这样的变态的景象,颈项伸得很长,仿佛许多鸭,被无形的手捏住了似的,向上提着。\n" +
    "\t\t\t<<elseif $rng gte 6 and maleChance() gt 0 and (maleChance() lt 100 or $pillory_tenant.person.gender isnot \"m\")>> /* 5% - with men allowed */\n" +
    "\t\t\t\t<<set $pillory_tenant.ass += 1>><<set $pillory_tenant.face += 1>>\n" +
    "\t\t\t\t<<if $rng % 3 is 0>>一对下班的警察走了过来.当他们给<<person>>做笔录时,<<else>>两个男人靠了过来.他们一块<</if>>\n" +
    "\t\t\t\t<<if $pillory_tenant.person.gender is \"m\">>对着菊穴<<else>>_ly <</if>>和<<the_pillory_person>>做起了3P。人群享受这精彩的表演.\n" +
    "\t\t\t<<elseif $rng gte 6 and maleChance() lt 100 and (maleChance() gt 0 or $pillory_tenant.person.gender isnot \"f\")>> /* 5% - with women allowed */\n" +
    "\t\t\t\t<<set $pillory_tenant.ass += 1>><<set $pillory_tenant.face += 1>>\n" +
    "\t\t\t\t<<if $rng % 3 is 0>>一对下班的女警察走过来.当他们让<<person>>做笔录时,<<else>>两个女人靠了过来.他们一块<</if>>\n" +
    "\t\t\t\t<<if $pillory_tenant.person.gender is \"m\">>对着菊穴<<else>>_ly <</if>>和<<the_pillory_person>>用穿戴式假阳具做起了3P。人群享受这精彩的表演.\n" +
    "\t\t\t<<else>> /* 5% */\n" +
    "\t\t\t\t<<set $pillory_tenant.spank += 1>>\n" +
    "\t\t\t\t一个<<person>>走到<<pillory_type>>前,并狠狠地拍打<<him>>的屁股。啪啪的声音回荡在整个街道上。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>/* already abused this hour - no action, don't want spamming this scene to accelerate things ridiculously */\n" +
    "\t\t周围的人都在<<print either(\"嘲笑着\",\"取笑着\",\"指指点点着\",\"大声辱骂着\",\"奚落着\",\"嘲弄着\",\"嘲讽着\")>>\n" +
    "\t\t<<if Time.schoolDay and ((Time.hour gte 7 and Time.hour lte 8) or Time.hour is 15) and $rng lte 34>>\n" +
    "\t\t\t<<pillory_type>>。附近学校的一群学生在路过时目瞪口呆的看着\n" +
    "\t\t\t<<if $pillory_tenant.lowerexposed gte 2 or $pillory_tenant.upperexposed gte 3>>那个裸露得很淫荡的犯人。\n" +
    "\t\t\t\t<<if $rng % 3 is 0>>\n" +
    "\t\t\t\t一个愤怒的旁观者跑到颈手枷上,把<<pillory_type>>的衣服换了下来。\n" +
    "\t\t\t\t<<set $pillory_tenant.lowerexposed to 0>><<set $pillory_tenant.upperexposed to 0>><</if>>\n" +
    "\t\t\t<<else>>囚犯。\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<elseif Time.dayState isnot \"night\">>\n" +
    "\t\t\t<<if $rng lte 80>>\n" +
    "\t\t\t\t那个<<pillory_type>>,<<print either(\"窃窃私语着。\",\"拍照。\",\"嘲笑了起来。\")>>\n" +
    "\t\t\t<<elseif $rng lte 93>>\n" +
    "\t\t\t\t那个<<pillory_type>>,其中一部分人厌倦的离开了.\n" +
    "\t\t\t\t<<set $pillory_tenant.crowd -= 1>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t那个<<pillory_type>>。一辆公交车在附近停下,其中一些人下车并加入了围观颈手枷的人群中。\n" +
    "\t\t\t\t<<set $pillory_tenant.crowd += 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<if $rng lte 67>>\n" +
    "\t\t\t\t<<if $pillory_tenant.lowerexposed gte 2 and $rng % 4 is 0>>那个<<pillory_type>>并在<<his>>那裸露的屁股旁边摆着姿势自拍.\n" +
    "\t\t\t\t<<else>><<pillory_type>>,同时还对其<<print either(\"小声低估。\",\"喝着酒。\",\"投掷酒瓶。\",\"言语恐吓。\",\"合影。\",\"说着荤段子。\")>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t<<elseif $rng lte 85>>\n" +
    "\t\t\t\t那个<<pillory_type>>。有些人在觉得累了之后便离开了。\n" +
    "\t\t\t\t<<set $pillory_tenant.crowd -= 1>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t那个<<pillory_type>>。一些路过的人加入了围观颈手枷的人群中。\n" +
    "\t\t\t\t<<set $pillory_tenant.crowd += 1>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if $pillory_tenant.upperexposed gte 3>><<if $pillory_tenant.person.gender is \"f\" or $pillory_tenant.person.pronoun is \"f\">><<set $pillory_tenant.upperexposed to 3>><<else>><<set $pillory_tenant.upperexposed to 2>><</if>><</if>>\n" +
    "\t<<if $pillory_tenant.lowerexposed gt 2>><<set $pillory_tenant.lowerexposed to 2>><</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"npc_pillory_release_schedule\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<br>\n" +
    "\t<<if Time.days is $pillory_tenant.endday>>\n" +
    "\t<<set _a_few to ($pillory_tenant.endhour - Time.hour)>>\n" +
    "\t\t<<He>>将在\n" +
    "\t\t<<if _a_few gt 0>>_a_few小时后被释放。\n" +
    "\t\t<<else>>时间快到了。\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _days_left to ($pillory_tenant.endday - Time.days)>>\n" +
    "\t\t<<He>>预定要被释放于<<if _days_left is 1>>明天<<else>>两天后<</if>>的\n" +
    "\t\t<<switch $pillory_tenant.endhour>>\n" +
    "\t\t\t<<case 0>>午夜时。\n" +
    "\t\t\t<<case 12>>中午时。\n" +
    "\t\t\t<<default>><<ampm $pillory_tenant.endhour>>.\n" +
    "\t\t<</switch>>\n" +
    "\t<</if>>\n" +
    "\t<<endevent>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"end_npc_pillory\">>\n" +
    "\t<<get_pillory_npc>>\n" +
    "\t<<if Time.minute lte 15>>\n" +
    "\t\t一个警察<<print either(\"正在释放\",\"刚刚释放\",\"正在努力释放\",\"即将释放\")>>\n" +
    "\t\t颈手枷上的<<the_pillory_person>>。<<if $weather is \"rain\">><<His>>的衣服被淋湿得能够看透。<<elseif $weather is \"snow\">><<He>>冻得发抖。<</if>>\n" +
    "\t<<elseif Time.minute lte 30>>\n" +
    "\t\t<<The_pillory_person>>跌跌撞撞地离开了颈手枷,眼睛<<print either(\"里含着泪水\",\"里流露出蔑视\",\"里满是痛苦\",\"里带着愤怒\")>>。\n" +
    "\t\t<<if $weather is \"rain\">><<His>>的衣服被雨淋透了。<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<The_pillory_person>>终于被释放了。几个职员正在清理颈手枷上的污痕。\n" +
    "\t<</if>>\n" +
    "\t<<set $rng += $pillory_tenant.duration>>\n" +
    "\t<<if $rng gte 67 or $rng gte 33 and $weather is \"rain\">>一大批人群发出嘲笑和叫喊声。<</if>>\n" +
    "\t<br><br>\n" +
    "\t<<clear_pillory>>\n" +
    "\t<<endevent>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"clear_pillory\">>\n" +
    "\t<<if $pillory_tenant and $pillory_tenant.special.name is \"Whitney\">>\n" +
    "\t\t<<set C.npc.Whitney.state to \"active\">>\n" +
    "\t<</if>>\n" +
    "\t<<setup_pillory>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"drench\">>\n" +
    "\t<!-- Drench PC in lewd liquid(s). First arguments set filth type: semen(default), goo, nectar or multiple. Last argument sets level 1-5 (default 1). Body interiors will be ignored if \"outside\" is specified as any of the arguments. -->\n" +
    "\t<!-- valid examples: <<drench>> <<drench goo nectar 3 outside>><<drench outside 2>> -->\n" +
    "\t<!-- invalid example: <<drench 3 semen>> -->\n" +
    "\t<<set $_outside to _args.includes(\"outside\") ? \"outside\" : \"all\">>\n" +
    "\t<!-- \"outside\" can appear as the last argument, if so - delete it so the $_amount will be properly detected -->\n" +
    "\t<<run _args.delete(\"outside\")>>\n" +
    "\t<<set $_amount to Number.isInteger(_args.last()) ? Math.clamp(_args.last(), 1, 5) : 1>>\n" +
    "\t<<set $_goo to _args.includesAny(\"goo\", \"slime\", \"liquid\") ? \"goo\" : \"\">>\n" +
    "\t<<set $_nectar to _args.includes(\"nectar\") ? \"nectar\" : \"\">>\n" +
    "\t<<set $_semen to (_args.includesAny(\"semen\",\"cum\") || ($_goo + $_nectar).length === 0) ? \"semen\" : \"\">>\n" +
    "\t<<set $hygiene to 3000>>\n" +
    "\t<<bodyliquid $_outside $_semen $_goo $_nectar $_amount>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"awarenessup\">>\n" +
    "\t<<set _awareness to _args[1]>>\n" +
    "\t<<if $awareness gte _args[0]>>\n" +
    "\t\t<span class=\"pink\">没有什么是你不知道的。</span>\n" +
    "\t<<else>>\n" +
    "\t\t<<gawareness>><<awareness _awareness>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"linkradiogroup\">>\n" +
    "\t<<set _receiver_name to _args[0]>>\n" +
    "\t<<set _options to _args[1]>>\n" +
    "\t<<set _set_value to State.getVar(_receiver_name)>>\n" +
    "\n" +
    "\t<span class=\"no-numberify\">\n" +
    "\t\t<<for _label, _value range _options>>\n" +
    "\t\t\t<<capture _receiver_name, _value>>\n" +
    "\t\t\t\t<span @class=\"(_set_value is _value ? 'goldLink' : '')\">\n" +
    "\t\t\t\t\t<<link _label>>\n" +
    "\t\t\t\t\t\t<<run State.setVar(_receiver_name, _value)>>\n" +
    "\t\t\t\t\t\t<<run Engine.show()>> <!-- refresh the page without leaving it -->\n" +
    "\t\t\t\t\t<</link>>\n" +
    "\t\t\t\t</span>\n" +
    "\t\t\t<</capture>>\n" +
    "\t\t\t|\n" +
    "\t\t<</for>>\n" +
    "\t</span>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"deskText\">>\n" +
    "<<if $studyBooks is undefined>>\n" +
    "\t<<set $studyBooks to {}>>\n" +
    "\t<<set $studyBooks.rented to \"none\">>\n" +
    "\t<<set $studyBooks.stolen to \"none\">>\n" +
    "<</if>>\n" +
    "<<set _desk to Furniture.get('desk')>>\n" +
    "<<set _chair to Furniture.get('chair')>>\n" +
    "<<set _projectOptions to [$scienceproject, $mathsproject].includes(\"ongoing\")>>\n" +
    "<<set _bookOptions to ($studyBooks.stolen is 'Raul and Janet' or $studyBooks.rented is 'Raul and Janet' or $studyBooks.stolen is 'Pinch' or $studyBooks.rented is 'Pinch')>>\n" +
    "<<set _wardrobe to Furniture.get('wardrobe')>>\n" +
    "<<set _playOptions to ($englishPlay is 'ongoing' and $englishPlayRoles.Player isnot 'none')>>\n" +
    "\n" +
    "<<if _projectOptions || _playOptions || _bookOptions || ($christmas_wrap is 1 && $christmas_gift_robin_wrapped isnot 1) || ($christmas_wrap is 1 && $christmas_gift is \"clothes_unwrapped\")>>\n" +
    "\t<<if _args[0] is \"noicon\">>\n" +
    "\t\t你的_desk.nameCap和<<if _chair.name isnot \"chair\">>一张<</if>>_chair.nameCap占据着你衣柜旁那狭小的空间。\n" +
    "\t\t<br>\n" +
    "\t\t<<projectoptions>>\n" +
    "\t\t<<homeStudyOptions>>\n" +
    "\t\t<<christmas_options>>\n" +
    "\t\t<br>\n" +
    "\t<</if>>\n" +
    "<<else>>\n" +
    "\t<<if _args[0] is \"icon\">>\n" +
    "\t\t<br>\n" +
    "\t\t<<deskchairicon>>你的_desk.nameCap和<<if _chair.name isnot \"chair\">>一张<</if>>_chair.nameCap占据着你衣柜旁那狭小的空间。\n" +
    "\t<</if>>\n" +
    "<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "\n" +
    "<<widget \"tableText\">>\n" +
    "<<set _table to Furniture.get('table')>>\n" +
    "<<set _chair to Furniture.get('chair')>>\n" +
    "<<if $pregnancyStats.parasiteDoctorEvents gte 2>>\n" +
    "\t<<if _args[0] is \"noicon\">>\n" +
    "\t\t<<if _table>>\n" +
    "\t\t\t<br>\n" +
    "\t\t\t你的_table.nameCap<<if _chair and _chair.name isnot \"chair\">>和你的一把_chair.nameCap<<else>><</if>>位于墙边。\n" +
    "\t\t\t<br>\n" +
    "\t\t<<elseif _chair and _chair.name isnot \"chair\">>\n" +
    "\t\t\t<br>\n" +
    "\t\t\t你的一张_chair.nameCap紧靠着墙。\n" +
    "\t\t\t<br>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<br>\n" +
    "\t\t\t你的鱼缸放在地板上。\n" +
    "\t\t\t<br>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<fishtankicon>><<containersLink>>\n" +
    "\t<</if>>\n" +
    "<<else>>\n" +
    "\t<<if _args[0] is \"icon\">>\n" +
    "\t\t<<if _table>>\n" +
    "\t\t\t<br>\n" +
    "\t\t\t<<bedroomtablechairicon>>你的_table.nameCap<<if _chair and _chair.name isnot \"chair\">>和另一张_chair.nameCap<<else>><</if>>紧挨在墙壁边上。\n" +
    "\t\t<<elseif _chair and _chair.name isnot \"chair\">>\n" +
    "\t\t\t<br>\n" +
    "\t\t\t<<bedroomtablechairicon>>另有一张_chair.nameCap紧挨在墙壁边上。\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"radiogroup\">>\n" +
    "\t<<set _receiver_name to _args[0]>>\n" +
    "\t<<set _possible_values_by_label to _args[1]>>\n" +
    "\t<<set _set_value to State.getVar(_receiver_name)>>\n" +
    "\n" +
    "\t<<for _label, _value range _possible_values_by_label>>\n" +
    "\t\t<label>\n" +
    "\t\t<<if _set_value is _value>>\n" +
    "\t\t\t<<radiobutton _receiver_name _value checked>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<radiobutton _receiver_name _value>>\n" +
    "\t\t<</if>>\n" +
    "\t\t_label\n" +
    "\t\t</label>\n" +
    "\t<</for>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"settextcolorfromfemininity\">>\n" +
    "\t<<if _args[0] gt 0>>\n" +
    "\t\t<<set _text_color to \"pink\">>\n" +
    "\t<<elseif _args[0] lt 0>>\n" +
    "\t\t<<set _text_color to \"lblue\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _text_color to \"\">>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"settextcolorfromgender\">>\n" +
    "\t<<if _args[0] is \"f\">>\n" +
    "\t\t<<set _text_color to \"pink\">>\n" +
    "\t<<elseif _args[0] is \"m\">>\n" +
    "\t\t<<set _text_color to \"lblue\">>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _text_color to \"\">>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"cheatStart\">>\n" +
    "\t<<set $cheatdisable to \"f\">><<set $money to 500000>>\n" +
    "\t<<set $rentmoney to 10000>><<rentmod>>\n" +
    "\t<<set $renttime to 7>><<set $rentday to Time.weekDay>>\n" +
    "\t<<set $rentstage to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"swim_check\">>\n" +
    "\t<<if ($worn.upper.type.includes(\"naked\") or $worn.upper.type.includes(\"swim\")) and\n" +
    "\t($worn.lower.type.includes(\"naked\") or $worn.lower.type.includes(\"swim\")) and\n" +
    "\t($worn.under_upper.type.includes(\"naked\") or $worn.under_upper.type.includes(\"swim\")) and\n" +
    "\t($worn.under_lower.type.includes(\"naked\") or $worn.under_lower.type.includes(\"swim\"))>>\n" +
    "\t\t<<set _swim_check to 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"skulduggeryuse\">>\n" +
    "\t<<if _args[0] is true>>\n" +
    "\t\t<!-- This argument lets us use skulduggery without adding extra linebreaks that make formatting things a nightmare. -->\n" +
    "\t\t<<if $skulduggery lte ($skulduggerydifficulty + 100)>>\n" +
    "\t\t\t<<combatskulduggeryskilluse>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<span class=\"blue\">这太简单了,你什么都没学到。</span>\n" +
    "\t\t<</if>>\n" +
    "\t<<else>>\n" +
    "\t\t<<if $skulduggery lte ($skulduggerydifficulty + 100)>>\n" +
    "\t\t\t<<skulduggeryskilluse>>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<span class=\"blue\">这太简单了,你什么都没学到。</span>\n" +
    "\t\t\t<br><br>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"wetness_init\">>\n" +
    "\t<<if $objectVersion.vaginaWetness lt 3 or $objectVersion.vaginaWetness is undefined>>\n" +
    "\t\t<<set $vaginaWetness to 0>>\n" +
    "\t\t<<set $trackedArousal to [0]>>\n" +
    "\t\t<<set $masturbation_vaginaFluid to 0>>\n" +
    "\t\t<<set $vaginaArousalWetness to 0>>\n" +
    "\t\t<<set $timeSinceArousal to 0>>\n" +
    "\n" +
    "\t\t<<set $objectVersion.vaginaWetness to 3>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"hand_gag\">>/*First arg the NPC index. Second arg the hand used.*/\n" +
    "\t<<if !$worn.face.type.includes(\"gag\") and _args[0] isnot undefined>>\n" +
    "\t\t<<if _args[1] is \"left\">>\n" +
    "\t\t\t<<set $mouthuse to \"lefthand\">><<set $NPCList[_args[0]].lefthand to \"mouth\">>\n" +
    "\t\t<<else>>\n" +
    "\t\t\t<<set $mouthuse to \"righthand\">><<set $NPCList[_args[0]].righthand to \"mouth\">>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"prop\">>\n" +
    "\t<<for _i = 0; _i < _args.length; _i++>>\n" +
    "\t\t<<set $prop.push(_args[_i])>>\n" +
    "\t<</for>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"schoolrep\">>\n" +
    "\t<<if _args[0] and _args[1] and (!$worn.face.type.includes(\"mask\") or _args[1] lt 0)>>\n" +
    "\t\t<<if $schoolrep[_args[0]] lt 5 or _args[1] lt 0>>\n" +
    "\t\t\t<<if _args[0] is \"crossdress\" and ($daily.school.crossdress is undefined or _args[1] lt 0)>>\n" +
    "\t\t\t\t<<set $daily.school.crossdress to 1>>\n" +
    "\t\t\t\t<<set $schoolrep[_args[0]] += _args[1]>>\n" +
    "\t\t\t\t<<if $schoolrep.crossdress gte 5>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Kylar\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Whitney\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Sydney\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Sirris\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"River\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Doren\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Winter\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Mason\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Leighton\")>>\n" +
    "\t\t\t\t\t<<set $school_crossdress_message to 5>>\n" +
    "\t\t\t\t<<elseif $schoolrep.crossdress gte 1 and _args[1] gte 1>>\n" +
    "\t\t\t\t\t<<set $school_crossdress_message to $schoolrep.crossdress>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<set $schoolrep.crossdress to Math.clamp($schoolrep.crossdress, 0, 5)>>\n" +
    "\t\t\t\t<<if _args[1] gt 0>><<set $weekly.crossdressingFameReduction to true>><</if>>\n" +
    "\t\t\t\t<<set $schoolrep.herm to 0>> /* Reset for females that lose a \"penis\" */\n" +
    "\t\t\t<<elseif _args[0] is \"herm\" and ($daily.school.herm is undefined or _args[1] lt 0)>>\n" +
    "\t\t\t\t<<set $daily.school.herm to 1>>\n" +
    "\t\t\t\t<<set $schoolrep[_args[0]] += _args[1]>>\n" +
    "\t\t\t\t<<if $schoolrep.herm gte 5>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Kylar\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Whitney\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Sydney\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Sirris\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"River\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Doren\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Winter\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Mason\")>>\n" +
    "\t\t\t\t\t<<set $genderknown.pushUnique(\"Leighton\")>>\n" +
    "\t\t\t\t\t<<set $school_herm_message to 5>>\n" +
    "\t\t\t\t<<elseif $schoolrep.herm gte 1 and _args[1] gte 1>>\n" +
    "\t\t\t\t\t<<set $school_herm_message to $schoolrep.herm>>\n" +
    "\t\t\t\t<</if>>\n" +
    "\t\t\t\t<<set $schoolrep.herm to Math.clamp($schoolrep.herm, 0, 5)>>\n" +
    "\t\t\t\t<<set $schoolrep.crossdress to 0>> /* Reset for females that gain a \"penis\" */\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"schoolrep_naked\">>\n" +
    "\t<<if !playerChastity(\"hidden\")>>\n" +
    "\t\t<<if $player.penisExist and $player.vaginaExist>>\n" +
    "\t\t\t<<schoolrep herm 1>>\n" +
    "\t\t<<elseif $player.gender isnot $player.gender_appearance>>\n" +
    "\t\t\t<<schoolrep crossdress 1>>\n" +
    "\t\t<<elseif $player.gender is $player.gender_appearance and $schoolrep.crossdress gt 0 and !$daily.crossdressingFameReduction and !$weekly.crossdressingFameReduction and random(0,100) gte 100 - ($schoolrep.crossdress * 3)>>\n" +
    "\t\t\t<<schoolrep crossdress -1>>\n" +
    "\t\t\t<<set $daily.crossdressingFameReduction to true>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"event_trigger\">>\n" +
    "\t<<set $danger to random(1, 10000)>>\n" +
    "\t<<if $danger gte (9900 - $allure)>>\n" +
    "\t\t<<set $event_trigger to 1>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"combat_lewdity_text\">>\n" +
    "\t<<combat_promiscuity_text>>\n" +
    "\t<<combat_deviancy_text>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"adjust_school_traits\">>\n" +
    "\t<<if $science gte 1000>>\n" +
    "\t\t<<set $sciencetrait to 4>>\n" +
    "\t<<elseif $science gte 700>>\n" +
    "\t\t<<set $sciencetrait to 3>>\n" +
    "\t<<elseif $science gte 400>>\n" +
    "\t\t<<set $sciencetrait to 2>>\n" +
    "\t<<elseif $science gte 200>>\n" +
    "\t\t<<set $sciencetrait to 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $sciencetrait to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if $maths gte 1000>>\n" +
    "\t\t<<set $mathstrait to 4>>\n" +
    "\t<<elseif $maths gte 700>>\n" +
    "\t\t<<set $mathstrait to 3>>\n" +
    "\t<<elseif $maths gte 400>>\n" +
    "\t\t<<set $mathstrait to 2>>\n" +
    "\t<<elseif $maths gte 200>>\n" +
    "\t\t<<set $mathstrait to 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $mathstrait to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if $english gte 1000>>\n" +
    "\t\t<<set $englishtrait to 4>>\n" +
    "\t<<elseif $english gte 700>>\n" +
    "\t\t<<set $englishtrait to 3>>\n" +
    "\t<<elseif $english gte 400>>\n" +
    "\t\t<<set $englishtrait to 2>>\n" +
    "\t<<elseif $english gte 200>>\n" +
    "\t\t<<set $englishtrait to 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $englishtrait to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if $history gte 1000>>\n" +
    "\t\t<<set $historytrait to 4>>\n" +
    "\t<<elseif $history gte 700>>\n" +
    "\t\t<<set $historytrait to 3>>\n" +
    "\t<<elseif $history gte 400>>\n" +
    "\t\t<<set $historytrait to 2>>\n" +
    "\t<<elseif $history gte 200>>\n" +
    "\t\t<<set $historytrait to 1>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $historytrait to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<set $english to Math.clamp($english, 0, 1000)>>\n" +
    "\t<<set $maths to Math.clamp($maths, 0, 1000)>>\n" +
    "\t<<set $science to Math.clamp($science, 0, 1000)>>\n" +
    "\t<<set $history to Math.clamp($history, 0, 1000)>>\n" +
    "<</widget>>\n" +
    "\n" +
    "/*\n" +
    "\tArgument 1 is base amount. You can also use decimals.\n" +
    "\tArgument 2 is variation.\n" +
    "\tArgument 3 is crime.\n" +
    "\t<<moneyGain 1>> will give £1.00 which is not stolen.\n" +
    "\t<<moneyGain 1 false false>> will give £1.00 which is not stolen.\n" +
    "\t<<moneyGain 1 true>> will give between £0.80 and £1.20 which is not stolen.\n" +
    "\t<<moneyGain 1 true true>> will give between £0.80 and £1.20 which is stolen, and can scale further with skulduggery.\n" +
    "\t<<moneyGain 1 false true>> will give £1.00 which is stolen, and can scale with skulduggery.\n" +
    "*/\n" +
    "<<widget \"moneyGain\">><<silently>>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set _base_amount to _args[0] * 100>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _base_amount to 100>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args[1]>>\n" +
    "\t\t<<set _variation to Math.floor(random(Math.floor(_base_amount / 5 * -1), Math.floor(_base_amount / 5)))>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _variation to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args[2]>>\n" +
    "\t\t<<set _skulduggeryMulti to (1 + (currentSkillValue('skulduggery') / 2000))>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _skulduggeryMulti to 1>>\n" +
    "\t<</if>>\n" +
    "\t<<set _money_gain to Math.floor((_base_amount + _variation) * _skulduggeryMulti)>>\n" +
    "\t<<if _args[2]>>\n" +
    "\t\t<<crimeUp `_money_gain / 100` \"thievery\">>\n" +
    "\t<</if>>\n" +
    "\t<<set $money += _money_gain>>\n" +
    "<</silently>><<printmoney _money_gain>><</widget>>\n" +
    "\n" +
    "/*\n" +
    "\tUsed like above, but only shows the money amount, doesn't add money or crime.\n" +
    "\tUse <<crimeUp `_money_gain / 100`>> and <<set $money += _money_gain>> where necessary in links, etc.\n" +
    "*/\n" +
    "<<widget \"moneyGainDisplay\">><<silently>>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set _base_amount to _args[0] * 100>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _base_amount to 100>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args[1]>>\n" +
    "\t\t<<set _variation to Math.floor(random(Math.floor(_base_amount / 5 * -1), Math.floor(_base_amount / 5)))>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _variation to 0>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args[2]>>\n" +
    "\t\t<<set _skulduggeryMulti to (1 + (currentSkillValue('skulduggery') / 2000))>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set _skulduggeryMulti to 1>>\n" +
    "\t<</if>>\n" +
    "\t<<set _money_gain to Math.floor((_base_amount + _variation) * _skulduggeryMulti)>>\n" +
    "<</silently>><<printmoney _money_gain>><</widget>>\n" +
    "\n" +
    "<<widget \"formatmoney\">>\n" +
    "\t<<set _printargs to Math.floor(Math.abs(_args[0]/100)).toLocaleString(\"en-GB\")>>\n" +
    "\t<<set _printargs to _printargs + (_args[0] % 100 ? \".\" + (\"0\" + Math.floor(Math.abs(_args[0] % 100))).slice(-2) : \"\")>>\n" +
    "\t<<set _printmoney to (_args[0] gte 0 ? \"\" : \"-\") + \"£\" + _printargs>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"printmoney\">><<silently>><!-- (amount in pennies, highlight toggle) -->\n" +
    "\t<<if _args.length gt 2 or typeof(_args[0]) isnot \"number\">><!-- sanity checks -->\n" +
    "\t\t<<set _printmoney to '<span class=\"red\">printmoney error: invalid arguments: _args</span>'>>\n" +
    "\t<<else>>\n" +
    "\t\t<<formatmoney _args[0]>>\n" +
    "\t<</if>>\n" +
    "\t<<set _text_output to `<span @class='_args[1]?_args[1]:\"gold\"'>` + _printmoney + '</span>'>>\n" +
    "<</silently>><<print _text_output>><</widget>>\n" +
    "\n" +
    "<<widget \"sadism\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set $sadism += _args[0]>>\n" +
    "\t\t<<set $sadism to Math.clamp($sadism, 0, 1000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"masochism\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set $masochism += _args[0]>>\n" +
    "\t\t<<set $masochism to Math.clamp($masochism, 0, 1000)>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"enable_rescue\">>\n" +
    "\t<<set $rescue to 1>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"hypnotised\">>\n" +
    "\t<<if _args[0]>>\n" +
    "\t\t<<set $hypnotised += _args[0]>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"giftSexToys\">>\n" +
    "\t<!-- _args[0] is the named NPC. -->\n" +
    "\t<!-- Currently only works for strap-ons. Will need a refactor when other toy scenes are written. -->\n" +
    "\t<<run window.handSextoysGiftToNPC(_args[0])>>\n" +
    "\t<<set _strapons to checkIfNPCHasCategorySextoy(_args[0],\"strap-on\")>>\n" +
    "\t<<if _strapons.length > 0>>\n" +
    "\t\t<<for _i = 0; _i lt _strapons.length; _i++>>\n" +
    "\t\t\t<<if _strapons[_i].shape is undefined>>\n" +
    "\t\t\t\t<<set _strapons[_i].shape to \"dildo\">>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<if _strapons[_i].prefixdescriptor is undefined>>\n" +
    "\t\t\t\t<<set _strapons[_i].prefixdescriptor to \"\">>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t\t<<generateNewStrapon _strapons[_i].size _strapons[_i].colour _strapons[_i].shape>>\n" +
    "\t\t\t<<giveNNPCnewstrapon _args[0]>>\n" +
    "\t\t<</for>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"bodyliquid\">><<silently>>\n" +
    "\t<!-- first argument is either bodypart, all, outside, inside, or clear (required) -->\n" +
    "\t<!-- second and later arguments are liquid types (semen, goo, nectar, or all; at least one required) -->\n" +
    "\t<!-- last argument is optional and if numeric - specifies the amount (default: 1) -->\n" +
    "\n" +
    "\t<!-- process first argument and delete it so <<bodyliquid all all>> will work as expected -->\n" +
    "\t<<set $_bodypart to _args[0]>>\n" +
    "\t<<run _args.deleteAt(0)>>\n" +
    "\t<<set $_clear to $_bodypart is \"clear\">>\n" +
    "\t<<switch $_bodypart>>\n" +
    "\t\t<<case \"all\" \"clear\">>\n" +
    "\t\t\t<!-- use clone() to make sure we're not modifying setup -->\n" +
    "\t\t\t<<set $_bodypart to clone(setup.bodyliquid.bodyparts)>>\n" +
    "\t\t<<case \"outside\">>\n" +
    "\t\t\t<<set $_bodypart to clone(setup.bodyliquid.bodyparts)>>\n" +
    "\t\t\t<<run $_bodypart.delete(setup.bodyliquid.innerbodyparts)>>\n" +
    "\t\t<<case \"inside\">>\n" +
    "\t\t\t<<set $_bodypart to clone(setup.bodyliquid.innerbodyparts)>>\n" +
    "\t\t<<default>>\n" +
    "\t\t\t<<if setup.bodyliquid.bodyparts.includes($_bodypart)>>\n" +
    "\t\t\t\t<<set $_bodypart to [$_bodypart]>>\n" +
    "\t\t\t<<else>>\n" +
    "\t\t\t\t<<set $_fail to true>>\n" +
    "\t\t\t<</if>>\n" +
    "\t\t<!--/case -->\n" +
    "\t<</switch>>\n" +
    "\t<<if !$_fail>>\n" +
    "\t\t<<if !V.player.penisExist>>\n" +
    "\t\t\t<<run $_bodypart.delete(\"penis\")>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if !V.player.vaginaExist>>\n" +
    "\t\t\t<<run $_bodypart.delete(\"vagina\", \"vaginaoutside\")>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if $_bodypart.length is 0 and $options.debugdisable is \"f\">>\n" +
    "\t\t\t<<run console.log(Utils.GetStack(), \"- attempt to slap bodyliquid on nonexistent genitals failed successfully\")>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<!-- select which liquids to modify, fail if none -->\n" +
    "\t<<if $_clear or _args.includes(\"all\")>>\n" +
    "\t\t<<set $_liquids to clone(setup.bodyliquid.liquidtype)>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $_liquids to []>>\n" +
    "\t\t<<if _args.includesAny(\"goo\", \"slime\", \"fluid\")>>\n" +
    "\t\t\t<!-- \"slime\" alternative because slime is a common descriptor -->\n" +
    "\t\t\t<!-- \"fluid\" alternative for <<tentacleadv>> -->\n" +
    "\t\t\t<<set $_liquids.push(\"goo\")>>\n" +
    "\t\t<</if>>\n" +
    "\t\t<<if _args.includes(\"nectar\")>>\n" +
    "\t\t\t<<set $_liquids.push(\"nectar\")>>\n" +
    "\t\t<</if>>\n" +
    "\t<</if>>\n" +
    "\t<<if _args.includesAny(\"cum\", \"semen\")>>\n" +
    "\t\t<!-- \"cum\" alternative because cum is a common descriptor -->\n" +
    "\t\t<<set $_liquids.push(\"semen\")>>\n" +
    "\t<</if>>\n" +
    "\t <<if $_liquids.length is 0>>\n" +
    "\t\t<<set $_fail to true>>\n" +
    "\t <</if>>\n" +
    "\n" +
    "\t<!-- process The Final Argument, if integer - assume amount, else default to 1 -->\n" +
    "\t<<if $_clear>>\n" +
    "\t\t<<set $_amount to -10>>\n" +
    "\t<<elseif Number.isInteger(_args.last())>>\n" +
    "\t\t<<set $_amount to _args.last()>>\n" +
    "\t<<else>>\n" +
    "\t\t<<set $_amount to 1>>\n" +
    "\t<</if>>\n" +
    "\n" +
    "\t<<if $_fail is true>>\n" +
    "\t<<else>>\n" +
    "\t\t<<for $_part range $_bodypart>>\n" +
    "\t\t\t<<for $_type range $_liquids>>\n" +
    "\t\t\t\t<<set $player.bodyliquid[$_part][$_type] to Math.clamp($player.bodyliquid[$_part][$_type] + $_amount, 0, 5)>>\n" +
    "\t\t\t<</for>>\n" +
    "\t\t<</for>>\n" +
    "\t<</if>>\n" +
    "\t<</silently>>\n" +
    "\t<<if $options.debugdisable is \"f\" and $_fail is true>>\n" +
    "\t\t<<error {\n" +
    "\t\t\tmessage\t: `bodyliquid widget on ${Utils.GetStack()} failed, please report`,\n" +
    "\t\t\tsource\t: `Arguments: ${$_bodypart} | ${_args[0]} | ${_args[1]} | ${_args[2]} | ${_args[3]}.`\n" +
    "\t\t}>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "\n" +
    "<<widget \"semenswallowedstat\">>\n" +
    "\t<<if $statFreeze isnot true and $args[0] isnot undefined>>\n" +
    "\t\t<<set $semenswallowedstat += $args[0]>>\n" +
    "\t<</if>>\n" +
    "<</widget>>\n" +
    "\n" +
    "<<widget \"animalsemenswallowedstat\">>\n" +
    "\t<<if $statFreeze isnot true and $args[0] isnot undefined>>\n" +
    "\t\t<<set $animalsemenswallowedstat += $args[0]>>\n" +
    "\t<</if>>\n" +
    "<</widget>>";

let json = "[{\n" +
    "        \"f\": \"Your\",\n" +
    "        \"t\": \"你的\",\n" +
    "        \"pos\": 1287,\n" +
    "        \"fileName\": \"crossdressing.twee\",\n" +
    "        \"pN\": \"School Infirmary Robin CD Widgets\"\n" +
    "      },\n" +
    "      {\n" +
    "        \"f\": \"caged\",\n" +
    "        \"t\": \"被笼子\",\n" +
    "        \"pos\": 1329,\n" +
    "        \"fileName\": \"crossdressing.twee\",\n" +
    "        \"pN\": \"School Infirmary Robin CD Widgets\"\n" +
    "      },\n" +
    "      {\n" +
    "        \"f\": \"locked away\",\n" +
    "        \"t\": \"锁住的\",\n" +
    "        \"pos\": 1377,\n" +
    "        \"fileName\": \"crossdressing.twee\",\n" +
    "        \"pN\": \"School Infirmary Robin CD Widgets\"\n" +
    "      }]";

let inputs = JSON.parse(json);
let raw_data = [];

for (const v of inputs) {
    let dst = {
        pos: v.pos,
        from: v.f,
        to: v.t
    };
    raw_data.push(dst);
}


Test runner

Ready to run.

Testing in
TestOps/sec
Hint1
for (const v of raw_data){
    tryReplaceStringFuzzyWithHint(src_str, v, "Widgets");
}
ready
Hint2
for (const v of raw_data){
    tryReplaceStringFuzzyWithHint2(src_str, v, "Widgets");
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.