code:
:: Abomination [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "abomination">>
<<abomination>>
You awaken to find yourself being assaulted by a strange beast!
<</if>>

<<effects>>
<<effectsmult>><<man>>

<<stateman>>

<<actionsmult>>

	<<if $alarm is 1>>
		<<if $rescue is 1>>
		[[Next->Abomination]]
		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			[[Next->Abomination]]
			<<else>>
			[[Next->Abomination]]
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	[[Next->Abomination]]
	<<elseif $enemyhealth lte 0>>
	[[Next->Abomination]]
	<<else>>
	[[Next->Abomination]]
	<</if>>

:: Monster Test [nobr]
<<set $outside to 1>><<set $location to "sea">><<effects>>

<<if $molestationstart is 1>><<set $molestationstart to 0>>
<<set $combat to 1>>
<<molested>>
<<controlloss>>

<<set $enemytype to "tentacles">>
<<set $tentacleno to 6>>
<<set $tentaclehealth to 15>>
<<tentaclestart>>

<<set $vorestage to 1>>
<<set $vorecreature to "whale">>
<<set $vorestrength to 1>>
	<<if $hallucinations gte 1>>
	<<set $voretentacles to 1>>
	<<else>>
	<<set $voretentacles to 0>>
	<</if>>

<<set $swarmname to "swarms">>
<<set $swarmmove to "moving towards you">>
<<set $swarmcreature to "eels">>
<<set $swarmspill to "encircle you">>
<<set $swarmsteady to "fend off">>
<<set $swarmSteady to "Fend off">>
<<set $swarmcount to 10>>
<<set $swarm1 to "active">>
<<set $swarm2 to "contained">>
<<set $swarm3 to "contained">>
<<set $swarm4 to "contained">>
<<set $swarm5 to "contained">>
<<set $swarm6 to "contained">>
<<set $swarm7 to "contained">>
<<set $swarm8 to "contained">>
<<set $swarm9 to "contained">>
<<set $swarm10 to "contained">>
<<set $swarmactive to 1>>
<<set $swimdistance to 20>>
<<set $water to 1>>

<</if>>

<<voreeffects>><<swarmeffects>><<effectstentacles>>
<<vore>><<swarm>><<tentacles>>
<<statetentacles>>
<<voreactions>><<swarmactions>><<actionstentacles>>

<<if $stress gte 10000>>
<<link [[Next|Monster Test]]>><</link>><<nexttext>>
<<elseif $vorestage lte 0>>
<<link [[Next|Monster Test]]>><</link>><<nexttext>>
<<else>>
<<link "Next">><><</link>><<nexttext>>
<</if>>

repo_name: stalesandwich/degrees

license: unknown


code:
mouse.tooltip {font-weight: normal;}

mouse.tooltip span {
    z-index:210;
    display:none;
    padding:14px 10px;
    margin-top:50px; margin-left:-40px;
    min-width: 50px;
    max-width: 450px !important;
    line-height:20px;
    border-radius:2px;
    box-shadow: 0px 0px 8px 4px #000;
}

mouse.tooltip:hover span{
    display:inline;
    position:absolute;
    border:2px solid #000000;
    color: #000000;
    font-weight: normal;
    text-decoration: none;
    font-size:1.0em;
    background:#C4C4C4 repeat-x 0 0;
}

#ui-bar {
	z-index: 300;
}

#ui-bar-toggle {
	z-index: 500;
}

body.has-images header#title {
	display: none;
}
body.has-images #story-caption {
	/* 256 px: images
	   2.5 em: ui-bar-body margin-top */
	margin-top: calc(256px - 2.5em);
}

.red {
	color: #EC3535;
}

.pink {
	color: #E40081;
}

.purple {
	color: #AA4BC8;
}

.blue {
	color: #4372FF;
}

.lblue {
	color: #559BC0;
}

.teal {
	color: #08C1C1;
}

.green {
	color: #38B20A;
}

.brat {
	color: #B75D41;
}

.meek {
	color: #C44B8B;
}

.def {
	color: #D20000;
}

.hide a {
	color: #eee;
	text-decoration: none;
}

.hide a:hover {
	color: #eee;
	text-decoration: none;
}

.sub {
	color: #AA4BC8;
}

.gold {
	color: #FFD700;
}

.orange {
	color: #f28500
}

.tangerine {
	color: #f28500
}

.black {
	color: #929292
}

.brown {
	color: #aa7243
}

.lewd {
	color: #E04880
}

.grey {
	color: #B7B7B7
}

.general {
    opacity: 0.99;

}

.wetstage2 {
    opacity: 0.90;
		filter: brightness(0.95);

}

.wetstage3 {
    opacity: 0.75;
		filter: brightness(0.90);

}

#statbar {
		position: relative;
		left: 0px;
		top: 9px;
	z-index: 0;
}

#img {
	height: 256px;
	width: 256px;
	overflow: hidden;

	position: fixed;
	top: 0px;
	left: 0px;
}

#img > * {
	position: absolute;
	top: 0px;
	left: 0px;
}

.layer-bg {
	z-index: 0;
}

#daystate {
		position: fixed;
		left: 0px;
		top: 0px;
	z-index: 10;
}

#weather {
		position: fixed;
		left: 0px;
		top: 64px;
	z-index: 10;
}

#location {
		position: fixed;
		left: 0px;
		top: 128px;
	z-index: 10;
}

#divandroidxray {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 256px;

}

#xrayvaginal, #divsex #xrayvaginal {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 3;
}

#xrayvaginalcum, #divsex #xrayvaginalcum {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 4;
}

#xraypenile, #divsex #xraypenile {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 2;
}

#xrayanal, #divsex #xrayanal {
		position: absolute;
		left: 512px;
		top: 0px;
	z-index: 1;
}

#xrayandroidanal, #divsex #xrayandroidanal {
		position: relative;
		left: 0px;
		top: -150px;
	z-index: 1;
}

/*
removed unused:
#arm #underacc #legs #feet #bottom #top #sleeve #outer #outersleeve #neckacc
*/

.layer-backhair {
	z-index: 10;
}
.layer-base {
	z-index: 20;
}
.layer-hirsute {
	z-index: 21;
}
.layer-eyes {
	z-index: 30;
}
.layer-sclera {
	z-index: 35;
}
.layer-mouth {
	z-index: 40;
}
.layer-blush {
	z-index: 50;
}
.layer-tears {
	z-index: 55;
}
.layer-hair {
	z-index: 60;
}
.layer-brow {
	z-index: 62;
}
.layer-lashes {
	z-index: 64;
}
.layer-under {
	z-index: 75;
}
.layer-legsacc {
	z-index: 80;
}
.layer-feetacc {
	z-index: 85;
}
.layer-lower {
	z-index: 90;
}
.layer-upper {
	z-index: 95;
}
.layer-collar {
	z-index: 100;
}
.layer-rightarm {
	z-index: 105;
}
.layer-leftarm {
	z-index: 105;
}
.layer-rightarmclothes {
	z-index: 110;
}
.layer-leftarmclothes {
	z-index: 110;
}
.layer-faceacc {
	z-index: 125;
}
.layer-headacc {
	z-index: 130;
}

#divsex {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 768px;

}
#divsex > * {
	position: absolute;
	left: 256px;
	top: 0px;
}

#divandroidsex {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 256px;
		left: -256px;

}

#closepenis, #divsex #closepenis {
		position: absolute;
		left: 321px;
		top: -30px;
	z-index: 250;
}

#closeanus, #divsex #closeanus {
		position: absolute;
		left: 451px;
		top: -30px;
	z-index: 250;
}

#closevagina, #divsex #closevagina {
		position: absolute;
		left: 386px;
		top: -30px;
	z-index: 250;
}

.layer-voreback {
	z-index: -20;
}
.layer-sexbaseback {
	z-index: 1;
}
.layer-sexpenis {
	z-index: 5;
}
.layer-beastback {
	z-index: 6;
}
.layer-sexbase {
	z-index: 10;
}
.layer-sexbaseoverlay {
	z-index: 12;
}
.layer-sexeyes {
	z-index: 20;
}
.layer-sexsclera {
	z-index: 30;
}
.layer-sexmouth {
	z-index: 40;
}
.layer-sexblush {
	z-index: 50;
}
.layer-sextears {
	z-index: 60;
}
.layer-beastfront {
	z-index: 65;
}
.layer-sexhair {
	z-index: 70;
}
.layer-sexbrow {
	z-index: 80;
}
.layer-sexlashes {
	z-index: 90;
}
.layer-sexbasefront {
	z-index: 100;
}
.layer-doggyhirsute {
	z-index: 101;
}
.layer-sexunder {
	z-index: 102;
}
.layer-sexlower {
	z-index: 104;
}
.layer-sexupper {
	z-index: 106;
}
.layer-sexaboveclothes {
	z-index: 108;
}
.layer-foreground {
	z-index: 200;
}

#divmap {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 256px;

}

#map {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 10;
}

#maparrow {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 20;
}

/*! <<numberpool>> macro set for SugarCube v2 */
div[id|="numberbox-body"] {
	display: inline-block;
}
div[id|="numberbox-body"] input {
	min-width: 3em;
	width: 3em;
	text-align: center;
}
div[id|="numberbox-body"] button {
	font-family: "tme-fa-icons";
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: normal;
	speak: none;
	padding: 0.4em 0.6em;
}
div[id|="numberbox-body"] button[id|="numberbox-minus"] {
	margin-right: 0.4em;
}
div[id|="numberbox-body"] button[id|="numberbox-plus"] {
	margin-left: 0.4em;
}

div[id|="numberslider-body"] {
	display: inline-block;
}
div[id|="numberslider-body"] span {
	display: inline-block;
	/*font-size: 1.25em;*/
	margin-left: 0.25em;
	min-width: 3em;
	text-align: center;
	vertical-align: middle;
}
div[id|="numberslider-body"] input {
	-webkit-appearance: none;
	cursor: pointer;
	height: 1.25em;
	min-width: 20em;
	vertical-align: middle;
}
div[id|="numberslider-body"] input:focus {
	outline: none;
}
div[id|="numberslider-body"] input::-webkit-slider-runnable-track {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
	cursor: pointer;
	height: 10px;
	width: 100%;
}
div[id|="numberslider-body"] input::-webkit-slider-thumb {
	-webkit-appearance: none;
	background: #35a;
	border: 1px solid #57c;
	border-radius: 0;
	cursor: pointer;
	height: 18px;
	margin-top: -5px;
	width: 33px;
}
div[id|="numberslider-body"] input:focus::-webkit-slider-runnable-track {
	background: #222;
}
div[id|="numberslider-body"] input::-moz-range-track {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
	cursor: pointer;
	height: 10px;
	width: 100%;
}
div[id|="numberslider-body"] input::-moz-range-thumb {
	background: #35a;
	border: 1px solid #57c;
	border-radius: 0;
	cursor: pointer;
	height: 18px;
	width: 33px;
}
div[id|="numberslider-body"] input::-ms-track {
	background: transparent;
	border-color: transparent;
	color: transparent;
	cursor: pointer;
	height: 10px;
	width: 99%; /* fallback for MS browsers without support for calc() */
	width: calc(100% - 1px);
}
div[id|="numberslider-body"] input::-ms-fill-lower {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
}
div[id|="numberslider-body"] input::-ms-fill-upper {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
}
div[id|="numberslider-body"] input::-ms-thumb {
	background: #35a;
	border: 1px solid #57c;
	border-radius: 0;
	cursor: pointer;
	height: 16px;
	width: 33px;
}

.meter {
    position: relative;
    height: 0.3em;
    width: 100%;
    background-color: gray;
    text-align: center;
	z-index: -10;
}
.redbar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #EC3535;
	z-index: -10;
}

.pinkbar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #E40081;
	z-index: -10;
}

.purplebar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #AA4BC8;
	z-index: -10;
}

.bluebar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #4372FF;
	z-index: -10;
}

.lbluebar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #559BC0;
	z-index: -10;
}

.tealbar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #08C1C1;
	z-index: -10;
}

.greenbar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #38B20A;
	z-index: -10;
}

.goldbar {
    position: absolute;
    left: 0;
    top: 0;
    height: 0.3em;
    background-color: #FFD700;
	z-index: -10;
}

/*
 * Hair/Eye/Clothing colour filters
 * Expected document structure:
 * - some outer element has .hair-$haircolour (or .eye-/.lower-/.upper-/.under-) class
 * - inner image element has .colour-hair (or -eye/-lower/-upper/-under) class
 */
/* Hair: base is red */
.hair-black .colour-hair {
	filter: hue-rotate(0deg) saturate(0%) brightness(40%) contrast(100%);
}
.hair-blond .colour-hair {
	filter: hue-rotate(50deg) saturate(120%) brightness(160%) contrast(100%) sepia(0.6);
}
.hair-blue .colour-hair {
	filter: hue-rotate(210deg) saturate(200%) brightness(60%) contrast(150%);
}
.hair-brown .colour-hair {
	filter: hue-rotate(40deg) saturate(100%) brightness(80%) contrast(100%);
}
.hair-ginger .colour-hair {
	filter: hue-rotate(30deg) saturate(90%) brightness(110%) contrast(100%);
}
.hair-green .colour-hair {
	filter: hue-rotate(90deg) saturate(100%) brightness(100%) contrast(100%);
}
.hair-pink .colour-hair {
	filter: hue-rotate(-20deg) saturate(50%) brightness(130%) contrast(100%);
}
.hair-purple .colour-hair {
	filter: hue-rotate(-90deg) saturate(110%) brightness(60%) contrast(200%);
}
.hair-red .colour-hair {
	filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
}
.hair-white .colour-hair {
    filter: hue-rotate(0deg) saturate(0%) brightness(160%) contrast(100%);
}
/* Eye: base is hazel */
.eye-dark-blue .colour-eye {
	filter: hue-rotate(170deg) brightness(90%) saturate(100%) contrast(140%);
}
.eye-light-blue .colour-eye {
	filter: hue-rotate(150deg) brightness(180%) saturate(70%) contrast(100%);
}
.eye-purple .colour-eye {
	filter: hue-rotate(-120deg) brightness(80%) saturate(200%) contrast(160%);
}
.eye-hazel .colour-eye {
	filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
}
.eye-amber .colour-eye {
	filter: hue-rotate(0deg) brightness(170%) saturate(100%) contrast(100%);
}
.eye-green .colour-eye {
	filter: hue-rotate(30deg) brightness(140%) saturate(100%) contrast(100%);
}
/* Clothing: base is red */
.upper-blue .colour-upper, .lower-blue .colour-lower, .under-blue .colour-under {
	filter: hue-rotate(-120deg) saturate(100%) brightness(100%) contrast(100%);
}
.upper-white .colour-upper, .lower-white .colour-lower, .under-white .colour-under {
	filter: hue-rotate(0deg) saturate(0%) brightness(440%) contrast(140%);
}
.upper-red .colour-upper, .lower-red .colour-lower, .under-red .colour-under {
	filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
}
.upper-green .colour-upper, .lower-green .colour-lower, .under-green .colour-under {
	filter: hue-rotate(120deg) saturate(100%) brightness(150%) contrast(100%);
}
.upper-black .colour-upper, .lower-black .colour-lower, .under-black .colour-under {
	filter: hue-rotate(0deg) saturate(0%) brightness(100%) contrast(150%);
}
.upper-pink .colour-upper, .lower-pink .colour-lower, .under-pink .colour-under {
	filter: hue-rotate(-30deg) saturate(50%) contrast(100%) brightness(160%);
}
.upper-purple .colour-upper, .lower-purple .colour-lower, .under-purple .colour-under {
	filter: hue-rotate(-90deg) saturate(100%) brightness(100%) contrast(100%);
}
.upper-tangerine .colour-upper, .lower-tangerine .colour-lower, .under-tangerine .colour-under {
	filter: hue-rotate(60deg) saturate(150%) brightness(200%) contrast(100%);
}
.upper-yellow .colour-upper, .lower-yellow .colour-lower, .under-yellow .colour-under {
	filter: hue-rotate(65deg) saturate(100%) brightness(290%) contrast(300%);
}

/*
 * Animation-related classes. Work-in-progress
 * Expected document structure:
 * <div class="i256" -- should have the image size-related class
 *                     (or have fixed size & overflow: hidden any other way)
 *    <img class="anim-2s anim-2f" -- should have
 *           1) duration-related class like "anim-2s" (2 seconds)
 *           2) frame count-related class like "anim-2f" (2 frames)
 *        OR
 *     *, .i128 > *, .i64 > * {
	position: absolute;
}
.anim-1s, .anim-2s {
    animation-iteration-count: infinite;
    animation-name: anim-default;
}

/* joint duration & frame-count classes */

/* generic idle animation, -slow(default)/-mid/-fast  */
.anim-idle-1f, .anim-idle-1f-slow { }
.anim-idle-2f, .anim-idle-2f-slow {
	animation-duration: 2s; /* 1s x 2 */
	animation-timing-function: steps(2);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-idle-3f, .anim-idle-3f-slow {
	animation-duration: 3s; /* 1s x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-idle-4f-mid {
	animation-duration: 1320ms; /* 330ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-idle-4f-fast {
	animation-duration: 320ms; /* 80ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* sex animations, main slot */
.anim-doggy-4f-vfast {
	animation-duration: 320ms; /* 80ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-fast {
	animation-duration: 440ms; /* 110ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-mid {
	animation-duration: 680ms; /* 170ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-slow {
	animation-duration: 1320ms; /* 330ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* sex animations, close-up slots */
.anim-close-3f-vfast {
	animation-duration: 240ms; /* 80ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-3f-fast {
	animation-duration: 330ms; /* 110ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-3f-mid {
	animation-duration: 510ms; /* 170ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-3f-slow {
	animation-duration: 990ms; /* 330ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-vfast {
	animation-duration: 320ms; /* 80ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-fast {
	animation-duration: 440ms; /* 110ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-mid {
	animation-duration: 680ms; /* 170ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-slow {
	animation-duration: 1320ms; /* 330ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-vfast {
	animation-duration: 400ms; /* 80ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-fast {
	animation-duration: 550ms; /* 110ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-mid {
	animation-duration: 850ms; /* 170ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-slow {
	animation-duration: 1650ms; /* 330ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-vfast {
	animation-duration: 480ms; /* 80ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-fast {
	animation-duration: 660ms; /* 110ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-mid {
	animation-duration: 1020ms; /* 170ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-slow {
	animation-duration: 1980ms; /* 330ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

.anim-xray-8f-vfast {
	animation-duration: 320ms; /* 40ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-xray-8f-fast {
	animation-duration: 480ms; /* 60ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-xray-8f-mid {
	animation-duration: 640ms; /* 80ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-xray-8f-slow {
	animation-duration: 1320ms; /* 170ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* duration related-classes.
   When adding, don't forget to add it to rule above with animation-iteration-count */
.anim-1s { animation-duration: 1s; }
.anim-2s { animation-duration: 2s; }

/* frame-count related classes */
.anim-2f { animation-timing-function: steps(2); }
.anim-4f { animation-timing-function: steps(4); }

@keyframes anim-default {
      0% { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}


code:
:: dummy
/*
This is special passage to avoid false positive error in sanityCheck build script. Do not uncomment anything!

$dancestudioanger
$wolfpackrob
$torturesurvivor
$communityservice
$winterlakeknown
$robinrescued
$sleeptransform
$diagnosis
$passage
$tags
$uppertowelno
$lowertowelno
$upperplantno
$lowerplantno
$averylust

*/


code:
:: Residential alleyways [nobr]
<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "residential">>

You are in an alleyway in the residential district.
<<if $daystate is "day">>
There are a lot of people around.
<<elseif $daystate is "dusk">>
You hear children playing.
<<elseif $daystate is "night">>
You hear a dog barking.
<<elseif $daystate is "dawn">>
There are many people around.
<</if>>
Your home is nearby.

<<if $exposed gte 1>><<exhibitionismalley>><</if>>
<<if $arousal gte 10000>>
<<orgasmstreet>>
<</if>>

<<if $stress gte 10000>><<passoutalley>>
<<else>>
<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
	<<if $danger gte (9900 - $allure) and $eventskip is 0>>
	<<eventsstreet>>
	<<else>>
Places of interest

		<<if $exposed gte 1>>
<<link [[Go home (0:02)->Home Fence]]>><<pass 2>><</link>>

		<<else>>
<<link [[Go home (0:02)->Garden]]>><<pass 2>><</link>>

		<</if>>

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<else>>
Travel

<<domus>>

<<barb>>

<<danube>>

<<connudatus>>

		<</if>>

Alternate routes

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<else>>
<<commercial>>

		<</if>>
<<stormdrain>>

<<if $images gte 1>><<else>><<textmap>><</if>>

	<</if>>
<</if>>
<<set $eventskip to 0>>

:: Commercial alleyways [nobr]
<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "commercial">>
You are in an alleyway in the commercial district.
<<if $daystate is "day">>
You can hear the commotion of the high street.
<<elseif $daystate is "night">>
You hear laughter from a nearby building.
<<else>>
Many doors stand open and you hear voices within.
<</if>>
There's a ladder to your left, you think it will take you to the rooftops.

<<if $exposed gte 1>><<exhibitionismalley>>
	<<if $daystate isnot "night">>
	Connudatus street is packed with stalls. You might be able to cross the street by hiding under them. If something went wrong however, you'd find yourself exposed in the middle of a busy public street.

	<</if>>
<</if>>
<<if $arousal gte 10000>>
<<orgasmstreet>>
<</if>>

<<if $stress gte 10000>><<passoutalley>>
<<else>>
<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
	<<if $danger gte (9900 - $allure) and $eventskip is 0>>
	<<eventsstreet>>
	<<else>>
Places of interest

		<<if $daystate isnot "night" and $exposed gte 1>>
<<link [[Sneak under the stalls (0:10)|Stalls Ex]]>><<pass 10>><</link>>

		<</if>>

<<link [[Climb the ladder (0:02)->Commercial rooftops]]>><<pass 2>><</link>>

		<<if $daystate isnot "night" and $exposed gte 1>>
		<<else>>
Travel

<<connudatus>>

<<cliff>>

<<wolf>>

<<high>>

		<</if>>

Alternate routes

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<else>>
<<residential>>

<<park>>

		<</if>>
<<stormdrain>>

<<if $images gte 1>><<else>><<textmap>><</if>>

	<</if>>
<</if>>

<<set $eventskip to 0>>

:: Park [nobr]
<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "park">>

You are in the park.
<<if $daystate is "dawn">>
There are a few people out walking or jogging. Some have dogs with them.
<<elseif $daystate is "day">>
There are many people around. Small children play in the playground.
<<elseif $daystate is "dusk">>There are many people around. Children play in the playground.
<<elseif $daystate is "night">>There is no one around.
<</if>>

<<if $exposed gte 1>><<exhibitionismpark>>
	<<if $daystate isnot "night">>
	You can hear the commotion of the High Street, there's no way you'll be able to cross like this. However, there's a depot from which crates are being carried across the road, maybe you could hide in one of them.

	<</if>>
<</if>>
<<if $arousal gte 10000>>
<<orgasmstreet>>
<</if>>

<<if $stress gte 10000>><<passoutpark>>
<<else>>
<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
	<<if $danger gte (9900 - $allure) and $eventskip is 0>>
	<<eventsstreet>>
	<<else>>
Places of interest

		<<if $scienceproject is "ongoing" and $sciencelichenknown is 1 and $sciencelichenpark is 0 and $exposed lte 0>>
		<<link [[Examine lichen for science project|Park Lichen]]>><</link>>

		<</if>>
	<<link [[Men's toilets|Men's Toilets]]>><</link>>

	<<link [[Women's toilets|Women's Toilets]]>><</link>>

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<link [[Hide in a Crate (0:10)|Crate Ex]]>><<pass 10>><</link>>

		<<else>>
Travel

<<high>>

<<starfish>>

<<oxford>>

<<nightingale>>

		<</if>>

Alternate routes

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<else>>
<<commercial>>

<<industrial>>

		<</if>>
<<stormdrain>>

		<<if $historytrait gte 1 and $parktunnelintro gte 1>>
		<<link [[Secret tunnel to school (0:05)|School Rear Playground]]>><<pass 5>><</link>>

		<</if>>

<<if $images gte 1>><<else>><<textmap>><</if>>

	<</if>>
<</if>>

<<set $eventskip to 0>>

:: Industrial alleyways [nobr]
<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "industrial">>
You are in an alleyway in the industrial district.
<<if $daystate is "day">>
You hear machines operating in the buildings around you.
<<elseif $daystate is "night">>
<<else>>
You hear the engines of heavy vehicles.
<</if>>
There's a ladder to your right, you think it will take you to the rooftops. The rear of the school protrudes into this area, separated by a spiked fence.

<<if $exposed gte 1>><<exhibitionismalley>><</if>>
<<if $arousal gte 10000>>
<<orgasmstreet>>
<</if>>

<<if $stress gte 10000>><<passoutalley>>
<<else>>
<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
	<<if $danger gte (9900 - $allure) and $eventskip is 0>>
	<<eventsstreet>>
	<<else>>
Points of interest

<<link [[Climb the ladder (0:02)->Industrial rooftops]]>><<pass 2>><</link>>

<<link [[Back door to bus station (0:02)|Bus Station Back Entrance]]>><<pass 2>><</link>>

<<link [[Climb over the fence into the school grounds (0:05)|School Rear Fence]]>><<pass 5>><</link>>

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<else>>
Travel

<<oxford>>

<<mer>>

<<elk>>

<<harvest>>

		<</if>>

Alternate routes

		<<if $exposed gte 1 and $daystate isnot "night">>
		<<else>>
<<park>>

		<</if>>
<<stormdrain>>

<<if $images gte 1>><<else>><<textmap>><</if>>

	<</if>>
<</if>>
<<set $eventskip to 0>>

:: Widgets Passout Alley [widget]
<<widget "passoutalley">><<nobr>>
[[Everything fades to black...->Passout alley]]
<</nobr>><</widget>>

:: Passout alley [nobr]
You've pushed yourself too much.

<<passout>>
<<set $safealley to 0>>
<<set $dangeralley to 0>>
<<set $danger to random(1, 10000)>>

<<if $danger gte (9900 - $allure)>><<set $dangeralley  to random(1, 100)>><</if>>

<<if $danger lt (9900 - $allure)>><<set $safealley to random(1, 100)>><</if>>

<<if $dangeralley gte 71>><<link [[Wake up|Abduction]]>><<set $molestationstart to 1>><</link>>
<<elseif $dangeralley gte 45>><<link [[Wake up|Street Wake]]>><</link>>
<<elseif $dangeralley gte 1>><<link [[Wake up|Molestation alley]]>><<set $molestationstart to 1>><</link>><</if>>

<<if $safealley gte 1>><<ambulance>><</if>>

<<pass 1 hour>>

<<set $trauma +=10>><<set $stress -= 2000>>

:: Widgets Industrial Alleyways Ex [widget]
<<widget "industrialex1">><<nobr>>

<<generate1>><<person1>>You continue on, your heart pounding in your chest. You peek round a corner to make sure the way forward is safe. Just before you move however, a force impacts your left leg, closely followed by a sharp pain. You see the culprit as you fall to the ground, a <<personstop>> <<He>> drops the metal pipe and is on top of you before you can recover.

<<set $pain += 50>><<set $molestationstart to 1>>

[[Next->Molestation Industrial]]

<</nobr>><</widget>>

<<widget "industrialex2">><<nobr>>

You come to a dead end, your path blocked by a brick wall. You hear voices coming from the way you arrived. If you go back that way, you fear your <<lewdness>> will be seen. You notice a small hole at the base of the wall, maybe large enough for you to squeeze through. You could also wait until the threat has passed.

<<link [[Squeeze through the hole|Industrial Ex Hole]]>><</link>>

<<link [[Hide and wait for them to pass (0:30)|Industrial Ex Hide]]>><<pass 30>><<stress 6>><</link>><<gstress>>

<</nobr>><</widget>>

:: Widgets Park Ex [widget]
<<widget "parkex1">><<nobr>>

<<generate1>>You move on, keeping to the bushes as much as you can. As you peek around a tree, a pair of arms wrap round you from behind and force you to the ground.

<<set $molestationstart to 1>>

[[Next->Park Woman]]

<</nobr>><</widget>>

<<widget "parkex2">><<nobr>>

You hear a growl beside you.

<<if $daystate isnot "night">>
There are people about. If you run, you'll be seen.

<</if>>

<<if $bestialitydisable is "f">>

<<link [[Run|Park Ex Run]]>><</link>>

<<link [[Stay put|Park Ex Dog Molestation]]>><<set $molestationstart to 1>><</link>>

<<else>>
<<link [[Run|Park Ex Run]]>><</link>>

<</if>>

<</nobr>><</widget>>

:: Widgets Commercial Alleyways Ex [widget]
<<widget "commercialex1">><<nobr>>

<<generate1>><<person1>>You continue on, your heart pounding in your chest. You are peeking around a corner when the door beside you bursts open. A <<person>> carrying a large box rushes through, colliding with you and knocking you both to the ground. <<He>> recovers first, and seizes you by your hair.

<<set $molestationstart to 1>>

<<link [[Next->Molestation Commercial]]>><<set $eventskip to 1>><</link>>

<</nobr>><</widget>>

<<widget "commercialex2">><<nobr>>

You are walking down an alley when you hear people up ahead. You turn back the way you came, but hear people coming from that direction as well. You look around for a way to keep your <<lewdness>> concealed, but there's nothing here except some mannequins lined up against a wall.

<<link [[Pretend to be a mannequin|Commercial Ex Mannequin]]>><</link>>

<<set $rng to random(1,100)>>
<<if $rng gte 61>>
<<link [[Cover yourself and keep walking|Commercial Ex Molestation]]>><<set $molestationstart to 1>><</link>><<gtrauma>><<gstress>>

<<else>>
<<link [[Cover yourself and keep walking|Commercial Ex Exhibition]]>><</link>><<gtrauma>><<gstress>>

<</if>>

<</nobr>><</widget>>

:: Widgets Residential Alleyways [widget]
<<widget "residentialex1">><<nobr>>
<<generate1>>You continue on, your heart pounding in your chest. You hear voices up ahead so you move into a blind alley and duck behind a dumpster. The voices get quieter and you are about to move when the dumpster yawns open! Before you can react, a pair of arms emerge and drag you inside.

<<set $molestationstart to 1>>

[[Next->Molestation Residential]]

<</nobr>><</widget>>

<<widget "residentialex2">><<nobr>>
You continue on, your heart pounding in your chest. You hear voices up ahead, so you move into a blind alley and duck behind a dumpster. The voices get louder, it sounds like a pair of teenagers. They stop at the end of the alley, trapping you. As you look around for an escape route you notice a stray dog looking at your from under a discarded newspaper.

It walks over to you, tail wagging, and begins barking. You hope it doesn't attract attention to you.

<<set $timer to 10>>

<<if $bestialitydisable is "f">>
<<link [[Stroke its ears->Residential Dog]]>><<set $phase to 2>><</link>>

<</if>>
<<link [[Endure|Residential Dog]]>><<set $phase to 1>><<set $noise += 1>><</link>>

<</nobr>><</widget>>

:: Molestation Industrial [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "molestationindustrial">>
<<strangeman2init>>
<</if>>

<<effects>>
<<effectsman>><<man>>

<<stateman>>

<<actionsman>>

	<<if $alarm is 1>>
		<<if $rescue is 1>>
		<<link [[Next->Industrial Alarm]]>><</link>><<nexttext>>
		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			<<link [[Next->Industrial Ejaculation]]>><</link>><<nexttext>>
			<<elseif $enemyhealth lte 0>>
			<<link [[Next->Industrial Escape]]>><</link>><<nexttext>>
			<<else>>
			<<link [[Next->Molestation Industrial]]>><</link>><<nexttext>>
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Industrial Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Industrial Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Molestation Industrial]]>><</link>><<nexttext>>
	<</if>>

:: Industrial Alarm
Double-click this passage to edit it.

:: Industrial Ejaculation [nobr]
<<effects>>

<<ejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
<<He>> gives you one last smack to the face, then leaves you lying on the ground.<<violence 3>>

<<elseif $enemyanger gte 1>>
Without a word, <<he>> gets up and leaves you lying on the ground.

<<else>>
Smiling, <<he>> kisses you on the cheek. "This is for you." <<He>> gets up and leaves you lying on the ground.<<set $money += 500>>

You've gained £5.

<</if>>

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<tearful>> you rise to your feet.

<<clotheson>>

<<endcombat>>

<<industrialeventend>>

:: Industrial Escape [nobr]
<<effects>>

<<He>> recoils in pain, giving you the chance you need to escape. <<tearful>> you keep running until your legs give out and you collapse in a heap.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>

<<industrialeventend>>

:: Molestation alley [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "molestationalley">>
<<generate1>><<strangeman2init>><<set $enemyanger += 60>>
You awaken to find yourself being dragged behind a dumpster by a strange <<person1>><<personstop>>
<</if>>

<<effects>>
<<effectsman>><<man>>

<<stateman>>

<<actionsman>>

	<<if $alarm is 1>>
		<<if $rescue is 1>>
		<<link [[Next->Alley Alarm]]>><</link>><<nexttext>>
		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			<<link [[Next->Alley Ejaculation]]>><</link>><<nexttext>>
			<<elseif $enemyhealth lte 0>>
			<<link [[Next->Alley Escape]]>><</link>><<nexttext>>
			<<else>>
			<<link [[Next->Molestation alley]]>><</link>><<nexttext>>
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Alley Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Alley Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Molestation alley]]>><</link>><<nexttext>>
	<</if>>

:: Molestation Commercial [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "molestationcommercial">>
<<strangewoman1init>><<set $enemyanger += 60>><<set $lefthand to "hair">>
<</if>>

<<effects>>
<<effectsman>><<man>>

<<stateman>>

<<actionsman>>

	<<if $alarm is 1>>
		<<if $rescue is 1>>
		<<link [[Next->Commercial Alarm]]>><</link>><<nexttext>>
		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			<<link [[Next->Commercial Ejaculation]]>><</link>><<nexttext>>
			<<elseif $enemyhealth lte 0>>
			<<link [[Next->Commercial Escape]]>><</link>><<nexttext>>
			<<else>>
			<<link [[Next->Molestation Commercial]]>><</link>><<nexttext>>
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Commercial Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Commercial Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Molestation Commercial]]>><</link>><<nexttext>>
	<</if>>

:: Commercial Alarm
Double-click this passage to edit it.

:: Commercial Ejaculation [nobr]
<<effects>>

<<He>> tenses and presses <<his>> mouth against your neck to muffle the sound of <<his>> climax.

<<ejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
<<He>> gives you a hard bite then leaves you without a word<<violence 3>>

<<elseif $enemyanger gte 1>>
Without a word, <<he>> gets up and leaves you lying on the grass.

<<else>>
Smiling, <<he>> kisses you on the cheek. "This is for you." <<He>> leaves you lying on the grass.<<set $money += 500>>

You've gained £5.

<</if>>

<<tearful>> you struggle to your feet.

<<clotheson>>

<<endcombat>>

<<commercialeventend>>

:: Commercial Escape [nobr]
<<effects>>

<<He>> recoils in pain, giving you the chance you need to escape. <<tearful>> you run round several corners before hiding behind a crate of fruit. No one follows you.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>

<<commercialeventend>>

:: Molestation Residential [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "molestationresidential">>
<<strangeman2init>>
<</if>>

<<if $phase is 1>><<set $rescue to 1>><</if>>
<<effects>>
<<effectsman>><<man>>

<<stateman>>

<<actionsman>>

	<<if $alarm is 1>>
		<<if $rescue is 1>>
		<<link [[Next->Residential Alarm]]>><</link>><<nexttext>>
		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			<<link [[Next->Residential Ejaculation]]>><</link>><<nexttext>>
			<<elseif $enemyhealth lte 0>>
			<<link [[Next->Residential Escape]]>><</link>><<nexttext>>
			<<else>>
			<<link [[Next->Molestation Residential]]>><</link>><<nexttext>>
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Residential Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Residential Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Molestation Residential]]>><</link>><<nexttext>>
	<</if>>

:: Residential Alarm [nobr]
<<effects>><<set $rescued += 1>>

The dumpster opens fully, someone heard your cry. <<generate2>><<generate3>>A <<person2>><<person>> and <<person3>><<person>> grab your shoulders and haul you out, slamming it shut behind you.

<<clothesontowel>>

The <<person1>><<person>> looks concerned. "Good thing we heard you. Are you OK?" <<tearful>> you nod and thank them for the rescue, before parting ways.

<<endcombat>>

<<residentialeventend>>

:: Residential Ejaculation [nobr]
<<ejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
<<He>> bashes your head against the side of the dumpster, then drops you outside.<<violence 3>>

<<elseif $enemyanger gte 1>>
Without a word, <<he>> pushes you outside the dumpster

<<else>>
<<He>> kisses you on the cheek, then lifts you out of the dumpster.

<</if>>

<<tearful>> you gather yourself.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>

<<residentialeventend>>

:: Residential Escape [nobr]
<<effects>>

<<if $phase is 0>>
<<He>> recoils in pain, giving you the chance you need to escape. You push the lid with all your might, creating an opening. <<He>> recovers before you're able to make good on your escape however, and pulls you back down.

<<link [[Next|Molestation Residential]]>><<set $phase to 1>><</link>>
<<set $enemyhealth to $enemyhealthmax>>
<</if>>

<<if $phase is 1>>
<<He>> recoils in pain again. With the dumpster already ajar, you are able to climb out and escape. <<tearful>> you flee around the corner.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>

<<residentialeventend>>
<</if>>

:: Home Fence [nobr]
<<set $outside to 1>><<effects>>

<<if $stress gte 10000>><<passoutalley>><<else>>

You climb over the fence into the garden behind the orphanage.

<<link [[Next|Garden]]>><</link>>

<</if>>

:: Industrial rooftops [nobr]
<<set $outside to 1>><<set $location to "town">><<effects>>
On are on the rooftop of an industrial building. Plumes of smoke rise all around you. Buildings are closely packed, crossing between them should be no problem.

<<if $stress gte 10000>><<passoutalley>>
<<else>>
<<if $exposed gte 1>><<exhibitionismroof>>

There is an industrial chute leading into the park which would allow you to avoid the road.

<<link [[Climb down the ladder (0:02)->Industrial alleyways]]>><<pass 2>><</link>>

<<link [[Climb in the chute (0:02)->Chute]]>><<pass 2>><</link>>

<<else>>

There is an industrial chute leading into the park.

<<link [[Climb down the ladder (0:02)->Industrial alleyways]]>><<pass 2>><</link>>

<<link [[Climb in the chute (0:02)->Chute]]>><<pass 2>><</link>>

<</if>>
<</if>>

:: Chute [nobr]
<<set $outside to 0>><<effects>>

You slide down the chute to the park.

<<if $upperclothes is "naked" and $lowerclothes is "naked" and $underclothes is "naked">>

<<else>>
Your clothing snags on a rut.

<<set $upperintegrity -= 20>>
<<set $lowerintegrity -= 20>>
<<set $underintegrity -= 20>>

<</if>>

<<set $danger to random(1, 10000)>><<set $dangerchute to 0>>
<<if $danger gte (9900 - ($allure * 3))>><<set $dangerchute to random(1)>>
<</if>>

<<if $dangerchute is 1>>
As the chute exit comes into view you see someone has left a cement mixer in front of it!

<<link [[Dodge it at any cost!|Molestation Chute]]>><<set $molestationstart to 1>><</link>>

<<link [[Brace for impact|Cement Mixer]]>><</link>>

<<else>>

<<parkquick>>

<</if>>

<<set $dangerchute to 0>>

:: Molestation Chute [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "molestationchute">>
<<generate1>><<spankmaninit>>
<<person1>>You avoid landing in the mixer, but collide with the edge and knock it over. It shatters against the ground.

As you try to recover, a <<person>> storms over. "I'll show you what happens when you break things that aren't yours!" <<He>> grabs you by the arms, hauls you over to a chair and bends you over <<his>> lap.

<</if>>

<<effects>>
<<effectsman>><<man>>

<<stateman>>

<<actionsman>>

	<<if $enemyanger lte 0>>
	<<link [[Next->Chute Done]]>><</link>><<nexttext>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Chute Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Chute Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Molestation Chute]]>><</link>><<nexttext>>
	<</if>>

:: Cement Mixer [nobr]
<<set $outside to 1>><<effects>>

You curl up and slam into the mixer. Fortunately, the cement cushions your blow. Unfortunately, it's cement. You manage to struggle free,
<<if $underclothes is "naked" and $lowerclothes is "naked" and $upperclothes is "naked">>
stumbling away without attractive notice.

<<else>>
but lose your clothes in the process.

<<underruined>>
<<lowerruined>>
<<upperruined>>

<</if>>

<<parkquick>>

:: Chute Done [nobr]
<<effects>>

"I think you've had enough." <<He>> releases you and you slip to the ground in a heap.

<<He>> leaves you to sob.

<<clotheson>>
<<endcombat>>

<<parkquick>>

:: Chute Ejaculation [nobr]
<<ejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
<<He>> gives you one last spank, then leaves you lying on the ground.<<violence 3>>

<<elseif $enemyanger gte 20>>
Without a word, <<he>> gets up and leaves you lying on the ground.

<<else>>
"I think you've learnt your lesson." <<He>> gets up and leaves you lying on the ground.

<</if>>

<<tearful>> you rise to your feet.

<<clotheson>>

<<endcombat>>

<<parkquick>>

:: Chute Escape [nobr]
<<effects>>

<<He>> recoils in pain. You take the opportunity to squirm free and bolt away. <<tearful>> you run into an area dense with foliage.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>

<<parkquick>>

:: Commercial rooftops [nobr]
<<set $outside to 1>><<set $location to "town">><<effects>>
You are on the rooftop of a commercial building. You can access the shopping centre from here. Buildings are closely packed, crossing between them should be no problem.

<<if $stress gte 10000>><<passoutalley>>
<<else>>
<<if $exposed gte 1>><<exhibitionismroof>>

<<link [[Climb down the ladder (0:02)->Commercial alleyways]]>><<pass 2>><</link>>

<<link [[Shopping centre (0:02)->Shopping Centre Top]]>><<pass 2>><</link>>

<<else>>

<<link [[Climb down the ladder (0:02)->Commercial alleyways]]>><<pass 2>><</link>>

<<link [[Shopping centre (0:02)->Shopping Centre Top]]>><<pass 2>><</link>>

<</if>>
<</if>>

:: Alley Alarm
Double-click this passage to edit it.

:: Alley Ejaculation [nobr]
<<effects>>

<<ejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
<<He>> gives you one last smack to the face, then leaves you lying on the hard concrete.<<violence 3>>

<<elseif $enemyanger gte 1>>
Without a word, <<he>> gets up and leaves you lying on the hard concrete.

<<else>>
Smiling, <<he>> kisses you on the cheek. "This is for you." <<He>> gets up and leaves you lying on the hard concrete.<<set $money += 500>>

You've gained £5.

<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<tearful>> you rise to your feet.

<<clotheson>>

<<endcombat>>
<<set $stress -= 1000>><<set $eventskip to 1>>
<<destination>>

:: Alley Escape [nobr]
<<effects>>

<<He>> falls to the ground, giving you the chance you need to escape. <<tearful>> you run round a few bends and take cover in a shadowed alcove.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>
<<set $stress -= 1000>><<set $eventskip to 1>>
<<destination>>

:: Residential Dog [nobr]
<<effects>>

<<if $noise is 2 and $combat is 0>>
The youths are wondering aloud why the dog is so agitated. They'll find you soon if you don't do something!

<</if>>

<<if $timer is 1 and $combat is 0>>
You hear the youths move away from the alley. You take a peek and see that they are indeed gone. The dog looks dejected as you walk away.

<<endevent>>

<<residentialeventend>>

<<elseif $timer is 1 and $combat is 1>>
You hear the youths move away from the alley. You try to take a peek but the dog tackles you to the ground.

<<set $rescue to 0>>

<<link [[Next|Residential Dog]]>><</link>><<nexttext>>

<<elseif $noise gte 3>>
Fed up with the racket, the pair make their way over.

<<link [[Next|Residential Dog Alarm]]>><</link>><<nexttext>>

<<elseif $phase is 1>>
It continues barking. You're afraid the youths will investigate if this continues.

<<link [[Quietly tell it to shut up|Residential Dog]]>><<set $noise += 1>><</link>>

<<if $bestialitydisable is "f">>
<<link [[Stroke its head->Residential Dog]]>><<set $phase to 2>><</link>>

<</if>>

<<elseif $phase is 2>>
It quiets at your touch, runs in a small circle, then walks right up to you. You notice its penis is erect and ready. It looks at you expectantly.

<<link [[Just keep stroking its head->Residential Dog]]>><<set $noise += 1>><<set $phase to 3>><</link>>

<<link [[Grab its penis|Residential Dog]]>><<handskilluse>><<handstat>><<set $phase to 4>><</link>>

<<elseif $phase is 3>>
You continue to stroke its head, but it doesn't seem pleased and barks again.

<<link [[Just keep stroking its head->Residential Dog]]>><<set $noise += 1>><<set $phase to 3>><</link>>

<<link [[Grab its penis|Residential Dog]]>><<set $phase to 4>><<handskilluse>><<handstat>><</link>>

<<elseif $phase is 4>><<set $molestationstart to 1>><<set $phase to 5>>
You take its penis in your hand. It starts humping against your fingers.

<<link [[Next|Residential Dog]]>><</link>><<nexttext>>

<<elseif $phase is 5>>
  <<if $molestationstart is 1>>
  <<set $molestationstart to 0>>
  <<controlloss>>
  <<violence 1>>
  <<neutral 1>>
  <<molested>>
  <<set $event to "residentialdog">>
  <<dog1init>><<set $beasttype to "dog">><<set $leftarm to "penis">>
  <<set $penis to "leftarm">>

  <</if>>
	<<if $timer gte 1>><<set $rescue to 1>><</if>>

  <<effectsman>>
<<beast>>

  <<stateman>>

  <<actionsman>>

  	<<if $alarm is 1>>
		<<if $rescue is 1>>
		<<link [[Next->Residential Dog Alarm]]>><</link>><<nexttext>>
		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			<<link [[Next->Residential Dog Ejaculation]]>><</link>><<nexttext>>
			<<elseif $enemyhealth lte 0>>
			<<link [[Next->Residential Dog Escape]]>><</link>><<nexttext>>
			<<else>>
			<<link [[Next->Residential Dog]]>><</link>><<nexttext>>
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Residential Dog Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Residential Dog Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Residential Dog]]>><</link>><<nexttext>>
	<</if>>

 <</if>>

:: Residential Dog Alarm [nobr]
<<effects>>

<<if $alarm is 1>>
Your scream alerts the pair.

<</if>>

At the sound of their approach, the dog ceases its adventure and bounds away.

<<endcombat>>

<<generatey1>><<generatey2>>Before you can recover, you are discovered by a <<person1>><<person>> and a <<person2>><<personstop>>

<<set $danger to random(1, 10000)>><<set $dangerstreet to 0>>
<<if $danger gte (9900 - ($allure * 3))>><<set $dangerstreet to random(1, 100)>>

They take advantage of your vulnerability.

<<set $molestationstart to 1>>

[[Next|Residential Pair]]

<<else>>

Seeing you in distress, the <<person1>><<person>> and <<person2>><<person>> help you to your feet.

<<set $rescued += 1>>
<<clothesontowel>>
The <<person1>><<person>> looks concerned. "Are you OK?" <<tearful>> you nod and thank them for their concern, before parting ways.

<<ambulance>>

<</if>>

:: Residential Dog Ejaculation [nobr]
<<beastejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
<<He>> bites you on the thigh, then leaves you lying on the ground.<<violence 3>>

<<elseif $enemyanger gte 1>>
<<He>> barks then leaves you lying on the ground.

<<else>>
<<He>> licks your <<genitals>> then darts away.<<neutral 5>>

<</if>>

<<if $timer gte 1>>The youths leave shortly after.

<</if>>

<<tearful>> you rise to your feet.

<<clotheson>>

<<endcombat>>

<<residentialeventend>>

:: Residential Dog Escape [nobr]
<<effects>>

Finally taking the hint, <<he>> whimpers and flees the alley.
<<if $timer gte 1>>After a short while the youths also leave.<</if>> <<tearful>> you rise to your feet.

<<clotheson>>

<<endcombat>>

<<residentialeventend>>

:: Widgets Residential [widget]
<<widget "residential">><<nobr>>

<<link [[Residential alleyways (0:05)|Residential alleyways]]>><<pass 5>><</link>>

<</nobr>><</widget>>

<<widget "residentialquick">><<nobr>>

<<link [[Residential alleyways|Residential alleyways]]>><</link>>

<</nobr>><</widget>>

<<widget "residentialeventend">><<nobr>>

<<link [[Next|Residential alleyways]]>><<set $eventskip to 1>><</link>>

<</nobr>><</widget>>

:: Widgets Industrial [widget]
<<widget "industrial">><<nobr>>

<<link [[Industrial alleyways (0:05)|Industrial alleyways]]>><<pass 5>><</link>>

<</nobr>><</widget>>

<<widget "industrialquick">><<nobr>>

<<link [[Industrial alleyways|Industrial alleyways]]>><</link>>

<</nobr>><</widget>>

<<widget "industrialeventend">><<nobr>>

<<link [[Next|Industrial alleyways]]>><<set $eventskip to 1>><</link>>

<</nobr>><</widget>>

:: Widgets Commercial [widget]
<<widget "commercial">><<nobr>>

<<link [[Commercial alleyways (0:05)|Commercial alleyways]]>><<pass 5>><</link>>

<</nobr>><</widget>>

<<widget "commercialquick">><<nobr>>

<<link [[Commercial alleyways|Commercial alleyways]]>><</link>>

<</nobr>><</widget>>

<<widget "commercialeventend">><<nobr>>

<<link [[Next|Commercial alleyways]]>><<set $eventskip to 1>><</link>>

<</nobr>><</widget>>

:: Residential Pair [nobr]
<<if $molestationstart is 1>>
<<set $molestationstart to 0>>
<<controlloss>>
<<violence 1>>
<<neutral 1>>
<<molested>>
<<set $event to "molestationindustrial">>
<<man2init>>
<</if>>

<<effects>>
<<effectsman>><<man>>

<<stateman>>

<<actionsman>>

	<<if $alarm is 1>>
		<<if $rescue is 1>>

		<<else>>
		No one comes to your aid.<<set $alarm to 0>>
		<<if $drugged is 1>>Intoxicated as you are, you couldn't cry very convincingly.<</if>>

			<<if $enemyarousal gte $enemyarousalmax>>
			<<link [[Next->Residential Pair Ejaculation]]>><</link>><<nexttext>>
			<<elseif $enemyhealth lte 0>>
			<<link [[Next->Residential Pair Escape]]>><</link>><<nexttext>>
			<<else>>
			<<link [[Next->Residential Pair]]>><</link>><<nexttext>>
			<</if>>
		<</if>>
	<<elseif $enemyarousal gte $enemyarousalmax>>
	<<link [[Next->Residential Pair Ejaculation]]>><</link>><<nexttext>>
	<<elseif $enemyhealth lte 0>>
	<<link [[Next->Residential Pair Escape]]>><</link>><<nexttext>>
	<<else>>
	<<link [[Next->Residential Pair]]>><</link>><<nexttext>>
	<</if>>

:: Residential Pair Ejaculation [nobr]
<<effects>>

<<ejaculation>>

<<if $enemyanger gte ($enemyangermax / 5) * 3>>
They bash your head against the pavement, then leave you.<<violence 3>>

<<elseif $enemyanger gte 1>>
Without a word, they saunter off.

<<else>>
<<person2>>The <<person>> kisses you on the cheek, they then saunter off.

<</if>>

<<understeal>>
<<tearful>> you rise to your feet.

<<clotheson>>
<<endcombat>>

<<destinationeventend>>

:: Residential Pair Escape [nobr]
<<effects>>

The <<person1>><<person>> recoils in pain, giving you the chance you need to escape. <<tearful>> you keep running until your legs give out and you collapse against a wall.

<<if $upperoff isnot 0>>
<<uppersteal>>
<</if>>

<<if $loweroff isnot 0>>
<<lowersteal>>
<</if>>

<<if $underoff isnot 0>>
<<understeal>>
<</if>>

<<clotheson>>
<<endcombat>>

<<destinationeventend>>