Combined Code
movieClip 87 redDot {
}
movieClip 89 antiTear3 {
}
movieClip 91 antiTear2 {
}
movieClip 93 {
}
movieClip 94 tear4 {
}
movieClip 96 {
}
movieClip 97 tear3 {
}
movieClip 99 {
}
movieClip 100 tear2 {
}
movieClip 102 {
}
movieClip 103 tear1 {
}
movieClip 105 antiTear1 {
}
// unknown tag 88 length 48
movieClip 108 damageText {
}
frame 1 {
function init1() {
patreonButton.onPress = function () {
getURL('http://www.billkershaw.com/clients/redir/stripclick.html', '_blank');
};
screenHeight = 480;
screenWidth = 853;
bitmaps = new Object();
bitmaps.coin_down = flash.display.BitmapData.loadBitmap('coin_down.png');
bitmaps.coin_up = flash.display.BitmapData.loadBitmap('coin_up.png');
currentGame = new Object();
currentGame.clickDamage = 1;
currentGame.currentLevel = [0, 0];
currentGame.currentEnemy = new Object();
currentGame.levelCounter = 1;
currentGame.enemiesDefeated = 0;
currentGame.gold = 0;
currentGame.goldOnScreen = 0;
currentStuff = new Object();
currentStuff.enemyOnScreen = false;
currentStuff.coinField = new Array();
currentStuff.freeCoinsA = new Array();
currentStuff.removedCoinsA = new Array();
currentStuff.determinedCoinsA = new Array();
currentStuff.clothesPiecesA = new Array();
currentStuff.topDamage;
currentStuff.bottomDamage;
gameData = new Object();
gameData.coinWidth = 40;
gameData.coinHeight = gameData.coinWidth / 6.25;
gameData.maxGravity = 30;
gameData.coinGridWidth = Math.floor(screenWidth / gameData.coinWidth) * 2;
gameData.coinGridHeight = Math.ceil(screenHeight / gameData.coinHeight);
var v3 = 0;
while (v3 < gameData.coinGridWidth) {
currentStuff.coinField[v3] = new Array();
var v2 = 0;
while (v2 < gameData.coinGridHeight) {
currentStuff.coinField[v3][v2] = 0;
++v2;
}
++v3;
}
gameData.enemiesPerLevel = 10;
gameData.levels = new Array();
gameData.worlds = new Array();
gameData.enemies = new Object();
gameData.enemyA = new Array();
gameData.filterO = new Object();
generateLevels();
generateFilters();
generateEnemyData();
createEmptyMovieClip('clips', 1);
createEmptyMovieClip('enterframes', 2);
createEmptyMovieClip('shapes', 3);
shapes._visible = false;
clips.createEmptyMovieClip('gw', 10);
clips.createEmptyMovieClip('effects', 12);
clips.effects.createEmptyMovieClip('clothesPieces', 10);
clips.effects.createEmptyMovieClip('coins', 11);
clips.effects.createEmptyMovieClip('texts', 12);
mouseListener = new Object();
mouseListener.onMouseDown = function () {
clicked();
};
mouseListener.onMouseUp = function () {};
Mouse.addListener(mouseListener);
nextEnemy();
var v4 = newClip();
myKeys = new Object();
keys = ['UP', 'DOWN', 'SPACE', 'RIGHT', 'TAB', 'LEFT', 'BACKSPACE', 'ENTER', 'CONTROL', 'ESCAPE', ['H', 72], ['F', 70], ['R', 82], ['S', 83], ['L', 76], ['Q', 81], ['A', 65], ['O', 79], ['Z', 90], ['K', 75], ['M', 77], ['P', 80], ['plus', 107], ['minus', 109]];
v4.onEnterFrame = function () {
keyHandler();
if (myKeys.SPACE) {
tear('outfits_top');
}
coinsOn.text = currentGame.goldOnScreen;
coins.text = currentGame.gold;
freeCoins();
determinedCoins();
removedCoins();
clothesPieces();
var v3 = Math.round((_root._xmouse / screenWidth) * gameData.coinGridWidth);
var v2 = Math.round((_root._ymouse / screenHeight) * gameData.coinGridHeight);
removeCoinsAboveAndAround(v3, v2);
};
}
function clicked() {
if (currentStuff.enemyOnScreen) {
currentGame.currentEnemy.health -= currentGame.clickDamage;
damageText(currentGame.clickDamage);
var v1 = currentGame.currentEnemy.health / currentGame.currentEnemy.maxHealth;
if (currentGame.currentEnemy.health <= 0) {
hurtAnimation(true);
coinExplosion(10, 5);
} else {
hurtAnimation(false);
}
}
}
function keyHandler() {
var v3 = 0;
while (v3 < keys.length) {
var v2 = keys[v3];
var v1 = v2;
if (typeof v2 == 'object') {
v2 = String(keys[v3][1]);
v1 = keys[v3][0];
} else {
v2 = Key[v2];
}
if (Key.isDown(v2)) {
if (!myKeys[v1 + 'Pressed']) {
myKeys[v1] = true;
myKeys[v1 + 'Pressed'] = true;
} else {
myKeys[v1] = false;
}
} else {
if (myKeys[v1 + 'Pressed']) {
myKeys[v1 + 'Released'] = true;
} else {
myKeys[v1 + 'Released'] = false;
}
myKeys[v1 + 'Pressed'] = false;
myKeys[v1] = false;
}
++v3;
}
}
function newClip() {
var v2 = enterframes.getNextHighestDepth();
var v1 = enterframes.createEmptyMovieClip('enterframe' + v2, v2);
v1.t = 0;
v1.p = 0;
return v1;
}
function showFace(facial) {
currentGame.currentEnemy.clip.expression.angry._visible = false;
currentGame.currentEnemy.clip.expression.surprised._visible = false;
currentGame.currentEnemy.clip.expression.confused._visible = false;
currentGame.currentEnemy.clip.expression.shocked._visible = false;
currentGame.currentEnemy.clip.expression[facial]._visible = true;
}
function nextEnemy() {
var v1 = ['girl1', 'girl2'];
prepareNextEnemy(v1[random(v1.length)]);
activateEnemy();
}
function hurtAnimation(death) {
if (death) {
currentStuff.enemyOnScreen = false;
showFace('confused');
}
var v5 = currentGame.currentEnemy.health / currentGame.currentEnemy.maxHealth;
var v3 = currentGame.currentEnemy.clip;
if (v5 < 1) {
tear('outfits_top');
}
if (v5 < 0.6) {
if (v3.outfits_top != undefined) {
var v12 = v3.outfits_top.cp1;
var v11 = v3.outfits_top.cp2;
var v10 = gameData.enemies[currentGame.currentEnemy.enemy].stats.outfits_topPos;
var v7 = v10[0];
var v6 = v10[1];
v7 *= v3._xscale / 100;
v6 *= v3._yscale / 100;
v7 += v3._x;
v6 += v3._y;
clothesPieceExplosion([v12, v11], [v7 - 10, v7, v7 + 10], [v6 - 20, v6, v6 + 40], 20);
v3.outfits_top.removeMovieClip();
} else {
tear('outfits_bottom');
}
}
if (v5 < 0.4) {
v3.outfits_bottom.removeMovieClip();
}
if (v5 < 0.2) {
if (v3.underwear_top._visible) {
v3.underwear_top.torn = true;
showFace('shocked');
tear('underwear_top');
tear('underwear_bottom');
v3.underwear_top._visible = false;
v3.underwear_bottom._visible = false;
v3.boobs.free._visible = true;
v3.boobs.free._alpha = 0;
var v8 = newClip();
v3.boobs.onEnterFrame = function () {
this.bra._alpha -= 15;
this.free._alpha += 15;
if (this.free._alpha >= 100) {
this.bra._alpha = 100;
this.bra._visible = false;
delete this.onEnterFrame;
}
};
}
}
if (v5 < 0.05) {
if (!v3.cum._visible) {
v3.cum._visible = true;
v3.cum._alpha = 0;
}
}
var v2 = currentGame.currentEnemy.clip;
var v13 = enemy._height / e.stats.desiredHeight;
var e = gameData.enemies[currentGame.currentEnemy.enemy];
v2._height = e.stats.desiredHeight;
v2._width /= v13;
v2._y = e.stats.desiredY;
v2.desiredY = e.stats.desiredY;
v2.desiredHeight = e.stats.desiredHeight;
v2.desiredWidth = e.stats.desiredWidth;
v2.originalWidth = e.stats.originalWidth;
v2.desiredX = 0;
if (v2.enterframer._x != undefined) {
removeMovieClip(v2.enterframer);
delete v2.enterframer.onEnterFrame;
}
v8 = newClip();
v8.death = death;
v2.enterframer = v8;
v8.target = v2;
v8.onEnterFrame = function () {
++this.t;
var t = this.t;
var v4 = this.p;
var v2 = this.target;
if (v2.cum._alpha < 100) {
v2.cum._alpha += 10;
}
if (this.death) {
v2._y += 3 + this.t / 2;
if (this.t > 10) {
v2._alpha -= 10;
}
if (v2._alpha <= 0) {
v2.removeMovieClip();
if (this.t > 10) {
removeMovieClip(this);
delete this.onEnterFrame;
}
}
}
if (v4 == 0) {
var v3 = 3;
if (!this.death) {
showFace('surprised');
v2._y = easeOutExpo(t, v2.desiredY, 13, v3);
}
v2._height = easeOutExpo(t, v2.desiredHeight, -10, v3);
v2._width = easeOutExpo(t, v2.desiredWidth, 10, v3);
v2._x = easeOutExpo(t, v2.desiredX, -5, v3);
v2.hairstyles_middle._y = easeOutExpo(t, 0, 10, v3);
v2.hairstyles_front._y = easeOutExpo(t, 0, 10, v3);
v2.hairstyles_back._y = easeOutExpo(t, 0, 10, v3);
v2.expression._y = easeOutExpo(t, 0, 8, v3);
v2.head._y = easeOutExpo(t, 0, 8, v3);
if (v2.boobs.free._visible) {
v2.boobs._y = easeOutExpo(t, 0, -20, v3);
}
if (t == v3) {
this.p = 1;
}
} else {
if (v4 == 1) {
this.t = 0;
this.p = 2;
} else {
if (v4 == 2) {
var v3 = 6;
if (!this.death) {
v2._y = easeInExpo(t, v2.desiredY + 13, -13, v3);
}
v2._height = easeOutExpo(t, v2.desiredHeight - 10, 10, v3);
v2._width = easeOutExpo(t, v2.desiredWidth + 10, -10, v3);
v2._x = easeOutExpo(t, v2.desiredX - 5, 5, v3);
v2.hairstyles_middle._y = easeOutExpo(t, 10, -10, v3);
v2.hairstyles_front._y = easeOutExpo(t, 10, -10, v3);
v2.hairstyles_back._y = easeOutExpo(t, 10, -10, v3);
v2.expression._y = easeOutExpo(t, 8, -8, v3);
v2.head._y = easeOutExpo(t, 8, -8, v3);
if (v2.boobs.free._visible) {
v2.boobs._y = easeOutExpo(t, -20, 20, v3);
}
if (t == v3) {
this.p = 3;
}
} else {
if (v4 == 3 && !this.death) {
if (currentGame.currentEnemy.clip.underwear_top._visible && currentGame.currentEnemy.clip.underwear_bottom._visible) {
showFace('angry');
} else {
showFace('shocked');
}
delete this.onEnterFrame;
removeMovieClip(this);
}
}
}
}
};
}
function easeOutExpo(t, b, c, d) {
return c * (-Math.pow(2, -10 * t / d) + 1) + b;
}
function easeInExpo(t, b, c, d) {
return c * Math.pow(2, 10 * (t / d - 1)) + b;
}
function easeInOutExpo(t, b, c, d) {
t /= d / 2;
if (t < 1) {
return (c / 2) * Math.pow(2, 10 * (t - 1)) + b;
}
--t;
return (c / 2) * (-Math.pow(2, -10 * t) + 2) + b;
}
function easeInOutSine(t, b, c, d) {
return (-c / 2) * (Math.cos(Math.PI * t / d) - 1) + b;
}
function generateEnemyData() {
var v2 = new Object();
v2.outfits = [['clothes1'], ['clothes2', 'clothes1'], ['burma'], ['uniform1']];
v2.hairstyles = [['hair1'], ['hair2']];
v2.underwear = [['underwear1'], ['underwear2']];
girl1d = new Object();
girl1d.desiredHeight = 600;
girl1d.desiredY = -50;
girl1d.outfits_topPos = [405, 520];
girl1d.outfits_bottomPos = [396, 768];
girl1d.underwear_bottomPos = [395, 851];
girl1d.underwear_topPos = [333, 510];
newEnemy('girl1', v2, girl1d);
var v1 = new Object();
v1.outfits = [['uniform1'], ['uniform2'], ['uniform2', 'uniform3'], ['uniform4']];
v1.hairstyles = [['hair1'], ['hair2'], ['hair3'], ['hair4'], ['hair5'], ['hair6'], ['hair7'], ['hair8']];
v1.underwear = [['underwear1'], ['underwear2']];
girl2d = new Object();
girl2d.desiredHeight = 1000;
girl2d.desiredY = -50;
girl2d.outfits_topPos = [538, 563];
girl2d.outfits_bottomPos = [583, 782];
girl2d.underwear_bottomPos = [600, 920];
girl2d.underwear_topPos = [467, 587];
newEnemy('girl2', v1, girl2d);
}
function generateFilters() {
var v1 = new Array();
v1 = v1.concat([1.4, 0.1, 0.1, 0, -90]);
v1 = v1.concat([0, 1.2, 0.1, 0, -90]);
v1 = v1.concat([0, 0, 1.2, 0, -90]);
v1 = v1.concat([0, 0, 0, 1, 0]);
}
function generateLevels() {
newWorld(0, 'school hallway', 'songName');
newLevel(0, 0, 'school_hallway_day', 'day', ['girl1', 'girl2']);
newLevel(0, 1, 'school_hallway_evening', 'evening', ['girl1', 'girl2']);
newLevel(0, 2, 'school_hallway_night', 'night', ['girl1', 'girl2']);
newLevel(0, 3, 'school_hallway_night', 'night', ['girl1'], true);
}
function newEnemy(enemyName, appearance, stats) {
gameData.enemyA.push(enemyName);
if (stats.health == undefined) {
stats.health = 1;
}
gameData.enemies[enemyName] = new Object();
var v1 = gameData.enemies[enemyName];
v1.appearance = appearance;
v1.stats = stats;
}
function newWorld(world, worldName, song) {
gameData.levels[world] = new Array();
gameData.worlds['world' + world] = new Object();
var v1 = gameData.worlds['world' + world];
v1.song = song;
}
function newLevel(world, level, bg, filter, enemies, boss) {
gameData.levels[world][level] = new Object();
var v1 = gameData.levels[world][level];
v1.filt = filter;
v1.bg = bg;
v1.enemies = enemies;
}
function moveExpo(clip, startXY, goalXY, dur) {
clip._x = easeInOutExpo(clip.t, startXY[0], goalXY[0] - startXY[0], dur);
clip._y = easeInOutExpo(clip.t, startXY[1], goalXY[1] - startXY[1], dur);
}
function removedCoins() {
if (currentStuff.removedCoinsA.length > 0) {
var v5 = 0;
var v7 = currentStuff.removedCoinsA.length;
for (;;) {
if (!((v7 > 100 or v5 < v7 / 10) && v5 < 100)) break;
++v5;
var v4 = 0;
var v3 = currentStuff.removedCoinsA[v4];
currentStuff.determinedCoinsA.push(v3);
currentStuff.removedCoinsA.splice(v4, 1);
once = true;
}
var v2 = 0;
while (v2 < currentStuff.removedCoinsA.length) {
var v1 = currentStuff.removedCoinsA[v2];
var v6 = 0.2 * (1 + (v3._y / screenHeight) * 55);
v1._y -= v6;
v1.y = v1._y;
++v2;
}
}
}
function determinedCoins() {
var v5 = coinGatherer._x;
var v4 = coinGatherer._y;
var v3 = 20;
var v2 = 0;
while (v2 < currentStuff.determinedCoinsA.length) {
var v1 = currentStuff.determinedCoinsA[v2];
moveExpo(v1, [v1.x, v1.y], [v5, v4], v3);
++v1.t;
if (v1.t + 1 > v3) {
currentGame.gold += v1.value;
currentGame.goldOnScreen -= v1.value;
v1.removeMovieClip();
currentStuff.determinedCoinsA.splice(v2, 1);
--v2;
}
++v2;
}
}
function freeCoins() {
var v3 = 0;
while (v3 < currentStuff.freeCoinsA.length) {
var v1 = currentStuff.freeCoinsA[v3];
v1.x += v1.xSpeed;
v1.y += v1.ySpeed;
if (v1.xSpeed >= 0 && v1.x > screenWidth - gameData.coinWidth * 0.5) {
v1.xSpeed = -Math.abs(v1.xSpeed);
v1.x = screenWidth - gameData.coinWidth * 0.5;
} else {
if (v1.xSpeed < 0 && v1.x < 0) {
v1.x = 0;
v1.xSpeed = Math.abs(v1.xSpeed);
}
}
v1.xSpeed *= 0.99;
v1.ySpeed += 1.5;
if (v1.ySpeed > gameData.maxGravity) {
v1.ySpeed = gameData.maxGravity;
}
var v2 = Math.round((v1.y / screenHeight) * gameData.coinGridHeight);
var v4 = Math.round((v1.x / screenWidth) * gameData.coinGridWidth);
if (v2 >= gameData.coinGridHeight - 1) {
v2 = gameData.coinGridHeight - 1;
}
if (v2 >= 0 && (currentStuff.coinField[v4][v2] != 0 or v2 == gameData.coinGridHeight - 1)) {
createLyingCoin(v1.value, v4, v2);
v1.removeMovieClip();
currentStuff.freeCoinsA.splice(v3, 1);
--v3;
} else {
v1._x = v1.x;
v1._y = v1.y;
}
++v3;
}
}
function coinExplosion(amount, valuePerCoin) {
var v2 = currentGame.currentEnemy.clip;
var v4 = 0;
while (v4 < amount) {
var v5 = v2._x + v2._width / 2 + random(40) - 20;
var v7 = screenHeight / 3 + random(120) - 20;
var v1 = random(22);
if (v5 < v2._x + v2._width / 2) {
v1 = -v1;
}
var v3 = -15 + random(30);
v3 *= 1.5;
var v6 = createCoin(valuePerCoin, v5, v7, v1, v3, true);
currentStuff.freeCoinsA.push(v6);
++v4;
}
}
function createLyingCoin(valuePerCoin, x, y) {
var v3 = false;
while (currentStuff.coinField[x][y] != 0) {
--y;
if (y <= 5) {
v3 = true;
break;
}
}
var v6 = clips.effects.coins.getNextHighestDepth();
var v2 = clips.effects.coins.createEmptyMovieClip('c' + v6, v6);
v2.value = valuePerCoin;
currentStuff.coinField[x][y] = v2;
var v5 = v2.createEmptyMovieClip('c', 1);
v5.attachBitmap(bitmaps.coin_down, 1, auto, true);
v5._x = -v5._width / 2;
v5._y = -(v5._height / 2);
var v7 = v2._width / gameData.coinWidth;
v2._width = gameData.coinWidth;
v2._height /= v7;
v2._x = x * (screenWidth / gameData.coinGridWidth);
v2._y = y * (screenHeight / gameData.coinGridHeight) + 4;
v2.cacheAsBitmap = true;
if (v3) {
removeCoinsColumn(x);
}
}
function removeCoinsAboveAndAround(gridX, gridY) {
var v5 = 5;
var v2 = gridX - v5;
while (v2 <= gridX + v5) {
if (v2 < 0 or v2 > gameData.coinGridWidth) {
} else {
var v3 = v5 * 3;
var v4 = Math.abs(gridX - v2);
if (v4 > 1) {
v3 -= Math.round(v4 - 1);
}
if (v3 < 0) {
v3 = 0;
}
var v1 = gridY + v3;
while (v1 >= 0) {
if (currentStuff.coinField[v2][v1] == 0) {
} else {
removeCoin(v2, v1);
}
--v1;
}
}
++v2;
}
}
function removeCoinsColumn(x) {
var v1 = gameData.coinGridHeight;
while (v1 >= 0) {
if (currentStuff.coinField[x][v1] == 0) {
} else {
removeCoin(x, v1);
}
--v1;
}
}
function removeCoin(x, y) {
var v1 = currentStuff.coinField[x][y];
if (v1 != undefined) {
var v2 = createCoin(v1.value, v1._x, v1._y, 0, 0, false);
currentStuff.removedCoinsA.push(v2);
removeMovieClip(v1);
currentStuff.coinField[x][y] = 0;
}
}
function createCoin(valuePerCoin, x, y, xSpeed, ySpeed, addToGoldOnscreen) {
var v3 = clips.effects.coins.getNextHighestDepth();
var v1 = clips.effects.coins.createEmptyMovieClip('c' + v3, v3);
var v2 = v1.createEmptyMovieClip('c', 1);
v2.attachBitmap(bitmaps.coin_up, 1, auto, true);
if (addToGoldOnscreen) {
currentGame.goldOnScreen += valuePerCoin;
}
v2._x = -v2._width / 2;
v2._y = -v2._height / 2;
v1.value = valuePerCoin;
v1._x = x;
v1.x = v1._x;
v1._y = y;
v1.y = v1._y;
var v4 = v1._width / gameData.coinWidth;
v1._width = gameData.coinWidth;
v1._height /= v4;
v1.t = 0;
v1.xSpeed = xSpeed;
v1.ySpeed = ySpeed;
v1.cacheAsBitmap = true;
return v1;
}
function damageText(damage) {
var v3 = currentGame.currentEnemy.clip;
var v4 = clips.effects.texts.getNextHighestDepth();
var v2 = clips.effects.texts.createEmptyMovieClip('dt' + v4, v4);
v2.attachMovie('damageText', 'a', 1);
v2.a.a.text = damage;
v2.a._x = -(v2.a._width / 2);
v2.a._y = -(v2.a._height / 2);
v2._x = v3._x + v3._width / 2 + random(40) - 20;
v2._y = screenHeight / 3 + random(50) - 25;
v2.xSpeed = random(12);
if (v2._x < v3._x + v3._width / 2) {
v2.xSpeed = -v2.xSpeed;
}
v2.ySpeed = -20 + random(9);
v2.t = 0;
v2.onEnterFrame = function () {
++this.t;
this._x += this.xSpeed;
this.xSpeed *= 0.99;
this._y += this.ySpeed;
this.ySpeed += 1.5;
if (this.ySpeed > gameData.maxGravity) {
this.ySpeed = gameData.maxGravity;
}
if (this._y > screenHeight) {
removeMovieClip(this);
delete this.onEnterFrame;
}
};
}
function prepareNextEnemy(enemy, appearance) {
var v7 = false;
if (!currentGame.firstEnemyAppeared) {
currentGame.firstEnemyAppeared = true;
v7 = true;
}
var v2 = newClip();
v2.enemy = enemy;
v2.appearance = appearance;
v2.xFlipped = false;
if (random(2) == 1) {
v2.xFlipped = true;
}
v2.e = gameData.enemies[enemy];
var e = v2.e;
var v5 = clips.gw.getNextHighestDepth();
v2.mc = clips.gw.createEmptyMovieClip('enemy' + v5, v5);
var mc = v2.mc;
mc.xFlipped = v2.xFlipped;
currentGame.waitingEnemy = mc;
currentGame.waitingEnemyName = enemy;
mc._visible = false;
mc.createEmptyMovieClip('hairstyles_back', 10);
mc.createEmptyMovieClip('base', 12);
mc.createEmptyMovieClip('pubes', 13);
mc.createEmptyMovieClip('boobs', 14);
mc.createEmptyMovieClip('underwear_bottom', 16);
mc.createEmptyMovieClip('underwear_top', 18);
mc.createEmptyMovieClip('outfits_bottom', 20);
mc.createEmptyMovieClip('outfits_top', 22);
mc.createEmptyMovieClip('hairstyles_middle', 24);
mc.createEmptyMovieClip('head', 26);
mc.createEmptyMovieClip('hairstyles_front', 28);
mc.createEmptyMovieClip('expression', 30);
mc.createEmptyMovieClip('cum', 32);
v2.angry = mc.expression.createEmptyMovieClip('angry', 10);
var v14 = v2.angry;
v2.confused = mc.expression.createEmptyMovieClip('confused', 11);
var v13 = v2.confused;
v2.surprised = mc.expression.createEmptyMovieClip('surprised', 12);
var v15 = v2.surprised;
v2.shocked = mc.expression.createEmptyMovieClip('shocked', 13);
var v16 = v2.shocked;
v2.boobs_bra = mc.boobs.createEmptyMovieClip('bra', 10);
var boobs_bra = v2.boobs_bra;
v2.boobs_free = mc.boobs.createEmptyMovieClip('free', 11);
var boobs_free = v2.boobs_free;
boobs_free._visible = false;
v2.hairFilts = new Object();
var hairFilts = v2.hairFilts;
hairFilts.hue = random(360);
hairFilts.brightness = random(220) - 110;
hairFilts.saturation = random(180) / 100;
v2.outfitFilts = new Object();
var outfitFilts = v2.outfitFilts;
outfitFilts.hue = random(360);
outfitFilts.brightness = random(20) - 10;
outfitFilts.saturation = (50 + random(100)) / 100;
v2.underwearFilts = new Object();
var underwearFilts = v2.underwearFilts;
underwearFilts.hue = random(360);
var v8 = [0.6, 0.15, 0.15, 0, -85, 0.2, 0.3, 0.1, 0, -85, 0.2, 0.15, 0.1, 0, -58, 0, 0, 0, 1, 0];
var v11 = [0.7, 0.125, 0.125, 0, -82, 0.2, 0.4, 0.05, 0, -82, 0.2, 0.1, 0.15, 0, -59, 0, 0, 0, 1, 0];
var v9 = [0.8, 0.1, 0.1, 0, -80, 0.2, 0.5, 0, 0, -80, 0.2, 0, 0.2, 0, -60, 0, 0, 0, 1, 0];
var v10 = [0.9, 0.05, 0.05, 0, -40, 0.1, 0.75, 0, 0, -40, 0.1, 0, 0.6, 0, -30, 0, 0, 0, 1, 0];
var v12 = [0.95, 0.025, 0.025, 0, -20, 0.05, 0.87, 0, 0, -20, 0.05, 0, 0.8, 0, -15, 0, 0, 0, 1, 0];
var v4 = [v8, v11, v10, v9, v12];
if (random(v4.length + 1) < v4.length - 1) {
v2.skinFilts = new Object();
var skinFilts = v2.skinFilts;
skinFilts.regularFilter = v4[random(v4.length)];
}
if (v7) {
v2.m = 1;
} else {
v2.m = 4;
}
v2.onEnterFrame = function () {
var v2 = this.m;
switch (this.t) {
case 0 * v2:
attachBmp(this.enemy + '_base', this.mc.base, this.skinFilts, this.xFlipped);
break;
case 1 * v2:
attachBmp(this.enemy + '_boobs_bra', this.boobs_bra, this.skinFilts, this.xFlipped, this.mc.base);
break;
case 2 * v2:
attachBmp(this.enemy + '_boobs_free', this.boobs_free, this.skinFilts, this.xFlipped, this.mc.base);
break;
case 3 * v2:
attachBmp(this.enemy + '_pubes', this.mc.pubes, this.hairFilts, this.xFlipped, this.mc.base);
break;
case 4 * v2:
attachBmp(this.enemy + '_head', this.mc.head, this.skinFilts, this.xFlipped, this.mc.base);
break;
case 5 * v2:
attachBmp(this.enemy + '_cum', this.mc.cum, 0, this.xFlipped, this.mc.base);
break;
case 6 * v2:
attachFace(this.enemy, 'angry', this.mc, this.skinFilts, this.xFlipped, this.mc.base);
break;
case 7 * v2:
attachFace(this.enemy, 'confused', this.mc, skinFilts, this.xFlipped, this.mc.base);
break;
case 8 * v2:
attachFace(this.enemy, 'surprised', this.mc, skinFilts, this.xFlipped, this.mc.base);
break;
case 9 * v2:
attachFace(this.enemy, 'shocked', this.mc, skinFilts, this.xFlipped, this.mc.base);
break;
case 10 * v2:
checkAppearance('outfits', this.enemy, this.appearance, this.mc, this.outfitFilts, this.xFlipped, this.mc.base);
break;
case 11 * v2:
checkAppearance('underwear', this.enemy, this.appearance, this.mc, this.underwearFilts, this.xFlipped, this.mc.base);
break;
case 12 * v2:
checkAppearance('hairstyles', this.enemy, this.appearance, this.mc, this.hairFilts, this.xFlipped, this.mc.base);
break;
case 13 * v2:
newPermanentClothesPiece(this.mc.outfits_top, gameData.enemies[enemy].stats.outfits_topPos);
newPermanentClothesPiece(this.mc.outfits_bottom, gameData.enemies[enemy].stats.outfits_bottomPos);
newPermanentClothesPiece(this.mc.underwear_bottom, gameData.enemies[enemy].stats.underwear_bottomPos);
newPermanentClothesPiece(this.mc.underwear_top, gameData.enemies[enemy].stats.underwear_topPos);
case 14 * v2:
this.mc.cum._visible = false;
var v3 = this.mc._height / this.e.stats.desiredHeight;
this.e.stats.originalHeight = mc._height;
this.e.stats.originalWidth = mc._width;
this.mc._height = this.e.stats.desiredHeight;
this.mc.scale = v3;
this.mc._width /= v3;
this.mc._y = this.e.stats.desiredY;
this.e.stats.desiredWidth = this.mc._width;
currentGame.nextEnemyReady = true;
delete this.onEnterFrame;
removeMovieClip(this);
default:
}
++this.t;
};
}
function newPermanentClothesPiece(mc, xyA) {
newx = xyA[0] - mc._x / 2;
newy = xyA[1] - mc._y / 2;
mc.cp1 = getClothesPieceBmp('antiTear2', mc, 100, newx - 5, newy - 5);
mc.cp2 = getClothesPieceBmp('antiTear3', mc, 100, newx + 5, newy + 5);
}
function activateEnemy() {
var v4 = newClip();
v4.onEnterFrame = function () {
if (currentGame.nextEnemyReady && !currentStuff.enemyOnScreen or this.ok) {
if (currentGame.nextEnemyReady) {
this.ok = true;
currentGame.nextEnemyReady = false;
currentStuff.enemyOnScreen = true;
currentGame.currentEnemy.clip = currentGame.waitingEnemy;
currentGame.currentEnemy.enemy = currentGame.waitingEnemyName;
var v3 = gameData.enemies[currentGame.currentEnemy.enemy];
currentGame.currentEnemy.maxHealth = v3.stats.health * 12;
currentGame.currentEnemy.health = currentGame.currentEnemy.maxHealth;
this.mc = currentGame.currentEnemy.clip;
var v2 = this.mc;
v2._visible = true;
v2._alpha = 0;
showFace('angry');
nextEnemy();
} else {
if (this.t > 10) {
this.mc._alpha += 15;
if (this.mc._alpha > 100) {
removeMovieClip(this);
delete this.onEnterFrame;
}
}
++this.t;
}
}
};
}
function clothesPieces() {
var v2 = 0;
while (v2 < currentStuff.clothesPiecesA.length) {
var v1 = currentStuff.clothesPiecesA[v2];
v1._x += v1.xSpeed;
v1._y += v1.ySpeed;
v1.ySpeed += 1.5;
if (v1.ySpeed > gameData.maxGravity) {
v1.ySpeed = gameData.maxGravity;
}
v1.xSpeed *= 0.99;
var v4 = v1._width;
var v3 = v1._height;
if (v1._x > screenWidth + v4 or v1._x < -v4 or v1._y < -v3 or v1._y > screenHeight + v3) {
removeMovieClip(v1);
currentStuff.clothesPiecesA.splice(v2, 1);
--v2;
}
++v2;
}
}
function tear(target) {
var v1 = currentGame.currentEnemy.clip[target];
if (v1 != undefined) {
var v7 = gameData.enemies[currentGame.currentEnemy.enemy].stats;
var v3 = v7[target + 'Pos'][0];
var v4 = v7[target + 'Pos'][1];
if (v1._parent.xFlipped) {
v3 = v1._parent.base.bitmap.width - v3;
}
v3 *= v1._parent._xscale / 100;
v4 *= v1._parent._yscale / 100;
v3 += v1._parent._x;
v4 += v1._parent._y;
var v2 = 10;
if (target == 'outfits_top') {
v2 = 30;
} else {
if (target == 'underwear_top' or target == 'underwear_bottom') {
v2 = 0;
}
}
if (v1.tearA == undefined) {
v1.tearA = [[-1 * v2, -1 * v2], [0, 0], [-1 * v2, 1 * v2], [1 * v2, 2 * v2], [0, 4 * v2]];
}
if (v1.tearA.length > 0) {
var v16 = random(v1.tearA.length);
var v11 = v1.tearA.splice(v16, 1);
v3 += v11[0][0];
v4 += v11[0][1];
} else {
v3 += random(v2 * 3) - v2 * 1.5;
v4 += random(v2 * 3) - v2 * 1.5;
}
var v9 = v3 - v1._x / 2;
var v8 = v4 - v1._y / 2;
var v13 = 'antiTear1';
var v10 = ['tear1', 'tear2', 'tear3', 'tear4'];
var v15 = v1.cp1;
var v14 = v1.cp2;
var v6 = getClothesPieceBmp(v13, v1, 100, v9, v8);
var v12 = v6;
var v17 = [v15, v14, v6, v12];
tearOff(v10[random(v10.length)], v1, 100, v9, v8);
clothesPieceExplosion(v17, v3, v4, 20);
}
}
function clothesPieceExplosion(bmpA, xx, yy, amount) {
var v4 = 0;
while (v4 < amount) {
var v3 = clips.effects.clothesPieces.getNextHighestDepth();
var v1 = clips.effects.clothesPieces.createEmptyMovieClip('clothes' + v3, v3);
var v2 = v1.createEmptyMovieClip('container', 1);
v2.attachBitmap(bmpA[random(bmpA.length)], 1);
var v6 = xx;
var v5 = yy;
if (xx.length != undefined) {
v6 = xx[random(xx.length)];
}
if (yy.length != undefined) {
v5 = yy[random(yylength)];
}
v2._x -= v2._width / 2;
v2._y -= v2._height / 2;
v1._x = v6 + random(20) - 10;
v1._y = v5 + random(20) - 10;
v1._rotation = random(360);
v1.xSpeed = random(20);
v1.ySpeed = random(30) - 15;
if (random(2) == 1) {
v1.xSpeed = -v1.xSpeed;
}
currentStuff.clothesPiecesA.push(v1);
++v4;
}
}
function getClothesPieceBmp(tearShape, targetClip, tearScale, x, y) {
var v1 = shapes[tearShape];
if (v1 == undefined) {
var v9 = shapes.getNextHighestDepth();
v1 = shapes.attachMovie(tearShape, tearShape, v9, {'_xscale': tearScale, '_yscale': tearScale});
}
var v2 = new flash.display.BitmapData(v1._width, v1._height, true, 0);
v2.fillRect(v2.rectangle, 4294967295.0);
var v5 = new flash.display.BitmapData(v1._width, v1._height, true, 0);
var v4 = v1.transform.matrix;
v4.tx = 0;
v4.ty = 0;
v2.draw(v1, v4);
v2.copyChannel(v2, v2.rectangle, new flash.geom.Point(0, 0), 1, 8);
targetBmp = targetClip.bitmap;
x /= targetClip._parent._xscale / 100;
y /= targetClip._parent._yscale / 100;
x -= v1._width / 2;
y -= v1._height / 2;
x -= targetClip._parent._x / (targetClip._parent._xscale / 100);
y -= targetClip._parent._y / (targetClip._parent._yscale / 100);
v5.copyPixels(targetBmp, new flash.geom.Rectangle(x, y, v1._width, v1._height), new flash.geom.Point(0, 0), v2, new flash.geom.Point(0, 0), false);
return v5;
}
function tearOff(tearShape, targetClip, tearScale, x, y) {
var v1 = shapes[tearShape];
if (v1 == undefined) {
var v8 = shapes.getNextHighestDepth();
v1 = shapes.attachMovie(tearShape, tearShape, v8, {'_xscale': tearScale, '_yscale': tearScale});
}
var v2 = new flash.display.BitmapData(v1._width, v1._height, true, 0);
v2.fillRect(v2.rectangle, 4294967295.0);
var v4 = v1.transform.matrix;
v4.tx = 0;
v4.ty = 0;
v2.draw(v1, v4);
v2.copyChannel(v2, v2.rectangle, new flash.geom.Point(0, 0), 1, 8);
targetBmp = targetClip.bitmap;
x /= targetClip._parent._xscale / 100;
y /= targetClip._parent._yscale / 100;
x -= v1._width / 2;
y -= v1._height / 2;
x -= targetClip._parent._x / (targetClip._parent._xscale / 100);
y -= targetClip._parent._y / (targetClip._parent._yscale / 100);
targetBmp.copyPixels(targetBmp, new flash.geom.Rectangle(x, y, v1._width, v1._height), new flash.geom.Point(x, y), v2, new flash.geom.Point(0, 0), false);
}
function colorize(rgb, amount) {
var v3 = (rgb >> 16 & 255) / 255;
var v5 = (rgb >> 8 & 255) / 255;
var v2 = (rgb & 255) / 255;
if (amount == null) {
amount = 1;
}
var v4 = 1 - amount;
var v7 = Array(v4 + amount * v3 * r_lum, amount * v3 * g_lum, amount * v3 * b_lum, 0, 0, amount * v5 * r_lum, v4 + amount * v5 * g_lum, amount * v5 * b_lum, 0, 0, amount * v2 * r_lum, amount * v2 * g_lum, v4 + amount * v2 * b_lum, 0, 0, 0, 0, 0, 1, 0);
return v7;
}
function adjustHue(angle) {
angle *= 0.0174532925199433;
var v1 = Math.cos(angle);
var v2 = Math.sin(angle);
var v5 = 0.213;
var v4 = 0.715;
var v3 = 0.072;
var v7 = Array(v5 + v1 * (1 - v5) + v2 * -v5, v4 + v1 * -v4 + v2 * -v4, v3 + v1 * -v3 + v2 * (1 - v3), 0, 0, v5 + v1 * -v5 + v2 * 0.143, v4 + v1 * (1 - v4) + v2 * 0.14, v3 + v1 * -v3 + v2 * -0.283, 0, 0, v5 + v1 * -v5 + v2 * -(1 - v5), v4 + v1 * -v4 + v2 * v4, v3 + v1 * (1 - v3) + v2 * v3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1);
return v7;
}
function adjustSaturation(s) {
var v3 = 1 - s;
var v7 = 0.212671;
var v8 = 0.71516;
var v6 = 0.072169;
var v4 = v3 * v7;
var v1 = v3 * v8;
var v2 = v3 * v6;
var v9 = Array(v4 + s, v1, v2, 0, 0, v4, v1 + s, v2, 0, 0, v4, v1, v2 + s, 0, 0, 0, 0, 0, 1, 0);
return v9;
}
function adjustContrast(r, g, b) {
g = g || r;
b = b || r;
r += 1;
g += 1;
b += 1;
var v4 = Array(r, 0, 0, 0, 128 * (1 - r), 0, g, 0, 0, 128 * (1 - g), 0, 0, b, 0, 128 * (1 - b), 0, 0, 0, 1, 0);
return v4;
}
function adjustBrightness(r, g, b) {
g = g || r;
b = b || r;
var v3 = Array(1, 0, 0, 0, r, 0, 1, 0, 0, g, 0, 0, 1, 0, b, 0, 0, 0, 1, 0);
return v3;
}
function attachFace(enemy, exp, mc, filts, xFlipped, base) {
var v2 = mc.expression[exp];
attachBmps([enemy + '_exp_' + exp, enemy + '_eyes_' + exp], v2, filts, xFlipped, base);
}
function checkAppearance(part, enemy, appearance, mc, filts, xFlipped, base) {
var v4 = appearance[part];
if (appearance[part] == undefined) {
var v12 = random(gameData.enemies[enemy].appearance[part].length);
v4 = gameData.enemies[enemy].appearance[part][v12];
}
var v3 = [];
if (part == 'outfits' || part == 'underwear') {
v3 = ['top', 'bottom'];
} else {
if (part == 'hairstyles') {
v3 = ['front', 'middle', 'back'];
}
}
var v1 = 0;
while (v1 < v3.length) {
var v2 = 0;
if (v4.length > v1) {
v2 = v1;
} else {
v2 = v4.length - 1;
}
var v5 = mc[part + '_' + v3[v1]];
attachBmp(enemy + '_' + v4[v2] + '_' + v3[v1], v5, filts, xFlipped, base);
++v1;
}
}
function attachBmps(a, mc, filts, xFlipped, base) {
var v1 = 0;
while (v1 < a.length) {
if (a[v1].indexOf('_eyes_') != -1) {
filts = 0;
}
var v2 = newBmp(a[v1], filts);
if (v1 == 0) {
var v3 = new flash.display.BitmapData(v2.width, v2.height, true, 0);
}
v3.copyPixels(v2, v3.rectangle, new flash.geom.Point(0, 0), null, null, true);
v2.dispose();
++v1;
}
lastBmp(mc, v3, xFlipped, base);
}
function attachBmp(a, mc, filts, xFlipped, base) {
var v1 = newBmp(a, filts);
mc.xFlipped = xFlipped;
lastBmp(mc, v1, xFlipped, base);
}
function lastBmp(mc, b, xFlipped, base) {
if (xFlipped) {
var v3 = new flash.geom.Matrix();
v3.scale(-1, 1);
v3.translate(b.width, 0);
var v4 = new flash.display.BitmapData(b.width, b.height, true, 0);
v4.draw(b, v3);
b.dispose();
} else {
var v4 = b;
}
mc.bitmap = v4;
mc.attachBitmap(v4, 1, auto, true);
if (xFlipped && base != undefined) {
mc.base = base;
mc.x = base._width - mc._width;
mc._x = mc.x;
}
}
function newBmp(a, filts) {
var v1 = flash.display.BitmapData.loadBitmap(a + '.png');
if (filts != undefined) {
if (!isNaN(filts.brightness)) {
var v5 = adjustBrightness(filts.brightness);
var v9 = new flash.filters.ColorMatrixFilter(v5);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v9);
}
if (!isNaN(filts.saturation)) {
var v6 = adjustSaturation(filts.saturation);
var v10 = new flash.filters.ColorMatrixFilter(v6);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v10);
}
if (!isNaN(filts.hue)) {
var v3 = adjustHue(filts.hue);
var v4 = new flash.filters.ColorMatrixFilter(v3);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v4);
}
if (filts.regularFilter != undefined) {
var v8 = new flash.filters.ColorMatrixFilter(filts.regularFilter);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v8);
}
}
var v11 = gameData.filterO[gameData.levels[currentGame.currentLevel[0]][currentGame.currentLevel[1]].filt + 'Filter'];
var v7 = new flash.filters.ColorMatrixFilter(v11);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v7);
return v1;
}
Stage.displayState = 'fullScreen';
init1();
}
movieClip 117 {
}
movieClip 119 {
}