Section 1
//body_2 (_panda_fla.body_2)
package _panda_fla {
import flash.display.*;
public dynamic class body_2 extends MovieClip {
public function body_2(){
addFrameScript(15, frame16, 31, frame32, 47, frame48, 63, frame64, 79, frame80);
}
function frame64(){
gotoAndPlay("up");
}
function frame80(){
gotoAndPlay("down_left");
}
function frame16(){
gotoAndPlay("down");
}
function frame48(){
gotoAndPlay("left_up");
}
function frame32(){
gotoAndPlay("left");
}
}
}//package _panda_fla
Section 2
//buildCage_4 (_panda_fla.buildCage_4)
package _panda_fla {
import flash.display.*;
public dynamic class buildCage_4 extends MovieClip {
public function buildCage_4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package _panda_fla
Section 3
//BrownBear (bears.BrownBear)
package bears {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.cheezeworld.math.*;
import flash.utils.*;
import houses.*;
import shop.*;
import game.*;
import pets.*;
import flash.media.*;
import com.melesta.utils.math.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class BrownBear extends BrownBearTemplate implements IBear {
public var inCage:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
private var timer:Timer;
private var rotationDirect:Number;// = 1
private var _freeTimer:Timer;
private var sound:SoundChannel;
private var _hitTimer:Timer;
private var type:String;
private var pet:MovieClip;
private var clicks:Number;// = 0
private var gameController:GameController;
private var _freeCounter:Number;// = 0
private var _counter:Number;// = 0
public function BrownBear(){
super();
sound = new SoundChannel();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, remove, false, 0, true);
addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
this.cacheAsBitmap = true;
_freeTimer = new Timer(1000);
_freeTimer.addEventListener(TimerEvent.TIMER, brokeCage, false, 0, true);
_hitTimer = new Timer(100);
_hitTimer.addEventListener(TimerEvent.TIMER, hitChicken, false, 0, true);
_hitTimer.addEventListener(TimerEvent.TIMER, hitGoat, false, 0, true);
}
public function show(posx:Number, posy:Number, delay:Number, stageInstance:DisplayObjectContainer=null):void{
this.x = posx;
this.y = -500;
_stageInstance = stageInstance;
_stageInstance.addChild(this);
this.body.stop();
Tweener.addTween(this, {y:150, time:3, delay:delay, transition:"easeInCirc", onComplete:startAnimation});
timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, move);
sound = SoundManager.play("bear1_brown_scream", 1000);
}
private function remove(event:Event=null):void{
_stageInstance.removeChild(this);
removeEventListener(MouseEvent.CLICK, onClick);
timer.stop();
_hitTimer.stop();
_hitTimer.removeEventListener(TimerEvent.TIMER, hitChicken);
_hitTimer.removeEventListener(TimerEvent.TIMER, hitGoat);
timer.removeEventListener(TimerEvent.TIMER, move);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, remove);
_freeTimer.stop();
_freeTimer.removeEventListener(TimerEvent.TIMER, brokeCage);
}
private function hitGoat(event:TimerEvent=null):void{
var i:int;
if (event){
event.stopPropagation();
};
if (Goat.goatList){
if (Goat.goatList.length > 0){
i = 0;
while (i < Goat.count) {
if (this.hit.hitTestObject(Goat.goatList[i].activeArea)){
Goat.goatList[i].kill();
return;
};
i++;
};
};
};
}
public function move(event:TimerEvent=null):void{
var p1:Point;
var newX:Number;
var newY:Number;
var p2:Point;
var dir:Object;
if (event){
event.stopPropagation();
};
if (_counter == 0){
_counter = 7;
if (event != null){
event.stopPropagation();
};
p1 = new Point(this.x, this.y);
newX = MathUtils.rand(150, 400);
newY = MathUtils.rand(150, 300);
p2 = new Point(newX, newY);
dir = Direction.getDirection(p1, p2);
this.body.gotoAndPlay(dir.direction);
if (dir.right){
this.scaleX = -1;
} else {
this.scaleX = 1;
};
Tweener.removeTweens(this);
Tweener.addTween(this, {y:newY, x:newX, time:5, transition:"linear"});
};
_counter--;
}
public function startAnimation():void{
SoundManager.play("bear_landing", 1);
timer.start();
_hitTimer.start();
move();
}
private function hitChicken(event:TimerEvent=null):void{
var i:int;
event.stopPropagation();
if (Chicken.chickenList){
if (Chicken.chickenList.length > 0){
i = 0;
while (i < Chicken.count) {
if (this.hit.hitTestObject(Chicken.chickenList[i])){
Chicken.chickenList[i].kill();
return;
};
i++;
};
};
};
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
timer.start();
if (!inCage){
this.body.play();
_hitTimer.start();
sound = SoundManager.play("bear1_brown_scream", 1000);
} else {
_freeTimer.start();
};
}
private function onClick(event:MouseEvent=null):void{
event.stopPropagation();
clicks++;
buildCage.gotoAndStop(clicks);
if (clicks == Number((9 - ShopWindow.availableUpgrades[0]))){
_hitTimer.stop();
buildCage.gotoAndStop(9);
inCage = true;
this.body.stop();
_freeTimer.start();
sound.stop();
Tweener.removeTweens(this, x, y);
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, move, false);
};
if (clicks > Number((9 - ShopWindow.availableUpgrades[0]))){
if (Depot.instance.addProduct("BROWN")){
SoundManager.play("product_take", 1);
this.width = 50;
this.height = 50;
_freeTimer.stop();
Tweener.removeTweens(this);
Tweener.addTween(this, {y:378, time:0.3, onComplete:remove, transition:"easeOutCirc"});
Tweener.addTween(this, {x:265, time:0.3, transition:"easeInOutBack"});
} else {
SoundManager.play("fool_action", 1);
};
} else {
SoundManager.play("cage_click", 1);
};
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this);
_hitTimer.stop();
_freeTimer.stop();
timer.stop();
this.body.stop();
sound.stop();
}
private function brokeCage(event:TimerEvent=null):void{
var p1:Point;
var newX:Number;
var newY:Number;
var p2:Point;
var dir:Object;
_freeCounter++;
if ((((_freeCounter > 5)) && ((_freeCounter < 15)))){
SoundManager.play("cage_breaking");
Tweener.addTween(this, {rotation:(10 * rotationDirect), time:1});
if (rotationDirect == -1){
rotationDirect = 1;
} else {
rotationDirect = -1;
};
};
if (_freeCounter == 15){
buildCage.visible = false;
SoundManager.play("cage_broke_bear_flee");
p1 = new Point(this.x, this.y);
newX = 800;
newY = this.y;
p2 = new Point(newX, newY);
dir = Direction.getDirection(p1, p2);
this.body.gotoAndPlay(dir.direction);
if (dir.right){
this.scaleX = -1;
} else {
this.scaleX = 1;
};
Tweener.removeTweens(this);
Tweener.addTween(this, {y:newY, x:newX, time:0.4, transition:"linear", onComplete:remove});
};
}
}
}//package bears
Section 4
//BrownBearTemplate (bears.BrownBearTemplate)
package bears {
import flash.display.*;
public dynamic class BrownBearTemplate extends MovieClip {
public var buildCage:MovieClip;
public var hit:MovieClip;
public var body:MovieClip;
}
}//package bears
Section 5
//IBear (bears.IBear)
package bears {
import flash.events.*;
import flash.display.*;
public interface IBear {
function move(:TimerEvent=null):void;
function startAnimation():void;
function show(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:DisplayObjectContainer=null):void;
function pause(:Event=null):void;
function resume(:Event=null):void;
}
}//package bears
Section 6
//Panda (bears.Panda)
package bears {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.cheezeworld.math.*;
import flash.utils.*;
import houses.*;
import ui.*;
import shop.*;
import game.*;
import pets.*;
import utils.*;
import flash.media.*;
import com.melesta.utils.math.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Panda extends PandaTemplate implements IBear {
public var inCage:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
private var timer:Timer;
private var rotationDirect:Number;// = 1
private var _freeTimer:Timer;
private var sound:SoundChannel;
private var _hitTimer:Timer;
private var type:String;
private var pet:MovieClip;
private var clicks:Number;// = 0
private var gameController:GameController;
private var _freeCounter:Number;// = 0
private var _counter:Number;// = 0
public static var firstShow:Boolean = true;
public function Panda(){
super();
sound = new SoundChannel();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, remove, false, 0, true);
addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
this.cacheAsBitmap = true;
_freeTimer = new Timer(1000);
_freeTimer.addEventListener(TimerEvent.TIMER, brokeCage, false, 0, true);
_hitTimer = new Timer(100);
_hitTimer.addEventListener(TimerEvent.TIMER, hitChicken, false, 0, true);
}
public function show(posx:Number, posy:Number, delay:Number, stageInstance:DisplayObjectContainer=null):void{
this.x = posx;
this.y = -500;
_stageInstance = stageInstance;
_stageInstance.addChild(this);
Tweener.addTween(this, {y:150, time:3, delay:delay, transition:"easeInCirc", onComplete:startAnimation});
timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, move);
sound = SoundManager.play("bear0_panda_scream", 1000);
this.body.stop();
}
private function remove(event:Event=null):void{
_stageInstance.removeChild(this);
removeEventListener(MouseEvent.CLICK, onClick);
timer.stop();
_hitTimer.stop();
_hitTimer.removeEventListener(TimerEvent.TIMER, hitChicken);
_hitTimer.removeEventListener(TimerEvent.TIMER, hitGoat);
timer.removeEventListener(TimerEvent.TIMER, move);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, remove);
_freeTimer.stop();
_freeTimer.removeEventListener(TimerEvent.TIMER, brokeCage);
}
private function hitGoat(event:TimerEvent=null):void{
var i:int;
if (event){
event.stopPropagation();
};
if (Goat.goatList){
if (Goat.goatList.length > 0){
i = 0;
while (i < Goat.count) {
if (this.hit.hitTestObject(Goat.goatList[i].activeArea)){
Goat.goatList[i].kill();
return;
};
i++;
};
};
};
}
public function move(event:TimerEvent=null):void{
var p1:Point;
var newX:Number;
var newY:Number;
var p2:Point;
var dir:Object;
if (event){
event.stopPropagation();
};
if (_counter == 0){
_counter = 7;
if (event != null){
event.stopPropagation();
};
p1 = new Point(this.x, this.y);
newX = MathUtils.rand(150, 400);
newY = MathUtils.rand(150, 300);
p2 = new Point(newX, newY);
dir = Direction.getDirection(p1, p2);
this.body.gotoAndPlay(dir.direction);
if (dir.right){
this.scaleX = -1;
} else {
this.scaleX = 1;
};
Tweener.removeTweens(this);
Tweener.addTween(this, {y:newY, x:newX, time:5, transition:"linear"});
};
_counter--;
}
public function startAnimation():void{
SoundManager.play("bear_landing", 1);
timer.start();
_hitTimer.start();
move();
if (((firstShow) && (!(Config.skiped)))){
sound.stop();
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.bear);
};
}
private function hitChicken(event:TimerEvent=null):void{
var i:int;
event.stopPropagation();
if (Chicken.chickenList){
if (Chicken.chickenList.length > 0){
i = 0;
while (i < Chicken.count) {
if (this.hit.hitTestObject(Chicken.chickenList[i])){
Chicken.chickenList[i].kill();
return;
};
i++;
};
};
};
}
public function resume(event:Event=null):void{
sound.stop();
Tweener.resumeTweens(this);
timer.start();
if (!inCage){
this.body.play();
_hitTimer.start();
sound = SoundManager.play("bear0_panda_scream", 1000);
} else {
_freeTimer.start();
};
}
private function onClick(event:MouseEvent=null):void{
event.stopPropagation();
clicks++;
buildCage.gotoAndStop(clicks);
if (clicks == Number((9 - ShopWindow.availableUpgrades[0]))){
_hitTimer.stop();
buildCage.gotoAndStop(9);
inCage = true;
this.body.stop();
_freeTimer.start();
sound.stop();
Tweener.removeTweens(this, x, y);
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, move, false);
};
if (clicks > Number((9 - ShopWindow.availableUpgrades[0]))){
if (Depot.instance.addProduct("PANDA")){
SoundManager.play("product_take", 1);
this.width = 50;
this.height = 50;
_freeTimer.stop();
Tweener.removeTweens(this);
Tweener.addTween(this, {y:378, time:0.3, onComplete:remove, transition:"easeOutCirc"});
Tweener.addTween(this, {x:265, time:0.3, transition:"easeInOutBack"});
} else {
SoundManager.play("fool_action", 1);
};
} else {
SoundManager.play("cage_click", 1);
};
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this);
_hitTimer.stop();
_freeTimer.stop();
timer.stop();
this.body.stop();
sound.stop();
}
private function brokeCage(event:TimerEvent=null):void{
var p1:Point;
var newX:Number;
var newY:Number;
var p2:Point;
var dir:Object;
_freeCounter++;
if ((((_freeCounter > 5)) && ((_freeCounter < 15)))){
SoundManager.play("cage_breaking");
Tweener.addTween(this, {rotation:(10 * rotationDirect), time:1});
if (rotationDirect == -1){
rotationDirect = 1;
} else {
rotationDirect = -1;
};
};
if (_freeCounter == 15){
buildCage.visible = false;
SoundManager.play("cage_broke_bear_flee");
p1 = new Point(this.x, this.y);
newX = 800;
newY = this.y;
p2 = new Point(newX, newY);
dir = Direction.getDirection(p1, p2);
this.body.gotoAndPlay(dir.direction);
if (dir.right){
this.scaleX = -1;
} else {
this.scaleX = 1;
};
Tweener.removeTweens(this);
Tweener.addTween(this, {y:newY, x:newX, time:0.4, transition:"linear", onComplete:remove});
};
}
}
}//package bears
Section 7
//PandaTemplate (bears.PandaTemplate)
package bears {
import flash.display.*;
public dynamic class PandaTemplate extends MovieClip {
public var buildCage:MovieClip;
public var hit:MovieClip;
public var body:MovieClip;
public function PandaTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
buildCage.mouseEnabled = false;
buildCage.mouseChildren = false;
}
}
}//package bears
Section 8
//body_2 (brownBear_fla.body_2)
package brownBear_fla {
import flash.display.*;
public dynamic class body_2 extends MovieClip {
public function body_2(){
addFrameScript(15, frame16, 31, frame32, 47, frame48, 63, frame64, 79, frame80);
}
function frame64(){
gotoAndPlay("up");
}
function frame80(){
gotoAndPlay("left_up");
}
function frame16(){
gotoAndPlay("down");
}
function frame48(){
gotoAndPlay("left_down");
}
function frame32(){
gotoAndPlay("left");
}
}
}//package brownBear_fla
Section 9
//buildCage_4 (brownBear_fla.buildCage_4)
package brownBear_fla {
import flash.display.*;
public dynamic class buildCage_4 extends MovieClip {
public function buildCage_4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package brownBear_fla
Section 10
//FilterShortcuts (caurina.transitions.properties.FilterShortcuts)
package caurina.transitions.properties {
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import caurina.transitions.*;
public class FilterShortcuts {
public function FilterShortcuts(){
super();
trace("This is an static class and should not be instantiated.");
}
public static function init():void{
Tweener.registerSpecialPropertySplitter("_filter", _filter_splitter);
Tweener.registerSpecialProperty("_Bevel_angle", _filter_property_get, _filter_property_set, [BevelFilter, "angle"]);
Tweener.registerSpecialProperty("_Bevel_blurX", _filter_property_get, _filter_property_set, [BevelFilter, "blurX"]);
Tweener.registerSpecialProperty("_Bevel_blurY", _filter_property_get, _filter_property_set, [BevelFilter, "blurY"]);
Tweener.registerSpecialProperty("_Bevel_distance", _filter_property_get, _filter_property_set, [BevelFilter, "distance"]);
Tweener.registerSpecialProperty("_Bevel_highlightAlpha", _filter_property_get, _filter_property_set, [BevelFilter, "highlightAlpha"]);
Tweener.registerSpecialPropertySplitter("_Bevel_highlightColor", _generic_color_splitter, ["_Bevel_highlightColor_r", "_Bevel_highlightColor_g", "_Bevel_highlightColor_b"]);
Tweener.registerSpecialProperty("_Bevel_highlightColor_r", _filter_property_get, _filter_property_set, [BevelFilter, "highlightColor", "color", "r"]);
Tweener.registerSpecialProperty("_Bevel_highlightColor_g", _filter_property_get, _filter_property_set, [BevelFilter, "highlightColor", "color", "g"]);
Tweener.registerSpecialProperty("_Bevel_highlightColor_b", _filter_property_get, _filter_property_set, [BevelFilter, "highlightColor", "color", "b"]);
Tweener.registerSpecialProperty("_Bevel_knockout", _filter_property_get, _filter_property_set, [BevelFilter, "knockout"]);
Tweener.registerSpecialProperty("_Bevel_quality", _filter_property_get, _filter_property_set, [BevelFilter, "quality"]);
Tweener.registerSpecialProperty("_Bevel_shadowAlpha", _filter_property_get, _filter_property_set, [BevelFilter, "shadowAlpha"]);
Tweener.registerSpecialPropertySplitter("_Bevel_shadowColor", _generic_color_splitter, ["_Bevel_shadowColor_r", "_Bevel_shadowColor_g", "_Bevel_shadowColor_b"]);
Tweener.registerSpecialProperty("_Bevel_shadowColor_r", _filter_property_get, _filter_property_set, [BevelFilter, "shadowColor", "color", "r"]);
Tweener.registerSpecialProperty("_Bevel_shadowColor_g", _filter_property_get, _filter_property_set, [BevelFilter, "shadowColor", "color", "g"]);
Tweener.registerSpecialProperty("_Bevel_shadowColor_b", _filter_property_get, _filter_property_set, [BevelFilter, "shadowColor", "color", "b"]);
Tweener.registerSpecialProperty("_Bevel_strength", _filter_property_get, _filter_property_set, [BevelFilter, "strength"]);
Tweener.registerSpecialProperty("_Bevel_type", _filter_property_get, _filter_property_set, [BevelFilter, "type"]);
Tweener.registerSpecialProperty("_Blur_blurX", _filter_property_get, _filter_property_set, [BlurFilter, "blurX"]);
Tweener.registerSpecialProperty("_Blur_blurY", _filter_property_get, _filter_property_set, [BlurFilter, "blurY"]);
Tweener.registerSpecialProperty("_Blur_quality", _filter_property_get, _filter_property_set, [BlurFilter, "quality"]);
Tweener.registerSpecialPropertySplitter("_ColorMatrix_matrix", _generic_matrix_splitter, [[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], ["_ColorMatrix_matrix_rr", "_ColorMatrix_matrix_rg", "_ColorMatrix_matrix_rb", "_ColorMatrix_matrix_ra", "_ColorMatrix_matrix_ro", "_ColorMatrix_matrix_gr", "_ColorMatrix_matrix_gg", "_ColorMatrix_matrix_gb", "_ColorMatrix_matrix_ga", "_ColorMatrix_matrix_go", "_ColorMatrix_matrix_br", "_ColorMatrix_matrix_bg", "_ColorMatrix_matrix_bb", "_ColorMatrix_matrix_ba", "_ColorMatrix_matrix_bo", "_ColorMatrix_matrix_ar", "_ColorMatrix_matrix_ag", "_ColorMatrix_matrix_ab", "_ColorMatrix_matrix_aa", "_ColorMatrix_matrix_ao"]]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_rr", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 0]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_rg", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 1]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_rb", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 2]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ra", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 3]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ro", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 4]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_gr", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 5]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_gg", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 6]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_gb", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 7]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ga", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 8]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_go", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 9]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_br", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 10]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_bg", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 11]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_bb", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 12]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ba", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 13]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_bo", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 14]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ar", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 15]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ag", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 16]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ab", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 17]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_aa", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 18]);
Tweener.registerSpecialProperty("_ColorMatrix_matrix_ao", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 19]);
Tweener.registerSpecialProperty("_Convolution_alpha", _filter_property_get, _filter_property_set, [ConvolutionFilter, "alpha"]);
Tweener.registerSpecialProperty("_Convolution_bias", _filter_property_get, _filter_property_set, [ConvolutionFilter, "bias"]);
Tweener.registerSpecialProperty("_Convolution_clamp", _filter_property_get, _filter_property_set, [ConvolutionFilter, "clamp"]);
Tweener.registerSpecialPropertySplitter("_Convolution_color", _generic_color_splitter, ["_Convolution_color_r", "_Convolution_color_g", "_Convolution_color_b"]);
Tweener.registerSpecialProperty("_Convolution_color_r", _filter_property_get, _filter_property_set, [ConvolutionFilter, "color", "color", "r"]);
Tweener.registerSpecialProperty("_Convolution_color_g", _filter_property_get, _filter_property_set, [ConvolutionFilter, "color", "color", "g"]);
Tweener.registerSpecialProperty("_Convolution_color_b", _filter_property_get, _filter_property_set, [ConvolutionFilter, "color", "color", "b"]);
Tweener.registerSpecialProperty("_Convolution_divisor", _filter_property_get, _filter_property_set, [ConvolutionFilter, "divisor"]);
Tweener.registerSpecialProperty("_Convolution_matrixX", _filter_property_get, _filter_property_set, [ConvolutionFilter, "matrixX"]);
Tweener.registerSpecialProperty("_Convolution_matrixY", _filter_property_get, _filter_property_set, [ConvolutionFilter, "matrixY"]);
Tweener.registerSpecialProperty("_Convolution_preserveAlpha", _filter_property_get, _filter_property_set, [ConvolutionFilter, "preserveAlpha"]);
Tweener.registerSpecialProperty("_DisplacementMap_alpha", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "alpha"]);
Tweener.registerSpecialPropertySplitter("_DisplacementMap_color", _generic_color_splitter, ["_DisplacementMap_color_r", "_DisplacementMap_color_r", "_DisplacementMap_color_r"]);
Tweener.registerSpecialProperty("_DisplacementMap_color_r", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "color", "color", "r"]);
Tweener.registerSpecialProperty("_DisplacementMap_color_g", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "color", "color", "g"]);
Tweener.registerSpecialProperty("_DisplacementMap_color_b", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "color", "color", "b"]);
Tweener.registerSpecialProperty("_DisplacementMap_componentX", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "componentX"]);
Tweener.registerSpecialProperty("_DisplacementMap_componentY", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "componentY"]);
Tweener.registerSpecialProperty("_DisplacementMap_mapBitmap", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mapBitmap"]);
Tweener.registerSpecialPropertySplitter("_DisplacementMap_mapPoint", _generic_point_splitter, ["_DisplacementMap_mapPoint_x", "_DisplacementMap_mapPoint_y"]);
Tweener.registerSpecialProperty("_DisplacementMap_mapPoint_x", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mapPoint", "point", "x"]);
Tweener.registerSpecialProperty("_DisplacementMap_mapPoint_y", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mapPoint", "point", "y"]);
Tweener.registerSpecialProperty("_DisplacementMap_mode", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mode"]);
Tweener.registerSpecialProperty("_DisplacementMap_scaleX", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "scaleX"]);
Tweener.registerSpecialProperty("_DisplacementMap_scaleY", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "scaleY"]);
Tweener.registerSpecialProperty("_DropShadow_alpha", _filter_property_get, _filter_property_set, [DropShadowFilter, "alpha"]);
Tweener.registerSpecialProperty("_DropShadow_angle", _filter_property_get, _filter_property_set, [DropShadowFilter, "angle"]);
Tweener.registerSpecialProperty("_DropShadow_blurX", _filter_property_get, _filter_property_set, [DropShadowFilter, "blurX"]);
Tweener.registerSpecialProperty("_DropShadow_blurY", _filter_property_get, _filter_property_set, [DropShadowFilter, "blurY"]);
Tweener.registerSpecialPropertySplitter("_DropShadow_color", _generic_color_splitter, ["_DropShadow_color_r", "_DropShadow_color_g", "_DropShadow_color_b"]);
Tweener.registerSpecialProperty("_DropShadow_color_r", _filter_property_get, _filter_property_set, [DropShadowFilter, "color", "color", "r"]);
Tweener.registerSpecialProperty("_DropShadow_color_g", _filter_property_get, _filter_property_set, [DropShadowFilter, "color", "color", "g"]);
Tweener.registerSpecialProperty("_DropShadow_color_b", _filter_property_get, _filter_property_set, [DropShadowFilter, "color", "color", "b"]);
Tweener.registerSpecialProperty("_DropShadow_distance", _filter_property_get, _filter_property_set, [DropShadowFilter, "distance"]);
Tweener.registerSpecialProperty("_DropShadow_hideObject", _filter_property_get, _filter_property_set, [DropShadowFilter, "hideObject"]);
Tweener.registerSpecialProperty("_DropShadow_inner", _filter_property_get, _filter_property_set, [DropShadowFilter, "inner"]);
Tweener.registerSpecialProperty("_DropShadow_knockout", _filter_property_get, _filter_property_set, [DropShadowFilter, "knockout"]);
Tweener.registerSpecialProperty("_DropShadow_quality", _filter_property_get, _filter_property_set, [DropShadowFilter, "quality"]);
Tweener.registerSpecialProperty("_DropShadow_strength", _filter_property_get, _filter_property_set, [DropShadowFilter, "strength"]);
Tweener.registerSpecialProperty("_Glow_alpha", _filter_property_get, _filter_property_set, [GlowFilter, "alpha"]);
Tweener.registerSpecialProperty("_Glow_blurX", _filter_property_get, _filter_property_set, [GlowFilter, "blurX"]);
Tweener.registerSpecialProperty("_Glow_blurY", _filter_property_get, _filter_property_set, [GlowFilter, "blurY"]);
Tweener.registerSpecialPropertySplitter("_Glow_color", _generic_color_splitter, ["_Glow_color_r", "_Glow_color_g", "_Glow_color_b"]);
Tweener.registerSpecialProperty("_Glow_color_r", _filter_property_get, _filter_property_set, [GlowFilter, "color", "color", "r"]);
Tweener.registerSpecialProperty("_Glow_color_g", _filter_property_get, _filter_property_set, [GlowFilter, "color", "color", "g"]);
Tweener.registerSpecialProperty("_Glow_color_b", _filter_property_get, _filter_property_set, [GlowFilter, "color", "color", "b"]);
Tweener.registerSpecialProperty("_Glow_inner", _filter_property_get, _filter_property_set, [GlowFilter, "inner"]);
Tweener.registerSpecialProperty("_Glow_knockout", _filter_property_get, _filter_property_set, [GlowFilter, "knockout"]);
Tweener.registerSpecialProperty("_Glow_quality", _filter_property_get, _filter_property_set, [GlowFilter, "quality"]);
Tweener.registerSpecialProperty("_Glow_strength", _filter_property_get, _filter_property_set, [GlowFilter, "strength"]);
Tweener.registerSpecialProperty("_GradientBevel_angle", _filter_property_get, _filter_property_set, [GradientBevelFilter, "angle"]);
Tweener.registerSpecialProperty("_GradientBevel_blurX", _filter_property_get, _filter_property_set, [GradientBevelFilter, "blurX"]);
Tweener.registerSpecialProperty("_GradientBevel_blurY", _filter_property_get, _filter_property_set, [GradientBevelFilter, "blurY"]);
Tweener.registerSpecialProperty("_GradientBevel_distance", _filter_property_get, _filter_property_set, [GradientBevelFilter, "distance"]);
Tweener.registerSpecialProperty("_GradientBevel_quality", _filter_property_get, _filter_property_set, [GradientBevelFilter, "quality"]);
Tweener.registerSpecialProperty("_GradientBevel_strength", _filter_property_get, _filter_property_set, [GradientBevelFilter, "strength"]);
Tweener.registerSpecialProperty("_GradientBevel_type", _filter_property_get, _filter_property_set, [GradientBevelFilter, "type"]);
Tweener.registerSpecialProperty("_GradientGlow_angle", _filter_property_get, _filter_property_set, [GradientGlowFilter, "angle"]);
Tweener.registerSpecialProperty("_GradientGlow_blurX", _filter_property_get, _filter_property_set, [GradientGlowFilter, "blurX"]);
Tweener.registerSpecialProperty("_GradientGlow_blurY", _filter_property_get, _filter_property_set, [GradientGlowFilter, "blurY"]);
Tweener.registerSpecialProperty("_GradientGlow_distance", _filter_property_get, _filter_property_set, [GradientGlowFilter, "distance"]);
Tweener.registerSpecialProperty("_GradientGlow_knockout", _filter_property_get, _filter_property_set, [GradientGlowFilter, "knockout"]);
Tweener.registerSpecialProperty("_GradientGlow_quality", _filter_property_get, _filter_property_set, [GradientGlowFilter, "quality"]);
Tweener.registerSpecialProperty("_GradientGlow_strength", _filter_property_get, _filter_property_set, [GradientGlowFilter, "strength"]);
Tweener.registerSpecialProperty("_GradientGlow_type", _filter_property_get, _filter_property_set, [GradientGlowFilter, "type"]);
}
public static function _filter_property_get(p_obj:Object, p_parameters:Array, p_extra:Object=null):Number{
var i:Number;
var defaultValues:Object;
var colorComponent:String;
var f:Array = p_obj.filters;
var filterClass:Object = p_parameters[0];
var propertyName:String = p_parameters[1];
var splitType:String = p_parameters[2];
i = 0;
while (i < f.length) {
if ((f[i] is Class(filterClass))){
if (splitType == "color"){
colorComponent = p_parameters[3];
if (colorComponent == "r"){
return (AuxFunctions.numberToR(f[i][propertyName]));
};
if (colorComponent == "g"){
return (AuxFunctions.numberToG(f[i][propertyName]));
};
if (colorComponent == "b"){
return (AuxFunctions.numberToB(f[i][propertyName]));
};
} else {
if (splitType == "matrix"){
return (f[i][propertyName][p_parameters[3]]);
};
if (splitType == "point"){
return (f[i][propertyName][p_parameters[3]]);
};
return (f[i][propertyName]);
};
};
i++;
};
switch (filterClass){
case BevelFilter:
defaultValues = {angle:NaN, blurX:0, blurY:0, distance:0, highlightAlpha:1, highlightColor:NaN, knockout:null, quality:NaN, shadowAlpha:1, shadowColor:NaN, strength:2, type:null};
break;
case BlurFilter:
defaultValues = {blurX:0, blurY:0, quality:NaN};
break;
case ColorMatrixFilter:
defaultValues = {matrix:[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]};
break;
case ConvolutionFilter:
defaultValues = {alpha:0, bias:0, clamp:null, color:NaN, divisor:1, matrix:[1], matrixX:1, matrixY:1, preserveAlpha:null};
break;
case DisplacementMapFilter:
defaultValues = {alpha:0, color:NaN, componentX:null, componentY:null, mapBitmap:null, mapPoint:null, mode:null, scaleX:0, scaleY:0};
break;
case DropShadowFilter:
defaultValues = {distance:0, angle:NaN, color:NaN, alpha:1, blurX:0, blurY:0, strength:1, quality:NaN, inner:null, knockout:null, hideObject:null};
break;
case GlowFilter:
defaultValues = {alpha:1, blurX:0, blurY:0, color:NaN, inner:null, knockout:null, quality:NaN, strength:2};
break;
case GradientBevelFilter:
defaultValues = {alphas:null, angle:NaN, blurX:0, blurY:0, colors:null, distance:0, knockout:null, quality:NaN, ratios:NaN, strength:1, type:null};
break;
case GradientGlowFilter:
defaultValues = {alphas:null, angle:NaN, blurX:0, blurY:0, colors:null, distance:0, knockout:null, quality:NaN, ratios:NaN, strength:1, type:null};
break;
};
if (splitType == "color"){
return (NaN);
};
if (splitType == "matrix"){
return (defaultValues[propertyName][p_parameters[3]]);
};
if (splitType == "point"){
return (defaultValues[propertyName][p_parameters[3]]);
};
return (defaultValues[propertyName]);
}
public static function _filter_property_set(p_obj:Object, p_value:Number, p_parameters:Array, p_extra:Object=null):void{
var i:Number;
var fi:BitmapFilter;
var colorComponent:String;
var mtx:Array;
var pt:Point;
var f:Array = p_obj.filters;
var filterClass:Object = p_parameters[0];
var propertyName:String = p_parameters[1];
var splitType:String = p_parameters[2];
i = 0;
while (i < f.length) {
if ((f[i] is Class(filterClass))){
if (splitType == "color"){
colorComponent = p_parameters[3];
if (colorComponent == "r"){
f[i][propertyName] = ((f[i][propertyName] & 0xFFFF) | (p_value << 16));
};
if (colorComponent == "g"){
f[i][propertyName] = ((f[i][propertyName] & 0xFF00FF) | (p_value << 8));
};
if (colorComponent == "b"){
f[i][propertyName] = ((f[i][propertyName] & 0xFFFF00) | p_value);
};
} else {
if (splitType == "matrix"){
mtx = f[i][propertyName];
mtx[p_parameters[3]] = p_value;
f[i][propertyName] = mtx;
} else {
if (splitType == "point"){
pt = Point(f[i][propertyName]);
pt[p_parameters[3]] = p_value;
f[i][propertyName] = pt;
} else {
f[i][propertyName] = p_value;
};
};
};
p_obj.filters = f;
return;
};
i++;
};
if (f == null){
f = new Array();
};
switch (filterClass){
case BevelFilter:
fi = new BevelFilter(0, 45, 0xFFFFFF, 1, 0, 1, 0, 0);
break;
case BlurFilter:
fi = new BlurFilter(0, 0);
break;
case ColorMatrixFilter:
fi = new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]);
break;
case ConvolutionFilter:
fi = new ConvolutionFilter(1, 1, [1], 1, 0, true, true, 0, 0);
break;
case DisplacementMapFilter:
fi = new DisplacementMapFilter(new BitmapData(10, 10), new Point(0, 0), 0, 1, 0, 0);
break;
case DropShadowFilter:
fi = new DropShadowFilter(0, 45, 0, 1, 0, 0);
break;
case GlowFilter:
fi = new GlowFilter(0xFF0000, 1, 0, 0);
break;
case GradientBevelFilter:
fi = new GradientBevelFilter(0, 45, [0xFFFFFF, 0], [1, 1], [32, 223], 0, 0);
break;
case GradientGlowFilter:
fi = new GradientGlowFilter(0, 45, [0xFFFFFF, 0], [1, 1], [32, 223], 0, 0);
break;
};
f.push(fi);
p_obj.filters = f;
_filter_property_set(p_obj, p_value, p_parameters);
}
public static function _generic_color_splitter(p_value:Number, p_parameters:Array):Array{
var nArray:Array = new Array();
nArray.push({name:p_parameters[0], value:AuxFunctions.numberToR(p_value)});
nArray.push({name:p_parameters[1], value:AuxFunctions.numberToG(p_value)});
nArray.push({name:p_parameters[2], value:AuxFunctions.numberToB(p_value)});
return (nArray);
}
public static function _generic_point_splitter(p_value:Point, p_parameters:Array):Array{
var nArray:Array = new Array();
nArray.push({name:p_parameters[0], value:p_value.x});
nArray.push({name:p_parameters[1], value:p_value.y});
return (nArray);
}
public static function _generic_matrix_splitter(p_value:Array, p_parameters:Array):Array{
if (p_value == null){
p_value = p_parameters[0].concat();
};
var nArray:Array = new Array();
var i:Number = 0;
while (i < p_value.length) {
nArray.push({name:p_parameters[1][i], value:p_value[i]});
i++;
};
return (nArray);
}
public static function _filter_splitter(p_value:BitmapFilter, p_parameters:Array, p_extra:Object=null):Array{
var nArray:Array = new Array();
if ((p_value is BevelFilter)){
nArray.push({name:"_Bevel_angle", value:BevelFilter(p_value).angle});
nArray.push({name:"_Bevel_blurX", value:BevelFilter(p_value).blurX});
nArray.push({name:"_Bevel_blurY", value:BevelFilter(p_value).blurY});
nArray.push({name:"_Bevel_distance", value:BevelFilter(p_value).distance});
nArray.push({name:"_Bevel_highlightAlpha", value:BevelFilter(p_value).highlightAlpha});
nArray.push({name:"_Bevel_highlightColor", value:BevelFilter(p_value).highlightColor});
nArray.push({name:"_Bevel_knockout", value:BevelFilter(p_value).knockout});
nArray.push({name:"_Bevel_quality", value:BevelFilter(p_value).quality});
nArray.push({name:"_Bevel_shadowAlpha", value:BevelFilter(p_value).shadowAlpha});
nArray.push({name:"_Bevel_shadowColor", value:BevelFilter(p_value).shadowColor});
nArray.push({name:"_Bevel_strength", value:BevelFilter(p_value).strength});
nArray.push({name:"_Bevel_type", value:BevelFilter(p_value).type});
} else {
if ((p_value is BlurFilter)){
nArray.push({name:"_Blur_blurX", value:BlurFilter(p_value).blurX});
nArray.push({name:"_Blur_blurY", value:BlurFilter(p_value).blurY});
nArray.push({name:"_Blur_quality", value:BlurFilter(p_value).quality});
} else {
if ((p_value is ColorMatrixFilter)){
nArray.push({name:"_ColorMatrix_matrix", value:ColorMatrixFilter(p_value).matrix});
} else {
if ((p_value is ConvolutionFilter)){
nArray.push({name:"_Convolution_alpha", value:ConvolutionFilter(p_value).alpha});
nArray.push({name:"_Convolution_bias", value:ConvolutionFilter(p_value).bias});
nArray.push({name:"_Convolution_clamp", value:ConvolutionFilter(p_value).clamp});
nArray.push({name:"_Convolution_color", value:ConvolutionFilter(p_value).color});
nArray.push({name:"_Convolution_divisor", value:ConvolutionFilter(p_value).divisor});
nArray.push({name:"_Convolution_matrixX", value:ConvolutionFilter(p_value).matrixX});
nArray.push({name:"_Convolution_matrixY", value:ConvolutionFilter(p_value).matrixY});
nArray.push({name:"_Convolution_preserveAlpha", value:ConvolutionFilter(p_value).preserveAlpha});
} else {
if ((p_value is DisplacementMapFilter)){
nArray.push({name:"_DisplacementMap_alpha", value:DisplacementMapFilter(p_value).alpha});
nArray.push({name:"_DisplacementMap_color", value:DisplacementMapFilter(p_value).color});
nArray.push({name:"_DisplacementMap_componentX", value:DisplacementMapFilter(p_value).componentX});
nArray.push({name:"_DisplacementMap_componentY", value:DisplacementMapFilter(p_value).componentY});
nArray.push({name:"_DisplacementMap_mapBitmap", value:DisplacementMapFilter(p_value).mapBitmap});
nArray.push({name:"_DisplacementMap_mapPoint", value:DisplacementMapFilter(p_value).mapPoint});
nArray.push({name:"_DisplacementMap_mode", value:DisplacementMapFilter(p_value).mode});
nArray.push({name:"_DisplacementMap_scaleX", value:DisplacementMapFilter(p_value).scaleX});
nArray.push({name:"_DisplacementMap_scaleY", value:DisplacementMapFilter(p_value).scaleY});
} else {
if ((p_value is DropShadowFilter)){
nArray.push({name:"_DropShadow_alpha", value:DropShadowFilter(p_value).alpha});
nArray.push({name:"_DropShadow_angle", value:DropShadowFilter(p_value).angle});
nArray.push({name:"_DropShadow_blurX", value:DropShadowFilter(p_value).blurX});
nArray.push({name:"_DropShadow_blurY", value:DropShadowFilter(p_value).blurY});
nArray.push({name:"_DropShadow_color", value:DropShadowFilter(p_value).color});
nArray.push({name:"_DropShadow_distance", value:DropShadowFilter(p_value).distance});
nArray.push({name:"_DropShadow_hideObject", value:DropShadowFilter(p_value).hideObject});
nArray.push({name:"_DropShadow_inner", value:DropShadowFilter(p_value).inner});
nArray.push({name:"_DropShadow_knockout", value:DropShadowFilter(p_value).knockout});
nArray.push({name:"_DropShadow_quality", value:DropShadowFilter(p_value).quality});
nArray.push({name:"_DropShadow_strength", value:DropShadowFilter(p_value).strength});
} else {
if ((p_value is GlowFilter)){
nArray.push({name:"_Glow_alpha", value:GlowFilter(p_value).alpha});
nArray.push({name:"_Glow_blurX", value:GlowFilter(p_value).blurX});
nArray.push({name:"_Glow_blurY", value:GlowFilter(p_value).blurY});
nArray.push({name:"_Glow_color", value:GlowFilter(p_value).color});
nArray.push({name:"_Glow_inner", value:GlowFilter(p_value).inner});
nArray.push({name:"_Glow_knockout", value:GlowFilter(p_value).knockout});
nArray.push({name:"_Glow_quality", value:GlowFilter(p_value).quality});
nArray.push({name:"_Glow_strength", value:GlowFilter(p_value).strength});
} else {
if ((p_value is GradientBevelFilter)){
nArray.push({name:"_GradientBevel_angle", value:GradientBevelFilter(p_value).strength});
nArray.push({name:"_GradientBevel_blurX", value:GradientBevelFilter(p_value).blurX});
nArray.push({name:"_GradientBevel_blurY", value:GradientBevelFilter(p_value).blurY});
nArray.push({name:"_GradientBevel_distance", value:GradientBevelFilter(p_value).distance});
nArray.push({name:"_GradientBevel_quality", value:GradientBevelFilter(p_value).quality});
nArray.push({name:"_GradientBevel_strength", value:GradientBevelFilter(p_value).strength});
nArray.push({name:"_GradientBevel_type", value:GradientBevelFilter(p_value).type});
} else {
if ((p_value is GradientGlowFilter)){
nArray.push({name:"_GradientGlow_angle", value:GradientGlowFilter(p_value).strength});
nArray.push({name:"_GradientGlow_blurX", value:GradientGlowFilter(p_value).blurX});
nArray.push({name:"_GradientGlow_blurY", value:GradientGlowFilter(p_value).blurY});
nArray.push({name:"_GradientGlow_distance", value:GradientGlowFilter(p_value).distance});
nArray.push({name:"_GradientGlow_knockout", value:GradientGlowFilter(p_value).knockout});
nArray.push({name:"_GradientGlow_quality", value:GradientGlowFilter(p_value).quality});
nArray.push({name:"_GradientGlow_strength", value:GradientGlowFilter(p_value).strength});
nArray.push({name:"_GradientGlow_type", value:GradientGlowFilter(p_value).type});
} else {
trace("Tweener FilterShortcuts Error :: Unknown filter class used");
};
};
};
};
};
};
};
};
};
return (nArray);
}
}
}//package caurina.transitions.properties
Section 11
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public function AuxFunctions(){
super();
}
public static function getObjectLength(p_object:Object):uint{
var pName:String;
var totalProperties:uint;
for (pName in p_object) {
totalProperties++;
};
return (totalProperties);
}
public static function numberToG(p_num:Number):Number{
return (((p_num & 0xFF00) >> 8));
}
public static function numberToB(p_num:Number):Number{
return ((p_num & 0xFF));
}
public static function numberToR(p_num:Number):Number{
return (((p_num & 0xFF0000) >> 16));
}
public static function concatObjects(... _args):Object{
var currentObject:Object;
var prop:String;
var finalObject:Object = {};
var i:int;
while (i < _args.length) {
currentObject = _args[i];
for (prop in currentObject) {
if (currentObject[prop] == null){
delete finalObject[prop];
} else {
finalObject[prop] = currentObject[prop];
};
};
i++;
};
return (finalObject);
}
}
}//package caurina.transitions
Section 12
//Equations (caurina.transitions.Equations)
package caurina.transitions {
public class Equations {
public function Equations(){
super();
trace("Equations is a static class and should not be instantiated.");
}
public static function easeOutBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
if (t < (1 / 2.75)){
return (((c * ((7.5625 * t) * t)) + b));
};
if (t < (2 / 2.75)){
t = (t - (1.5 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.75)) + b));
};
if (t < (2.5 / 2.75)){
t = (t - (2.25 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.9375)) + b));
};
t = (t - (2.625 / 2.75));
return (((c * (((7.5625 * t) * t) + 0.984375)) + b));
}
public static function easeInOutElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number;
if (t == 0){
return (b);
};
t = (t / (d / 2));
if (t == 2){
return ((b + c));
};
var p:Number = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * (0.3 * 1.5)) : p_params.period;
var a:Number = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude;
if (((!(Boolean(a))) || ((a < Math.abs(c))))){
a = c;
s = (p / 4);
} else {
s = ((p / (2 * Math.PI)) * Math.asin((c / a)));
};
if (t < 1){
--t;
return (((-0.5 * ((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p)))) + b));
};
--t;
return ((((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p))) * 0.5) + c) + b));
}
public static function easeInOutQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return (((((c / 2) * t) * t) + b));
};
--t;
return ((((-(c) / 2) * ((t * (t - 2)) - 1)) + b));
}
public static function easeInOutBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (((easeInBounce((t * 2), 0, c, d) * 0.5) + b));
};
return ((((easeOutBounce(((t * 2) - d), 0, c, d) * 0.5) + (c * 0.5)) + b));
}
public static function easeInOutBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot;
t = (t / (d / 2));
if (t < 1){
s = (s * 1.525);
return ((((c / 2) * ((t * t) * (((s + 1) * t) - s))) + b));
};
t = (t - 2);
s = (s * 1.525);
return ((((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 2)) + b));
}
public static function easeOutInCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutCubic((t * 2), b, (c / 2), d, p_params));
};
return (easeInCubic(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeNone(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return ((((c * t) / d) + b));
}
public static function easeOutBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot;
t = ((t / d) - 1);
return (((c * (((t * t) * (((s + 1) * t) + s)) + 1)) + b));
}
public static function easeInOutSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return ((((-(c) / 2) * (Math.cos(((Math.PI * t) / d)) - 1)) + b));
}
public static function easeInBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number = (((!(Boolean(p_params))) || (isNaN(p_params.overshoot)))) ? 1.70158 : p_params.overshoot;
t = (t / d);
return (((((c * t) * t) * (((s + 1) * t) - s)) + b));
}
public static function easeInQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return ((((((c * t) * t) * t) * t) + b));
}
public static function easeOutInQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutQuint((t * 2), b, (c / 2), d, p_params));
};
return (easeInQuint(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutInBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutBounce((t * 2), b, (c / 2), d, p_params));
};
return (easeInBounce(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function init():void{
Tweener.registerTransition("easenone", easeNone);
Tweener.registerTransition("linear", easeNone);
Tweener.registerTransition("easeinquad", easeInQuad);
Tweener.registerTransition("easeoutquad", easeOutQuad);
Tweener.registerTransition("easeinoutquad", easeInOutQuad);
Tweener.registerTransition("easeoutinquad", easeOutInQuad);
Tweener.registerTransition("easeincubic", easeInCubic);
Tweener.registerTransition("easeoutcubic", easeOutCubic);
Tweener.registerTransition("easeinoutcubic", easeInOutCubic);
Tweener.registerTransition("easeoutincubic", easeOutInCubic);
Tweener.registerTransition("easeinquart", easeInQuart);
Tweener.registerTransition("easeoutquart", easeOutQuart);
Tweener.registerTransition("easeinoutquart", easeInOutQuart);
Tweener.registerTransition("easeoutinquart", easeOutInQuart);
Tweener.registerTransition("easeinquint", easeInQuint);
Tweener.registerTransition("easeoutquint", easeOutQuint);
Tweener.registerTransition("easeinoutquint", easeInOutQuint);
Tweener.registerTransition("easeoutinquint", easeOutInQuint);
Tweener.registerTransition("easeinsine", easeInSine);
Tweener.registerTransition("easeoutsine", easeOutSine);
Tweener.registerTransition("easeinoutsine", easeInOutSine);
Tweener.registerTransition("easeoutinsine", easeOutInSine);
Tweener.registerTransition("easeincirc", easeInCirc);
Tweener.registerTransition("easeoutcirc", easeOutCirc);
Tweener.registerTransition("easeinoutcirc", easeInOutCirc);
Tweener.registerTransition("easeoutincirc", easeOutInCirc);
Tweener.registerTransition("easeinexpo", easeInExpo);
Tweener.registerTransition("easeoutexpo", easeOutExpo);
Tweener.registerTransition("easeinoutexpo", easeInOutExpo);
Tweener.registerTransition("easeoutinexpo", easeOutInExpo);
Tweener.registerTransition("easeinelastic", easeInElastic);
Tweener.registerTransition("easeoutelastic", easeOutElastic);
Tweener.registerTransition("easeinoutelastic", easeInOutElastic);
Tweener.registerTransition("easeoutinelastic", easeOutInElastic);
Tweener.registerTransition("easeinback", easeInBack);
Tweener.registerTransition("easeoutback", easeOutBack);
Tweener.registerTransition("easeinoutback", easeInOutBack);
Tweener.registerTransition("easeoutinback", easeOutInBack);
Tweener.registerTransition("easeinbounce", easeInBounce);
Tweener.registerTransition("easeoutbounce", easeOutBounce);
Tweener.registerTransition("easeinoutbounce", easeInOutBounce);
Tweener.registerTransition("easeoutinbounce", easeOutInBounce);
}
public static function easeOutExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((t)==d) ? (b + c) : (((c * 1.001) * (-(Math.pow(2, ((-10 * t) / d))) + 1)) + b));
}
public static function easeOutInBack(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutBack((t * 2), b, (c / 2), d, p_params));
};
return (easeInBack(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeInExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((t)==0) ? b : (((c * Math.pow(2, (10 * ((t / d) - 1)))) + b) - (c * 0.001)));
}
public static function easeInCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return (((((c * t) * t) * t) + b));
}
public static function easeInQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return (((((((c * t) * t) * t) * t) * t) + b));
}
public static function easeInOutCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return ((((-(c) / 2) * (Math.sqrt((1 - (t * t))) - 1)) + b));
};
t = (t - 2);
return ((((c / 2) * (Math.sqrt((1 - (t * t))) + 1)) + b));
}
public static function easeInQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return ((((c * t) * t) + b));
}
public static function easeInBounce(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((c - easeOutBounce((d - t), 0, c, d)) + b));
}
public static function easeOutInExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutExpo((t * 2), b, (c / 2), d, p_params));
};
return (easeInExpo(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((-(c) * ((((t * t) * t) * t) - 1)) + b));
}
public static function easeInSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return ((((-(c) * Math.cos(((t / d) * (Math.PI / 2)))) + c) + b));
}
public static function easeInOutQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return (((((((c / 2) * t) * t) * t) * t) + b));
};
t = (t - 2);
return ((((-(c) / 2) * ((((t * t) * t) * t) - 2)) + b));
}
public static function easeOutQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return ((((-(c) * t) * (t - 2)) + b));
}
public static function easeOutInElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutElastic((t * 2), b, (c / 2), d, p_params));
};
return (easeInElastic(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeInElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number;
if (t == 0){
return (b);
};
t = (t / d);
if (t == 1){
return ((b + c));
};
var p:Number = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * 0.3) : p_params.period;
var a:Number = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude;
if (((!(Boolean(a))) || ((a < Math.abs(c))))){
a = c;
s = (p / 4);
} else {
s = ((p / (2 * Math.PI)) * Math.asin((c / a)));
};
--t;
return ((-(((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p)))) + b));
}
public static function easeOutCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((c * (((t * t) * t) + 1)) + b));
}
public static function easeOutQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((c * (((((t * t) * t) * t) * t) + 1)) + b));
}
public static function easeOutInQuad(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutQuad((t * 2), b, (c / 2), d, p_params));
};
return (easeInQuad(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
return (((c * Math.sin(((t / d) * (Math.PI / 2)))) + b));
}
public static function easeInOutCubic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return ((((((c / 2) * t) * t) * t) + b));
};
t = (t - 2);
return ((((c / 2) * (((t * t) * t) + 2)) + b));
}
public static function easeInOutQuint(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / (d / 2));
if (t < 1){
return ((((((((c / 2) * t) * t) * t) * t) * t) + b));
};
t = (t - 2);
return ((((c / 2) * (((((t * t) * t) * t) * t) + 2)) + b));
}
public static function easeInCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = (t / d);
return (((-(c) * (Math.sqrt((1 - (t * t))) - 1)) + b));
}
public static function easeOutInSine(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutSine((t * 2), b, (c / 2), d, p_params));
};
return (easeInSine(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeInOutExpo(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t == 0){
return (b);
};
if (t == d){
return ((b + c));
};
t = (t / (d / 2));
if (t < 1){
return (((((c / 2) * Math.pow(2, (10 * (t - 1)))) + b) - (c * 0.0005)));
};
--t;
return (((((c / 2) * 1.0005) * (-(Math.pow(2, (-10 * t))) + 2)) + b));
}
public static function easeOutElastic(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
var s:Number;
if (t == 0){
return (b);
};
t = (t / d);
if (t == 1){
return ((b + c));
};
var p:Number = (((!(Boolean(p_params))) || (isNaN(p_params.period)))) ? (d * 0.3) : p_params.period;
var a:Number = (((!(Boolean(p_params))) || (isNaN(p_params.amplitude)))) ? 0 : p_params.amplitude;
if (((!(Boolean(a))) || ((a < Math.abs(c))))){
a = c;
s = (p / 4);
} else {
s = ((p / (2 * Math.PI)) * Math.asin((c / a)));
};
return (((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * (2 * Math.PI)) / p))) + c) + b));
}
public static function easeOutCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
t = ((t / d) - 1);
return (((c * Math.sqrt((1 - (t * t)))) + b));
}
public static function easeOutInQuart(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutQuart((t * 2), b, (c / 2), d, p_params));
};
return (easeInQuart(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
public static function easeOutInCirc(t:Number, b:Number, c:Number, d:Number, p_params:Object=null):Number{
if (t < (d / 2)){
return (easeOutCirc((t * 2), b, (c / 2), d, p_params));
};
return (easeInCirc(((t * 2) - d), (b + (c / 2)), (c / 2), d, p_params));
}
}
}//package caurina.transitions
Section 13
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var modifierParameters:Array;
public var isSpecialProperty:Boolean;
public var valueComplete:Number;
public var modifierFunction:Function;
public var extra:Object;
public var valueStart:Number;
public var hasModifier:Boolean;
public var arrayIndex:Number;
public var originalValueComplete:Object;
public function PropertyInfoObj(p_valueStart:Number, p_valueComplete:Number, p_originalValueComplete:Object, p_arrayIndex:Number, p_extra:Object, p_isSpecialProperty:Boolean, p_modifierFunction:Function, p_modifierParameters:Array){
super();
valueStart = p_valueStart;
valueComplete = p_valueComplete;
originalValueComplete = p_originalValueComplete;
arrayIndex = p_arrayIndex;
extra = p_extra;
isSpecialProperty = p_isSpecialProperty;
hasModifier = Boolean(p_modifierFunction);
modifierFunction = p_modifierFunction;
modifierParameters = p_modifierParameters;
}
public function toString():String{
var returnStr:String = "\n[PropertyInfoObj ";
returnStr = (returnStr + ("valueStart:" + String(valueStart)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("valueComplete:" + String(valueComplete)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("originalValueComplete:" + String(originalValueComplete)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("arrayIndex:" + String(arrayIndex)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("extra:" + String(extra)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("isSpecialProperty:" + String(isSpecialProperty)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("hasModifier:" + String(hasModifier)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("modifierFunction:" + String(modifierFunction)));
returnStr = (returnStr + ", ");
returnStr = (returnStr + ("modifierParameters:" + String(modifierParameters)));
returnStr = (returnStr + "]\n");
return (returnStr);
}
public function clone():PropertyInfoObj{
var nProperty:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters);
return (nProperty);
}
}
}//package caurina.transitions
Section 14
//SpecialProperty (caurina.transitions.SpecialProperty)
package caurina.transitions {
public class SpecialProperty {
public var parameters:Array;
public var getValue:Function;
public var preProcess:Function;
public var setValue:Function;
public function SpecialProperty(p_getFunction:Function, p_setFunction:Function, p_parameters:Array=null, p_preProcessFunction:Function=null){
super();
getValue = p_getFunction;
setValue = p_setFunction;
parameters = p_parameters;
preProcess = p_preProcessFunction;
}
public function toString():String{
var value:String = "";
value = (value + "[SpecialProperty ");
value = (value + ("getValue:" + String(getValue)));
value = (value + ", ");
value = (value + ("setValue:" + String(setValue)));
value = (value + ", ");
value = (value + ("parameters:" + String(parameters)));
value = (value + ", ");
value = (value + ("preProcess:" + String(preProcess)));
value = (value + "]");
return (value);
}
}
}//package caurina.transitions
Section 15
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier)
package caurina.transitions {
public class SpecialPropertyModifier {
public var getValue:Function;
public var modifyValues:Function;
public function SpecialPropertyModifier(p_modifyFunction:Function, p_getFunction:Function){
super();
modifyValues = p_modifyFunction;
getValue = p_getFunction;
}
public function toString():String{
var value:String = "";
value = (value + "[SpecialPropertyModifier ");
value = (value + ("modifyValues:" + String(modifyValues)));
value = (value + ", ");
value = (value + ("getValue:" + String(getValue)));
value = (value + "]");
return (value);
}
}
}//package caurina.transitions
Section 16
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter)
package caurina.transitions {
public class SpecialPropertySplitter {
public var parameters:Array;
public var splitValues:Function;
public function SpecialPropertySplitter(p_splitFunction:Function, p_parameters:Array){
super();
splitValues = p_splitFunction;
parameters = p_parameters;
}
public function toString():String{
var value:String = "";
value = (value + "[SpecialPropertySplitter ");
value = (value + ("splitValues:" + String(splitValues)));
value = (value + ", ");
value = (value + ("parameters:" + String(parameters)));
value = (value + "]");
return (value);
}
}
}//package caurina.transitions
Section 17
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tweener {
private static var _timeScale:Number = 1;
private static var _currentTimeFrame:Number;
private static var _specialPropertySplitterList:Object;
private static var _engineExists:Boolean = false;
private static var _specialPropertyModifierList:Object;
private static var _currentTime:Number;
private static var _tweenList:Array;
private static var _specialPropertyList:Object;
private static var _transitionList:Object;
private static var _inited:Boolean = false;
private static var __tweener_controller__:MovieClip;
public function Tweener(){
super();
trace("Tweener is a static class and should not be instantiated.");
}
public static function registerSpecialPropertyModifier(p_name:String, p_modifyFunction:Function, p_getFunction:Function):void{
if (!_inited){
init();
};
var spm:SpecialPropertyModifier = new SpecialPropertyModifier(p_modifyFunction, p_getFunction);
_specialPropertyModifierList[p_name] = spm;
}
public static function registerSpecialProperty(p_name:String, p_getFunction:Function, p_setFunction:Function, p_parameters:Array=null, p_preProcessFunction:Function=null):void{
if (!_inited){
init();
};
var sp:SpecialProperty = new SpecialProperty(p_getFunction, p_setFunction, p_parameters, p_preProcessFunction);
_specialPropertyList[p_name] = sp;
}
public static function init(... _args):void{
_inited = true;
_transitionList = new Object();
Equations.init();
_specialPropertyList = new Object();
_specialPropertyModifierList = new Object();
_specialPropertySplitterList = new Object();
}
private static function updateTweens():Boolean{
var i:int;
if (_tweenList.length == 0){
return (false);
};
i = 0;
while (i < _tweenList.length) {
if ((((_tweenList[i] == undefined)) || (!(_tweenList[i].isPaused)))){
if (!updateTweenByIndex(i)){
removeTweenByIndex(i);
};
if (_tweenList[i] == null){
removeTweenByIndex(i, true);
i--;
};
};
i++;
};
return (true);
}
public static function addCaller(p_scopes:Object=null, p_parameters:Object=null):Boolean{
var i:Number;
var rScopes:Array;
var rTransition:Function;
var nTween:TweenListObj;
var myT:Number;
var trans:String;
if (!Boolean(p_scopes)){
return (false);
};
if ((p_scopes is Array)){
rScopes = p_scopes.concat();
} else {
rScopes = [p_scopes];
};
var p_obj:Object = p_parameters;
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var rTime:Number = (isNaN(p_obj.time)) ? 0 : p_obj.time;
var rDelay:Number = (isNaN(p_obj.delay)) ? 0 : p_obj.delay;
if (typeof(p_obj.transition) == "string"){
trans = p_obj.transition.toLowerCase();
rTransition = _transitionList[trans];
} else {
rTransition = p_obj.transition;
};
if (!Boolean(rTransition)){
rTransition = _transitionList["easeoutexpo"];
};
i = 0;
while (i < rScopes.length) {
if (p_obj.useFrames == true){
nTween = new TweenListObj(rScopes[i], (_currentTimeFrame + (rDelay / _timeScale)), (_currentTimeFrame + ((rDelay + rTime) / _timeScale)), true, rTransition, p_obj.transitionParams);
} else {
nTween = new TweenListObj(rScopes[i], (_currentTime + ((rDelay * 1000) / _timeScale)), (_currentTime + (((rDelay * 1000) + (rTime * 1000)) / _timeScale)), false, rTransition, p_obj.transitionParams);
};
nTween.properties = null;
nTween.onStart = p_obj.onStart;
nTween.onUpdate = p_obj.onUpdate;
nTween.onComplete = p_obj.onComplete;
nTween.onOverwrite = p_obj.onOverwrite;
nTween.onStartParams = p_obj.onStartParams;
nTween.onUpdateParams = p_obj.onUpdateParams;
nTween.onCompleteParams = p_obj.onCompleteParams;
nTween.onOverwriteParams = p_obj.onOverwriteParams;
nTween.onStartScope = p_obj.onStartScope;
nTween.onUpdateScope = p_obj.onUpdateScope;
nTween.onCompleteScope = p_obj.onCompleteScope;
nTween.onOverwriteScope = p_obj.onOverwriteScope;
nTween.onErrorScope = p_obj.onErrorScope;
nTween.isCaller = true;
nTween.count = p_obj.count;
nTween.waitFrames = p_obj.waitFrames;
_tweenList.push(nTween);
if ((((rTime == 0)) && ((rDelay == 0)))){
myT = (_tweenList.length - 1);
updateTweenByIndex(myT);
removeTweenByIndex(myT);
};
i++;
};
return (true);
}
public static function pauseAllTweens():Boolean{
var i:uint;
if (!Boolean(_tweenList)){
return (false);
};
var paused:Boolean;
i = 0;
while (i < _tweenList.length) {
pauseTweenByIndex(i);
paused = true;
i++;
};
return (paused);
}
public static function removeTweens(p_scope:Object, ... _args):Boolean{
var i:uint;
var sps:SpecialPropertySplitter;
var specialProps:Array;
var j:uint;
var properties:Array = new Array();
i = 0;
while (i < _args.length) {
if ((((typeof(_args[i]) == "string")) && ((properties.indexOf(_args[i]) == -1)))){
if (_specialPropertySplitterList[_args[i]]){
sps = _specialPropertySplitterList[_args[i]];
specialProps = sps.splitValues(p_scope, null);
j = 0;
while (j < specialProps.length) {
properties.push(specialProps[j].name);
j++;
};
} else {
properties.push(_args[i]);
};
};
i++;
};
return (affectTweens(removeTweenByIndex, p_scope, properties));
}
public static function splitTweens(p_tween:Number, p_properties:Array):uint{
var i:uint;
var pName:String;
var found:Boolean;
var originalTween:TweenListObj = _tweenList[p_tween];
var newTween:TweenListObj = originalTween.clone(false);
i = 0;
while (i < p_properties.length) {
pName = p_properties[i];
if (Boolean(originalTween.properties[pName])){
originalTween.properties[pName] = undefined;
delete originalTween.properties[pName];
};
i++;
};
for (pName in newTween.properties) {
found = false;
i = 0;
while (i < p_properties.length) {
if (p_properties[i] == pName){
found = true;
break;
};
i++;
};
if (!found){
newTween.properties[pName] = undefined;
delete newTween.properties[pName];
};
};
_tweenList.push(newTween);
return ((_tweenList.length - 1));
}
public static function updateFrame():void{
_currentTimeFrame++;
}
public static function resumeTweenByIndex(p_tween:Number):Boolean{
var tTweening:TweenListObj = _tweenList[p_tween];
if ((((tTweening == null)) || (!(tTweening.isPaused)))){
return (false);
};
var cTime:Number = getCurrentTweeningTime(tTweening);
tTweening.timeStart = (tTweening.timeStart + (cTime - tTweening.timePaused));
tTweening.timeComplete = (tTweening.timeComplete + (cTime - tTweening.timePaused));
tTweening.timePaused = undefined;
tTweening.isPaused = false;
return (true);
}
public static function getVersion():String{
return ("AS3 1.31.74");
}
public static function onEnterFrame(e:Event):void{
updateTime();
updateFrame();
var hasUpdated:Boolean;
hasUpdated = updateTweens();
if (!hasUpdated){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(i:Number):Boolean{
var tTweening:TweenListObj;
var mustUpdate:Boolean;
var nv:Number;
var t:Number;
var b:Number;
var c:Number;
var d:Number;
var pName:String;
var eventScope:Object;
var tScope:Object;
var tProperty:Object;
var pv:Number;
var i = i;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
var isOver:Boolean;
var cTime:Number = getCurrentTweeningTime(tTweening);
if (cTime >= tTweening.timeStart){
tScope = tTweening.scope;
if (tTweening.isCaller){
do {
t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1));
b = tTweening.timeStart;
c = (tTweening.timeComplete - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
//unresolved if
if (Boolean(tTweening.onUpdate)){
eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope;
tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams);
continue;
var _slot1 = e1;
handleError(tTweening, _slot1, "onUpdate");
};
} while (tTweening.timesCalled++, !(tTweening.timesCalled >= tTweening.count));
} else {
mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates)));
if (cTime >= tTweening.timeComplete){
isOver = true;
mustUpdate = true;
};
if (!tTweening.hasStarted){
if (Boolean(tTweening.onStart)){
eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope;
tTweening.onStart.apply(eventScope, tTweening.onStartParams);
//unresolved jump
var _slot1 = e2;
handleError(tTweening, _slot1, "onStart");
};
for (pName in tTweening.properties) {
if (tTweening.properties[pName].isSpecialProperty){
if (Boolean(_specialPropertyList[pName].preProcess)){
tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra);
};
pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
pv = tScope[pName];
};
tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv;
};
mustUpdate = true;
tTweening.hasStarted = true;
};
if (mustUpdate){
for (pName in tTweening.properties) {
tProperty = tTweening.properties[pName];
if (isOver){
nv = tProperty.valueComplete;
} else {
if (tProperty.hasModifier){
t = (cTime - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams);
nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters);
} else {
t = (cTime - tTweening.timeStart);
b = tProperty.valueStart;
c = (tProperty.valueComplete - tProperty.valueStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d, tTweening.transitionParams);
};
};
if (tTweening.rounded){
nv = Math.round(nv);
};
if (tProperty.isSpecialProperty){
_specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
tScope[pName] = nv;
};
};
tTweening.updatesSkipped = 0;
if (Boolean(tTweening.onUpdate)){
eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope;
tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams);
//unresolved jump
var _slot1 = e3;
handleError(tTweening, _slot1, "onUpdate");
};
} else {
tTweening.updatesSkipped++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope;
tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams);
//unresolved jump
var _slot1 = e4;
handleError(tTweening, _slot1, "onComplete");
};
return (!(isOver));
};
return (true);
}
public static function setTimeScale(p_time:Number):void{
var i:Number;
var cTime:Number;
if (isNaN(p_time)){
p_time = 1;
};
if (p_time < 1E-5){
p_time = 1E-5;
};
if (p_time != _timeScale){
if (_tweenList != null){
i = 0;
while (i < _tweenList.length) {
cTime = getCurrentTweeningTime(_tweenList[i]);
_tweenList[i].timeStart = (cTime - (((cTime - _tweenList[i].timeStart) * _timeScale) / p_time));
_tweenList[i].timeComplete = (cTime - (((cTime - _tweenList[i].timeComplete) * _timeScale) / p_time));
if (_tweenList[i].timePaused != undefined){
_tweenList[i].timePaused = (cTime - (((cTime - _tweenList[i].timePaused) * _timeScale) / p_time));
};
i++;
};
};
_timeScale = p_time;
};
}
public static function resumeAllTweens():Boolean{
var i:uint;
if (!Boolean(_tweenList)){
return (false);
};
var resumed:Boolean;
i = 0;
while (i < _tweenList.length) {
resumeTweenByIndex(i);
resumed = true;
i++;
};
return (resumed);
}
private static function handleError(pTweening:TweenListObj, pError:Error, pCallBackName:String):void{
var eventScope:Object;
var pTweening = pTweening;
var pError = pError;
var pCallBackName = pCallBackName;
if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){
eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope;
pTweening.onError.apply(eventScope, [pTweening.scope, pError]);
//unresolved jump
var _slot1 = metaError;
printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + _slot1.getStackTrace()));
} else {
if (!Boolean(pTweening.onError)){
printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace()));
};
};
}
private static function startEngine():void{
_engineExists = true;
_tweenList = new Array();
__tweener_controller__ = new MovieClip();
__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
_currentTimeFrame = 0;
updateTime();
}
public static function removeAllTweens():Boolean{
var i:uint;
if (!Boolean(_tweenList)){
return (false);
};
var removed:Boolean;
i = 0;
while (i < _tweenList.length) {
removeTweenByIndex(i);
removed = true;
i++;
};
return (removed);
}
public static function addTween(p_scopes:Object=null, p_parameters:Object=null):Boolean{
var i:Number;
var j:Number;
var istr:String;
var rScopes:Array;
var rTransition:Function;
var nProperties:Object;
var nTween:TweenListObj;
var myT:Number;
var splitProperties:Array;
var splitProperties2:Array;
var tempModifiedProperties:Array;
var trans:String;
if (!Boolean(p_scopes)){
return (false);
};
if ((p_scopes is Array)){
rScopes = p_scopes.concat();
} else {
rScopes = [p_scopes];
};
var p_obj:Object = TweenListObj.makePropertiesChain(p_parameters);
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var rTime:Number = (isNaN(p_obj.time)) ? 0 : p_obj.time;
var rDelay:Number = (isNaN(p_obj.delay)) ? 0 : p_obj.delay;
var rProperties:Array = new Array();
var restrictedWords:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true};
var modifiedProperties:Object = new Object();
for (istr in p_obj) {
if (!restrictedWords[istr]){
if (_specialPropertySplitterList[istr]){
splitProperties = _specialPropertySplitterList[istr].splitValues(p_obj[istr], _specialPropertySplitterList[istr].parameters);
i = 0;
while (i < splitProperties.length) {
if (_specialPropertySplitterList[splitProperties[i].name]){
splitProperties2 = _specialPropertySplitterList[splitProperties[i].name].splitValues(splitProperties[i].value, _specialPropertySplitterList[splitProperties[i].name].parameters);
j = 0;
while (j < splitProperties2.length) {
rProperties[splitProperties2[j].name] = {valueStart:undefined, valueComplete:splitProperties2[j].value, arrayIndex:splitProperties2[j].arrayIndex, isSpecialProperty:false};
j++;
};
} else {
rProperties[splitProperties[i].name] = {valueStart:undefined, valueComplete:splitProperties[i].value, arrayIndex:splitProperties[i].arrayIndex, isSpecialProperty:false};
};
i++;
};
} else {
if (_specialPropertyModifierList[istr] != undefined){
tempModifiedProperties = _specialPropertyModifierList[istr].modifyValues(p_obj[istr]);
i = 0;
while (i < tempModifiedProperties.length) {
modifiedProperties[tempModifiedProperties[i].name] = {modifierParameters:tempModifiedProperties[i].parameters, modifierFunction:_specialPropertyModifierList[istr].getValue};
i++;
};
} else {
rProperties[istr] = {valueStart:undefined, valueComplete:p_obj[istr]};
};
};
};
};
for (istr in rProperties) {
if (_specialPropertyList[istr] != undefined){
rProperties[istr].isSpecialProperty = true;
} else {
if (rScopes[0][istr] == undefined){
printError((((("The property '" + istr) + "' doesn't seem to be a normal object property of ") + String(rScopes[0])) + " or a registered special property."));
};
};
};
for (istr in modifiedProperties) {
if (rProperties[istr] != undefined){
rProperties[istr].modifierParameters = modifiedProperties[istr].modifierParameters;
rProperties[istr].modifierFunction = modifiedProperties[istr].modifierFunction;
};
};
if (typeof(p_obj.transition) == "string"){
trans = p_obj.transition.toLowerCase();
rTransition = _transitionList[trans];
} else {
rTransition = p_obj.transition;
};
if (!Boolean(rTransition)){
rTransition = _transitionList["easeoutexpo"];
};
i = 0;
while (i < rScopes.length) {
nProperties = new Object();
for (istr in rProperties) {
nProperties[istr] = new PropertyInfoObj(rProperties[istr].valueStart, rProperties[istr].valueComplete, rProperties[istr].valueComplete, rProperties[istr].arrayIndex, {}, rProperties[istr].isSpecialProperty, rProperties[istr].modifierFunction, rProperties[istr].modifierParameters);
};
if (p_obj.useFrames == true){
nTween = new TweenListObj(rScopes[i], (_currentTimeFrame + (rDelay / _timeScale)), (_currentTimeFrame + ((rDelay + rTime) / _timeScale)), true, rTransition, p_obj.transitionParams);
} else {
nTween = new TweenListObj(rScopes[i], (_currentTime + ((rDelay * 1000) / _timeScale)), (_currentTime + (((rDelay * 1000) + (rTime * 1000)) / _timeScale)), false, rTransition, p_obj.transitionParams);
};
nTween.properties = nProperties;
nTween.onStart = p_obj.onStart;
nTween.onUpdate = p_obj.onUpdate;
nTween.onComplete = p_obj.onComplete;
nTween.onOverwrite = p_obj.onOverwrite;
nTween.onError = p_obj.onError;
nTween.onStartParams = p_obj.onStartParams;
nTween.onUpdateParams = p_obj.onUpdateParams;
nTween.onCompleteParams = p_obj.onCompleteParams;
nTween.onOverwriteParams = p_obj.onOverwriteParams;
nTween.onStartScope = p_obj.onStartScope;
nTween.onUpdateScope = p_obj.onUpdateScope;
nTween.onCompleteScope = p_obj.onCompleteScope;
nTween.onOverwriteScope = p_obj.onOverwriteScope;
nTween.onErrorScope = p_obj.onErrorScope;
nTween.rounded = p_obj.rounded;
nTween.skipUpdates = p_obj.skipUpdates;
removeTweensByTime(nTween.scope, nTween.properties, nTween.timeStart, nTween.timeComplete);
_tweenList.push(nTween);
if ((((rTime == 0)) && ((rDelay == 0)))){
myT = (_tweenList.length - 1);
updateTweenByIndex(myT);
removeTweenByIndex(myT);
};
i++;
};
return (true);
}
public static function registerTransition(p_name:String, p_function:Function):void{
if (!_inited){
init();
};
_transitionList[p_name] = p_function;
}
public static function printError(p_message:String):void{
trace(("## [Tweener] Error: " + p_message));
}
private static function affectTweens(p_affectFunction:Function, p_scope:Object, p_properties:Array):Boolean{
var i:uint;
var affectedProperties:Array;
var j:uint;
var objectProperties:uint;
var slicedTweenIndex:uint;
var affected:Boolean;
if (!Boolean(_tweenList)){
return (false);
};
i = 0;
while (i < _tweenList.length) {
if (((_tweenList[i]) && ((_tweenList[i].scope == p_scope)))){
if (p_properties.length == 0){
p_affectFunction(i);
affected = true;
} else {
affectedProperties = new Array();
j = 0;
while (j < p_properties.length) {
if (Boolean(_tweenList[i].properties[p_properties[j]])){
affectedProperties.push(p_properties[j]);
};
j++;
};
if (affectedProperties.length > 0){
objectProperties = AuxFunctions.getObjectLength(_tweenList[i].properties);
if (objectProperties == affectedProperties.length){
p_affectFunction(i);
affected = true;
} else {
slicedTweenIndex = splitTweens(i, affectedProperties);
p_affectFunction(slicedTweenIndex);
affected = true;
};
};
};
};
i++;
};
return (affected);
}
public static function getTweens(p_scope:Object):Array{
var i:uint;
var pName:String;
if (!Boolean(_tweenList)){
return ([]);
};
var tList:Array = new Array();
i = 0;
while (i < _tweenList.length) {
if (((Boolean(_tweenList[i])) && ((_tweenList[i].scope == p_scope)))){
for (pName in _tweenList[i].properties) {
tList.push(pName);
};
};
i++;
};
return (tList);
}
public static function isTweening(p_scope:Object):Boolean{
var i:uint;
if (!Boolean(_tweenList)){
return (false);
};
i = 0;
while (i < _tweenList.length) {
if (((Boolean(_tweenList[i])) && ((_tweenList[i].scope == p_scope)))){
return (true);
};
i++;
};
return (false);
}
public static function pauseTweenByIndex(p_tween:Number):Boolean{
var tTweening:TweenListObj = _tweenList[p_tween];
if ((((tTweening == null)) || (tTweening.isPaused))){
return (false);
};
tTweening.timePaused = getCurrentTweeningTime(tTweening);
tTweening.isPaused = true;
return (true);
}
public static function getCurrentTweeningTime(p_tweening:Object):Number{
return ((p_tweening.useFrames) ? _currentTimeFrame : _currentTime);
}
public static function getTweenCount(p_scope:Object):Number{
var i:uint;
if (!Boolean(_tweenList)){
return (0);
};
var c:Number = 0;
i = 0;
while (i < _tweenList.length) {
if (((Boolean(_tweenList[i])) && ((_tweenList[i].scope == p_scope)))){
c = (c + AuxFunctions.getObjectLength(_tweenList[i].properties));
};
i++;
};
return (c);
}
private static function stopEngine():void{
_engineExists = false;
_tweenList = null;
_currentTime = 0;
_currentTimeFrame = 0;
__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
__tweener_controller__ = null;
}
public static function removeTweensByTime(p_scope:Object, p_properties:Object, p_timeStart:Number, p_timeComplete:Number):Boolean{
var removedLocally:Boolean;
var i:uint;
var pName:String;
var eventScope:Object;
var p_scope = p_scope;
var p_properties = p_properties;
var p_timeStart = p_timeStart;
var p_timeComplete = p_timeComplete;
var removed:Boolean;
var tl:uint = _tweenList.length;
i = 0;
while (i < tl) {
if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){
if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){
removedLocally = false;
for (pName in _tweenList[i].properties) {
if (Boolean(p_properties[pName])){
if (Boolean(_tweenList[i].onOverwrite)){
eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope;
_tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams);
//unresolved jump
var _slot1 = e;
handleError(_tweenList[i], _slot1, "onOverwrite");
};
_tweenList[i].properties[pName] = undefined;
delete _tweenList[i].properties[pName];
removedLocally = true;
removed = true;
};
};
if (removedLocally){
if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){
removeTweenByIndex(i);
};
};
};
};
i = (i + 1);
};
return (removed);
}
public static function registerSpecialPropertySplitter(p_name:String, p_splitFunction:Function, p_parameters:Array=null):void{
if (!_inited){
init();
};
var sps:SpecialPropertySplitter = new SpecialPropertySplitter(p_splitFunction, p_parameters);
_specialPropertySplitterList[p_name] = sps;
}
public static function removeTweenByIndex(i:Number, p_finalRemoval:Boolean=false):Boolean{
_tweenList[i] = null;
if (p_finalRemoval){
_tweenList.splice(i, 1);
};
return (true);
}
public static function resumeTweens(p_scope:Object, ... _args):Boolean{
var i:uint;
var properties:Array = new Array();
i = 0;
while (i < _args.length) {
if ((((typeof(_args[i]) == "string")) && ((properties.indexOf(_args[i]) == -1)))){
properties.push(_args[i]);
};
i++;
};
return (affectTweens(resumeTweenByIndex, p_scope, properties));
}
public static function pauseTweens(p_scope:Object, ... _args):Boolean{
var i:uint;
var properties:Array = new Array();
i = 0;
while (i < _args.length) {
if ((((typeof(_args[i]) == "string")) && ((properties.indexOf(_args[i]) == -1)))){
properties.push(_args[i]);
};
i++;
};
return (affectTweens(pauseTweenByIndex, p_scope, properties));
}
}
}//package caurina.transitions
Section 18
//TweenListObj (caurina.transitions.TweenListObj)
package caurina.transitions {
public class TweenListObj {
public var hasStarted:Boolean;
public var onUpdate:Function;
public var useFrames:Boolean;
public var count:Number;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var timeComplete:Number;
public var onStartParams:Array;
public var onUpdateScope:Object;
public var rounded:Boolean;
public var onUpdateParams:Array;
public var properties:Object;
public var onComplete:Function;
public var transitionParams:Object;
public var updatesSkipped:Number;
public var onStart:Function;
public var onOverwriteScope:Object;
public var skipUpdates:Number;
public var onStartScope:Object;
public var scope:Object;
public var isCaller:Boolean;
public var timePaused:Number;
public var transition:Function;
public var onCompleteParams:Array;
public var onError:Function;
public var timesCalled:Number;
public var onErrorScope:Object;
public var onOverwrite:Function;
public var isPaused:Boolean;
public var waitFrames:Boolean;
public var onCompleteScope:Object;
public function TweenListObj(p_scope:Object, p_timeStart:Number, p_timeComplete:Number, p_useFrames:Boolean, p_transition:Function, p_transitionParams:Object){
super();
scope = p_scope;
timeStart = p_timeStart;
timeComplete = p_timeComplete;
useFrames = p_useFrames;
transition = p_transition;
transitionParams = p_transitionParams;
properties = new Object();
isPaused = false;
timePaused = undefined;
isCaller = false;
updatesSkipped = 0;
timesCalled = 0;
skipUpdates = 0;
hasStarted = false;
}
public function clone(omitEvents:Boolean):TweenListObj{
var pName:String;
var nTween:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams);
nTween.properties = new Array();
for (pName in properties) {
nTween.properties[pName] = properties[pName].clone();
};
nTween.skipUpdates = skipUpdates;
nTween.updatesSkipped = updatesSkipped;
if (!omitEvents){
nTween.onStart = onStart;
nTween.onUpdate = onUpdate;
nTween.onComplete = onComplete;
nTween.onOverwrite = onOverwrite;
nTween.onError = onError;
nTween.onStartParams = onStartParams;
nTween.onUpdateParams = onUpdateParams;
nTween.onCompleteParams = onCompleteParams;
nTween.onOverwriteParams = onOverwriteParams;
nTween.onStartScope = onStartScope;
nTween.onUpdateScope = onUpdateScope;
nTween.onCompleteScope = onCompleteScope;
nTween.onOverwriteScope = onOverwriteScope;
nTween.onErrorScope = onErrorScope;
};
nTween.rounded = rounded;
nTween.isPaused = isPaused;
nTween.timePaused = timePaused;
nTween.isCaller = isCaller;
nTween.count = count;
nTween.timesCalled = timesCalled;
nTween.waitFrames = waitFrames;
nTween.hasStarted = hasStarted;
return (nTween);
}
public function toString():String{
var i:String;
var returnStr:String = "\n[TweenListObj ";
returnStr = (returnStr + ("scope:" + String(scope)));
returnStr = (returnStr + ", properties:");
var isFirst:Boolean;
for (i in properties) {
if (!isFirst){
returnStr = (returnStr + ",");
};
returnStr = (returnStr + ("[name:" + properties[i].name));
returnStr = (returnStr + (",valueStart:" + properties[i].valueStart));
returnStr = (returnStr + (",valueComplete:" + properties[i].valueComplete));
returnStr = (returnStr + "]");
isFirst = false;
};
returnStr = (returnStr + (", timeStart:" + String(timeStart)));
returnStr = (returnStr + (", timeComplete:" + String(timeComplete)));
returnStr = (returnStr + (", useFrames:" + String(useFrames)));
returnStr = (returnStr + (", transition:" + String(transition)));
returnStr = (returnStr + (", transitionParams:" + String(transitionParams)));
if (skipUpdates){
returnStr = (returnStr + (", skipUpdates:" + String(skipUpdates)));
};
if (updatesSkipped){
returnStr = (returnStr + (", updatesSkipped:" + String(updatesSkipped)));
};
if (Boolean(onStart)){
returnStr = (returnStr + (", onStart:" + String(onStart)));
};
if (Boolean(onUpdate)){
returnStr = (returnStr + (", onUpdate:" + String(onUpdate)));
};
if (Boolean(onComplete)){
returnStr = (returnStr + (", onComplete:" + String(onComplete)));
};
if (Boolean(onOverwrite)){
returnStr = (returnStr + (", onOverwrite:" + String(onOverwrite)));
};
if (Boolean(onError)){
returnStr = (returnStr + (", onError:" + String(onError)));
};
if (onStartParams){
returnStr = (returnStr + (", onStartParams:" + String(onStartParams)));
};
if (onUpdateParams){
returnStr = (returnStr + (", onUpdateParams:" + String(onUpdateParams)));
};
if (onCompleteParams){
returnStr = (returnStr + (", onCompleteParams:" + String(onCompleteParams)));
};
if (onOverwriteParams){
returnStr = (returnStr + (", onOverwriteParams:" + String(onOverwriteParams)));
};
if (onStartScope){
returnStr = (returnStr + (", onStartScope:" + String(onStartScope)));
};
if (onUpdateScope){
returnStr = (returnStr + (", onUpdateScope:" + String(onUpdateScope)));
};
if (onCompleteScope){
returnStr = (returnStr + (", onCompleteScope:" + String(onCompleteScope)));
};
if (onOverwriteScope){
returnStr = (returnStr + (", onOverwriteScope:" + String(onOverwriteScope)));
};
if (onErrorScope){
returnStr = (returnStr + (", onErrorScope:" + String(onErrorScope)));
};
if (rounded){
returnStr = (returnStr + (", rounded:" + String(rounded)));
};
if (isPaused){
returnStr = (returnStr + (", isPaused:" + String(isPaused)));
};
if (timePaused){
returnStr = (returnStr + (", timePaused:" + String(timePaused)));
};
if (isCaller){
returnStr = (returnStr + (", isCaller:" + String(isCaller)));
};
if (count){
returnStr = (returnStr + (", count:" + String(count)));
};
if (timesCalled){
returnStr = (returnStr + (", timesCalled:" + String(timesCalled)));
};
if (waitFrames){
returnStr = (returnStr + (", waitFrames:" + String(waitFrames)));
};
if (hasStarted){
returnStr = (returnStr + (", hasStarted:" + String(hasStarted)));
};
returnStr = (returnStr + "]\n");
return (returnStr);
}
public static function makePropertiesChain(p_obj:Object):Object{
var chainedObject:Object;
var chain:Object;
var currChainObj:Object;
var len:Number;
var i:Number;
var k:Number;
var baseObject:Object = p_obj.base;
if (baseObject){
chainedObject = {};
if ((baseObject is Array)){
chain = [];
k = 0;
while (k < baseObject.length) {
chain.push(baseObject[k]);
k++;
};
} else {
chain = [baseObject];
};
chain.push(p_obj);
len = chain.length;
i = 0;
while (i < len) {
if (chain[i]["base"]){
currChainObj = AuxFunctions.concatObjects(makePropertiesChain(chain[i]["base"]), chain[i]);
} else {
currChainObj = chain[i];
};
chainedObject = AuxFunctions.concatObjects(chainedObject, currChainObj);
i++;
};
if (chainedObject["base"]){
delete chainedObject["base"];
};
return (chainedObject);
//unresolved jump
};
return (p_obj);
}
}
}//package caurina.transitions
Section 19
//chickenBody_2 (chicken_fla.chickenBody_2)
package chicken_fla {
import flash.display.*;
public dynamic class chickenBody_2 extends MovieClip {
public function chickenBody_2(){
addFrameScript(15, frame16, 49, frame50, 66, frame67, 82, frame83, 98, frame99, 114, frame115, 130, frame131);
}
function frame16(){
gotoAndPlay("down");
}
function frame83(){
gotoAndPlay("left_down");
}
function frame115(){
gotoAndPlay("up");
}
function frame99(){
gotoAndPlay("left_up");
}
function frame131(){
stop();
}
function frame50(){
gotoAndPlay("eat");
}
function frame67(){
gotoAndPlay("left");
}
}
}//package chicken_fla
Section 20
//hungryProgress_3 (chicken_fla.hungryProgress_3)
package chicken_fla {
import flash.display.*;
public dynamic class hungryProgress_3 extends MovieClip {
public var _mask:MovieClip;
}
}//package chicken_fla
Section 21
//MathUtils (com.cheezeworld.math.MathUtils)
package com.cheezeworld.math {
public class MathUtils {
public static const DEG_TO_RAD:Number = (Math.PI / 180);
public static const RAD_TO_DEG:Number = (180 / Math.PI);
public function MathUtils(){
super();
}
public static function simplifyRadian(radian:Number):Number{
var newRadian:Number;
if ((((radian > Math.PI)) || ((radian < -(Math.PI))))){
newRadian = (radian - (int((radian / (Math.PI * 2))) * (Math.PI * 2)));
if (radian > 0){
if (newRadian < Math.PI){
return (newRadian);
};
newRadian = -(((Math.PI * 2) - newRadian));
return (newRadian);
} else {
if (newRadian > -(Math.PI)){
return (newRadian);
};
newRadian = ((Math.PI * 2) + newRadian);
return (newRadian);
};
};
return (radian);
}
public static function getSmallestRotationDirection(objectRotationRadians:Number, radianBetween:Number, errorRadians:Number=0):int{
objectRotationRadians = simplifyRadian(objectRotationRadians);
radianBetween = simplifyRadian(radianBetween);
radianBetween = (radianBetween + -(objectRotationRadians));
radianBetween = simplifyRadian(radianBetween);
objectRotationRadians = 0;
if (radianBetween < -(errorRadians)){
return (-1);
};
if (radianBetween > errorRadians){
return (1);
};
return (0);
}
public static function rand(min:int, max:int):int{
return ((min + Math.floor((Math.random() * ((max - min) + 1)))));
}
public static function calcAngle(p1:Vector2D, p2:Vector2D):Number{
var angle:Number = (Math.atan(((p2.y - p1.y) / (p2.x - p1.x))) * RAD_TO_DEG);
if ((((p2.y < p1.y)) && ((p2.x > p1.x)))){
return (angle);
};
if ((((((p2.y < p1.y)) && ((p2.x < p1.x)))) || ((((p2.y > p1.y)) && ((p2.x < p1.x)))))){
return ((angle + 180));
};
return ((angle + 360));
}
}
}//package com.cheezeworld.math
Section 22
//Vector2D (com.cheezeworld.math.Vector2D)
package com.cheezeworld.math {
import flash.geom.*;
public class Vector2D {
private var v2:Vector2D;
private var _length:Number;
private var _oldX:Number;
private var v1:Vector2D;
private var _oldY:Number;
public var x:Number;
public var y:Number;
private static const DEG_TO_RAD:Number = (Math.PI / 180);
private static const RAD_TO_DEG:Number = (180 / Math.PI);
public function Vector2D(X:Number=0, Y:Number=0){
super();
x = X;
y = Y;
_length = 0;
}
public function divide(scalar:Number):void{
if (scalar == 0){
trace("Vector::dividedBy() - Illegal Divide by Zero!");
} else {
x = (x / scalar);
y = (y / scalar);
};
}
public function isZero():Boolean{
return ((((x == 0)) || ((y == 0))));
}
public function Set(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function sign(vector:Vector2D):int{
if ((y * vector.x) > (x * vector.y)){
return (-1);
};
return (1);
}
public function dotOf(vector:Vector2D):Number{
return (((x * vector.x) + (y * vector.y)));
}
public function dividedBy(scalar:Number):Vector2D{
if (scalar == 0){
trace("Vector::dividedBy() - Illegal Divide by Zero!");
return (new Vector2D());
};
return (new Vector2D((x / scalar), (y / scalar)));
}
public function normalize():void{
if (length != 0){
x = (x / _length);
y = (y / _length);
};
}
public function isParallelTo(vector:Vector2D):Boolean{
v1 = copy();
v1.normalize();
v2 = vector.copy();
v2.normalize();
return ((((((v1.x == v2.x)) && ((v1.y == v2.y)))) || ((((v1.x == -(v2.x))) && ((v1.y == -(v2.y)))))));
}
public function distanceTo(vector:Vector2D):Number{
var xSep:Number = (vector.x - x);
var ySep:Number = (vector.y - y);
return (Math.sqrt(((ySep * ySep) + (xSep * xSep))));
}
public function subtract(vector:Vector2D):void{
x = (x - vector.x);
y = (y - vector.y);
}
public function toPoint():Point{
return (new Point(x, y));
}
public function toRotation():Number{
var ang:Number = (Math.atan((y / x)) * RAD_TO_DEG);
if ((((y < 0)) && ((x > 0)))){
return (ang);
};
if ((((((y < 0)) && ((x < 0)))) || ((((y > 0)) && ((x < 0)))))){
return ((ang + 180));
};
return ((ang + 360));
}
public function isInsideRegion(topLeft:Vector2D, botRight:Vector2D):Boolean{
return (!((((((((x < topLeft.x)) || ((x > (topLeft.x + botRight.x))))) || ((y < topLeft.y)))) || ((y > (topLeft.y + botRight.y))))));
}
public function addedTo(vector:Vector2D):Vector2D{
return (new Vector2D((x + vector.x), (y + vector.y)));
}
public function perpDotOf(vector:Vector2D):Number{
return (getPerp().dotOf(vector));
}
public function projectionOn(vector:Vector2D):Vector2D{
v1 = vector.copy();
v1.multiply((this.dotOf(vector) / vector.dotOf(vector)));
return (v1);
}
public function distanceSqTo(vector:Vector2D):Number{
var xSep:Number = (vector.y - y);
var ySep:Number = (vector.x - x);
return (((ySep * ySep) + (xSep * xSep)));
}
public function get lengthSq():Number{
return (((x * x) + (y * y)));
}
public function get length():Number{
if (((!((_oldX == x))) || (!((_oldY == y))))){
_oldX = x;
_oldY = y;
_length = Math.sqrt(((x * x) + (y * y)));
};
return (_length);
}
public function getPerp():Vector2D{
return (new Vector2D(-(y), x));
}
public function subtractedBy(vector:Vector2D):Vector2D{
return (new Vector2D((x - vector.x), (y - vector.y)));
}
public function multiply(scalar:Number):void{
x = (x * scalar);
y = (y * scalar);
}
public function toString():String{
return ((((("(" + x) + ",") + y) + ")"));
}
public function truncate(max:Number):void{
if (lengthSq > (max * max)){
normalize();
multiply(max);
};
}
public function angleTo(vector:Vector2D):Number{
return (Math.acos((dotOf(vector) / (length * vector.length))));
}
public function multipliedBy(scalar:Number):Vector2D{
return (new Vector2D((x * scalar), (y * scalar)));
}
public function getNormalized():Vector2D{
if (length == 0){
return (new Vector2D());
};
return (new Vector2D((x / _length), (y / _length)));
}
public function copy():Vector2D{
var newVector:Vector2D = new Vector2D(x, y);
newVector._length = _length;
newVector._oldX = x;
newVector._oldY = y;
return (newVector);
}
public function wrapAround(topLeft:Vector2D, botRight:Vector2D):void{
if (x > botRight.x){
x = (topLeft.x + (x - botRight.x));
} else {
if (x < topLeft.x){
x = (botRight.x + x);
};
};
if (y < topLeft.y){
y = (botRight.y + y);
} else {
if (y > botRight.y){
y = (topLeft.y + (y - botRight.y));
};
};
}
public function getReverse():Vector2D{
return (new Vector2D(-(x), -(y)));
}
public function addTo(vector:Vector2D):void{
x = (x + vector.x);
y = (y + vector.y);
}
public function reflect(norm:Vector2D):void{
v1 = norm.getReverse();
v1.multiply((2 * dotOf(norm)));
addTo(v1);
}
public function crossOf(vector:Vector2D):Number{
return (((x * vector.y) - (y * vector.x)));
}
public static function rotToHeading(rotInDegrees:Number):Vector2D{
var rotInRad:Number = (rotInDegrees * DEG_TO_RAD);
var xPart:Number = Math.cos(rotInRad);
var yPart:Number = Math.sin(rotInRad);
return (new Vector2D(xPart, yPart));
}
public static function is2ndInFOVof1st(pos1st:Vector2D, facing1st:Vector2D, fov:Number, pos2nd:Vector2D):Boolean{
var toTarget:Vector2D = pos2nd.copy();
toTarget.subtract(pos1st);
toTarget.normalize();
return ((facing1st.dotOf(toTarget) >= Math.cos((fov / 2))));
}
public static function pointToVector(point:Point):Vector2D{
return (new Vector2D(point.x, point.y));
}
}
}//package com.cheezeworld.math
Section 23
//SoundManager (com.melesta.sound.SoundManager)
package com.melesta.sound {
import flash.media.*;
public class SoundManager {
private static var channel:SoundChannel;
public static var _mute:Boolean = false;
private static var map:Object = {};
public function SoundManager(){
super();
throw (new Error(""));
}
public static function play(assetName:String, loops:int=0, transform:SoundTransform=null):SoundChannel{
var cls:Class = (map[assetName] as Class);
var instance:Sound = (new (cls) as Sound);
if (_mute){
transform = new SoundTransform();
transform.volume = 0;
};
return ((instance) ? instance.play(0, loops, transform) : null);
}
public static function resume():void{
_mute = false;
}
public static function mute():void{
_mute = true;
}
public static function registerSoundAsset(assetName:String, cls:Class):void{
if ((((assetName == null)) || ((assetName.split(" ").join("").length == 0)))){
return;
};
if (!map.hasOwnProperty(assetName)){
map[assetName] = cls;
};
}
public static function unregisterSoundAsset(assetName:String):void{
delete map[assetName];
}
}
}//package com.melesta.sound
Section 24
//Direction (com.melesta.utils.math.Direction)
package com.melesta.utils.math {
import flash.geom.*;
public class Direction {
public static const DEG_TO_RAD:Number = (Math.PI / 180);
public static const RAD_TO_DEG:Number = (180 / Math.PI);
private static var directionList:Array = new Array("left", "left_down", "left_up", "up", "right", "right_up", "right_down");
public function Direction(){
super();
}
public static function getDirection(p1:Point, p2:Point):Object{
var object:Object = new Object();
object.direction = "down";
var direction:String = "down";
object.right = false;
var angle:Number = (Math.atan(((p2.y - p1.y) / (p2.x - p1.x))) * RAD_TO_DEG);
if (p2.x > p1.x){
object.right = true;
angle = -(angle);
};
if (angle > -60){
direction = "down_left";
};
if (angle > -30){
direction = "left";
};
if (angle > 30){
direction = "left_up";
};
if (angle > 60){
direction = "up";
};
if (angle == 90){
direction = "down";
};
if (angle == -90){
direction = "up";
};
object.direction = direction;
return (object);
}
}
}//package com.melesta.utils.math
Section 25
//TimeDecoder (com.melesta.utils.time.TimeDecoder)
package com.melesta.utils.time {
public class TimeDecoder {
public function TimeDecoder(){
super();
}
public static function decodeTime(time:Number):String{
var minutes:Number = Math.floor((time / 60));
var seconds:Number = Math.floor((time - (minutes * 60)));
var minutess:String = ((minutes < 10)) ? ("0" + String(minutes)) : String(minutes);
var secondss:String = ((seconds < 10)) ? ("0" + String(seconds)) : String(seconds);
return (((minutess + ":") + secondss));
}
}
}//package com.melesta.utils.time
Section 26
//body_2 (depotItem_fla.body_2)
package depotItem_fla {
import flash.display.*;
public dynamic class body_2 extends MovieClip {
public function body_2(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package depotItem_fla
Section 27
//Field (game.assets.Field)
package game.assets {
public class Field extends FieldTemplate {
public function Field(){
super();
}
}
}//package game.assets
Section 28
//FieldTemplate (game.assets.FieldTemplate)
package game.assets {
import flash.display.*;
public dynamic class FieldTemplate extends MovieClip {
}
}//package game.assets
Section 29
//Grass (game.assets.Grass)
package game.assets {
import flash.events.*;
import flash.display.*;
import flash.filters.*;
import flash.utils.*;
import game.*;
import com.melesta.sound.*;
public class Grass extends GrassTemplate {
private var gameController:GameController;
private var _deathTimer:Timer;
private var _capacity:Number;// = 160
public var index:Number;// = 0
private var _stageInstance:DisplayObjectContainer;
public var distance:Number;// = 0
private var _destroyed:Boolean;// = false
private var _life:Number;// = 16
public static var grassList:Array = new Array();
public static var count:Number = 0;
public function Grass(posx:Number, posy:Number, stageInstance:DisplayObjectContainer=null){
super();
this.mouseChildren = false;
this.mouseEnabled = false;
gameController = GameController.instance;
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
SoundManager.play("action_watering");
_stageInstance = stageInstance;
this.x = posx;
this.y = posy;
this.body.gotoAndPlay(1);
if ((Math.random() * 100) > 40){
body.addEventListener(Event.ENTER_FRAME, grow, false, 0, true);
};
_deathTimer = new Timer(60000, 10);
_stageInstance.addChild(this);
_deathTimer.addEventListener(TimerEvent.TIMER, death, false, 0, true);
_deathTimer.start();
index = Grass.count;
Grass.grassList.push(this);
Grass.count++;
}
public function destroy(event:Event=null):void{
if (!_destroyed){
gameController.removeEventListener(GameController.LEVEL_COMPLETED, remove);
_destroyed = true;
Grass.grassList.splice(index, 1);
Grass.remove();
_deathTimer.stop();
_deathTimer.removeEventListener(TimerEvent.TIMER, death);
_stageInstance.removeChild(this);
};
}
private function grow(event:Event=null):void{
event.stopPropagation();
if (event.target.currentFrame == 15){
body.removeEventListener(Event.ENTER_FRAME, grow, false);
this.body.stop();
};
}
public function getGrass():Number{
if ((_capacity - 10) >= 0){
_capacity = (_capacity - 10);
this.body.gotoAndStop((Math.ceil((_capacity / 10)) + 1));
return (_capacity);
};
return (_capacity);
}
public function hasGrass():Number{
return (_capacity);
}
private function death(event:TimerEvent=null):void{
event.stopPropagation();
_capacity = (_capacity - 10);
if (!_capacity){
destroy();
return;
};
this.body.gotoAndStop(((_capacity / 10) + 1));
}
public static function refreshIndexes():void{
var i:int;
while (i < Grass.grassList.length) {
Grass.grassList[i].index = i;
i++;
};
}
public static function remove():void{
Grass.count--;
Grass.refreshIndexes();
}
public static function getNear(petX:Number, petY:Number):Grass{
var distanceList:Array = new Array();
var i:int;
while (i < Grass.grassList.length) {
distanceList.push(Math.sqrt((((petX - Grass.grassList[i].x) * (petX - Grass.grassList[i].x)) + ((petY - Grass.grassList[i].y) * (petY - Grass.grassList[i].y)))));
Grass.grassList[i].distance = distanceList[i];
i++;
};
Grass.grassList.sortOn("distance", Array.NUMERIC);
Grass.refreshIndexes();
return (Grass.grassList[0]);
}
}
}//package game.assets
Section 30
//GrassTemplate (game.assets.GrassTemplate)
package game.assets {
import flash.display.*;
public dynamic class GrassTemplate extends MovieClip {
public var body:MovieClip;
}
}//package game.assets
Section 31
//PlayGround (game.assets.PlayGround)
package game.assets {
public class PlayGround extends BackgroundTemplate {
public static var instance:PlayGround;
public function PlayGround(){
super();
instance = this;
}
}
}//package game.assets
Section 32
//GameController (game.GameController)
package game {
import flash.events.*;
import flash.display.*;
import utils.*;
import com.melesta.sound.*;
public class GameController extends MovieClip {
public static var RESUME_GAME:String = "resume_game";
public static var START_GAME:String = "start_game";
public static var LEVEL_COMPLETED:String = "level_completed";
public static var CHANGE_MONEY:String = "shange_money";
public static var instance:GameController;
public static var DESTROY_GAME:String = "destroy_game";
public static var PAUSE_GAME:String = "pause_game";
public function GameController(){
super();
instance = this;
}
public function changeMoney():void{
dispatchEvent(new Event(GameController.CHANGE_MONEY));
}
public function start():void{
dispatchEvent(new Event(GameController.START_GAME));
}
public function pause():void{
dispatchEvent(new Event(PAUSE_GAME));
}
public function levelCompleted():void{
dispatchEvent(new Event(GameController.LEVEL_COMPLETED));
}
public function destroy():void{
dispatchEvent(new Event(DESTROY_GAME));
if (!SoundsList.muteMusic){
if (SoundsList.gameMusicSound){
SoundsList.gameMusicChannel.stop();
};
if (SoundsList.menuMusicSound){
SoundsList.menuMusicChannel.stop();
};
};
SoundsList.mute = true;
SoundManager.mute();
}
public function resume():void{
dispatchEvent(new Event(RESUME_GAME));
}
}
}//package game
Section 33
//LevelBuilder (game.LevelBuilder)
package game {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import houses.*;
import ui.*;
import market.road.*;
import pets.*;
import utils.*;
import com.melesta.sound.*;
public class LevelBuilder extends MovieClip {
public var houseContainer:HouseContainer;
private var _container:MovieClip;
public var tooltip:Tooltip;
public var goals:GoalsWindow;
private var _gameController:GameController;
private var _bearList:Array;
public var purposes:PurposesWindow;
public var bottomPanel:BottomPanel;
public var road:Road;
private var _bearTime:Number;// = 0
public var petsContainer:PetsContainer;
private var _bearTimer:Timer;
public var waterTooltip:WaterTooltip;
public var petShop:PetShop;
public var results:ResultsWindow;
private var houseTypes:Array;
public static var maxLevel:Number = 1;
public static var instance:LevelBuilder;
public static var currentLevel:Number = 1;
public static var currentLevelXML:XML;
public function LevelBuilder(){
houseTypes = new Array("DRIED_EGGS", "DOUGH", "CURDS", "CHEESE", "PIZZA_FR");
super();
instance = this;
}
public function pause(event:Event=null):void{
_bearTimer.stop();
}
public function get container():MovieClip{
return (_container);
}
private function carCame(event:Event=null):void{
SoundManager.play("car_came");
updateView();
}
public function updateView(event:Event=null):void{
PetShop.instance.update();
BottomPanel.instance.update();
}
public function addBear(event:TimerEvent=null):void{
var currentBear:Array;
_bearTime++;
if (_bearList.length > 0){
currentBear = _bearList[0].split(",");
if (_bearTime >= Number(currentBear[1])){
PetsContainer.instance.addPet(currentBear[0], 0);
_bearList.shift();
};
} else {
_bearTime = 0;
_bearTimer.stop();
};
}
public function addHouses():void{
addPets();
_bearTimer.start();
BottomPanel.instance.startTime();
var housesLength:Number = currentLevelXML.child("Houses").child("h").length();
var houseType:Number = 0;
var houseUpgrade:Number = 0;
var posIndex:Number = 0;
var housesList:Array = new Array();
var i:int;
while (i < housesLength) {
houseType = Number(currentLevelXML.child("Houses").h[i].@Type);
houseUpgrade = Number(currentLevelXML.child("Houses").h[i].@Upgrade);
posIndex = Number(currentLevelXML.child("Houses").h[i].@PosIndex);
HouseContainer.instance.addHouse(houseTypes[houseType], posIndex, houseUpgrade, (i * 0.2));
i++;
};
HouseContainer.instance.addHouse("WELL", 2, 1, (housesLength * 0.2));
if (Config.currentLevel > 3){
HouseContainer.instance.addHouse("PLANE", 2, 1, ((housesLength * 0.2) + 0.2));
};
HouseContainer.instance.addHouse("DEPOT", 2, 1, ((housesLength * 0.2) + 0.8));
if (Config.currentLevel > 1){
HouseContainer.instance.addHouse("CAR", 2, 1, ((housesLength * 0.2) + 0.6));
};
}
public function addMoney(event:MouseEvent=null):void{
Road.instance.addMoney(10000);
}
private function gold(event:MouseEvent=null):void{
ResultsWindow.instance.show();
}
public function createLevel(level:Number=1):void{
var goalType:Number;
var bearType:String;
var bearTime:String;
var purpose:String;
currentLevel = level;
Config.currentLevel = level;
currentLevelXML = Config.getLevel(level);
var goalsLength:Number = currentLevelXML.child("Goals").child("goal").length();
LevelStatistics.accessProduct = new Array();
var p:int;
while (p < currentLevelXML.child("AccessProduct").child("c").length()) {
LevelStatistics.accessProduct.push(Number(currentLevelXML.child("AccessProduct").c[p].@Product));
p++;
};
LevelStatistics.goals = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
LevelStatistics.purposes = new Array();
var i:int;
while (i < goalsLength) {
goalType = Number(currentLevelXML.child("Goals").goal[i].@Type);
purpose = ((ProductTypes.numberToType(goalType) + ",") + Number(currentLevelXML.child("Goals").goal[i].@Val));
LevelStatistics.purposes.push(purpose);
i++;
};
_bearTime = 0;
_bearList = new Array();
var bearLength:Number = currentLevelXML.child("BearTimes").child("t").length();
var j:int;
while (j < bearLength) {
bearType = ((currentLevelXML.child("BearTimes").t[j].@Type == "0")) ? "PANDA" : "BROWN";
bearTime = currentLevelXML.child("BearTimes").t[j].@Time;
_bearList.push(((bearType + ",") + bearTime));
j++;
};
goals.show();
LevelStatistics.updateStatistics();
Road.instance.setMoney(Number(currentLevelXML.@StartMoney));
bottomPanel.init();
updateView();
}
public function set container(value:MovieClip):void{
_container = value;
}
public function resume(event:Event=null):void{
_bearTimer.start();
}
public function addPets():void{
Chicken.count = 0;
Chicken.chickenList = new Array();
Goat.count = 0;
Goat.goatList = new Array();
var petsLength:Number = currentLevelXML.child("StartPets").child("Pet").length();
var petType:Number = 0;
var petsList:Array = new Array();
var i:int;
while (i < petsLength) {
petType = Number(currentLevelXML.child("StartPets").Pet[i].@Type);
if (petType){
PetsContainer.instance.addPet("GOAT", (0.2 * i));
} else {
PetsContainer.instance.addPet("CHICKEN", (0.2 * i));
};
i++;
};
PetShop.instance.update();
}
public function prepareAllAssets():void{
_gameController = GameController.instance;
_gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
_gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
petShop = new PetShop();
container.addChild(petShop);
road = new Road();
if (Config.use_cheats){
road.addEventListener(MouseEvent.CLICK, addMoney, false, 0, true);
road.addEventListener(MouseEvent.MOUSE_WHEEL, gold, false, 0, true);
};
container.addChild(road);
road.x = 350;
road.addEventListener(Road.CAR_CAME, carCame, false, 0, true);
road.addEventListener(Road.UPDATE_MONEY, updateView, false, 0, true);
bottomPanel = new BottomPanel();
BottomPanel.effectContainer = container;
bottomPanel.createEffect();
container.addChild(bottomPanel);
houseContainer = new HouseContainer(container);
petsContainer = new PetsContainer(container.parent);
purposes = new PurposesWindow(container.parent);
results = new ResultsWindow(container.parent);
goals = new GoalsWindow(container.parent);
tooltip = new Tooltip();
container.parent.addChild(tooltip);
waterTooltip = new WaterTooltip();
container.parent.addChild(waterTooltip);
_bearTimer = new Timer(1000);
_bearTimer.addEventListener(TimerEvent.TIMER, addBear, false, 0, true);
}
}
}//package game
Section 34
//body_2 (goat_fla.body_2)
package goat_fla {
import flash.display.*;
public dynamic class body_2 extends MovieClip {
public function body_2(){
addFrameScript(31, frame32, 55, frame56, 79, frame80, 103, frame104, 127, frame128, 151, frame152, 171, frame172);
}
function frame152(){
gotoAndPlay("down");
}
function frame80(){
gotoAndPlay("down_left");
}
function frame172(){
gotoAndPlay("eat");
}
function frame104(){
gotoAndPlay("up");
}
function frame128(){
gotoAndPlay("left_up");
}
function frame32(){
stop();
}
function frame56(){
gotoAndPlay("left");
}
}
}//package goat_fla
Section 35
//hungryProgress_3 (goat_fla.hungryProgress_3)
package goat_fla {
import flash.display.*;
public dynamic class hungryProgress_3 extends MovieClip {
public var _mask:MovieClip;
}
}//package goat_fla
Section 36
//CheeseHouse (houses.CheeseHouse)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import flash.media.*;
import production.*;
import caurina.transitions.properties.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class CheeseHouse extends CheeseHouseTemplate {
private var posX:Number;
private var posY:Number;
private var left:Number;// = 1
private var madedProduction:Number;// = 0
private var _progress:WorkLine;
private var _countAnimation:Number;// = 15
private var _upgrade:Number;// = 1
private var gameController:GameController;
private var _upgradeButton:UpgradeButton;
private var _working:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
public static var output:String = "CHEESE";
public static var upgradeCost:Array = new Array(1500, 2000, 2500, 3000, 3500);
public static var input:Array = new Array("CURDS", "CHEESE_FERMENT");
public static var firstShow:Boolean = true;
public function CheeseHouse(stageInstance:DisplayObjectContainer, upgrd:Number, position:Array, delay:Number){
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
stageInstance.addChild(this);
_progress = new WorkLine();
addChild(_progress);
_stageInstance = stageInstance;
var point:Point = new Point(position[0], position[1]);
show(point, delay);
activeArea.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgrade = upgrd;
_upgradeButton = new UpgradeButton();
_upgradeButton.x = -20;
_upgradeButton.y = -50;
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgrd);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
body.mouseChildren = (body.mouseEnabled = false);
FilterShortcuts.init();
}
public function destroy(event:Event=null):void{
Tweener.removeTweens(body);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
private function remove():void{
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function removeShadow(event:MouseEvent=null):void{
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.hide();
}
private function makeProduction():void{
var ypos:Number;
_working = false;
while (madedProduction > 0) {
ypos = 0;
if (y > 350){
ypos = ((this.y - 40) - (Math.random() * 20));
} else {
ypos = ((this.y - 20) - (Math.random() * 20));
};
PetsContainer.instance.addProduct(output, ((this.x - (left * 80)) - ((left * Math.random()) * 20)), ypos);
madedProduction--;
};
_progress.setProgress(0);
}
private function landing():void{
left = ((this.x)<300) ? -1 : 1;
_progress.x = (-(left) * 50);
_progress.y = -20;
_upgradeButton.x = (left * 40);
_upgradeButton.y = -30;
SoundManager.play("house_landing", 1, new SoundTransform(1, left));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.cheese_factory);
};
}
public function animate():void{
_countAnimation--;
if (_countAnimation > 0){
_progress.setProgress(((37 * (15 - _countAnimation)) / 15));
Tweener.removeTweens(this.body);
Tweener.addTween(this.body, {scaleX:0.8, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1.1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleY:0.8, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1.1, time:0.2, delay:0.4, transition:"linear", onComplete:animate});
} else {
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0, transition:"linear", onComplete:makeProduction});
};
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (_upgrade <= (ShopWindow.availableUpgrades[8] - 1)){
_upgradeButton.caption.text = upgradeCost[(_upgrade - 1)];
};
if (_upgrade > (ShopWindow.availableUpgrades[8] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
public function onClick(event:MouseEvent=null):void{
var i:int;
var movingProduction:MovingProduction;
var movingProduction2:MovingProduction;
if (!_working){
_countAnimation = 15;
madedProduction = Depot.instance.getProduction(input, _upgrade);
if (madedProduction > 0){
i = 0;
while (i < madedProduction) {
movingProduction = new MovingProduction("CHEESE_FERMENT", this.x, (this.y - 15), (i / 7));
movingProduction2 = new MovingProduction("CURDS", this.x, (this.y - 15), (i / 7), true);
i++;
};
_working = true;
animate();
SoundManager.play("house_click", 1);
};
};
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
Tweener.resumeTweens(this.body);
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(upgradeCost[(_upgrade - 1)])));
_upgrade++;
upgrade(_upgrade);
SoundManager.play("action_upgrade", 1);
}
public function dropShadow(event:MouseEvent=null):void{
Tooltip.instance.show(x, y, output, _upgrade, Config.currentLanguage.cheese_factory);
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this.body);
Tweener.pauseTweens(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:(position.y + 15), time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (upgradeCost[(_upgrade - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package houses
Section 37
//CheeseHouseTemplate (houses.CheeseHouseTemplate)
package houses {
import flash.display.*;
public dynamic class CheeseHouseTemplate extends MovieClip {
public var body:MovieClip;
public var activeArea:MovieClip;
}
}//package houses
Section 38
//CurdsHouse (houses.CurdsHouse)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import flash.media.*;
import production.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class CurdsHouse extends CurdsHouseTemplate {
private var posX:Number;
private var posY:Number;
private var left:Number;// = 1
private var madedProduction:Number;// = 0
private var _progress:WorkLine;
private var _countAnimation:Number;// = 15
private var _upgrade:Number;// = 1
private var gameController:GameController;
private var _upgradeButton:UpgradeButton;
private var _working:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
public static var output:String = "CURDS";
public static var upgradeCost:Array = new Array(1000, 1500, 2000, 2500, 3000);
public static var input:Array = new Array("MILK_GOAT");
public static var firstShow:Boolean = true;
public function CurdsHouse(stageInstance:DisplayObjectContainer, upgrd:Number, position:Array, delay:Number=0){
super();
stageInstance.addChild(this);
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
_progress = new WorkLine();
addChild(_progress);
_stageInstance = stageInstance;
var point:Point = new Point(position[0], position[1]);
show(point, delay);
activeArea.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgrade = upgrd;
_upgradeButton = new UpgradeButton();
_upgradeButton.x = -20;
_upgradeButton.y = -50;
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgrd);
body.mouseChildren = (body.mouseEnabled = false);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
}
public function destroy(event:Event=null):void{
Tweener.removeTweens(body);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
private function remove():void{
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function removeShadow(event:MouseEvent=null):void{
Tooltip.instance.hide();
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
private function makeProduction():void{
var ypos:Number;
_working = false;
while (madedProduction > 0) {
ypos = 0;
if (y > 400){
ypos = ((this.y - 40) - (Math.random() * 20));
} else {
ypos = ((this.y - 20) - (Math.random() * 20));
};
PetsContainer.instance.addProduct(output, ((this.x - (left * 80)) - ((left * Math.random()) * 20)), ypos);
madedProduction--;
};
_progress.setProgress(0);
}
private function landing():void{
left = ((this.x)<300) ? -1 : 1;
_progress.x = (-(left) * 50);
_progress.y = -20;
_upgradeButton.x = (left * 40);
_upgradeButton.y = -30;
SoundManager.play("house_landing", 1, new SoundTransform(1, left));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.curd_factory);
};
}
public function animate():void{
_countAnimation--;
_progress.setProgress(((37 * (15 - _countAnimation)) / 15));
if (_countAnimation > 0){
Tweener.removeTweens(this.body);
Tweener.addTween(this.body, {scaleX:0.8, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1.1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleY:0.8, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1.1, time:0.2, delay:0.4, transition:"linear", onComplete:animate});
} else {
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0, transition:"linear", onComplete:makeProduction});
};
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (_upgrade <= (ShopWindow.availableUpgrades[7] - 1)){
_upgradeButton.caption.text = CurdsHouse.upgradeCost[(_upgrade - 1)];
};
if (_upgrade > (ShopWindow.availableUpgrades[7] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
public function onClick(event:MouseEvent=null):void{
var i:int;
var movingProduction:MovingProduction;
if (!_working){
_countAnimation = 15;
madedProduction = Depot.instance.getProduction(input, _upgrade);
if (madedProduction > 0){
i = 0;
while (i < madedProduction) {
movingProduction = new MovingProduction("MILK_GOAT", this.x, (this.y - 20), (i / 7));
i++;
};
_working = true;
animate();
SoundManager.play("house_click", 1);
};
};
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
Tweener.resumeTweens(this.body);
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(CurdsHouse.upgradeCost[(_upgrade - 1)])));
_upgrade++;
upgrade(_upgrade);
SoundManager.play("action_upgrade", 1);
}
public function dropShadow(event:MouseEvent=null):void{
Tooltip.instance.show(x, y, output, _upgrade, Config.currentLanguage.curd_factory);
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this.body);
Tweener.pauseTweens(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = 0;
Tweener.addTween(this, {y:(position.y + 15), time:0.2, delay:delay, transition:"easeInCirc", onComplete:landing});
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (CurdsHouse.upgradeCost[(_upgrade - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package houses
Section 39
//CurdsHouseTemplate (houses.CurdsHouseTemplate)
package houses {
import flash.display.*;
public dynamic class CurdsHouseTemplate extends MovieClip {
public var body:MovieClip;
public var activeArea:MovieClip;
}
}//package houses
Section 40
//Depot (houses.Depot)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import utils.*;
import market.*;
import vehicles.*;
import production.*;
import caurina.transitions.properties.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Depot extends DepotTemplate {
private var _container:MovieClip;
private var _pruductionList:Array;
private var _productionPrice:Array;
private var _capacityList:Array;
private var startTooltip:Boolean;// = false
private var _importProduction:ExportWindow;
private var _posX:Number;// = 0
private var _posY:Number;// = 0
private var _upgradePosition:Array;
private var _productionDepotSize:Array;
private var _currentItem:Number;// = 0
private var _upgradeButton:UpgradeButton;
private var _stageInstance:DisplayObjectContainer;
private var gameController:GameController;
private var _productionCarSize:Array;
public static var instance:Depot;
public static var upgradeLevel:Number = 1;
public static var upgradeCost:Array = new Array(150, 500, 1000, 12000);
public static var _production:Array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
public function Depot(stageInstance:DisplayObjectContainer, level:Number, delay:Number){
var depotProduct:DepotProduct;
_upgradePosition = new Array(0, -8);
_capacityList = new Array(60, 100, 200, 800);
_productionDepotSize = new Array(1.5, 1, 1, 2.5, 8, 15, 4, 10, 6, 2, 8, 25, 35);
_productionPrice = new Array(10, 40, 5, 80, 300, 2500, 20, 200, 500, 10, 15000, 60, 120, 50, 500);
_productionCarSize = new Array(5, 10, 1, 5, 2, 5, 5, 3, 10, 15, 1, 1, 1, 5, 2);
super();
instance = this;
gameController = GameController.instance;
_stageInstance = stageInstance;
_container = new MovieClip();
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
_stageInstance.addChild(_container);
_container.addChild(this);
upgradeLevel = level;
SoundManager.registerSoundAsset("house_landing", house_landing);
_pruductionList = new Array();
var point:Point = new Point(277, 430);
show(point, delay);
this.mouseEnabled = false;
body.addEventListener(MouseEvent.MOUSE_OVER, dropShadow, false, 0, true);
body.addEventListener(MouseEvent.MOUSE_OUT, removeShadow, false, 0, true);
body.addEventListener(MouseEvent.CLICK, showMarket, false, 0, true);
var i:int;
var j:int;
var productionContainer:Sprite = new Sprite();
addChild(productionContainer);
i = 0;
while (j <= 7) {
i = 0;
while (i < 5) {
depotProduct = new DepotProduct();
productionContainer.addChild(depotProduct);
depotProduct.y = (-35 - (i * 9.4));
depotProduct.x = (-39 + (j * 9.4));
_pruductionList.push(depotProduct);
i++;
};
j++;
};
productionContainer.mouseEnabled = false;
productionContainer.mouseChildren = false;
this.cacheAsBitmap = true;
_importProduction = new ExportWindow(this, stageInstance);
_upgradeButton = new UpgradeButton();
_upgradeButton.x = _upgradePosition[0];
_upgradeButton.y = _upgradePosition[1];
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgradeLevel);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
FilterShortcuts.init();
}
public function destroy(event:Event=null):void{
body.removeEventListener(MouseEvent.CLICK, onClick);
body.removeEventListener(MouseEvent.ROLL_OUT, hideTooltip);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_production = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
_container.removeChild(this);
_stageInstance.removeChild(_container);
}
public function animate():void{
}
private function remove():void{
body.removeEventListener(MouseEvent.CLICK, onClick);
body.removeEventListener(MouseEvent.ROLL_OUT, hideTooltip);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function addProduct(type:String):Boolean{
var product:Number = ProductTypes.typeToNumber(type);
if ((((freeSpace() - _productionDepotSize[product]))>=0) ? true : false){
putProduct(product);
return (true);
};
FArrow.instance.show((this.x + 50), (this.y - 100));
return (false);
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (Depot.upgradeCost[(upgradeLevel - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
private function freeSpace():Number{
var space:Number = 0;
var i:Number = 0;
while (i < _production.length) {
space = (space + (_production[i] * _productionDepotSize[i]));
i++;
};
return ((_capacityList[(upgradeLevel - 1)] - space));
}
public function removeShadow(event:MouseEvent=null):void{
event.stopPropagation();
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.hide();
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:position.y, time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
private function hideTooltip(event:MouseEvent=null):void{
Tooltip.instance.hide();
}
private function putProduct(type:Number):void{
var _local2 = _production;
var _local3 = type;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
_local2 = LevelStatistics.goals;
_local3 = type;
_local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
LevelStatistics.updateStatistics();
updateDepotView();
}
public function onClick(event:MouseEvent=null):void{
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
updateDepotView();
if (upgradeLevel <= (ShopWindow.availableUpgrades[2] - 1)){
_upgradeButton.caption.text = Depot.upgradeCost[(upgradeLevel - 1)];
};
if (upgradeLevel > (ShopWindow.availableUpgrades[2] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(Depot.upgradeCost[(upgradeLevel - 1)])));
upgradeLevel++;
upgrade(upgradeLevel);
SoundManager.play("action_upgrade", 1);
}
public function showMarket(event:MouseEvent=null):void{
if (Car.instance){
if (Car.instance.visible){
SoundManager.play("house_click", 1);
_importProduction.show();
};
};
}
public function productionSize(type:Number):Number{
var capacity:Number = _productionDepotSize[type];
return (((40 / _capacityList[(upgradeLevel - 1)]) * capacity));
}
public function dropShadow(event:MouseEvent=null):void{
event.stopPropagation();
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.show(x, (y - 50), "DEPOT", upgradeLevel, "Склад");
}
public function updateDepotView():void{
var j:int;
var k:int;
while (k < 40) {
_pruductionList[k].hide();
k++;
};
var item:Number = 0;
var i:int;
while (i < _production.length) {
j = 0;
while (j < Math.ceil((_production[i] * productionSize(i)))) {
_pruductionList[item].show(i);
if (item < 39){
item++;
} else {
break;
};
j++;
};
i++;
};
}
private function landing():void{
SoundManager.play("house_landing", 1);
updateMoney();
}
public function getProduction(type:Array, count:Number):Number{
var product:Number;
var products:Array = new Array();
var i:int;
while (i < type.length) {
product = _production[ProductTypes.typeToNumber(type[i])];
products.push(product);
i++;
};
products.sort(Array.NUMERIC);
var delta:Number = count;
if (count > products[0]){
delta = products[0];
};
var j:int;
while (j < type.length) {
_production[ProductTypes.typeToNumber(type[j])] = (_production[ProductTypes.typeToNumber(type[j])] - delta);
j++;
};
updateDepotView();
return (delta);
}
}
}//package houses
Section 41
//DepotTemplate (houses.DepotTemplate)
package houses {
import flash.display.*;
public dynamic class DepotTemplate extends MovieClip {
public var body:MovieClip;
public function DepotTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package houses
Section 42
//DoughtHouse (houses.DoughtHouse)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import flash.media.*;
import production.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class DoughtHouse extends DoughtHouseTemplate {
private var posX:Number;
private var posY:Number;
private var left:Number;// = 1
private var madedProduction:Number;// = 0
private var _progress:WorkLine;
private var _countAnimation:Number;// = 15
private var _upgrade:Number;// = 1
private var gameController:GameController;
private var _upgradeButton:UpgradeButton;
private var _working:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
public static var output:String = "DOUGH";
public static var upgradeCost:Array = new Array(200, 300, 400, 500, 600);
public static var input:Array = new Array("DRIED_EGGS", "FLOUR");
public static var firstShow:Boolean = true;
public function DoughtHouse(stageInstance:DisplayObjectContainer, upgrd:Number, position:Array, delay:Number){
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
stageInstance.addChild(this);
_progress = new WorkLine();
addChild(_progress);
_stageInstance = stageInstance;
var point:Point = new Point(position[0], position[1]);
show(point, delay);
activeArea.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgrade = upgrd;
_upgradeButton = new UpgradeButton();
_upgradeButton.x = -20;
_upgradeButton.y = -50;
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgrd);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
body.mouseChildren = (body.mouseEnabled = false);
}
public function destroy(event:Event=null):void{
Tweener.removeTweens(body);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
private function remove():void{
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function removeShadow(event:MouseEvent=null):void{
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.hide();
}
private function makeProduction():void{
var ypos:Number;
_working = false;
_progress.setProgress(0);
while (madedProduction > 0) {
ypos = 0;
if (y > 400){
ypos = ((this.y - 40) - (Math.random() * 20));
} else {
ypos = ((this.y - 20) - (Math.random() * 20));
};
PetsContainer.instance.addProduct(output, ((this.x - (left * 80)) - ((left * Math.random()) * 20)), ypos);
madedProduction--;
};
}
private function landing():void{
left = ((this.x)<300) ? -1 : 1;
_progress.x = (-(left) * 50);
_progress.y = -20;
_upgradeButton.x = (left * 40);
_upgradeButton.y = -30;
SoundManager.play("house_landing", 1, new SoundTransform(1, left));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.dough_factory);
};
}
public function animate():void{
_countAnimation--;
_progress.setProgress(((37 * (15 - _countAnimation)) / 15));
if (_countAnimation > 0){
Tweener.removeTweens(this.body);
Tweener.addTween(this.body, {scaleX:0.8, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1.1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleY:0.8, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1.1, time:0.2, delay:0.4, transition:"linear", onComplete:animate});
} else {
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0, transition:"linear", onComplete:makeProduction});
};
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (_upgrade <= (ShopWindow.availableUpgrades[6] - 1)){
_upgradeButton.caption.text = upgradeCost[(_upgrade - 1)];
};
if (_upgrade > (ShopWindow.availableUpgrades[6] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
public function onClick(event:MouseEvent=null):void{
var i:int;
var movingProduction:MovingProduction;
var movingProduction2:MovingProduction;
if (!_working){
_countAnimation = 15;
madedProduction = Depot.instance.getProduction(input, _upgrade);
if (madedProduction > 0){
i = 0;
while (i < madedProduction) {
movingProduction = new MovingProduction("DRIED_EGGS", this.x, (this.y - 15), (i / 7));
movingProduction2 = new MovingProduction("FLOUR", this.x, (this.y - 15), (i / 7), true);
i++;
};
_working = true;
animate();
SoundManager.play("house_click", 1);
};
};
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
Tweener.resumeTweens(this.body);
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(upgradeCost[(_upgrade - 1)])));
_upgrade++;
upgrade(_upgrade);
SoundManager.play("action_upgrade", 1);
}
public function dropShadow(event:MouseEvent=null):void{
Tooltip.instance.show(x, y, output, _upgrade, Config.currentLanguage.dough_factory);
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this.body);
Tweener.pauseTweens(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:(position.y + 15), time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (upgradeCost[(_upgrade - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package houses
Section 43
//DoughtHouseTemplate (houses.DoughtHouseTemplate)
package houses {
import flash.display.*;
public dynamic class DoughtHouseTemplate extends MovieClip {
public var body:MovieClip;
public var activeArea:MovieClip;
}
}//package houses
Section 44
//DriedEggsHouse (houses.DriedEggsHouse)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import flash.media.*;
import production.*;
import caurina.transitions.properties.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class DriedEggsHouse extends PowderedHouseTemplate {
private var posX:Number;
private var posY:Number;
private var left:Number;// = 1
private var madedProduction:Number;// = 0
private var _progress:WorkLine;
private var _countAnimation:Number;// = 15
private var _upgrade:Number;// = 1
private var gameController:GameController;
private var _upgradeButton:UpgradeButton;
private var _working:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
public static var output:String = "DRIED_EGGS";
public static var upgradeCost:Array = new Array(150, 200, 250, 300, 350);
public static var input:Array = new Array("EGG");
public static var firstShow:Boolean = true;
public function DriedEggsHouse(stageInstance:DisplayObjectContainer, upgrd:Number, position:Array, delay:Number){
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
stageInstance.addChild(this);
_progress = new WorkLine();
addChild(_progress);
_stageInstance = stageInstance;
var point:Point = new Point(position[0], position[1]);
show(point, delay);
activeArea.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgrade = upgrd;
_upgradeButton = new UpgradeButton();
_upgradeButton.x = -20;
_upgradeButton.y = -50;
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgrd);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
FilterShortcuts.init();
body.mouseChildren = (body.mouseEnabled = false);
}
public function destroy(event:Event=null):void{
Tweener.removeTweens(body);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
private function remove():void{
_stageInstance.removeChild(this);
activeArea.removeEventListener(MouseEvent.CLICK, onClick);
activeArea.removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
activeArea.removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function removeShadow(event:MouseEvent=null):void{
Tooltip.instance.hide();
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
private function makeProduction():void{
var ypos:Number;
_working = false;
while (madedProduction > 0) {
ypos = 0;
if (y > 400){
ypos = ((this.y - 40) - (Math.random() * 20));
} else {
ypos = ((this.y - 20) - (Math.random() * 20));
};
PetsContainer.instance.addProduct(output, ((this.x - (left * 80)) - ((left * Math.random()) * 20)), ypos);
madedProduction--;
_progress.setProgress(0);
};
}
private function landing():void{
left = ((this.x)<300) ? -1 : 1;
_progress.x = (-(left) * 50);
_progress.y = -20;
_upgradeButton.x = (left * 40);
_upgradeButton.y = -30;
SoundManager.play("house_landing", 1, new SoundTransform(1, left));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.powdered);
};
}
public function animate():void{
_countAnimation--;
_progress.setProgress(((37 * (15 - _countAnimation)) / 15));
if (_countAnimation > 0){
Tweener.removeTweens(this.body);
Tweener.addTween(this.body, {scaleX:0.8, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1.1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleY:0.8, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1.1, time:0.2, delay:0.4, transition:"linear", onComplete:animate});
} else {
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0, transition:"linear", onComplete:makeProduction});
};
Road.instance.addMoney(0);
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (_upgrade <= (ShopWindow.availableUpgrades[5] - 1)){
_upgradeButton.caption.text = DriedEggsHouse.upgradeCost[(_upgrade - 1)];
};
if (_upgrade > (ShopWindow.availableUpgrades[5] - 1)){
_upgradeButton.destroy();
};
}
public function onClick(event:MouseEvent=null):void{
var i:int;
var movingProduction:MovingProduction;
if (!_working){
_countAnimation = 15;
madedProduction = Depot.instance.getProduction(input, _upgrade);
if (madedProduction > 0){
i = 0;
while (i < madedProduction) {
movingProduction = new MovingProduction("EGG", this.x, (this.y - 15), (i / 7));
i++;
};
_working = true;
animate();
SoundManager.play("house_click", 1);
};
};
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
Tweener.resumeTweens(this.body);
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(DriedEggsHouse.upgradeCost[(_upgrade - 1)])));
_upgrade++;
upgrade(_upgrade);
SoundManager.play("action_upgrade", 1);
}
public function dropShadow(event:MouseEvent=null):void{
Tooltip.instance.show(x, y, output, _upgrade, Config.currentLanguage.powdered);
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this.body);
Tweener.pauseTweens(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:(position.y + 15), time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (DriedEggsHouse.upgradeCost[(_upgrade - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package houses
Section 45
//HouseContainer (houses.HouseContainer)
package houses {
import flash.display.*;
import flash.geom.*;
import vehicles.*;
public class HouseContainer {
private var _stageInstance:DisplayObjectContainer;
public static var instance:HouseContainer;
public static var positionList:Array = new Array("100,160", "70,246", "80,340", "455,158", "487,240", "487,340", "490,360");
public function HouseContainer(stageInstance:DisplayObjectContainer=null):void{
super();
instance = this;
_stageInstance = stageInstance;
}
public function addHouse(type:String, posIndex:Number, upgrade:Number=0, delay:Number=0):void{
var housePlate:HousePlate;
var pos:Array;
var _local7:DoughtHouse;
var _local8:*;
var _local9:DriedEggsHouse;
var _local10:CheeseHouse;
var _local11:Pizza_FRHouse;
var _local12:Depot;
var _local13:Well;
var _local14:Car;
var _local15:Plane;
if (((((((((!(upgrade)) && (!((type == "DEPOT"))))) && (!((type == "CAR"))))) && (!((type == "WELL"))))) && (!((type == "PLANE"))))){
housePlate = new HousePlate(_stageInstance, type, posIndex, delay);
} else {
pos = positionList[posIndex].split(",");
switch (type){
case "DOUGH":
_local7 = new DoughtHouse(_stageInstance, upgrade, pos, delay);
break;
case "CURDS":
_local8 = new CurdsHouse(_stageInstance, upgrade, pos, delay);
break;
case "DRIED_EGGS":
_local9 = new DriedEggsHouse(_stageInstance, upgrade, pos, delay);
break;
case "CHEESE":
_local10 = new CheeseHouse(_stageInstance, upgrade, pos, delay);
break;
case "PIZZA_FR":
_local11 = new Pizza_FRHouse(_stageInstance, upgrade, pos, delay);
break;
case "DEPOT":
_local12 = new Depot(_stageInstance, upgrade, delay);
break;
case "WELL":
_local13 = new Well(_stageInstance, upgrade, delay);
break;
case "CAR":
_local14 = new Car(_stageInstance, upgrade, delay);
break;
case "PLANE":
_local15 = new Plane(_stageInstance, upgrade, delay);
break;
};
};
}
}
}//package houses
Section 46
//HousePlate (houses.HousePlate)
package houses {
import flash.events.*;
import flash.display.*;
import flash.filters.*;
import ui.*;
import game.*;
import market.road.*;
import utils.*;
import flash.media.*;
import production.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class HousePlate extends HousePlateTemplate {
private var posX:Number;
private var posY:Number;
private var active:Boolean;// = false
private var left:Number;// = 1
private var _icon:ViewProduction;
private var _type:String;
private var _upgrade:Number;// = 0
private var positionIndex:Number;// = 0
private var gameController:GameController;
private var _stageInstance:DisplayObjectContainer;
public static var firstShow:Boolean = true;
public static var types:Array = new Array("DRIED_EGGS", "DOUGH", "CURDS", "CHEESE", "PIZZA_FR");
public static var cost:Array = new Array(150, 200, 1000, 1500, 20000);
public function HousePlate(stageInstance:DisplayObjectContainer, type:String, posIndex:Number, delay:Number){
super();
stageInstance.addChild(this);
gameController = GameController.instance;
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
_stageInstance = stageInstance;
positionIndex = posIndex;
_icon = new ViewProduction(type);
_type = type;
_icon.y = -53;
addChild(_icon);
_icon.scaleX = (_icon.scaleY = 0.6);
show(delay);
buyButton.price.text = cost[getHouseIndex(_type)];
buyButton.addEventListener(MouseEvent.ROLL_OVER, over, false, 0, true);
buyButton.addEventListener(MouseEvent.ROLL_OUT, out, false, 0, true);
buyButton.addEventListener(MouseEvent.CLICK, click, false, 0, true);
buyButton.addEventListener(MouseEvent.MOUSE_DOWN, press, false, 0, true);
buyButton.gotoAndStop("disable");
}
public function destroy(event:Event=null):void{
buyButton.removeEventListener(MouseEvent.ROLL_OVER, over, false);
buyButton.removeEventListener(MouseEvent.ROLL_OUT, out, false);
buyButton.removeEventListener(MouseEvent.CLICK, click, false);
buyButton.removeEventListener(MouseEvent.MOUSE_DOWN, press);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
private function press(event:MouseEvent):void{
if (active){
this.buyButton.gotoAndStop("press");
};
}
private function remove():void{
_stageInstance.removeChild(this);
buyButton.removeEventListener(MouseEvent.ROLL_OVER, over, false);
buyButton.removeEventListener(MouseEvent.ROLL_OUT, out, false);
buyButton.removeEventListener(MouseEvent.CLICK, click, false);
buyButton.removeEventListener(MouseEvent.MOUSE_DOWN, press);
}
private function out(event:MouseEvent):void{
if (active){
this.buyButton.gotoAndStop("active");
};
}
private function click(event:MouseEvent):void{
if (active){
SoundManager.play("action_upgrade", 1);
buyButton.removeEventListener(MouseEvent.CLICK, click, false);
HouseContainer.instance.addHouse(_type, positionIndex, 1, 0);
Road.instance.addMoney(-(Number(cost[getHouseIndex(_type)])));
Tweener.addTween(this, {y:-50, time:0.4, onComplete:destroy, delay:0.2});
};
}
private function over(event:MouseEvent):void{
if (active){
this.buyButton.gotoAndStop("over");
};
}
private function landing():void{
left = ((this.x)<300) ? -1 : 1;
SoundManager.play("house_board_landing", 1, new SoundTransform(1, left));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.house_plate);
};
}
public function updateMoney(event:Event=null):void{
if (Road.currentMoney >= Number(cost[getHouseIndex(_type)])){
this.active = true;
this.buyButton.gotoAndStop("active");
} else {
buyButton.gotoAndStop("disable");
this.active = false;
};
}
public function show(delay:Number):void{
var position:Array = HouseContainer.positionList[positionIndex].split(",");
this.x = position[0];
this.y = -50;
Tweener.addTween(this, {y:position[1], time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
updateMoney();
}
public static function getHouseIndex(house:String):Number{
switch (house){
case "DRIED_EGGS":
return (0);
case "DOUGH":
return (1);
case "CURDS":
return (2);
case "CHEESE":
return (3);
case "PIZZA_FR":
return (4);
};
return (0);
}
}
}//package houses
Section 47
//HousePlateTemplate (houses.HousePlateTemplate)
package houses {
import flash.display.*;
public dynamic class HousePlateTemplate extends MovieClip {
public var buyButton:MovieClip;
}
}//package houses
Section 48
//Pizza_FRHouse (houses.Pizza_FRHouse)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import flash.media.*;
import production.*;
import caurina.transitions.properties.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Pizza_FRHouse extends FrenchPizzaT {
private var posX:Number;
private var posY:Number;
private var left:Number;// = 1
private var madedProduction:Number;// = 0
private var _progress:WorkLine;
private var _countAnimation:Number;// = 15
private var _upgrade:Number;// = 1
private var gameController:GameController;
private var _upgradeButton:UpgradeButton;
private var _working:Boolean;// = false
private var _stageInstance:DisplayObjectContainer;
public static var output:String = "PIZZA_FR";
public static var upgradeCost:Array = new Array(25000, 30000, 35000, 40000);
public static var input:Array = new Array("EGG", "DOUGH", "CURDS", "GHERKIN", "BUTTER");
public static var firstShow:Boolean = true;
public function Pizza_FRHouse(stageInstance:DisplayObjectContainer, upgrd:Number, position:Array, delay:Number){
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
stageInstance.addChild(this);
_progress = new WorkLine();
addChild(_progress);
_stageInstance = stageInstance;
var point:Point = new Point(position[0], position[1]);
show(point, delay);
body.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
body.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
body.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgrade = upgrd;
_upgradeButton = new UpgradeButton();
_upgradeButton.x = -20;
_upgradeButton.y = -50;
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgrd);
FilterShortcuts.init();
}
public function destroy(event:Event=null):void{
Tweener.removeTweens(body);
body.removeEventListener(MouseEvent.CLICK, onClick);
body.removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
body.removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
private function remove():void{
body.removeEventListener(MouseEvent.CLICK, onClick);
body.removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
body.removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function removeShadow(event:MouseEvent=null):void{
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
PizzaTooltip.instance.hide();
}
private function makeProduction():void{
var ypos:Number;
_working = false;
while (madedProduction > 0) {
ypos = 0;
if (y > 350){
ypos = ((this.y - 40) - (Math.random() * 20));
} else {
ypos = ((this.y - 20) - (Math.random() * 20));
};
PetsContainer.instance.addProduct(output, ((this.x - (left * 80)) - ((left * Math.random()) * 20)), ypos);
madedProduction--;
};
_progress.setProgress(0);
}
private function landing():void{
left = ((this.x)<300) ? -1 : 1;
_progress.x = (-(left) * 50);
_progress.y = -20;
_upgradeButton.x = (left * 40);
_upgradeButton.y = -30;
SoundManager.play("house_landing", 1, new SoundTransform(1, left));
updateMoney();
if (firstShow){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.pizza_factory);
};
}
public function animate():void{
_countAnimation--;
if (_countAnimation > 0){
_progress.setProgress(((37 * (15 - _countAnimation)) / 15));
Tweener.removeTweens(this.body);
Tweener.addTween(this.body, {scaleX:0.8, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1.1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleY:0.8, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(this.body, {scaleX:1.1, time:0.2, delay:0.4, transition:"linear", onComplete:animate});
} else {
Tweener.addTween(this.body, {scaleX:1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(this.body, {scaleY:1, time:0.2, delay:0, transition:"linear", onComplete:makeProduction});
};
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (_upgrade <= (ShopWindow.availableUpgrades[9] - 1)){
_upgradeButton.caption.text = upgradeCost[(_upgrade - 1)];
};
if (_upgrade > (ShopWindow.availableUpgrades[9] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
public function onClick(event:MouseEvent=null):void{
var i:int;
var p:int;
var movingProduction0:MovingProduction;
if (!_working){
_countAnimation = 15;
madedProduction = Depot.instance.getProduction(input, _upgrade);
if (madedProduction > 0){
i = 0;
while (i < madedProduction) {
p = 0;
while (p < input.length) {
movingProduction0 = new MovingProduction(input[p], this.x, (this.y - 15), ((i + p) / 7));
p++;
};
i++;
};
_working = true;
animate();
SoundManager.play("house_click", 1);
};
};
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
Tweener.resumeTweens(this.body);
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(upgradeCost[(_upgrade - 1)])));
_upgrade++;
upgrade(_upgrade);
SoundManager.play("action_upgrade", 1);
}
public function dropShadow(event:MouseEvent=null):void{
PizzaTooltip.instance.show((this.x + 20), (this.y - 50), _upgrade, Config.currentLanguage.pizza_factory);
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this.body);
Tweener.pauseTweens(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:(position.y + 15), time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (upgradeCost[(_upgrade - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package houses
Section 49
//UpgradeButton (houses.UpgradeButton)
package houses {
import flash.events.*;
import flash.display.*;
public class UpgradeButton extends UpgradeButtonTemplate {
private var active:Boolean;// = true
private var _target:MovieClip;
public function UpgradeButton(){
super();
addEventListener(MouseEvent.MOUSE_OVER, over, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, click, false, 0, true);
addEventListener(MouseEvent.CLICK, upgrade, false, 0, true);
this.gotoAndStop("active");
}
public function set target(target:MovieClip):void{
_target = target;
}
public function disabled(value:Boolean):void{
if (value){
this.active = true;
this.gotoAndStop("active");
} else {
this.active = false;
this.gotoAndStop("disable");
};
}
public function click(event:MouseEvent):void{
if (active){
this.gotoAndStop("press");
};
}
public function out(event:MouseEvent):void{
if (active){
this.gotoAndStop("active");
};
}
public function get target():MovieClip{
return (_target);
}
public function over(event:MouseEvent):void{
if (active){
this.gotoAndStop("over");
};
}
public function destroy():void{
removeEventListener(MouseEvent.MOUSE_OVER, over, false);
removeEventListener(MouseEvent.MOUSE_OUT, out, false);
removeEventListener(MouseEvent.MOUSE_DOWN, click, false);
removeEventListener(MouseEvent.CLICK, upgrade, false);
_target.removeChild(this);
}
private function upgrade(event:MouseEvent=null):void{
if (this.active){
target.nextUpgrade();
};
}
}
}//package houses
Section 50
//UpgradeButtonTemplate (houses.UpgradeButtonTemplate)
package houses {
import flash.display.*;
import flash.text.*;
public dynamic class UpgradeButtonTemplate extends MovieClip {
public var caption:TextField;
public function UpgradeButtonTemplate(){
addFrameScript(0, frame1, 6, frame7);
}
function frame7(){
stop();
}
function frame1(){
stop();
}
}
}//package houses
Section 51
//Well (houses.Well)
package houses {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import flash.utils.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import utils.*;
import flash.media.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Well extends MovieClip {
private var startTooltip:Boolean;// = false
private var posX:Number;
private var posY:Number;
private var tooltipTimer:Timer;
private var container:MovieClip;
private var _watering:SoundChannel;
private var _countAnimation:Number;// = 0
private var well:WellTest;
private var _size:Number;// = 100
private var _deltaWater:Array;
private var _upgradePosition:Array;
private var _upgradeLevel:Number;// = 1
private var gameController:GameController;
private var _stageInstance:DisplayObjectContainer;
private var _upgradeButton:UpgradeButton;
private var _countSteps:Number;// = 0
public static var waterPrice:Array = new Array(19, 17, 10, 7);
public static var instance:Well;
public static var state:String = "full";
public static var upgradeCost:Array = new Array(300, 600, 1200, 5000);
public static var firstShow:Boolean = true;
public function Well(stageInstance:DisplayObjectContainer, level:Number, delay:Number){
_upgradePosition = new Array(-50, -30);
_deltaWater = new Array(20, 15, 10, 1);
super();
instance = this;
state = "full";
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
_upgradeLevel = level;
_watering = new SoundChannel();
_stageInstance = (stageInstance as Sprite);
stageInstance.addChild(this);
SoundManager.registerSoundAsset("house_landing", house_landing);
var point:Point = new Point(267, 135);
show(point, delay);
container = new MovieClip();
addChild(container);
well = new WellTest();
well.activeArea.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
container.addChild(well);
well.body.mouseChildren = (well.body.mouseEnabled = false);
_upgradeButton = new UpgradeButton();
_upgradeButton.x = _upgradePosition[0];
_upgradeButton.y = _upgradePosition[1];
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(_upgradeLevel);
}
private function remove():void{
well.activeArea.removeEventListener(MouseEvent.CLICK, onClick);
well.removeListeners();
}
private function landing():void{
SoundManager.play("house_landing", 1);
updateMoney();
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:position.y, time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
private function hideTooltip(event:MouseEvent=null):void{
Tooltip.instance.hide();
}
public function setWater():void{
well.waterline.progressMask.height = (50 - ((45 * (10 - _countAnimation)) / 10));
}
public function onClick(event:MouseEvent=null):void{
if ((((Road.levelMoney > Well.waterPrice[(_upgradeLevel - 1)])) && ((Well.state == "empty")))){
Road.instance.addMoney(-(Well.waterPrice[(_upgradeLevel - 1)]));
Well.state = "working";
_watering = SoundManager.play("action_well", 1);
_countAnimation = 0;
animate();
};
if ((((Road.levelMoney < Well.waterPrice[(_upgradeLevel - 1)])) && ((Well.state == "empty")))){
FArrow.instance.show((this.x + 150), (this.y - 100));
SoundManager.play("fool_action", 1);
};
}
public function upgrade(level:Number):void{
well.body.gotoAndStop(level);
if (_upgradeLevel <= (ShopWindow.availableUpgrades[1] - 1)){
_upgradeButton.caption.text = Well.upgradeCost[(_upgradeLevel - 1)];
};
if (_upgradeLevel > (ShopWindow.availableUpgrades[1] - 1)){
_upgradeButton.destroy();
};
well.money.caption.text = String(Well.waterPrice[(_upgradeLevel - 1)]);
Road.instance.addMoney(0);
}
public function resume(event:Event):void{
Tweener.resumeTweens(well.body);
if (Well.state == "working"){
_watering = SoundManager.play("action_well", 1);
};
}
public function animate():void{
_countAnimation++;
if (_countAnimation < 10){
setWater();
Tweener.removeTweens(well.body);
Tweener.addTween(well.body, {scaleX:0.8, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(well.body, {scaleY:1.1, time:0.2, delay:0, transition:"linear"});
Tweener.addTween(well.body, {scaleY:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(well.body, {scaleX:1, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(well.body, {scaleY:0.8, time:0.2, delay:0.2, transition:"linear"});
Tweener.addTween(well.body, {scaleX:1.1, time:0.2, delay:0.2, transition:"linear", onComplete:animate});
} else {
Tweener.addTween(well.body, {scaleY:1, time:0.2, transition:"linear"});
Tweener.addTween(well.body, {scaleX:1, time:0.2, transition:"linear"});
Well.state = "full";
_watering.stop();
};
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(Well.upgradeCost[(_upgradeLevel - 1)])));
_upgradeLevel++;
upgrade(_upgradeLevel);
SoundManager.play("action_upgrade", 1);
}
public function getWater():Boolean{
if (Well.state == "full"){
well.money.visible = false;
_countSteps++;
if (Math.ceil((100 / _deltaWater[(_upgradeLevel - 1)])) > _countSteps){
well.waterline.progressMask.height = ((40 * (100 - (_deltaWater[(_upgradeLevel - 1)] * _countSteps))) / 100);
return (true);
};
if (Math.ceil((100 / _deltaWater[(_upgradeLevel - 1)])) == _countSteps){
FArrow.instance.show((this.x + 10), (this.y - 60));
well.waterline.progressMask.height = 0;
Well.state = "empty";
well.money.visible = true;
if (firstShow){
firstShow = false;
Tooltip.instance.show(this.x, this.y, "WELL_EMPTY", 0, Config.currentLanguage.tooltips.well_empty);
};
_countSteps = 0;
return (true);
};
};
FArrow.instance.show((this.x + 10), (this.y - 60));
SoundManager.play("fool_action", 1);
return (false);
}
public function destroy(event:Event=null):void{
_watering.stop();
well.activeArea.removeEventListener(MouseEvent.CLICK, onClick);
well.activeArea.removeEventListener(MouseEvent.ROLL_OUT, hideTooltip);
well.removeListeners();
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
container.removeChild(well);
removeChild(container);
_stageInstance.removeChild(this);
}
public function pause(event:Event):void{
Tweener.pauseTweens(well.body);
_watering.stop();
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (Well.upgradeCost[(_upgradeLevel - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package houses
Section 52
//WellTemplate (houses.WellTemplate)
package houses {
import flash.display.*;
public dynamic class WellTemplate extends MovieClip {
public var waterline:MovieClip;
public var body:MovieClip;
public var activeArea:MovieClip;
public var money:MovieClip;
public function WellTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
}
}
}//package houses
Section 53
//WellTest (houses.WellTest)
package houses {
import flash.events.*;
import flash.filters.*;
import flash.utils.*;
import ui.*;
import caurina.transitions.properties.*;
import caurina.transitions.*;
public class WellTest extends WellTemplate {
private var startTooltip:Boolean;// = false
private var timer:Timer;
public function WellTest(){
super();
activeArea.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
money.visible = false;
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
body.mouseChildren = (body.mouseChildren = false);
body.enabled = false;
FilterShortcuts.init();
}
public function removeShadow(event:MouseEvent=null):void{
event.stopPropagation();
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.hide();
}
public function removeListeners():void{
activeArea.removeEventListener(MouseEvent.MOUSE_OVER, dropShadow);
activeArea.removeEventListener(MouseEvent.MOUSE_OUT, removeShadow);
}
public function dropShadow(event:MouseEvent=null):void{
event.stopPropagation();
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.show(270, 150, "WELL", 0, "WELL");
}
}
}//package houses
Section 54
//MapNode (map.MapNode)
package map {
import flash.events.*;
import flash.display.*;
import ui.*;
import shop.*;
import utils.*;
import com.melesta.sound.*;
public class MapNode extends MapNodeTemplate {
public var states:Array;
public var _state:String;// = "inaccessible"
public var level:Number;
private var _positions:Array;
private var _currentView:MovieClip;
public static var nodeList:Array = new Array();
public static var inaccessibleShow:Boolean = true;
public static var firstShow:Boolean = true;
public function MapNode(index:Number, stateIndex:Number){
_positions = new Array("284,390", "256, 362", "228, 334", "200,307", "163,334", "134,360", "103,384", "77,360", "51,334", "25,307", "55,283", "91,263", "130,237", "105,213", "80,188", "56,164", "85,143", "114,121", "143,100");
states = new Array("inaccessible", "none", "novel", "normal", "silver", "gold");
super();
this.x = _positions[index].split(",")[0];
this.y = _positions[index].split(",")[1];
this.level = (index + 1);
this.state = states[stateIndex];
MapNode.nodeList.push(this);
update();
addEventListener(MouseEvent.MOUSE_DOWN, press, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, over, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
addEventListener(MouseEvent.CLICK, gotoLevel, false, 0, true);
}
public function gotoLevel(event:MouseEvent=null):void{
if (state != "none"){
MapWindow.instance.hide(level);
} else {
ShopWindow.instance.show();
};
}
public function set state(value:String):void{
_state = value;
}
public function press(event:MouseEvent=null):void{
_currentView.gotoAndStop(3);
MapTooltip.instance.hide();
}
public function out(event:MouseEvent=null):void{
_currentView.gotoAndStop(1);
MapTooltip.instance.hide();
}
public function update():void{
var i:int = this.numChildren;
while (i--) {
this.getChildAt(i).visible = false;
};
if (state != "inaccessible"){
this.getChildByName(state).visible = true;
_currentView = (this.getChildByName(state) as MovieClip);
};
if ((((((((state == "novel")) && (firstShow))) && (inaccessibleShow))) && ((this.level == 2)))){
firstShow = false;
if (!Config.skiped){
MapTooltip.instance.showHelp(this.x, (this.y - 10), Config.currentLanguage.tooltips.level_icon);
};
} else {
if ((((((state == "none")) && (inaccessibleShow))) && (!(firstShow)))){
inaccessibleShow = false;
MapTooltip.instance.showHelp(this.x, (this.y - 10), Config.currentLanguage.tooltips.level_inaccessible);
};
};
}
public function get state():String{
return (_state);
}
public function over(event:MouseEvent=null):void{
_currentView.gotoAndStop(2);
MapTooltip.instance.show(this.x, (this.y - 15), level);
SoundManager.play("ui_button_hover");
}
public static function updateViews():void{
var i:int;
while (i < MapNode.nodeList.length) {
MapNode.nodeList[i].update();
i++;
};
}
}
}//package map
Section 55
//MapWindow (map.MapWindow)
package map {
import flash.events.*;
import ui.*;
import shop.*;
import flash.net.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class MapWindow extends MapTemplate {
public static var needIndex:Number = -1;
public static var instance:MapWindow;
public function MapWindow(){
super();
instance = this;
shopBtn.caption.text = Config.currentLanguage.shop;
menuBtn.caption.text = Config.currentLanguage.menu;
menuBtn.caption.mouseEnabled = (shopBtn.caption.mouseEnabled = false);
shopBtn.addEventListener(MouseEvent.CLICK, showShop, false, 0, true);
menuBtn.addEventListener(MouseEvent.CLICK, showMenu, false, 0, true);
menuBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
shopBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
var i:int;
while (i < 19) {
addChild(new MapNode(i, 0));
i++;
};
this.visible = false;
buyBtn.caption.mouseEnabled = false;
buyBtn.stop();
buyBtn.caption.text = Config.currentLanguage.download_full_version;
buyBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
buyBtn.visible = false;
_shadow.visible = false;
if (Config.downloadable){
_shadow.visible = true;
buyBtn.addEventListener(MouseEvent.CLICK, buy, false, 0, true);
buyBtn.caption.text = Config.currentLanguage.download_full_version;
buyBtn.visible = true;
};
}
private function btnOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
public function hide(level:Number=1):void{
var level = level;
MapTooltip.instance.hide();
Tweener.addTween(this, {alpha:0, time:0.5, transition:"linear", onComplete:function ():void{
this.visible = false;
LevelBuilder.instance.createLevel(level);
}});
}
public function startGame():void{
this.visible = true;
this.alpha = 1;
MapNode.nodeList[0].state = "novel";
MapNode.updateViews();
var skipDialog:SkipEducationDialog = new SkipEducationDialog();
addChild(skipDialog);
skipDialog.show();
StartScreen.instance.musicBtn.container = "map";
addChild(StartScreen.instance.musicBtn);
addChild(StartScreen.instance.soundBtn);
}
public function updateViews():void{
var xml:XML;
var accessLength:Number;
var accessList:Array;
var accessType:String;
var accessValue:String;
var i:int;
if (LevelBuilder.maxLevel != 20){
MapNode.nodeList[(LevelBuilder.maxLevel - 1)].state = "novel";
xml = Config.getLevel(LevelBuilder.maxLevel);
accessLength = xml.child("Accessibility").child("c").length();
accessList = new Array();
i = 0;
while (i < accessLength) {
accessType = xml.child("Accessibility").c[i].@CritID;
accessValue = xml.child("Accessibility").c[i].@Value;
accessList.push(((accessType + ",") + accessValue));
i++;
};
needIndex = -1;
if (!ShopWindow.isAvailable(accessList)){
MapNode.nodeList[(LevelBuilder.maxLevel - 1)].state = "none";
needIndex = (Number(accessList[0].split(",")[0]) + 5);
};
MapNode.updateViews();
} else {
if (!EndScreen.instance.showed){
EndScreen.instance.show();
};
};
}
public function startFirstLevel():void{
hide(1);
}
public function skipEducation():void{
Config.skiped = true;
LevelBuilder.maxLevel = 12;
MapNode.nodeList[11].state = "novel";
var i:int;
while (i < 11) {
MapNode.nodeList[i].state = "normal";
i++;
};
ShopWindow.availableUpgrades = new Array(1, 1, 1, 1, 1, 5, 5, 0, 0, 1);
ShopWindow.instance.updateUpgradesViews();
MapNode.updateViews();
hide(12);
}
private function showShop(event:MouseEvent=null):void{
MapTooltip.instance.hide();
ShopWindow.instance.show();
}
private function showMenu(event:MouseEvent=null):void{
MapTooltip.instance.hide();
StartScreen.instance.show();
}
public function show():void{
StartScreen.instance.musicBtn.container = "map";
addChild(StartScreen.instance.musicBtn);
addChild(StartScreen.instance.soundBtn);
updateViews();
MapNode.updateViews();
this.visible = true;
this.alpha = 1;
}
private function buy(event:MouseEvent=null):void{
var request:URLRequest = new URLRequest(Config.downloadLink);
navigateToURL(request, "_blank");
}
}
}//package map
Section 56
//Road (market.road.Road)
package market.road {
import flash.events.*;
import game.*;
import pets.*;
import market.*;
import vehicles.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Road extends RoadTemlate {
private var upgradeForces:Array;
private var _planeUpgrade:Number;// = 0
private var _carUpgrade:Number;// = 0
private var gameController:GameController;
public static var CAR_CAME:String = "car_came";
public static var currentMoney:Number = 0;
public static var UPDATE_MONEY:String = "update_money";
public static var instance:Road = null;
public static var PLANE_CAME:String = "plane_came";
public static var levelMoney:Number = 0;
public function Road(){
upgradeForces = new Array(20, 15, 10, 5);
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, levelCompleted, false, 0, true);
instance = this;
car.visible = false;
plane.visible = false;
setMoney(0);
if (Farm2.portal == "mail.ru"){
this.coins.gotoAndStop(4);
};
}
public function setMoney(value:Number=0):void{
levelMoney = value;
currentMoney = value;
money.text = String(levelMoney);
dispatchEvent(new Event(Road.UPDATE_MONEY));
GameController.instance.changeMoney();
}
public function levelCompleted(event:Event=null):void{
setMoney(0);
plane.x = 100;
car.visible = (plane.visible = false);
car.x = 100;
Tweener.removeTweens(this.car);
Tweener.removeTweens(this.plane);
}
public function goCar(moneyValue:Number, upgrade:Number):void{
Car.instance.visible = false;
_carUpgrade = upgrade;
car.body.gotoAndStop((upgrade + 1));
car.body.scaleX = -1;
car.money.text = String(moneyValue);
car.visible = true;
car.x = 100;
Tweener.addTween(car, {x:205, time:(upgradeForces[_carUpgrade] / 2), transition:"linear", onComplete:backCar});
}
public function resume(event:Event):void{
Tweener.resumeTweens(plane);
Tweener.resumeTweens(car);
coins.play();
if (Farm2.portal == "mail.ru"){
this.coins.gotoAndStop(4);
};
}
private function backCar():void{
car.body.scaleX = 1;
Tweener.addTween(car, {x:100, time:(upgradeForces[_carUpgrade] / 2), transition:"linear", onComplete:function ():void{
car.visible = false;
dispatchEvent(new Event(Road.CAR_CAME));
addMoney(Number(car.money.text));
Car.instance.visible = true;
Car.instance.checkMoney();
}});
}
public function pause(event:Event):void{
Tweener.pauseTweens(plane);
Tweener.pauseTweens(car);
coins.stop();
}
private function backPlane():void{
plane.body.scaleX = 1;
Tweener.addTween(plane, {x:100, time:(upgradeForces[_planeUpgrade] / 2), transition:"linear", onComplete:function ():void{
var product:*;
plane.visible = false;
dispatchEvent(new Event(Road.PLANE_CAME));
Plane.instance.visible = true;
SoundManager.play("airplane_flyin");
var i:* = 0;
while (i < ImportWindow.importProductionList.length) {
product = ImportWindow.importProductionList[i].split(",");
PetsContainer.instance.addFlyProduct(product[0], product[1]);
i++;
};
}});
}
public function goPlane(moneyValue:Number, upgrade:Number):void{
_planeUpgrade = upgrade;
dispatchEvent(new Event(Road.UPDATE_MONEY));
plane.body.gotoAndStop((upgrade + 1));
Plane.instance.visible = false;
plane.body.scaleX = -1;
plane.money.text = String(moneyValue);
plane.visible = true;
plane.x = 100;
addMoney(-(Number(plane.money.text)));
Tweener.addTween(plane, {x:205, time:(upgradeForces[_planeUpgrade] / 2), transition:"linear", onComplete:backPlane});
}
public function addMoney(value:Number=0):void{
levelMoney = (levelMoney + value);
money.text = String(levelMoney);
currentMoney = (currentMoney + value);
dispatchEvent(new Event(Road.UPDATE_MONEY));
GameController.instance.changeMoney();
}
}
}//package market.road
Section 57
//RoadTemlate (market.road.RoadTemlate)
package market.road {
import flash.display.*;
import flash.text.*;
public dynamic class RoadTemlate extends MovieClip {
public var coins:MovieClip;
public var plane:MovieClip;
public var money:TextField;
public var car:MovieClip;
}
}//package market.road
Section 58
//Box (market.Box)
package market {
import utils.*;
public class Box extends BoxTemplate {
public var type:Number;
public var count:Number;// = 0
private static var sizeList:Array = new Array(5, 10, 1, 5, 2, 5, 5, 3, 10, 15, 1, 1, 1, 5, 2);
public function Box(){
super();
body.stop();
this.visible = false;
this.type = -1;
this.count = 0;
}
public function addProduct(typeS:String, countN:Number):Number{
var delta:Number;
if (!count){
this.visible = true;
this.body.gotoAndStop(typeS);
type = ProductTypes.typeToNumber(typeS);
};
if ((((count > 0)) && (!((type == ProductTypes.typeToNumber(typeS)))))){
return (0);
};
if (count == sizeList[type]){
return (-1);
};
if ((countN + count) <= sizeList[type]){
count = (count + countN);
this.progress._mask.width = ((20 * count) / sizeList[type]);
return (countN);
};
if ((countN + count) > sizeList[type]){
delta = (sizeList[type] - count);
count = (count + delta);
this.progress._mask.width = ((20 * count) / sizeList[type]);
return (delta);
};
return (countN);
}
}
}//package market
Section 59
//BoxTemplate (market.BoxTemplate)
package market {
import flash.display.*;
public dynamic class BoxTemplate extends MovieClip {
public var progress:MovieClip;
public var body:MovieClip;
}
}//package market
Section 60
//ExportItem (market.ExportItem)
package market {
import flash.events.*;
import flash.display.*;
import ui.*;
import utils.*;
import com.melesta.sound.*;
public class ExportItem extends ExportItemTemplate {
public var type:String;
public static var CHOOSE_ALL:String = "choose_all";
public static var CHOOSE_ONE:String = "choose_one";
public function ExportItem(_type:String, _count:Number, _cost:String){
super();
this.product.gotoAndStop(_type);
this.count.text = String(_count);
this.cost.text = _cost;
type = _type;
one.caption.text = Config.currentLanguage.one;
all.caption.text = Config.currentLanguage.all;
one.gotoAndStop(1);
all.gotoAndStop(1);
one.addEventListener(MouseEvent.CLICK, chooseOne, false, 0, true);
all.addEventListener(MouseEvent.CLICK, chooseAll, false, 0, true);
all.addEventListener(MouseEvent.MOUSE_OVER, overA, false, 0, true);
one.addEventListener(MouseEvent.MOUSE_OVER, overO, false, 0, true);
all.addEventListener(MouseEvent.MOUSE_OUT, outA, false, 0, true);
one.addEventListener(MouseEvent.MOUSE_OUT, outO, false, 0, true);
}
private function outO(event:MouseEvent=null):void{
one.gotoAndStop(1);
}
private function outA(event:MouseEvent=null):void{
all.gotoAndStop(1);
}
private function chooseAll(event:MouseEvent=null):void{
event.stopPropagation();
all.gotoAndStop(3);
SoundManager.play("item_add", 1);
dispatchEvent(new Event(ExportItem.CHOOSE_ALL));
}
private function overO(event:MouseEvent=null):void{
event.stopPropagation();
one.gotoAndStop(2);
}
private function overA(event:MouseEvent=null):void{
event.stopPropagation();
all.gotoAndStop(2);
}
private function chooseOne(event:MouseEvent=null):void{
event.stopPropagation();
one.gotoAndStop(3);
dispatchEvent(new Event(ExportItem.CHOOSE_ONE));
SoundManager.play("item_add", 1);
}
}
}//package market
Section 61
//ExportItemTemplate (market.ExportItemTemplate)
package market {
import flash.display.*;
import flash.text.*;
public dynamic class ExportItemTemplate extends MovieClip {
public var count:TextField;
public var one:MovieClip;
public var all:MovieClip;
public var cost:TextField;
public var product:MovieClip;
}
}//package market
Section 62
//ExportWindow (market.ExportWindow)
package market {
import flash.events.*;
import flash.display.*;
import houses.*;
import ui.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import vehicles.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class ExportWindow extends ExportWindowTemplate {
private var _money:Number;// = 0
private var _productionCarSize:Array;
private var _boxList:Array;
private var _boxContainer:Sprite;
private var _typeList:Array;
private var _productionPrice:Array;
private var _carCapacity:Array;
private var _marketProductionList:Array;
private var _depot:Depot;
private var itemContainer:Sprite;
private var _boxPositions:Array;
public static var firstShow:Boolean = true;
public function ExportWindow(depot:Depot, stageInstance:DisplayObjectContainer){
_productionPrice = new Array(10, 40, 5, 80, 300, 2500, 20, 200, 500, 10, 15000, 60, 120, 50, 500);
_typeList = new Array("EGG", "DRIED_EGGS", "FLOUR", "DOUGH", "CURDS", "BUTTER", "GHERKIN", "MILK_GOAT", "CHEESE", "CHEESE_FERMENT", "PIZZA_FR", "PANDA", "BROWN", "CHICKEN", "GOAT", "MONEY");
_boxPositions = new Array("436,248|460,248", "415,248|436,248|460,248", "426,249|449,249|472,249|437,226|460,226", "433,249|456,249|479,249|433,227|456,227|479,227|456,205");
_boxContainer = new Sprite();
_carCapacity = new Array(2, 3, 5, 7);
_productionCarSize = new Array(5, 10, 1, 5, 2, 5, 5, 3, 10, 15, 1, 1, 1, 5, 2);
super();
_depot = depot;
itemContainer = new Sprite();
addChild(itemContainer);
stageInstance.parent.parent.addChild(this);
var simpleTooltip:SimpleTooltip = new SimpleTooltip();
stageInstance.parent.parent.addChild(simpleTooltip);
title.text = Config.currentLanguage.ship_products;
cancelBtn.caption.text = Config.currentLanguage.cancel;
okBtn.caption.text = Config.currentLanguage.ship;
this.visible = false;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
cancelBtn.addEventListener(MouseEvent.CLICK, cancel, false, 0, true);
addChild(_boxContainer);
}
public function updateItemsView():void{
var item:Number;
var productItem:ExportItem;
var chickenItem:ExportItem;
var goatItem:ExportItem;
var k:Number = 0;
while (itemContainer.numChildren > 0) {
itemContainer.removeChildAt((itemContainer.numChildren - 1));
};
var i:int;
while (i < 13) {
item = _marketProductionList[i];
if (item > 0){
productItem = new ExportItem(_typeList[i], item, _productionPrice[i]);
itemContainer.addChild(productItem);
productItem.y = (75 + (k * 22));
productItem.x = 30;
k++;
productItem.addEventListener(ExportItem.CHOOSE_ONE, chooseOne, false, 0, true);
productItem.addEventListener(ExportItem.CHOOSE_ALL, chooseAll, false, 0, true);
};
i++;
};
var pet:Number = 0;
if (_marketProductionList[13] > 0){
chickenItem = new ExportItem(_typeList[13], _marketProductionList[13], _productionPrice[13]);
itemContainer.addChild(chickenItem);
chickenItem.y = (75 + (pet * 22));
chickenItem.x = 400;
pet++;
chickenItem.addEventListener(ExportItem.CHOOSE_ONE, chooseOne, false, 0, true);
chickenItem.addEventListener(ExportItem.CHOOSE_ALL, chooseAll, false, 0, true);
};
if (_marketProductionList[14] > 0){
goatItem = new ExportItem(_typeList[14], _marketProductionList[14], _productionPrice[14]);
itemContainer.addChild(goatItem);
goatItem.y = (75 + (pet * 22));
goatItem.x = 400;
goatItem.addEventListener(ExportItem.CHOOSE_ONE, chooseOne, false, 0, true);
goatItem.addEventListener(ExportItem.CHOOSE_ALL, chooseAll, false, 0, true);
};
}
public function hide(event:MouseEvent=null):void{
var event = event;
var p:int;
while (p < 13) {
Depot._production[p] = _marketProductionList[p];
p = (p + 1);
};
Depot.instance.updateDepotView();
Tweener.addTween(this, {alpha:0, time:0.3, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
if (_money > 0){
Road.instance.goCar(_money, (Car.upgradeLevel - 1));
};
SoundManager.play("action_sell_buy");
Chicken.remove((Chicken.count - _marketProductionList[13]));
Goat.remove((Goat.count - _marketProductionList[14]));
GameController.instance.resume();
}
public function show():void{
var box:Box;
GameController.instance.pause();
okBtn.visible = false;
_money = 0;
money.text = "0";
this.visible = true;
car.gotoAndStop(Car.upgradeLevel);
this.alpha = 0;
_marketProductionList = new Array();
var p:int;
while (p < Depot._production.length) {
_marketProductionList[p] = Depot._production[p];
p++;
};
_marketProductionList[13] = Chicken.count;
_marketProductionList[14] = Goat.count;
Tweener.addTween(this, {alpha:1, time:0.5});
updateItemsView();
while (_boxContainer.numChildren > 0) {
_boxContainer.removeChildAt((_boxContainer.numChildren - 1));
};
_boxList = new Array();
var boxes:Array = getBoxPositions();
var b:int;
while (b < boxes.length) {
box = new Box();
box.x = boxes[b].split(",")[0];
box.y = boxes[b].split(",")[1];
_boxContainer.addChild(box);
_boxList.push(box);
b++;
};
if (((firstShow) && (!(Config.skiped)))){
SimpleTooltip.instance.show(Config.currentLanguage.tooltips.warehouse);
firstShow = false;
};
}
private function chooseOne(event:Event=null):void{
event.stopPropagation();
var deltaProduction:Number = addProductToCar(event.target.type, 1);
_marketProductionList[ProductTypes.typeToNumber(event.target.type)] = (_marketProductionList[ProductTypes.typeToNumber(event.target.type)] - deltaProduction);
updateItemsView();
addMoney((deltaProduction * Number(event.target.cost.text)));
}
private function chooseAll(event:Event=null):void{
event.stopPropagation();
var deltaProduction:Number = addProductToCar(event.target.type, Number(event.target.count.text));
_marketProductionList[ProductTypes.typeToNumber(event.target.type)] = (_marketProductionList[ProductTypes.typeToNumber(event.target.type)] - deltaProduction);
addMoney((deltaProduction * Number(event.target.cost.text)));
updateItemsView();
}
public function cancel(event:MouseEvent=null):void{
var event = event;
if (_money > 0){
SoundManager.play("item_cancel");
};
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.3, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
GameController.instance.resume();
}
private function addMoney(cost:Number):void{
_money = (_money + cost);
okBtn.visible = true;
money.text = String(_money);
}
public function upgrade(level:Number=0):void{
car.gotoAndStop(Car.upgradeLevel);
}
private function addProductToCar(type:String, count:Number):Number{
var delta:Number = 0;
var tempDelta:Number = 0;
var i:int;
while (i < _boxList.length) {
tempDelta = _boxList[i].addProduct(type, count);
if (tempDelta > 0){
delta = (delta + tempDelta);
count = (count - tempDelta);
if (count <= 0){
return (delta);
};
};
i++;
};
return (delta);
}
private function getBoxPositions():Array{
return (_boxPositions[(Car.upgradeLevel - 1)].split("|"));
}
}
}//package market
Section 63
//ExportWindowTemplate (market.ExportWindowTemplate)
package market {
import flash.display.*;
import flash.text.*;
public dynamic class ExportWindowTemplate extends MovieClip {
public var title:TextField;
public var cancelBtn:MovieClip;
public var car:MovieClip;
public var okBtn:MovieClip;
public var money:TextField;
}
}//package market
Section 64
//ImportItem (market.ImportItem)
package market {
import flash.events.*;
import flash.display.*;
import ui.*;
import market.road.*;
import com.melesta.sound.*;
public class ImportItem extends ImportItemTemplate {
public var type:String;
public static var CHOOSE_TEN:String = "choose_ten";
public static var CHOOSE_FIVE:String = "choose_five";
public static var CHOOSE_ONE:String = "choose_one";
public function ImportItem(_type:String, _count:Number, _cost:String){
super();
this.product.gotoAndStop(_type);
this.cost.text = _cost;
type = _type;
one.caption.text = "1";
five.caption.text = "5";
ten.caption.text = "10";
one.caption.mouseEnabled = (five.caption.mouseEnabled = (ten.caption.mouseEnabled = false));
one.gotoAndStop(1);
five.gotoAndStop(1);
ten.gotoAndStop(1);
one.addEventListener(MouseEvent.CLICK, chooseOne, false, 0, true);
five.addEventListener(MouseEvent.CLICK, chooseFive, false, 0, true);
ten.addEventListener(MouseEvent.CLICK, chooseTen, false, 0, true);
one.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
five.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
ten.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
ten.addEventListener(MouseEvent.MOUSE_OVER, overT, false, 0, true);
one.addEventListener(MouseEvent.MOUSE_OVER, overO, false, 0, true);
five.addEventListener(MouseEvent.MOUSE_OVER, overF, false, 0, true);
ten.addEventListener(MouseEvent.MOUSE_OUT, outT, false, 0, true);
one.addEventListener(MouseEvent.MOUSE_OUT, outO, false, 0, true);
five.addEventListener(MouseEvent.MOUSE_OUT, outF, false, 0, true);
if (Road.currentMoney < (10 * Number(cost.text))){
ten.visible = false;
};
if (Road.currentMoney < (5 * Number(cost.text))){
five.visible = false;
};
if (Road.currentMoney < Number(cost.text)){
one.visible = false;
};
}
private function overT(event:MouseEvent=null):void{
event.stopPropagation();
ten.gotoAndStop(2);
}
private function outO(event:MouseEvent=null):void{
one.gotoAndStop(1);
}
public function down(event:MouseEvent=null):void{
event.stopPropagation();
event.target.gotoAndStop(3);
}
private function outT(event:MouseEvent=null):void{
ten.gotoAndStop(1);
}
private function chooseFive(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("item_add", 1);
dispatchEvent(new Event(ImportItem.CHOOSE_FIVE));
}
private function chooseTen(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("item_add", 1);
dispatchEvent(new Event(ImportItem.CHOOSE_TEN));
}
public function updateView(deltaMoney:Number=0):void{
if ((Road.currentMoney - deltaMoney) < (10 * Number(cost.text))){
ten.visible = false;
};
if ((Road.currentMoney - deltaMoney) < (5 * Number(cost.text))){
five.visible = false;
};
if ((Road.currentMoney - deltaMoney) < Number(cost.text)){
one.visible = false;
};
}
private function chooseOne(event:MouseEvent=null):void{
event.stopPropagation();
dispatchEvent(new Event(ImportItem.CHOOSE_ONE));
SoundManager.play("item_add", 1);
}
private function overF(event:MouseEvent=null):void{
event.stopPropagation();
five.gotoAndStop(2);
}
private function outF(event:MouseEvent=null):void{
five.gotoAndStop(1);
}
private function overO(event:MouseEvent=null):void{
event.stopPropagation();
one.gotoAndStop(2);
}
}
}//package market
Section 65
//ImportItemTemplate (market.ImportItemTemplate)
package market {
import flash.display.*;
import flash.text.*;
public dynamic class ImportItemTemplate extends MovieClip {
public var ten:MovieClip;
public var one:MovieClip;
public var five:MovieClip;
public var cost:TextField;
public var product:MovieClip;
}
}//package market
Section 66
//ImportWindow (market.ImportWindow)
package market {
import flash.events.*;
import flash.display.*;
import ui.*;
import game.*;
import market.road.*;
import pets.*;
import utils.*;
import vehicles.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class ImportWindow extends ImportWindowTemplate {
private var _money:Number;// = 0
private var _productionPlaneSize:Array;
private var _productionPrice:Array;
private var _boxContainer:Sprite;
private var _typeList:Array;
private var _boxList:Array;
private var _productItemList:Array;
private var _carCapacity:Array;
private var itemContainer:Sprite;
private var _boxPositions:Array;
public static var importProductionList:Array;
public static var firstShow:Boolean = true;
public function ImportWindow(stageInstance:DisplayObjectContainer){
_productionPrice = new Array(20, 80, 10, 160, 600, 5000, 40, 400, 1000, 20, 30000, 120, 240, 100, 1000);
_typeList = new Array("EGG", "DRIED_EGGS", "FLOUR", "DOUGH", "CURDS", "BUTTER", "GHERKIN", "MILK_GOAT", "CHEESE", "CHEESE_FERMENT", "PIZZA_FR", "PANDA", "BROWN", "CHICKEN", "GOAT", "MONEY");
_boxPositions = new Array("153,296|177,296", "141,296|165,296|189,296", "117,296|141,296|165,296|189,296|213,296", "93,296|117,296|141,296|165,296|189,296|213,296|237,296");
_boxContainer = new Sprite();
_carCapacity = new Array(2, 3, 5, 7);
_productionPlaneSize = new Array(5, 10, 15, 3, 5, 5, 5, 1, 1, 5, 2);
super();
itemContainer = new Sprite();
addChild(itemContainer);
stageInstance.parent.parent.addChild(this);
cancelBtn.caption.text = Config.currentLanguage.cancel;
okBtn.caption.text = Config.currentLanguage.order;
title.text = Config.currentLanguage.order_products;
this.visible = false;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
cancelBtn.addEventListener(MouseEvent.CLICK, cancel, false, 0, true);
addChild(_boxContainer);
}
public function updateItemsView():void{
var productItem:ImportItem;
var k:Number = 0;
while (itemContainer.numChildren > 0) {
itemContainer.removeChildAt((itemContainer.numChildren - 1));
};
_productItemList = new Array();
var i:int;
while (i < LevelStatistics.accessProduct.length) {
productItem = new ImportItem(_typeList[LevelStatistics.accessProduct[i]], 1000, _productionPrice[LevelStatistics.accessProduct[i]]);
itemContainer.addChild(productItem);
productItem.y = (126 + (k * 22));
productItem.x = 85;
k++;
productItem.addEventListener(ImportItem.CHOOSE_ONE, chooseOne, false, 0, true);
productItem.addEventListener(ImportItem.CHOOSE_TEN, chooseTen, false, 0, true);
productItem.addEventListener(ImportItem.CHOOSE_FIVE, chooseFive, false, 0, true);
_productItemList.push(productItem);
i++;
};
addMoney(0);
}
private function chooseTen(event:Event=null):void{
event.stopPropagation();
var deltaProduction:Number = addProductToPlane(event.target.type, 10);
if (!deltaProduction){
};
addMoney((deltaProduction * Number(event.target.cost.text)));
updateImportList(event.target.type, deltaProduction);
}
private function addProductToPlane(type:String, count:Number):Number{
var delta:Number = 0;
var tempDelta:Number = 0;
var i:int;
while (i < _boxList.length) {
tempDelta = _boxList[i].addProduct(type, count);
if (tempDelta > 0){
delta = (delta + tempDelta);
count = (count - tempDelta);
if (count <= 0){
return (delta);
};
};
i++;
};
return (delta);
}
private function updateImportList(type:String, count:Number=0):Number{
var product:Array;
var i:int;
while (i < importProductionList.length) {
product = importProductionList[i].split(",");
if (product[0] == type){
product[1] = (Number(product[1]) + count);
importProductionList[i] = product.join(",");
return (0);
};
i++;
};
return (0);
}
private function chooseOne(event:Event=null):void{
event.stopPropagation();
var deltaProduction:Number = addProductToPlane(event.target.type, 1);
if (!deltaProduction){
};
addMoney((deltaProduction * Number(event.target.cost.text)));
updateImportList(event.target.type, deltaProduction);
}
public function hide(event:MouseEvent=null):void{
var event = event;
Tweener.addTween(this, {alpha:0, time:0.3, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
if (_money > 0){
Road.instance.goPlane(_money, (Plane.upgradeLevel - 1));
};
SoundManager.play("action_sell_buy");
GameController.instance.resume();
}
private function addMoney(cost:Number):void{
_money = (_money + cost);
if (cost > 0){
okBtn.visible = true;
};
money.text = String(_money);
var i:int;
while (i < _productItemList.length) {
if (_productItemList[i]){
_productItemList[i].updateView(_money);
};
i++;
};
}
public function upgrade(level:Number=0):void{
plane.gotoAndStop(Plane.upgradeLevel);
boxline.gotoAndStop(Plane.upgradeLevel);
}
private function getBoxPositions():Array{
return (_boxPositions[(Plane.upgradeLevel - 1)].split("|"));
}
private function chooseFive(event:Event=null):void{
event.stopPropagation();
var deltaProduction:Number = addProductToPlane(event.target.type, 5);
if (!deltaProduction){
};
addMoney((deltaProduction * Number(event.target.cost.text)));
updateImportList(event.target.type, deltaProduction);
}
public function cancel(event:MouseEvent=null):void{
var event = event;
if (_money > 0){
SoundManager.play("item_cancel");
};
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.3, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
GameController.instance.resume();
}
public function show():void{
var item:String;
var box:PlaneBox;
GameController.instance.pause();
okBtn.visible = false;
_money = 0;
money.text = "0";
this.visible = true;
plane.gotoAndStop(Plane.upgradeLevel);
boxline.gotoAndStop(Plane.upgradeLevel);
this.alpha = 0;
importProductionList = new Array();
var i:int;
while (i < LevelStatistics.accessProduct.length) {
item = (_typeList[LevelStatistics.accessProduct[i]] + ",0");
importProductionList.push(item);
i++;
};
Tweener.addTween(this, {alpha:1, time:0.5});
updateItemsView();
while (_boxContainer.numChildren > 0) {
_boxContainer.removeChildAt((_boxContainer.numChildren - 1));
};
_boxList = new Array();
var boxes:Array = getBoxPositions();
var b:int;
while (b < boxes.length) {
box = new PlaneBox();
box.x = boxes[b].split(",")[0];
box.y = boxes[b].split(",")[1];
_boxContainer.addChild(box);
_boxList.push(box);
b++;
};
if (((firstShow) && (!(Config.skiped)))){
SimpleTooltip.instance.show(Config.currentLanguage.tooltips.plane);
firstShow = false;
};
}
}
}//package market
Section 67
//ImportWindowTemplate (market.ImportWindowTemplate)
package market {
import flash.display.*;
import flash.text.*;
public dynamic class ImportWindowTemplate extends MovieClip {
public var boxline:MovieClip;
public var title:TextField;
public var plane:MovieClip;
public var cancelBtn:MovieClip;
public var okBtn:MovieClip;
public var money:TextField;
}
}//package market
Section 68
//PlaneBox (market.PlaneBox)
package market {
import utils.*;
public class PlaneBox extends BoxTemplate {
public var type:Number;
public var count:Number;// = 0
private static var sizeList:Array = new Array(5, 10, 1, 5, 2, 5, 5, 3, 10, 15, 1, 1, 1, 5, 2);
public function PlaneBox(){
super();
body.stop();
this.visible = false;
this.type = -1;
this.count = 0;
}
public function addProduct(typeS:String, countN:Number):Number{
var delta:Number;
if (!count){
this.visible = true;
this.body.gotoAndStop(typeS);
type = ProductTypes.typeToNumber(typeS);
};
if ((((count > 0)) && (!((type == ProductTypes.typeToNumber(typeS)))))){
return (0);
};
if (count == sizeList[type]){
return (-1);
};
if ((countN + count) <= sizeList[type]){
count = (count + countN);
this.progress._mask.width = ((20 * count) / sizeList[type]);
return (countN);
};
if ((countN + count) > sizeList[type]){
delta = (sizeList[type] - count);
count = (count + delta);
this.progress._mask.width = ((20 * count) / sizeList[type]);
return (delta);
};
return (countN);
}
}
}//package market
Section 69
//MochiDigits (mochi.MochiDigits)
package mochi {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(digit:Number=0, index:uint=0):void{
super();
Encoder = 0;
setValue(digit, index);
}
public function reencode():void{
var newEncode:uint = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (newEncode ^ Encoder));
Encoder = newEncode;
}
public function set value(v:Number):void{
setValue(v);
}
public function toString():String{
var s:String = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
s = (s + Sibling.toString());
};
return (s);
}
public function setValue(digit:Number=0, index:uint=0):void{
var s:String = digit.toString();
var _temp1 = index;
index = (index + 1);
Fragment = (s.charCodeAt(_temp1) ^ Encoder);
if (index < s.length){
Sibling = new MochiDigits(digit, index);
} else {
Sibling = null;
};
reencode();
}
public function get value():Number{
return (Number(this.toString()));
}
public function addValue(inc:Number):void{
value = (value + inc);
}
}
}//package mochi
Section 70
//MochiScores (mochi.MochiScores)
package mochi {
import flash.display.*;
import flash.text.*;
public class MochiScores {
private static var boardID:String;
public static var onErrorHandler:Object;
public static var onCloseHandler:Object;
public function MochiScores(){
super();
}
public static function showLeaderboard(options:Object=null):void{
var n:Number;
var options = options;
if (options != null){
if (options.clip != null){
if ((options.clip is Sprite)){
MochiServices.setContainer(options.clip);
};
delete options.clip;
} else {
MochiServices.setContainer();
};
MochiServices.stayOnTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
} else {
if ((options.score is MochiDigits)){
options.score = options.score.value;
};
};
n = Number(options.score);
if (isNaN(n)){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(n) != n){
trace((("WARNING: Submitted score '" + options.score) + "' will be truncated"));
};
options.score = n;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (_slot1.boardID != null){
options.boardID = _slot1.boardID;
};
};
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(callbackObj:Object, callbackMethod:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
public static function requestList(callbackObj:Object, callbackMethod:Object=null):void{
MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
public static function scoresArrayToObjects(scores:Object):Object{
var i:Number;
var j:Number;
var o:Object;
var row_obj:Object;
var item:String;
var param:String;
var so:Object = {};
for (item in scores) {
if (typeof(scores[item]) == "object"){
if (((!((scores[item].cols == null))) && (!((scores[item].rows == null))))){
so[item] = [];
o = scores[item];
j = 0;
while (j < o.rows.length) {
row_obj = {};
i = 0;
while (i < o.cols.length) {
row_obj[o.cols[i]] = o.rows[j][i];
i++;
};
so[item].push(row_obj);
j++;
};
} else {
so[item] = {};
for (param in scores[item]) {
so[item][param] = scores[item][param];
};
};
} else {
so[item] = scores[item];
};
};
return (so);
}
public static function submit(score:Number, name:String, callbackObj:Object=null, callbackMethod:Object=null):void{
score = Number(score);
if (isNaN(score)){
trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((score == Number.NEGATIVE_INFINITY)) || ((score == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(score) != score){
trace((("WARNING: Submitted score '" + String(score)) + "' will be truncated"));
};
score = Number(score);
};
};
MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
public static function onClose(args:Object=null):void{
if (args != null){
if (args.error != null){
if (args.error == true){
if (onErrorHandler != null){
if (args.errorCode == null){
args.errorCode = "IOError";
};
onErrorHandler(args.errorCode);
MochiServices.doClose();
return;
};
};
};
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(boardID:String):void{
_slot1.boardID = boardID;
MochiServices.send("scores_setBoardID", {boardID:boardID});
}
}
}//package mochi
Section 71
//MochiServices (mochi.MochiServices)
package mochi {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _id:String;
private static var _listenChannel:LocalConnection;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _startTime:Number;
private static var _connecting:Boolean = false;
public static var onError:Object;
private static var _listenChannelName:String = "__ms_";
private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf";
public static var netup:Boolean = true;
public function MochiServices(){
super();
}
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function send(methodName:String, args:Object=null, callbackObject:Object=null, callbackMethod:Object=null):void{
if (_connected){
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
onError("NotConnected");
handleError(args, callbackObject, callbackMethod);
flush(true);
return;
};
_clip._queue.push({methodName:methodName, args:args, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_clip._nextcallbackID++;
};
};
}
public static function get connected():Boolean{
return (_connected);
}
private static function flush(error:Boolean):void{
var request:Object;
var callback:Object;
if (_clip != null){
if (_clip._queue != null){
while (_clip._queue.length > 0) {
request = _clip._queue.shift();
callback = null;
if (request != null){
if (request.callbackID != null){
callback = _clip._callbacks[request.callbackID];
};
delete _clip._callbacks[request.callbackID];
if (((error) && (!((callback == null))))){
handleError(request.args, callback.callbackObject, callback.callbackMethod);
};
};
};
};
};
}
private static function clickMovie(url:String, cb:Function):MovieClip{
var b:int;
var loader:Loader;
var avm1_bytecode:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
var header:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
var footer:Array = [0, 64, 0, 0, 0];
var mc:MovieClip = new MovieClip();
var lc:LocalConnection = new LocalConnection();
var lc_name:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().getTime()));
lc = new LocalConnection();
mc.lc = lc;
mc.click = cb;
lc.client = mc;
lc.connect(lc_name);
var ba:ByteArray = new ByteArray();
var cpool:ByteArray = new ByteArray();
cpool.endian = Endian.LITTLE_ENDIAN;
cpool.writeShort(1);
cpool.writeUTFBytes(((url + " ") + lc_name));
cpool.writeByte(0);
var actionLength:uint = ((avm1_bytecode.length + cpool.length) + 4);
var fileLength:uint = (actionLength + 35);
ba.endian = Endian.LITTLE_ENDIAN;
ba.writeUTFBytes("FWS");
ba.writeByte(8);
ba.writeUnsignedInt(fileLength);
for each (b in header) {
ba.writeByte(b);
};
ba.writeUnsignedInt(actionLength);
ba.writeByte(136);
ba.writeShort(cpool.length);
ba.writeBytes(cpool);
for each (b in avm1_bytecode) {
ba.writeByte(b);
};
for each (b in footer) {
ba.writeByte(b);
};
loader = new Loader();
loader.loadBytes(ba);
mc.addChild(loader);
return (mc);
}
private static function init(id:String, clip:Object):void{
_id = id;
if (clip != null){
_container = clip;
loadCommunicator(id, _container);
};
}
public static function get childClip():Object{
return (_clip);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(url:String, burl:String, btn:DisplayObjectContainer, onClick:Function=null):void{
var avm1Click:DisplayObject;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = url;
var burl = burl;
var btn = btn;
var onClick = onClick;
var vars:Object = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
var s = "?";
var i:Number = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (url:String):void{
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(url, onClick);
var rect:Rectangle = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = rect.x;
avm1Click.y = rect.y;
avm1Click.scaleX = (0.01 * rect.width);
avm1Click.scaleY = (0.01 * rect.height);
};
err = function (ev:Object):void{
netup = false;
ev.target.removeEventListener(ev.type, arguments.callee);
setURL(burl);
};
complete = function (ev:Object):void{
ev.target.removeEventListener(ev.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
_listenChannel.close();
//unresolved jump
var _slot1 = error;
};
if (_timer != null){
_timer.stop();
//unresolved jump
var _slot1 = error;
};
}
public static function allowDomains(server:String):String{
var hostname:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (server.indexOf("http://") != -1){
hostname = server.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
};
return (hostname);
}
public static function getVersion():String{
return ("1.43");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
if (_clip.parent != null){
Sprite(_clip.parent).removeChild(_clip);
};
}
private static function onStatus(event:StatusEvent):void{
switch (event.level){
case "error":
_connected = false;
_listenChannel.connect(_listenChannelName);
break;
};
}
public static function get id():String{
return (_id);
}
private static function urlOptions(clip:Object):Object{
var pairs:Array;
var i:Number;
var kv:Array;
var opts:Object = {};
var options:String = clip.loaderInfo.parameters.mochiad_options;
if (options){
pairs = options.split("&");
i = 0;
while (i < pairs.length) {
kv = pairs[i].split("=");
opts[unescape(kv[0])] = unescape(kv[1]);
i++;
};
};
return (opts);
}
public static function setContainer(container:Object=null, doAdd:Boolean=true):void{
if (container != null){
if ((container is Sprite)){
_container = container;
};
};
if (doAdd){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function handleError(args:Object, callbackObject:Object, callbackMethod:Object):void{
var args = args;
var callbackObject = callbackObject;
var callbackMethod = callbackMethod;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
var _local5 = callbackObject;
_local5[callbackMethod](args);
//unresolved jump
var _slot1 = error;
} else {
if (callbackMethod != null){
callbackMethod.apply(args);
//unresolved jump
var _slot1 = error;
};
};
};
}
private static function initComChannels():void{
if (!_connected){
_sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_clip.onReceive = function (pkg:Object):void{
var methodName:String;
var pkg = pkg;
var cb:String = pkg.callbackID;
var cblst:Object = this.client._callbacks[cb];
if (!cblst){
return;
};
var method:* = cblst.callbackMethod;
methodName = "";
var obj:Object = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
method.apply(obj, pkg.args);
//unresolved jump
var _slot1 = error;
trace(((("Error invoking callback method '" + methodName) + "': ") + pkg.toString()));
} else {
if (obj != null){
obj(pkg.args);
//unresolved jump
var _slot1 = error;
trace(("Error invoking method on object: " + pkg.toString()));
};
};
delete this.client._callbacks[cb];
};
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
trace("connected!");
_connecting = false;
_connected = true;
while (_clip._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function listen():void{
_listenChannel = new LocalConnection();
_listenChannel.client = _clip;
_clip.handshake = function (args:Object):void{
MochiServices.comChannelName = args.newChannel;
};
_listenChannel.allowDomain("*", "localhost");
_listenChannel.allowInsecureDomain("*", "localhost");
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
public static function set comChannelName(val:String):void{
if (val != null){
if (val.length > 3){
_sendChannelName = (val + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(id:String, clip:Object):MovieClip{
var id = id;
var clip = clip;
var clipname:String = ("_mochiservices_com_" + id);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(clip).servicesURL != undefined){
_servicesURL = urlOptions(clip).servicesURL;
};
MochiServices.allowDomains(_servicesURL);
_clip = createEmptyMovieClip(clip, clipname, 10336, false);
_loader = new Loader();
_timer = new Timer(1000, 0);
_startTime = getTimer();
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
var f:Function = function (ev:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor((Math.random() * 99999))));
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
var req:URLRequest = new URLRequest(_servicesURL);
var vars:URLVariables = new URLVariables();
vars.listenLC = _listenChannelName;
vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options;
req.data = vars;
_loader.load(req);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_clip._nextcallbackID = 0;
_clip._callbacks = {};
listen();
return (_clip);
}
public static function get clip():Object{
return (_container);
}
public static function bringToTop(e:Event):void{
var e = e;
if (MochiServices.clip != null){
if (MochiServices.childClip != null){
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
//unresolved jump
var _slot1 = errorObject;
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
}
public static function connect(id:String, clip:Object, onError:Object=null):void{
var id = id;
var clip = clip;
var onError = onError;
if ((clip is DisplayObject)){
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (errorCode:String):void{
trace(errorCode);
};
};
};
}
public static function createEmptyMovieClip(parent:Object, name:String, depth:Number, doAdd:Boolean=true):MovieClip{
var parent = parent;
var name = name;
var depth = depth;
var doAdd = doAdd;
var mc:MovieClip = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
parent[name] = mc;
//unresolved jump
var _slot1 = e;
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
mc["_name"] = name;
return (mc);
}
public static function connectWait(e:TimerEvent):void{
if ((getTimer() - _startTime) > 10000){
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_timer.stop();
};
}
}
}//package mochi
Section 72
//Action (org.flintparticles.common.actions.Action)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public interface Action {
function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void;
function addedToEmitter(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\actions;Action.as:Emitter):void;
function removedFromEmitter(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\actions;Action.as:Emitter):void;
function getDefaultPriority():Number;
}
}//package org.flintparticles.common.actions
Section 73
//ActionBase (org.flintparticles.common.actions.ActionBase)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class ActionBase implements Action {
public function ActionBase(){
super();
}
public function addedToEmitter(emitter:Emitter):void{
}
public function removedFromEmitter(emitter:Emitter):void{
}
public function getDefaultPriority():Number{
return (0);
}
public function update(emitter:Emitter, particle:Particle, time:Number):void{
}
}
}//package org.flintparticles.common.actions
Section 74
//Age (org.flintparticles.common.actions.Age)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.energyEasing.*;
public class Age extends ActionBase {
private var _easing:Function;
public function Age(easing:Function=null){
super();
if (easing == null){
_easing = Linear.easeNone;
} else {
_easing = easing;
};
}
public function set easing(value:Function):void{
_easing = value;
}
override public function update(emitter:Emitter, particle:Particle, time:Number):void{
particle.age = (particle.age + time);
if (particle.age >= particle.lifetime){
particle.energy = 0;
particle.isDead = true;
} else {
particle.energy = _easing(particle.age, particle.lifetime);
};
}
public function get easing():Function{
return (_easing);
}
}
}//package org.flintparticles.common.actions
Section 75
//Fade (org.flintparticles.common.actions.Fade)
package org.flintparticles.common.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class Fade extends ActionBase {
private var _endAlpha:Number;
private var _diffAlpha:Number;
public function Fade(startAlpha:Number=1, endAlpha:Number=0){
super();
_diffAlpha = (startAlpha - endAlpha);
_endAlpha = endAlpha;
}
public function get endAlpha():Number{
return (_endAlpha);
}
public function set endAlpha(value:Number):void{
_diffAlpha = ((_endAlpha + _diffAlpha) - value);
_endAlpha = value;
}
override public function update(emitter:Emitter, particle:Particle, time:Number):void{
var alpha:Number = (_endAlpha + (_diffAlpha * particle.energy));
particle.color = ((particle.color & 0xFFFFFF) | (Math.round((alpha * 0xFF)) << 24));
}
override public function getDefaultPriority():Number{
return (-5);
}
public function set startAlpha(value:Number):void{
_diffAlpha = (value - _endAlpha);
}
public function get startAlpha():Number{
return ((_endAlpha + _diffAlpha));
}
}
}//package org.flintparticles.common.actions
Section 76
//Activity (org.flintparticles.common.activities.Activity)
package org.flintparticles.common.activities {
import org.flintparticles.common.emitters.*;
public interface Activity {
function initialize(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\activities;Activity.as:Emitter):void;
function removedFromEmitter(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\activities;Activity.as:Emitter):void;
function update(_arg1:Emitter, _arg2:Number):void;
function addedToEmitter(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\activities;Activity.as:Emitter):void;
function getDefaultPriority():Number;
}
}//package org.flintparticles.common.activities
Section 77
//Blast (org.flintparticles.common.counters.Blast)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class Blast implements Counter {
private var _startCount:uint;
public function Blast(startCount:uint){
super();
_startCount = startCount;
}
public function stop():void{
}
public function updateEmitter(emitter:Emitter, time:Number):uint{
return (0);
}
public function startEmitter(emitter:Emitter):uint{
return (_startCount);
}
public function resume():void{
}
public function set startCount(value:Number):void{
_startCount = value;
}
public function get startCount():Number{
return (_startCount);
}
}
}//package org.flintparticles.common.counters
Section 78
//Counter (org.flintparticles.common.counters.Counter)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public interface Counter {
function stop():void;
function startEmitter(:Emitter):uint;
function updateEmitter(_arg1:Emitter, _arg2:Number):uint;
function resume():void;
}
}//package org.flintparticles.common.counters
Section 79
//TimePeriod (org.flintparticles.common.counters.TimePeriod)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.easing.*;
public class TimePeriod implements Counter {
private var _timePassed:Number;
private var _easing:Function;
private var _stop:Boolean;// = false
private var _particles:uint;
private var _duration:Number;
private var _particlesPassed:uint;
public function TimePeriod(numParticles:uint, duration:Number, easing:Function=null){
super();
_particles = numParticles;
_duration = duration;
if (easing == null){
_easing = Linear.easeNone;
} else {
_easing = easing;
};
}
public function get numParticles():uint{
return (_particles);
}
public function stop():void{
_stop = true;
}
public function set numParticles(value:uint):void{
_particles = value;
}
public function set easing(value:Function):void{
_easing = value;
}
public function get duration():Number{
return (_duration);
}
public function updateEmitter(emitter:Emitter, time:Number):uint{
var newParticles:uint;
if (((_stop) || ((_particlesPassed == _particles)))){
return (0);
};
_timePassed = (_timePassed + time);
if (_timePassed >= _duration){
newParticles = (_particles - _particlesPassed);
_particlesPassed = _particles;
return (newParticles);
};
var oldParticles:uint = _particlesPassed;
_particlesPassed = Math.round(_easing(_timePassed, 0, _particles, _duration));
return ((_particlesPassed - oldParticles));
}
public function set duration(value:Number):void{
_duration = value;
}
public function get easing():Function{
return (_easing);
}
public function resume():void{
_stop = false;
}
public function startEmitter(emitter:Emitter):uint{
_particlesPassed = 0;
_timePassed = 0;
return (0);
}
}
}//package org.flintparticles.common.counters
Section 80
//ZeroCounter (org.flintparticles.common.counters.ZeroCounter)
package org.flintparticles.common.counters {
import org.flintparticles.common.emitters.*;
public class ZeroCounter implements Counter {
public function ZeroCounter(){
super();
}
public function stop():void{
}
public function updateEmitter(emitter:Emitter, time:Number):uint{
return (0);
}
public function startEmitter(emitter:Emitter):uint{
return (0);
}
public function resume():void{
}
}
}//package org.flintparticles.common.counters
Section 81
//Dot (org.flintparticles.common.displayObjects.Dot)
package org.flintparticles.common.displayObjects {
import flash.display.*;
public class Dot extends Shape {
public function Dot(radius:Number, color:uint=0xFFFFFF, bm:String="normal"){
super();
graphics.beginFill(color);
graphics.drawCircle(0, 0, radius);
graphics.endFill();
blendMode = bm;
}
}
}//package org.flintparticles.common.displayObjects
Section 82
//Star (org.flintparticles.common.displayObjects.Star)
package org.flintparticles.common.displayObjects {
import flash.display.*;
import flash.geom.*;
public class Star extends Shape {
public function Star(radius:Number, color:uint=0xFFFFFF, bm:String="normal"){
var point:Point;
super();
var rotStep:Number = (Math.PI / 5);
var innerRadius:Number = (radius * Math.cos((rotStep * 2)));
var halfPi:Number = (Math.PI * 0.5);
graphics.beginFill(color);
graphics.moveTo(0, -(radius));
point = Point.polar(innerRadius, (rotStep - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(radius, ((2 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(innerRadius, ((3 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(radius, ((4 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(innerRadius, ((5 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(radius, ((6 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(innerRadius, ((7 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(radius, ((8 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
point = Point.polar(innerRadius, ((9 * rotStep) - halfPi));
graphics.lineTo(point.x, point.y);
graphics.lineTo(0, -(radius));
graphics.endFill();
blendMode = bm;
}
}
}//package org.flintparticles.common.displayObjects
Section 83
//Linear (org.flintparticles.common.easing.Linear)
package org.flintparticles.common.easing {
public class Linear {
public function Linear(){
super();
}
public static function easeOut(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
public static function easeIn(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
public static function easeInOut(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
public static function easeNone(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
}
}//package org.flintparticles.common.easing
Section 84
//Emitter (org.flintparticles.common.emitters.Emitter)
package org.flintparticles.common.emitters {
import flash.events.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.events.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.activities.*;
import org.flintparticles.common.counters.*;
import org.flintparticles.common.utils.*;
public class Emitter extends EventDispatcher {
protected var _running:Boolean;// = false
protected var _activities:PriorityArray;
protected var _particles:Array;
protected var _initializers:PriorityArray;
protected var _counter:Counter;
protected var _started:Boolean;// = false
protected var _actions:PriorityArray;
protected var _useInternalTick:Boolean;// = true
protected var _particleFactory:ParticleFactory;
protected var _fixedFrameTime:Number;// = 0
protected var _maximumFrameTime:Number;// = 0.1
public function Emitter(){
super();
_particles = new Array();
_actions = new PriorityArray();
_initializers = new PriorityArray();
_activities = new PriorityArray();
_counter = new ZeroCounter();
}
public function addInitializer(initializer:Initializer, priority:Number=NaN):void{
if (isNaN(priority)){
priority = initializer.getDefaultPriority();
};
_initializers.add(initializer, priority);
initializer.addedToEmitter(this);
}
public function stop():void{
if (_useInternalTick){
FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener);
};
_started = false;
killAllParticles();
}
public function killAllParticles():void{
var len:int = _particles.length;
var i:int;
while (i < len) {
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _particles[i]));
_particleFactory.disposeParticle(_particles[i]);
i++;
};
_particles.length = 0;
}
public function set fixedFrameTime(value:Number):void{
_fixedFrameTime = value;
}
public function get maximumFrameTime():Number{
return (_maximumFrameTime);
}
public function get useInternalTick():Boolean{
return (_useInternalTick);
}
protected function createParticle():Particle{
var particle:Particle = _particleFactory.createParticle();
var len:int = _initializers.length;
initParticle(particle);
var i:int;
while (i < len) {
_initializers[i].initialize(this, particle);
i++;
};
_particles.push(particle);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_CREATED, particle));
return (particle);
}
public function get particleFactory():ParticleFactory{
return (_particleFactory);
}
private function updateEventListener(ev:UpdateEvent):void{
if (_fixedFrameTime){
update(_fixedFrameTime);
} else {
update(ev.time);
};
}
public function get particles():Array{
return (_particles);
}
protected function sortParticles():void{
}
public function removeActivity(activity:Activity):void{
if (_activities.remove(activity)){
activity.removedFromEmitter(this);
};
}
public function set maximumFrameTime(value:Number):void{
_maximumFrameTime = value;
}
protected function initParticle(particle:Particle):void{
}
public function addAction(action:Action, priority:Number=NaN):void{
if (isNaN(priority)){
priority = action.getDefaultPriority();
};
_actions.add(action, priority);
action.addedToEmitter(this);
}
public function hasInitializerOfType(initializerClass:Class):Boolean{
var len:uint = _initializers.length;
var i:uint;
while (i < len) {
if ((_initializers[i] is initializerClass)){
return (true);
};
i++;
};
return (false);
}
public function resume():void{
_running = true;
}
public function removeInitializer(initializer:Initializer):void{
if (_initializers.remove(initializer)){
initializer.removedFromEmitter(this);
};
}
public function get running():Boolean{
return (_running);
}
public function hasActionOfType(actionClass:Class):Boolean{
var len:uint = _actions.length;
var i:uint;
while (i < len) {
if ((_actions[i] is actionClass)){
return (true);
};
i++;
};
return (false);
}
public function get fixedFrameTime():Number{
return (_fixedFrameTime);
}
public function set particleFactory(value:ParticleFactory):void{
_particleFactory = value;
}
public function hasActivity(activity:Activity):Boolean{
return (_activities.contains(activity));
}
public function addActivity(activity:Activity, priority:Number=NaN):void{
if (isNaN(priority)){
priority = activity.getDefaultPriority();
};
_activities.add(activity, priority);
activity.addedToEmitter(this);
}
public function update(time:Number):void{
var i:int;
var particle:Particle;
var action:Action;
var len2:int;
var j:int;
if (!_running){
return;
};
if (time > _maximumFrameTime){
time = _maximumFrameTime;
};
var len:int = _counter.updateEmitter(this, time);
i = 0;
while (i < len) {
createParticle();
i++;
};
sortParticles();
len = _activities.length;
i = 0;
while (i < len) {
_activities[i].update(this, time);
i++;
};
if (_particles.length > 0){
len = _actions.length;
len2 = _particles.length;
j = 0;
while (j < len) {
action = _actions[j];
i = 0;
while (i < len2) {
particle = _particles[i];
action.update(this, particle, time);
i++;
};
j++;
};
i = len2;
while (i--) {
particle = _particles[i];
if (particle.isDead){
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, particle));
_particleFactory.disposeParticle(particle);
_particles.splice(i, 1);
};
};
} else {
dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_EMPTY));
};
dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_UPDATED));
}
public function addExistingParticles(particles:Array, applyInitializers:Boolean=false):void{
var i:int;
var len2:int;
var j:int;
var len:int = particles.length;
if (applyInitializers){
len2 = _initializers.length;
j = 0;
while (j < len2) {
i = 0;
while (i < len) {
_initializers[j].initialize(this, particles[i]);
i++;
};
j++;
};
};
i = 0;
while (i < len) {
_particles.push(particles[i]);
dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_ADDED, particles[i]));
i++;
};
}
public function removeAction(action:Action):void{
if (_actions.remove(action)){
action.removedFromEmitter(this);
};
}
public function hasActivityOfType(activityClass:Class):Boolean{
var len:uint = _activities.length;
var i:uint;
while (i < len) {
if ((_activities[i] is activityClass)){
return (true);
};
i++;
};
return (false);
}
public function set useInternalTick(value:Boolean):void{
if (_useInternalTick != value){
_useInternalTick = value;
if (_started){
if (_useInternalTick){
FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true);
} else {
FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener);
};
};
};
}
public function hasInitializer(initializer:Initializer):Boolean{
return (_initializers.contains(initializer));
}
public function start():void{
if (_useInternalTick){
FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true);
};
_started = true;
_running = true;
var len:int = _activities.length;
var i:int;
while (i < len) {
_activities[i].initialize(this);
i++;
};
len = _counter.startEmitter(this);
i = 0;
while (i < len) {
createParticle();
i++;
};
}
public function hasAction(action:Action):Boolean{
return (_actions.contains(action));
}
public function pause():void{
_running = false;
}
public function set counter(value:Counter):void{
_counter = value;
}
public function get counter():Counter{
return (_counter);
}
public function runAhead(time:Number, frameRate:Number=10):void{
var maxTime:Number = _maximumFrameTime;
var step:Number = (1 / frameRate);
_maximumFrameTime = step;
while (time > 0) {
time = (time - step);
update(step);
};
_maximumFrameTime = maxTime;
}
}
}//package org.flintparticles.common.emitters
Section 85
//Linear (org.flintparticles.common.energyEasing.Linear)
package org.flintparticles.common.energyEasing {
public class Linear {
public function Linear(){
super();
}
public static function easeOut(age:Number, lifetime:Number):Number{
return ((1 - (age / lifetime)));
}
public static function easeIn(age:Number, lifetime:Number):Number{
return ((1 - (age / lifetime)));
}
public static function easeInOut(age:Number, lifetime:Number):Number{
return ((1 - (age / lifetime)));
}
public static function easeNone(age:Number, lifetime:Number):Number{
return ((1 - (age / lifetime)));
}
}
}//package org.flintparticles.common.energyEasing
Section 86
//Quadratic (org.flintparticles.common.energyEasing.Quadratic)
package org.flintparticles.common.energyEasing {
public class Quadratic {
public function Quadratic(){
super();
}
public static function easeOut(age:Number, lifetime:Number):Number{
age = (1 - (age / lifetime));
return ((age * age));
}
public static function easeIn(age:Number, lifetime:Number):Number{
age = (age / lifetime);
return ((1 - (age * age)));
}
public static function easeInOut(age:Number, lifetime:Number):Number{
age = (age / (lifetime * 0.5));
if (age < 1){
return ((1 - ((age * age) * 0.5)));
};
age = (age - 2);
return (((age * age) * 0.5));
}
}
}//package org.flintparticles.common.energyEasing
Section 87
//EmitterEvent (org.flintparticles.common.events.EmitterEvent)
package org.flintparticles.common.events {
import flash.events.*;
public class EmitterEvent extends Event {
public static var EMITTER_UPDATED:String = "emitterUpdated";
public static var EMITTER_EMPTY:String = "emitterEmpty";
public function EmitterEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
}
}//package org.flintparticles.common.events
Section 88
//ParticleEvent (org.flintparticles.common.events.ParticleEvent)
package org.flintparticles.common.events {
import flash.events.*;
import org.flintparticles.common.particles.*;
public class ParticleEvent extends Event {
public var particle:Particle;
public static var PARTICLE_ADDED:String = "particleAdded";
public static var PARTICLE_DEAD:String = "particleDead";
public static var PARTICLE_CREATED:String = "particleCreated";
public function ParticleEvent(type:String, particle:Particle=null, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
this.particle = particle;
}
}
}//package org.flintparticles.common.events
Section 89
//UpdateEvent (org.flintparticles.common.events.UpdateEvent)
package org.flintparticles.common.events {
import flash.events.*;
public class UpdateEvent extends Event {
public var time:Number;
public static var UPDATE:String = "update";
public function UpdateEvent(type:String, time:Number=NaN, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
this.time = time;
}
}
}//package org.flintparticles.common.events
Section 90
//ColorInit (org.flintparticles.common.initializers.ColorInit)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.utils.*;
public class ColorInit extends InitializerBase {
private var _max:uint;
private var _min:uint;
public function ColorInit(color1:uint, color2:uint){
super();
_min = color1;
_max = color2;
}
public function set minColor(value:uint):void{
_min = value;
}
public function get color():uint{
return (((_min == _max)) ? _min : interpolateColors(_max, _min, 0.5));
}
public function set color(value:uint):void{
_max = (_min = value);
}
override public function initialize(emitter:Emitter, particle:Particle):void{
if (_max == _min){
particle.color = _min;
} else {
particle.color = interpolateColors(_min, _max, Math.random());
};
}
public function get minColor():uint{
return (_min);
}
public function set maxColor(value:uint):void{
_max = value;
}
public function get maxColor():uint{
return (_max);
}
}
}//package org.flintparticles.common.initializers
Section 91
//Initializer (org.flintparticles.common.initializers.Initializer)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public interface Initializer {
function initialize(_arg1:Emitter, _arg2:Particle):void;
function addedToEmitter(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\initializers;Initializer.as:Emitter):void;
function removedFromEmitter(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\initializers;Initializer.as:Emitter):void;
function getDefaultPriority():Number;
}
}//package org.flintparticles.common.initializers
Section 92
//InitializerBase (org.flintparticles.common.initializers.InitializerBase)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class InitializerBase implements Initializer {
public function InitializerBase(){
super();
}
public function initialize(emitter:Emitter, particle:Particle):void{
}
public function addedToEmitter(emitter:Emitter):void{
}
public function removedFromEmitter(emitter:Emitter):void{
}
public function getDefaultPriority():Number{
return (0);
}
}
}//package org.flintparticles.common.initializers
Section 93
//Lifetime (org.flintparticles.common.initializers.Lifetime)
package org.flintparticles.common.initializers {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class Lifetime extends InitializerBase {
private var _max:Number;
private var _min:Number;
public function Lifetime(minLifetime:Number, maxLifetime:Number=NaN){
super();
_max = maxLifetime;
_min = minLifetime;
}
public function get lifetime():Number{
return (((_min == _max)) ? _min : ((_max + _min) * 0.5));
}
public function get maxLifetime():Number{
return (_max);
}
override public function initialize(emitter:Emitter, particle:Particle):void{
if (isNaN(_max)){
particle.lifetime = _min;
} else {
particle.lifetime = (_min + (Math.random() * (_max - _min)));
};
}
public function set lifetime(value:Number):void{
_max = (_min = value);
}
public function set minLifetime(value:Number):void{
_min = value;
}
public function set maxLifetime(value:Number):void{
_max = value;
}
public function get minLifetime():Number{
return (_min);
}
}
}//package org.flintparticles.common.initializers
Section 94
//SharedImage (org.flintparticles.common.initializers.SharedImage)
package org.flintparticles.common.initializers {
import flash.display.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
public class SharedImage extends InitializerBase {
private var _image:DisplayObject;
public function SharedImage(image:DisplayObject){
super();
_image = image;
}
override public function initialize(emitter:Emitter, particle:Particle):void{
particle.image = _image;
}
public function set image(value:DisplayObject):void{
_image = value;
}
public function get image():DisplayObject{
return (_image);
}
}
}//package org.flintparticles.common.initializers
Section 95
//Particle (org.flintparticles.common.particles.Particle)
package org.flintparticles.common.particles {
import flash.geom.*;
import flash.utils.*;
public class Particle {
public var energy:Number;// = 1
public var lifetime:Number;// = 0
public var scale:Number;// = 1
public var image;// = null
public var color:uint;// = 4294967295
public var collisionRadius:Number;// = 1
private var _colorTransform:ColorTransform;// = null
private var _previousColor:uint;
public var isDead:Boolean;// = false
public var mass:Number;// = 1
private var _dictionary:Dictionary;// = null
public var age:Number;// = 0
public function Particle(){
super();
}
public function get dictionary():Dictionary{
if (_dictionary == null){
_dictionary = new Dictionary();
};
return (_dictionary);
}
public function get colorTransform():ColorTransform{
if (((!(_colorTransform)) || (!((_previousColor == color))))){
_colorTransform = new ColorTransform((((color >>> 16) & 0xFF) / 0xFF), (((color >>> 8) & 0xFF) / 0xFF), ((color & 0xFF) / 0xFF), (((color >>> 24) & 0xFF) / 0xFF), 0, 0, 0, 0);
_previousColor = color;
};
return (_colorTransform);
}
public function get alpha():Number{
return ((((color & 4278190080) >>> 24) / 0xFF));
}
public function initialize():void{
color = 4294967295;
scale = 1;
mass = 1;
collisionRadius = 1;
lifetime = 0;
age = 0;
energy = 1;
isDead = false;
image = null;
_dictionary = null;
_colorTransform = null;
}
}
}//package org.flintparticles.common.particles
Section 96
//ParticleFactory (org.flintparticles.common.particles.ParticleFactory)
package org.flintparticles.common.particles {
public interface ParticleFactory {
function createParticle():Particle;
function disposeParticle(D:\work\Farm2\Flash\melesta_lib\src;org\flintparticles\common\particles;ParticleFactory.as:Particle):void;
}
}//package org.flintparticles.common.particles
Section 97
//Renderer (org.flintparticles.common.renderers.Renderer)
package org.flintparticles.common.renderers {
import org.flintparticles.common.emitters.*;
public interface Renderer {
function removeEmitter(:Emitter):void;
function addEmitter(:Emitter):void;
}
}//package org.flintparticles.common.renderers
Section 98
//SpriteRendererBase (org.flintparticles.common.renderers.SpriteRendererBase)
package org.flintparticles.common.renderers {
import flash.events.*;
import flash.display.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.common.events.*;
public class SpriteRendererBase extends Sprite implements Renderer {
protected var _emitters:Array;
public function SpriteRendererBase(){
super();
_emitters = new Array();
mouseEnabled = false;
mouseChildren = false;
addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true);
}
private function particleAdded(ev:ParticleEvent):void{
addParticle(ev.particle);
if (stage){
stage.invalidate();
};
}
private function addedToStage(ev:Event):void{
if (stage){
stage.invalidate();
};
}
public function get emitters():Array{
return (_emitters);
}
protected function addParticle(particle:Particle):void{
}
private function updateParticles(ev:Event):void{
var particles:Array = new Array();
var i:int;
while (i < _emitters.length) {
particles = particles.concat(_emitters[i].particles);
i++;
};
renderParticles(particles);
}
private function emitterUpdated(ev:EmitterEvent):void{
if (stage){
stage.invalidate();
};
}
public function removeEmitter(emitter:Emitter):void{
var p:Particle;
var i:int;
while (i < _emitters.length) {
if (_emitters[i] == emitter){
_emitters.splice(i, 1);
emitter.removeEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated);
emitter.removeEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded);
emitter.removeEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded);
emitter.removeEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved);
for each (p in emitter.particles) {
removeParticle(p);
};
if (_emitters.length == 0){
removeEventListener(Event.RENDER, updateParticles);
renderParticles([]);
} else {
stage.invalidate();
};
return;
};
i++;
};
}
protected function renderParticles(particles:Array):void{
}
protected function removeParticle(particle:Particle):void{
}
private function particleRemoved(ev:ParticleEvent):void{
removeParticle(ev.particle);
if (stage){
stage.invalidate();
};
}
public function addEmitter(emitter:Emitter):void{
var p:Particle;
_emitters.push(emitter);
if (stage){
stage.invalidate();
};
emitter.addEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated, false, 0, true);
emitter.addEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded, false, 0, true);
emitter.addEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded, false, 0, true);
emitter.addEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved, false, 0, true);
for each (p in emitter.particles) {
addParticle(p);
};
if (_emitters.length == 1){
addEventListener(Event.RENDER, updateParticles, false, 0, true);
};
}
}
}//package org.flintparticles.common.renderers
Section 99
//FrameUpdater (org.flintparticles.common.utils.FrameUpdater)
package org.flintparticles.common.utils {
import flash.events.*;
import flash.display.*;
import org.flintparticles.common.events.*;
import flash.utils.*;
public class FrameUpdater extends EventDispatcher {
private var _shape:Shape;
private var _time:Number;
private static var _instance:FrameUpdater;
public function FrameUpdater(){
super();
_shape = new Shape();
_shape.addEventListener(Event.ENTER_FRAME, frameUpdate, false, 0, true);
_time = getTimer();
}
private function frameUpdate(ev:Event):void{
var oldTime:int = _time;
_time = getTimer();
var frameTime:Number = ((_time - oldTime) * 0.001);
dispatchEvent(new UpdateEvent(UpdateEvent.UPDATE, frameTime));
}
public static function get instance():FrameUpdater{
if (_instance == null){
_instance = new (FrameUpdater);
};
return (_instance);
}
}
}//package org.flintparticles.common.utils
Section 100
//interpolateColors (org.flintparticles.common.utils.interpolateColors)
package org.flintparticles.common.utils {
public function interpolateColors(color1:uint, color2:uint, ratio:Number):uint{
var inv:Number = (1 - ratio);
var red:uint = Math.round(((((color1 >>> 16) & 0xFF) * ratio) + (((color2 >>> 16) & 0xFF) * inv)));
var green:uint = Math.round(((((color1 >>> 8) & 0xFF) * ratio) + (((color2 >>> 8) & 0xFF) * inv)));
var blue:uint = Math.round((((color1 & 0xFF) * ratio) + ((color2 & 0xFF) * inv)));
var alpha:uint = Math.round(((((color1 >>> 24) & 0xFF) * ratio) + (((color2 >>> 24) & 0xFF) * inv)));
return (((((alpha << 24) | (red << 16)) | (green << 8)) | blue));
}
}//package org.flintparticles.common.utils
Section 101
//Maths (org.flintparticles.common.utils.Maths)
package org.flintparticles.common.utils {
public class Maths {
private static const DEGTORAD:Number = (Math.PI / 180);
private static const RADTODEG:Number = (180 / Math.PI);
public function Maths(){
super();
}
public static function asRadians(degrees:Number):Number{
return ((degrees * DEGTORAD));
}
public static function asDegrees(radians:Number):Number{
return ((radians * RADTODEG));
}
}
}//package org.flintparticles.common.utils
Section 102
//PriorityArray (org.flintparticles.common.utils.PriorityArray)
package org.flintparticles.common.utils {
import flash.utils.*;
public class PriorityArray extends Proxy {
private var _values:Array;
public function PriorityArray(){
super();
_values = new Array();
}
public function remove(value):Boolean{
var i:uint = _values.length;
while (i--) {
if (_values[i].value == value){
_values.splice(i, 1);
return (true);
};
};
return (false);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{
return ((index - 1).toString());
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{
var index:uint = uint(name);
if ((((index == name)) && ((index < _values.length)))){
_values[index].value = value;
};
}
public function add(value, priority:Number):uint{
var len:uint = _values.length;
var i:uint;
while (i < len) {
if (_values[i].priority < priority){
break;
};
i++;
};
_values.splice(i, 0, new Pair(priority, value));
return (_values.length);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){
var index:int = int(name);
if ((((((index == name)) && ((index < _values.length)))) && (_values[index]))){
return (_values[index].value);
};
return (undefined);
}
public function clear():void{
_values.length = 0;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{
if (index < _values.length){
return ((index + 1));
};
return (0);
}
public function get length():uint{
return (_values.length);
}
public function removeAt(index:uint){
var temp:* = _values[index].value;
_values.splice(index, 1);
return (temp);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(index:int){
return (_values[(index - 1)]);
}
public function contains(value):Boolean{
var i:uint = _values.length;
while (i--) {
if (_values[i].value == value){
return (true);
};
};
return (false);
}
}
}//package org.flintparticles.common.utils
class Pair {
private var value;
private var priority:Number;
private function Pair(priority:Number, value){
super();
this.priority = priority;
this.value = value;
}
}
Section 103
//Accelerate (org.flintparticles.twoD.actions.Accelerate)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.twoD.particles.*;
import org.flintparticles.common.actions.*;
public class Accelerate extends ActionBase {
private var _x:Number;
private var _y:Number;
public function Accelerate(accelerationX:Number, accelerationY:Number){
super();
_x = accelerationX;
_y = accelerationY;
}
public function set x(value:Number):void{
_x = value;
}
public function get y():Number{
return (_y);
}
public function get x():Number{
return (_x);
}
override public function update(emitter:Emitter, particle:Particle, time:Number):void{
var p:Particle2D = Particle2D(particle);
p.velX = (p.velX + (_x * time));
p.velY = (p.velY + (_y * time));
}
public function set y(value:Number):void{
_y = value;
}
}
}//package org.flintparticles.twoD.actions
Section 104
//Move (org.flintparticles.twoD.actions.Move)
package org.flintparticles.twoD.actions {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.twoD.particles.*;
import org.flintparticles.common.actions.*;
public class Move extends ActionBase {
private var p:Particle2D;
public function Move(){
super();
}
override public function getDefaultPriority():Number{
return (-10);
}
override public function update(emitter:Emitter, particle:Particle, time:Number):void{
p = Particle2D(particle);
p.x = (p.x + (p.velX * time));
p.y = (p.y + (p.velY * time));
}
}
}//package org.flintparticles.twoD.actions
Section 105
//Emitter2D (org.flintparticles.twoD.emitters.Emitter2D)
package org.flintparticles.twoD.emitters {
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.twoD.particles.*;
import org.flintparticles.common.utils.*;
public class Emitter2D extends Emitter {
protected var _y:Number;// = 0
public var spaceSort:Boolean;// = false
public var spaceSortedX:Array;
protected var _x:Number;// = 0
protected var _rotation:Number;// = 0
protected static var _creator:ParticleCreator2D = new ParticleCreator2D();
public function Emitter2D(){
super();
_particleFactory = _creator;
}
public function get y():Number{
return (_y);
}
override protected function initParticle(particle:Particle):void{
var p:Particle2D;
p = Particle2D(particle);
p.x = _x;
p.y = _y;
p.rotation = _rotation;
}
override protected function sortParticles():void{
var len:int;
var i:int;
if (spaceSort){
spaceSortedX = _particles.sortOn("x", (Array.NUMERIC | Array.RETURNINDEXEDARRAY));
len = _particles.length;
i = 0;
while (i < len) {
_particles[spaceSortedX[i]].sortID = i;
i++;
};
};
}
public function set x(value:Number):void{
_x = value;
}
public function set rotRadians(value:Number):void{
_rotation = value;
}
public function get x():Number{
return (_x);
}
public function get rotRadians():Number{
return (_rotation);
}
public function set rotation(value:Number):void{
_rotation = Maths.asRadians(value);
}
public function get rotation():Number{
return (Maths.asDegrees(_rotation));
}
public function set y(value:Number):void{
_y = value;
}
public static function get defaultParticleFactory():ParticleFactory{
return (_creator);
}
}
}//package org.flintparticles.twoD.emitters
Section 106
//Velocity (org.flintparticles.twoD.initializers.Velocity)
package org.flintparticles.twoD.initializers {
import flash.geom.*;
import org.flintparticles.common.emitters.*;
import org.flintparticles.common.particles.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.twoD.particles.*;
import org.flintparticles.common.initializers.*;
public class Velocity extends InitializerBase {
private var _zone:Zone2D;
public function Velocity(zone:Zone2D){
super();
_zone = zone;
}
override public function initialize(emitter:Emitter, particle:Particle):void{
var p:Particle2D;
var sin:Number;
var cos:Number;
p = Particle2D(particle);
var loc:Point = _zone.getLocation();
if (p.rotation == 0){
p.velX = loc.x;
p.velY = loc.y;
} else {
sin = Math.sin(p.rotation);
cos = Math.cos(p.rotation);
p.velX = ((cos * loc.x) - (sin * loc.y));
p.velY = ((cos * loc.y) + (sin * loc.x));
};
}
public function set zone(value:Zone2D):void{
_zone = value;
}
public function get zone():Zone2D{
return (_zone);
}
}
}//package org.flintparticles.twoD.initializers
Section 107
//Particle2D (org.flintparticles.twoD.particles.Particle2D)
package org.flintparticles.twoD.particles {
import flash.geom.*;
import org.flintparticles.common.particles.*;
public class Particle2D extends Particle {
public var sortID:uint;// = 0
private var _inertia:Number;
public var velY:Number;// = 0
private var _previousRadius:Number;
private var _previousMass:Number;
public var angVelocity:Number;// = 0
public var x:Number;// = 0
public var y:Number;// = 0
public var velX:Number;// = 0
public var rotation:Number;// = 0
public function Particle2D(){
super();
}
override public function initialize():void{
super.initialize();
x = 0;
y = 0;
velX = 0;
velY = 0;
rotation = 0;
angVelocity = 0;
sortID = 0;
}
public function get matrixTransform():Matrix{
var cos:Number = (scale * Math.cos(rotation));
var sin:Number = (scale * Math.sin(rotation));
return (new Matrix(cos, sin, -(sin), cos, x, y));
}
public function get inertia():Number{
if (((!((mass == _previousMass))) || (!((collisionRadius == _previousRadius))))){
_inertia = (((mass * collisionRadius) * collisionRadius) * 0.5);
_previousMass = mass;
_previousRadius = collisionRadius;
};
return (_inertia);
}
}
}//package org.flintparticles.twoD.particles
Section 108
//ParticleCreator2D (org.flintparticles.twoD.particles.ParticleCreator2D)
package org.flintparticles.twoD.particles {
import org.flintparticles.common.particles.*;
public class ParticleCreator2D implements ParticleFactory {
private var _particles:Array;
public function ParticleCreator2D(){
super();
_particles = new Array();
}
public function clearAllParticles():void{
_particles = new Array();
}
public function disposeParticle(particle:Particle):void{
if ((particle is Particle2D)){
particle.initialize();
_particles.push(particle);
};
}
public function createParticle():Particle{
if (_particles.length){
return (_particles.pop());
};
return (new Particle2D());
}
}
}//package org.flintparticles.twoD.particles
Section 109
//BitmapRenderer (org.flintparticles.twoD.renderers.BitmapRenderer)
package org.flintparticles.twoD.renderers {
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import org.flintparticles.twoD.particles.*;
import org.flintparticles.common.renderers.*;
public class BitmapRenderer extends SpriteRendererBase {
protected var _canvas:Rectangle;
protected var _bitmap:Bitmap;
protected var _smoothing:Boolean;
protected var _bitmapData:BitmapData;
protected var _postFilters:Array;
protected var _preFilters:Array;
protected var _colorMap:Array;
protected static var ZERO_POINT:Point = new Point(0, 0);
public function BitmapRenderer(canvas:Rectangle, smoothing:Boolean=false){
super();
mouseEnabled = false;
mouseChildren = false;
_smoothing = smoothing;
_preFilters = new Array();
_postFilters = new Array();
_canvas = canvas;
createBitmap();
}
public function get canvas():Rectangle{
return (_canvas);
}
public function set canvas(value:Rectangle):void{
_canvas = value;
createBitmap();
}
public function removeFilter(filter:BitmapFilter):void{
var i:int;
while (i < _preFilters.length) {
if (_preFilters[i] == filter){
_preFilters.splice(i, 1);
return;
};
i++;
};
i = 0;
while (i < _postFilters.length) {
if (_postFilters[i] == filter){
_postFilters.splice(i, 1);
return;
};
i++;
};
}
override protected function renderParticles(particles:Array):void{
var i:int;
var len:int;
if (!_bitmap){
return;
};
_bitmapData.lock();
len = _preFilters.length;
i = 0;
while (i < len) {
_bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _preFilters[i]);
i++;
};
if ((((len == 0)) && ((_postFilters.length == 0)))){
_bitmapData.fillRect(_bitmap.bitmapData.rect, 0);
};
len = particles.length;
if (len){
i = len;
while (i--) {
drawParticle(particles[i]);
};
};
len = _postFilters.length;
i = 0;
while (i < len) {
_bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _postFilters[i]);
i++;
};
if (_colorMap){
_bitmapData.paletteMap(_bitmapData, _bitmapData.rect, ZERO_POINT, _colorMap[1], _colorMap[2], _colorMap[3], _colorMap[0]);
};
_bitmapData.unlock();
}
protected function drawParticle(particle:Particle2D):void{
var matrix:Matrix;
matrix = particle.matrixTransform;
matrix.translate(-(_canvas.x), -(_canvas.y));
_bitmapData.draw(particle.image, matrix, particle.colorTransform, DisplayObject(particle.image).blendMode, null, _smoothing);
}
public function setPaletteMap(red:Array=null, green:Array=null, blue:Array=null, alpha:Array=null):void{
_colorMap = new Array(4);
_colorMap[0] = alpha;
_colorMap[1] = red;
_colorMap[2] = green;
_colorMap[3] = blue;
}
public function clearPaletteMap():void{
_colorMap = null;
}
public function addFilter(filter:BitmapFilter, postRender:Boolean=false):void{
if (postRender){
_postFilters.push(filter);
} else {
_preFilters.push(filter);
};
}
protected function createBitmap():void{
if (!_canvas){
return;
};
if (((_bitmap) && (_bitmapData))){
_bitmapData.dispose();
_bitmapData = null;
};
if (_bitmap){
removeChild(_bitmap);
};
_bitmap = new Bitmap(null, "auto", _smoothing);
_bitmapData = new BitmapData(_canvas.width, _canvas.height, true, 0);
_bitmap.bitmapData = _bitmapData;
addChild(_bitmap);
_bitmap.x = _canvas.x;
_bitmap.y = _canvas.y;
}
}
}//package org.flintparticles.twoD.renderers
Section 110
//DiscSectorZone (org.flintparticles.twoD.zones.DiscSectorZone)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public class DiscSectorZone implements Zone2D {
private var _minAngle:Number;
private var _innerRadius:Number;
private var _minAllowed:Number;
private var _outerRadius:Number;
private var _center:Point;
private var _maxAngle:Number;
private var _innerSq:Number;
private var _outerSq:Number;
private static var TWOPI:Number = 6.28318530717959;
public function DiscSectorZone(center:Point, outerRadius:Number, innerRadius:Number, minAngle:Number, maxAngle:Number){
super();
if (outerRadius < innerRadius){
throw (new Error((((("The outerRadius (" + outerRadius) + ") can't be smaller than the innerRadius (") + innerRadius) + ") in your DiscSectorZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument.")));
};
_center = center;
_innerRadius = innerRadius;
_outerRadius = outerRadius;
_innerSq = (_innerRadius * _innerRadius);
_outerSq = (_outerRadius * _outerRadius);
_minAngle = minAngle;
_maxAngle = maxAngle;
while (_maxAngle > TWOPI) {
_maxAngle = (_maxAngle - TWOPI);
};
while (_maxAngle < 0) {
_maxAngle = (_maxAngle + TWOPI);
};
_minAllowed = (_maxAngle - TWOPI);
if (minAngle == maxAngle){
_minAngle = _maxAngle;
} else {
_minAngle = clamp(_minAngle);
};
}
public function set minAngle(value:Number):void{
_minAngle = clamp(value);
}
public function get innerRadius():Number{
return (_innerRadius);
}
public function getArea():Number{
return (((Math.PI * _outerSq) - (Math.PI * _innerSq)));
}
public function get maxAngle():Number{
return (_maxAngle);
}
public function set innerRadius(value:Number):void{
_innerRadius = value;
_innerSq = (_innerRadius * _innerRadius);
}
public function set outerRadius(value:Number):void{
_outerRadius = value;
_outerSq = (_outerRadius * _outerRadius);
}
public function set maxAngle(value:Number):void{
_maxAngle = value;
while (_maxAngle > TWOPI) {
_maxAngle = (_maxAngle - TWOPI);
};
while (_maxAngle < 0) {
_maxAngle = (_maxAngle + TWOPI);
};
_minAllowed = (_maxAngle - TWOPI);
}
public function contains(x:Number, y:Number):Boolean{
x = (x - _center.x);
y = (y - _center.y);
var distSq:Number = ((x * x) + (y * y));
if ((((distSq > _outerSq)) || ((distSq < _innerSq)))){
return (false);
};
var angle:Number = Math.atan2(y, x);
angle = clamp(angle);
return ((angle >= _minAngle));
}
public function get minAngle():Number{
return (_minAngle);
}
public function get center():Point{
return (_center);
}
public function getLocation():Point{
var rand:Number = Math.random();
var point:Point = Point.polar((_innerRadius + ((1 - (rand * rand)) * (_outerRadius - _innerRadius))), (_minAngle + (Math.random() * (_maxAngle - _minAngle))));
point.x = (point.x + _center.x);
point.y = (point.y + _center.y);
return (point);
}
public function get outerRadius():Number{
return (_outerRadius);
}
public function set center(value:Point):void{
_center = value;
}
private function clamp(angle:Number):Number{
while (angle > _maxAngle) {
angle = (angle - TWOPI);
};
while (angle < _minAllowed) {
angle = (angle + TWOPI);
};
return (angle);
}
}
}//package org.flintparticles.twoD.zones
Section 111
//DiscZone (org.flintparticles.twoD.zones.DiscZone)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public class DiscZone implements Zone2D {
private var _innerRadius:Number;
private var _outerRadius:Number;
private var _center:Point;
private var _innerSq:Number;
private var _outerSq:Number;
private static const TWOPI:Number = 6.28318530717959;
public function DiscZone(center:Point, outerRadius:Number, innerRadius:Number=0){
super();
if (outerRadius < innerRadius){
throw (new Error((((("The outerRadius (" + outerRadius) + ") can't be smaller than the innerRadius (") + innerRadius) + ") in your DiscZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument.")));
};
_center = center;
_innerRadius = innerRadius;
_outerRadius = outerRadius;
_innerSq = (_innerRadius * _innerRadius);
_outerSq = (_outerRadius * _outerRadius);
}
public function set outerRadius(value:Number):void{
_outerRadius = value;
_outerSq = (_outerRadius * _outerRadius);
}
public function get center():Point{
return (_center);
}
public function getArea():Number{
return ((Math.PI * (_outerSq - _innerSq)));
}
public function getLocation():Point{
var rand:Number = Math.random();
var point:Point = Point.polar((_innerRadius + ((1 - (rand * rand)) * (_outerRadius - _innerRadius))), (Math.random() * TWOPI));
point.x = (point.x + _center.x);
point.y = (point.y + _center.y);
return (point);
}
public function get outerRadius():Number{
return (_outerRadius);
}
public function get innerRadius():Number{
return (_innerRadius);
}
public function set innerRadius(value:Number):void{
_innerRadius = value;
_innerSq = (_innerRadius * _innerRadius);
}
public function set center(value:Point):void{
_center = value;
}
public function contains(x:Number, y:Number):Boolean{
x = (x - _center.x);
y = (y - _center.y);
var distSq:Number = ((x * x) + (y * y));
return ((((distSq <= _outerSq)) && ((distSq >= _innerSq))));
}
}
}//package org.flintparticles.twoD.zones
Section 112
//Zone2D (org.flintparticles.twoD.zones.Zone2D)
package org.flintparticles.twoD.zones {
import flash.geom.*;
public interface Zone2D {
function getArea():Number;
function getLocation():Point;
function contains(_arg1:Number, _arg2:Number):Boolean;
}
}//package org.flintparticles.twoD.zones
Section 113
//Chicken (pets.Chicken)
package pets {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.cheezeworld.math.*;
import game.assets.*;
import flash.utils.*;
import ui.*;
import game.*;
import utils.*;
import flash.media.*;
import production.*;
import com.melesta.utils.math.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Chicken extends ChickenTemplate implements IPet {
private var _hungrySound:SoundChannel;
private var _state:String;// = "moving"
private var _produceCounter:Number;// = 0
private var pet:MovieClip;
private var gameController:GameController;
private var _stageInstance:DisplayObjectContainer;
private var _hungryTimer:Timer;
private var type:String;// = "chicken"
private var _produceTimer:Timer;
private var _counter:Number;// = 0
private var timer:Timer;
private var prewRight:Boolean;// = false
public var index:Number;// = 0
private var _stateTimer:Timer;
private var _production:String;// = "EGG"
private var _hungryValue:Number;// = 100
private var _deltaHungry:Number;// = 5
private var nearGrass:Grass;
private var t:Number;// = 0
public static var chickenList:Array = new Array();
public static var firstShow:Boolean = true;
public static var count:Number = 0;
public function Chicken(){
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
this.mouseChildren = false;
this.mouseEnabled = false;
_hungrySound = new SoundChannel();
_produceTimer = new Timer(1000);
_produceTimer.addEventListener(TimerEvent.TIMER, produce, false, 0, true);
_hungryTimer = new Timer(1000);
_hungryTimer.addEventListener(TimerEvent.TIMER, hungry, false, 0, true);
_stateTimer = new Timer(1);
_stateTimer.addEventListener(TimerEvent.TIMER, checkHungry, false, 0, true);
_stateTimer.start();
}
private function getGrass():void{
if (_state == "hungry"){
if (nearGrass != null){
if (!nearGrass.hasGrass()){
Tweener.removeTweens(this);
findGrass();
};
};
};
}
public function destroy(event:Event=null):void{
_stageInstance.removeChild(this);
if (event != null){
Chicken.count--;
};
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, move);
_hungrySound.stop();
Tweener.removeTweens(this);
_hungryTimer.stop();
_produceTimer.stop();
_produceTimer.removeEventListener(TimerEvent.TIMER, produce);
_hungryTimer.removeEventListener(TimerEvent.TIMER, hungry);
_stateTimer.removeEventListener(TimerEvent.TIMER, checkHungry);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
}
public function show(posx:Number, posy:Number, delay:Number, stageInstance:DisplayObjectContainer=null):void{
_counter = 7;
this.x = posx;
this.y = -10;
stageInstance.addChild(this);
_stageInstance = stageInstance;
Tweener.addTween(this, {y:posy, time:0.3, delay:delay, transition:"easeInCirc", onComplete:startAnimation});
timer = new Timer(3000);
timer.addEventListener(TimerEvent.TIMER, move);
index = Chicken.count;
Chicken.chickenList.push(this);
Chicken.count++;
LevelStatistics.goals[13] = Chicken.count;
LevelStatistics.updateStatistics();
_hungryTimer.start();
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
if (((!((this._state == "flyOut"))) && (!((this._state == "death"))))){
switch (_state){
case "hungry":
_stateTimer.start();
_hungryTimer.start();
this.body.play();
if (_hungryValue < 20){
_hungrySound = SoundManager.play("chicken_hungry", 1);
};
break;
case "moving":
_stateTimer.start();
_hungryTimer.start();
timer.start();
this.body.play();
break;
};
_produceTimer.start();
};
}
public function startAnimation():void{
_produceTimer.start();
var left:Number = ((this.x)<300) ? -1 : 1;
SoundManager.play("chicken_voice", 1, new SoundTransform(1, left));
timer.start();
move();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.chicken);
};
}
private function hungry(event:TimerEvent=null):void{
event.stopPropagation();
_hungryValue = (_hungryValue - _deltaHungry);
if (_hungryValue <= 40){
if (_state != "hungry"){
_state = "hungry";
findGrass();
if (_hungryValue == 20){
_hungrySound = SoundManager.play("chicken_hungry", 1);
};
};
} else {
_state = "moving";
};
if (_hungryValue <= 0){
_state = "death";
death();
};
this.hungryProgress._mask.width = ((_hungryValue / 100) * 17);
}
public function move(event:TimerEvent=null):void{
if (event != null){
event.stopPropagation();
};
var p1:Point = new Point(this.x, this.y);
var newX:Number = MathUtils.rand(150, 400);
var newY:Number = MathUtils.rand(150, 300);
var p2:Point = new Point(newX, newY);
var dir:Object = Direction.getDirection(p1, p2);
this.body.gotoAndPlay(dir.direction);
if (dir.right){
this.scaleX = -1;
prewRight = true;
} else {
this.scaleX = 1;
prewRight = false;
};
Tweener.removeTweens(this);
if (_hungryValue <= 30){
t = (Math.sqrt((((x - p2.x) * (x - p2.x)) + ((y - p2.y) * (y - p2.y)))) / 30);
} else {
t = (Math.sqrt((((x - p2.x) * (x - p2.x)) + ((y - p2.y) * (y - p2.y)))) / 10);
};
Tweener.addTween(this, {y:p2.y, x:p2.x, time:t, transition:"linear", onComplete:move});
}
private function nextPoint():Point{
var newX:Number = MathUtils.rand(150, 400);
var newY:Number = MathUtils.rand(150, 300);
var p2:Point = new Point(newX, newY);
while (Math.sqrt((((x - newX) * (x - newX)) + ((y - newY) * (y - newY)))) < 100) {
newX = MathUtils.rand(150, 400);
newY = MathUtils.rand(150, 300);
p2.x = newX;
p2.y = newY;
};
return (p2);
}
public function kill():void{
if (((!((this._state == "flyOut"))) && (!((this._state == "death"))))){
this._state = "flyOut";
Tweener.removeTweens(this);
SoundManager.play("chicken_flyout", 1);
_hungrySound.stop();
Chicken.count--;
this.body.stop();
timer.stop();
_hungryTimer.stop();
_stateTimer.stop();
Chicken.chickenList.splice(index, 1);
Chicken.refreshIndexes();
LevelStatistics.goals[13] = Chicken.count;
LevelStatistics.updateStatistics();
_produceTimer.stop();
Tweener.addTween(this, {y:0, rotation:360, time:3, transition:"easeOutBack", onComplete:destroy});
Tweener.addTween(this, {x:(x + 200), transition:"linear", time:1});
_produceTimer.removeEventListener(TimerEvent.TIMER, produce);
_hungryTimer.removeEventListener(TimerEvent.TIMER, hungry);
_stateTimer.removeEventListener(TimerEvent.TIMER, checkHungry);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
};
}
private function eat():Boolean{
var pay:Number;
_hungryTimer.stop();
if (((!((nearGrass == null))) && ((Grass.grassList.length > 0)))){
pay = nearGrass.getGrass();
if (pay > 0){
this._hungryValue = (this._hungryValue + 10);
this.hungryProgress._mask.width = ((_hungryValue / 100) * 17);
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, delay:0.5, time:0, onUpdate:getGrass, onComplete:eat});
return (true);
};
_hungryTimer.start();
Tweener.removeTweens(this);
if (!pay){
if (nearGrass != null){
nearGrass.destroy();
};
};
findGrass();
return (false);
//unresolved jump
};
_hungryTimer.start();
Tweener.removeTweens(this);
findGrass();
return (false);
}
private function produce(event:TimerEvent=null):void{
event.stopPropagation();
_produceCounter++;
if (_produceCounter == 19){
PetsContainer.instance.addProduct(_production, this.x, this.y);
_produceCounter = 0;
};
}
private function checkHungry(event:TimerEvent=null):void{
if (event){
event.stopPropagation();
};
if (_state == "hungry"){
if (this._hungryValue > 80){
_state = "moving";
Tweener.removeTweens(this);
_hungryTimer.start();
timer.start();
_counter = 7;
move();
};
};
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this);
_stateTimer.stop();
_hungryTimer.stop();
timer.stop();
this.body.stop();
_produceTimer.stop();
_hungrySound.stop();
}
private function death():void{
Tweener.removeTweens(this);
_hungrySound.stop();
_hungryTimer.stop();
timer.stop();
_produceTimer.stop();
this.body.gotoAndPlay("death");
Tweener.addTween(this, {alpha:0, time:1, delay:0.7, transition:"linear", onComplete:destroy});
SoundManager.play("chicken_die", 1);
Chicken.count--;
Chicken.chickenList.splice(index, 1);
Chicken.refreshIndexes();
LevelStatistics.goals[13] = Chicken.count;
LevelStatistics.updateStatistics();
}
private function findGrass():void{
var nX:Number;
var nY:Number;
var pg:Point;
var dir0:Object;
var pp:Point = new Point(this.x, this.y);
timer.stop();
if (Grass.grassList.length > 0){
nearGrass = Grass.getNear(this.x, this.y);
nX = (Math.ceil(nearGrass.x) + Math.ceil((Math.random() * 10)));
nY = (Math.ceil(nearGrass.y) + Math.ceil((Math.random() * 10)));
pg = new Point(nX, nY);
dir0 = Direction.getDirection(pp, pg);
this.body.gotoAndPlay(dir0.direction);
if (dir0.right){
this.scaleX = -1;
prewRight = true;
} else {
this.scaleX = 1;
prewRight = false;
};
Tweener.removeTweens(this);
t = (Math.sqrt((((x - nX) * (x - nX)) + ((y - nY) * (y - nY)))) / 100);
Tweener.addTween(this, {y:nY, x:nX, time:t, transition:"linear", onUpdate:getGrass, onComplete:function ():void{
if (eat()){
this.body.gotoAndPlay("eat");
};
}});
} else {
_counter = 7;
_state = "moving";
timer.start();
move();
};
}
public static function remove(chickens:Number):void{
while (chickens > 0) {
Chicken.chickenList[(Chicken.count - 1)].destroy();
Chicken.chickenList.pop();
chickens--;
Chicken.count--;
};
Chicken.refreshIndexes();
LevelStatistics.goals[13] = Chicken.count;
LevelStatistics.updateStatistics();
}
public static function refreshIndexes():void{
var i:int;
while (i < Chicken.chickenList.length) {
Chicken.chickenList[i].index = i;
i++;
};
}
}
}//package pets
Section 114
//ChickenTemplate (pets.ChickenTemplate)
package pets {
import flash.display.*;
public dynamic class ChickenTemplate extends MovieClip {
public var hungryProgress:MovieClip;
public var body:MovieClip;
}
}//package pets
Section 115
//Goat (pets.Goat)
package pets {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.cheezeworld.math.*;
import game.assets.*;
import flash.utils.*;
import ui.*;
import game.*;
import utils.*;
import flash.media.*;
import production.*;
import com.melesta.utils.math.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Goat extends GoatTemplate implements IPet {
private var _hungrySound:SoundChannel;
private var _state:String;// = "moving"
private var _produceCounter:Number;// = 0
private var pet:MovieClip;
private var gameController:GameController;
private var _stageInstance:DisplayObjectContainer;
private var _hungryTimer:Timer;
private var type:String;// = "goat"
private var _produceTimer:Timer;
private var _counter:Number;// = 0
private var timer:Timer;
private var prewRight:Boolean;// = false
public var index:Number;// = 0
private var _stateTimer:Timer;
private var _production:String;// = "MILK_GOAT"
private var _hungryValue:Number;// = 200
private var _deltaHungry:Number;// = 10
private var nearGrass:Grass;
private var t:Number;// = 0
public static var goatList:Array = new Array();
public static var firstShow:Boolean = true;
public static var count:Number = 0;
public function Goat(){
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
this.mouseChildren = (this.mouseEnabled = false);
this.activeArea.mouseEnabled = (this.activeArea.mouseChildren = false);
this.body.mouseEnabled = (this.body.mouseChildren = false);
_hungrySound = new SoundChannel();
_produceTimer = new Timer(1000);
_produceTimer.addEventListener(TimerEvent.TIMER, produce, false, 0, true);
_hungryTimer = new Timer(1000);
_hungryTimer.addEventListener(TimerEvent.TIMER, hungry, false, 0, true);
_stateTimer = new Timer(1);
_stateTimer.addEventListener(TimerEvent.TIMER, checkHungry, false, 0, true);
_stateTimer.start();
}
private function getGrass():void{
if (_state == "hungry"){
if (nearGrass != null){
if (!nearGrass.hasGrass()){
Tweener.removeTweens(this);
findGrass();
};
};
};
}
public function destroy(event:Event=null):void{
_stageInstance.removeChild(this);
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, move);
_hungrySound.stop();
Tweener.removeTweens(this);
if (event != null){
Goat.count--;
};
_hungryTimer.stop();
_produceTimer.stop();
_produceTimer.removeEventListener(TimerEvent.TIMER, produce);
_hungryTimer.removeEventListener(TimerEvent.TIMER, hungry);
_stateTimer.removeEventListener(TimerEvent.TIMER, checkHungry);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.RESUME_GAME, resume);
gameController.removeEventListener(GameController.PAUSE_GAME, pause);
}
public function show(posx:Number, posy:Number, delay:Number, stageInstance:DisplayObjectContainer=null):void{
_counter = 7;
this.x = posx;
this.y = -10;
stageInstance.addChild(this);
_stageInstance = stageInstance;
Tweener.addTween(this, {y:posy, time:0.3, delay:delay, transition:"easeInCirc", onComplete:startAnimation});
timer = new Timer(3000);
timer.addEventListener(TimerEvent.TIMER, move);
index = Goat.count;
Goat.goatList.push(this);
Goat.count++;
LevelStatistics.goals[14] = Goat.count;
LevelStatistics.updateStatistics();
_hungryTimer.start();
}
public function resume(event:Event=null):void{
Tweener.resumeTweens(this);
if (((!((this._state == "flyOut"))) && (!((this._state == "death"))))){
switch (_state){
case "hungry":
_stateTimer.start();
_hungryTimer.start();
this.body.play();
if (_hungryValue < 60){
_hungrySound = SoundManager.play("goat_hungry", 1);
};
break;
case "moving":
_stateTimer.start();
_hungryTimer.start();
timer.start();
this.body.play();
break;
};
_produceTimer.start();
};
}
public function startAnimation():void{
_produceTimer.start();
var left:Number = ((this.x)<300) ? -1 : 1;
SoundManager.play("goat_voice", 1, new SoundTransform(1, left));
timer.start();
move();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.goat);
};
}
private function hungry(event:TimerEvent=null):void{
event.stopPropagation();
_hungryValue = (_hungryValue - _deltaHungry);
if (_hungryValue < 80){
if (_state != "hungry"){
_state = "hungry";
findGrass();
if (_hungryValue == 40){
_hungrySound = SoundManager.play("goat_hungry", 1);
};
};
} else {
_state = "moving";
};
if (_hungryValue <= 0){
_state = "death";
death();
};
this.hungryProgress._mask.width = ((_hungryValue / 200) * 28);
}
public function move(event:TimerEvent=null):void{
if (event != null){
event.stopPropagation();
};
var p1:Point = new Point(this.x, this.y);
var newX:Number = MathUtils.rand(150, 400);
var newY:Number = MathUtils.rand(150, 300);
var p2:Point = new Point(newX, newY);
var dir:Object = Direction.getDirection(p1, p2);
this.body.gotoAndPlay(dir.direction);
if (dir.right){
this.scaleX = 1;
prewRight = true;
} else {
this.scaleX = -1;
prewRight = false;
};
Tweener.removeTweens(this);
if (_hungryValue <= 80){
t = (Math.sqrt((((x - newX) * (x - newX)) + ((y - newY) * (y - newY)))) / 30);
} else {
t = (Math.sqrt((((x - newX) * (x - newX)) + ((y - newY) * (y - newY)))) / 10);
};
Tweener.addTween(this, {y:newY, x:newX, time:t, transition:"linear", onComplete:move});
}
public function kill():void{
if (((!((this._state == "flyOut"))) && (!((this._state == "death"))))){
this._state = "flyOut";
Tweener.removeTweens(this);
SoundManager.play("goat_flyout", 1);
_hungrySound.stop();
Goat.count--;
this.body.stop();
timer.stop();
_hungryTimer.stop();
_stateTimer.stop();
Goat.goatList.splice(index, 1);
Goat.refreshIndexes();
LevelStatistics.goals[14] = Goat.count;
LevelStatistics.updateStatistics();
_produceTimer.stop();
Tweener.addTween(this, {y:0, rotation:360, time:3, transition:"easeOutBack", onComplete:destroy});
Tweener.addTween(this, {x:(x + 200), transition:"linear", time:1});
_produceTimer.removeEventListener(TimerEvent.TIMER, produce);
_hungryTimer.removeEventListener(TimerEvent.TIMER, hungry);
_stateTimer.removeEventListener(TimerEvent.TIMER, checkHungry);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
};
}
private function eat():Boolean{
var pay:Number;
_hungryTimer.stop();
if (((!((nearGrass == null))) && ((Grass.grassList.length > 0)))){
pay = nearGrass.getGrass();
if (pay > 0){
this._hungryValue = (this._hungryValue + 20);
this.hungryProgress._mask.width = ((_hungryValue / 200) * 28);
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, delay:0.3, time:0, onUpdate:getGrass, onComplete:eat});
return (true);
};
_hungryTimer.start();
Tweener.removeTweens(this);
if (!pay){
if (nearGrass != null){
nearGrass.destroy();
};
};
findGrass();
return (false);
//unresolved jump
};
_hungryTimer.start();
Tweener.removeTweens(this);
findGrass();
return (false);
}
private function produce(event:TimerEvent=null):void{
event.stopPropagation();
_produceCounter++;
if (_produceCounter == 19){
PetsContainer.instance.addProduct(_production, this.x, this.y);
_produceCounter = 0;
};
}
private function checkHungry(event:TimerEvent=null):void{
if (event){
event.stopPropagation();
};
if (_state == "hungry"){
if (this._hungryValue >= 180){
_state = "moving";
Tweener.removeTweens(this);
_hungryTimer.start();
timer.start();
_counter = 7;
move();
};
};
}
public function pause(event:Event=null):void{
Tweener.pauseTweens(this);
_stateTimer.stop();
_hungryTimer.stop();
timer.stop();
this.body.stop();
_produceTimer.stop();
_hungrySound.stop();
}
private function death():void{
Tweener.removeTweens(this);
_hungrySound.stop();
_hungryTimer.stop();
timer.stop();
_produceTimer.stop();
this.body.gotoAndPlay("death");
Tweener.addTween(this, {alpha:0, time:1, delay:0.7, transition:"linear", onComplete:destroy});
SoundManager.play("goat_die", 1);
Goat.count--;
Goat.goatList.splice(index, 1);
Goat.refreshIndexes();
LevelStatistics.goals[14] = Goat.count;
LevelStatistics.updateStatistics();
}
private function findGrass():void{
var nX:Number;
var nY:Number;
var pg:Point;
var dir0:Object;
var pp:Point = new Point(this.x, this.y);
timer.stop();
if (Grass.grassList.length > 0){
nearGrass = Grass.getNear(this.x, this.y);
nX = (Math.ceil(nearGrass.x) + Math.ceil((Math.random() * 10)));
nY = (Math.ceil(nearGrass.y) + Math.ceil((Math.random() * 10)));
pg = new Point(nX, nY);
dir0 = Direction.getDirection(pp, pg);
this.body.gotoAndPlay(dir0.direction);
if (dir0.right){
this.scaleX = 1;
prewRight = true;
} else {
this.scaleX = -1;
prewRight = false;
};
Tweener.removeTweens(this);
t = (Math.sqrt((((x - nX) * (x - nX)) + ((y - nY) * (y - nY)))) / 100);
Tweener.addTween(this, {y:nY, x:nX, time:t, transition:"linear", onUpdate:getGrass, onComplete:function ():void{
if (eat()){
this.body.gotoAndPlay("eat");
};
}});
} else {
_counter = 7;
_state = "moving";
timer.start();
move();
};
}
public static function remove(goats:Number):void{
while (goats > 0) {
Goat.goatList[(Goat.count - 1)].destroy();
Goat.goatList.pop();
goats--;
Goat.count--;
};
Goat.refreshIndexes();
LevelStatistics.goals[14] = Goat.count;
LevelStatistics.updateStatistics();
}
public static function refreshIndexes():void{
var i:int;
while (i < Goat.goatList.length) {
Goat.goatList[i].index = i;
i++;
};
}
}
}//package pets
Section 116
//IPet (pets.IPet)
package pets {
import flash.events.*;
import flash.display.*;
public interface IPet {
function move(:TimerEvent=null):void;
function startAnimation():void;
function show(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:DisplayObjectContainer=null):void;
}
}//package pets
Section 117
//PetsContainer (pets.PetsContainer)
package pets {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import org.flintparticles.twoD.zones.*;
import flash.filters.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import com.cheezeworld.math.*;
import game.assets.*;
import flash.utils.*;
import houses.*;
import ui.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.energyEasing.*;
import org.flintparticles.common.displayObjects.*;
import production.*;
import bears.*;
public class PetsContainer extends MovieClip {
private var container:Sprite;
private var timerSort:Timer;
private var _sortedItems:Array;
private var _stageInstance:DisplayObjectContainer;
private var waterEmitter:Emitter2D;
private var waterRenderer:BitmapRenderer;
private var _field:Field;
public static var instance:PetsContainer;
public function PetsContainer(stageInstance:DisplayObjectContainer):void{
super();
_stageInstance = stageInstance;
container = new Sprite();
_field = new Field();
_field.x = 167;
_field.y = 145;
_field.alpha = 0;
stageInstance.addChild(_field);
stageInstance.addChild(container);
_stageInstance = DisplayObjectContainer(container);
MovingProduction.container = _stageInstance;
PetsContainer.instance = this;
timerSort = new Timer(10);
timerSort.addEventListener(TimerEvent.TIMER, arrange);
timerSort.start();
_field.addEventListener(MouseEvent.CLICK, addGrass, false, 0, true);
container.mouseEnabled = false;
createWaterEmitter();
}
public function createWaterEmitter():void{
waterEmitter = new Emitter2D();
waterEmitter.counter = new TimePeriod(150, 0.4);
waterEmitter.addInitializer(new SharedImage(new Dot(1, 10737901)));
waterEmitter.addInitializer(new ColorInit(10737901, 4294967295));
waterEmitter.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 100, 0)));
waterEmitter.addInitializer(new Lifetime(0.3, 0.3));
waterEmitter.addAction(new Age(Quadratic.easeIn));
waterEmitter.addAction(new Move());
waterEmitter.addAction(new Fade());
waterRenderer = new BitmapRenderer(new Rectangle(0, 0, 570, 430));
waterRenderer.addFilter(new BlurFilter(2, 2, 1));
waterRenderer.addFilter(new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0.95, 0]));
waterRenderer.addEmitter(waterEmitter);
_stageInstance.addChild(waterRenderer);
}
public function addProduct(production:String, posx:Number, posy:Number):void{
var product:Production = new Production(production, posx, (posy - (Math.random() * 30)), _stageInstance);
}
private function arrange(event:TimerEvent=null):void{
if (event != null){
event.stopPropagation();
};
_sortedItems = new Array();
var j:int;
while (j < _stageInstance.numChildren) {
_sortedItems[j] = _stageInstance.getChildAt(j);
j++;
};
_sortedItems.sortOn("y", Array.NUMERIC);
var i:int = _stageInstance.numChildren;
while (i--) {
if (_stageInstance.getChildAt(i) != _sortedItems[i]){
_stageInstance.setChildIndex(_sortedItems[i], i);
};
};
}
public function addGrass(event:MouseEvent=null):void{
var grass:Grass;
if (WaterTooltip.firstShow){
WaterTooltip.instance.hide();
};
if (Well.instance.getWater()){
waterEmitter.x = Math.ceil(_stageInstance.mouseX);
waterEmitter.y = Math.ceil((_stageInstance.mouseY - 15));
waterEmitter.start();
grass = new Grass(Math.ceil(_stageInstance.mouseX), Math.ceil(_stageInstance.mouseY), _stageInstance);
};
}
public function addFlyProduct(production:String, count:Number):void{
var product:Production;
var i:int;
while (i < count) {
product = new Production(production, MathUtils.rand(150, 400), MathUtils.rand(150, 300), _stageInstance, true);
i++;
};
}
public function addPet(type:String, delay:Number=0):void{
var _local5:Panda;
var _local6:BrownBear;
var _local7:Chicken;
var _local8:Goat;
var newX:Number = MathUtils.rand(150, 400);
var newY:Number = MathUtils.rand(150, 300);
switch (type){
case "PANDA":
_local5 = new Panda();
_local5.show(newX, newY, 1, _stageInstance);
break;
case "BROWN":
_local6 = new BrownBear();
_local6.show(newX, newY, 1, _stageInstance);
break;
case "CHICKEN":
_local7 = new Chicken();
_local7.show(newX, newY, delay, _stageInstance);
break;
case "GOAT":
_local8 = new Goat();
_local8.show(newX, newY, delay, _stageInstance);
break;
};
}
}
}//package pets
Section 118
//cat0Icon_mc_6 (petsShop_mc_fla.cat0Icon_mc_6)
package petsShop_mc_fla {
import flash.display.*;
public dynamic class cat0Icon_mc_6 extends MovieClip {
public function cat0Icon_mc_6(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package petsShop_mc_fla
Section 119
//chickenIcon_mc_8 (petsShop_mc_fla.chickenIcon_mc_8)
package petsShop_mc_fla {
import flash.events.*;
import flash.display.*;
public dynamic class chickenIcon_mc_8 extends MovieClip {
public var active:Boolean;
public function chickenIcon_mc_8(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent=null):void{
if (active){
gotoAndStop("active");
};
}
function frame1(){
stop();
active = false;
addEventListener(MouseEvent.MOUSE_OVER, over, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
stop();
}
public function down(_arg1:MouseEvent=null):void{
if (active){
gotoAndStop("press");
};
}
public function over(_arg1:MouseEvent=null):void{
if (active){
gotoAndStop("over");
};
}
}
}//package petsShop_mc_fla
Section 120
//cowIcon_mc_2 (petsShop_mc_fla.cowIcon_mc_2)
package petsShop_mc_fla {
import flash.display.*;
public dynamic class cowIcon_mc_2 extends MovieClip {
public function cowIcon_mc_2(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.mouseEnabled = false;
this.mouseChildren = false;
}
}
}//package petsShop_mc_fla
Section 121
//dog0Icon_mc_5 (petsShop_mc_fla.dog0Icon_mc_5)
package petsShop_mc_fla {
import flash.display.*;
public dynamic class dog0Icon_mc_5 extends MovieClip {
public function dog0Icon_mc_5(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package petsShop_mc_fla
Section 122
//dogsIcon_mc_4 (petsShop_mc_fla.dogsIcon_mc_4)
package petsShop_mc_fla {
import flash.display.*;
public dynamic class dogsIcon_mc_4 extends MovieClip {
public var dog0:MovieClip;
}
}//package petsShop_mc_fla
Section 123
//ostrichIcon_mc_3 (petsShop_mc_fla.ostrichIcon_mc_3)
package petsShop_mc_fla {
import flash.display.*;
public dynamic class ostrichIcon_mc_3 extends MovieClip {
public function ostrichIcon_mc_3(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package petsShop_mc_fla
Section 124
//pigIcon_mc_7 (petsShop_mc_fla.pigIcon_mc_7)
package petsShop_mc_fla {
import flash.events.*;
import flash.display.*;
public dynamic class pigIcon_mc_7 extends MovieClip {
public var active:Boolean;
public function pigIcon_mc_7(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent=null):void{
if (active){
gotoAndStop("active");
};
}
function frame1(){
stop();
active = false;
addEventListener(MouseEvent.MOUSE_OVER, over, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
}
public function down(_arg1:MouseEvent=null):void{
if (active){
gotoAndStop("press");
};
}
public function over(_arg1:MouseEvent=null):void{
if (active){
gotoAndStop("over");
};
}
}
}//package petsShop_mc_fla
Section 125
//_line__69 (preloader_fla._line__69)
package preloader_fla {
import flash.display.*;
public dynamic class _line__69 extends MovieClip {
public var _mask:MovieClip;
}
}//package preloader_fla
Section 126
//_line_3 (preloader_fla._line_3)
package preloader_fla {
import flash.display.*;
public dynamic class _line_3 extends MovieClip {
public function _line_3(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 127
//_progress_2 (preloader_fla._progress_2)
package preloader_fla {
import flash.display.*;
public dynamic class _progress_2 extends MovieClip {
public var line:MovieClip;
}
}//package preloader_fla
Section 128
//aim_btn_8 (preloader_fla.aim_btn_8)
package preloader_fla {
import flash.events.*;
import flash.display.*;
public dynamic class aim_btn_8 extends MovieClip {
public function aim_btn_8(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent):void{
this.gotoAndStop(1);
}
function frame1(){
stop();
this.addEventListener(MouseEvent.MOUSE_OVER, over, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
}
public function down(_arg1:MouseEvent):void{
this.gotoAndStop(3);
}
public function over(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
}
}//package preloader_fla
Section 129
//alawar_4 (preloader_fla.alawar_4)
package preloader_fla {
import flash.display.*;
public dynamic class alawar_4 extends MovieClip {
public function alawar_4(){
addFrameScript(0, frame1, 3, frame4);
}
function frame1(){
stop();
}
function frame4(){
stop();
}
}
}//package preloader_fla
Section 130
//bg_16 (preloader_fla.bg_16)
package preloader_fla {
import flash.display.*;
public dynamic class bg_16 extends MovieClip {
public function bg_16(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 131
//big_btn_54 (preloader_fla.big_btn_54)
package preloader_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class big_btn_54 extends MovieClip {
public var caption:TextField;
public function big_btn_54(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent){
this.gotoAndStop(1);
}
function frame1(){
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
addEventListener(MouseEvent.MOUSE_DOWN, down);
stop();
}
public function down(_arg1:MouseEvent){
this.gotoAndStop(3);
}
public function over(_arg1:MouseEvent){
this.gotoAndStop(2);
}
}
}//package preloader_fla
Section 132
//body_52 (preloader_fla.body_52)
package preloader_fla {
import flash.display.*;
public dynamic class body_52 extends MovieClip {
public function body_52(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 133
//bodyGrass_83 (preloader_fla.bodyGrass_83)
package preloader_fla {
import flash.display.*;
public dynamic class bodyGrass_83 extends MovieClip {
public function bodyGrass_83(){
addFrameScript(16, frame17);
}
function frame17(){
stop();
}
}
}//package preloader_fla
Section 134
//boxlineExpor_77 (preloader_fla.boxlineExpor_77)
package preloader_fla {
import flash.display.*;
public dynamic class boxlineExpor_77 extends MovieClip {
public function boxlineExpor_77(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 135
//buyBtn_88 (preloader_fla.buyBtn_88)
package preloader_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class buyBtn_88 extends MovieClip {
public var caption:TextField;
public function buyBtn_88(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent){
this.gotoAndStop(1);
}
function frame1(){
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
addEventListener(MouseEvent.MOUSE_DOWN, down);
}
public function down(_arg1:MouseEvent){
this.gotoAndStop(3);
}
public function over(_arg1:MouseEvent){
this.gotoAndStop(2);
}
}
}//package preloader_fla
Section 136
//buyButton_17 (preloader_fla.buyButton_17)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class buyButton_17 extends MovieClip {
public var price:TextField;
public function buyButton_17(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 137
//buyButton_85 (preloader_fla.buyButton_85)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class buyButton_85 extends MovieClip {
public var price:TextField;
}
}//package preloader_fla
Section 138
//cage_21 (preloader_fla.cage_21)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class cage_21 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function cage_21(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 139
//car0_67 (preloader_fla.car0_67)
package preloader_fla {
import flash.display.*;
public dynamic class car0_67 extends MovieClip {
public function car0_67(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 140
//carOnTheRoad_64 (preloader_fla.carOnTheRoad_64)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class carOnTheRoad_64 extends MovieClip {
public var body:MovieClip;
public var money:TextField;
}
}//package preloader_fla
Section 141
//cars_65 (preloader_fla.cars_65)
package preloader_fla {
import flash.display.*;
public dynamic class cars_65 extends MovieClip {
public function cars_65(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 142
//carShop_19 (preloader_fla.carShop_19)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class carShop_19 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function carShop_19(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 143
//Cheese__25 (preloader_fla.Cheese__25)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Cheese__25 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function Cheese__25(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 144
//cheese_body_34 (preloader_fla.cheese_body_34)
package preloader_fla {
import flash.display.*;
public dynamic class cheese_body_34 extends MovieClip {
public function cheese_body_34(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 145
//Curds__24 (preloader_fla.Curds__24)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Curds__24 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function Curds__24(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 146
//curds_body_36 (preloader_fla.curds_body_36)
package preloader_fla {
import flash.display.*;
public dynamic class curds_body_36 extends MovieClip {
public function curds_body_36(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 147
//depot_18 (preloader_fla.depot_18)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class depot_18 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function depot_18(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 148
//dough_body_38 (preloader_fla.dough_body_38)
package preloader_fla {
import flash.display.*;
public dynamic class dough_body_38 extends MovieClip {
public function dough_body_38(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 149
//Dought_23 (preloader_fla.Dought_23)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Dought_23 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function Dought_23(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 150
//dried_22 (preloader_fla.dried_22)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class dried_22 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function dried_22(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 151
//DriedEggs_body_40 (preloader_fla.DriedEggs_body_40)
package preloader_fla {
import flash.display.*;
public dynamic class DriedEggs_body_40 extends MovieClip {
public function DriedEggs_body_40(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 152
//FrenchPizza_body_42 (preloader_fla.FrenchPizza_body_42)
package preloader_fla {
import flash.display.*;
public dynamic class FrenchPizza_body_42 extends MovieClip {
public function FrenchPizza_body_42(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 153
//goalItem_55 (preloader_fla.goalItem_55)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class goalItem_55 extends MovieClip {
public var count:TextField;
public var body:MovieClip;
}
}//package preloader_fla
Section 154
//gold_104 (preloader_fla.gold_104)
package preloader_fla {
import flash.display.*;
public dynamic class gold_104 extends MovieClip {
public function gold_104(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 155
//helpBlockToolTip_95 (preloader_fla.helpBlockToolTip_95)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class helpBlockToolTip_95 extends MovieClip {
public var okBtn:MovieClip;
public var caption:TextField;
}
}//package preloader_fla
Section 156
//helpPizza_114 (preloader_fla.helpPizza_114)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class helpPizza_114 extends MovieClip {
public var outCount:TextField;
public var caption:TextField;
public var inCount:TextField;
}
}//package preloader_fla
Section 157
//items_101 (preloader_fla.items_101)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class items_101 extends MovieClip {
public var arrow:MovieClip;
public var outCount:TextField;
public var caption:TextField;
public var inCount:TextField;
public function items_101(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
caption.mouseEnabled = false;
}
}
}//package preloader_fla
Section 158
//kubok_59 (preloader_fla.kubok_59)
package preloader_fla {
import flash.display.*;
public dynamic class kubok_59 extends MovieClip {
public function kubok_59(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 159
//logo_mc_5 (preloader_fla.logo_mc_5)
package preloader_fla {
import flash.display.*;
public dynamic class logo_mc_5 extends MovieClip {
public function logo_mc_5(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 160
//middleButton_10 (preloader_fla.middleButton_10)
package preloader_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class middleButton_10 extends MovieClip {
public var caption:TextField;
public function middleButton_10(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent){
this.gotoAndStop(1);
}
function frame1(){
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
addEventListener(MouseEvent.MOUSE_DOWN, down);
stop();
}
public function down(_arg1:MouseEvent){
this.gotoAndStop(3);
}
public function over(_arg1:MouseEvent){
this.gotoAndStop(2);
}
}
}//package preloader_fla
Section 161
//money_49 (preloader_fla.money_49)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class money_49 extends MovieClip {
public var caption:TextField;
}
}//package preloader_fla
Section 162
//new_105 (preloader_fla.new_105)
package preloader_fla {
import flash.display.*;
public dynamic class new_105 extends MovieClip {
public function new_105(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 163
//none_106 (preloader_fla.none_106)
package preloader_fla {
import flash.display.*;
public dynamic class none_106 extends MovieClip {
public function none_106(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 164
//normal_107 (preloader_fla.normal_107)
package preloader_fla {
import flash.display.*;
public dynamic class normal_107 extends MovieClip {
public function normal_107(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 165
//okButton_96 (preloader_fla.okButton_96)
package preloader_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class okButton_96 extends MovieClip {
public var caption:TextField;
public function okButton_96(){
addFrameScript(0, frame1);
}
public function out(_arg1:MouseEvent){
this.gotoAndStop(1);
}
function frame1(){
addEventListener(MouseEvent.MOUSE_OVER, over);
addEventListener(MouseEvent.MOUSE_OUT, out);
stop();
}
public function over(_arg1:MouseEvent){
this.gotoAndStop(2);
}
}
}//package preloader_fla
Section 166
//pig_81 (preloader_fla.pig_81)
package preloader_fla {
import flash.display.*;
public dynamic class pig_81 extends MovieClip {
public function pig_81(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 167
//Pizza_FR_26 (preloader_fla.Pizza_FR_26)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Pizza_FR_26 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function Pizza_FR_26(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 168
//plane_20 (preloader_fla.plane_20)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class plane_20 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function plane_20(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 169
//plane_76 (preloader_fla.plane_76)
package preloader_fla {
import flash.display.*;
public dynamic class plane_76 extends MovieClip {
public function plane_76(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 170
//plane_body_31 (preloader_fla.plane_body_31)
package preloader_fla {
import flash.display.*;
public dynamic class plane_body_31 extends MovieClip {
public function plane_body_31(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 171
//planeInTheSky_62 (preloader_fla.planeInTheSky_62)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class planeInTheSky_62 extends MovieClip {
public var body:MovieClip;
public var money:TextField;
}
}//package preloader_fla
Section 172
//planes_63 (preloader_fla.planes_63)
package preloader_fla {
import flash.display.*;
public dynamic class planes_63 extends MovieClip {
public function planes_63(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 173
//playerPanel_91 (preloader_fla.playerPanel_91)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class playerPanel_91 extends MovieClip {
public var playerName:TextField;
public var welcome:TextField;
public var editBtn:MovieClip;
}
}//package preloader_fla
Section 174
//productionbody_20_13 (preloader_fla.productionbody_20_13)
package preloader_fla {
import flash.display.*;
public dynamic class productionbody_20_13 extends MovieClip {
public function productionbody_20_13(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 175
//productionbody_28 (preloader_fla.productionbody_28)
package preloader_fla {
import flash.display.*;
public dynamic class productionbody_28 extends MovieClip {
public function productionbody_28(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 176
//purposesItem_11 (preloader_fla.purposesItem_11)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class purposesItem_11 extends MovieClip {
public var actual:TextField;
public var tick:MovieClip;
public var required:TextField;
public var body:MovieClip;
}
}//package preloader_fla
Section 177
//purposesItem_57 (preloader_fla.purposesItem_57)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class purposesItem_57 extends MovieClip {
public var type_txt:TextField;
public var count_txt:TextField;
public var body:MovieClip;
}
}//package preloader_fla
Section 178
//purposesRibbon_9 (preloader_fla.purposesRibbon_9)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class purposesRibbon_9 extends MovieClip {
public var time_txt:TextField;
public function purposesRibbon_9(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 179
//silver_108 (preloader_fla.silver_108)
package preloader_fla {
import flash.display.*;
public dynamic class silver_108 extends MovieClip {
public function silver_108(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 180
//sklads_44 (preloader_fla.sklads_44)
package preloader_fla {
import flash.display.*;
public dynamic class sklads_44 extends MovieClip {
public function sklads_44(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 181
//smalButton_72 (preloader_fla.smalButton_72)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class smalButton_72 extends MovieClip {
public var caption:TextField;
public function smalButton_72(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 182
//smalButton_74 (preloader_fla.smalButton_74)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class smalButton_74 extends MovieClip {
public var caption:TextField;
public function smalButton_74(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 183
//soundControl_90 (preloader_fla.soundControl_90)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class soundControl_90 extends MovieClip {
public var caption:TextField;
public function soundControl_90(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 184
//waterline_mc_47 (preloader_fla.waterline_mc_47)
package preloader_fla {
import flash.display.*;
public dynamic class waterline_mc_47 extends MovieClip {
public var progressMask:MovieClip;
}
}//package preloader_fla
Section 185
//wellcopy_46 (preloader_fla.wellcopy_46)
package preloader_fla {
import flash.display.*;
public dynamic class wellcopy_46 extends MovieClip {
public function wellcopy_46(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 186
//wellShop_15 (preloader_fla.wellShop_15)
package preloader_fla {
import flash.display.*;
import flash.text.*;
public dynamic class wellShop_15 extends MovieClip {
public var bg:MovieClip;
public var title:TextField;
public var tick:MovieClip;
public var buyBtn:MovieClip;
public function wellShop_15(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package preloader_fla
Section 187
//DepotProduct (production.DepotProduct)
package production {
public class DepotProduct extends DepotProductTemplate {
private var types:Array;
public function DepotProduct():void{
types = new Array("EGG", "DRIED_EGGS", "FLOUR", "DOUGH", "CURDS", "BUTTER", "GHERKIN", "MILK_GOAT", "CHEESE", "CHEESE_FERMENT", "PIZZA_FR", "PANDA", "BROWN", "CHICKEN", "GOAT");
super();
this.visible = false;
}
public function hide():void{
this.visible = false;
}
public function show(productType:String):void{
this.body.gotoAndStop(types[productType]);
this.visible = true;
}
}
}//package production
Section 188
//DepotProductTemplate (production.DepotProductTemplate)
package production {
import flash.display.*;
public dynamic class DepotProductTemplate extends MovieClip {
public var body:MovieClip;
}
}//package production
Section 189
//MovingProduction (production.MovingProduction)
package production {
import flash.events.*;
import flash.display.*;
import game.*;
import caurina.transitions.*;
public class MovingProduction extends PruductionTemplate {
private var gameController:GameController;
public static var container:DisplayObjectContainer;
public function MovingProduction(type:String, posx:Number, posy:Number, delay:Number, second:Boolean=false){
var type = type;
var posx = posx;
var posy = posy;
var delay = delay;
var second = second;
super();
this.body.gotoAndStop(type);
gameController = GameController.instance;
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
container.addChild(this);
this.parashute.visible = false;
this.x = 277;
this.y = 361;
this.alpha = 0;
this.body.scaleX = 1;
this.body.scaleY = 1;
if (!second){
Tweener.addTween(this, {x:posx, delay:delay, time:0.7, transition:"linear", onStart:function ():void{
this.alpha = 1;
}});
Tweener.addTween(this, {y:posy, delay:delay, time:0.7, transition:"easeInOutBack", onComplete:destroy});
} else {
Tweener.addTween(this, {x:posx, delay:delay, time:0.7, transition:"linear", onStart:function ():void{
this.alpha = 1;
}});
Tweener.addTween(this, {y:posy, delay:delay, time:0.7, transition:"easeOutInBack", onComplete:destroy});
};
}
public function destroy(event:Event=null):void{
Tweener.removeTweens(this);
container.removeChild(this);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
}
}
}//package production
Section 190
//Production (production.Production)
package production {
import flash.events.*;
import flash.display.*;
import flash.filters.*;
import flash.utils.*;
import houses.*;
import ui.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Production extends PruductionTemplate {
private var size:uint;// = 80
private var _lifeTime:Number;// = 10
private var offset:uint;// = 50
private var _deathTimer:Timer;
private var _type:String;
private var bgColor:uint;// = 0xFFFFFF
private var gameController:GameController;
private var _stageInstance:DisplayObjectContainer;
public static var firstShow:Boolean = true;
public function Production(type:String, posx:Number, posy:Number, stageInstance:DisplayObjectContainer=null, fly:Boolean=false){
var type = type;
var posx = posx;
var posy = posy;
var stageInstance = stageInstance;
var fly = fly;
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
_type = type;
this.parashute.visible = false;
_stageInstance = stageInstance;
this.body.scaleX = 1;
this.body.scaleY = 1;
this.x = posx;
if (!fly){
this.y = posy;
} else {
this.y = -50;
this.parashute.visible = true;
Tweener.addTween(this, {y:posy, time:4, delay:(Math.random() * 1), transition:"linear", onComplete:function ():void{
this.parashute.visible = false;
}});
};
this.body.gotoAndStop(type);
addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_stageInstance.addChild(this);
addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
_lifeTime = (10 * 10);
_deathTimer = new Timer(200);
_deathTimer.addEventListener(TimerEvent.TIMER, live, false, 0, true);
_deathTimer.start();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, (this.y - 10), Config.currentLanguage.tooltips.collect);
};
}
private function remove():void{
_stageInstance.removeChild(this);
Tweener.removeTweens(this);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
}
private function blinking():void{
Tweener.removeTweens(this, alpha);
var blink:Number = 1;
if (this.alpha < 1){
blink = 1;
} else {
blink = 0.3;
};
Tweener.addTween(this, {alpha:blink, time:0.2});
}
public function removeShadow(event:MouseEvent=null):void{
var filter:BitmapFilter = getBitmapFilter(0);
var myFilters:Array = new Array();
myFilters.push(filter);
filters = myFilters;
}
private function onClick(event:MouseEvent=null):void{
event.stopPropagation();
this.parashute.visible = false;
if (Depot.instance.addProduct(_type)){
this._deathTimer.stop();
_deathTimer.removeEventListener(TimerEvent.TIMER, live, false);
SoundManager.play("product_take", 1);
Tweener.addTween(this, {y:378, time:0.3, onComplete:destroy, transition:"easeOutCirc"});
Tweener.addTween(this, {x:265, time:0.3, transition:"linear"});
} else {
SoundManager.play("fool_action", 1);
};
}
private function live(event:TimerEvent):void{
event.stopPropagation();
_lifeTime--;
if (_lifeTime < 30){
blinking();
};
if (!_lifeTime){
_deathTimer.stop();
Tweener.removeTweens(this, alpha);
_deathTimer.removeEventListener(TimerEvent.TIMER, live, false);
remove();
};
}
public function resume(event:Event=null):void{
_deathTimer.start();
Tweener.resumeTweens(this);
}
public function dropShadow(event:MouseEvent=null):void{
var filter:BitmapFilter = getBitmapFilter(4);
var myFilters:Array = new Array();
myFilters.push(filter);
filters = myFilters;
}
public function pause(event:Event=null):void{
_deathTimer.stop();
Tweener.pauseTweens(this);
}
public function destroy(event:Event=null):void{
_stageInstance.removeChild(this);
Tweener.removeTweens(this);
_deathTimer.stop();
_deathTimer.removeEventListener(TimerEvent.TIMER, live, false);
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
}
private function getBitmapFilter(str:Number):BitmapFilter{
var color:Number = 0xFFFFFF;
var angle:Number = 0;
var alpha:Number = 0.8;
var blurX:Number = 10;
var blurY:Number = 10;
var distance:Number = 0;
var strength:Number = str;
var inner:Boolean;
var knockout:Boolean;
var quality:Number = BitmapFilterQuality.HIGH;
return (new DropShadowFilter(distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout));
}
}
}//package production
Section 191
//PruductionTemplate (production.PruductionTemplate)
package production {
import flash.display.*;
public dynamic class PruductionTemplate extends MovieClip {
public var parashute:MovieClip;
public var body:MovieClip;
}
}//package production
Section 192
//ViewProduction (production.ViewProduction)
package production {
public class ViewProduction extends PruductionTemplate {
public function ViewProduction(type:String){
super();
this.parashute.visible = false;
this.body.gotoAndStop(type);
}
}
}//package production
Section 193
//DefaultStartSound (ru.rambler.games.assets.DefaultStartSound)
package ru.rambler.games.assets {
import flash.media.*;
public dynamic class DefaultStartSound extends Sound {
}
}//package ru.rambler.games.assets
Section 194
//ClientObjectEmulator (ru.rambler.games.debug.ClientObjectEmulator)
package ru.rambler.games.debug {
import ru.rambler.games.interfaces.net.*;
public class ClientObjectEmulator implements IClientObject {
private var _place:int;
private var _user:UserObjectEmulator;
private var _isAI:Boolean;
private var _id:Number;
public function ClientObjectEmulator(nickName:String="", placeValue:int=0, ai:Boolean=false){
super();
_id = new Date().getTime();
_user = new UserObjectEmulator(nickName, ai);
_place = placeValue;
_isAI = ai;
}
public function get place():int{
return (_place);
}
public function isAI():Boolean{
return (_isAI);
}
public function isGuest():Boolean{
return (false);
}
public function isApproved():Boolean{
return (true);
}
public function isObserver():Boolean{
return (false);
}
public function isOwner():Boolean{
return (true);
}
public function get userObject():IUserObject{
return ((_user as IUserObject));
}
public function get ID():String{
return (("client" + _id));
}
}
}//package ru.rambler.games.debug
Section 195
//SingleplayerConnectionEmulator (ru.rambler.games.debug.SingleplayerConnectionEmulator)
package ru.rambler.games.debug {
import flash.events.*;
import ru.rambler.games.events.*;
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.interfaces.ui.*;
import ru.rambler.games.net.commands.server.*;
public class SingleplayerConnectionEmulator extends EventDispatcher implements ISingleplayerConnection {
private var _client:ClientObjectEmulator;
public function SingleplayerConnectionEmulator(){
super();
_client = new ClientObjectEmulator();
}
public function sendResult(result:int, isTemp:Boolean):void{
}
public function set trainingMode(value:Boolean):void{
}
public function get data():Object{
return (null);
}
public function sendCommand(command:ICommand):void{
}
public function get gameObject():IGameObject{
return (null);
}
public function set data(value:Object):void{
}
public function disconnect():void{
}
public function get trainingMode():Boolean{
return (true);
}
public function getTop(count:int=-1):void{
var xml:XML = <command name="top">
<user id="210831642" nickname="player0" guest="0" login="uintrou2007" rating="1"/>
<user id="45424195" nickname="player1" guest="0" login="85.kitty" rating="2"/>
<user id="59795137" nickname="player2" guest="0" login="school449" rating="3"/>
<user id="221349865" nickname="player3" guest="0" login="asp7878" rating="4"/>
<user id="1980326" nickname="player4" guest="0" login="mulan2" rating="5"/>
<user id="2216031" nickname="player5" guest="0" login="kitsia1997" rating="6"/>
</command>
;
dispatchEvent(new ConnectionEvent(ConnectionEvent.TOP, new TopReceived(xml)));
}
public function connect(address:String="", port:int=-1):void{
dispatchEvent(new ConnectionEvent(ConnectionEvent.CONNECT));
}
public function set uiManager(value:IUIManager):void{
}
public function get clientObject():IClientObject{
return (_client);
}
public function ready():void{
}
public function refreshPlayerInfo(userID:String="", mode:String=""):void{
var xml:XML = <command name="user">
<user id="0" nickname="player" guest="0" login="player" rating="1"/>
</command>
;
dispatchEvent(new ConnectionEvent(ConnectionEvent.PLAYER_UPDATED, new UpdatePlayer(xml)));
}
}
}//package ru.rambler.games.debug
Section 196
//SingleplayerCoreEmulator (ru.rambler.games.debug.SingleplayerCoreEmulator)
package ru.rambler.games.debug {
import ru.rambler.games.interfaces.core.*;
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.interfaces.game.*;
import ru.rambler.games.interfaces.ui.*;
import flash.display.*;
import ru.rambler.games.ui.*;
public class SingleplayerCoreEmulator extends MovieClip implements ICore {
protected var _uiManager:IUIManager;
protected var _connection:IConnection;
public function SingleplayerCoreEmulator(container:DisplayObjectContainer){
super();
_uiManager = SingleplayerUIManager.instance;
_uiManager.container = container;
_connection = new SingleplayerConnectionEmulator();
}
public function get uiManager():IUIManager{
return (_uiManager);
}
public function get controller():IGameController{
return (null);
}
public function get connection():IConnection{
return (_connection);
}
public function get self():ICore{
return (this);
}
}
}//package ru.rambler.games.debug
Section 197
//UserObjectEmulator (ru.rambler.games.debug.UserObjectEmulator)
package ru.rambler.games.debug {
import ru.rambler.games.interfaces.net.*;
public class UserObjectEmulator implements IUserObject {
private var _avatar:String;
private var _id:String;
public function UserObjectEmulator(idValue:String="", isAI:Boolean=false){
super();
_id = ((idValue)=="") ? new Date().getTime().toString() : idValue;
_avatar = (isAI) ? "computer" : "player";
}
public function get ID():String{
return (_id);
}
public function get settings():Object{
return (null);
}
public function get rating():int{
return (0);
}
public function get maxRating():int{
return (0);
}
public function get login():String{
return ("test");
}
public function get nickname():String{
return (_id);
}
public function get avatarURL():String{
return (_avatar);
}
}
}//package ru.rambler.games.debug
Section 198
//ConnectionEvent (ru.rambler.games.events.ConnectionEvent)
package ru.rambler.games.events {
import flash.events.*;
import ru.rambler.games.interfaces.net.*;
public class ConnectionEvent extends Event implements IConnectionEvent {
private var _command:ICommand;
public static const CHAT_MESSAGE_RECEIVED:String = "CHAT_MESSAGE_RECEIVED";
public static const CHECK_WORD:String = "CHECK_WORD";
public static const RANDOM_WORD:String = "RANDOM_WORD";
public static const CONNECT:String = "CONNECT";
public static const RANDOM_QA:String = "RANDOM_QA";
public static const START_GAME:String = "START_GAME";
public static const DRAW_REQUEST_RECEIVED:String = "DRAW_REQUEST_RECEIVED";
public static const ACTION_RECEIVED:String = "ACTION_RECEIVED";
public static const DISCONNECT_FROM_TABLE:String = "DISCONNECT_FROM_TABLE";
public static const DATA_RECEIVED:String = "DATA_RECEIVED";
public static const TABLE_READY:String = "TABLE_READY";
public static const DATA_ENQUEUED:String = "DATA_ENQUEUED";
public static const DISCONNECT:String = "DISCONNECT";
public static const PLAYER_LEFT:String = "PLAYER_LEFT";
public static const TABLE_NOT_READY:String = "TABLE_NOT_READY";
public static const PLAYER_JOINED:String = "PLAYER_JOINED";
public static const DRAW_REQUEST_DECLINED:String = "DRAW_REQUEST_DECLINED";
public static const COMMAND:String = "COMMAND";
public static const CHAT_STATE_CHANGED:String = "CHAT_STATE_CHANGED";
public static const ERROR:String = "public static const ERROR";
public static const TOP:String = "TOP";
public static const END_GAME:String = "END_GAME";
public static const CLOSE_GAME:String = "CLOSE_GAME";
public static const PLAYER_UPDATED:String = "PLAYER_UPDATED";
public static const CONNECT_TO_TABLE:String = "CONNECT_TO_TABLE";
public function ConnectionEvent(type:String, eventCommand:ICommand=null, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
_command = eventCommand;
}
public function get command():ICommand{
return (_command);
}
override public function clone():Event{
return (new ConnectionEvent(this.type, this.command, this.bubbles, this.cancelable));
}
}
}//package ru.rambler.games.events
Section 199
//GameEvent (ru.rambler.games.events.GameEvent)
package ru.rambler.games.events {
import flash.events.*;
public class GameEvent extends Event {
private var _action:Object;
public static const MOVE_RENDERED:String = "MOVE_RENDERED";
public static const ACTION_RECEIVED:String = "ACTION_RECEIVED";
public static const MOVE_TIME:String = "MOVE_TIME";
public static const ACTION_APPLIED:String = "ACTION_APPLIED";
public static const PREPARED_FOR_TURN:String = "PREPARED_FOR_TURN";
public static const PREPARED_FOR_GAME:String = "PREPARED_FOR_GAME";
public static const STATE_LOADED:String = "STATE_LOADED";
public function GameEvent(type:String, actionObj:Object=null, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
_action = actionObj;
}
override public function clone():Event{
return (new GameEvent(type, _action, bubbles, cancelable));
}
public function get action():Object{
return (_action);
}
}
}//package ru.rambler.games.events
Section 200
//ICore (ru.rambler.games.interfaces.core.ICore)
package ru.rambler.games.interfaces.core {
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.interfaces.game.*;
import ru.rambler.games.interfaces.ui.*;
public interface ICore {
function get uiManager():IUIManager;
function get self():ICore;
function get controller():IGameController;
function get connection():IConnection;
}
}//package ru.rambler.games.interfaces.core
Section 201
//IVersion (ru.rambler.games.interfaces.core.IVersion)
package ru.rambler.games.interfaces.core {
public interface IVersion {
function get version():String;
}
}//package ru.rambler.games.interfaces.core
Section 202
//IGame (ru.rambler.games.interfaces.game.IGame)
package ru.rambler.games.interfaces.game {
import ru.rambler.games.interfaces.core.*;
public interface IGame {
function init():void;
function set loader(:ICore):void;
}
}//package ru.rambler.games.interfaces.game
Section 203
//IGameController (ru.rambler.games.interfaces.game.IGameController)
package ru.rambler.games.interfaces.game {
import flash.events.*;
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.interfaces.ui.*;
public interface IGameController extends IEventDispatcher {
function set state(:IGameState):void;
function set game(:IMultiplayerGame):void;
function get activePlayer():IClientObject;
function get turnTime():int;
function loadState(:String):void;
function pauseTimer():void;
function get state():IGameState;
function set uiManager(:IUIManager):void;
function saveState(ru.rambler.games.interfaces.ui:IGameState):String;
function resumeTimer():void;
function get isOwnTurn():Boolean;
function set connection(:IMultiplayerConnection):void;
}
}//package ru.rambler.games.interfaces.game
Section 204
//IGameState (ru.rambler.games.interfaces.game.IGameState)
package ru.rambler.games.interfaces.game {
public interface IGameState {
function get activePlayerIdx():int;
function restoreFromObject(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/game;IGameState.as:Object):void;
function toObject():Object;
function set activePlayerIdx(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/game;IGameState.as:int):void;
function clone():IGameState;
}
}//package ru.rambler.games.interfaces.game
Section 205
//IMoveDescription (ru.rambler.games.interfaces.game.IMoveDescription)
package ru.rambler.games.interfaces.game {
public interface IMoveDescription {
function get nextPlayerIdx():int;
function get winners():Array;
function get losers():Array;
function get finishDescription():String;
function get turnResult():int;
}
}//package ru.rambler.games.interfaces.game
Section 206
//IMultiplayerGame (ru.rambler.games.interfaces.game.IMultiplayerGame)
package ru.rambler.games.interfaces.game {
import flash.events.*;
public interface IMultiplayerGame extends IGame, IEventDispatcher {
function prepareForGame():void;
function waitForPlayer():void;
function resumeGame():void;
function pauseGame():void;
function applyAction(_arg1:Object, _arg2:IGameState):void;
function waitForAI():void;
function endGame():void;
function showMove(:IMoveDescription):void;
function prepareForTurn():void;
}
}//package ru.rambler.games.interfaces.game
Section 207
//IClientObject (ru.rambler.games.interfaces.net.IClientObject)
package ru.rambler.games.interfaces.net {
public interface IClientObject {
function isObserver():Boolean;
function isApproved():Boolean;
function isAI():Boolean;
function get place():int;
function isOwner():Boolean;
function get userObject():IUserObject;
function get ID():String;
function isGuest():Boolean;
}
}//package ru.rambler.games.interfaces.net
Section 208
//ICommand (ru.rambler.games.interfaces.net.ICommand)
package ru.rambler.games.interfaces.net {
public interface ICommand {
function addConst(_arg1:String, _arg2:Object):void;
function set commandName(ru.rambler.games.interfaces.net:ICommand/ru.rambler.games.interfaces.net:ICommand:params/get:String):void;
function addXML(ru.rambler.games.interfaces.net:ICommand/ru.rambler.games.interfaces.net:ICommand:params/get:XML):void;
function get commandName():String;
function toXML():XML;
function addParam(_arg1:String, _arg2:Object):void;
function get params():Object;
function decodeFromXML(ru.rambler.games.interfaces.net:ICommand/ru.rambler.games.interfaces.net:ICommand:params/get:XML):void;
}
}//package ru.rambler.games.interfaces.net
Section 209
//IConnection (ru.rambler.games.interfaces.net.IConnection)
package ru.rambler.games.interfaces.net {
import flash.events.*;
import ru.rambler.games.interfaces.ui.*;
public interface IConnection extends IEventDispatcher {
function get clientObject():IClientObject;
function sendCommand(:ICommand):void;
function refreshPlayerInfo(_arg1:String="", _arg2:String=""):void;
function get data():Object;
function get gameObject():IGameObject;
function set uiManager(:IUIManager):void;
function set data(:Object):void;
function connect(_arg1:String="", _arg2:int=-1):void;
function set trainingMode(:Boolean):void;
function disconnect():void;
function get trainingMode():Boolean;
}
}//package ru.rambler.games.interfaces.net
Section 210
//IConnectionEvent (ru.rambler.games.interfaces.net.IConnectionEvent)
package ru.rambler.games.interfaces.net {
public interface IConnectionEvent {
function get command():ICommand;
}
}//package ru.rambler.games.interfaces.net
Section 211
//IGameObject (ru.rambler.games.interfaces.net.IGameObject)
package ru.rambler.games.interfaces.net {
public interface IGameObject {
function isRatingable():Boolean;
function get width():int;
function get height():int;
function get maxPlayersCount():int;
function get gameURI():String;
function get systemName():String;
function get ID():int;
function get gameHistoryURL():String;
function get minPlayersCount():int;
}
}//package ru.rambler.games.interfaces.net
Section 212
//IMultiplayerConnection (ru.rambler.games.interfaces.net.IMultiplayerConnection)
package ru.rambler.games.interfaces.net {
public interface IMultiplayerConnection extends IConnection {
function declineDraw():void;
function ready():void;
function sendChatMessage(ru.rambler.games.interfaces.net:String):void;
function endGame(_arg1:String, _arg2:String=""):void;
function sendChatState(ru.rambler.games.interfaces.net:Boolean):void;
function sendData(ru.rambler.games.interfaces.net:Object):void;
function requestDraw():void;
function get tableObject():ITableObject;
function getQueue(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/net;IMultiplayerConnection.as:String):IQueue;
function reconnectToTable():void;
function sendAction(_arg1:Object, _arg2:int):void;
}
}//package ru.rambler.games.interfaces.net
Section 213
//IQueue (ru.rambler.games.interfaces.net.IQueue)
package ru.rambler.games.interfaces.net {
public interface IQueue {
function isEmpty():Boolean;
function dispose():void;
function back();
function enqueue():Boolean;
function getAt(*:int);
function toString():String;
function clear():void;
function dequeue();
function dump():String;
function setAt(_arg1:int, _arg2):void;
function peek();
function toArray():Array;
function contains():Boolean;
}
}//package ru.rambler.games.interfaces.net
Section 214
//ISingleplayerConnection (ru.rambler.games.interfaces.net.ISingleplayerConnection)
package ru.rambler.games.interfaces.net {
public interface ISingleplayerConnection extends IConnection {
function ready():void;
function sendResult(_arg1:int, _arg2:Boolean):void;
function getTop(:int=-1):void;
}
}//package ru.rambler.games.interfaces.net
Section 215
//ITableObject (ru.rambler.games.interfaces.net.ITableObject)
package ru.rambler.games.interfaces.net {
public interface ITableObject {
function isRatingable():Boolean;
function get createTime():int;
function get serverState():int;
function get startTime():int;
function get players():Array;
function isHidden():Boolean;
function get ownerID():String;
function getPlayer(ru.rambler.games.interfaces.net:ITableObject/ru.rambler.games.interfaces.net:ITableObject:isRatingable:String):IClientObject;
function get approvedCount():int;
function isPrivate():Boolean;
function get ID():String;
function get moveTime():int;
}
}//package ru.rambler.games.interfaces.net
Section 216
//IUserObject (ru.rambler.games.interfaces.net.IUserObject)
package ru.rambler.games.interfaces.net {
public interface IUserObject {
function get maxRating():int;
function get settings():Object;
function get avatarURL():String;
function get login():String;
function get ID():String;
function get rating():int;
function get nickname():String;
}
}//package ru.rambler.games.interfaces.net
Section 217
//IGameFrame (ru.rambler.games.interfaces.ui.IGameFrame)
package ru.rambler.games.interfaces.ui {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
public interface IGameFrame {
function get container():DisplayObjectContainer;
function set container(:DisplayObjectContainer):void;
function get giveupButton():InteractiveObject;
function get musicButton():InteractiveObject;
function setActivePlayer(:int=-1):void;
function set gameTitle(:String):void;
function clear():void;
function init(:int):void;
function set tableID(:String):void;
function get helpButton():InteractiveObject;
function get sendButton():SimpleButton;
function clearPlayerInfo(:int=0):void;
function get customArea():Rectangle;
function get soundButton():InteractiveObject;
function getPlayerInfoContainer(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/ui;IGameFrame.as:int=0):DisplayObjectContainer;
function get topButton():InteractiveObject;
function set gameID(:String):void;
function get chatStateButton():SimpleButton;
function setPlayerInfo(_arg1:String, _arg2:int, _arg3:String, _arg4:int=0):void;
function get messageArea():TextField;
function get inputArea():TextField;
function get logArea():TextField;
function get chatStyle():StyleSheet;
function get drawRequestButton():InteractiveObject;
function set statusText(:String):void;
}
}//package ru.rambler.games.interfaces.ui
Section 218
//IPopupManager (ru.rambler.games.interfaces.ui.IPopupManager)
package ru.rambler.games.interfaces.ui {
import flash.display.*;
public interface IPopupManager {
function registerInfoWindow(:Class):void;
function set windowContainer(:DisplayObjectContainer):void;
function centerWindow(:IWindow):void;
function showCreatedPopup(_arg1:IWindow, _arg2:Boolean=false, _arg3:Boolean=true, _arg4:Function=null, _arg5=null, _arg6:Array=null):IWindow;
function registerOneButtonWindow(:Class):void;
function clear():void;
function registerSelectWindow(:Class):void;
function get oneButtonWindowClass():Class;
function get selectWindowClass():Class;
function showPopup(_arg1:Class, _arg2:String, _arg3:String, _arg4:Boolean=false, _arg5:Boolean=true, _arg6:Function=null, _arg7=null, _arg8:Array=null):IWindow;
function registerInputWindow(:Class):void;
function get infoWindowClass():Class;
function bringToFront(:IWindow):void;
function get inputWindowClass():Class;
}
}//package ru.rambler.games.interfaces.ui
Section 219
//ISoundManager (ru.rambler.games.interfaces.ui.ISoundManager)
package ru.rambler.games.interfaces.ui {
import flash.media.*;
public interface ISoundManager {
function playMusic():void;
function get soundState():Boolean;
function play(_arg1:Class, _arg2:Number=0, _arg3:int=0):SoundChannel;
function registerGameStartSound(:Class):void;
function set soundTransform(:SoundTransform):void;
function set soundState(:Boolean):void;
function get soundTransform():SoundTransform;
function get gameStartSound():Class;
}
}//package ru.rambler.games.interfaces.ui
Section 220
//IUIManager (ru.rambler.games.interfaces.ui.IUIManager)
package ru.rambler.games.interfaces.ui {
import flash.display.*;
public interface IUIManager {
function get popupManager():IPopupManager;
function set popupManager(:IPopupManager):void;
function set cursor(:DisplayObject):void;
function get cursor():DisplayObject;
function set container(:DisplayObjectContainer):void;
function closeGame():void;
function get gameFrame():IGameFrame;
function set soundManager(:ISoundManager):void;
function set gameFrame(:IGameFrame):void;
function get soundManager():ISoundManager;
}
}//package ru.rambler.games.interfaces.ui
Section 221
//IWindow (ru.rambler.games.interfaces.ui.IWindow)
package ru.rambler.games.interfaces.ui {
import flash.events.*;
public interface IWindow extends IEventDispatcher {
function set title(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/ui;IWindow.as:String):void;
function externalAction(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/ui;IWindow.as:String):void;
function get buttonPressed():int;
function close():void;
function set text(/Users/ksan/Documents/work/rg_relaunch/tmp;ru/rambler/games/interfaces/ui;IWindow.as:String):void;
function get text():String;
}
}//package ru.rambler.games.interfaces.ui
Section 222
//TopReceived (ru.rambler.games.net.commands.server.TopReceived)
package ru.rambler.games.net.commands.server {
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.net.commands.*;
import ru.rambler.games.net.objects.*;
public class TopReceived extends Command implements ICommand {
private var _userList:Array;
private var _place:int;
private var _current:int;
public static const COMMAND_NAME:String = "top";
public function TopReceived(xml:XML){
super(COMMAND_NAME);
decodeFromXML(xml);
}
override public function get params():Object{
return ({list:_userList, current:_current, place:_place});
}
public function get place():int{
return (_place);
}
public function get current():int{
return (_current);
}
override public function get commandName():String{
return (COMMAND_NAME);
}
public function get list():Array{
return (_userList);
}
override public function decodeFromXML(xml:XML):void{
var user:UserObject;
_xml = xml;
_userList = new Array();
var i:int;
while (i < _xml.user.length()) {
user = (_userList[i] = new UserObject());
user.decode(_xml.user[i]);
i++;
};
_userList.sortOn("rating", (Array.NUMERIC | Array.DESCENDING));
}
}
}//package ru.rambler.games.net.commands.server
Section 223
//UpdatePlayer (ru.rambler.games.net.commands.server.UpdatePlayer)
package ru.rambler.games.net.commands.server {
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.net.commands.*;
import ru.rambler.games.net.objects.*;
public class UpdatePlayer extends Command implements ICommand {
private var _user:UserObject;
public static const MODE_SHORT:String = "SHORT";
public static const MODE_MEDIUM:String = "MEDIUM";
public static const MODE_FULL:String = "FULL";
public static const COMMAND_NAME:String = "user";
public function UpdatePlayer(xml:XML){
super(COMMAND_NAME);
decodeFromXML(xml);
}
override public function get params():Object{
return ({user:_user});
}
public function get user():IUserObject{
return ((_user as IUserObject));
}
override public function get commandName():String{
return (COMMAND_NAME);
}
override public function decodeFromXML(xml:XML):void{
_xml = xml;
_user = new UserObject();
_user.decode(_xml.user[0]);
}
}
}//package ru.rambler.games.net.commands.server
Section 224
//Command (ru.rambler.games.net.commands.Command)
package ru.rambler.games.net.commands {
import ru.rambler.games.interfaces.net.*;
import flash.utils.*;
import ru.rambler.games.utils.*;
public class Command implements ICommand {
protected var _xml:XML;
public function Command(commandNameParam:String=""){
super();
_xml = <command/>
;
if (commandNameParam != ""){
commandName = commandNameParam;
};
}
private function _addConst(x:XML, name:String, o:Object):void{
var ba:ByteArray;
if ((o is String)){
x[name] = o;
} else {
ba = new ByteArray();
ba.writeObject(o);
ba.position = 0;
x[name].rg_amf = ByteUtil.byteArrayToHexString(ba);
};
}
public function addConst(name:String, o:Object):void{
_addConst(_xml, name, o);
}
private function _pushAttribute(o:Object, name:String, attribute:Object):void{
var tmp:Object;
if (o[name] == undefined){
o[name] = attribute;
} else {
if ((o[name] is Array)){
o[name].push(attribute);
} else {
tmp = o[name];
o[name] = new Array();
o[name].push(tmp);
};
};
}
private function _xml2obj(o:Object, xml:XML):void{
var element:XML;
var attrib:XML;
var ba:ByteArray;
var inner:Object;
var idx:String = xml.name().toString();
if (xml != _xml){
if (xml.attribute("value") != undefined){
_pushAttribute(o, idx, xml.attribute("value").toString());
} else {
for each (attrib in xml.attributes()) {
_pushAttribute(o, attrib.name().toString(), attrib.toString());
o[attrib.name().toString()] = attrib.toString();
};
};
};
for each (element in xml.elements()) {
idx = element.name().toString();
if ((((idx == "rg_amf")) && (element.hasSimpleContent()))){
ba = ByteUtil.hexStringToByteArray(element.text()[0]);
o = ba.readObject();
return;
};
if (((element.hasSimpleContent()) && (!((element.text() == undefined))))){
_pushAttribute(o, idx, element.text()[0]);
} else {
inner = new Object();
_xml2obj(inner, element);
_pushAttribute(o, idx, inner);
};
};
}
public function get params():Object{
var o:Object = new Object();
_xml2obj(o, _xml);
return (o);
}
private function _addObject(x:XML, name:String, o:Object):void{
var node:XML;
var i:String;
if ((((((o is Number)) || ((o is Boolean)))) || ((((o is String)) && ((String(o).length < 0xFF)))))){
if (x != _xml){
x.@[name] = o;
} else {
node = new XML((("<" + name) + "/>"));
x = x.appendChild(node);
node.@["value"] = o;
};
} else {
if ((((o is String)) || ((o is Array)))){
_addConst(x, name, o);
} else {
node = new XML((("<" + name) + "/>"));
x = x.appendChild(node);
for (i in o) {
_addObject(node, i, o[i]);
};
};
};
}
public function set commandName(command:String):void{
_xml.@name = command;
}
public function addXML(xml:XML):void{
_xml.appendChild(xml);
}
public function addParam(name:String, o:Object):void{
_addObject(_xml, name, o);
}
public function toXML():XML{
return (_xml);
}
public function get commandName():String{
return (_xml.@name.toString());
}
public function decodeFromXML(xml:XML):void{
_xml = xml;
}
}
}//package ru.rambler.games.net.commands
Section 225
//UserObject (ru.rambler.games.net.objects.UserObject)
package ru.rambler.games.net.objects {
import ru.rambler.games.interfaces.net.*;
import flash.utils.*;
import ru.rambler.games.utils.*;
public dynamic class UserObject implements IUserObject {
private var _id:String;
private var _settings:Object;
private var _moderator:int;
private var _nickname:String;
private var _login:String;
private var _max_rating:int;
private var _avatar:String;
private var _moderator_visible:int;
private var _rating:int;
public static const FULL_MODE:String = "FULL";
public static const SHORT_MODE:String = "SHORT";
public static const MEDIUM_MODE:String = "MEDIUM";
public function UserObject(){
super();
_settings = new Object();
}
public function get moderator():int{
return (_moderator);
}
public function get moderator_visible():int{
return (_moderator_visible);
}
public function set maxRating(r:int):void{
_max_rating = r;
}
public function toString():String{
return ((((((((("[UserObject id=" + _id) + ", nickname=") + _nickname) + ", rating=") + _rating) + ", max_rating=") + _max_rating) + "]"));
}
public function decode(xml:XML):void{
var attrib:XML;
var aname:String;
var ba:ByteArray;
for each (attrib in xml.attributes()) {
aname = attrib.name().toString();
switch (aname){
case "id":
_id = attrib.toString();
break;
case "nickname":
_nickname = attrib.toString();
break;
case "rating":
_rating = int(attrib.toString());
break;
case "max_rating":
_max_rating = int(attrib.toString());
break;
case "moderator":
_moderator = int(attrib.toString());
break;
case "moderator_visible":
_moderator_visible = int(attrib.toString());
break;
case "avatar":
_avatar = attrib.toString();
break;
case "login":
_login = attrib.toString();
break;
case "settings":
break;
default:
this[aname] = attrib.toString();
};
if (xml.settings.text()[0] != null){
ba = ByteUtil.hexStringToByteArray(xml.settings.text()[0]);
_settings = ba.readObject();
};
};
}
public function get avatarURL():String{
return (_avatar);
}
public function get ID():String{
return (_id);
}
public function set nickname(nick:String):void{
_nickname = nick;
}
public function get maxRating():int{
return (_max_rating);
}
public function get settings():Object{
return (_settings);
}
public function get rating():int{
return (_rating);
}
public function get login():String{
return (_login);
}
public function toXML(mode:String=""):XML{
var ba:ByteArray;
if (mode == ""){
mode = UserObject.FULL_MODE;
};
var xml:XML = new XML("<user />");
xml.@id = _id;
if (mode != UserObject.SHORT_MODE){
xml.@nickname = _nickname;
xml.@avatar = _avatar;
xml.@login = _login;
xml.@rating = _rating;
xml.@max_rating = _max_rating;
if (mode != UserObject.MEDIUM_MODE){
ba = new ByteArray();
ba.writeObject(_settings);
ba.position = 0;
xml.settings = ByteUtil.byteArrayToHexString(ba);
};
};
return (xml);
}
public function set avatarURL(r:String):void{
_avatar = r;
}
public function set ID(id:String):void{
_id = id;
}
public function set rating(r:int):void{
_rating = r;
}
public function get nickname():String{
return (_nickname);
}
}
}//package ru.rambler.games.net.objects
Section 226
//AbstractWindow (ru.rambler.games.ui.windows.AbstractWindow)
package ru.rambler.games.ui.windows {
import flash.events.*;
import flash.display.*;
import flash.filters.*;
public class AbstractWindow extends Sprite {
protected var _dragArea:Shape;
protected var _startX:int;
protected var _startY:int;
public function AbstractWindow(){
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function mouseDownHandler(e:MouseEvent):void{
_startX = stage.mouseX;
_startY = stage.mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
private function mouseUpHandler(e:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
public function init(e:Event=null):void{
_drawWindow();
}
private function mouseMoveHandler(e:MouseEvent):void{
var dy:int;
var dx:int = (stage.mouseX - _startX);
dy = (stage.mouseY - _startY);
x = (x + dx);
y = (y + dy);
_startX = stage.mouseX;
_startY = stage.mouseY;
}
public function close():void{
stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
removeEventListener(Event.ADDED_TO_STAGE, init);
dispatchEvent(new Event(Event.CLOSE));
}
protected function _drawWindow():void{
}
override public function toString():String{
return ("AbstractWindow");
}
protected function getShadow(dist:Number, knockout:Boolean=false):DropShadowFilter{
return (new DropShadowFilter(dist, 45, Style.DROPSHADOW, 1, dist, dist, 0.3, 1, knockout));
}
}
}//package ru.rambler.games.ui.windows
Section 227
//InfoWindow (ru.rambler.games.ui.windows.InfoWindow)
package ru.rambler.games.ui.windows {
import ru.rambler.games.interfaces.ui.*;
import flash.display.*;
import flash.text.*;
public class InfoWindow extends AbstractWindow implements IWindow {
protected var _id:int;
protected var _text:TextField;
protected var _param:Object;
protected var _title:TextField;
protected var _buttonCode:int;// = 0
protected var style:StyleSheet;
public function InfoWindow(){
super();
_title = new TextField();
_text = new TextField();
_title.width = (_text.width = 200);
_title.height = 25;
_text.height = 70;
_title.multiline = (_title.wordWrap = false);
_title.selectable = (_text.selectable = false);
_text.condenseWhite = false;
_text.autoSize = TextFieldAutoSize.NONE;
_text.multiline = (_text.wordWrap = true);
_text.y = 40;
style = new StyleSheet();
style.setStyle(".wtitle", {fontFamily:"Arial", fontWeight:"bold", textAlign:"center", fontSize:11});
style.setStyle(".wtext", {fontFamily:"Arial", fontWeight:"normal", textAlign:"center", fontSize:11});
style.setStyle("a", {fontFamily:"Arial", fontWeight:"bold", color:"#FF0000"});
}
public function get buttonPressed():int{
return (_buttonCode);
}
public function set text(txt:String):void{
_text.styleSheet = style;
_text.htmlText = (("<span class='wtext'>" + txt) + "</span>");
}
public function externalAction(event:String):void{
}
override public function toString():String{
return (("InfoWindow " + _id));
}
public function set title(text:String):void{
_title.styleSheet = style;
_title.htmlText = (("<span class='wtitle'>" + text) + "</span>");
}
override protected function _drawWindow():void{
_dragArea = new Shape();
var g:Graphics = _dragArea.graphics;
g.clear();
g.beginFill(Style.WINDOW_FACE);
g.drawRect(0, 0, Style.WINDOW_WIDTH, Style.WINDOW_HEIGHT);
g.endFill();
addChild(_dragArea);
addChild(_title);
addChild(_text);
_text.y = (((100 - _text.textHeight) / 2) - 15);
filters = [getShadow(1)];
}
public function get text():String{
return (_text.text);
}
}
}//package ru.rambler.games.ui.windows
Section 228
//OkWindow (ru.rambler.games.ui.windows.OkWindow)
package ru.rambler.games.ui.windows {
import flash.events.*;
import ru.rambler.games.interfaces.ui.*;
import ru.rambler.games.ui.*;
public class OkWindow extends InfoWindow implements IWindow {
protected var okButton:PushButton;
public function OkWindow(){
super();
}
override public function toString():String{
return (("OkWindow " + _id));
}
override protected function _drawWindow():void{
super._drawWindow();
okButton = new PushButton(this, 65, (height - 30), "OK", okHandler);
}
protected function okHandler(event:MouseEvent):void{
_buttonCode = Buttons.OK;
close();
}
}
}//package ru.rambler.games.ui.windows
Section 229
//PushButton (ru.rambler.games.ui.windows.PushButton)
package ru.rambler.games.ui.windows {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.filters.*;
public class PushButton extends Sprite {
private var _down:Boolean;// = false
private var _labelText:String;
private var _back:Sprite;
private var _over:Boolean;// = false
private var _label:TextField;
private var _face:Sprite;
public function PushButton(parent:DisplayObjectContainer=null, xpos:Number=0, ypos:Number=0, label:String="", defaultHandler:Function=null){
super();
if (defaultHandler != null){
addEventListener(MouseEvent.CLICK, defaultHandler);
};
_labelText = label;
init();
draw();
x = xpos;
y = ypos;
if (parent != null){
parent.addChild(this);
};
}
private function onMouseOut(event:MouseEvent):void{
_over = false;
if (!_down){
_face.filters = [getShadow(1)];
};
}
protected function draw():void{
var g:Graphics = _back.graphics;
g.beginFill(Style.BACKGROUND);
g.drawRect(0, 0, Style.BUTTON_WIDTH, Style.BUTTON_HEIGHT);
g.endFill();
g = _face.graphics;
g.beginFill(Style.BUTTON_FACE);
g.drawRect(0, 0, (Style.BUTTON_WIDTH - 2), (Style.BUTTON_HEIGHT - 2));
g.endFill();
}
private function onMouseDown(event:MouseEvent):void{
_down = true;
_face.filters = [getShadow(1, true)];
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp, true);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
protected function init():void{
buttonMode = true;
useHandCursor = true;
_back = new Sprite();
_back.filters = [getShadow(2, true)];
addChild(_back);
_face = new Sprite();
_face.filters = [getShadow(1)];
_face.x = 1;
_face.y = 1;
addChild(_face);
_label = new TextField();
_label.width = Style.BUTTON_WIDTH;
_label.autoSize = TextFieldAutoSize.CENTER;
_label.selectable = false;
_label.mouseEnabled = false;
_label.defaultTextFormat = new TextFormat(Style.FONT, Style.TEXT_SIZE, Style.LABEL_TEXT);
_label.text = _labelText;
addChild(_label);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(MouseEvent.ROLL_OVER, onMouseOver);
}
private function onMouseOver(event:MouseEvent):void{
_over = true;
addEventListener(MouseEvent.ROLL_OUT, onMouseOut);
}
protected function getShadow(dist:Number, knockout:Boolean=false):DropShadowFilter{
return (new DropShadowFilter(dist, 45, Style.DROPSHADOW, 1, dist, dist, 0.3, 1, knockout));
}
private function onMouseUp(event:MouseEvent):void{
_down = false;
_face.filters = [getShadow(1)];
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, true);
}
}
}//package ru.rambler.games.ui.windows
Section 230
//Style (ru.rambler.games.ui.windows.Style)
package ru.rambler.games.ui.windows {
public class Style {
public static var BUTTON_FACE:uint = 0xFFFFFF;
public static var WINDOW_FACE:uint = 0xF3F3F3;
public static var DROPSHADOW:uint = 0;
public static var TEXT_SIZE:uint = 11;
public static var WINDOW_HEIGHT:uint = 100;
public static var WINDOW_WIDTH:uint = 200;
public static var BUTTON_WIDTH:uint = 70;
public static var BUTTON_HEIGHT:uint = 20;
public static var PROGRESS_BAR:uint = 0xFFFFFF;
public static var PANEL:uint = 0xF3F3F3;
public static var FONT:String = "Arial";
public static var INPUT_TEXT:uint = 0;
public static var NOFOCUS_COLOR:uint = 0xCCCCCC;
public static var BACKGROUND:uint = 0xCCCCCC;
public static var LABEL_TEXT:uint = 0x666666;
public static var FOCUS_COLOR:uint = 30402;
public function Style(){
super();
}
}
}//package ru.rambler.games.ui.windows
Section 231
//YesNoWindow (ru.rambler.games.ui.windows.YesNoWindow)
package ru.rambler.games.ui.windows {
import flash.events.*;
import ru.rambler.games.interfaces.ui.*;
import ru.rambler.games.ui.*;
public class YesNoWindow extends OkWindow implements IWindow {
protected var cancelButton:PushButton;
public function YesNoWindow(){
super();
}
override protected function _drawWindow():void{
super._drawWindow();
okButton.x = 20;
cancelButton = new PushButton(this, 110, (height - 30), "CANCEL", cancelHandler);
}
override public function toString():String{
return (("YesNoWindow " + _id));
}
protected function cancelHandler(event:MouseEvent):void{
_buttonCode = Buttons.CANCEL;
close();
}
}
}//package ru.rambler.games.ui.windows
Section 232
//Buttons (ru.rambler.games.ui.Buttons)
package ru.rambler.games.ui {
public class Buttons {
public static const NULL:int = 0;
public static const CANCEL:int = 2;
public static const OK:int = 1;
public function Buttons(){
super();
}
}
}//package ru.rambler.games.ui
Section 233
//PopupManager (ru.rambler.games.ui.PopupManager)
package ru.rambler.games.ui {
import flash.events.*;
import ru.rambler.games.interfaces.ui.*;
import flash.display.*;
import flash.utils.*;
import ru.rambler.games.ui.windows.*;
public class PopupManager implements IPopupManager {
private var _modalCount:int;// = 0
protected var windows:Dictionary;
private var _windowContainer:DisplayObjectContainer;
private var _windowCount:int;// = 0
protected var classInfo:Class;
protected var classInput:Class;
protected var classOK:Class;
private var _modalBlocker:Sprite;
public var modalFillAlpha:Number;// = 0.7
protected var classYesNo:Class;
public var modalFillColor:int;// = 0xFFFFFF
public static const instance:PopupManager = new (PopupManager);
;
public function PopupManager(){
classInfo = InfoWindow;
classOK = OkWindow;
classYesNo = YesNoWindow;
classInput = OkWindow;
windows = new Dictionary();
super();
if (instance){
throw (new Error("PopupManager - singleton. Сonstructor is locked."));
};
}
public function get oneButtonWindowClass():Class{
return (classOK);
}
protected function createWindow(windowClass:Class):IWindow{
var window:IWindow;
window = IWindow(new (windowClass));
_windowCount++;
return (window);
}
protected function removeWindow(window:IWindow):void{
_windowContainer.removeChild((window as DisplayObject));
delete windows[window];
}
public function registerOneButtonWindow(className:Class):void{
classOK = className;
}
private function addedToStageHandler(event:Event):void{
_windowContainer.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
_windowContainer.stage.addEventListener(Event.RESIZE, resizeHandler);
clear();
}
private function createModalBlocker():void{
if (_modalBlocker == null){
_modalBlocker = new Sprite();
_modalBlocker.graphics.beginFill(modalFillColor, modalFillAlpha);
_modalBlocker.graphics.drawRect(0, 0, _windowContainer.stage.stageWidth, _windowContainer.stage.stageHeight);
_modalBlocker.graphics.endFill();
_modalBlocker.buttonMode = true;
_modalBlocker.useHandCursor = false;
_windowContainer.addChild(_modalBlocker);
};
}
public function showPopup(windowClass:Class, title:String, text:String, modal:Boolean=false, centered:Boolean=true, onClose:Function=null, onCloseScope=null, onCloseParams:Array=null):IWindow{
var window:IWindow = instance.createWindow(windowClass);
window.title = title;
window.text = text;
return (instance.showCreatedPopup(window, modal, centered, onClose, onCloseScope, onCloseParams));
}
private function removeModalBlocker():void{
if (_modalBlocker != null){
_windowContainer.removeChild(_modalBlocker);
_modalBlocker = null;
};
}
protected function closeHandler(e:Event):void{
var a:Array;
var window:IWindow = IWindow(e.target);
window.removeEventListener(Event.CLOSE, closeHandler);
var props:Object = windows[window];
if (props.onClose != null){
a = props.onCloseParams;
if (a == null){
a = new Array();
};
a.unshift(window.buttonPressed);
props.onClose.apply(props.onCloseScope, a);
};
if (props.modal){
_modalCount--;
if (_modalCount == 0){
removeModalBlocker();
};
};
instance.removeWindow(window);
}
public function centerWindow(window:IWindow):void{
var windowAsDO:DisplayObject = (window as DisplayObject);
windowAsDO.x = int(((_windowContainer.stage.stageWidth - windowAsDO.width) / 2));
windowAsDO.y = int(((_windowContainer.stage.stageHeight - windowAsDO.height) / 2));
}
public function registerInputWindow(className:Class):void{
classInput = className;
}
public function registerInfoWindow(className:Class):void{
classInfo = className;
}
public function get inputWindowClass():Class{
return (classInput);
}
public function get selectWindowClass():Class{
return (classYesNo);
}
protected function showWindow(window:IWindow, centered:Boolean=true):void{
_windowContainer.addChild((window as DisplayObject));
if (centered){
centerWindow(window);
};
}
public function registerSelectWindow(className:Class):void{
classYesNo = className;
}
public function showCreatedPopup(window:IWindow, modal:Boolean=false, centered:Boolean=true, onClose:Function=null, onCloseScope=null, onCloseParams:Array=null):IWindow{
window.addEventListener(Event.CLOSE, closeHandler);
var props:Object = {window:window, modal:modal, onClose:onClose, onCloseScope:onCloseScope, onCloseParams:onCloseParams};
if (modal){
createModalBlocker();
_modalCount++;
};
windows[window] = props;
instance.showWindow(window, centered);
return (window);
}
private function noAction(e:MouseEvent):void{
trace("noAction");
}
public function get infoWindowClass():Class{
return (classInfo);
}
public function clear():void{
var props:Object;
for each (props in windows) {
props.window.removeEventListener(Event.CLOSE, closeHandler);
removeWindow(props.window);
};
windows = new Dictionary();
_modalCount = 0;
_windowCount = 0;
}
public function set windowContainer(container:DisplayObjectContainer):void{
_windowContainer = container;
if (_windowContainer.stage == null){
_windowContainer.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
} else {
_windowContainer.stage.addEventListener(Event.RESIZE, resizeHandler);
clear();
};
}
private function resizeHandler(e:Event):void{
var windowsCount:int = _windowContainer.numChildren;
var i:int;
while (i < windowsCount) {
if (_windowContainer.getChildAt(i) == _modalBlocker){
} else {
centerWindow(IWindow(_windowContainer.getChildAt(i)));
};
i++;
};
if (_modalBlocker != null){
_modalBlocker.width = _modalBlocker.stage.stageWidth;
_modalBlocker.height = _modalBlocker.stage.stageHeight;
};
}
public function bringToFront(window:IWindow):void{
_windowContainer.setChildIndex(DisplayObject(window), (_windowContainer.numChildren - 1));
}
}
}//package ru.rambler.games.ui
Section 234
//SingleplayerUIManager (ru.rambler.games.ui.SingleplayerUIManager)
package ru.rambler.games.ui {
import ru.rambler.games.interfaces.core.*;
import ru.rambler.games.interfaces.ui.*;
public class SingleplayerUIManager extends UIManager implements IUIManager, IVersion {
public static const instance:SingleplayerUIManager = new (SingleplayerUIManager);
;
public function SingleplayerUIManager(){
super();
if (instance){
throw (new Error("UIManager - singleton. Сonstructor is locked."));
};
init();
}
}
}//package ru.rambler.games.ui
Section 235
//SoundManager (ru.rambler.games.ui.SoundManager)
package ru.rambler.games.ui {
import ru.rambler.games.interfaces.ui.*;
import flash.media.*;
import flash.external.*;
public class SoundManager implements ISoundManager {
private var _isSoundOn:Boolean;// = true
private var _transform:SoundTransform;
private var _gameStartSound:Class;
public static const instance:SoundManager = new (SoundManager);
;
public function SoundManager(){
super();
if (instance){
throw (new Error("SoundManager - singleton. Сonstructor is locked."));
};
}
public function get soundState():Boolean{
return (_isSoundOn);
}
public function set soundState(value:Boolean):void{
_isSoundOn = value;
}
public function registerGameStartSound(className:Class):void{
_gameStartSound = className;
}
public function play(soundClass:Class, startTime:Number=0, loops:int=0):SoundChannel{
var _sound:Sound;
var _channel:SoundChannel;
if (((soundState) && (soundClass))){
_sound = new (soundClass);
_channel = _sound.play(startTime, loops);
if (_transform != null){
_channel.soundTransform = _transform;
};
return (_channel);
//unresolved jump
};
return (null);
}
public function playMusic():void{
if (ExternalInterface.available){
ExternalInterface.call("open_radio()");
//unresolved jump
var _slot1 = e;
};
}
public function set soundTransform(value:SoundTransform):void{
_transform = value;
}
public function get soundTransform():SoundTransform{
return (_transform);
}
public function get gameStartSound():Class{
return (_gameStartSound);
}
}
}//package ru.rambler.games.ui
Section 236
//UIManager (ru.rambler.games.ui.UIManager)
package ru.rambler.games.ui {
import ru.rambler.games.interfaces.core.*;
import flash.events.*;
import ru.rambler.games.interfaces.ui.*;
import flash.display.*;
import ru.rambler.games.assets.*;
import flash.ui.*;
import flash.external.*;
public class UIManager implements IUIManager, IVersion {
protected var _popupManager:IPopupManager;
protected var _cursorHolder:Sprite;
protected var _gameFrame:IGameFrame;
protected var _cursor:DisplayObject;
protected var _popupHolder:Sprite;
protected var _soundManager:ISoundManager;
public function UIManager(){
super();
}
public function set popupManager(value:IPopupManager):void{
_popupManager = value;
_popupManager.windowContainer = _popupHolder;
}
public function closeGame():void{
if (ExternalInterface.available){
ExternalInterface.call("window.close()");
//unresolved jump
var _slot1 = e;
};
}
private function cursorMove(event:MouseEvent):void{
_cursor.x = _cursorHolder.mouseX;
_cursor.y = _cursorHolder.mouseY;
event.updateAfterEvent();
}
protected function init():void{
initSame();
_soundManager.registerGameStartSound(DefaultStartSound);
}
private function removeCursorListener(event:Event):void{
if (_cursor != null){
_cursor.stage.removeEventListener(MouseEvent.MOUSE_MOVE, cursorMove);
};
}
protected function initSame():void{
_popupHolder = new Sprite();
_cursorHolder = new Sprite();
_popupHolder.mouseEnabled = false;
_cursorHolder.mouseEnabled = false;
_popupManager = PopupManager.instance;
_soundManager = SoundManager.instance;
_popupManager.windowContainer = _popupHolder;
}
public function set container(value:DisplayObjectContainer):void{
value.addChild(_popupHolder);
value.addChild(_cursorHolder);
}
public function get gameFrame():IGameFrame{
return (_gameFrame);
}
public function get cursor():DisplayObject{
return (_cursor);
}
public function get soundManager():ISoundManager{
return (_soundManager);
}
public function get version():String{
return ("@version@");
}
private function dropCursor():void{
if (_cursor == null){
return;
};
_cursorHolder.removeChild(_cursor);
_cursor.removeEventListener(Event.ADDED_TO_STAGE, addCursorListener);
_cursor.removeEventListener(Event.REMOVED_FROM_STAGE, removeCursorListener);
_cursor = null;
}
public function get popupManager():IPopupManager{
return (_popupManager);
}
private function addCursorListener(event:Event):void{
if (_cursor != null){
_cursor.stage.addEventListener(MouseEvent.MOUSE_MOVE, cursorMove);
};
}
public function set cursor(value:DisplayObject):void{
if (value == null){
Mouse.show();
dropCursor();
} else {
dropCursor();
_cursor = value;
_cursor.cacheAsBitmap = true;
_cursor.addEventListener(Event.ADDED_TO_STAGE, addCursorListener);
_cursor.addEventListener(Event.REMOVED_FROM_STAGE, removeCursorListener);
_cursorHolder.addChild(_cursor);
if ((_cursor is InteractiveObject)){
(_cursor as InteractiveObject).mouseEnabled = false;
};
Mouse.hide();
};
}
public function set gameFrame(value:IGameFrame):void{
}
public function set soundManager(value:ISoundManager):void{
_soundManager = value;
}
}
}//package ru.rambler.games.ui
Section 237
//ByteUtil (ru.rambler.games.utils.ByteUtil)
package ru.rambler.games.utils {
import flash.utils.*;
public class ByteUtil {
public function ByteUtil(){
super();
}
public static function byteArrayToHexString(data:ByteArray):String{
var byte:int;
var byteText:String;
var oldPosition:int = data.position;
var joinedBytes:String = "";
while (data.bytesAvailable) {
byte = data.readByte();
if (byte < 0){
byte = (0x0100 + byte);
};
byteText = byte.toString(16);
if (byteText.length == 1){
byteText = ("0" + byteText);
};
joinedBytes = (joinedBytes + byteText);
};
data.position = oldPosition;
return (joinedBytes);
}
public static function hexStringToByteArray(hexData:String):ByteArray{
var hexByte:String;
var byte:int;
var binaryData:ByteArray = new ByteArray();
var i:int;
while (i < hexData.length) {
hexByte = hexData.substr(i, 2);
byte = int(("0x" + hexByte));
binaryData.writeByte(byte);
i = (i + 2);
};
binaryData.position = 0;
return (binaryData);
}
}
}//package ru.rambler.games.utils
Section 238
//ShopItem (shop.ShopItem)
package shop {
import flash.events.*;
import flash.display.*;
import ui.*;
import map.*;
import utils.*;
import com.melesta.sound.*;
public class ShopItem extends MovieClip {
private var _currentUpgrade:Number;// = 0
private var _active:Boolean;// = false
private var _costs:Array;
private var _index:Number;// = 0
public var _icon:MovieClip;
private var _itemsList:Array;
public function ShopItem(icon:MovieClip, costs:String, caption:String, index:Number){
_costs = new Array();
_itemsList = new Array("cage", "well", "warehouse", "car", "plane", "powdered", "dough_factory", "curd_factory", "cheese_factory", "pizza_factory");
super();
_icon = icon;
_costs = costs.split(",");
_index = index;
_icon.buyBtn.price.text = _costs[_currentUpgrade];
_icon.buyBtn.addEventListener(MouseEvent.CLICK, buyUpgrade, false, 0, true);
_icon.buyBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
_icon.buyBtn.addEventListener(MouseEvent.MOUSE_OUT, btnOut, false, 0, true);
_icon.buyBtn.addEventListener(MouseEvent.MOUSE_DOWN, btnDown, false, 0, true);
_icon.bg.addEventListener(MouseEvent.MOUSE_OVER, showTooltip, false, 0, true);
_icon.bg.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip, false, 0, true);
_icon.buyBtn.price.mouseEnabled = false;
_icon.tick.visible = false;
_icon.title.text = Config.currentLanguage.child(_itemsList[_index]);
update();
}
private function btnDown(event:MouseEvent=null):void{
event.stopPropagation();
if (_active){
_icon.buyBtn.gotoAndStop("press");
};
}
private function hideTooltip(event:MouseEvent=null):void{
if (_itemsList[_index] != "pizza_factory"){
ShopTooltip.instance.hide();
} else {
PizzaTooltip.instance.hide();
};
}
public function update():void{
if (_costs[_currentUpgrade] > ShopWindow.instance.stars){
_icon.bg.gotoAndStop(1);
_active = false;
_icon.buyBtn.gotoAndStop("disable");
} else {
_icon.bg.gotoAndStop(2);
_active = true;
_icon.buyBtn.gotoAndStop("active");
};
}
public function updateUpgradesView(upgrade:Number=0):void{
_currentUpgrade = upgrade;
if (_currentUpgrade < _costs.length){
_icon.buyBtn.price.text = _costs[_currentUpgrade];
_icon.gotoAndStop((_currentUpgrade + 1));
};
if (_currentUpgrade == _costs.length){
_icon.gotoAndStop(_currentUpgrade);
_icon.tick.visible = true;
_icon.buyBtn.visible = false;
_icon.bg.visible = false;
};
update();
}
private function showTooltip(event:MouseEvent=null):void{
if (_itemsList[_index] != "pizza_factory"){
ShopTooltip.instance.show(_icon.x, (_icon.y - 20), _itemsList[_index], (_currentUpgrade + 1), Config.currentLanguage.shop_tooltips.descendants(_itemsList[_index]));
} else {
PizzaTooltip.instance.show(_icon.x, (_icon.y - 20), (_currentUpgrade + 1), Config.currentLanguage.shop_tooltips.descendants(_itemsList[_index]));
};
}
private function btnOut(event:MouseEvent=null):void{
event.stopPropagation();
if (_active){
_icon.buyBtn.gotoAndStop("out");
};
}
private function buyUpgrade(event:MouseEvent=null):void{
event.stopPropagation();
if (this._index == MapWindow.needIndex){
FArrow.instance.hide();
};
if ((((ShopWindow.instance.stars >= _costs[_currentUpgrade])) && ((_currentUpgrade <= (_costs.length - 1))))){
SoundManager.play("action_sell_buy");
ShopWindow.instance.stars = (ShopWindow.instance.stars - _costs[_currentUpgrade]);
_currentUpgrade++;
if (_currentUpgrade < _costs.length){
_icon.buyBtn.price.text = _costs[_currentUpgrade];
_icon.gotoAndStop((_currentUpgrade + 1));
ShopWindow.instance.updateViews();
};
var _local2 = ShopWindow.availableUpgrades;
var _local3 = _index;
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
};
if (_currentUpgrade == _costs.length){
SoundManager.play("action_sell_buy");
_icon.tick.visible = true;
_icon.buyBtn.visible = false;
_icon.bg.visible = false;
};
ShopWindow.instance.updateViews();
update();
}
private function btnOver(event:MouseEvent=null):void{
event.stopPropagation();
if (_active){
_icon.buyBtn.gotoAndStop("over");
SoundManager.play("ui_button_hover");
};
}
}
}//package shop
Section 239
//ShopWindow (shop.ShopWindow)
package shop {
import flash.events.*;
import flash.display.*;
import ui.*;
import map.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class ShopWindow extends ShopTemplate {
private var _stars:Number;// = 0
private var _itemCaptions:Array;
private var arrow:FArrow;
public var upgradeCosts:Array;
private var _shopItems:Array;
private var _shopTooltip:ShopTooltip;
private var _itemsList:Array;
public static var availableUpgrades:Array = new Array(1, 1, 1, 1, 1, 0, 0, 0, 0, 0);
public static var instance:ShopWindow;
public static var firstShow:Boolean = true;
public function ShopWindow(){
_itemsList = new Array("cage", "well", "warehouse", "car", "plane", "powdered", "dough", "curds", "cheese", "pizza_fr");
_itemCaptions = new Array("cage", "well", "warehouse", "car", "plane", "powdered", "dough", "curds", "cheese", "pizza_fr");
_shopItems = new Array();
upgradeCosts = new Array("100,500,5000", "200,400,8000", "150,600,6000", "100,500,2000", "100,500,2000", "100,120,130,140,150", "120,130,140,150,160", "200,250,300,350,400", "300,400,500,600,700", "5000,6000,7000,8000");
super();
this.visible = false;
instance = this;
okBtn.addEventListener(MouseEvent.CLICK, finished, false, 0, true);
stars = 0;
var i:int;
while (i < _itemsList.length) {
_shopItems[i] = new ShopItem((this.getChildByName(_itemsList[i]) as MovieClip), upgradeCosts[i], _itemCaptions[i], i);
i++;
};
if (Config.use_cheats){
stars_txt.addEventListener(MouseEvent.CLICK, addMoney, false, 0, true);
};
title.text = Config.currentLanguage.shop;
okBtn.caption.text = Config.currentLanguage.ok;
_shopTooltip = new ShopTooltip();
addChild(_shopTooltip);
}
public function get stars():Number{
return (_stars);
}
public function updateViews():void{
var i:int;
while (i < _shopItems.length) {
_shopItems[i].update();
i++;
};
}
public function set stars(value:Number):void{
_stars = value;
this.stars_txt.text = String(stars);
}
public function updateUpgradesViews():void{
var i = 5;
while (i < _shopItems.length) {
_shopItems[i].updateUpgradesView(availableUpgrades[i]);
i++;
};
}
private function addMoney(event:MouseEvent=null):void{
_stars = (_stars + 500);
stars_txt.text = String(_stars);
updateViews();
}
public function finished(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.2, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
MapWindow.instance.updateViews();
FArrow.instance.hide();
}
public function show():void{
this.visible = true;
this.alpha = 0;
if (MapWindow.needIndex > 0){
FArrow.instance.show(_shopItems[MapWindow.needIndex]._icon.x, (_shopItems[MapWindow.needIndex]._icon.y - 20), true);
};
stars_txt.text = String(stars);
updateViews();
Tweener.addTween(this, {alpha:1, time:0.2, transition:"linear"});
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
SimpleTooltip.instance.show(Config.currentLanguage.tooltips.shop);
};
}
public static function isAvailable(upgradeList:Array):Boolean{
var accessCounter:Number = 0;
var item:Array = new Array();
var i:Number = 0;
while (i < upgradeList.length) {
item = upgradeList[i].split(",");
if (Number(item[1]) <= Number(availableUpgrades[(Number(item[0]) + 5)])){
accessCounter++;
};
i++;
};
return (((accessCounter == upgradeList.length)) ? true : false);
}
}
}//package shop
Section 240
//ArrowTemplate (ui.ArrowTemplate)
package ui {
import flash.display.*;
public dynamic class ArrowTemplate extends MovieClip {
}
}//package ui
Section 241
//BlockTooltip (ui.BlockTooltip)
package ui {
import flash.events.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class BlockTooltip extends BlockTooltipTemplate {
public static var instance:BlockTooltip;
public function BlockTooltip(){
super();
instance = this;
visible = false;
help.okBtn.caption.text = Config.currentLanguage.ok;
help.okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
help.okBtn.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
}
public function hide(event:MouseEvent=null):void{
if (this.visible){
SoundManager.play("ui_button_click");
Tweener.removeTweens(this);
this.visible = false;
GameController.instance.resume();
if (((WaterTooltip.firstShow) && (!(Config.skiped)))){
WaterTooltip.instance.show();
};
};
}
public function down(event:MouseEvent=null):void{
help.okBtn.gotoAndStop(3);
}
public function show(posX:Number, posY:Number, caption:String, autoHide:Boolean=false):void{
var posX = posX;
var posY = posY;
var caption = caption;
var autoHide = autoHide;
alpha = 0;
lock.x = -(posX);
lock.y = -(posY);
help.okBtn.visible = true;
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
visible = true;
lock.visible = true;
this.help.x = 110;
this.help.y = 77;
if (posX > 300){
this.body.scaleX = -1;
this.help.x = -110;
};
if (posY > 200){
this.help.y = -77;
this.body.scaleY = -1;
};
this.x = posX;
this.y = (posY - 20);
this.help.caption.text = caption;
Tweener.addTween(this, {alpha:1, time:0.5});
if (autoHide){
alpha = 1;
help.okBtn.visible = false;
lock.visible = false;
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:0, time:1, delay:2, onComplete:function ():void{
this.visible = false;
}});
} else {
GameController.instance.pause();
};
}
}
}//package ui
Section 242
//BottomPanel (ui.BottomPanel)
package ui {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import flash.utils.*;
import game.*;
import market.road.*;
import pets.*;
import org.flintparticles.twoD.emitters.*;
import utils.*;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.energyEasing.*;
import org.flintparticles.common.displayObjects.*;
import com.melesta.utils.time.*;
import com.melesta.sound.*;
public class BottomPanel extends BottomPanelTemplate {
public var firstShow:Boolean;// = true
public var assotiationList:Array;
public var state:String;// = "normal"
private var _silverTime:Number;
private var levelTimer:Timer;
private var _goldTime:Number;
private var emitter:Emitter2D;
public var firstLevel:Boolean;// = true
private var gameController:GameController;
private var _time:Number;// = 0
public static var effectContainer:DisplayObjectContainer;
public static var instance:BottomPanel;
public function BottomPanel(){
assotiationList = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
super();
gameController = GameController.instance;
gameController.addEventListener(GameController.PAUSE_GAME, pause, false, 0, true);
gameController.addEventListener(GameController.RESUME_GAME, resume, false, 0, true);
gameController.addEventListener(GameController.LEVEL_COMPLETED, hideItems, false, 0, true);
this.y = 431;
this.x = 0;
instance = this;
levelTimer = new Timer(1000);
levelTimer.addEventListener(TimerEvent.TIMER, updateTime, false, 0, true);
aim_btn.addEventListener(MouseEvent.CLICK, showPurposes, false, 0, true);
hideItems();
emitter = new Emitter2D();
menuBtn.addEventListener(MouseEvent.CLICK, showMenu, false, 0, true);
menuBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
menuBtn.caption.text = Config.currentLanguage.menu;
}
public function showMenu(event:MouseEvent=null):void{
BlockTooltip.instance.hide();
SimpleTooltip.instance.hide();
WaterTooltip.instance.hide();
Tooltip.instance.hide();
GameMenu.instance.show();
SoundManager.play("ui_button_click");
}
public function update():void{
var actual:Number;
var requried:Number;
LevelStatistics.goals[11] = Road.currentMoney;
var i:int;
while (i < assotiationList.length) {
if (assotiationList[i] != 0){
assotiationList[i].actual.text = String(LevelStatistics.goals[i]);
actual = Number(assotiationList[i].actual.text);
requried = Number(assotiationList[i].required.text);
if (actual < requried){
assotiationList[i].required.visible = (assotiationList[i].actual.visible = true);
assotiationList[i].tick.visible = false;
};
if ((((actual > 0)) && ((actual == requried)))){
if (!assotiationList[i].tick.visible){
assotiationList[i].required.visible = (assotiationList[i].actual.visible = false);
assotiationList[i].tick.visible = true;
emitter.start();
SoundManager.play("fanfare_aim", 1);
};
};
};
i++;
};
}
public function startTime():void{
levelTimer.start();
}
private function btnOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
public function init():void{
var type:Array;
hideItems();
_time = 0;
updateTime();
lenta.visible = true;
lenta.gotoAndStop(1);
_goldTime = Number(LevelBuilder.currentLevelXML.@GoldTime);
_silverTime = Number(LevelBuilder.currentLevelXML.@SilverTime);
lenta.time_txt.text = TimeDecoder.decodeTime(_goldTime);
var purposes:Array = LevelStatistics.purposes;
var i:int;
while (i < purposes.length) {
type = purposes[i].split(",");
this[("item" + i)].actual.text = "0";
this[("item" + i)].mouseEnabled = (this[("item" + i)].mouseChildren = false);
this[("item" + i)].visible = true;
this[("item" + i)]._type = type[0];
assotiationList[ProductTypes.typeToNumber(type[0])] = this[("item" + i)];
this[("item" + i)].required.text = type[1];
this[("item" + i)].body.gotoAndStop(type[0]);
i++;
};
}
public function hideItems(event:Event=null):void{
levelTimer.stop();
_time = 0;
state = "normal";
time_txt.text = TimeDecoder.decodeTime(_time);
assotiationList = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
var i:int;
while (i < 4) {
this[("item" + i)].visible = false;
this[("item" + i)].actual.visible = true;
this[("item" + i)].required.visible = true;
this[("item" + i)].actual.text = "0";
this[("item" + i)].required.text = "0";
this[("item" + i)].tick.visible = false;
i++;
};
}
public function resume(event:Event=null):void{
levelTimer.start();
}
private function updateTime(event:TimerEvent=null):void{
_time++;
if (_time > 30){
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
Tooltip.instance.show(510, 400, "GOALS", 1, "GOALS");
};
};
if (_time > 10){
if (((firstLevel) && (!(Config.skiped)))){
firstLevel = false;
BlockTooltip.instance.show(Chicken.chickenList[0].x, Chicken.chickenList[0].y, Config.currentLanguage.tooltips.feed);
};
};
time_txt.text = TimeDecoder.decodeTime(_time);
if (_time > _silverTime){
lenta.visible = false;
state = "normal";
};
if (_time < _silverTime){
lenta.visible = true;
lenta.gotoAndStop(2);
state = "silver";
lenta.time_txt.text = TimeDecoder.decodeTime(_silverTime);
};
if (_time < _goldTime){
lenta.visible = true;
state = "gold";
lenta.gotoAndStop(1);
lenta.time_txt.text = TimeDecoder.decodeTime(_goldTime);
};
}
private function showPurposes(event:MouseEvent=null):void{
gameController.pause();
PurposesWindow.instance.show();
SoundManager.play("ui_button_click");
Tooltip.instance.hide();
BlockTooltip.instance.hide();
Tooltip.instance.hide();
WaterTooltip.instance.hide();
}
public function createEffect():void{
emitter.counter = new Blast(500);
emitter.addInitializer(new SharedImage(new Star(7)));
emitter.addInitializer(new ColorInit(4294967040, 4294927872));
emitter.addInitializer(new Velocity(new DiscSectorZone(new Point(-100, -200), 500, 0, -90, -91)));
emitter.addInitializer(new Lifetime(1));
emitter.addAction(new Age(Quadratic.easeIn));
emitter.addAction(new Move());
emitter.addAction(new Fade());
emitter.addAction(new Accelerate(-200, 1200));
var renderer:BitmapRenderer = new BitmapRenderer(new Rectangle(0, 0, 570, 430));
renderer.addEmitter(emitter);
effectContainer.addChild(renderer);
emitter.x = 530;
emitter.y = 410;
}
public function pause(event:Event=null):void{
levelTimer.stop();
}
}
}//package ui
Section 243
//BottomPanelTemplate (ui.BottomPanelTemplate)
package ui {
import flash.display.*;
import flash.text.*;
public dynamic class BottomPanelTemplate extends MovieClip {
public var time_txt:TextField;
public var aim_btn:MovieClip;
public var lenta:MovieClip;
public var item2:MovieClip;
public var item3:MovieClip;
public var menuBtn:MovieClip;
public var item0:MovieClip;
public var item1:MovieClip;
}
}//package ui
Section 244
//EndScreen (ui.EndScreen)
package ui {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class EndScreen extends EndScreenTemplate {
public var showed:Boolean;// = false
public static var instance:EndScreen;
public function EndScreen(stageInstance:DisplayObjectContainer){
super();
instance = this;
stageInstance.addChild(this);
this.visible = false;
exitBtn.caption.text = Config.currentLanguage.main_menu;
caption.htmlText = Config.currentLanguage.game_over;
buyBtn.stop();
exitBtn.addEventListener(MouseEvent.CLICK, exit, false, 0, true);
exitBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
buyBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
sendScoreBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
sendScoreBtn.visible = false;
buyBtn.visible = false;
if (Config.downloadable){
buyBtn.addEventListener(MouseEvent.CLICK, buy, false, 0, true);
buyBtn.caption.text = Config.currentLanguage.download_full_version;
buyBtn.visible = true;
};
if (Farm2.portal == "mochi"){
buyBtn.visible = false;
sendScoreBtn.visible = true;
sendScoreBtn.caption.text = Config.currentLanguage.send_score;
sendScoreBtn.addEventListener(MouseEvent.CLICK, sendMochiScore, false, 0, true);
};
if (Farm2.portal == "kongregate"){
buyBtn.visible = false;
sendScoreBtn.visible = true;
sendScoreBtn.caption.text = Config.currentLanguage.send_score;
sendScoreBtn.addEventListener(MouseEvent.CLICK, sendKongregateScore, false, 0, true);
};
if (Farm2.portal == "rambler"){
buyBtn.visible = false;
sendScoreBtn.visible = true;
sendScoreBtn.caption.text = Config.currentLanguage.send_score;
sendScoreBtn.addEventListener(MouseEvent.CLICK, sendRamblerScore, false, 0, true);
};
}
private function btnOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
private function sendRamblerScore(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.1, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
Farm2.instance.sendRamblerScore(ResultsWindow.bankNum);
//unresolved jump
var _slot1 = error;
}
private function sendKongregateScore(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.1, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
StartScreen.instance.submitKongregateScore(ResultsWindow.bankNum);
//unresolved jump
var _slot1 = error;
}
private function buy(event:MouseEvent=null):void{
var request:URLRequest = new URLRequest(Config.downloadLink);
navigateToURL(request, Config.target);
}
public function show():void{
showed = true;
this.alpha = 0;
this.visible = true;
Tweener.addTween(this, {alpha:1, time:0.2, transition:"linear"});
}
private function exit(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
StartScreen.instance.show();
Tweener.addTween(this, {alpha:0, time:0.1, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
}
private function sendMochiScore(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.1, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
Leaderboard.instance.sendScore();
}
}
}//package ui
Section 245
//FarmPreloader (ui.FarmPreloader)
package ui {
import caurina.transitions.*;
import flash.display.*;
public dynamic class FarmPreloader extends PreloaderTemplate {
public static var instance:FarmPreloader;
public static var externalLogo:Sprite;
public function FarmPreloader(){
super();
instance = this;
logo.stop();
logo.visible = false;
}
public function hide():void{
Tweener.addTween(this, {alpha:0, time:0.5, onComplete:function ():void{
this.visible = false;
}});
}
}
}//package ui
Section 246
//FArrow (ui.FArrow)
package ui {
import flash.display.*;
import caurina.transitions.*;
public class FArrow extends ArrowTemplate {
public static var container:DisplayObjectContainer;
public static var instance:FArrow;
public function FArrow(cont:DisplayObjectContainer){
container = cont;
super();
instance = this;
container.addChild(this);
this.hide();
this.visible = false;
this.mouseChildren = (this.mouseEnabled = false);
}
public function hide():void{
this.visible = false;
}
public function show(xpos:Number, ypos:Number, endless:Boolean=false):void{
this.visible = true;
this.alpha = 1;
this.x = xpos;
this.y = ypos;
if (!endless){
Tweener.addTween(this, {alpha:0, delay:1, time:1, transition:"linear", onComplete:hide});
};
}
}
}//package ui
Section 247
//GameMenu (ui.GameMenu)
package ui {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import map.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class GameMenu extends GameMenuTemplate {
public static var instance:GameMenu;
public function GameMenu(stageInstance:DisplayObjectContainer){
super();
instance = this;
stageInstance.addChild(this);
this.visible = false;
resumeBtn.addEventListener(MouseEvent.CLICK, resumeGame, false, 0, true);
resumeBtn.caption.text = Config.currentLanguage.resume;
mapBtn.addEventListener(MouseEvent.CLICK, showMap, false, 0, true);
mapBtn.caption.text = Config.currentLanguage.map;
restartBtn.addEventListener(MouseEvent.CLICK, restart, false, 0, true);
restartBtn.caption.text = Config.currentLanguage.restart;
buyBtn.visible = false;
if (Config.downloadable){
buyBtn.addEventListener(MouseEvent.CLICK, buy, false, 0, true);
buyBtn.caption.text = Config.currentLanguage.download;
buyBtn.visible = true;
};
exitBtn.caption.text = Config.currentLanguage.exit_to_menu;
exitBtn.addEventListener(MouseEvent.CLICK, exit, false, 0, true);
exitBtn.visible = true;
}
private function buy(event:MouseEvent=null):void{
var request:URLRequest = new URLRequest(Config.downloadLink);
navigateToURL(request, Config.target);
}
private function showMap(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.5, transition:"linear", onComplete:function ():void{
this.visible = false;
MapWindow.instance.show();
GameController.instance.levelCompleted();
}});
}
private function resumeGame(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.1, transition:"linear", onComplete:function ():void{
this.visible = false;
GameController.instance.resume();
}});
}
public function show():void{
GameController.instance.pause();
this.alpha = 0;
this.visible = true;
Tweener.addTween(this, {alpha:1, time:0.2, transition:"linear"});
}
private function exit(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.5, transition:"linear", onComplete:function ():void{
this.visible = false;
QuitDialog.instance.show();
}});
}
private function restart(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.1, transition:"linear", onComplete:function ():void{
this.visible = false;
GameController.instance.levelCompleted();
LevelBuilder.instance.createLevel(LevelBuilder.currentLevel);
}});
}
}
}//package ui
Section 248
//GameMenuTemplate (ui.GameMenuTemplate)
package ui {
import flash.display.*;
public dynamic class GameMenuTemplate extends MovieClip {
public var exitBtn:MovieClip;
public var mapBtn:MovieClip;
public var restartBtn:MovieClip;
public var resumeBtn:MovieClip;
public var buyBtn:MovieClip;
}
}//package ui
Section 249
//GoalsTemplate (ui.GoalsTemplate)
package ui {
import flash.display.*;
import flash.text.*;
public dynamic class GoalsTemplate extends MovieClip {
public var for_completing:TextField;
public var silverMoney_txt:TextField;
public var silverTime_txt:TextField;
public var collect:TextField;
public var title:TextField;
public var money_txt:TextField;
public var item2:MovieClip;
public var item0:MovieClip;
public var item3:MovieClip;
public var goldTime_txt:TextField;
public var item1:MovieClip;
public var okBtn:MovieClip;
public var goldMoney_txt:TextField;
}
}//package ui
Section 250
//GoalsWindow (ui.GoalsWindow)
package ui {
import flash.events.*;
import flash.display.*;
import game.*;
import utils.*;
import com.melesta.utils.time.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class GoalsWindow extends GoalsTemplate {
public static var instance:GoalsWindow;
public function GoalsWindow(stageInstance:DisplayObjectContainer){
instance = this;
super();
stageInstance.addChild(this);
this.visible = false;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
title.text = Config.currentLanguage.goals;
collect.text = Config.currentLanguage.collect;
for_completing.text = Config.currentLanguage.for_completing;
hideItems();
}
public function hide(event:MouseEvent=null):void{
var event = event;
okBtn.removeEventListener(MouseEvent.CLICK, hide);
GameController.instance.resume();
SoundManager.play("ui_button_click");
LevelBuilder.instance.addHouses();
Tweener.addTween(this, {alpha:0, time:0.5, onComplete:function ():void{
this.visible = false;
}});
}
public function show():void{
var type:Array;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
this.visible = true;
this.alpha = 0;
Tweener.addTween(this, {alpha:1, time:0.5});
hideItems();
var purposes:Array = LevelStatistics.purposes;
var i:int;
while (i < purposes.length) {
type = purposes[i].split(",");
this[("item" + i)].visible = true;
this[("item" + i)].count.text = type[1];
this[("item" + i)].body.gotoAndStop(type[0]);
i++;
};
GameController.instance.pause();
money_txt.text = LevelBuilder.currentLevelXML.@Prize;
goldMoney_txt.text = ("+" + LevelBuilder.currentLevelXML.@GoldPrize);
silverMoney_txt.text = ("+" + LevelBuilder.currentLevelXML.@SilverPrize);
goldTime_txt.text = TimeDecoder.decodeTime(Number(LevelBuilder.currentLevelXML.@GoldTime));
silverTime_txt.text = TimeDecoder.decodeTime(Number(LevelBuilder.currentLevelXML.@SilverTime));
}
public function hideItems():void{
var i:int;
while (i < 4) {
this[("item" + i)].visible = false;
i++;
};
}
}
}//package ui
Section 251
//Leaderboard (ui.Leaderboard)
package ui {
import flash.display.*;
import utils.*;
import mochi.*;
import caurina.transitions.*;
public dynamic class Leaderboard extends MovieClip {
public static var instance:Leaderboard;
public function Leaderboard(){
super();
this.visible = false;
instance = this;
var bd:BitmapData = new BitmapData(570, 430, true, 1879048192);
var bg:Sprite = new Sprite();
bg.addChild(new Bitmap(bd));
addChild(bg);
}
public function close():void{
this.visible = false;
this.alpha = 0;
}
public function sendScore():void{
this.visible = true;
this.alpha = 0;
Tweener.addTween(this, {alpha:1, time:0.5});
MochiServices.connect(Farm2.mochiads_game_id, this);
MochiScores.showLeaderboard({boardID:Farm2.mochi_Leaderboard, score:ResultsWindow.bankNum, name:Config.playerName, res:"570x430", onClose:close, onError:close});
//unresolved jump
var _slot1 = e;
close();
}
public function showInterLeveleAd():void{
MochiServices.connect(Farm2.mochiads_game_id, this);
MochiAd.showInterLevelAd({clip:this, id:"be332e8b811e0179", res:"570x430", onClose:close, ad_finished:close, onError:close});
}
public function show():void{
this.visible = true;
this.alpha = 0;
Tweener.addTween(this, {alpha:1, time:0.5});
MochiServices.connect(Farm2.mochiads_game_id, this);
MochiScores.showLeaderboard({boardID:Farm2.mochi_Leaderboard, res:"570x430", onClose:close, onError:close});
//unresolved jump
var _slot1 = e;
close();
}
}
}//package ui
Section 252
//MapTooltip (ui.MapTooltip)
package ui {
import utils.*;
import caurina.transitions.*;
public class MapTooltip extends TooltipTemplate {
public static var instance:MapTooltip;
public function MapTooltip(){
super();
instance = this;
visible = false;
alpha = 0;
this.mouseChildren = false;
this.mouseEnabled = false;
this.help.arrow.visible = false;
}
public function hide():void{
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:0, time:0, onComplete:function ():void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
}});
}
public function show(posX:Number, posY:Number, level:Number):void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
visible = true;
this.alpha = 0;
this.x = posX;
this.y = posY;
this.help.x = 100;
this.help.y = 75;
if (posX > 300){
this.body.scaleX = -1;
this.help.x = -120;
};
if (posY > 200){
this.help.y = -50;
this.body.scaleY = -1;
};
this.help.caption.text = Config.currentLanguage.levels.level[(level - 1)];
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, time:0.7, delay:1});
}
public function showHelp(posX:Number, posY:Number, caption:String):void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
visible = true;
this.alpha = 0;
this.x = posX;
this.y = posY;
this.help.x = 100;
this.help.y = 75;
if (posX > 300){
this.body.scaleX = -1;
this.help.x = -120;
};
if (posY > 200){
this.help.y = -50;
this.body.scaleY = -1;
};
this.help.caption.text = caption;
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, time:0.7});
}
}
}//package ui
Section 253
//PetShop (ui.PetShop)
package ui {
import flash.display.*;
public class PetShop extends PetShopTemplate {
public static var instance:PetShop;
public static var chickenButton:ShopButton;
public static var catButton:ShopButton;
public static var goatButton:ShopButton;
public function PetShop(){
super();
instance = this;
chickenButton = new ShopButton((getChildByName("chicken") as MovieClip), "CHICKEN", 100);
goatButton = new ShopButton((getChildByName("goat") as MovieClip), "GOAT", 1000);
}
public function update():void{
chickenButton.updateView();
goatButton.updateView();
}
public function getHelp():void{
chickenButton.getHelp();
goatButton.getHelp();
}
}
}//package ui
Section 254
//PetShopTemplate (ui.PetShopTemplate)
package ui {
import flash.display.*;
public dynamic class PetShopTemplate extends MovieClip {
public var goat:MovieClip;
public var chicken:MovieClip;
}
}//package ui
Section 255
//PizzaTooltip (ui.PizzaTooltip)
package ui {
import flash.events.*;
import caurina.transitions.*;
public class PizzaTooltip extends PizzaTooltipTemplate {
public static var instance:PizzaTooltip;
public function PizzaTooltip(){
super();
instance = this;
visible = false;
alpha = 0;
this.mouseChildren = false;
this.mouseEnabled = false;
this.body.mouseEnabled = (this.body.mouseChildren = false);
this.help.mouseEnabled = (this.help.mouseChildren = false);
}
public function hide(event:MouseEvent=null):void{
var event = event;
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:0, time:0.2, onComplete:function ():void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
}});
}
public function show(posX:Number, posY:Number, upgrade:Number, caption:String):void{
this.mouseChildren = false;
this.mouseEnabled = false;
this.body.mouseEnabled = (this.body.mouseChildren = false);
this.help.mouseEnabled = (this.help.mouseChildren = false);
alpha = 0;
this.visible = true;
this.body.scaleX = 1;
this.body.scaleY = 1;
this.help.x = 110;
this.help.y = 77;
if (posX > 300){
this.body.scaleX = -1;
this.help.x = -110;
};
if (posY > 200){
this.help.y = -77;
this.body.scaleY = -1;
};
this.x = posX;
this.y = (posY - 20);
this.help.caption.text = caption;
Tweener.addTween(this, {alpha:1, time:0.5});
this.help.inCount.text = (this.help.outCount.text = ("x" + String(upgrade)));
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, time:0.7, delay:1});
}
}
}//package ui
Section 256
//PurposesWindow (ui.PurposesWindow)
package ui {
import flash.events.*;
import flash.display.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class PurposesWindow extends PurposesWindowTemplate {
public static var instance:PurposesWindow;
public function PurposesWindow(stageInstance:DisplayObjectContainer){
instance = this;
super();
stageInstance.addChild(this);
this.visible = false;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
}
public function hide(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.5, onComplete:function ():void{
this.visible = false;
}});
GameController.instance.resume();
}
public function show():void{
var type:Array;
FArrow.instance.hide();
title.text = Config.currentLanguage.goals;
var j:int;
while (j < 4) {
this[("item" + j)].visible = false;
this[("item" + j)].type_txt.text = "";
this[("item" + j)].count_txt.text = "";
j++;
};
this.visible = true;
this.alpha = 0;
Tweener.addTween(this, {alpha:1, time:0.5});
var purposes:Array = LevelStatistics.purposes;
var i:int;
while (i < purposes.length) {
type = purposes[i].split(",");
this[("item" + i)].visible = true;
this[("item" + i)].type_txt.text = ProductTypes.translate(type[0]);
this[("item" + i)].count_txt.text = ((LevelStatistics.goals[ProductTypes.typeToNumber(type[0])] + "/") + type[1]);
this[("item" + i)].body.gotoAndStop(type[0]);
i++;
};
}
}
}//package ui
Section 257
//PurposesWindowTemplate (ui.PurposesWindowTemplate)
package ui {
import flash.display.*;
import flash.text.*;
public dynamic class PurposesWindowTemplate extends MovieClip {
public var title:TextField;
public var item2:MovieClip;
public var item0:MovieClip;
public var item3:MovieClip;
public var item1:MovieClip;
public var okBtn:MovieClip;
}
}//package ui
Section 258
//QuitDialog (ui.QuitDialog)
package ui {
import flash.events.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class QuitDialog extends QuitDialogTemplate {
public static var instance:QuitDialog;
public function QuitDialog(){
super();
instance = this;
yesBtn.addEventListener(MouseEvent.CLICK, exit, false, 0, true);
noBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
this.alpha = 0;
this.visible = false;
yesBtn.caption.text = Config.currentLanguage.yes;
noBtn.caption.mouseEnabled = false;
yesBtn.caption.mouseEnabled = false;
noBtn.caption.text = Config.currentLanguage.no;
caption.text = Config.currentLanguage.quit_current_game;
yesBtn.addEventListener(MouseEvent.MOUSE_OVER, yesOver, false, 0, true);
noBtn.addEventListener(MouseEvent.MOUSE_OVER, noOver, false, 0, true);
}
private function yesOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
public function hide(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.2, onComplete:function ():void{
this.visible = false;
GameController.instance.resume();
}});
}
private function noOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
public function show():void{
this.visible = true;
Tweener.addTween(this, {alpha:1, time:0.2});
}
private function exit(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.5, transition:"linear", onComplete:function ():void{
this.visible = false;
StartScreen.instance.show();
GameController.instance.levelCompleted();
}});
}
}
}//package ui
Section 259
//QuitMenu (ui.QuitMenu)
package ui {
import flash.events.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
import flash.external.*;
public class QuitMenu extends QuitMenuTemplate {
public static var instance:QuitMenu;
public function QuitMenu(){
super();
instance = this;
yesBtn.addEventListener(MouseEvent.CLICK, exit, false, 0, true);
noBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
this.alpha = 0;
this.visible = false;
yesBtn.caption.text = Config.currentLanguage.yes;
noBtn.caption.text = Config.currentLanguage.no;
caption.text = Config.currentLanguage.quit;
yesBtn.addEventListener(MouseEvent.MOUSE_OVER, yesOver, false, 0, true);
noBtn.addEventListener(MouseEvent.MOUSE_OVER, noOver, false, 0, true);
yesBtn.addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
noBtn.addEventListener(MouseEvent.MOUSE_OUT, out, false, 0, true);
}
public function hide(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
Tweener.addTween(this, {alpha:0, time:0.2, onComplete:function ():void{
this.visible = false;
}});
}
private function noOver(event:MouseEvent=null):void{
event.stopPropagation();
pig.gotoAndStop(2);
SoundManager.play("ui_button_hover");
}
private function exit(event:MouseEvent=null):void{
ExternalInterface.call(Config.closeFunction, "close");
}
private function yesOver(event:MouseEvent=null):void{
event.stopPropagation();
pig.gotoAndStop(3);
SoundManager.play("ui_button_hover");
}
public function show():void{
this.visible = true;
Tweener.addTween(this, {alpha:1, time:0.2});
}
private function out(event:MouseEvent=null):void{
event.stopPropagation();
pig.gotoAndStop(1);
}
}
}//package ui
Section 260
//ResultsWindow (ui.ResultsWindow)
package ui {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import org.flintparticles.twoD.zones.*;
import org.flintparticles.common.initializers.*;
import org.flintparticles.common.actions.*;
import org.flintparticles.common.counters.*;
import flash.utils.*;
import shop.*;
import map.*;
import game.*;
import market.road.*;
import org.flintparticles.twoD.emitters.*;
import utils.*;
import org.flintparticles.twoD.renderers.*;
import org.flintparticles.twoD.actions.*;
import org.flintparticles.twoD.initializers.*;
import org.flintparticles.common.energyEasing.*;
import org.flintparticles.common.displayObjects.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class ResultsWindow extends ResultsWindowTemplate {
private var emitter:Emitter2D;
private var currentScore:Number;// = 0
private var deltaScore:Number;// = 0
private var addScoreTimer:Timer;
private var prewScore:Number;// = 0
public static var effectContainer:DisplayObjectContainer;
public static var bankNum:Number = 0;
public static var instance:ResultsWindow;
public function ResultsWindow(stageInstance:DisplayObjectContainer){
super();
instance = this;
stageInstance.addChild(this);
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
this.visible = false;
emitter = new Emitter2D();
effectContainer = stageInstance;
addScoreTimer = new Timer(10);
addScoreTimer.addEventListener(TimerEvent.TIMER, incrementScore, false, 0, true);
coins_txt.text = Config.currentLanguage.coins;
bank_txt.text = Config.currentLanguage.bank;
time_txt.text = Config.currentLanguage.time;
bonus_txt.text = Config.currentLanguage.bonus;
createEffect();
}
public function hide(event:MouseEvent=null):void{
var event = event;
Tweener.addTween(this, {alpha:0, time:0.4, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
GameController.instance.levelCompleted();
MapWindow.instance.show();
bonus.text = String(currentScore);
addScoreTimer.stop();
this.cup.visible = false;
}
private function incrementScore(event:TimerEvent):void{
if (prewScore < currentScore){
prewScore = (prewScore + deltaScore);
bonus.text = String(prewScore);
SoundManager.play("tick_time");
} else {
prewScore = currentScore;
emitter.start();
addScoreTimer.stop();
};
}
public function createEffect():void{
emitter.counter = new Blast(500);
emitter.addInitializer(new SharedImage(new Star(7)));
emitter.addInitializer(new ColorInit(4294967040, 4294927872));
emitter.addInitializer(new Velocity(new DiscSectorZone(new Point(-100, -200), 500, 0, -90, -91)));
emitter.addInitializer(new Lifetime(0.5));
emitter.addAction(new Age(Quadratic.easeIn));
emitter.addAction(new Move());
emitter.addAction(new Fade());
emitter.addAction(new Accelerate(0, 3000));
var renderer:BitmapRenderer = new BitmapRenderer(new Rectangle(0, 0, 570, 430));
renderer.addEmitter(emitter);
effectContainer.addChild(renderer);
emitter.x = 400;
emitter.y = 200;
}
public function addScore(value:Number):void{
prewScore = currentScore;
currentScore = value;
deltaScore = Math.round(((currentScore - prewScore) / 10));
}
public function show():void{
var addBonus:Number;
BlockTooltip.instance.hide();
Tooltip.instance.hide();
WaterTooltip.instance.hide();
prewScore = 0;
currentScore = 0;
deltaScore = 0;
GameController.instance.pause();
FArrow.instance.hide();
if ((((LevelBuilder.currentLevel >= LevelBuilder.maxLevel)) && ((LevelBuilder.currentLevel < 20)))){
LevelBuilder.maxLevel = (LevelBuilder.currentLevel + 1);
};
title.text = Config.currentLanguage.level_results;
bankNum = (bankNum + Road.currentMoney);
MapNode.nodeList[(LevelBuilder.currentLevel - 1)].state = BottomPanel.instance.state;
coins.text = LevelBuilder.currentLevelXML.@Prize;
addBonus = 0;
if (BottomPanel.instance.state == "gold"){
addBonus = Number(LevelBuilder.currentLevelXML.@GoldPrize);
cup.gotoAndStop(1);
cup.visible = true;
addScore(addBonus);
};
if (BottomPanel.instance.state == "silver"){
addBonus = Number(LevelBuilder.currentLevelXML.@SilverPrize);
cup.gotoAndStop(2);
cup.visible = true;
addScore(addBonus);
};
if (BottomPanel.instance.state == "normal"){
bonus.text = "0";
cup.visible = false;
};
ShopWindow.instance.stars = (ShopWindow.instance.stars + (Number(bonus.text) + Number(LevelBuilder.currentLevelXML.@Prize)));
bank.text = String(bankNum);
if (Farm2.mail_ru_connection){
Farm2.mail_ru_connection.send(Farm2.connection_name, "cacheResult", bankNum);
//unresolved jump
var _slot1 = e;
};
if (Farm2.portal == "rambler"){
Farm2.instance.sendRamblerScore(bankNum);
//unresolved jump
var _slot1 = error;
};
time.text = BottomPanel.instance.time_txt.text;
this.visible = true;
this.alpha = 0;
SoundManager.play("fanfare_level_complete", 1);
Tweener.addTween(this, {alpha:1, time:0.5, transition:"linear", delay:0.5, onComplete:function ():void{
if (addBonus > 0){
addScoreTimer.start();
};
}});
}
}
}//package ui
Section 261
//ResultsWindowTemplate (ui.ResultsWindowTemplate)
package ui {
import flash.display.*;
import flash.text.*;
public dynamic class ResultsWindowTemplate extends MovieClip {
public var time_txt:TextField;
public var coins:TextField;
public var bonus:TextField;
public var bank:TextField;
public var cup:MovieClip;
public var bonus_txt:TextField;
public var title:TextField;
public var coins_txt:TextField;
public var time:TextField;
public var okBtn:MovieClip;
public var bank_txt:TextField;
}
}//package ui
Section 262
//ShopButton (ui.ShopButton)
package ui {
import flash.events.*;
import flash.display.*;
import market.road.*;
import pets.*;
import utils.*;
public class ShopButton extends MovieClip {
private var _cost:Number;// = 0
public var type:String;
private var _helpShowed:Boolean;// = false
private var _icon:MovieClip;
public static var ADD_PET:String = "add_pet";
public function ShopButton(icon:MovieClip, t:String, cost:Number){
super();
_cost = cost;
type = t;
_icon = icon;
_icon.addEventListener(MouseEvent.CLICK, addPet, false, 0, true);
}
private function down(event:MouseEvent=null):void{
event.stopPropagation();
if (_icon.active){
this._icon.gotoAndStop("press");
};
}
private function out(event:MouseEvent=null):void{
event.stopPropagation();
if (_icon.active){
this._icon.gotoAndStop("active");
};
Tooltip.instance.hide();
}
public function updateView(event:Event=null):void{
if (this._cost <= Road.currentMoney){
this._icon.gotoAndStop("active");
this._icon.active = true;
} else {
this._icon.active = false;
this._icon.gotoAndStop("lock");
};
}
public function getHelp():void{
if (((((!(_helpShowed)) && ((Road.currentMoney >= this._cost)))) && (!(Config.skiped)))){
_helpShowed = true;
BlockTooltip.instance.show((this._icon.x - 5), (this.y + 60), Config.currentLanguage.buy.descendants(type.toLowerCase()));
};
}
private function over(event:MouseEvent=null):void{
event.stopPropagation();
if (_icon.active){
this._icon.gotoAndStop("over");
Tooltip.instance.show((this._icon.x - 10), (this.y + 70), type, 0, type);
};
}
private function addPet(event:MouseEvent=null):void{
if (_icon.active){
event.stopPropagation();
this._icon.gotoAndStop("active");
PetsContainer.instance.addPet(type);
Road.instance.addMoney(-(_cost));
};
}
}
}//package ui
Section 263
//ShopTooltip (ui.ShopTooltip)
package ui {
import caurina.transitions.*;
public class ShopTooltip extends TooltipTemplate {
public static var instance:ShopTooltip;
public function ShopTooltip(){
super();
instance = this;
visible = false;
alpha = 0;
this.mouseChildren = false;
this.mouseEnabled = false;
}
public function hide():void{
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:0, time:0.2, onComplete:function ():void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
}});
}
public function show(posX:Number, posY:Number, output:String, upgrade:Number, caption:String=""):void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
visible = true;
this.alpha = 0;
this.x = posX;
this.y = (this.y - 15);
this.help.x = 100;
this.help.y = 75;
if (posX > 300){
this.body.scaleX = -1;
this.help.x = -120;
this.x = posX;
};
if (posY > 200){
this.help.y = -50;
this.body.scaleY = -1;
};
this.help.gotoAndStop(output);
this.help.inCount.text = (this.help.outCount.text = ("x" + String(upgrade)));
this.help.arrow.visible = true;
this.help.caption.text = caption;
switch (output){
case "warehouse":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
break;
case "cage":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
break;
case "car":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
break;
case "plane":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
break;
case "well":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
break;
case "powdered":
this.help.gotoAndStop("DRIED_EGGS");
break;
case "dough_factory":
this.help.gotoAndStop("DOUGH");
break;
case "curd_factory":
this.help.gotoAndStop("CURDS");
break;
case "cheese_factory":
this.help.gotoAndStop("CHEESE");
break;
default:
break;
};
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, time:0.7, delay:0.2});
this.y = (posY - 40);
}
}
}//package ui
Section 264
//SimpleTooltip (ui.SimpleTooltip)
package ui {
import flash.events.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class SimpleTooltip extends SimpleTooltipTemplate {
public static var instance:SimpleTooltip;
public function SimpleTooltip(){
super();
instance = this;
visible = false;
okBtn.caption.text = Config.currentLanguage.ok;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
okBtn.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
}
public function hide(event:MouseEvent=null):void{
this.visible = false;
SoundManager.play("ui_button_click");
}
public function down(event:MouseEvent=null):void{
okBtn.gotoAndStop(3);
}
public function show(caption:String):void{
this.caption.text = caption;
this.visible = true;
alpha = 0;
Tweener.addTween(this, {alpha:1, time:0.5});
}
}
}//package ui
Section 265
//SkipEducationDialog (ui.SkipEducationDialog)
package ui {
import flash.events.*;
import map.*;
import game.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class SkipEducationDialog extends QuitDialogTemplate {
public static var instance:SkipEducationDialog;
public function SkipEducationDialog(){
super();
instance = this;
yesBtn.addEventListener(MouseEvent.CLICK, skip, false, 0, true);
noBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
yesBtn.stop();
noBtn.stop();
this.alpha = 0;
this.visible = false;
yesBtn.caption.text = Config.currentLanguage.yes;
noBtn.caption.mouseEnabled = false;
yesBtn.caption.mouseEnabled = false;
noBtn.caption.text = Config.currentLanguage.no;
caption.text = Config.currentLanguage.skip_educational_levels;
yesBtn.addEventListener(MouseEvent.MOUSE_OVER, yesOver, false, 0, true);
noBtn.addEventListener(MouseEvent.MOUSE_OVER, noOver, false, 0, true);
}
private function yesOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
public function hide(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
MapWindow.instance.startFirstLevel();
Tweener.addTween(this, {alpha:0, time:0.2, onComplete:function ():void{
this.visible = false;
GameController.instance.resume();
}});
}
private function noOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
public function show():void{
this.visible = true;
Tweener.addTween(this, {alpha:1, time:0.2});
}
private function skip(event:MouseEvent=null):void{
var event = event;
SoundManager.play("ui_button_click");
MapWindow.instance.skipEducation();
Tweener.addTween(this, {alpha:0, time:0.5, transition:"linear", onComplete:function ():void{
this.visible = false;
}});
}
}
}//package ui
Section 266
//StartScreen (ui.StartScreen)
package ui {
import flash.events.*;
import flash.display.*;
import game.assets.*;
import flash.net.*;
import map.*;
import utils.*;
import com.melesta.sound.*;
import caurina.transitions.*;
import flash.external.*;
import flash.ui.*;
public class StartScreen extends StartScreenTemplate {
private var paramObj:Object;
private var _firstClick:Boolean;// = false
public static var instance:StartScreen;
public static var kongregate;
public static var firstShow:Boolean = true;
public function StartScreen(){
var api_url:String;
var request:URLRequest;
var loader:Loader;
paramObj = new Object();
super();
instance = this;
okBtn.addEventListener(MouseEvent.CLICK, hide, false, 0, true);
this.alpha = 0;
okBtn.stop();
okBtn.caption.text = Config.currentLanguage.start;
soundBtn.caption.text = Config.currentLanguage.sounds;
musicBtn.caption.text = Config.currentLanguage.music;
if (Config.language == "ru"){
logo.gotoAndStop("ru");
alawar.gotoAndStop("ru");
} else {
logo.gotoAndStop("en");
alawar.gotoAndStop("en");
};
if (FarmPreloader.externalLogo){
logo.visible = false;
FarmPreloader.externalLogo.x = (FarmPreloader.externalLogo.y = 0);
addChild(FarmPreloader.externalLogo);
};
buyBtn.visible = true;
buyBtn.stop();
buyBtn.caption.text = Config.currentLanguage.download_full_version;
buyBtn.visible = false;
if (Config.downloadable){
buyBtn.addEventListener(MouseEvent.CLICK, buy, false, 0, true);
buyBtn.visible = true;
};
buyBtn.caption.mouseEnabled = false;
okBtn.caption.mouseEnabled = false;
exitBtn.caption.mouseEnabled = false;
okBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
buyBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
exitBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
soundBtn.addEventListener(MouseEvent.CLICK, switchSound, false, 0, true);
musicBtn.addEventListener(MouseEvent.CLICK, switchMusic, false, 0, true);
playerPanel.editBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOver, false, 0, true);
soundBtn.mouseChildren = false;
soundBtn.buttonMode = true;
musicBtn.buttonMode = true;
musicBtn.mouseChildren = false;
playerPanel.visible = false;
exitBtn.visible = false;
if ((((Config.closeFunction.length > 0)) && (!((Farm2.portal == "mail.ru"))))){
exitBtn.visible = true;
exitBtn.addEventListener(MouseEvent.CLICK, exit, false, 0, true);
};
exitBtn.caption.text = Config.currentLanguage.exit;
if (Farm2.portal == "mail.ru"){
soundBtn.y = 259;
musicBtn.y = 295;
exitBtn.visible = true;
exitBtn.addEventListener(MouseEvent.CLICK, exitMailRu, false, 0, true);
};
if (Farm2.portal == "mochi"){
exitBtn.visible = true;
exitBtn.addEventListener(MouseEvent.CLICK, showLeaderboard, false, 0, true);
exitBtn.caption.text = Config.currentLanguage.leaderboard;
playerPanel.visible = true;
playerPanel.welcome.text = Config.currentLanguage.welcome;
playerPanel.editBtn.caption.text = Config.currentLanguage.change;
playerPanel.playerName.mouseEnabled = false;
playerPanel.editBtn.addEventListener(MouseEvent.CLICK, editUsername, false, 0, true);
playerPanel.playerName.background = false;
playerPanel.playerName.border = false;
};
if (Farm2.portal == "kongregeat"){
playerPanel.visible = true;
playerPanel.welcome.text = Config.currentLanguage.welcome;
playerPanel.editBtn.visible = false;
playerPanel.playerName.mouseEnabled = false;
playerPanel.playerName.text = "";
paramObj = Farm2._loaderInfo;
//unresolved jump
var _slot1 = e;
api_url = ((paramObj.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf"));
request = new URLRequest(api_url);
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, kongregateLoadComplete);
loader.load(request);
this.addChild(loader);
};
if (Farm2.portal == "rambler"){
exitBtn.visible = true;
exitBtn.addEventListener(MouseEvent.CLICK, closeRamblerGame, false, 0, true);
};
}
private function editUsername(event:MouseEvent=null):void{
playerPanel.playerName.mouseEnabled = true;
playerPanel.playerName.background = true;
playerPanel.playerName.textColor = 0;
playerPanel.playerName.border = true;
playerPanel.playerName.setSelection(0, 100);
playerPanel.editBtn.caption.text = Config.currentLanguage.ok;
playerPanel.editBtn.removeEventListener(MouseEvent.CLICK, editUsername);
playerPanel.editBtn.addEventListener(MouseEvent.CLICK, saveUsername, false, 0, true);
Config.playerName = playerPanel.playerName.text;
playerPanel.playerName.addEventListener(KeyboardEvent.KEY_DOWN, enterPressed, false, 0, true);
}
private function getKongregateUserData(event=null):void{
kongregate.user.getName();
kongregate.user.getPlayerInfo(onKongregateUserInfo);
}
private function exitMailRu(event:MouseEvent=null):void{
var event = event;
if (((Farm2.mail_ru_connection) && ((Farm2.portal == "mail.ru")))){
Farm2.mail_ru_connection.send(Farm2.connection_name, "closeGame");
//unresolved jump
var _slot1 = e;
};
}
public function switchSound(event:MouseEvent=null):void{
if (!SoundsList.mute){
soundBtn.gotoAndStop("off");
SoundsList.mute = true;
SoundManager.mute();
} else {
soundBtn.gotoAndStop("on");
SoundsList.mute = false;
SoundManager.resume();
};
}
public function hide(event:MouseEvent=null):void{
if (!SoundsList.muteMusic){
if (SoundsList.menuMusicSound){
SoundsList.menuMusicChannel.stop();
};
};
if (!SoundsList.muteMusic){
if (SoundsList.gameMusicSound){
SoundsList.gameMusicChannel = SoundsList.gameMusicSound.play(0, 1000);
};
};
SoundManager.play("ui_button_click");
startGame();
Tweener.addTween(this, {alpha:0, time:0.5});
PlayGround.instance.alpha = 1;
MapWindow.instance.addChild(musicBtn);
MapWindow.instance.addChild(soundBtn);
musicBtn.container = "map";
}
private function saveUsername(event:MouseEvent=null):void{
playerPanel.playerName.mouseEnabled = false;
playerPanel.playerName.background = false;
playerPanel.playerName.border = false;
playerPanel.playerName.textColor = 0xFFFFFF;
playerPanel.editBtn.caption.text = Config.currentLanguage.change;
playerPanel.editBtn.addEventListener(MouseEvent.CLICK, editUsername, false, 0, true);
playerPanel.editBtn.removeEventListener(MouseEvent.CLICK, saveUsername);
Config.playerName = playerPanel.playerName.text;
}
private function buy(event:MouseEvent=null):void{
var request:URLRequest = new URLRequest(Config.downloadLink);
navigateToURL(request, Config.target);
}
private function closeRamblerGame(event:MouseEvent=null):void{
var event = event;
trace("Close rambler");
Farm2.instance.sendRamblerScore(ResultsWindow.bankNum);
Farm2.instance.closeGame();
ExternalInterface.call("window.close()");
//unresolved jump
var _slot1 = error;
ExternalInterface.call("window.close()");
//unresolved jump
var _slot1 = error;
}
private function btnOver(event:MouseEvent=null):void{
event.stopPropagation();
SoundManager.play("ui_button_hover");
}
private function enterPressed(event:KeyboardEvent=null):void{
if (event.keyCode == Keyboard.ENTER){
playerPanel.playerName.background = false;
playerPanel.playerName.textColor = 0xFFFFFF;
playerPanel.playerName.border = false;
playerPanel.playerName.mouseEnabled = false;
playerPanel.editBtn.caption.text = Config.currentLanguage.change;
playerPanel.editBtn.addEventListener(MouseEvent.CLICK, editUsername, false, 0, true);
playerPanel.editBtn.removeEventListener(MouseEvent.CLICK, saveUsername);
Config.playerName = playerPanel.playerName.text;
playerPanel.playerName.removeEventListener(KeyboardEvent.KEY_DOWN, enterPressed);
};
}
private function onKongregateUserInfo(playerData:Object):void{
trace(playerData);
if (!playerData.isGuest){
if (playerData.name != undefined){
playerPanel.playerName.text = String(playerData.name);
} else {
playerPanel.visible = false;
};
};
}
public function switchMusic(event:MouseEvent=null):void{
if (!SoundsList.muteMusic){
musicBtn.gotoAndStop("off");
SoundsList.muteMusic = true;
if (musicBtn.container == "menu"){
if (SoundsList.menuMusicChannel){
SoundsList.menuMusicChannel.stop();
};
} else {
if (SoundsList.gameMusicChannel){
SoundsList.gameMusicChannel.stop();
};
};
} else {
musicBtn.gotoAndStop("on");
if (musicBtn.container == "menu"){
if (SoundsList.menuMusicChannel){
SoundsList.menuMusicChannel = SoundsList.menuMusicSound.play(1);
};
} else {
if (SoundsList.gameMusicChannel){
SoundsList.gameMusicChannel = SoundsList.gameMusicSound.play(1);
};
};
SoundsList.muteMusic = false;
};
}
private function showLeaderboard(event:MouseEvent=null):void{
Leaderboard.instance.show();
}
private function kongregateLoadComplete(event:Event=null):void{
kongregate = event.target.content;
kongregate.services.connect();
getKongregateUserData();
}
private function startGame(event:MouseEvent=null):void{
this.visible = false;
if (!_firstClick){
MapWindow.instance.startGame();
} else {
MapWindow.instance.show();
};
_firstClick = true;
}
public function show():void{
if (firstShow){
firstShow = false;
if (((Farm2.mail_ru_connection) && ((Farm2.portal == "mail.ru")))){
Farm2.mail_ru_connection.send(Farm2.connection_name, "startGame");
//unresolved jump
var _slot1 = e;
};
};
this.visible = true;
Tweener.addTween(this, {alpha:1, time:1});
if (!SoundsList.muteMusic){
if (SoundsList.menuMusicSound){
SoundsList.menuMusicChannel = SoundsList.menuMusicSound.play(1);
};
if (SoundsList.gameMusicChannel){
SoundsList.gameMusicChannel.stop();
};
};
musicBtn.container = "menu";
addChild(musicBtn);
addChild(soundBtn);
}
private function exit(event:MouseEvent=null):void{
QuitMenu.instance.show();
}
public function submitKongregateScore(score:Number=0):void{
var score = score;
kongregate.scores.submit(score);
//unresolved jump
var _slot1 = error;
}
}
}//package ui
Section 267
//Tooltip (ui.Tooltip)
package ui {
import utils.*;
import caurina.transitions.*;
public class Tooltip extends TooltipTemplate {
public static var instance:Tooltip;
public function Tooltip(){
super();
instance = this;
visible = false;
alpha = 0;
this.mouseChildren = false;
this.mouseEnabled = false;
this.body.mouseEnabled = (this.body.mouseChildren = false);
this.help.mouseEnabled = (this.help.mouseChildren = false);
}
public function hide():void{
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:0, time:0.2, onComplete:function ():void{
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
}});
}
public function show(posX:Number, posY:Number, output:String, upgrade:Number, caption:String=""):void{
this.mouseChildren = false;
this.mouseEnabled = false;
this.body.mouseEnabled = (this.body.mouseChildren = false);
this.help.mouseEnabled = (this.help.mouseChildren = false);
this.visible = false;
this.body.scaleX = 1;
this.body.scaleY = 1;
visible = true;
this.alpha = 0;
this.x = (posX + 20);
this.help.x = 100;
this.help.y = 75;
if (posX > 300){
this.body.scaleX = -1;
this.help.x = -120;
this.x = (posX - 20);
};
if (posY > 200){
this.help.y = -50;
this.body.scaleY = -1;
};
this.help.gotoAndStop(output);
this.help.inCount.text = (this.help.outCount.text = ("x" + String(upgrade)));
this.help.arrow.visible = true;
this.help.caption.text = caption;
switch (output){
case "CHICKEN":
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
this.help.caption.text = ProductTypes.translate(caption, true);
break;
case "GOALS":
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
this.help.caption.text = Config.currentLanguage.tooltips.goals;
break;
case "GOAT":
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
this.help.caption.text = ProductTypes.translate(caption, true);
break;
case "DEPOT":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
this.help.caption.text = Config.currentLanguage.warehouse.@tooltip;
break;
case "WELL":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
this.help.caption.text = Config.currentLanguage.well.@tooltip;
break;
case "WELL_EMPTY":
this.help.gotoAndStop(1);
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = false;
this.help.caption.text = caption;
break;
case "CAR":
this.help.outCount.text = (this.help.inCount.text = "");
this.help.arrow.visible = true;
this.help.gotoAndStop("DEPOT");
this.help.caption.text = Config.currentLanguage.car;
break;
case "PLANE":
this.help.outCount.text = (this.help.inCount.text = "");
this.help.caption.text = Config.currentLanguage.plane;
break;
default:
break;
};
Tweener.removeTweens(this);
Tweener.addTween(this, {alpha:1, time:0.7, delay:1});
this.y = (posY - 40);
}
}
}//package ui
Section 268
//WaterTooltip (ui.WaterTooltip)
package ui {
import flash.events.*;
import utils.*;
import caurina.transitions.*;
public class WaterTooltip extends WaterTooltipTemplate {
public static var firstShow:Boolean = true;
public static var instance:WaterTooltip;
public function WaterTooltip(){
super();
instance = this;
visible = false;
this.alpha = 0;
this.mouseEnabled = false;
this.mouseChildren = false;
}
public function hide(event:MouseEvent=null):void{
firstShow = false;
this.visible = false;
}
public function show():void{
if (((firstShow) && (!(Config.skiped)))){
this.visible = true;
Tweener.addTween(this, {alpha:1, time:1, delay:1});
this.caption.text = Config.currentLanguage.tooltips.click_the_ground;
this.x = 280;
this.y = 200;
visible = true;
};
}
}
}//package ui
Section 269
//WorkLine (ui.WorkLine)
package ui {
public class WorkLine extends WorkLineTemplate {
public function WorkLine(){
super();
this.line.height = 0;
this.mouseEnabled = (this.mouseChildren = false);
}
public function setProgress(value:Number):void{
this.line.height = value;
}
}
}//package ui
Section 270
//Config (utils.Config)
package utils {
public class Config {
public static var target:String = "_blank";
public static var downloadLink:String = "http://www.alawar.ru/download/FarmFrenzyPizzaParty.exe";
public static var use_cheats:Boolean = false;
public static var closeFunction:String = "";
public static var currentLevel:Number = 0;
public static var playerName:String = "Player1";
public static var downloadable:Boolean = true;
public static var currentLanguage:XML;
private static var LevelesRecords:XML = <Records LocalTag="Levels" EducationalLevelsNum="11">
<record StartMoney="90" Name="Яичная 1" GoldTime="60" SilverTime="120" Prize="20" SilverPrize="30" GoldPrize="50" BearKillingNum="0">
<StartPets>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="0" Val="2" EndlessStars="4" EndlessLevel="0"/>
</Goals>
<BearTimes/>
<Houses/>
</record>
<record StartMoney="90" Name="Яичная 2" GoldTime="90" SilverTime="150" Prize="50" SilverPrize="70" GoldPrize="100" BearKillingNum="0">
<StartPets>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="0" Val="4" EndlessStars="6" EndlessLevel="0"/>
<goal Type="13" Val="2" EndlessStars="15" EndlessLevel="0"/>
</Goals>
<Houses/>
<Accessibility/>
<AccessProduct/>
</record>
<record StartMoney="140" Name="Яичная 3" GoldTime="140" SilverTime="200" Prize="100" SilverPrize="120" GoldPrize="150" BearKillingNum="0">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="0" Val="8" EndlessStars="6" EndlessLevel="0"/>
<goal Type="1" Val="4" EndlessStars="8" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="40"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="0"/>
</Houses>
<Accessibility>
<c CritID="0" Value="1"/>
</Accessibility>
</record>
<record StartMoney="200" Name="Перекресток 1" GoldTime="120" SilverTime="180" Prize="100" SilverPrize="120" GoldPrize="150" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="3" Val="2" EndlessStars="16" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="8"/>
<t Type="0" Time="24"/>
<t Type="0" Time="64"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="0"/>
<h Type="1" PosIndex="3" Upgrade="0"/>
</Houses>
<Accessibility>
<c CritID="1" Value="1"/>
</Accessibility>
<AccessProduct>
<c Product="4"/>
<c Product="5"/>
<c Product="2"/>
<c Product="6"/>
</AccessProduct>
</record>
<record StartMoney="0" Name="Мучная 1" GoldTime="210" SilverTime="270" Prize="110" SilverPrize="130" GoldPrize="180" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="1" Val="12" EndlessStars="48" EndlessLevel="0"/>
<goal Type="3" Val="6" EndlessStars="1" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="12"/>
<t Type="0" Time="48"/>
<t Type="0" Time="60"/>
<t Type="0" Time="60.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="1" Upgrade="0"/>
<h Type="1" PosIndex="4" Upgrade="1"/>
</Houses>
<Accessibility>
<c CritID="0" Value="2"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="500" Name="Мучная 2" GoldTime="210" SilverTime="270" Prize="110" SilverPrize="130" GoldPrize="180" BearKillingNum="1">
<StartPets/>
<Goals>
<goal Type="0" Val="6" EndlessStars="20" EndlessLevel="0"/>
<goal Type="3" Val="10" EndlessStars="20" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="22"/>
<t Type="0" Time="44"/>
<t Type="0" Time="88"/>
<t Type="0" Time="172"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="1" Upgrade="1"/>
<h Type="1" PosIndex="4" Upgrade="1"/>
</Houses>
<Accessibility>
<c CritID="1" Value="2"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="400" Name="Мучная 3" GoldTime="190" SilverTime="230" Prize="110" SilverPrize="140" GoldPrize="200" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="1" Val="20" EndlessStars="64" EndlessLevel="0"/>
<goal Type="3" Val="10" EndlessStars="96" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="16"/>
<t Type="0" Time="16.1"/>
<t Type="0" Time="42"/>
<t Type="0" Time="42.1"/>
<t Type="0" Time="84"/>
<t Type="0" Time="84.1"/>
<t Type="0" Time="128"/>
<t Type="0" Time="128.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="2"/>
<h Type="1" PosIndex="3" Upgrade="2"/>
</Houses>
<Accessibility>
<c CritID="0" Value="3"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="750" Name="Мучная 4" GoldTime="200" SilverTime="260" Prize="120" SilverPrize="140" GoldPrize="250" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="1" Val="30" EndlessStars="128" EndlessLevel="0"/>
<goal Type="3" Val="20" EndlessStars="128" EndlessLevel="0"/>
<goal Type="14" Val="2" EndlessStars="80" EndlessLevel="1"/>
</Goals>
<BearTimes>
<t Type="0" Time="20"/>
<t Type="0" Time="20.1"/>
<t Type="0" Time="60"/>
<t Type="0" Time="60.1"/>
<t Type="0" Time="120.1"/>
<t Type="0" Time="120.1"/>
<t Type="0" Time="180.1"/>
<t Type="0" Time="180.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="3"/>
<h Type="1" PosIndex="3" Upgrade="2"/>
</Houses>
<Accessibility>
<c CritID="1" Value="3"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="450" Name="Мучная 5" GoldTime="260" SilverTime="320" Prize="140" SilverPrize="150" GoldPrize="300" BearKillingNum="1">
<StartPets/>
<Goals>
<goal Type="1" Val="40" EndlessStars="30" EndlessLevel="0"/>
<goal Type="13" Val="10" EndlessStars="160" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="54"/>
<t Type="0" Time="180"/>
<t Type="0" Time="180.1"/>
<t Type="0" Time="180.2"/>
<t Type="0" Time="240"/>
<t Type="0" Time="240.1"/>
<t Type="0" Time="320"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="3"/>
<h Type="1" PosIndex="3" Upgrade="3"/>
</Houses>
<Accessibility>
<c CritID="0" Value="4"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="250" Name="Мучная 6" GoldTime="260" SilverTime="320" Prize="300" SilverPrize="310" GoldPrize="350" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="3" Val="30" EndlessStars="120" EndlessLevel="0"/>
<goal Type="13" Val="5" EndlessStars="240" EndlessLevel="0"/>
<goal Type="14" Val="2" EndlessStars="240" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="15"/>
<t Type="0" Time="15.1"/>
<t Type="0" Time="45"/>
<t Type="0" Time="90"/>
<t Type="0" Time="90.1"/>
<t Type="0" Time="160"/>
<t Type="0" Time="200"/>
<t Type="0" Time="200.1"/>
<t Type="0" Time="200.2"/>
<t Type="0" Time="260"/>
<t Type="0" Time="320"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="1" Upgrade="4"/>
<h Type="1" PosIndex="4" Upgrade="3"/>
</Houses>
<Accessibility>
<c CritID="1" Value="4"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="500" Name="Мучная 7" GoldTime="260" SilverTime="320" Prize="4900" SilverPrize="5000" GoldPrize="5500" BearKillingNum="1">
<StartPets>
<Pet Type="1"/>
</StartPets>
<Goals>
<goal Type="3" Val="50" EndlessStars="25" EndlessLevel="0"/>
<goal Type="1" Val="50" EndlessStars="320" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="15"/>
<t Type="0" Time="15.1"/>
<t Type="0" Time="90"/>
<t Type="0" Time="90.1"/>
<t Type="0" Time="160"/>
<t Type="0" Time="160.1"/>
<t Type="0" Time="220"/>
<t Type="0" Time="220.1"/>
<t Type="0" Time="280"/>
<t Type="0" Time="280.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="4"/>
<h Type="1" PosIndex="3" Upgrade="4"/>
</Houses>
<Accessibility>
<c CritID="0" Value="5"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="19990" Name="Французская 1" GoldTime="240" SilverTime="300" Prize="190" SilverPrize="200" GoldPrize="250" BearKillingNum="2">
<StartPets>
<Pet Type="0"/>
<Pet Type="1"/>
<Pet Type="1"/>
</StartPets>
<Goals>
<goal Type="10" Val="1" EndlessStars="3000" EndlessLevel="1"/>
<goal Type="3" Val="5" EndlessStars="5000" EndlessLevel="1"/>
<goal Type="5" Val="1" EndlessStars="7500" EndlessLevel="2"/>
<goal Type="4" Val="1" EndlessStars="7500" EndlessLevel="2"/>
</Goals>
<BearTimes>
<t Type="0" Time="60"/>
<t Type="0" Time="60.1"/>
<t Type="1" Time="60.2"/>
<t Type="0" Time="160"/>
<t Type="0" Time="160.1"/>
<t Type="1" Time="160.2"/>
<t Type="0" Time="260"/>
<t Type="0" Time="260.1"/>
<t Type="1" Time="260.2"/>
<t Type="0" Time="360"/>
<t Type="0" Time="360.1"/>
<t Type="1" Time="360.2"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="3" Upgrade="5"/>
<h Type="4" PosIndex="1" Upgrade="0"/>
</Houses>
<Accessibility>
<c CritID="4" Value="1"/>
</Accessibility>
<AccessProduct>
<c Product="4"/>
<c Product="5"/>
<c Product="2"/>
<c Product="6"/>
</AccessProduct>
</record>
<record StartMoney="0" Name="Перекресток 2" GoldTime="200" SilverTime="260" Prize="290" SilverPrize="300" GoldPrize="350" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="4" Val="2" EndlessStars="160" EndlessLevel="0"/>
<goal Type="3" Val="20" EndlessStars="320" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="12"/>
<t Type="0" Time="24"/>
<t Type="0" Time="58"/>
<t Type="0" Time="58.1"/>
<t Type="0" Time="118"/>
<t Type="0" Time="118.1"/>
<t Type="0" Time="118.2"/>
<t Type="0" Time="174"/>
<t Type="0" Time="197"/>
<t Type="0" Time="240"/>
<t Type="0" Time="240.1"/>
<t Type="0" Time="320"/>
<t Type="0" Time="320.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="2" Upgrade="5"/>
<h Type="2" PosIndex="3" Upgrade="0"/>
</Houses>
<Accessibility>
<c CritID="2" Value="1"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
</AccessProduct>
</record>
<record StartMoney="0" Name="Творожная 1" GoldTime="180" SilverTime="240" Prize="240" SilverPrize="250" GoldPrize="300" BearKillingNum="0">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="1"/>
</StartPets>
<Goals>
<goal Type="4" Val="1" EndlessStars="20" EndlessLevel="0"/>
<goal Type="8" Val="1" EndlessStars="40" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="35"/>
<t Type="0" Time="35.1"/>
<t Type="0" Time="93.1"/>
<t Type="0" Time="166"/>
<t Type="0" Time="166.1"/>
<t Type="0" Time="166.2"/>
<t Type="0" Time="241"/>
<t Type="0" Time="241.1"/>
<t Type="0" Time="241.2"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="2" Upgrade="5"/>
<h Type="2" PosIndex="3" Upgrade="0"/>
<h Type="3" PosIndex="5" Upgrade="0"/>
</Houses>
<Accessibility>
<c CritID="3" Value="1"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
<c Product="9"/>
</AccessProduct>
</record>
<record StartMoney="1000" Name="Творожная 2" GoldTime="235" SilverTime="315" Prize="390" SilverPrize="400" GoldPrize="500" BearKillingNum="1">
<StartPets/>
<Goals>
<goal Type="4" Val="12" EndlessStars="240" EndlessLevel="0"/>
<goal Type="14" Val="3" EndlessStars="80" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="12"/>
<t Type="0" Time="33"/>
<t Type="1" Time="33.1"/>
<t Type="0" Time="180"/>
<t Type="0" Time="180.1"/>
<t Type="1" Time="180.2"/>
<t Type="1" Time="260"/>
<t Type="1" Time="261"/>
<t Type="1" Time="262"/>
<t Type="1" Time="310"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="2" Upgrade="5"/>
<h Type="2" PosIndex="3" Upgrade="1"/>
<h Type="3" PosIndex="5" Upgrade="1"/>
</Houses>
<Accessibility>
<c CritID="2" Value="2"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
<c Product="9"/>
</AccessProduct>
</record>
<record StartMoney="0" Name="Сырная 1" GoldTime="340" SilverTime="400" Prize="290" SilverPrize="300" GoldPrize="400" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
</StartPets>
<Goals>
<goal Type="4" Val="10" EndlessStars="200" EndlessLevel="0"/>
<goal Type="8" Val="10" EndlessStars="200" EndlessLevel="0"/>
<goal Type="14" Val="2" EndlessStars="200" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="0" Time="10"/>
<t Type="1" Time="10.1"/>
<t Type="0" Time="20"/>
<t Type="1" Time="20.1"/>
<t Type="1" Time="40.1"/>
<t Type="1" Time="40.2"/>
<t Type="0" Time="90"/>
<t Type="1" Time="90.1"/>
<t Type="1" Time="160.1"/>
<t Type="0" Time="160.2"/>
<t Type="0" Time="240"/>
<t Type="1" Time="240.1"/>
<t Type="1" Time="300"/>
<t Type="1" Time="360"/>
<t Type="1" Time="360.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="2" Upgrade="5"/>
<h Type="2" PosIndex="3" Upgrade="2"/>
<h Type="3" PosIndex="5" Upgrade="1"/>
</Houses>
<Accessibility>
<c CritID="3" Value="2"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
<c Product="9"/>
</AccessProduct>
</record>
<record StartMoney="320" Name="Сырная 2" GoldTime="300" SilverTime="360" Prize="490" SilverPrize="500" GoldPrize="600" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="5"/>
<Pet Type="4"/>
</StartPets>
<Goals>
<goal Type="4" Val="20" EndlessStars="250" EndlessLevel="0"/>
<goal Type="14" Val="3" EndlessStars="200" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="1" Time="20"/>
<t Type="1" Time="20.1"/>
<t Type="1" Time="90"/>
<t Type="1" Time="90.1"/>
<t Type="1" Time="180"/>
<t Type="1" Time="180.1"/>
<t Type="1" Time="180.2"/>
<t Type="1" Time="180.3"/>
<t Type="1" Time="240"/>
<t Type="1" Time="240.1"/>
<t Type="1" Time="300"/>
<t Type="1" Time="300.1"/>
<t Type="1" Time="300.2"/>
<t Type="1" Time="300.3"/>
</BearTimes>
<Houses>
<h Type="2" PosIndex="0" Upgrade="2"/>
<h Type="3" PosIndex="3" Upgrade="2"/>
</Houses>
<Accessibility>
<c CritID="2" Value="3"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
<c Product="9"/>
</AccessProduct>
</record>
<record StartMoney="60" Name="Сырная 3" GoldTime="255" SilverTime="315" Prize="900" SilverPrize="950" GoldPrize="1100" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="1"/>
<Pet Type="1"/>
</StartPets>
<Goals>
<goal Type="8" Val="20" EndlessStars="400" EndlessLevel="0"/>
<goal Type="3" Val="5" EndlessStars="50" EndlessLevel="1"/>
<goal Type="14" Val="5" EndlessStars="50" EndlessLevel="1"/>
</Goals>
<BearTimes>
<t Type="0" Time="20"/>
<t Type="1" Time="20.1"/>
<t Type="0" Time="20.2"/>
<t Type="1" Time="100.1"/>
<t Type="1" Time="100.2"/>
<t Type="1" Time="100.3"/>
<t Type="1" Time="200"/>
<t Type="1" Time="200.1"/>
<t Type="1" Time="300"/>
<t Type="0" Time="300.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="3" Upgrade="5"/>
<h Type="2" PosIndex="1" Upgrade="3"/>
<h Type="3" PosIndex="4" Upgrade="2"/>
</Houses>
<Accessibility>
<c CritID="3" Value="3"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
<c Product="9"/>
</AccessProduct>
</record>
<record StartMoney="0" Name="Французская 2" GoldTime="260" SilverTime="320" Prize="900" SilverPrize="1000" GoldPrize="1100" BearKillingNum="2">
<StartPets>
<Pet Type="1"/>
<Pet Type="1"/>
</StartPets>
<Goals>
<goal Type="10" Val="5" EndlessStars="2250" EndlessLevel="1"/>
<goal Type="8" Val="5" EndlessStars="1000" EndlessLevel="2"/>
<goal Type="14" Val="5" EndlessStars="1000" EndlessLevel="2"/>
</Goals>
<BearTimes>
<t Type="1" Time="30"/>
<t Type="1" Time="30.1"/>
<t Type="2" Time="90"/>
<t Type="1" Time="90.1"/>
<t Type="1" Time="150"/>
<t Type="1" Time="150.1"/>
<t Type="2" Time="210"/>
<t Type="1" Time="210.1"/>
<t Type="1" Time="270"/>
<t Type="2" Time="270.1"/>
<t Type="1" Time="330"/>
<t Type="1" Time="330.1"/>
<t Type="2" Time="390"/>
<t Type="1" Time="390.1"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="3" Upgrade="5"/>
<h Type="2" PosIndex="1" Upgrade="5"/>
<h Type="3" PosIndex="2" Upgrade="5"/>
<h Type="4" PosIndex="4" Upgrade="1"/>
</Houses>
<Accessibility>
<c CritID="4" Value="2"/>
</Accessibility>
<AccessProduct>
<c Product="5"/>
<c Product="2"/>
<c Product="9"/>
<c Product="6"/>
</AccessProduct>
</record>
<record StartMoney="2000" Name="Перекресток 3" GoldTime="250" SilverTime="310" Prize="1000" SilverPrize="1100" GoldPrize="1200" BearKillingNum="1">
<StartPets>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="0"/>
<Pet Type="1"/>
<Pet Type="4"/>
<Pet Type="5"/>
</StartPets>
<Goals>
<goal Type="4" Val="30" EndlessStars="25" EndlessLevel="0"/>
<goal Type="8" Val="30" EndlessStars="150" EndlessLevel="1"/>
<goal Type="14" Val="4" EndlessStars="600" EndlessLevel="0"/>
</Goals>
<BearTimes>
<t Type="1" Time="90.1"/>
<t Type="1" Time="90.2"/>
<t Type="1" Time="90.3"/>
<t Type="0" Time="90.4"/>
<t Type="1" Time="180"/>
<t Type="1" Time="180.1"/>
<t Type="0" Time="180.2"/>
<t Type="0" Time="180.3"/>
<t Type="1" Time="270"/>
<t Type="1" Time="270.1"/>
<t Type="0" Time="270.2"/>
<t Type="0" Time="270.3"/>
<t Type="0" Time="360"/>
<t Type="0" Time="360.1"/>
<t Type="0" Time="360.2"/>
</BearTimes>
<Houses>
<h Type="0" PosIndex="0" Upgrade="5"/>
<h Type="1" PosIndex="1" Upgrade="5"/>
<h Type="2" PosIndex="3" Upgrade="3"/>
<h Type="5" PosIndex="4" Upgrade="3"/>
</Houses>
<Accessibility>
<c CritID="2" Value="4"/>
<c CritID="3" Value="4"/>
</Accessibility>
<AccessProduct>
<c Product="2"/>
<c Product="9"/>
</AccessProduct>
</record>
</Records>
;
public static var language:String = "en";
public static var skiped:Boolean = false;
public function Config(){
super();
}
public static function getLevel(level:Number=1):XML{
return (LevelesRecords.record[(level - 1)]);
}
}
}//package utils
Section 271
//Languages (utils.Languages)
package utils {
public class Languages {
public static var language:XML = <english>
<levels>
<level>Egg Street 1</level>
<level>Egg Street 2</level>
<level>Egg Street 3</level>
<level>Crossroads 1</level>
<level>Flour Street 1</level>
<level>Flour Street 2</level>
<level>Flour Street 3</level>
<level>Flour Street 4</level>
<level>Flour Street 5</level>
<level>Flour Street 6</level>
<level>Flour Street 7</level>
<level>French Street 1</level>
<level>Crossroads 2</level>
<level>Curd Lane 1</level>
<level>Curd Lane 2</level>
<level>Curd Lane 3</level>
<level>Cheese Street 1</level>
<level>Cheese Street 2</level>
<level>Cheese Street 3</level>
<level>Crossroads 3</level>
</levels>
<!-- Ui-->
<download>Download</download>
<download_full_version>Download full version</download_full_version>
<ok>Ok</ok>
<yes>Yes</yes>
<resume>Resume</resume>
<map>Map</map>
<restart>Restart</restart>
<no>No</no>
<cancel>Cancel</cancel>
<upgrade_building>Upgrade building</upgrade_building>
<start>Start</start>
<shop>Shop</shop>
<menu>Menu</menu>
<one>1</one>
<all>all</all>
<sounds>Sounds</sounds>
<music>Music</music>
<main_menu>Main menu</main_menu>
<exit_to_menu>Exit to menu</exit_to_menu>
<exit>Exit</exit>
<leaderboard>Leaderboard</leaderboard>
<welcome>Welcome</welcome>
<change>Change</change>
<send_score>Send score</send_score>
<quit>Are you sure you want to quit?</quit>
<quit_current_game>Quit your current game?</quit_current_game>
<!-- Results -->
<level_results>Level results</level_results>
<coins>Coins:</coins>
<time>Time:</time>
<bonus>Bonus:</bonus>
<bank>Bank:</bank>
<!-- Results window -->
<level_goals>Level goals</level_goals>
<collect>Collect:</collect>
<for_completing>For completing:</for_completing>
<gold>Gold</gold>
<silver>Silver</silver>
<game_over><![CDATA[Congratulations! <br>You have finished all levels!]]></game_over>
<money>Money</money>
<!-- Buildings -->
<powdered>Powdered eggs</powdered>
<dough_factory>Dough Factory</dough_factory>
<curd_factory>Curd Factory</curd_factory>
<cheese_factory>Cheese Factory</cheese_factory>
<pizza_factory>French Pizzeria</pizza_factory>
<warehouse tooltip="Warehouse for storing products">Warehouse</warehouse>
<well tooltip="This is a well. It produces water for watering plants.">Well</well>
<skip_educational_levels>Skip educational levels?</skip_educational_levels>
<cage>Cage</cage>
<!-- market -->
<plane>Plane</plane>
<car>Truck</car>
<order_products>Order products</order_products>
<products>Products</products>
<price>Price</price>
<order>Order</order>
<ship_products>Ship products</ship_products>
<ship>Ship</ship>
<animals>Animals</animals>
<!-- Animals -->
<goat produce="Goat produces">Goat</goat>
<chicken produce="Chicken produces">Chicken</chicken>
<goats>Goats</goats>
<chickens>Chickens</chickens>
<panda>Panda</panda>
<brown_bear>Brown Bear</brown_bear>
<flour>Flour</flour>
<!-- Purposes -->
<goals>Goals</goals>
<money>Money</money>
<egg>Egg</egg>
<eggs>Eggs</eggs>
<powdered_eggs>Powdered eggs</powdered_eggs>
<cheese>Cheese</cheese>
<dough>Dought</dough>
<curd>Curd</curd>
<butter>Butter</butter>
<gherkin>Gherkin</gherkin>
<milk_goat>Goat's milk</milk_goat>
<pizza_fr>French pizza</pizza_fr>
<!-- Tooltips -->
<tooltips>
<chicken>This is a chicken. It eats grass and produces eggs</chicken>
<goat>This is a goat. It eats grass and produces goat's milk.</goat>
<bear>Click the bear several times to put it in a cage. Once it's in a cage, you can put it in your warehouse and sell it.</bear>
<house_plate>Click here to construct a building.</house_plate>
<click_the_ground>Click the ground to water it and make the grass grow.</click_the_ground>
<well_empty>The well is empty. Click it to buy water.</well_empty>
<collect>This is a product. Click it to store it in the warehouse.</collect>
<level_icon>This is the level icon. Click it to start playing.</level_icon>
<level_inaccessible>To access a new level, go to the store and purchase the plans for the stated building.</level_inaccessible>
<powdered>This is a powder factory. Click it to make powder from your eggs.</powdered>
<cheese_factory>This is a Cheese Factory. It makes cheese from curd and leaven.</cheese_factory>
<dough_factory>This is a Dough Factory. It produces dough from egg powder and flour.</dough_factory>
<curd_factory>This is a Curd Factory. It produces curd from goat's milk.</curd_factory>
<pizza_factory>This is a French Pizzeria. It produces French Pizzas from dough, butter, eggs and gherkins.</pizza_factory>
<warehouse>This is a warehouse. This is where your products are stored. Click it to sell your products.</warehouse>
<plane>This is a plane. Use it to bring in goods from the city.</plane>
<car>This is a truck. It takes products to the city..</car>
<shop>Here, you can upgrade your buildings and more using the stars you collected.</shop>
<goals>This is the goal icon. Click it to see your goals for the level.</goals>
<feed>You have to grow grass to feed your animals.</feed>
</tooltips>
<shop_tooltips>
<powdered>Egg powder processing plant</powdered>
<cheese_factory>The Cheese Factory processes</cheese_factory>
<dough_factory>The Dough Factory processes</dough_factory>
<curd_factory>The Curd Factory processes</curd_factory>
<pizza_factory>This French Pizzeria processe</pizza_factory>
<warehouse>Warehouse will be more spacious</warehouse>
<well>The well will store more water</well>
<cage>Cage will catch bear faster</cage>
<car>Truck will be faster and more spacious</car>
<plane>Plane will be faster and more spacious</plane>
</shop_tooltips>
<buy>
<chicken>Now you have enough money to buy a chicken.</chicken>
<goat>Now you have enough money to buy a goat.</goat>
</buy>
</english>
;
public function Languages(){
super();
}
}
}//package utils
Section 272
//LevelStatistics (utils.LevelStatistics)
package utils {
import ui.*;
import game.*;
public class LevelStatistics {
public static var goals:Array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
public static var purposes:Array = new Array();
public static var accessProduct:Array = new Array();
public function LevelStatistics(){
super();
}
public static function checkCompleted():void{
var purpose:Array;
var completed:Number = 0;
var i:int;
while (i < LevelStatistics.purposes.length) {
purpose = LevelStatistics.purposes[i].split(",");
if (Number(purpose[1]) <= Number(LevelStatistics.goals[ProductTypes.typeToNumber(purpose[0])])){
completed++;
};
i++;
};
if (completed == LevelStatistics.purposes.length){
GameController.instance.pause();
ResultsWindow.instance.show();
};
}
public static function updateStatistics():void{
BottomPanel.instance.update();
checkCompleted();
}
}
}//package utils
Section 273
//ProductTypes (utils.ProductTypes)
package utils {
public class ProductTypes {
private static var types:Array = new Array("EGG", "DRIED_EGGS", "FLOUR", "DOUGH", "CURDS", "BUTTER", "GHERKIN", "MILK_GOAT", "CHEESE", "CHEESE_FERMENT", "PIZZA_FR", "PANDA", "BROWN", "CHICKEN", "GOAT", "MONEY");
public function ProductTypes(){
super();
}
public static function numberToType(type:Number):String{
return (types[type]);
}
public static function translate(type:String, help:Boolean=false):String{
switch (type){
case "EGG":
return (Config.currentLanguage.eggs);
case "DRIED_EGGS":
return (Config.currentLanguage.powdered_eggs);
case "DOUGH":
return (Config.currentLanguage.dough);
case "GHERKIN":
return (Config.currentLanguage.gherkin);
case "MILK_GOAT":
return (Config.currentLanguage.milk_goat);
case "CHEESE_FERMENT":
return (Config.currentLanguage.cheese_ferment);
case "PIZZA_FR":
return (Config.currentLanguage.pizza_fr);
case "CURDS":
return (Config.currentLanguage.curd);
case "FLOUR":
return (Config.currentLanguage.flour);
case "CHEESE":
return (Config.currentLanguage.cheese);
case "BUTTER":
return (Config.currentLanguage.butter);
case "PANDA":
return (Config.currentLanguage.panda);
case "BROWN":
return (Config.currentLanguage.brown_bear);
case "CHICKEN":
if (help){
return (Config.currentLanguage.chicken.@produce);
};
return (Config.currentLanguage.chickens);
case "GOAT":
if (help){
return (Config.currentLanguage.goat.@produce);
};
return (Config.currentLanguage.goats);
case "MONEY":
return (Config.currentLanguage.money);
default:
return (Config.currentLanguage.eggs);
};
}
public static function typeToNumber(type:String):Number{
var i:int;
while (i < types.length) {
if (types[i] == type){
return (i);
};
i++;
};
return (0);
}
}
}//package utils
Section 274
//SoundsList (utils.SoundsList)
package utils {
import flash.media.*;
import com.melesta.sound.*;
public class SoundsList {
public static var menuMusicSound:Sound;
public static var muteMusic:Boolean = false;
public static var gameMusicChannel:SoundChannel;
public static var mute:Boolean = false;
public static var gameMusicSound:Sound;
public static var menuMusicChannel:SoundChannel;
public function SoundsList(){
super();
}
public static function init():void{
SoundManager.registerSoundAsset("action_sell_buy", action_sell_buy);
SoundManager.registerSoundAsset("action_upgrade", action_upgrade);
SoundManager.registerSoundAsset("action_watering", action_watering);
SoundManager.registerSoundAsset("action_well_auto", action_well_auto);
SoundManager.registerSoundAsset("action_well", action_well);
SoundManager.registerSoundAsset("airplane_flyin", airplane_flyin);
SoundManager.registerSoundAsset("bear0_panda_scream", bear0_panda_scream);
SoundManager.registerSoundAsset("bear1_brown_scream", bear1_brown_scream);
SoundManager.registerSoundAsset("bear_landing", bear_landing);
SoundManager.registerSoundAsset("cage_breaking", cage_breaking);
SoundManager.registerSoundAsset("cage_broke_bear_flee", cage_broke_bear_flee);
SoundManager.registerSoundAsset("cage_click", cage_click);
SoundManager.registerSoundAsset("car_came", car_came);
SoundManager.registerSoundAsset("cat_flyout", cat_flyout);
SoundManager.registerSoundAsset("cat_voice", cat_voice);
SoundManager.registerSoundAsset("chicken_die", chicken_die);
SoundManager.registerSoundAsset("chicken_flyout", chicken_flyout);
SoundManager.registerSoundAsset("chicken_hungry", chicken_hungry);
SoundManager.registerSoundAsset("chicken_voice", chicken_voice);
SoundManager.registerSoundAsset("fanfare_aim", fanfare_aim);
SoundManager.registerSoundAsset("fanfare_best_time", fanfare_best_time);
SoundManager.registerSoundAsset("fanfare_level_complete", fanfare_level_complete);
SoundManager.registerSoundAsset("fanfare_medal", fanfare_medal);
SoundManager.registerSoundAsset("fool_action", fool_action);
SoundManager.registerSoundAsset("house_board_landing", house_board_landing);
SoundManager.registerSoundAsset("house_click", house_click);
SoundManager.registerSoundAsset("house_crash", house_crash);
SoundManager.registerSoundAsset("house_downgrade", house_downgrade);
SoundManager.registerSoundAsset("house_landing", house_landing);
SoundManager.registerSoundAsset("item_add", item_add);
SoundManager.registerSoundAsset("item_cancel", item_cancel);
SoundManager.registerSoundAsset("goat_die", goat_die);
SoundManager.registerSoundAsset("goat_flyout", goat_flyout);
SoundManager.registerSoundAsset("goat_hungry", goat_hungry);
SoundManager.registerSoundAsset("goat_voice", goat_voice);
SoundManager.registerSoundAsset("product_crack", product_crack);
SoundManager.registerSoundAsset("product_landing", product_landing);
SoundManager.registerSoundAsset("product_take", product_take);
SoundManager.registerSoundAsset("tick_money", tick_money);
SoundManager.registerSoundAsset("tick_time", tick_time);
SoundManager.registerSoundAsset("ui_button_click", ui_button_click);
SoundManager.registerSoundAsset("ui_button_hover", ui_button_hover);
var cls:Class = (music_mainmenu as Class);
menuMusicSound = (new (cls) as Sound);
}
}
}//package utils
Section 275
//Car (vehicles.Car)
package vehicles {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import houses.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import utils.*;
import flash.media.*;
import caurina.transitions.properties.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Car extends CarTemplate {
private var _upgradePosition:Array;
private var gameController:GameController;
private var _stageInstance:DisplayObjectContainer;
private var _upgradeButton:UpgradeButton;
public static var instance:Car;
public static var upgradeLevel:Number = 1;
public static var upgradeCost:Array = new Array(300, 1200, 5000, 0);
public static var firstShow:Boolean = true;
public function Car(stageInstance:DisplayObjectContainer, level:Number, delay:Number){
_upgradePosition = new Array(-45, -20);
super();
Car.instance = this;
gameController = GameController.instance;
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
SoundManager.registerSoundAsset("house_landing", house_landing);
upgradeLevel = level;
_stageInstance = stageInstance;
stageInstance.addChild(this);
this.x = 140;
var point:Point = new Point(140, 417);
show(point, delay);
body.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
body.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
body.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgradeButton = new UpgradeButton();
_upgradeButton.x = _upgradePosition[0];
_upgradeButton.y = _upgradePosition[1];
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgradeLevel);
FilterShortcuts.init();
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
}
public function animate():void{
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (upgradeLevel <= (ShopWindow.availableUpgrades[3] - 1)){
_upgradeButton.caption.text = Car.upgradeCost[(upgradeLevel - 1)];
};
if (upgradeLevel > (ShopWindow.availableUpgrades[3] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
public function removeShadow(event:MouseEvent=null):void{
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.hide();
}
public function onClick(event:MouseEvent=null):void{
SoundManager.play("house_click", 1);
Depot.instance.showMarket();
}
private function remove():void{
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function dropShadow(event:MouseEvent=null):void{
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.show(x, (y - 20), "CAR", upgradeLevel, "CAR");
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(Car.upgradeCost[(upgradeLevel - 1)])));
upgradeLevel++;
upgrade(upgradeLevel);
SoundManager.play("action_upgrade", 1);
}
private function landing():void{
SoundManager.play("house_landing", 1, new SoundTransform(1, -1));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.car);
};
}
public function checkMoney():void{
PetShop.instance.getHelp();
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (Car.upgradeCost[(upgradeLevel - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
public function destroy(event:Event=null):void{
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:position.y, time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
}
}//package vehicles
Section 276
//CarTemplate (vehicles.CarTemplate)
package vehicles {
import flash.display.*;
public dynamic class CarTemplate extends MovieClip {
public var body:MovieClip;
}
}//package vehicles
Section 277
//Plane (vehicles.Plane)
package vehicles {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
import houses.*;
import ui.*;
import shop.*;
import game.*;
import market.road.*;
import utils.*;
import flash.media.*;
import market.*;
import caurina.transitions.properties.*;
import com.melesta.sound.*;
import caurina.transitions.*;
public class Plane extends PlaneTemplate {
private var _upgradePosition:Array;
private var gameController:GameController;
private var _upgradeButton:UpgradeButton;
private var _stageInstance:DisplayObjectContainer;
private var _importProduction:ImportWindow;
public static var instance:Plane;
public static var upgradeLevel:Number = 1;
public static var upgradeCost:Array = new Array(300, 1500, 5000, 0);
public static var firstShow:Boolean = true;
public function Plane(stageInstance:DisplayObjectContainer, level:Number, delay:Number){
_upgradePosition = new Array(-45, 0);
super();
Plane.instance = this;
SoundManager.registerSoundAsset("house_landing", house_landing);
upgradeLevel = level;
_stageInstance = stageInstance;
gameController = GameController.instance;
gameController.addEventListener(GameController.LEVEL_COMPLETED, destroy, false, 0, true);
gameController.addEventListener(GameController.CHANGE_MONEY, updateMoney, false, 0, true);
stageInstance.addChild(this);
this.x = 403;
var point:Point = new Point(403, 412);
show(point, delay);
body.mouseEnabled = (body.mouseChildren = false);
activeArea.addEventListener(MouseEvent.ROLL_OVER, dropShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.ROLL_OUT, removeShadow, false, 0, true);
activeArea.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
_upgradeButton = new UpgradeButton();
_upgradeButton.x = _upgradePosition[0];
_upgradeButton.y = _upgradePosition[1];
_upgradeButton.target = this;
addChild(_upgradeButton);
upgrade(upgradeLevel);
_importProduction = new ImportWindow(stageInstance);
FilterShortcuts.init();
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
}
public function animate():void{
}
public function upgrade(level:Number):void{
this.body.gotoAndStop(level);
if (upgradeLevel <= (ShopWindow.availableUpgrades[4] - 1)){
_upgradeButton.caption.text = Plane.upgradeCost[(upgradeLevel - 1)];
};
if (upgradeLevel > (ShopWindow.availableUpgrades[4] - 1)){
_upgradeButton.destroy();
};
Road.instance.addMoney(0);
}
private function remove():void{
activeArea.removeEventListener(MouseEvent.CLICK, onClick);
activeArea.removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
activeArea.removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
}
public function onClick(event:MouseEvent=null):void{
SoundManager.play("house_click", 1);
_importProduction.show();
}
public function removeShadow(event:MouseEvent=null):void{
var mtx:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.hide();
}
public function nextUpgrade():void{
Road.instance.addMoney(-(Number(Plane.upgradeCost[(upgradeLevel - 1)])));
upgradeLevel++;
upgrade(upgradeLevel);
SoundManager.play("action_upgrade", 1);
}
public function destroy(event:Event=null):void{
activeArea.removeEventListener(MouseEvent.CLICK, onClick);
activeArea.removeEventListener(MouseEvent.ROLL_OVER, dropShadow);
activeArea.removeEventListener(MouseEvent.ROLL_OVER, removeShadow);
gameController.removeEventListener(GameController.LEVEL_COMPLETED, destroy);
gameController.removeEventListener(GameController.CHANGE_MONEY, updateMoney);
_stageInstance.removeChild(this);
}
public function show(position:Point, delay:Number):void{
this.x = position.x;
this.y = -50;
Tweener.addTween(this, {y:position.y, time:0.4, delay:delay, transition:"easeInQuint", onComplete:landing});
}
public function dropShadow(event:MouseEvent=null):void{
var mtx:Array = [2, 0, 0, 0, -63.5, 0, 2, 0, 0, -63.5, 0, 0, 2, 0, -63.5, 0, 0, 0, 1, 0];
var mtxFilter:ColorMatrixFilter = new ColorMatrixFilter(mtx);
Tweener.addTween(this.body, {_ColorMatrix_matrix:mtx, time:0.5, delay:0.1});
Tooltip.instance.show(x, y, "PLANE", upgradeLevel, "PLANE");
}
private function landing():void{
SoundManager.play("house_landing", 1, new SoundTransform(1, 1));
updateMoney();
if (((firstShow) && (!(Config.skiped)))){
firstShow = false;
BlockTooltip.instance.show(this.x, this.y, Config.currentLanguage.tooltips.plane);
};
}
public function updateMoney(event:Event=null):void{
if (_upgradeButton){
if (Plane.upgradeCost[(upgradeLevel - 1)] <= Road.currentMoney){
_upgradeButton.disabled(true);
} else {
_upgradeButton.disabled(false);
};
};
}
}
}//package vehicles
Section 278
//PlaneTemplate (vehicles.PlaneTemplate)
package vehicles {
import flash.display.*;
public dynamic class PlaneTemplate extends MovieClip {
public var body:MovieClip;
public var activeArea:MovieClip;
public function PlaneTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
body.mouseEnabled = (body.mouseChildren = false);
}
}
}//package vehicles
Section 279
//action_sell_buy (action_sell_buy)
package {
import flash.media.*;
public dynamic class action_sell_buy extends Sound {
}
}//package
Section 280
//action_upgrade (action_upgrade)
package {
import flash.media.*;
public dynamic class action_upgrade extends Sound {
}
}//package
Section 281
//action_watering (action_watering)
package {
import flash.media.*;
public dynamic class action_watering extends Sound {
}
}//package
Section 282
//action_well (action_well)
package {
import flash.media.*;
public dynamic class action_well extends Sound {
}
}//package
Section 283
//action_well_auto (action_well_auto)
package {
import flash.media.*;
public dynamic class action_well_auto extends Sound {
}
}//package
Section 284
//airplane_flyin (airplane_flyin)
package {
import flash.media.*;
public dynamic class airplane_flyin extends Sound {
}
}//package
Section 285
//BackgroundTemplate (BackgroundTemplate)
package {
import flash.display.*;
public dynamic class BackgroundTemplate extends MovieClip {
}
}//package
Section 286
//bear_landing (bear_landing)
package {
import flash.media.*;
public dynamic class bear_landing extends Sound {
}
}//package
Section 287
//bear0_panda_scream (bear0_panda_scream)
package {
import flash.media.*;
public dynamic class bear0_panda_scream extends Sound {
}
}//package
Section 288
//bear1_brown_scream (bear1_brown_scream)
package {
import flash.media.*;
public dynamic class bear1_brown_scream extends Sound {
}
}//package
Section 289
//BlockTooltipTemplate (BlockTooltipTemplate)
package {
import flash.display.*;
public dynamic class BlockTooltipTemplate extends MovieClip {
public var lock:MovieClip;
public var help:MovieClip;
public var body:MovieClip;
}
}//package
Section 290
//cage_breaking (cage_breaking)
package {
import flash.media.*;
public dynamic class cage_breaking extends Sound {
}
}//package
Section 291
//cage_broke_bear_flee (cage_broke_bear_flee)
package {
import flash.media.*;
public dynamic class cage_broke_bear_flee extends Sound {
}
}//package
Section 292
//cage_click (cage_click)
package {
import flash.media.*;
public dynamic class cage_click extends Sound {
}
}//package
Section 293
//car_came (car_came)
package {
import flash.media.*;
public dynamic class car_came extends Sound {
}
}//package
Section 294
//cat_flyout (cat_flyout)
package {
import flash.media.*;
public dynamic class cat_flyout extends Sound {
}
}//package
Section 295
//cat_voice (cat_voice)
package {
import flash.media.*;
public dynamic class cat_voice extends Sound {
}
}//package
Section 296
//chicken_die (chicken_die)
package {
import flash.media.*;
public dynamic class chicken_die extends Sound {
}
}//package
Section 297
//chicken_flyout (chicken_flyout)
package {
import flash.media.*;
public dynamic class chicken_flyout extends Sound {
}
}//package
Section 298
//chicken_hungry (chicken_hungry)
package {
import flash.media.*;
public dynamic class chicken_hungry extends Sound {
}
}//package
Section 299
//chicken_voice (chicken_voice)
package {
import flash.media.*;
public dynamic class chicken_voice extends Sound {
}
}//package
Section 300
//EndScreenTemplate (EndScreenTemplate)
package {
import flash.display.*;
import flash.text.*;
public dynamic class EndScreenTemplate extends MovieClip {
public var sendScoreBtn:MovieClip;
public var exitBtn:MovieClip;
public var caption:TextField;
public var buyBtn:MovieClip;
}
}//package
Section 301
//fanfare_aim (fanfare_aim)
package {
import flash.media.*;
public dynamic class fanfare_aim extends Sound {
}
}//package
Section 302
//fanfare_best_time (fanfare_best_time)
package {
import flash.media.*;
public dynamic class fanfare_best_time extends Sound {
}
}//package
Section 303
//fanfare_level_complete (fanfare_level_complete)
package {
import flash.media.*;
public dynamic class fanfare_level_complete extends Sound {
}
}//package
Section 304
//fanfare_medal (fanfare_medal)
package {
import flash.media.*;
public dynamic class fanfare_medal extends Sound {
}
}//package
Section 305
//Farm2 (Farm2)
package {
import ru.rambler.games.interfaces.core.*;
import flash.events.*;
import ru.rambler.games.events.*;
import ru.rambler.games.interfaces.net.*;
import ru.rambler.games.interfaces.game.*;
import ru.rambler.games.interfaces.ui.*;
import caurina.transitions.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.utils.*;
import ui.*;
import utils.*;
import ru.rambler.games.debug.*;
import game.*;
import flash.net.*;
public class Farm2 extends MovieClip implements IGame {
private var preloader:FarmPreloader;
private var musicLoaded:Boolean;// = false
private var musicCurrent:Number;// = 0
private var country:String;// = "US"
private var gameMusicPath:String;// = "music/music_game.mp3"
private var adContainer:MovieClip;
private var musicTotal:Number;// = 0
private var ad_loaded:Boolean;// = true
private var farmTotal:Number;// = 0
public var GameJacketSec:GameJacketAS3;
private var _loader:ICore;
private var _controller:IGameController;
private var language:String;// = "en"
private var farmLoaded:Boolean;// = false
private var _uiManager:IUIManager;
private var xmlLoaded:Boolean;// = true
private var _connection:IConnection;
public static const DOCUMENT_CLASS:String = "PizzaParty";
public static var mochi_Leaderboard:String = "bffa7c6dddd48185";
public static var connection_name:String;
public static var _loaderInfo:Object;
public static var mail_ru_connection:LocalConnection;
public static var portal:String = "not_mail.ru";
public static var instance:Farm2;
public static var mochiads_game_id:String = "be332e8b811e0179";
public function Farm2(){
var bitmapData:BitmapData;
var bg:Bitmap;
var bitmapData0:BitmapData;
var bg0:Bitmap;
super();
instance = this;
stop();
preloader = new FarmPreloader();
addChild(preloader);
Config.currentLanguage = Languages.language;
var gc:GameController = new GameController();
_loaderInfo = loaderInfo.parameters;
if (portal == "mail.ru"){
mail_ru_connection = new LocalConnection();
mail_ru_connection.client = this;
connection_name = loaderInfo.parameters.lcom_name;
mail_ru_connection.connect((loaderInfo.parameters.lcom_name + "Back"));
};
if (loaderInfo.parameters.link != undefined){
Config.downloadLink = loaderInfo.parameters.link;
};
if (loaderInfo.parameters.alawar_f != undefined){
if (loaderInfo.parameters.alawar_f == "true"){
Config.downloadable = false;
};
};
if (loaderInfo.parameters.close_f != undefined){
Config.closeFunction = loaderInfo.parameters.close_f;
};
if (loaderInfo.parameters.target != undefined){
Config.target = loaderInfo.parameters.target;
};
if (loaderInfo.parameters.use_cheats != undefined){
if (loaderInfo.parameters.use_cheats == "true"){
Config.use_cheats = true;
};
};
if (((!((loaderInfo.parameters.language == undefined))) && (!((loaderInfo.parameters.country == undefined))))){
xmlLoaded = false;
preloader.logo.visible = false;
language = loaderInfo.parameters.language;
Config.language = language;
country = loaderInfo.parameters.country;
loadLanguage();
};
//unresolved jump
var _slot1 = e;
trace(("Ошибка " + _slot1));
if (language == "ru"){
preloader.logo.gotoAndStop("ru");
preloader.alawar.gotoAndStop("ru");
};
var ldr:Loader = new Loader();
ldr.load(new URLRequest("logos/logo.png"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, logoLoaded, false, 0, true);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, farmLogoError, false, 0, true);
loadMusic();
loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loaderInfo.addEventListener(Event.COMPLETE, farmLoadedHandler);
if (portal == "mochi"){
ad_loaded = false;
adContainer = new MovieClip();
bitmapData = new BitmapData(570, 430, false, 4283280631);
bg = new Bitmap(bitmapData);
adContainer.addChild(bg);
addChild(adContainer);
MochiAd.showPreGameAd({clip:adContainer, id:mochiads_game_id, res:"570x430", ad_failed:mochiAdsLoaded, ad_finished:mochiAdsLoaded, color:16630663, background:5090551, outline:0xFFFFFF, ad_skipped:mochiAdsLoaded, ad_failed:mochiAdsLoaded});
};
if (portal == "gamejacket"){
GameJacketSec = new GameJacketAS3();
ad_loaded = false;
GameJacketSec.setVariables(LoaderInfo(this.root.loaderInfo));
GameJacketSec.addEventListener("GameJacketPass", gameJacketSecurityOK);
GameJacketSec.addEventListener("GameJacketFail", gameJacketSecurityError);
adContainer = new MovieClip();
bitmapData0 = new BitmapData(570, 430, false, 4283280631);
bg0 = new Bitmap(bitmapData0);
adContainer.addChild(bg0);
addChild(adContainer);
adContainer.addChild(GameJacketSec);
};
if (portal == "rambler"){
addEventListener(Event.ADDED_TO_STAGE, initRambler, false, 0, true);
ad_loaded = false;
};
Config.downloadable = false;
}
private function farmLogoError(event:IOErrorEvent=null):void{
preloader.logo.visible = true;
}
private function error(event:IOErrorEvent=null):void{
}
public function destroy(... _args):void{
if (portal == "mail.ru"){
mail_ru_connection.close();
};
GameController.instance.destroy();
}
public function gameJacketError(errorObject:Object):void{
ad_loaded = true;
adContainer.visible = false;
initGame();
}
private function logoLoaded(event:Event=null):void{
preloader.addChild(event.target.content);
event.target.content.x = 0;
event.target.content.y = (425 - event.target.content.height);
}
public function closeGame(event:MouseEvent=null):void{
_uiManager.closeGame();
}
private function startRamblerGame():void{
readyRambler();
trace("Rambler game is ready for start");
ad_loaded = true;
initGame();
}
public function init():void{
_connection = _loader.connection;
_connection.addEventListener(ConnectionEvent.CONNECT, connectRambler);
}
private function gameJacketSecurityOK(e:Event):void{
ad_loaded = true;
adContainer.visible = false;
initGame();
}
protected function get isOnline():Boolean{
return (!((_loader == null)));
}
private function initGame(event:Event=null):void{
var event = event;
if (((((xmlLoaded) && (farmLoaded))) && (musicLoaded))){
if (ad_loaded == true){
preloader.progress.line.gotoAndStop(100);
Tweener.addTween(preloader, {alpha:0, time:2, delay:0.1, onComplete:function ():void{
this.visible = false;
}});
main();
};
};
}
public function sendRamblerScore(score:Number=0):void{
(_connection as ISingleplayerConnection).sendResult(score, false);
}
public function set loader(value:ICore):void{
_loader = value;
}
private function closeRamblerGame(event:MouseEvent):void{
_uiManager.closeGame();
}
private function gameJacketSecurityError(e:Event):void{
var error:TextField = new TextField();
error.width = 300;
error.htmlText = String("Security Error. <a href='http://www.alawar.com/download/FarmFrenzyPizzaParty_10105.exe'>Download full version.</a>");
GameJacketSec.addChild(error);
}
private function xmlLoadedHandler(event:Event):void{
var loader:URLLoader = URLLoader(event.target);
var languageXML:XML = new XML(loader.data);
languageXML.ignoreWhitespace = true;
Config.currentLanguage = languageXML;
xmlLoaded = true;
initGame();
}
private function gameMusicLoaded(event:Event):void{
musicLoaded = true;
initGame();
}
private function main():void{
var app:Object;
nextFrame();
var farmfrenzy2:Class = Class(getDefinitionByName("PizzaParty"));
if (farmfrenzy2){
app = new (farmfrenzy2);
addChildAt((app as DisplayObject), 0);
};
}
private function mochiAdsLoaded(... _args):void{
var params = _args;
ad_loaded = true;
trace(params);
Tweener.addTween(adContainer, {alpha:0, time:0.1, onComplete:function ():void{
adContainer.visible = false;
}});
initGame();
}
private function loadSoundError(event:IOErrorEvent=null):void{
musicLoaded = true;
SoundsList.gameMusicSound = null;
initGame();
}
private function showGameJacketAd():void{
var adOptions:Object = new Object();
var adHolder:MovieClip = new MovieClip();
adContainer.addChild(adHolder);
adOptions.adDisplayObject = adHolder;
adOptions.bgColour = 5090551;
adOptions.bgAlpha = 1;
adOptions.errorFunction = gameJacketError;
adOptions.errorParameters = {testVar1:"Error Text", testVar2:0x0300};
adOptions.endFunction = gameJacketEnd;
adOptions.endParameters = {testVar1:"End Text", testVar2:6};
GameJacketSec.showAd(adOptions);
}
private function connectRambler(event:ConnectionEvent):void{
trace("Rambler connection is ok");
startRamblerGame();
}
private function progressHandler(event:ProgressEvent):void{
var loaded:uint = (event.bytesLoaded + musicCurrent);
var total:uint = (event.bytesTotal + musicTotal);
preloader.progress.line.gotoAndStop(Math.ceil(((loaded / total) * 100)));
}
private function loadLanguage():void{
preloader.logo.visible = false;
var xmlLoader:URLLoader = new URLLoader();
var xmlRequest:URLRequest = new URLRequest((((("localized/" + language) + "-") + country) + "/text/text.xml"));
var logoLoader:Loader = new Loader();
var logoRequest:URLRequest = new URLRequest((((("localized/" + language) + "-") + country) + "/images/logo.png"));
logoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, farmLogoLoaded, false, 0, true);
logoLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, error, false, 0, true);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoadedHandler);
logoLoader.addEventListener(Event.COMPLETE, farmLogoLoaded);
xmlLoader.load(xmlRequest);
//unresolved jump
var _slot1 = error;
logoLoader.load(logoRequest);
//unresolved jump
var _slot1 = error;
preloader.logo.visible = true;
}
private function loadMusic():void{
var request:URLRequest = new URLRequest(gameMusicPath);
SoundsList.gameMusicSound = new Sound();
SoundsList.gameMusicSound.addEventListener(Event.COMPLETE, gameMusicLoaded, false, 0, true);
SoundsList.gameMusicSound.addEventListener(IOErrorEvent.IO_ERROR, loadSoundError, false, 0, true);
SoundsList.gameMusicSound.addEventListener(ProgressEvent.PROGRESS, progressMusic);
SoundsList.gameMusicSound.load(request);
}
private function initRambler(event:Event=null):void{
if (!isOnline){
_loader = new SingleplayerCoreEmulator(this);
init();
trace("offline rambler");
} else {
trace("online rambler");
};
_connection.connect();
}
private function farmLogoLoaded(event:Event=null):void{
FarmPreloader.externalLogo = new Sprite();
FarmPreloader.externalLogo.addChild(event.target.content);
FarmPreloader.externalLogo.x = 0;
FarmPreloader.externalLogo.y = 84;
preloader.logo.visible = false;
preloader.addChild(FarmPreloader.externalLogo);
}
public function gameJacketEnd(endObject:Object):void{
var endObject = endObject;
ad_loaded = true;
Tweener.addTween(adContainer, {alpha:0, time:0.1, onComplete:function ():void{
adContainer.visible = false;
}});
initGame();
}
private function farmLoadedHandler(event:Event=null):void{
farmLoaded = true;
initGame();
}
private function readyRambler():void{
if (isOnline){
(_connection as ISingleplayerConnection).ready();
};
}
private function progressMusic(event:ProgressEvent):void{
musicCurrent = event.bytesLoaded;
musicTotal = event.bytesTotal;
}
}
}//package
Section 306
//fool_action (fool_action)
package {
import flash.media.*;
public dynamic class fool_action extends Sound {
}
}//package
Section 307
//FrenchPizzaT (FrenchPizzaT)
package {
import flash.display.*;
public dynamic class FrenchPizzaT extends MovieClip {
public var body:MovieClip;
}
}//package
Section 308
//GameJacketAS3 (GameJacketAS3)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class GameJacketAS3 extends Sprite {
private var _adOptions:Object;// = null
private var _IDataLoader:Loader;
private var _gameExclude:String;// = ""
private var _gameVar:String;
private var _gameHost:String;// = ""
private var _GJID:String;// = ""
private var _IDataHolder:Object;
private var _s:String;// = ""
private var _AS3Version:String;// = "0.7.1"
private var _nNumberSecurity:Number;// = 0
private var _gameDomain:String;// = ""
public function GameJacketAS3(){
_IDataLoader = new Loader();
_IDataHolder = new Object();
super();
Security.allowDomain("app.gamejacket.net", "app1.gamejacket.net", "app2.gamejacket.net", "app3.gamejacket.net", "app4.gamejacket.net", "app5.gamejacket.net", "app6.gamejacket.net", "app7.gamejacket.net", "app8.gamejacket.net", "app9.gamejacket.net");
}
private function checkIOError(e:IOErrorEvent):void{
dispatchSecurityEvent();
}
public function setVariables(param:LoaderInfo):void{
var keyStr:String;
var valueStr:String;
var vParams:Object = param.parameters;
for (keyStr in vParams) {
valueStr = String(vParams[keyStr]);
if (keyStr == "gameVar"){
_gameVar = valueStr;
} else {
if (keyStr == "s"){
_s = valueStr;
} else {
if (keyStr == "GJID"){
_GJID = valueStr;
} else {
if (keyStr == "gameHost"){
_gameHost = valueStr;
} else {
if (keyStr == "gameDomain"){
_gameDomain = valueStr;
} else {
if (keyStr == "gameExclude"){
_gameExclude = valueStr;
};
};
};
};
};
};
};
checkNumber();
}
private function initiateAdvert(e:Event=null):void{
if (e != null){
_IDataHolder = e.target;
};
if (_adOptions.bgAlpha == undefined){
_adOptions.bgAlpha = 1;
};
_IDataHolder.loader.content.loadDetails(_GJID, _adOptions.bgColour, _adOptions.bgAlpha, _s, this.root.stage);
_IDataHolder.loader.content.addEventListener("GameJacketAdError", advertError);
_IDataHolder.loader.content.addEventListener("GameJacketAdEnd", advertEnd);
_adOptions.adDisplayObject.addChild(_IDataLoader);
}
public function GJHostDomain():String{
return (_gameDomain);
}
private function ioErrorIDataSWF(e:IOErrorEvent):void{
advertError();
}
private function advertError(e:Event=null):void{
if ((_adOptions.errorFunction is Function)){
_adOptions.adDisplayObject.removeChild(_IDataLoader);
if ((_adOptions.errorParameters is Object)){
_adOptions.errorFunction(_adOptions.errorParameters);
} else {
_adOptions.errorFunction();
};
} else {
advertEnd(new Event(""));
};
}
private function callEndFunction():void{
if ((_adOptions.endFunction is Function)){
if ((_adOptions.endParameters is Object)){
_adOptions.endFunction(_adOptions.endParameters);
} else {
_adOptions.endFunction();
};
};
}
public function checkMe():Number{
return (1);
}
public function showAd(options:Object=null):void{
var newRequest:URLRequest;
_adOptions = options;
if (_gameExclude != "pass"){
callEndFunction();
} else {
if (_IDataLoader.contentLoaderInfo.contentType == null){
_IDataLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeIDataSWF);
_IDataLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorIDataSWF);
newRequest = new URLRequest((_s + "GJIDataAS3.swf"));
_IDataLoader.load(newRequest);
} else {
initiateAdvert();
};
};
}
private function dispatchSecurityEvent():void{
if (_nNumberSecurity == 1){
dispatchEvent(new Event("GameJacketPass"));
} else {
dispatchEvent(new Event("GameJacketFail"));
};
}
public function GJHost():String{
return (_gameHost);
}
private function checkLoaded(e:Event):void{
var myXML:XML = new XML(e.currentTarget.data);
_nNumberSecurity = Number(myXML.game.r);
dispatchSecurityEvent();
}
private function advertEnd(e:Event):void{
_adOptions.adDisplayObject.removeChild(_IDataLoader);
callEndFunction();
}
private function completeIDataSWF(e:Event):void{
initiateAdvert(e);
}
private function checkNumber():void{
var checkLoader:URLLoader = new URLLoader();
checkLoader.addEventListener(Event.COMPLETE, checkLoaded);
checkLoader.addEventListener(IOErrorEvent.IO_ERROR, checkIOError);
var checkRequest:URLRequest = new URLRequest(((((_s + "gameCheck.asp?gameVar=") + _gameVar) + "&random=") + Math.random()));
checkLoader.load(checkRequest);
}
public function GJVersion():String{
return (_AS3Version);
}
}
}//package
Section 309
//goat_die (goat_die)
package {
import flash.media.*;
public dynamic class goat_die extends Sound {
}
}//package
Section 310
//goat_flyout (goat_flyout)
package {
import flash.media.*;
public dynamic class goat_flyout extends Sound {
}
}//package
Section 311
//goat_hungry (goat_hungry)
package {
import flash.media.*;
public dynamic class goat_hungry extends Sound {
}
}//package
Section 312
//goat_voice (goat_voice)
package {
import flash.media.*;
public dynamic class goat_voice extends Sound {
}
}//package
Section 313
//GoatTemplate (GoatTemplate)
package {
import flash.display.*;
public dynamic class GoatTemplate extends MovieClip {
public var hungryProgress:MovieClip;
public var body:MovieClip;
public var activeArea:MovieClip;
}
}//package
Section 314
//house_board_landing (house_board_landing)
package {
import flash.media.*;
public dynamic class house_board_landing extends Sound {
}
}//package
Section 315
//house_click (house_click)
package {
import flash.media.*;
public dynamic class house_click extends Sound {
}
}//package
Section 316
//house_crash (house_crash)
package {
import flash.media.*;
public dynamic class house_crash extends Sound {
}
}//package
Section 317
//house_downgrade (house_downgrade)
package {
import flash.media.*;
public dynamic class house_downgrade extends Sound {
}
}//package
Section 318
//house_landing (house_landing)
package {
import flash.media.*;
public dynamic class house_landing extends Sound {
}
}//package
Section 319
//item_add (item_add)
package {
import flash.media.*;
public dynamic class item_add extends Sound {
}
}//package
Section 320
//item_cancel (item_cancel)
package {
import flash.media.*;
public dynamic class item_cancel extends Sound {
}
}//package
Section 321
//MapNodeTemplate (MapNodeTemplate)
package {
import flash.display.*;
public dynamic class MapNodeTemplate extends MovieClip {
public var silver:MovieClip;
public var none:MovieClip;
public var novel:MovieClip;
public var gold:MovieClip;
public var normal:MovieClip;
}
}//package
Section 322
//MapTemplate (MapTemplate)
package {
import flash.display.*;
public dynamic class MapTemplate extends MovieClip {
public var _shadow:MovieClip;
public var menuBtn:MovieClip;
public var shopBtn:MovieClip;
public var buyBtn:MovieClip;
}
}//package
Section 323
//MochiAd (MochiAd)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public function MochiAd(){
super();
}
public static function getVersion():String{
return ("2.7");
}
public static function showClickAwayAd(options:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = options;
var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (width:Number, height:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = _slot1._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!_slot1.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
_slot1._cleanup(mc);
options.ad_finished();
};
var wh:Array = _slot1._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
_slot1.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (callbackID:Number, arg:Object):void{
_slot1.rpc(clip, callbackID, arg);
};
var sendHostProgress:Boolean;
mc.regContLC = function (lc_name:String):void{
mc._containerLCName = lc_name;
};
chk["onEnterFrame"] = function ():void{
var total:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var ad_clip:Object = this.parent._mochiad_ctr;
var elapsed:Number = (getTimer() - this.started);
var finished:Boolean;
if (!chk.showing){
total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (total > 0){
chk.showing = true;
finished = true;
chk.started = getTimer();
} else {
if (elapsed > chk.ad_timeout){
options.ad_failed();
finished = true;
};
};
};
if (this.root == null){
finished = true;
};
if (finished){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(server:String):String{
var hostname:String = server.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(hostname);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(hostname);
return (hostname);
}
public static function unload(clip:Object):Boolean{
if (((clip.clip) && (clip.clip._mochiad))){
clip = clip.clip;
};
if (clip.origFrameRate != undefined){
clip.stage.frameRate = clip.origFrameRate;
};
if (!clip._mochiad){
return (false);
};
if (clip._mochiad._containerLCName != undefined){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"unload"});
};
if (clip._mochiad.onUnload){
clip._mochiad.onUnload();
};
delete clip._mochiad_loaded;
delete clip._mochiad;
return (true);
}
public static function showInterLevelAd(options:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = options;
var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (width:Number, height:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = _slot1._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!_slot1.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
_slot1._cleanup(mc);
options.ad_finished();
};
var wh:Array = _slot1._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var p:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (p > 0){
this.parent.alpha = (p * 0.01);
} else {
_slot1.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
_slot1.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (msec:Number):void{
var _chk:Object = mc._mochiad_wait;
_chk.server_control = true;
_chk.showing = true;
_chk.started = getTimer();
_chk.ad_msec = (msec - 250);
};
mc.rpc = function (callbackID:Number, arg:Object):void{
_slot1.rpc(clip, callbackID, arg);
};
chk["onEnterFrame"] = function ():void{
var total:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var ad_clip:Object = this.parent._mochiad_ctr;
var elapsed:Number = (getTimer() - this.started);
var finished:Boolean;
if (!chk.showing){
total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (total > 0){
chk.showing = true;
chk.started = getTimer();
_slot1.adShowing(clip);
} else {
if (elapsed > chk.ad_timeout){
options.ad_failed();
finished = true;
};
};
};
if (elapsed > chk.ad_msec){
finished = true;
};
if (finished){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(options:Object, defaults:Object):Object{
var k:String;
var pairs:Array;
var i:Number;
var kv:Array;
var optcopy:Object = {};
for (k in defaults) {
optcopy[k] = defaults[k];
};
if (options){
for (k in options) {
optcopy[k] = options[k];
};
};
if (optcopy.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
options = optcopy.clip.loaderInfo.parameters.mochiad_options;
if (options){
pairs = options.split("&");
i = 0;
while (i < pairs.length) {
kv = pairs[i].split("=");
optcopy[unescape(kv[0])] = unescape(kv[1]);
i++;
};
};
if (optcopy.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (optcopy);
}
public static function _cleanup(mc:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = mc;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
lc.client = null;
lc.close();
//unresolved jump
var _slot1 = e;
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(options:Object):MovieClip{
var clip:Object;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = options;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _slot1._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = _slot1.getVersion();
clip = options.clip;
if (!_slot1._isNetworkAvailable()){
return (null);
};
if (clip._mochiad_loaded){
return (null);
};
//unresolved jump
var _slot1 = e;
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
var depth:Number = options.depth;
delete options.depth;
var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = _slot1._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (ev:Object):void{
ev.target.removeEventListener(ev.type, arguments.callee);
_slot1.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(base:Object, methodName:String, argsArray:Array):Object{
var nameArray:Array = methodName.split(".");
var i:Number = 0;
while (i < (nameArray.length - 1)) {
if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){
return (undefined);
};
base = base[nameArray[i]];
i++;
};
if (typeof(base[nameArray[i]]) == "function"){
return (base[nameArray[i]].apply(base, argsArray));
};
return (undefined);
}
public static function createEmptyMovieClip(parent:Object, name:String, depth:Number):MovieClip{
var mc:MovieClip = new MovieClip();
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
parent[name] = mc;
mc["_name"] = name;
return (mc);
}
public static function _getRes(options:Object, clip:Object):Array{
var xy:Array;
var b:Object = clip.getBounds(clip.root);
var w:Number = 0;
var h:Number = 0;
if (typeof(options.res) != "undefined"){
xy = options.res.split("x");
w = parseFloat(xy[0]);
h = parseFloat(xy[1]);
} else {
w = (b.xMax - b.xMin);
h = (b.yMax - b.yMin);
};
if ((((w == 0)) || ((h == 0)))){
w = clip.stage.stageWidth;
h = clip.stage.stageHeight;
};
return ([w, h]);
}
public static function adShowing(mc:Object):void{
mc.origFrameRate = mc.stage.frameRate;
mc.stage.frameRate = 30;
}
public static function getValue(base:Object, objectName:String):Object{
var nameArray:Array = objectName.split(".");
var i:Number = 0;
while (i < (nameArray.length - 1)) {
if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){
return (undefined);
};
base = base[nameArray[i]];
i++;
};
return (base[nameArray[i]]);
}
public static function rpc(clip:Object, callbackID:Number, arg:Object):void{
var _local4:Object;
var _local5:Object;
switch (arg.id){
case "setValue":
_slot1.setValue(clip, arg.objectName, arg.value);
break;
case "getValue":
_local4 = _slot1.getValue(clip, arg.objectName);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local4);
break;
case "runMethod":
_local5 = _slot1.runMethod(clip, arg.method, arg.args);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + arg.id));
};
}
public static function setValue(base:Object, objectName:String, value:Object):void{
var nameArray:Array = objectName.split(".");
var i:Number = 0;
while (i < (nameArray.length - 1)) {
if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){
return;
};
base = base[nameArray[i]];
i++;
};
base[nameArray[i]] = value;
}
public static function showPreGameAd(options:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = options;
var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (width:Number, height:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (percent:Number):void{
}};
options = _slot1._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!_slot1.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
_slot1._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = _slot1._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var p:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (p > 0){
this.parent.alpha = (p * 0.01);
} else {
_slot1.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var f:Function = function (ev:Event):void{
ev.target.removeEventListener(ev.type, arguments.callee);
complete = true;
if (unloaded){
_slot1.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
_slot1.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (msec:Number):void{
var _chk:Object = mc._mochiad_wait;
_chk.server_control = true;
_chk.showing = true;
_chk.started = getTimer();
_chk.ad_msec = msec;
};
mc.rpc = function (callbackID:Number, arg:Object):void{
_slot1.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s:String):Object{
trace(("[MOCHIAD rpcTestFn] " + s));
return (s);
};
mc.regContLC = function (lc_name:String):void{
mc._containerLCName = lc_name;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (lc_name:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var total:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _clip:Object = this.parent.parent.root;
var ad_clip:Object = this.parent._mochiad_ctr;
var elapsed:Number = (getTimer() - this.started);
var finished:Boolean;
var clip_total:Number = _clip.loaderInfo.bytesTotal;
var clip_loaded:Number = _clip.loaderInfo.bytesLoaded;
if (complete){
clip_loaded = Math.max(1, clip_loaded);
clip_total = clip_loaded;
};
var clip_pcnt:Number = ((100 * clip_loaded) / clip_total);
var ad_pcnt:Number = ((100 * elapsed) / chk.ad_msec);
var _inside:Object = this._mochiad_bar._inside;
var pcnt:Number = Math.min(100, Math.min(((clip_pcnt) || (0)), ad_pcnt));
pcnt = Math.max(this.last_pcnt, pcnt);
this.last_pcnt = pcnt;
_inside.scaleX = (pcnt * 0.01);
options.ad_progress(pcnt);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:clip_pcnt});
if (clip_pcnt == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (total > 0){
chk.showing = true;
chk.started = getTimer();
_slot1.adShowing(clip);
} else {
if ((((elapsed > chk.ad_timeout)) && ((clip_pcnt == 100)))){
options.ad_failed();
finished = true;
};
};
};
if (elapsed > chk.ad_msec){
finished = true;
};
if (((complete) && (finished))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(options:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
_slot1.showPreGameAd(options);
}
public static function showTimedAd(options:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
_slot1.showInterLevelAd(options);
}
public static function doOnEnterFrame(mc:MovieClip):void{
var mc = mc;
var f:Function = function (ev:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
ev.target.removeEventListener(ev.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 324
//music_mainmenu (music_mainmenu)
package {
import flash.media.*;
public dynamic class music_mainmenu extends Sound {
}
}//package
Section 325
//PizzaParty (PizzaParty)
package {
import flash.events.*;
import flash.display.*;
import game.assets.*;
import ui.*;
import shop.*;
import flash.net.*;
import map.*;
import game.*;
import flash.text.*;
import utils.*;
import com.melesta.sound.*;
import com.melesta.utils.fps.*;
import flash.errors.*;
public class PizzaParty extends MovieClip {
public var leaderboard:Leaderboard;
private var shopWindow:ShopWindow;
private var arrow:FArrow;
private var uiContainer:MovieClip;
private var country:String;// = "US"
private var language:String;// = "en"
private var mail_ru_connection:LocalConnection;
private var map:MapWindow;
private var endScreen:EndScreen;
private var gameController:GameController;
private var gameContainer:MovieClip;
private var gameMenu:GameMenu;
private var startScreen:StartScreen;
private var levelBuilder:LevelBuilder;
private var assetsContainer:MovieClip;
public function PizzaParty(){
super();
var pg:PlayGround = new PlayGround();
addChild(pg);
addEventListener(Event.ADDED_TO_STAGE, gameLoaded, false, 0, true);
stop();
}
public function destroy(event:Event=null):void{
}
private function loaded(event:Event=null):void{
startScreen.addChild(event.target.content);
event.target.content.x = 5;
event.target.content.y = (425 - event.target.content.height);
}
private function prepareFPSMeter():void{
}
private function error(event:IOErrorEvent=null):void{
}
public function gameLoaded(event:Event=null):void{
SoundsList.init();
gameController = new GameController();
gameController.addEventListener(GameController.DESTROY_GAME, destroy, false, 0, true);
gameController.addEventListener(GameController.START_GAME, startGame, false, 0, true);
gameContainer = new MovieClip();
addChild(gameContainer);
assetsContainer = new MovieClip();
gameContainer.addChild(assetsContainer);
uiContainer = new MovieClip();
addChild(uiContainer);
levelBuilder = new LevelBuilder();
levelBuilder.container = assetsContainer;
levelBuilder.prepareAllAssets();
startScreen = new StartScreen();
map = new MapWindow();
uiContainer.addChild(map);
uiContainer.addChild(startScreen);
startScreen.show();
shopWindow = new ShopWindow();
uiContainer.addChild(shopWindow);
var tooltip:Tooltip = new Tooltip();
uiContainer.addChild(tooltip);
var pizzaTooltip:PizzaTooltip = new PizzaTooltip();
uiContainer.addChild(pizzaTooltip);
var mapTooltip:MapTooltip = new MapTooltip();
uiContainer.addChild(mapTooltip);
var blockTooltip:BlockTooltip = new BlockTooltip();
uiContainer.addChild(blockTooltip);
var quitDialog:QuitDialog = new QuitDialog();
uiContainer.addChild(quitDialog);
gameMenu = new GameMenu(this);
endScreen = new EndScreen(this);
arrow = new FArrow(this);
var ldr:Loader = new Loader();
ldr.load(new URLRequest("logos/logo.png"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded, false, 0, true);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, error, false, 0, true);
leaderboard = new Leaderboard();
uiContainer.addChild(leaderboard);
var quitMenu:QuitMenu = new QuitMenu();
uiContainer.addChild(quitMenu);
}
public function startGame(event:Event=null):void{
}
}
}//package
Section 326
//PizzaTooltipTemplate (PizzaTooltipTemplate)
package {
import flash.display.*;
public dynamic class PizzaTooltipTemplate extends MovieClip {
public var help:MovieClip;
public var body:MovieClip;
public function PizzaTooltipTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
help.mouseEnabled = false;
help.mouseChildren = false;
body.mouseEnabled = false;
body.mouseChildren = false;
}
}
}//package
Section 327
//PowderedHouseTemplate (PowderedHouseTemplate)
package {
import flash.display.*;
public dynamic class PowderedHouseTemplate extends MovieClip {
public var body:MovieClip;
public var activeArea:MovieClip;
}
}//package
Section 328
//PreloaderTemplate (PreloaderTemplate)
package {
import flash.display.*;
public dynamic class PreloaderTemplate extends MovieClip {
public var progress:MovieClip;
public var alawar:MovieClip;
public var logo:MovieClip;
}
}//package
Section 329
//product_crack (product_crack)
package {
import flash.media.*;
public dynamic class product_crack extends Sound {
}
}//package
Section 330
//product_landing (product_landing)
package {
import flash.media.*;
public dynamic class product_landing extends Sound {
}
}//package
Section 331
//product_take (product_take)
package {
import flash.media.*;
public dynamic class product_take extends Sound {
}
}//package
Section 332
//QuitDialogTemplate (QuitDialogTemplate)
package {
import flash.display.*;
import flash.text.*;
public dynamic class QuitDialogTemplate extends MovieClip {
public var yesBtn:MovieClip;
public var noBtn:MovieClip;
public var caption:TextField;
}
}//package
Section 333
//QuitMenuTemplate (QuitMenuTemplate)
package {
import flash.display.*;
import flash.text.*;
public dynamic class QuitMenuTemplate extends MovieClip {
public var yesBtn:MovieClip;
public var pig:MovieClip;
public var noBtn:MovieClip;
public var caption:TextField;
}
}//package
Section 334
//ShopTemplate (ShopTemplate)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ShopTemplate extends MovieClip {
public var pizza_fr:MovieClip;
public var powdered:MovieClip;
public var title:TextField;
public var plane:MovieClip;
public var stars_txt:TextField;
public var dough:MovieClip;
public var warehouse:MovieClip;
public var well:MovieClip;
public var curds:MovieClip;
public var cage:MovieClip;
public var cheese:MovieClip;
public var car:MovieClip;
public var okBtn:MovieClip;
}
}//package
Section 335
//SimpleTooltipTemplate (SimpleTooltipTemplate)
package {
import flash.display.*;
import flash.text.*;
public dynamic class SimpleTooltipTemplate extends MovieClip {
public var okBtn:MovieClip;
public var caption:TextField;
}
}//package
Section 336
//StartScreenTemplate (StartScreenTemplate)
package {
import flash.display.*;
public dynamic class StartScreenTemplate extends MovieClip {
public var musicBtn:MovieClip;
public var exitBtn:MovieClip;
public var alawar:MovieClip;
public var logo:MovieClip;
public var playerPanel:MovieClip;
public var soundBtn:MovieClip;
public var okBtn:MovieClip;
public var buyBtn:MovieClip;
}
}//package
Section 337
//tick_money (tick_money)
package {
import flash.media.*;
public dynamic class tick_money extends Sound {
}
}//package
Section 338
//tick_time (tick_time)
package {
import flash.media.*;
public dynamic class tick_time extends Sound {
}
}//package
Section 339
//TooltipTemplate (TooltipTemplate)
package {
import flash.display.*;
public dynamic class TooltipTemplate extends MovieClip {
public var help:MovieClip;
public var body:MovieClip;
public function TooltipTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
help.mouseEnabled = false;
help.mouseChildren = false;
body.mouseEnabled = false;
body.mouseChildren = false;
}
}
}//package
Section 340
//ui_button_click (ui_button_click)
package {
import flash.media.*;
public dynamic class ui_button_click extends Sound {
}
}//package
Section 341
//ui_button_hover (ui_button_hover)
package {
import flash.media.*;
public dynamic class ui_button_hover extends Sound {
}
}//package
Section 342
//WaterTooltipTemplate (WaterTooltipTemplate)
package {
import flash.display.*;
import flash.text.*;
public dynamic class WaterTooltipTemplate extends MovieClip {
public var caption:TextField;
}
}//package
Section 343
//WorkLineTemplate (WorkLineTemplate)
package {
import flash.display.*;
public dynamic class WorkLineTemplate extends MovieClip {
public var line:MovieClip;
public function WorkLineTemplate(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package