Combined Code
frame 1 {
debugText._visible = false;
fade._visible = false;
replayButton._visible = false;
var crook = 0;
var music = new Sound();
music.attachSound('1_music3.wav.mp3');
music.setVolume(50);
music.start(0, 9999);
setInterval(function () {
var v1 = music.position / 1000;
var v3 = 6.84;
var v2 = 86.331;
if (prizeSeq) {
return undefined;
}
if (v1 >= v2) {
music.stop();
music.start(v1 - 79.45945945945947, 9999);
}
}, 1000);
var fadeToBlack = function (fadeDuration, cb) {
fade._visible = true;
fade._alpha = 0;
var start = (new Date()).getTime();
var end = start + fadeDuration;
var id = setInterval(function () {
var v1 = ((new Date()).getTime() - start) / (end - start);
if (v1 >= 1) {
clearInterval(id);
if (cb) {
cb();
}
} else {
fade._alpha = v1 * 100;
}
}, 0);
};
var clearFade = function () {
fade._visible = false;
};
var prizeSeq = 0;
var prize = function () {
if (prizeSeq) {
return undefined;
}
prizeSeq = 1;
fadeToBlack(500, function () {
var v2 = [{'name': 'vomit01.wav', 'delay': 7500}, {'name': 'vomit02.wav', 'delay': 3000}, {'i': 0}, {'i': 0}];
var v1 = v2[Math.floor(Math.random() * v2.length)];
0;
if (v1.i !== undefined) {
v1 = v2[v1.i];
}
music.stop();
var v3 = new Sound();
v3.attachSound(v1.name);
v3.start(0, 1);
setTimeout(function () {
replayButton._visible = true;
replayButton.onRelease = function () {
replayButton._visible = false;
replayButton.onRelease = null;
music.start(0, 9999);
prizeSeq = 0;
clearFade();
curSpeed = 500;
if (Math.random() * 2 | 0) {
curSpeed *= -1;
}
pleasure = 0;
crook = 0;
};
}, v1.delay);
});
};
var points = [null, null, null, null, null];
var addPoint = function (point) {
var v1 = 0;
while (v1 < points.length - 1) {
points[v1] = points[v1 + 1];
++v1;
}
points[points.length - 1] = point;
};
var distance = function (p1, p2) {
return Math.abs(Math.sqrt(Math.pow(Math.abs(p1[0] - p2[0]), 2) + Math.pow(Math.abs(p1[1] - p2[1]), 2)));
};
var GetAngleABC = function (a, b, c) {
var v2 = [b[0] - a[0], b[1] - a[1]];
var v1 = [b[0] - c[0], b[1] - c[1]];
var v4 = v2[0] * v1[0] + v2[1] * v1[1];
var v5 = v2[0] * v1[1] - v2[1] * v1[0];
var v6 = Math.atan2(v5, v4);
return v6 * 180 / Math.PI;
};
var curSpeed = 750;
if (Math.random() * 2 | 0) {
curSpeed *= -1;
}
var grab = false;
onMouseDown = function () {
grab = true;
};
onMouseUp = function () {
grab = false;
};
var RAD2DEG = function (deg) {
return deg * 180 / 3.1415926;
};
var mouseSample = function () {
addPoint([_root._xmouse, _root._ymouse]);
var v3 = 0;
var v6 = 0;
var v4 = 0;
var v7 = 0;
var v2 = 0;
while (v2 < points.length - 1) {
if (points[v2]) {
if (!grab) {
v3 += distance(points[v2], points[v2 + 1]);
if (points[v2 + 2]) {
v4 += GetAngleABC(points[v2], points[v2 + 1], points[v2 + 2]);
++v7;
}
} else {
v3 += points[v2][0] - points[v2 + 1][0];
}
++v6;
}
++v2;
}
if (v7) {
v4 /= v7;
}
if (points[0] && !grab) {
v4 = -v4;
v3 *= v4 / 120;
}
if (Math.abs(curSpeed) <= 1800) {
curSpeed *= 0.99;
} else {
curSpeed *= 0.995;
}
if (grab) {
if (Math.abs(curSpeed) >= 1800) {
curSpeed *= 0.7;
} else {
curSpeed *= 0.8;
}
}
if (Math.abs(curSpeed) >= 4000) {
if (!crook) {
crook = 0.2;
} else {
crook *= 1.025;
}
} else {
if (grab) {
if (Math.abs(curSpeed) >= 1800) {
crook *= 0.75;
} else {
crook *= 0.9;
}
}
}
var v5 = 0;
if (v6) {
var v8 = 49.34;
v5 = 1000 * (v3 / (1000 / v8) * v6);
var v9 = 120;
if (!grab) {
curSpeed += v5 / v9;
} else {
v5 = Math.min(1500, v5);
if (Math.abs(curSpeed) >= 2400) {
v5 *= 0.66;
} else {
if (Math.abs(curSpeed) >= 1400) {
v5 *= 0.88;
}
}
curSpeed += v5 / 2;
}
}
if (debugText._visible) {
debugText.text = '';
debugText.text += 'pixels/sec: ' + Math.round(v5) + '\n';
debugText.text += 'curve: ' + v4 + '\n';
v2 = 0;
while (v2 < points.length) {
if (points[v2]) {
debugText.text += points[v2][0] + ',' + points[v2][1] + '\n';
}
++v2;
}
if (points[0]) {
debugText.text += 'speed: ' + Math.round(curSpeed) + '\n';
debugText.text += 'angle: ' + Math.round(360 * (pos / LOOP_DURATION_IN_SPEED_UNITS)) + ' deg\n';
}
debugText.text += 'grab: ' + grab + '\n';
}
};
var frames = [{'ref': frame1, 'ang': 125}, {'ref': frame2, 'ang': 120}, {'ref': frame3, 'ang': 115}, {'ref': frame4, 'ang': 100}, {'ref': frame5, 'ang': 60}, {'ref': frame6, 'ang': 53}, {'ref': frame7, 'ang': 48}, {'ref': frame8, 'ang': 40}, {'ref': frame9, 'ang': 0}, {'ref': frame10, 'ang': -22.3}, {'ref': frame11, 'ang': 308}, {'ref': frame12, 'ang': 297}, {'ref': frame13, 'ang': 277}, {'ref': frame14, 'ang': 258.5}, {'ref': frame15, 'ang': 248}, {'ref': frame16, 'ang': 235}, {'ref': frame17, 'ang': 213}, {'ref': frame18, 'ang': 169}, {'ref': frame19, 'ang': 152}, {'ref': frame20, 'ang': 140}];
var i = 0;
while (i < frames.length) {
frames[i].ang /= 360;
++i;
}
var findFrame = function (ang) {
var v3 = 360;
var v4 = -1;
var v1 = 0;
while (v1 < frames.length) {
var v2 = Math.abs(ang - frames[v1].ang);
if (v2 < v3) {
v3 = v2;
v4 = v1;
}
++v1;
}
return v4;
};
var setFrame = function (i) {
if (!frames[i]) {
trace('bad frame ' + i);
}
var v1 = 0;
while (v1 < frames.length) {
frames[v1].ref._visible = v1 == i;
if (frames[v1].ref._visible) {
frames[v1].ref._rotation = crook;
}
++v1;
}
};
var pos = 0;
var LOOP_DURATION_IN_SPEED_UNITS = 25000;
var frameCounter = 0;
onEnterFrame = function () {
frameCounter ^= 1;
if (frameCounter) {
mouseSample();
}
pos += curSpeed;
pos %= LOOP_DURATION_IN_SPEED_UNITS;
while (pos < 0) {
pos += LOOP_DURATION_IN_SPEED_UNITS;
}
setFrame(findFrame(pos / LOOP_DURATION_IN_SPEED_UNITS));
updateChars();
};
var pleasure = 0;
setInterval(function () {
if (pleasure <= 10) {
pleasure -= 0.8;
} else {
if (pleasure <= 40) {
pleasure *= 0.9;
} else {
pleasure *= 0.95;
}
}
if (pleasure < 0) {
pleasure = 0;
}
var v1 = Math.abs(curSpeed);
if (v1 >= 100) {
pleasure += 0.5;
}
if (v1 >= 400) {
pleasure += 0.75;
}
if (v1 >= 750) {
pleasure += 3;
}
if (v1 >= 1100) {
pleasure += 2;
}
if (v1 >= 2800) {
pleasure += 2;
}
if (v1 >= 4200) {
pleasure += 3;
}
if (pleasure >= 100) {
prize();
}
statusText.text = 'Excitement: ' + Math.floor(pleasure) + '%';
}, 1000);
var chars = [{'ref': chiyo, 'req': 40}, {'ref': pepe, 'req': 69}, {'ref': cat, 'req': 80}];
var i = 0;
while (i < chars.length) {
chars[i].ref._visible = false;
++i;
}
var updateChars = function () {
var v3 = 0;
while (v3 < chars.length) {
var v1 = chars[v3];
if (pleasure < v1.req / 2 && v1.ref._alpha != 0) {
v1.ref._alpha = 0;
} else {
if (pleasure >= v1.req && v1.ref._alpha < 100 || pleasure < v1.req && v1.ref._alpha > 0) {
var v2 = 0.4166666666666667;
if (pleasure < v1.req) {
v2 = -v2;
}
v1.ref._visible = true;
v1.ref._alpha += v2;
}
}
++v3;
}
};
Key.addListener({'onKeyDown': function (event) {
debugText._visible ^= Key.getCode() == 'D'.charCodeAt(0);
if (Key.getCode() == 'R'.charCodeAt(0)) {
curSpeed *= -1.1;
}
}});
}
movieClip 8 {
}
movieClip 11 {
}
movieClip 14 {
}
movieClip 17 {
}
movieClip 20 {
}
movieClip 23 {
}
movieClip 26 {
}
movieClip 29 {
}
movieClip 32 {
}
movieClip 35 {
}
movieClip 38 {
}
movieClip 41 {
}
movieClip 44 {
}
movieClip 47 {
}
movieClip 50 {
}
movieClip 53 {
}
movieClip 56 {
}
movieClip 59 {
}
movieClip 62 {
}
movieClip 65 {
}
movieClip 70 {
}
movieClip 72 {
}
movieClip 113 {
}
movieClip 128 {
}
movieClip 135 {
}