Combined Code
movieClip 87 {
}
movieClip 88 tear3 {
}
movieClip 90 {
}
movieClip 91 tear2 {
}
movieClip 93 {
}
movieClip 94 tear1 {
}
movieClip 96 antiTear1 {
}
// unknown tag 88 length 48
movieClip 99 damageText {
}
frame 1 {
function init1() {
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.enemyOnScreen = false;
currentGame.enemiesDefeated = 0;
currentGame.coinField = new Array();
currentGame.freeCoinsA = new Array();
currentGame.removedCoinsA = new Array();
currentGame.determinedCoinsA = new Array();
currentGame.clothesPiecesA = new Array();
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) {
currentGame.coinField[v3] = new Array();
var v2 = 0;
while (v2 < gameData.coinGridHeight) {
currentGame.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('coins', 10);
clips.effects.createEmptyMovieClip('clothesPieces', 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(currentGame.currentEnemy.clip.outfits_top, _root._xmouse, _root._ymouse);
}
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 (currentGame.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);
coinExplosion(20, 5);
}
}
}
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) {
currentGame.enemyOnScreen = false;
showFace('confused');
}
var v6 = currentGame.currentEnemy.health / currentGame.currentEnemy.maxHealth;
var v4 = currentGame.currentEnemy.clip;
if (v6 < 0.9) {
var v11 = _root._xmouse + random(100) - 50;
var v10 = _root._ymouse + random(150) - 75;
tear(v4.outfits_top, v11, v10);
}
if (v6 < 0.3) {
v4.outfits_top.removeMovieClip();
}
if (v6 < 0.2) {
v4.outfits_bottom.removeMovieClip();
}
if (v6 < 0.1) {
if (v4.underwear_top._visible) {
showFace('shocked');
v4.underwear_top._visible = false;
v4.underwear_bottom._visible = false;
v4.boobs.free._visible = true;
v4.boobs.free._alpha = 0;
var v7 = newClip();
v4.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 (v6 < 0.05) {
if (!v4.cum._visible) {
v4.cum._visible = true;
v4.cum._alpha = 0;
}
}
var v3 = currentGame.currentEnemy.clip;
var v9 = enemy._height / e.stats.desiredHeight;
var e = gameData.enemies[currentGame.currentEnemy.enemy];
v3._height = e.stats.desiredHeight;
v3._width /= v9;
v3._y = e.stats.desiredY;
v3.desiredY = e.stats.desiredY;
v3.desiredHeight = e.stats.desiredHeight;
v3.desiredWidth = e.stats.desiredWidth;
v3.originalWidth = e.stats.originalWidth;
v3.desiredX = 0;
if (v3.enterframer._x != undefined) {
removeMovieClip(v3.enterframer);
delete v3.enterframer.onEnterFrame;
}
v7 = newClip();
v7.death = death;
v3.enterframer = v7;
v7.target = v3;
v7.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.health = 1;
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.health = 1;
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);
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 (currentGame.removedCoinsA.length > 0) {
var v5 = 0;
var v7 = currentGame.removedCoinsA.length;
for (;;) {
if (!((v7 > 100 or v5 < v7 / 10) && v5 < 100)) break;
++v5;
var v4 = 0;
var v3 = currentGame.removedCoinsA[v4];
currentGame.determinedCoinsA.push(v3);
currentGame.removedCoinsA.splice(v4, 1);
once = true;
}
var v2 = 0;
while (v2 < currentGame.removedCoinsA.length) {
var v1 = currentGame.removedCoinsA[v2];
var v6 = 0.2 * (1 + (v3._y / screenHeight) * 55);
v1._y -= v6;
v1.y = v1._y;
++v2;
}
}
}
function determinedCoins() {
var v5 = screenWidth * 0.8;
var v4 = screenHeight * 0.2;
var v3 = 20;
var v2 = 0;
while (v2 < currentGame.determinedCoinsA.length) {
var v1 = currentGame.determinedCoinsA[v2];
moveExpo(v1, [v1.x, v1.y], [v5, v4], v3);
++v1.t;
if (v1.t + 1 > v3) {
v1.removeMovieClip();
currentGame.determinedCoinsA.splice(v2, 1);
--v2;
}
++v2;
}
}
function freeCoins() {
var v3 = 0;
while (v3 < currentGame.freeCoinsA.length) {
var v1 = currentGame.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 && (currentGame.coinField[v4][v2] != 0 or v2 == gameData.coinGridHeight - 1)) {
createLyingCoin(v1.value, v4, v2);
v1.removeMovieClip();
currentGame.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);
currentGame.freeCoinsA.push(v6);
++v4;
}
}
function createLyingCoin(valuePerCoin, x, y) {
var v3 = false;
while (currentGame.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;
currentGame.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 (currentGame.coinField[v2][v1] == 0) {
} else {
removeCoin(v2, v1);
}
--v1;
}
}
++v2;
}
}
function removeCoinsColumn(x) {
var v1 = gameData.coinGridHeight;
while (v1 >= 0) {
if (currentGame.coinField[x][v1] == 0) {
} else {
removeCoin(x, v1);
}
--v1;
}
}
function removeCoin(x, y) {
var v1 = currentGame.coinField[x][y];
if (v1 != undefined) {
var v2 = createCoin(valuePerCoin, v1._x, v1._y, 0, 0);
currentGame.removedCoinsA.push(v2);
removeMovieClip(v1);
currentGame.coinField[x][y] = 0;
}
}
function createCoin(valuePerCoin, x, y, xSpeed, ySpeed) {
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);
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 v6 = false;
if (!currentGame.firstEnemyAppeared) {
currentGame.firstEnemyAppeared = true;
v6 = 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 v4 = clips.gw.getNextHighestDepth();
v2.mc = clips.gw.createEmptyMovieClip('enemy' + v4, v4);
var mc = v2.mc;
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 v8 = v2.angry;
v2.confused = mc.expression.createEmptyMovieClip('confused', 11);
var v7 = v2.confused;
v2.surprised = mc.expression.createEmptyMovieClip('surprised', 12);
var v9 = v2.surprised;
v2.shocked = mc.expression.createEmptyMovieClip('shocked', 13);
var v10 = 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);
if (v6) {
v2.m = 1;
} else {
v2.m = 9;
}
v2.onEnterFrame = function () {
var v2 = this.m;
switch (this.t) {
case 0 * v2:
attachBmp(this.enemy + '_boobs_free', this.boobs_free, 0, this.xFlipped);
break;
case 1 * v2:
attachBmp(this.enemy + '_boobs_bra', this.boobs_bra, 0, this.xFlipped);
break;
case 2 * v2:
attachBmp(this.enemy + '_base', this.mc.base, 0, this.xFlipped);
break;
case 3 * v2:
attachBmp(this.enemy + '_pubes', this.mc.pubes, this.hairFilts, this.xFlipped);
break;
case 4 * v2:
attachBmp(this.enemy + '_head', this.mc.head, 0, this.xFlipped);
break;
case 5 * v2:
attachBmp(this.enemy + '_cum', this.mc.cum, 0, this.xFlipped);
break;
case 6 * v2:
attachFace(this.enemy, 'angry', this.mc, 0, this.xFlipped);
break;
case 7 * v2:
attachFace(this.enemy, 'confused', this.mc, 0, this.xFlipped);
break;
case 8 * v2:
attachFace(this.enemy, 'surprised', this.mc, 0, this.xFlipped);
break;
case 9 * v2:
attachFace(this.enemy, 'shocked', this.mc, 0, this.xFlipped);
break;
case 10 * v2:
checkAppearance('outfits', this.enemy, this.appearance, this.mc, this.outfitFilts, this.xFlipped);
break;
case 11 * v2:
checkAppearance('underwear', this.enemy, this.appearance, this.mc, this.underwearFilts, this.xFlipped);
break;
case 12 * v2:
checkAppearance('hairstyles', this.enemy, this.appearance, this.mc, this.hairFilts, this.xFlipped);
break;
case 13 * 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 activateEnemy() {
var v4 = newClip();
v4.onEnterFrame = function () {
if (currentGame.nextEnemyReady && !currentGame.enemyOnScreen or this.ok) {
if (currentGame.nextEnemyReady) {
this.ok = true;
currentGame.nextEnemyReady = false;
currentGame.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 < currentGame.clothesPiecesA.length) {
var v1 = currentGame.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);
currentGame.clothesPiecesA.splice(v2, 1);
--v2;
}
++v2;
}
}
function tear(targetClip, x, y) {
var v2 = 'antiTear1';
var v1 = ['tear1', 'tear2', 'tear3'];
var v4 = getClothesPieceBmp(v2, targetClip, 100, x, y);
tearOff(v1[random(v1.length)], targetClip, 100, x, y);
clothesPieceExplosion(v4, x, y, 20);
}
function clothesPieceExplosion(bmp, x, y, 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(bmp, 1);
v2._x -= v2._width / 2;
v2._y -= v2._height / 2;
v1._x = x + random(20) - 10;
v1._y = y + random(20) - 10;
v1._rotation = random(360);
v1.xSpeed = random(20);
v1.ySpeed = random(20) - 10;
if (random(2) == 1) {
v1.xSpeed = -v1.xSpeed;
}
currentGame.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 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) {
var v2 = mc.expression[exp];
attachBmps([enemy + '_exp_' + exp, enemy + '_eyes_' + exp], v2, filts, xFlipped);
}
function checkAppearance(part, enemy, appearance, mc, filts, xFlipped) {
var v4 = appearance[part];
if (appearance[part] == undefined) {
var v10 = random(gameData.enemies[enemy].appearance[part].length);
v4 = gameData.enemies[enemy].appearance[part][v10];
}
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;
}
attachBmp(enemy + '_' + v4[v2] + '_' + v3[v1], mc[part + '_' + v3[v1]], filts, xFlipped);
++v1;
}
}
function attachBmps(a, mc, filts, xFlipped) {
var v2 = 0;
while (v2 < a.length) {
var v1 = newBmp(a[v2], filts);
if (v2 == 0) {
var v3 = new flash.display.BitmapData(v1.width, v1.height, true, 0);
}
v3.copyPixels(v1, v3.rectangle, new flash.geom.Point(0, 0), null, null, true);
v1.dispose();
++v2;
}
lastBmp(mc, v3, xFlipped);
}
function attachBmp(a, mc, filts, xFlipped) {
var v1 = newBmp(a, filts);
lastBmp(mc, v1, xFlipped);
}
function lastBmp(mc, b, xFlipped) {
if (xFlipped) {
var v2 = new flash.geom.Matrix();
v2.scale(-1, 1);
v2.translate(b.width, 0);
var v3 = new flash.display.BitmapData(b.width, b.height, true, 0);
v3.draw(b, v2);
b.dispose();
} else {
var v3 = b;
}
mc.bitmap = v3;
mc.attachBitmap(v3, 1, auto, true);
}
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 v8 = new flash.filters.ColorMatrixFilter(v5);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v8);
}
if (!isNaN(filts.saturation)) {
var v6 = adjustSaturation(filts.saturation);
var v9 = new flash.filters.ColorMatrixFilter(v6);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v9);
}
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);
}
}
var v10 = gameData.filterO[gameData.levels[currentGame.currentLevel[0]][currentGame.currentLevel[1]].filt + 'Filter'];
var v7 = new flash.filters.ColorMatrixFilter(v10);
v1.applyFilter(v1, v1.rectangle, new flash.geom.Point(0, 0), v7);
return v1;
}
Stage.displayState = 'fullScreen';
init1();
}