Frame 1
function onGameDataLoaded() {
_root.game = new midasplayer.kicking.Game(_root);
_root.game.init(_root.gda);
}
function setupStage() {
Stage.scaleMode = "noScale";
var _local2 = new ContextMenu();
_local2.hideBuiltInItems();
_local2.builtInItems.quality = true;
_root.menu = _local2;
}
_root.gda = new com.midasplayer.util.GameDataAcquirer();
_root.gda.beginWait(mx.utils.Delegate.create(this, onGameDataLoaded));
setupStage();
Symbol 16 MovieClip Frame 10
stop();
Symbol 16 MovieClip Frame 20
stop();
Symbol 27 MovieClip [shadowanim] Frame 1
stop();
Symbol 35 MovieClip [spinning arrow] Frame 1
#initclip 55
Object.registerClass("spinning arrow", midasplayer.kicking.Cursor);
#endinitclip
Symbol 46 MovieClip [shadow] Frame 1
stop();
Symbol 81 MovieClip [goalkeeper_team2] Frame 1
#initclip 46
Object.registerClass("goalkeeper_team2", midasplayer.kicking.Goalkeeper);
#endinitclip
Symbol 201 MovieClip [player2_anim] Frame 1
stop();
Symbol 203 MovieClip [player_team2] Frame 1
#initclip 47
Object.registerClass("player_team2", midasplayer.kicking.Player);
#endinitclip
Symbol 204 MovieClip [goalkeeper_team1] Frame 1
#initclip 48
Object.registerClass("goalkeeper_team1", midasplayer.kicking.Goalkeeper);
#endinitclip
Symbol 289 MovieClip Frame 1
stop();
Symbol 291 MovieClip [player_team1] Frame 1
#initclip 49
Object.registerClass("player_team1", midasplayer.kicking.Player);
#endinitclip
Symbol 340 MovieClip Frame 1
stop();
Symbol 341 MovieClip [football_mc] Frame 1
#initclip 50
Object.registerClass("football_mc", midasplayer.kicking.Ball);
#endinitclip
Symbol 344 MovieClip Frame 1
useHandCursor = true;
Instance of Symbol 344 MovieClip in Symbol 347 MovieClip [end_game_button] Frame 1
/* no clip actions */
Symbol 350 MovieClip [goal] Frame 1
#initclip 51
Object.registerClass("goal", midasplayer.kicking.Goal);
#endinitclip
Symbol 364 MovieClip [plate_game_over] Frame 1
#initclip 52
Object.registerClass("plate_game_over", midasplayer.kicking.GameOverPlate);
#endinitclip
Symbol 375 MovieClip [plate_round_over] Frame 1
#initclip 53
Object.registerClass("plate_round_over", midasplayer.kicking.RoundOverPlate);
#endinitclip
Symbol 380 MovieClip [illustrative_mouse] Frame 1
stop();
Symbol 390 MovieClip Frame 1
stop();
Symbol 397 MovieClip [particle] Frame 1
#initclip 54
Object.registerClass("particle", midasplayer.kicking.Particle);
#endinitclip
Symbol 407 MovieClip Frame 1
useHandCursor = true;
Instance of Symbol 407 MovieClip in Symbol 408 MovieClip [end_game_button] Frame 1
/* no clip actions */
Instance of Symbol 410 MovieClip [toggle_sound_button] "btn_sound_toggle" in Symbol 426 MovieClip Frame 1
on (press) {
_root.game.onToggleSound();
}
Instance of Symbol 408 MovieClip [end_game_button] "btn_end_game" in Symbol 426 MovieClip Frame 1
on (press) {
_root.game.onQuitGame();
}
Symbol 427 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local2 = arguments.callee.target;
return(arguments.callee.func.apply(_local2, arguments));
};
_local2.target = obj;
_local2.func = func;
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 428 MovieClip [__Packages.com.midasplayer.util.GameDataAcquirer] Frame 0
class com.midasplayer.util.GameDataAcquirer
{
var attrib, trees, targetVar, dataEvent, timerFn, timer, error;
function GameDataAcquirer (variable) {
attrib = new com.midasplayer.util.Map();
trees = new com.midasplayer.util.Map();
if (variable != undefined) {
targetVar = variable;
} else {
targetVar = "gameData";
}
}
function beginWait(fn) {
dataEvent = fn;
timerFn = function (caller) {
var _local3 = _level0[caller.targetVar];
if ((_local3 != undefined) && ((_local3 != null) && (_local3.length > 0))) {
caller.parse(_local3);
if (caller.dataEvent != undefined) {
caller.dataEvent();
}
caller.dataEvent = undefined;
_global.clearInterval(caller.timer);
}
};
timer = _global.setInterval(timerFn, 100, this);
}
function poll() {
if (!parsed) {
var _local2 = _level0[targetVar];
if ((_local2 != undefined) && ((_local2 != null) && (_local2.length > 0))) {
parse(_local2);
parsed = true;
return(true);
}
}
return(false);
}
function getAttributes() {
return(attrib);
}
function getSubTrees(name) {
return(trees.get(name));
}
function getGameData(name) {
return(attrib.get(name));
}
function parse(data) {
attrib.clear();
var _local3 = new com.midasplayer.util.Map();
var _local4 = new XML();
_local4.ignoreWhite = true;
_local4.parseXML(data);
var _local5 = _local4.firstChild;
if (_local5.nodeName != "gamedata") {
error = "Bad XML (expected <gamedata>)";
return(undefined);
}
for (var i in _local5.attributes) {
var _local7 = _local5.attributes[i];
if ((_local7.indexOf("[") == 0) && ((_local6 = _local7.indexOf("]")) != -1)) {
_local7 = _local7.substring(1, _local6).split(",");
}
attrib.put(i, _local7);
}
for (var i in _local5.childNodes) {
var _local8 = _local5.childNodes[i];
switch (_local8.nodeName) {
case "text" :
_local3.put(_local8.attributes.id, _local8.firstChild.nodeValue);
break;
default :
var _local9 = trees.get(_local8.nodeName);
if (_local9 == undefined) {
trees.put(_local8.nodeName, [_local8]);
} else {
_local9.push(_local8);
}
}
}
com.midasplayer.util.I18n.init(_local3);
}
var parsed = false;
}
Symbol 429 MovieClip [__Packages.com.midasplayer.util.Map] Frame 0
class com.midasplayer.util.Map
{
var map, lastSize;
function Map (init) {
map = new Object();
for (var i in init) {
map["" + i] = init[i];
}
lastSize = -1;
}
function put(key, value) {
map["" + key] = value;
lastSize = -1;
}
function get(key) {
return(map["" + key]);
}
function remove(key) {
var _local3 = "" + key;
var _local4 = map[_local3];
delete map[_local3];
lastSize = -1;
return(_local4);
}
function contains(key) {
return(map["" + key] != undefined);
}
function count() {
if (lastSize < 0) {
lastSize = 0;
for (var i in map) {
lastSize++;
}
}
return(lastSize);
}
function size() {
return(count());
}
function clear() {
map = {};
lastSize = 0;
}
function dump() {
var _local2 = "";
for (var i in map) {
_local2 = _local2 + (((i + "=>") + map[i]) + newline);
}
}
function toArray() {
var _local2 = [];
for (var i in map) {
_local2[_local2.length] = map[i];
}
return(_local2);
}
function keySet() {
var _local2 = [];
for (var i in map) {
_local2[_local2.length] = i;
}
return(_local2);
}
function get iterator() {
return(new com.midasplayer.util.MapIterator(this));
}
function get valueIterator() {
return(new com.midasplayer.util.MapValueIterator(this));
}
function foreach(fn) {
var _local3 = arguments.slice(1);
if (_local3.length > 0) {
do {
if ((in map) == null) {
break;
}
var i = (in map);
} while (fn(i, map[i], _local3[0], _local3[1], _local3[2], _local3[3], _local3[4]) != false);
do {
} while ("foreach" != null);
} else {
do {
if ((in map) == null) {
break;
}
var i = (in map);
} while (fn(i, map[i]) != false);
do {
} while (_local1 != null);
}
lastSize = -1;
}
function get _content() {
return(map);
}
}
Symbol 430 MovieClip [__Packages.com.midasplayer.util.Iterator] Frame 0
class com.midasplayer.util.Iterator
{
function Iterator () {
}
}
Symbol 431 MovieClip [__Packages.com.midasplayer.util.MapIterator] Frame 0
class com.midasplayer.util.MapIterator implements com.midasplayer.util.Iterator
{
var map, keys, ptr;
function MapIterator (map) {
this.map = map;
keys = map.keySet();
ptr = 0;
}
function next() {
if (ptr < keys.length) {
return(keys[ptr++]);
}
return(undefined);
}
function hasNext() {
return(ptr != keys.length);
}
function remove() {
if (ptr == 0) {
return(undefined);
}
map.remove(keys[ptr - 1]);
}
}
Symbol 432 MovieClip [__Packages.com.midasplayer.util.MapValueIterator] Frame 0
class com.midasplayer.util.MapValueIterator implements com.midasplayer.util.Iterator
{
var map, mapRef, keys, ptr;
function MapValueIterator (map) {
this.map = map;
mapRef = map._content;
keys = map.keySet();
ptr = 0;
}
function next() {
return(mapRef[keys[ptr++]]);
}
function hasNext() {
return(ptr != keys.length);
}
function remove() {
if (ptr == 0) {
return(undefined);
}
map.remove(keys[ptr - 1]);
}
}
Symbol 433 MovieClip [__Packages.com.midasplayer.util.I18n] Frame 0
class com.midasplayer.util.I18n
{
static var lang;
function I18n () {
}
static function init(newLang) {
lang = newLang;
}
static function getString(name) {
var _local3 = lang.get(name);
if (_local3 == undefined) {
var _local4 = ("{" + name) + "}";
} else {
var _local4 = _local3.toString();
}
var _local5 = 1;
for ( ; _local5 < arguments.length ; _local5++) {
var _local4 = _local4.split(("{" + (_local5 - 1)) + "}").join(arguments[_local5]);
}
return(_local4);
}
}
Symbol 434 MovieClip [__Packages.com.midasplayer.timing.Timeable] Frame 0
class com.midasplayer.timing.Timeable
{
function Timeable () {
}
}
Symbol 435 MovieClip [__Packages.midasplayer.kicking.Game] Frame 0
class midasplayer.kicking.Game implements com.midasplayer.timing.Timeable
{
var parent, speedModifier, speedBase, currentState, newState, performance, powerups, pressedAt, releasedAt, isGameRunning, mouseState, retryCount, scrollX, scrollY, score, timer, random, roundNum, totalRoundNum, view, ballEndMc, ballGroundMc, particle, distLine, shadowClip, ball, goalCpu, goalLineCpu, goalLineSideCpu1, goalLineSideCpu2, goalSideLimitCpu1, goalSideLimitCpu2, goalTeam, goalLineTeam, goalLineSideTeam1, goalLineSideTeam2, goalSideLimitTeam1, goalSideLimitTeam2, cursor, ballMin, radar, debugDraw, cpuTeam, playerTeam, bothTeams, level, soundEnabled, playData, intro, introTimer, isIntroRunning, roundEnded, roundInit, isExitGame, endReason, achievedGoalScore, distScore, goalPredicted, isGameWaiting, crowdVolume, achievedDistScore, passScore, mouseChanged, willScore, mayScore, mayScoreAny, mayScoreHome, charging, goalShotTick, lastBallPlayer, ballPlayer, chasingCpu, targetLocationCpu, chasingTeam, targetLocationTeam, lastCharge, lastView, lastSafeBallY, lastLastSafeBallY, distAnimator, arriveFirstPlayer, ballOutside, roundTimeUp, exitLevelAt, beginRound, lastDrawTimeLeft, lastDrawScore, passScored, goalIntersectPoint, currentMaxLen;
function Game (parent) {
this.parent = parent;
speedModifier = 1;
speedBase = 1.5;
currentState = STATE_IDLE;
newState = STATE_WAIT_CHARGE;
performance = new com.midasplayer.timing.Performance(MOVIE_FPS);
powerups = new Array();
pressedAt = -1;
releasedAt = -1;
isGameRunning = false;
mouseState = false;
retryCount = 0;
scrollX = new com.midasplayer.timing.IFloat();
scrollY = new com.midasplayer.timing.IFloat();
}
function init(gda) {
parent.overplate.swapDepths(100000);
score = 0;
timer = new com.midasplayer.timing.Timer(this, 25);
random = new com.midasplayer.util.Random(gda.getGameData("randomseed"));
parent.onEnterFrame = mx.utils.Delegate.create(this, frame);
roundNum = 0;
totalRoundNum = _global.parseInt(gda.getGameData("rounds"));
speedBase = _global.parseFloat(gda.getGameData("speed_base"));
speedModifier = _global.parseFloat(gda.getGameData("speed_mod"));
view = new com.midasplayer.fx.ScrollPlane(parent);
view.setViewport(150, 0, 605, 500, true);
view.setMovieClip(parent.attachMovie("plan5", "planen", parent.getNextHighestDepth()));
var _local3 = view.mc;
ballEndMc = _local3.attachMovie("ball_end", "ball_end_mc", _local3.getNextHighestDepth());
ballEndMc._visible = false;
ballGroundMc = _local3.attachMovie("ball_ground", "ball_ground_mc", _local3.getNextHighestDepth());
ballGroundMc._visible = false;
particle = [];
distLine = parent.panel.distance_line_mc;
_local3.onPress = mx.utils.Delegate.create(this, mousePress);
_local3.onRelease = mx.utils.Delegate.create(this, mouseRelease);
_local3.onReleaseOutside = mx.utils.Delegate.create(this, mouseRelease);
shadowClip = _local3.attachMovie("shadowanim", "shaa", parent.getNextHighestDepth());
ball = _local3.attachMovie("football_mc", "ball", _local3.getNextHighestDepth());
var _local4 = PLANE_WIDTH / 2;
var _local5 = PLANE_MARGIN_TOP;
goalCpu = _local3.attachMovie("goal", "goal1", _local3.getNextHighestDepth());
goalCpu._x = _local4;
goalCpu._y = _local5;
goalCpu._yscale = goalCpu._yscale * -1;
goalLineCpu = new com.midasplayer.geom.Line((_local4 - (GOAL_WIDTH / 2)) + 10, _local5, (_local4 + (GOAL_WIDTH / 2)) - 10, _local5);
goalCpu.area = new com.midasplayer.geom.Rectangle(goalLineCpu.x1, goalLineCpu.y1 - GOAL_HEIGHT, goalLineCpu.x2 - goalLineCpu.x1, GOAL_HEIGHT);
goalLineSideCpu1 = new com.midasplayer.geom.Line(goalLineCpu.x1, goalLineCpu.y1, goalLineCpu.x1, goalLineCpu.y1 - GOAL_HEIGHT);
goalLineSideCpu2 = new com.midasplayer.geom.Line(goalLineCpu.x2, goalLineCpu.y1, goalLineCpu.x2, goalLineCpu.y1 - GOAL_HEIGHT);
goalSideLimitCpu1 = new com.midasplayer.geom.Rectangle(goalLineCpu.x1 - 20, 0, 20, PLANE_MARGIN_TOP);
goalSideLimitCpu2 = new com.midasplayer.geom.Rectangle(goalLineCpu.x2, 0, 20, PLANE_MARGIN_TOP);
_local4 = PLANE_WIDTH / 2;
_local5 = PLANE_HEIGHT - PLANE_MARGIN_BOTTOM;
goalTeam = _local3.attachMovie("goal", "goal2", _local3.getNextHighestDepth());
goalTeam._x = _local4;
goalTeam._y = _local5;
goalLineTeam = new com.midasplayer.geom.Line((_local4 - (GOAL_WIDTH / 2)) + 10, _local5, (_local4 + (GOAL_WIDTH / 2)) - 10, _local5);
goalTeam.area = new com.midasplayer.geom.Rectangle(goalLineTeam.x1, goalLineTeam.y1, goalLineTeam.x2 - goalLineTeam.x1, GOAL_HEIGHT);
goalLineSideTeam1 = new com.midasplayer.geom.Line(goalLineTeam.x1, goalLineTeam.y1, goalLineTeam.x1, goalLineTeam.y1 + GOAL_HEIGHT);
goalLineSideTeam2 = new com.midasplayer.geom.Line(goalLineTeam.x2, goalLineTeam.y1, goalLineTeam.x2, goalLineTeam.y1 + GOAL_HEIGHT);
goalSideLimitTeam1 = new com.midasplayer.geom.Rectangle(goalLineTeam.x1 - 20, goalLineTeam.y1, 20, PLANE_HEIGHT - goalLineTeam.y1);
goalSideLimitTeam2 = new com.midasplayer.geom.Rectangle(goalLineTeam.x2, goalLineTeam.y1, 20, PLANE_HEIGHT - goalLineTeam.y1);
var _local6 = goalLineTeam.getMiddle();
ball.setPosition(_local6.x, _local6.y);
cursor = _local3.attachMovie("spinning arrow", "cursor", _local3.getNextHighestDepth());
cursor.displayArrow(true);
ballMin = _local3.createEmptyMovieClip("football_min_depth", _local3.getNextHighestDepth());
ball.setMinMovieClip(ballMin);
radar = new midasplayer.kicking.Radar(parent.panel);
radar.setBall(ball);
shadowClip.swapDepths(_local3.getNextHighestDepth());
debugDraw = new com.midasplayer.fx.Draw(null);
debugDraw.createClip(_local3);
cpuTeam = new midasplayer.kicking.Team();
playerTeam = new midasplayer.kicking.Team();
bothTeams = new midasplayer.kicking.Team();
level = new midasplayer.kicking.Level(random, speedBase, cpuTeam, playerTeam, bothTeams, _local3, radar, debugDraw);
view.centerAround((PLANE_WIDTH / 2) - 10, (PLANE_HEIGHT / 2) + 105);
radar.setView(view.getViewport());
radar.render(0);
view.visible = true;
distLine._visible = false;
var _local7 = parent.panel;
var _local8 = parent.bottom_bar;
_local8.swapDepths(parent.getNextHighestDepth());
_local7.swapDepths(parent.getNextHighestDepth());
var _local9 = new com.midasplayer.fx.Draw(null);
_local9.createClip(parent);
_local9.color = 3355443 /* 0x333333 */;
_local9.alpha = 100;
_local9.fillRect(150, -600, 605, 600);
_local9.fillRect(150, 520, 605, 600);
soundEnabled = true;
_local8.btn_end_game.btn_txt.text = com.midasplayer.util.I18n.getString("btn_end_game");
_local8.btn_sound_toggle.btn_txt.text = com.midasplayer.util.I18n.getString("btn_sound_off");
_local7.score_label_txt.text = com.midasplayer.util.I18n.getString("label_score");
_local7.score_label_shadow_txt.text = com.midasplayer.util.I18n.getString("label_score");
_local7.time_left_txt.text = com.midasplayer.util.I18n.getString("label_time_left");
_local7.time_left_shadow_txt.text = com.midasplayer.util.I18n.getString("label_time_left");
_local7.round_label_txt.text = com.midasplayer.util.I18n.getString("label_round");
_local7.round_label_shadow_txt.text = com.midasplayer.util.I18n.getString("label_round");
_local7.round_txt.text = roundNum + 1;
parent.overplate._visible = false;
playData = new Array();
intro = new midasplayer.kicking.Introduction(parent);
intro.setExitFunction(mx.utils.Delegate.create(this, initLevel));
introTimer = new com.midasplayer.timing.Timer(intro, 25);
isIntroRunning = true;
roundEnded = true;
roundInit = false;
isExitGame = false;
endReason = END_NOT_ENDED;
fscommand ("gameStart");
com.midasplayer.fx.SoundManager.play("game_intro_loop", 100, true);
newPlayData(("34,0," + VERSION) + ",0=0");
}
function onQuitGame() {
if (isGameRunning || (isIntroRunning)) {
isExitGame = true;
endLevel();
}
}
function onToggleSound() {
var _local2 = "";
if (soundEnabled) {
_local2 = com.midasplayer.util.I18n.getString("btn_sound_on");
soundEnabled = false;
} else {
_local2 = com.midasplayer.util.I18n.getString("btn_sound_off");
soundEnabled = true;
}
parent.bottom_bar.btn_sound_toggle.btn_txt.text = _local2;
com.midasplayer.fx.SoundManager.enableSounds(soundEnabled);
}
function terminateGame() {
fscommand ("gameOver", score);
}
function beginTerminateGame() {
if (isIntroRunning) {
isIntroRunning = false;
terminateGame();
return(undefined);
}
isGameRunning = false;
isIntroRunning = false;
var _local2 = createPlate("plate_game_over", terminateGame);
_local2.init([reson2txt[endReason], achievedGoalScore, distScore, score]);
_local2.startAppearAnim();
return(undefined);
}
function goNextLevel() {
com.midasplayer.fx.SoundManager.stop("crowd_loop");
if (goalPredicted) {
com.midasplayer.fx.SoundManager.play("round_end_good");
} else {
com.midasplayer.fx.SoundManager.play("round_end_bad");
}
if (isGameRunning && ((roundNum == totalRoundNum) || (isExitGame))) {
beginTerminateGame();
}
if (isGameRunning) {
isGameRunning = false;
isGameWaiting = false;
var _local2 = createPlate("plate_round_over", initLevel);
_local2.init([roundNum, reson2txt[endReason], achievedGoalScore, distScore, score]);
_local2.startAppearAnim();
cpuTeam.modifyBaseSpeed(speedModifier);
}
}
function createPlate(name, callback) {
var _local4 = parent.getNextHighestDepth();
var _local5 = parent.attachMovie(name, "plate" + _local4, _local4);
_local5.setup(parent, {x:325, y:88, offsetx:-35, offsety:34, background_name:"platta_bkg", mask_name:"platta_bkg", sub_clip_random_delay:-1, anim_is_sub_clips:true, appearanim_begin_frame:1, appearanim_end_frame:10, removeanim_begin_frame:11, removeanim_end_frame:19, call_exit_on_begin_remove:true});
_local5.setExitEvent(mx.utils.Delegate.create(this, callback));
return(_local5);
}
function flushPlayData() {
var _local2 = 0;
for ( ; _local2 < playData.length ; _local2++) {
var _local3 = playData[_local2];
fscommand ("playData", _local3);
}
playData = new Array();
}
function newPlayData(a) {
playData.push(a);
}
function endLevel() {
if (!roundEnded) {
roundEnded = true;
}
}
function enableCrowd() {
crowdVolume = 5;
com.midasplayer.fx.SoundManager.play("crowd_loop", crowdVolume, true);
}
function initLevel() {
com.midasplayer.fx.SoundManager.stop("game_intro_loop");
com.midasplayer.fx.SoundManager.stop("round_end_bad");
com.midasplayer.fx.SoundManager.stop("round_end_good");
com.midasplayer.fx.SoundManager.play("whistle1", 100, false, mx.utils.Delegate.create(this, enableCrowd));
if ((!roundInit) && (roundEnded)) {
roundInit = true;
isGameRunning = true;
isIntroRunning = false;
}
}
function startLevel() {
isExitGame = false;
distLine._visible = true;
achievedGoalScore = 0;
achievedDistScore = 0;
passScore = 0;
parent.panel.round_txt.text = roundNum + 1;
mouseChanged = false;
roundEnded = false;
roundInit = false;
powerups = new Array();
endReason = END_NOT_ENDED;
willScore = false;
mayScore = false;
mayScoreAny = false;
mayScoreHome = false;
charging = false;
var _local2 = view.mc;
goalShotTick = -1;
level.destroyLevel();
playerTeam.resetPowerUps();
var _local3 = random.nextInt(midasplayer.kicking.Const.LAYUP.length);
var _local4 = random.nextInt(midasplayer.kicking.Const.LAYUP.length);
level.buildLevel(midasplayer.kicking.Const.LAYUP[_local3], midasplayer.kicking.Const.LAYUP[_local4]);
roundNum++;
goalCpu.swapDepths(_local2.getNextHighestDepth());
goalTeam.swapDepths(_local2.getNextHighestDepth());
var _local5 = cpuTeam.getGoalkeeper();
_local5.setPosition(PLANE_WIDTH / 2, goalLineCpu.y1 + 20);
_local5.setCanCatch(true);
_local5.setOrientation(-1);
var _local6 = goalLineCpu.x2 - goalLineCpu.x1;
var _local7 = _local6 / 8;
_local5.setGoalArea(goalLineCpu.x1 + _local7, goalLineCpu.y1 + 20, _local6 - (_local7 * 2), 1);
_local6 = goalLineTeam.x2 - goalLineTeam.x1;
_local7 = _local6 / 8;
_local5 = playerTeam.getGoalkeeper();
_local5.setPosition(PLANE_WIDTH / 2, goalLineTeam.y1 - 10);
_local5.setOrientation(1);
_local5.setGoalArea(goalLineTeam.x1 + _local7, goalLineTeam.y1 - 10, _local6 - (_local7 * 2), 1);
var _local8 = _local5.getPosition();
ball.setPosition(_local8.x, _local8.y);
view.centerAround(_local8.x, _local8.y);
view.visible = true;
cursor.setPosition(_local8.x, _local8.y);
cursor.go(0);
cursor.setTimeLimitLow(false);
cursor._visible = true;
ball.reset();
ball.holdBall(_local8.x, _local8.y - 15);
_local5.hasBall = true;
lastBallPlayer = undefined;
ballPlayer = _local5;
chasingCpu = undefined;
targetLocationCpu = undefined;
chasingTeam = undefined;
targetLocationTeam = undefined;
pressedAt = -1;
releasedAt = -1;
lastCharge = -1;
mouseState = false;
currentState = STATE_IDLE;
newState = STATE_WAIT_CHARGE;
targetLocationCpu = cpuTeam.getClosestMember([_local8]);
chasingCpu = targetLocationCpu.getPlayer();
chasingCpu.run(targetLocationCpu.getWaypoint());
chasingCpu.rotation = targetLocationCpu.getDirection();
var _local9 = view.getViewport();
lastView = _local9;
ball.removeLimit();
lastSafeBallY = Math.floor(ball.py);
lastLastSafeBallY = -1;
distAnimator = undefined;
updateDistanceScore();
ballEndMc._visible = false;
ballGroundMc._visible = false;
arriveFirstPlayer = undefined;
ballOutside = false;
goalPredicted = false;
roundTimeUp = getTimer() + (1000 * ROUND_TIME);
parent.panel.time_left_counter_txt._visible = true;
mouseChanged = false;
mouseState = false;
}
function frame() {
for (var i in particle) {
if (particle[i].update()) {
particle[i].removeMovieClip();
delete particle[i];
} else {
particle[i].render();
}
}
if (isIntroRunning) {
introTimer.advanceTime();
}
if (isGameRunning) {
timer.advanceTime();
}
flushPlayData();
}
function mousePress() {
mouseState = true;
mouseChanged = true;
}
function mouseRelease() {
mouseState = false;
mouseChanged = true;
}
function tick(tick) {
if (exitLevelAt == tick) {
goNextLevel();
return(undefined);
}
if (isGameWaiting) {
var _local3 = bothTeams.getMembers().iterator;
while (_local3.hasNext()) {
var _local4 = midasplayer.kicking.Player(_local3.next());
_local4.stabilize();
}
ball.stabilize();
cursor.stabilize();
scrollX.set(ball.px);
scrollY.set(ball.py);
return(undefined);
}
if (!isGameRunning) {
return(undefined);
}
if (roundInit) {
newPlayData(((("6," + tick) + ",") + (roundNum + 1)) + ",0=0");
startLevel();
beginRound = tick;
return(undefined);
}
if (roundEnded) {
score = score + distScore;
newPlayData((((("9," + tick) + ",") + (roundNum + 1)) + ",0=") + score);
var _local5 = ((roundNum == totalRoundNum) ? "game_end" : "whistle2");
com.midasplayer.fx.SoundManager.play(_local5);
exitLevelAt = tick + ((roundNum == totalRoundNum) ? 40 : 15);
isGameWaiting = true;
return(undefined);
}
if (mouseChanged) {
if (mouseState == false) {
releasedAt = tick;
newPlayData(((("7," + tick) + ",") + cursor.getRadians()) + ",0=0");
} else {
pressedAt = tick;
newPlayData(("8," + tick) + ",0=0");
}
mouseChanged = false;
}
if (com.midasplayer.fx.SoundManager.isPlaying("crowd_loop") && (crowdVolume < 50)) {
crowdVolume = crowdVolume + 0.5;
com.midasplayer.fx.SoundManager.setVolume("crowd_loop", crowdVolume);
}
if (currentState != newState) {
initNewState(tick);
}
runCurrentState(tick);
ball.onUpdate();
scrollX.set(ball.px);
scrollY.set(ball.py);
lastView = view.getViewport();
var _local6 = new com.midasplayer.geom.Rectangle(lastView[0], lastView[1], lastView[2], lastView[3]);
var _local7 = bothTeams.getMembers().iterator;
while (_local7.hasNext()) {
var _local8 = midasplayer.kicking.Player(_local7.next());
var _local9 = _local6.isIntersect(_local8.rectangle);
_local8.update(ball, _local9);
}
var _local10 = level.attractPowerUp(ball.px, ball.py, 40);
if (_local10.length > 0) {
for (var i in _local10) {
var _local11 = _local10[i];
var _local12 = new com.midasplayer.util.Sprite(_local11.typeName, _local11.x, _local11.y, 0, view.mc);
powerups.push(_local12);
_local12.setAttribute("index", powerups.length - 1);
_local12.approachAlpha(0, 750, mx.utils.Delegate.create(this, onRemovePowerUp));
playerTeam.usePowerUpById(_local11.type);
delete _local10[i];
com.midasplayer.fx.SoundManager.play("bonus_pickup");
}
}
if (goalPredicted && ((goalShotTick != -1) && ((goalShotTick + 12) == tick))) {
com.midasplayer.fx.SoundManager.play("goalcry");
goalShotTick = -1;
}
for (var i in powerups) {
var _local13 = powerups[i];
_local13.moveSpringy(ball.px, ball.py, 0.75, 0.2);
}
cursor.update();
if ((!goalPredicted) && (tick == (beginRound + (ROUND_TIME * 25)))) {
endReason = END_TIME_UP;
endLevel();
return(undefined);
}
var _local14 = cpuTeam.getGoalkeeper();
if (_local14.pickedUpBall()) {
endReason = END_OPPONENT_INTERCEPT;
endLevel();
return(undefined);
}
}
function updateDistanceScore() {
if ((!willScore) && (lastSafeBallY != lastLastSafeBallY)) {
if (lastSafeBallY < PLANE_MARGIN_TOP) {
lastSafeBallY = Math.floor(PLANE_MARGIN_TOP);
}
if (lastSafeBallY > (PLANE_MARGIN_TOP + PLANE_HEIGHT)) {
lastSafeBallY = Math.floor(PLANE_MARGIN_TOP + PLANE_HEIGHT);
}
var _local2 = (lastSafeBallY - PLANE_MARGIN_TOP) / (PLANE_HEIGHT - (PLANE_MARGIN_TOP + PLANE_MARGIN_BOTTOM));
distScore = 100 - Math.floor(_local2 * 100);
distLine.msgbox.text = "" + distScore;
distAnimator = new com.midasplayer.util.EaseInBackAnimator(distLine);
distAnimator.setPosition(distLine._x, midasplayer.kicking.Radar.RADAR_TOP + (_local2 * midasplayer.kicking.Radar.RADAR_HEIGHT));
distAnimator.setDuration(1000);
lastLastSafeBallY = lastSafeBallY;
}
}
function onRemovePowerUp(sp) {
var _local3 = sp.getAttribute("index");
delete powerups[_local3];
sp.destroy();
}
function render(tick, alpha) {
var _local4 = bothTeams.getMembers().iterator;
while (_local4.hasNext()) {
var _local5 = midasplayer.kicking.Player(_local4.next());
_local5.render(alpha);
}
ball.onRender(alpha);
shadowClip.gotoAndStop(Math.round(ball.getAltitude() * 20) + 1);
shadowClip._x = ball._x - 8;
shadowClip._y = ball._y - 8;
view.centerAround(scrollX.get(alpha), scrollY.get(alpha));
radar.setView(lastView);
radar.render(alpha);
cursor.render(alpha);
if (distAnimator) {
if (!distAnimator.isFinished()) {
distAnimator.update();
} else {
distAnimator = undefined;
}
}
var _local6 = Math.max(0, roundTimeUp - getTimer());
if (_local6 < 5000) {
parent.panel.time_left_counter_txt._visible = ((tick % 20) < 10) || (!isGameRunning);
cursor.setTimeLimitLow(true);
}
if (lastDrawTimeLeft != Math.floor(_local6 / 500)) {
parent.panel.time_left_counter_txt.text = com.midasplayer.util.Numbers.asTime(_local6, false, true);
lastDrawTimeLeft = Math.floor(_local6 / 500);
}
if (lastDrawScore != score) {
parent.panel.score_txt.text = com.midasplayer.util.Numbers.itoa(score, 5);
lastDrawScore = score;
}
}
function initNewState(tick) {
switch (newState) {
case STATE_IDLE :
case STATE_WAIT_CHARGE :
case STATE_CHARGE_SHOT :
case STATE_WAIT_REACH :
break;
case STATE_INTERCEPT :
if (chasingTeam) {
chasingTeam.halt();
chasingTeam.shadow = false;
}
if (chasingCpu) {
chasingCpu.halt();
chasingCpu.shadow = false;
}
if (goalPredicted) {
} else {
var _local3 = ball.getWaypoints();
var _local4 = ball.getEndPosition();
targetLocationTeam = playerTeam.getClosestMember(_local3);
targetLocationCpu = cpuTeam.getClosestMember(_local3);
chasingTeam = targetLocationTeam.getPlayer();
chasingTeam.run(targetLocationTeam.getWaypoint());
chasingTeam.rotation = targetLocationTeam.getDirection();
chasingCpu = targetLocationCpu.getPlayer();
chasingCpu.run(targetLocationCpu.getWaypoint());
chasingCpu.rotation = targetLocationCpu.getDirection();
cursor.go(0);
lastCharge = -1;
ballEndMc._x = _local4.x;
ballEndMc._y = _local4.y;
ballEndMc._visible = true;
var _local5 = ball.getPathList();
var _local6 = _local5.length - 1;
// unexpected jump
for(;;){
_local6--;
if (_local6 <= -1) {
break;
}
if (_local5[_local6][3] != 0) {
ballGroundMc._x = _local5[_local6][0];
ballGroundMc._y = _local5[_local6][1];
ballGroundMc._visible = true;
break;
}
};
}
}
currentState = newState;
}
function checkGoal() {
var _local2 = ball.getEndPosition();
var _local3 = new com.midasplayer.geom.Line(ball.px, ball.py, _local2.x, _local2.y);
mayScore = goalLineCpu.getIntersect(_local3) != null;
mayScoreHome = goalLineTeam.getIntersect(_local3) != null;
mayScoreAny = mayScoreHome || (mayScore);
if (mayScore) {
var _local4 = cpuTeam.getGoalkeeper();
if (_local4.willCatchShot(ball, goalLineCpu, goalCpu.area) == false) {
goalPredicted = true;
}
chasingCpu.halt();
chasingTeam.halt();
}
return(mayScore);
}
function passCompleted() {
if ((!passScored) && (ballPlayer != lastBallPlayer)) {
score = score + 100;
passScore = passScore + 100;
passScored = true;
}
}
function runCurrentState(tick) {
if ((!arriveFirstPlayer) && (!chasingTeam.isRunning)) {
arriveFirstPlayer = chasingTeam;
}
if ((!arriveFirstPlayer) && (!chasingCpu.isRunning)) {
arriveFirstPlayer = chasingCpu;
}
if ((!chasingCpu.isRunning) && ((!ballOutside) && (!goalPredicted))) {
var _local3 = ball.getPathIndex();
if ((targetLocationTeam.getWaypoint().t < targetLocationCpu.getWaypoint().t) && (_local3 > targetLocationCpu.getWaypoint().t)) {
targetLocationCpu = new midasplayer.kicking.PlayerLocation(chasingCpu, targetLocationTeam.getWaypoint());
chasingCpu.run(targetLocationCpu.getWaypoint());
chasingCpu.rotation = targetLocationCpu.getDirection();
}
if (targetLocationCpu.getWaypoint().t == _local3) {
if ((arriveFirstPlayer == chasingCpu) || ((lastBallPlayer == ballPlayer) || ((chasingTeam instanceof midasplayer.kicking.Goalkeeper) || (chasingTeam.isRunning || (charging || (lastCharge == -1)))))) {
endReason = END_OPPONENT_INTERCEPT;
endLevel();
return(undefined);
}
}
}
if ((ball.px < PLANE_MARGIN_LEFT) || ((ball.py < PLANE_MARGIN_TOP) || ((ball.py > (PLANE_HEIGHT - PLANE_MARGIN_BOTTOM)) || (ball.px > (PLANE_WIDTH - PLANE_MARGIN_RIGHT))))) {
chasingCpu.halt();
chasingTeam.halt();
ballOutside = true;
cursor._visible = false;
}
var _local4 = ball.getCurrentPosition();
var _local5 = ball.getLastPosition();
var _local6 = new com.midasplayer.geom.Line(_local5.x, _local5.y, _local4.x, _local4.y);
if (!ball.hasLimit()) {
if (ball.py <= (goalLineCpu.y1 + 50)) {
if (goalLineSideCpu1.getIntersect(_local6)) {
ball.enforceLimit(goalSideLimitCpu1);
}
if (goalLineSideCpu2.getIntersect(_local6)) {
ball.enforceLimit(goalSideLimitCpu2);
}
}
if (ball.py >= (goalLineTeam.y1 - 50)) {
if (goalLineSideTeam1.getIntersect(_local6)) {
ball.enforceLimit(goalSideLimitTeam1);
}
if (goalLineSideTeam2.getIntersect(_local6)) {
ball.enforceLimit(goalSideLimitTeam2);
}
}
}
if (mayScoreAny) {
if (mayScore) {
var _local7 = _local6.getIntersect(goalLineCpu);
if (_local7 != null) {
goalIntersectPoint = _local7;
ball.enforceLimit(goalCpu.area);
willScore = true;
}
}
if (mayScoreHome) {
var _local8 = _local6.getIntersect(goalLineTeam);
if (_local8 != null) {
goalIntersectPoint = _local8;
ball.enforceLimit(goalTeam.area);
willScore = true;
}
}
}
if (goalPredicted) {
cursor._visible = false;
var _local9 = 0;
for ( ; _local9 < 4 ; _local9++) {
var _local10 = view.mc.getNextHighestDepth();
var _local11 = view.mc.attachMovie("particle", "p" + _local10, _local10);
_local11.init(ball.px, ball.py);
particle.push(_local11);
}
}
if (goalPredicted || (mayScoreHome)) {
if (!ball.isMoving) {
endReason = END_GOAL;
retryCount = ROUND_RETRY;
if (mayScore) {
var _local12 = ball.getStartPosition();
var _local13 = _local12.x - goalIntersectPoint.x;
var _local14 = _local12.y - goalIntersectPoint.y;
var _local15 = Math.sqrt((_local13 * _local13) + (_local14 * _local14));
achievedGoalScore = Math.floor(300 * (_local15 / currentMaxLen));
distScore = 100;
score = score + passScore;
score = score + achievedGoalScore;
}
if (mayScoreHome) {
score = Math.max(0, score - 1000);
}
endLevel();
}
return(undefined);
}
if ((ballOutside && (!ball.isMoving)) || ((ball.px < 0) || ((ball.py < 0) || ((ball.py > PLANE_HEIGHT) || (ball.px > PLANE_WIDTH))))) {
endReason = END_OUTSIDE;
endLevel();
return(undefined);
}
if (cursor._visible == true) {
if (chasingTeam != null) {
var _local16 = chasingTeam.getPosition();
cursor.setPosition(_local16.x, _local16.y);
}
if ((lastCharge == -1) && ((!charging) && (mouseState))) {
cursor.hold();
charging = true;
}
if (charging) {
var _local17 = playerTeam.getKickPower();
var _local18 = ((tick - pressedAt) * (1000 / 25)) / (1.25 * _local17);
var _local19 = (_local18 % MAX_SHOT_CHARGE_TIME) / MAX_SHOT_CHARGE_TIME;
lastCharge = Math.sin(_local19 * Math.PI) * _local17;
if (!mouseState) {
charging = false;
}
if (_local18 > MAX_SHOT_CHARGE_TIME) {
mouseState = false;
charging = false;
lastCharge = -1;
cursor.go();
} else {
ballPlayer.setChargePower(lastCharge);
cursor.setPower(lastCharge * 60);
}
if (!ballPlayer.isRunning) {
ballPlayer.facingAngle((2 * Math.PI) - cursor.getRadians());
}
}
}
switch (currentState) {
case STATE_IDLE :
break;
case STATE_WAIT_CHARGE :
case STATE_CHARGE_SHOT :
if ((!charging) && (lastCharge != -1)) {
if ((ballPlayer == chasingTeam) && (ball.getPathIndex() < targetLocationTeam.getWaypoint().t)) {
newState = STATE_WAIT_REACH;
break;
}
if (ballOutside) {
endReason = END_OUTSIDE;
endLevel();
return(undefined);
}
newState = STATE_INTERCEPT;
lastSafeBallY = Math.floor(ball.py);
updateDistanceScore();
var _local20 = cursor.getRadians();
var _local21 = 3 * lastCharge;
currentMaxLen = ball.getMaxShotLength(3 * playerTeam.getKickPower());
ball.affect(_local20, _local21);
ballPlayer.facingAngle((2 * Math.PI) - cursor.getRadians());
if (checkGoal()) {
com.midasplayer.fx.SoundManager.play("kick3");
goalShotTick = tick;
} else {
com.midasplayer.fx.SoundManager.play("kick1");
}
passScored = false;
lastCharge = -1;
ballPlayer.shadow = false;
arriveFirstPlayer = undefined;
lastBallPlayer = ballPlayer;
lastBallPlayer.hasBall = false;
}
break;
case STATE_INTERCEPT :
var _local22 = ball.getPathList();
var _local23 = ball.getPathIndex();
if (!chasingTeam.isRunning) {
if ((targetLocationCpu.getWaypoint().t < targetLocationTeam.getWaypoint().t) && (targetLocationTeam.getWaypoint().t < _local23)) {
chasingTeam.run(targetLocationCpu.getWaypoint());
targetLocationTeam = new midasplayer.kicking.PlayerLocation(chasingTeam, targetLocationCpu.getWaypoint());
chasingTeam.rotation = targetLocationTeam.getDirection();
break;
}
if (targetLocationTeam.getWaypoint().t >= _local23) {
newState = STATE_WAIT_CHARGE;
lastBallPlayer = ballPlayer;
lastBallPlayer.hasBall = false;
ballPlayer = chasingTeam;
ballPlayer.hasBall = true;
ball.setStopAtIdx(targetLocationTeam.getWaypoint().t);
chasingCpu.run(targetLocationTeam.getWaypoint());
targetLocationCpu = new midasplayer.kicking.PlayerLocation(chasingCpu, targetLocationTeam.getWaypoint());
chasingCpu.rotation = targetLocationCpu.getDirection();
}
}
break;
case STATE_WAIT_REACH :
if ((ballPlayer == chasingCpu) && (ball.getPathIndex() < targetLocationCpu.getWaypoint().t)) {
} else if ((ballPlayer == chasingTeam) && (ball.getPathIndex() < targetLocationTeam.getWaypoint().t)) {
} else {
if (ballOutside) {
endReason = END_OUTSIDE;
endLevel();
return(undefined);
}
lastSafeBallY = Math.floor(ball.py);
updateDistanceScore();
currentMaxLen = ball.getMaxShotLength(3 * playerTeam.getKickPower());
var _local24 = cursor.getRadians();
var _local25 = 3 * lastCharge;
ball.affect(_local24, _local25);
passScored = false;
if (checkGoal()) {
com.midasplayer.fx.SoundManager.play("kick3");
goalShotTick = tick;
} else {
com.midasplayer.fx.SoundManager.play("kick2");
}
lastCharge = -1;
arriveFirstPlayer = undefined;
lastBallPlayer = ballPlayer;
lastBallPlayer.hasBall = false;
newState = STATE_INTERCEPT;
}
}
if ((!mayScoreAny) && ((ballPlayer == arriveFirstPlayer) && ((ballPlayer != undefined) && (!passScored)))) {
passCompleted();
}
}
static var RADIAN_TO_DEGREE = 57.29577951308;
static var DEGREE_TO_RADIAN = 0.01745329251994;
static var PLANE_WIDTH = 605;
static var PLANE_HEIGHT = 1100;
static var PLANE_MARGIN_TOP = 108;
static var PLANE_MARGIN_BOTTOM = 29;
static var PLANE_MARGIN_LEFT = 14;
static var PLANE_MARGIN_RIGHT = 14;
static var GOAL_HEIGHT = 36;
static var GOAL_WIDTH = 206;
static var VERSION = "1.06";
static var AUTO_VERSION = "BUILD_[187]_10730ed2047";
static var ROUND_TIME = 35;
static var ROUND_RETRY = 1;
static var MAX_SHOT_CHARGE_TIME = 1500;
static var MOVIE_FPS = 40;
static var STATE_IDLE = 0;
static var STATE_WAIT_CHARGE = 1;
static var STATE_CHARGE_SHOT = 2;
static var STATE_HOLDING = 3;
static var STATE_INTERCEPT = 4;
static var STATE_WAIT_REACH = 5;
static var END_NOT_ENDED = 0;
static var END_OPPONENT_INTERCEPT = 1;
static var END_OUTSIDE = 2;
static var END_GOAL = 3;
static var END_TIME_UP = 4;
var reson2txt = ["endreason_none", "endreason_intercept", "endreason_outside", "endreason_goal", "endreason_timeup"];
}
Symbol 436 MovieClip [__Packages.midasplayer.kicking.Radar] Frame 0
class midasplayer.kicking.Radar
{
var parent, rView, rw, rh, iw, ih, pl, pt, innerRect, mc, mcd, powerup, player, ball, lastView, ballObj;
function Radar (parent) {
this.parent = parent;
rView = [0, 0, RADAR_WIDTH, RADAR_HEIGHT];
rw = midasplayer.kicking.Game.PLANE_WIDTH;
rh = midasplayer.kicking.Game.PLANE_HEIGHT;
iw = rw - (midasplayer.kicking.Game.PLANE_MARGIN_LEFT + midasplayer.kicking.Game.PLANE_MARGIN_RIGHT);
ih = rh - (midasplayer.kicking.Game.PLANE_MARGIN_BOTTOM + midasplayer.kicking.Game.PLANE_MARGIN_TOP);
pl = (midasplayer.kicking.Game.PLANE_MARGIN_LEFT / iw) * RADAR_WIDTH;
pt = (midasplayer.kicking.Game.PLANE_MARGIN_TOP / ih) * RADAR_HEIGHT;
innerRect = new com.midasplayer.geom.Rectangle(midasplayer.kicking.Game.PLANE_MARGIN_LEFT, midasplayer.kicking.Game.PLANE_MARGIN_TOP, iw, ih);
mc = parent.createEmptyMovieClip("radarph", parent.getNextHighestDepth());
mc._x = RADAR_LEFT;
mc._y = RADAR_TOP;
mcd = new com.midasplayer.fx.Draw(mc);
powerup = [];
player = [];
ball = null;
lastView = null;
}
function initDone() {
ballObj.swapDepths(mc.getNextHighestDepth());
}
function render(a) {
mcd.clear();
mcd.alpha = 20;
mcd.color = 0;
mcd.fillInverseRect(lastView);
mcd.alpha = 100;
mcd.color = 24576;
mcd.drawBox(lastView[4], lastView[5], lastView[6], lastView[7]);
for (var i in player) {
var _local3 = player[i];
var _local4 = _local3.getPosition();
_local3.radarDot._x = ((_local4.x / iw) * RADAR_WIDTH) - pl;
_local3.radarDot._y = ((_local4.y / ih) * RADAR_HEIGHT) - pt;
}
ballObj._x = ((ball.px / iw) * RADAR_WIDTH) - pl;
ballObj._y = ((ball.py / ih) * RADAR_HEIGHT) - pt;
}
function setView(v) {
var _local3 = innerRect.getIntersection(new com.midasplayer.geom.Rectangle(v[0], v[1], v[2], v[3]));
var _local4 = [_local3.x1, _local3.y1, _local3.x2 - _local3.x1, _local3.y2 - _local3.y1];
_local4[0] = ((_local4[0] / iw) * RADAR_WIDTH) - pl;
_local4[1] = ((_local4[1] / ih) * RADAR_HEIGHT) - pt;
_local4[2] = (_local4[2] / iw) * RADAR_WIDTH;
_local4[3] = (_local4[3] / ih) * RADAR_HEIGHT;
lastView = new Array().concat(rView).concat(_local4);
}
function clearObjects() {
player = [];
powerup = [];
}
function addPlayer(p, teamId) {
var _local4 = mc.getNextHighestDepth();
p.radarDot = mc.attachMovie("dot" + teamId, (("team" + teamId) + "_dot_") + _local4, _local4);
player.push(p);
}
function setBall(b) {
var _local3 = mc.getNextHighestDepth();
ballObj = mc.attachMovie("dot3", "ball_" + _local3, mc.getNextHighestDepth());
ball = b;
}
function addPowerUp(bag) {
var _local3 = mc.attachMovie("dot4", "powerup_dot_" + bag.i, mc.getNextHighestDepth());
_local3._x = ((bag.x / iw) * RADAR_WIDTH) - pl;
_local3._y = ((bag.y / ih) * RADAR_HEIGHT) - pt;
bag.rclip = _local3;
powerup.push(bag);
}
static var RADAR_LEFT = 19;
static var RADAR_TOP = 297;
static var RADAR_RIGHT = 129;
static var RADAR_BOTTOM = 481;
static var RADAR_WIDTH = RADAR_RIGHT - RADAR_LEFT;
static var RADAR_HEIGHT = RADAR_BOTTOM - RADAR_TOP;
}
Symbol 437 MovieClip [__Packages.com.midasplayer.fx.Draw] Frame 0
class com.midasplayer.fx.Draw
{
var clip, colorVal, thicknessVal, alphaVal, __get__color, __get__alpha, __get__thickness;
function Draw (mc) {
clip = mc;
colorVal = 16777215 /* 0xFFFFFF */;
thicknessVal = 1.5;
alphaVal = 255;
}
function clone() {
var _local2 = new com.midasplayer.fx.Draw();
_local2.clip = clip;
_local2.thicknessVal = thicknessVal;
_local2.colorVal = colorVal;
_local2.alphaVal = alphaVal;
return(_local2);
}
function createClip(parent) {
var _local3 = parent.getNextHighestDepth();
clip = parent.createEmptyMovieClip("fx_draw_" + count, _local3);
count++;
}
function set color(v) {
colorVal = v;
//return(__get__color());
}
function set alpha(v) {
alphaVal = v;
//return(__get__alpha());
}
function set thickness(v) {
thicknessVal = v;
//return(__get__thickness());
}
function clear() {
clip.clear();
}
function fillInverseRect(param) {
var _local3 = param[0];
var _local4 = param[1];
var _local5 = _local3 + param[2];
var _local6 = _local4 + param[3];
var _local7 = param[4];
var _local8 = param[5];
var _local9 = _local7 + param[6];
var _local10 = _local8 + param[7];
if (_local8 > _local4) {
fillRect(_local3, _local4, _local5, _local8);
}
if (_local10 < _local6) {
fillRect(_local3, _local10, _local5, _local6 - _local10);
}
if (_local7 > _local3) {
fillRect(_local3, _local8, _local7 - _local3, _local10 - _local8);
}
if (_local9 < _local5) {
fillRect(_local9, _local8, _local5 - _local9, _local10 - _local8);
}
}
function fillRect(left, top, width, height) {
clip.endFill();
clip.beginFill(colorVal, alphaVal);
clip.moveTo(left, top);
clip.lineTo(left + width, top);
clip.lineTo(left + width, top + height);
clip.lineTo(left, top + height);
clip.lineTo(left, top);
clip.endFill();
}
function fillRectangle(r) {
fillRect(r.x1, r.y1, r.x2 - r.x1, r.y2 - r.y1);
}
function drawBox(left, top, width, height) {
drawLine(left, top, left + width, top);
drawLine(left, top, left, top + height);
drawLine(left + width, top + height, left + width, top);
drawLine(left + width, top + height, left, top + height);
}
function drawLine(x1, y1, x2, y2) {
clip.lineStyle(thicknessVal, colorVal, alphaVal);
clip.moveTo(x1, y1);
clip.lineTo(x2, y2);
}
function fillPolygon(points) {
clip.beginFill(colorVal, alphaVal);
clip.moveTo(points[0], points[1]);
var _local3 = 1;
var _local4 = points.length / 2;
for ( ; _local3 < _local4 ; _local3++) {
clip.lineTo(points[_local3 * 2], points[(_local3 * 2) + 1]);
}
clip.lineTo(points[0], points[1]);
clip.endFill();
}
function get mc() {
return(clip);
}
static var count = 1;
}
Symbol 438 MovieClip [__Packages.com.midasplayer.geom.Rectangle] Frame 0
class com.midasplayer.geom.Rectangle
{
var px, py, width, height;
function Rectangle (x, y, w, h) {
px = x;
py = y;
width = w;
height = h;
}
function get x1() {
return(px);
}
function get y1() {
return(py);
}
function get x2() {
return(px + width);
}
function get y2() {
return(py + height);
}
function get isValid() {
return((width > 0) && (height > 0));
}
function setPosition(x, y) {
px = x;
py = y;
}
function isInside(x, y) {
return((x >= px) && ((x < (px + width)) && ((y >= py) && (y < (py + height)))));
}
function isIntersect(other) {
var _local3 = px;
var _local4 = other.px;
var _local5 = px + width;
var _local6 = other.px + other.width;
var _local7 = py;
var _local8 = other.py;
var _local9 = py + height;
var _local10 = other.py + other.height;
return(!((_local9 < _local8) || ((_local7 > _local10) || ((_local5 < _local4) || (_local3 > _local6)))));
}
function getIntersection(other) {
var _local3 = px;
var _local4 = other.px;
var _local5 = px + width;
var _local6 = other.px + other.width;
var _local7 = py;
var _local8 = other.py;
var _local9 = py + height;
var _local10 = other.py + other.height;
if ((_local9 < _local8) || ((_local7 > _local10) || ((_local5 < _local4) || (_local3 > _local6)))) {
return(INVALID);
}
var _local11 = ((_local9 > _local10) ? (_local10) : (_local9));
var _local12 = ((_local7 < _local8) ? (_local8) : (_local7));
var _local13 = ((_local5 > _local6) ? (_local6) : (_local5));
var _local14 = ((_local3 < _local4) ? (_local4) : (_local3));
var _local15 = _local13 - _local14;
var _local16 = _local11 - _local12;
return(new com.midasplayer.geom.Rectangle(_local14, _local12, _local15, _local16));
}
function toString() {
return(((((((("Rectangle[" + x1) + ",") + y1) + " -- ") + x2) + ",") + y2) + "]");
}
static var INVALID = new com.midasplayer.geom.Rectangle(0, 0, -1000, -1000);
}
Symbol 439 MovieClip [__Packages.midasplayer.kicking.Ball] Frame 0
class midasplayer.kicking.Ball extends MovieClip
{
static var ballStep;
var shotType, ballFrame, rotation, isHeld, segments, waypoints, locationList, locationListIdx, ffx, ffy, v, startBallPos, currentBallPos, lastBallPos, isIdle, tx, fx, _x, fy, _y, onTop, cachedMaxLen, maxLen, limit, shotAngle, ty, ballForce, t, theight, locationListStopIdx, minClip, _xscale, _yscale, swapDepths, _rotation, obj;
function Ball () {
super();
shotType = 0;
ballStep = 4;
ballFrame = 0;
rotation = 0;
isHeld = false;
segments = new Array();
waypoints = new Array();
locationList = new Array();
locationListIdx = 0;
ffx = new com.midasplayer.timing.IFloat();
ffy = new com.midasplayer.timing.IFloat();
v = new midasplayer.kicking.Vector();
startBallPos = new com.midasplayer.geom.Pt(0, 0);
currentBallPos = new com.midasplayer.geom.Pt(0, 0);
lastBallPos = new com.midasplayer.geom.Pt(0, 0);
isIdle = true;
tx = (fx = _x);
tx = (fy = _y);
onTop = false;
}
function copyDead() {
var _local2 = new midasplayer.kicking.Ball();
_local2.cachedMaxLen = cachedMaxLen;
_local2.maxLen = maxLen;
_local2.ballFrame = ballFrame;
_local2.limit = new com.midasplayer.geom.Rectangle(limit.x1, limit.y1, limit.x2 - limit.x1, limit.y2 - limit.y1);
_local2.shotType = shotType;
_local2.shotAngle = shotAngle;
_local2.rotation = rotation;
_local2.tx = tx;
_local2.ty = ty;
_local2.ballForce = ballForce;
_local2.t = t;
_local2.theight = theight;
_local2.fx = fx;
_local2.fy = fy;
_local2.locationListStopIdx = locationListStopIdx;
_local2.isIdle = isIdle;
_local2.isHeld = isHeld;
_local2.onTop = onTop;
_local2.startBallPos = new com.midasplayer.geom.Pt(startBallPos.x, startBallPos.y);
_local2.currentBallPos = new com.midasplayer.geom.Pt(currentBallPos.x, currentBallPos.y);
_local2.lastBallPos = new com.midasplayer.geom.Pt(lastBallPos.x, lastBallPos.y);
_local2.locationList = [];
for (var i in locationList) {
var _local3 = [];
for (var j in locationList[i]) {
_local3[j] = locationList[i][j];
}
_local2.locationList[i] = _local3;
}
_local2.segments = [];
for (var i in segments) {
var _local4 = segments[i];
_local2.segments[i] = new com.midasplayer.geom.Line(_local4.x1, _local4.y1, _local4.x2, _local4.y2);
}
_local2.waypoints = [];
for (var i in waypoints) {
var _local5 = waypoints[i];
_local2.waypoints[i] = new com.midasplayer.geom.Pt(_local5.x, _local5.y);
}
return(_local2);
}
function getEndPosition() {
return(new com.midasplayer.geom.Pt(tx, ty));
}
function getStartPosition() {
return(startBallPos);
}
function getLastPosition() {
return(lastBallPos);
}
function getCurrentPosition() {
return(currentBallPos);
}
function getSegments() {
return(segments);
}
static function setStepping(v) {
ballStep = v;
}
static function getStepping() {
return(ballStep);
}
function freeze() {
isIdle = true;
v = new midasplayer.kicking.Vector();
}
function get isMoving() {
return(!isIdle);
}
function getMaxShotLength(maxForce) {
if (maxForce != cachedMaxLen) {
var _local3 = fx;
var _local4 = fy;
affect(1, maxForce);
var _local5 = Math.abs(fx - tx);
var _local6 = Math.abs(fy - ty);
cachedMaxLen = maxForce;
maxLen = Math.sqrt((_local5 * _local5) + (_local6 * _local6));
tx = (fx = _local3);
tx = (fy = _local4);
isIdle = true;
v = new midasplayer.kicking.Vector();
segments = new Array();
waypoints = new Array();
locationList = new Array();
locationListIdx = 0;
}
return(maxLen);
}
function affect(dir, force) {
force = Math.max(0.5, force);
isHeld = false;
rotation = dir * midasplayer.kicking.Game.RADIAN_TO_DEGREE;
segments = new Array();
waypoints = new Array();
locationList = new Array();
locationListIdx = 0;
onTop = false;
ballForce = force * 4;
t = 0;
v.setByForceDirection(new com.midasplayer.geom.Pt(fx, fy), force, dir);
isIdle = false;
var _local4 = v.wx;
var _local5 = v.wy;
tx = fx;
ty = fy;
startBallPos.x = tx;
startBallPos.y = ty;
var _local6 = 0;
var _local7 = ballForce / 1500;
var _local8 = 0;
var _local9 = new com.midasplayer.geom.Pt(fx, fy);
var _local11 = 0;
shotAngle = (Math.PI * 2) - 0.7;
var _local12 = Math.sin(shotAngle) * ballForce;
var _local13 = ballStep;
var _local14 = 0;
var _local15 = 0;
var _local16 = 0;
var _local17 = 0;
while ((Math.abs(_local4) > 0.2) || (Math.abs(_local5) > 0.2)) {
tx = tx + _local4;
_local4 = _local4 * FRICTION;
ty = ty + _local5;
_local5 = _local5 * FRICTION;
t = t + _local7;
_local15 = Math.max(0, ((-t) * _local12) - ((t * t) * 16));
switch (_local16) {
case 2 :
var _local18 = 0.4 * _local14;
var _local19 = Math.max(0, (_local17 + _local18) - t);
if (_local19 == 0) {
_local16 = 3;
} else {
_local15 = Math.sin(Math.PI * (_local19 / _local18)) * (0.33 * _local14);
}
break;
case 1 :
if (_local15 == 0) {
_local16 = 2;
_local17 = t;
}
_local14 = Math.max(_local15, _local14);
break;
case 0 :
if (_local15 <= 0.5) {
break;
}
_local16 = 1;
}
_local13--;
if (_local13 == 0) {
locationList.push([tx, ty, _local8, _local15, ((1 - _local15) * (Math.abs(_local4) + Math.abs(_local5))) / 2]);
_local13 = ballStep;
_local8++;
if ((_local15 < 0.25) && (_local11 == 1)) {
_local9 = new com.midasplayer.geom.Pt(tx, ty);
_local11++;
}
if ((_local15 > 0.25) && (_local11 == 0)) {
var _local10 = new com.midasplayer.geom.Pt(tx, ty);
var _local20 = new com.midasplayer.geom.Line(_local9.x, _local9.y, _local10.x, _local10.y);
segments.push(_local20);
_local11++;
}
}
}
t = 0;
var _local10 = new com.midasplayer.geom.Pt(tx, ty);
segments.push(new com.midasplayer.geom.Line(_local9.x, _local9.y, _local10.x, _local10.y));
var _local21 = new Array();
subdivide(new com.midasplayer.geom.Line(segments[0].x1, segments[0].y1, segments[0].x2, segments[0].y2), _local21);
subdivide2(new com.midasplayer.geom.Line(segments[1].x1, segments[1].y1, segments[1].x2, segments[1].y2), _local21);
var _local22 = locationList.length;
var _local23 = _local21.length;
var _local24 = 0;
for ( ; _local24 < _local23 ; _local24++) {
var _local25 = 5000;
var _local26 = -1;
var _local27 = _local21[_local24];
_local6 = 0;
for ( ; _local6 < _local22 ; _local6++) {
var _local28 = locationList[_local6];
_local11 = Math.abs(_local28[0] - _local27.x) + Math.abs(_local28[1] - _local27.y);
if (_local11 < _local25) {
_local25 = _local11;
_local26 = _local6;
}
}
if (_local26 != -1) {
var _local29 = locationList[_local26];
var _local30 = new com.midasplayer.geom.Pt(_local29[0], _local29[1]);
_local30.t = _local29[2];
waypoints.push(_local30);
}
}
locationListStopIdx = locationList.length - 1;
}
function subdivide(l, pts) {
pts.push(new com.midasplayer.geom.Pt(l.x1, l.y1));
var _local4 = l.getMiddle();
var _local5 = new com.midasplayer.geom.Line(l.x1, l.y1, _local4.x, _local4.y);
var _local6 = new com.midasplayer.geom.Line(_local4.x, _local4.y, l.x2, l.y2);
pts.push(new com.midasplayer.geom.Pt(_local5.x1, _local5.y1));
pts.push(new com.midasplayer.geom.Pt(_local5.x2, _local5.y2));
pts.push(new com.midasplayer.geom.Pt(_local6.x1, _local6.y1));
pts.push(new com.midasplayer.geom.Pt(_local6.x2, _local6.y2));
pts.push(new com.midasplayer.geom.Pt(l.x2, l.y2));
}
function reset() {
segments = new Array();
waypoints = new Array();
locationList = new Array();
locationListIdx = 0;
isHeld = false;
locationListIdx = 0;
}
function subdivide2(l, pts) {
pts.push(new com.midasplayer.geom.Pt(l.x1, l.y1));
var _local4 = l.getMiddle();
var _local5 = new com.midasplayer.geom.Line(l.x1, l.y1, _local4.x, _local4.y);
subdivide(_local5, pts);
var _local6 = new com.midasplayer.geom.Line(_local4.x, _local4.y, l.x2, l.y2);
subdivide(_local6, pts);
pts.push(new com.midasplayer.geom.Pt(l.x2, l.y2));
}
function get px() {
return(fx);
}
function get py() {
return(fy);
}
function getPathList() {
return(locationList);
}
function holdBall(x, y) {
theight = 0.15;
isHeld = true;
fx = x;
fy = y;
}
function setStopAtIdx(idx) {
locationListStopIdx = Math.min(idx, locationList.length - 1);
}
function getPathIndex() {
return(locationListIdx);
}
function getPreviousPathIndex() {
return(Math.max(0, locationListIdx - 1));
}
function getWaypoints() {
return(waypoints);
}
function setPosition(x, y) {
v = new midasplayer.kicking.Vector();
isIdle = true;
_x = (tx = (fx = x));
_y = (tx = (fy = y));
ffx.set(fx);
ffy.set(fy);
}
function setMinMovieClip(mc) {
minClip = mc;
}
function getAltitude() {
return(theight);
}
function onRender(alpha) {
_xscale = (_yscale = (theight + 1.5) * 50);
if (((!onTop) && (theight > 0.5)) || (isHeld)) {
onTop = true;
swapDepths(51200);
}
if (onTop && (theight < 0.5)) {
onTop = false;
swapDepths(minClip);
}
_x = ffx.get(alpha);
_y = ffy.get(alpha);
_rotation = 360 - (rotation % 360);
}
function enforceLimit(r) {
limit = r;
}
function removeLimit() {
limit = undefined;
}
function hasLimit() {
return(limit != undefined);
}
function enforce() {
if (limit && (!limit.isInside(fx, fy))) {
if (fx < limit.x1) {
fx = limit.x1;
}
if (fx > limit.x2) {
fx = limit.x2;
}
if (fy < limit.y1) {
fy = limit.y1;
}
if (fy > limit.y2) {
fy = limit.y2;
}
}
}
function stabilize() {
ffx.set(fx);
ffy.set(fy);
}
function onUpdate() {
if (isHeld) {
ffx.set(fx);
ffy.set(fy);
return(undefined);
}
if (isIdle) {
enforce();
ffx.set(fx);
ffy.set(fy);
theight = 0;
return(undefined);
}
var _local2 = locationList[Math.min(locationListStopIdx, locationListIdx)];
var _local3 = obj;
var _local4 = Math.floor(ballFrame) % _local3._totalframes;
_local3.gotoAndStop(_local4);
lastBallPos.x = fx;
lastBallPos.y = fy;
fx = _local2[0];
fy = _local2[1];
enforce();
currentBallPos.x = fx;
currentBallPos.y = fy;
ffx.set(fx);
ffy.set(fy);
theight = _local2[3];
if ((!isIdle) && (locationListIdx == locationListStopIdx)) {
isIdle = true;
v = new midasplayer.kicking.Vector();
} else if (locationListIdx < locationListStopIdx) {
locationListIdx++;
}
if (!isIdle) {
ballFrame = ballFrame + (_local2[4] * 2.25);
}
}
static var SHOT_HIGH = 0;
static var SHOT_LOW = 1;
static var FRICTION = 0.988;
}
Symbol 440 MovieClip [__Packages.midasplayer.kicking.Vector] Frame 0
class midasplayer.kicking.Vector
{
var friction, bounciness, p1, p2, len, r, vx, vy, dx, dy, rx, ry, lx, ly;
function Vector () {
friction = 0.95;
bounciness = 0.7;
setByPt(new com.midasplayer.geom.Pt(0, 0), new com.midasplayer.geom.Pt(0, 0));
}
function setByPt(p1, p2) {
this.p1 = p1;
this.p2 = p2;
update();
}
function setByForceDirection(o, f, d) {
p1 = o;
len = f;
r = d;
p2 = new com.midasplayer.geom.Pt(0, 0);
p2.x = p1.x + (Math.cos(r) * len);
p2.y = p1.y - (Math.sin(r) * len);
update();
}
function update() {
vx = p2.x - p1.x;
vy = p2.y - p1.y;
r = Math.atan2(vx, vy);
len = Math.sqrt((vx * vx) + (vy * vy));
if (len > 0) {
dx = vx / len;
dy = vy / len;
} else {
dx = 0;
dy = 0;
}
rx = -vy;
ry = vx;
lx = vy;
ly = -vx;
}
function multiply(v) {
vx = vx * v;
vy = vy * v;
}
function get wx() {
return(vx);
}
function get wy() {
return(vy);
}
function setXY(a, b) {
p1.x = a;
p1.y = b;
}
function setVxVy(a, b) {
vx = a;
vy = b;
update();
}
function get angle() {
return(r);
}
function get length() {
return(len);
}
function setPoint1(p) {
p1 = p;
}
function getPoint1() {
return(p1);
}
function getPoint2() {
return(p2);
}
function bounce(v2, intersectPt) {
var _local4 = (vx * v2.dx) + (vy * v2.dy);
var _local5 = {vx:_local4 * v2.dx, vy:_local4 * v2.dy};
var _local6 = v2.lx / v2.len;
var _local7 = v2.ly / v2.len;
_local4 = (vx * _local6) + (vy * _local7);
var _local8 = {vx:_local4 * _local6, vy:_local4 * _local7};
_local8.vx = _local8.vx * -1;
_local8.vy = _local8.vy * -1;
var _local9 = new midasplayer.kicking.Vector();
_local9.p1 = intersectPt;
_local9.vx = ((v2.friction * friction) * _local5.vx) + ((v2.bounciness * bounciness) * _local8.vx);
_local9.vy = ((v2.friction * friction) * _local5.vy) + ((v2.bounciness * bounciness) * _local8.vy);
var _local10 = new midasplayer.kicking.Vector();
_local10.setByPt(_local9.p1, new com.midasplayer.geom.Pt(p1.x + _local9.vx, _local9.p1.y + _local9.vy));
return(_local10);
}
function intersect(o) {
var _local3 = 0;
var _local4 = 0;
var _local5 = null;
var _local6 = {vx:o.p1.x - p1.x, vy:o.p1.y - p1.y};
var _local7 = {vx:p1.x - o.p1.x, vy:p1.y - o.p1.y};
if (((dx == o.dx) && (dy == o.dy)) || ((dx == (-o.dx)) && (dy == (-o.dy)))) {
return(_local5);
}
var _local8 = {vx:vx, vy:vy};
var _local9 = {vx:o.vx, vy:o.vy};
_local3 = perP(_local6, _local9) / perP(_local8, _local9);
_local4 = perP(_local7, _local8) / perP(_local9, _local8);
if ((_local3 >= 0) && ((_local3 <= 1) && ((_local4 >= 0) && (_local4 <= 1)))) {
_local5 = new com.midasplayer.geom.Pt(p1.x + (vx * _local3), p1.y + (vx * _local3));
}
return(_local5);
}
function perP(va, vb) {
return((va.vx * vb.vy) - (va.vy * vb.vx));
}
function toString() {
return(((((((("Vector[angle=" + r) + ", length=") + len) + " (p1=") + p1) + ", p2=") + p2) + ")]");
}
}
Symbol 441 MovieClip [__Packages.com.midasplayer.geom.Pt] Frame 0
class com.midasplayer.geom.Pt
{
var x, y, t;
function Pt (x, y) {
this.x = x;
this.y = y;
t = 0;
}
function toString() {
return(((("Pt[" + x) + ",") + y) + "]");
}
}
Symbol 442 MovieClip [__Packages.com.midasplayer.timing.IFloat] Frame 0
class com.midasplayer.timing.IFloat
{
var lastValue, value;
function IFloat () {
}
function set(newValue) {
lastValue = value;
value = newValue;
}
function get(alpha) {
return(lastValue + ((value - lastValue) * alpha));
}
}
Symbol 443 MovieClip [__Packages.com.midasplayer.geom.Line] Frame 0
class com.midasplayer.geom.Line
{
var x1, y1, x2, y2;
function Line (x1, y1, x2, y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
function getMiddle() {
var _local2 = x2 - x1;
var _local3 = y2 - y1;
var _local4 = Math.atan2(_local3, _local2);
var _local5 = Math.sqrt((_local2 * _local2) + (_local3 * _local3)) / 2;
var _local6 = x1 + (Math.cos(_local4) * _local5);
var _local7 = y1 + (Math.sin(_local4) * _local5);
return(new com.midasplayer.geom.Pt(_local6, _local7));
}
function getAngle() {
var _local2 = x2 - x1;
var _local3 = y2 - y1;
return(Math.atan2(_local3, _local2));
}
function getLength() {
var _local2 = x1 - x2;
var _local3 = y1 - y2;
return(Math.sqrt((_local2 * _local2) + (_local3 * _local3)));
}
function getIntersect(other) {
var _local3 = null;
var _local4 = other.x1;
var _local5 = other.x2;
var _local6 = other.y1;
var _local7 = other.y2;
var _local8 = (((_local5 - _local4) * (y1 - _local6)) - ((_local7 - _local6) * (x1 - _local4))) / (((_local7 - _local6) * (x2 - x1)) - ((_local5 - _local4) * (y2 - y1)));
var _local9 = (((x2 - x1) * (y1 - _local6)) - ((y2 - y1) * (x1 - _local4))) / (((_local7 - _local6) * (x2 - x1)) - ((_local5 - _local4) * (y2 - y1)));
if (((_local8 > 0) && (_local8 < 1)) && ((_local9 > 0) && (_local9 < 1))) {
var _local10 = [0, 0];
_local10[0] = x1 + (_local8 * (x2 - x1));
_local10[1] = y1 + (_local8 * (y2 - y1));
_local3 = new com.midasplayer.geom.Pt(_local10[0], _local10[1]);
}
return(_local3);
}
function toString() {
return(((("[" + [x1, y1]) + "]--[") + [x2, y2]) + "]");
}
}
Symbol 444 MovieClip [__Packages.midasplayer.kicking.Player] Frame 0
class midasplayer.kicking.Player extends MovieClip
{
var nro, sf, charge, playerHasBall, frame, isMoving, myinstance, fx, fy, rect, pc, playerClip, sc, shadowClip, pa, myTeam, px, _x, py, _y, tx, ty, sl, stepX, stepY, __get__speed, __get__shadow, __get__rotation, lastX, lastY, lastL, lastFr, dot, swapDepths, removeMovieClip;
function Player () {
super();
nro = 0;
sf = 1;
charge = 0;
playerHasBall = false;
frame = 1;
isMoving = false;
myinstance = ++instance;
fx = new com.midasplayer.timing.IFloat();
fy = new com.midasplayer.timing.IFloat();
rect = new com.midasplayer.geom.Rectangle(-20, -20, 40, 40);
pc = playerClip;
sc = shadowClip;
pa = pc.player_anim;
shadow = false;
myTeam = new midasplayer.kicking.Team();
myTeam.addMember(this);
}
function setTeam(t) {
myTeam = t;
}
function get hasBall() {
return(playerHasBall);
}
function set hasBall(v) {
playerHasBall = v;
//return(hasBall);
}
function init() {
px = _x;
py = _y;
rect.setPosition(px - 20, py - 20);
}
function setPosition(x, y) {
px = x;
_x = x;
py = y;
_y = y;
fx.set(x);
fy.set(y);
rect.setPosition(px - 20, py - 20);
}
function run(p) {
tx = p.x;
ty = p.y;
var _local3 = tx - px;
var _local4 = ty - py;
sl = Math.sqrt((_local3 * _local3) + (_local4 * _local4));
stepX = _local3 / sl;
stepY = _local4 / sl;
isMoving = true;
}
function stabilize() {
fx.set(px);
fy.set(py);
}
function getPosition() {
return(new com.midasplayer.geom.Pt(px, py));
}
function halt() {
isMoving = false;
}
function set speed(t) {
sf = t;
//return(__get__speed());
}
function get isRunning() {
return(isMoving);
}
function set shadow(vis) {
sc._visible = vis;
//return(__get__shadow());
}
function get id() {
return(myinstance);
}
function set rotation(r) {
nro = r;
//return(__get__rotation());
}
function get rectangle() {
return(rect);
}
function revert() {
px = lastX;
py = lastY;
sl = lastL;
frame = lastFr;
}
function setChargePower(v) {
charge = v;
}
function update(ball, isView) {
if (isView && (!playerHasBall)) {
facingClip(ball);
}
if (isMoving) {
var _local4 = myTeam.getSpeedFactor();
var _local5 = sf * _local4;
lastX = px;
px = px + ((stepX * SPEED) * _local5);
lastY = py;
py = py + ((stepY * SPEED) * _local5);
lastL = sl;
sl = sl - (SPEED * _local5);
lastFr = frame;
frame = frame + (0.62 * _local5);
if (sl < 0) {
sl = 0;
px = tx;
py = ty;
isMoving = false;
}
rect.setPosition(px - 20, py - 20);
}
fx.set(px);
fy.set(py);
}
function facingAngle(r) {
rotation = r * midasplayer.kicking.Game.RADIAN_TO_DEGREE;
}
function facingClip(mc) {
if (isRunning) {
return(undefined);
}
var _local3 = mc._x - _x;
var _local4 = mc._y - _y;
rotation = Math.atan2(_local4, _local3) * midasplayer.kicking.Game.RADIAN_TO_DEGREE;
}
function render(a) {
if (isMoving) {
_x = fx.get(a);
_y = fy.get(a);
var _local3 = sc._totalframes / 41;
pa.gotoAndStop(Math.floor(frame % 41) + 1);
sc.gotoAndStop(Math.floor((frame * _local3) % sc._totalframes) + 1);
} else {
if (hasBall) {
var _local4 = Math.floor(Math.min(1, charge) * 17) + IDLE_FRAME;
pa.gotoAndStop(_local4);
} else {
pa.gotoAndStop(IDLE_FRAME);
charge = 0;
}
sc.gotoAndStop(IDLE_FRAME);
}
pc._rotation = nro;
}
function set radarDot(dot) {
this.dot = dot;
//return(radarDot);
}
function get radarDot() {
return(dot);
}
function measureDistance(toPoint) {
var _local3 = toPoint.x - px;
var _local4 = toPoint.y - py;
return(Math.sqrt((_local3 * _local3) + (_local4 * _local4)));
}
function measureTicks(toPoint) {
var _local3 = (sf * SPEED) * myTeam.getSpeedFactor();
return(Math.ceil(measureDistance(toPoint) / _local3) * midasplayer.kicking.Ball.getStepping());
}
function destroy() {
swapDepths(1048000);
removeMovieClip();
}
static var SPEED = 0.75;
static var IDLE_FRAME = 42;
static var instance = 0;
}
Symbol 445 MovieClip [__Packages.midasplayer.kicking.Team] Frame 0
class midasplayer.kicking.Team
{
var baseSpeed, players, speedFactor, kickFactor;
function Team () {
baseSpeed = 0;
players = new com.midasplayer.util.ArrayList();
resetPowerUps();
}
function modifyBaseSpeed(n) {
baseSpeed = baseSpeed + n;
}
function getSpeedFactor() {
return(Math.min(2, speedFactor + baseSpeed));
}
function getKickPower() {
return(Math.min(1.75, kickFactor));
}
function addMember(p) {
players.insert(p);
}
function getMembers() {
return(players);
}
function removeAllMembers() {
players.clear();
}
function getGoalkeeper() {
return(midasplayer.kicking.Goalkeeper(players.get(players.size() - 1)));
}
function resetPowerUps() {
speedFactor = 1;
kickFactor = 1;
}
function usePowerUpById(id) {
switch (id) {
case midasplayer.kicking.Level.ITEM_WATER :
speedFactor = speedFactor + 0.66;
break;
case midasplayer.kicking.Level.ITEM_ENERGYBAR :
kickFactor = kickFactor + 0.5;
}
}
function getClosestMember(points, except) {
var _local6 = 100000 /* 0x0186A0 */;
var _local7 = players.iterator;
while (_local7.hasNext()) {
var _local8 = midasplayer.kicking.Player(_local7.next());
if ((except == _local8) || (_local8 instanceof midasplayer.kicking.Goalkeeper)) {
continue;
}
for (var i in points) {
var _local9 = _local8.measureDistance(points[i]);
var _local10 = _local8.measureTicks(points[i]);
if (_local10 > points[i].t) {
continue;
}
if (_local9 < _local6) {
_local6 = _local9;
var _local5 = points[i];
var _local4 = _local8;
}
}
}
if (!_local4) {
var _local11 = 100000 /* 0x0186A0 */;
var _local5 = points[points.length - 1];
var _local12 = players.iterator;
while (_local12.hasNext()) {
var _local13 = midasplayer.kicking.Player(_local12.next());
if ((except == _local13) || (_local13 instanceof midasplayer.kicking.Goalkeeper)) {
continue;
}
var _local14 = _local13.measureDistance(_local5);
if (_local14 < _local11) {
var _local4 = _local13;
_local11 = _local14;
}
}
}
return(new midasplayer.kicking.PlayerLocation(_local4, _local5));
}
function isMemberOf(p) {
var _local3 = players.iterator;
while (_local3.hasNext()) {
var _local4 = _local3.next();
if (_local4.id == p.id) {
return(true);
}
}
return(false);
}
}
Symbol 446 MovieClip [__Packages.com.midasplayer.util.ArrayList] Frame 0
class com.midasplayer.util.ArrayList
{
var value;
function ArrayList (ar) {
if (ar == undefined) {
value = new Array();
} else {
value = ar;
}
}
function insert(obj, pos) {
var _local4 = value.length;
if ((pos == undefined) || (pos >= _local4)) {
value.push(obj);
return(_local4);
}
value.splice(pos, 0, obj);
return(pos);
}
function get(pos) {
return(value[pos]);
}
function set(pos, o) {
value[pos] = o;
}
function indexOf(obj) {
var _local3 = 0;
for ( ; _local3 < value.length ; _local3++) {
if (obj == value[_local3]) {
return(_local3);
}
}
return(-1);
}
function remove(obj) {
return(removeByIndex(indexOf(obj)));
}
function removeByIndex(pos) {
var _local3;
var _local4 = value.length;
if ((pos < _local4) && (pos >= 0)) {
_local3 = value[pos];
value.splice(pos, 1);
}
return(_local3);
}
function size() {
return(value.length);
}
function clear() {
value = new Array();
}
function toArray() {
return(value);
}
function foreach(fn) {
var _local3 = 0;
var _local4 = value.length;
// unexpected jump
do {
_local3++;
if (_local3 >= _local4) {
break;
}
} while (fn(_local3, value[_local3]) != false);
}
function sortOn(field) {
value.sortOn(field);
}
function sort() {
value.sort();
}
function get iterator() {
return(new com.midasplayer.util.ArrayListIterator(this));
}
function subList(from, to) {
if ((to > value.length) || (!to)) {
to = value.length;
}
var _local4 = value.slice(from, to);
var _local5 = new com.midasplayer.util.ArrayList(_local4);
return(_local5);
}
}
Symbol 447 MovieClip [__Packages.com.midasplayer.util.ArrayListIterator] Frame 0
class com.midasplayer.util.ArrayListIterator implements com.midasplayer.util.Iterator
{
var ptr, list;
function ArrayListIterator (list) {
ptr = 0;
this.list = list;
}
function next() {
if (ptr < list.size()) {
return(list.get(ptr++));
}
return(undefined);
}
function hasNext() {
return(ptr < list.size());
}
function remove() {
if (ptr == 0) {
return(undefined);
}
list.removeByIndex(ptr - 1);
}
}
Symbol 448 MovieClip [__Packages.midasplayer.kicking.Goalkeeper] Frame 0
class midasplayer.kicking.Goalkeeper extends midasplayer.kicking.Player
{
var slaveObj, fr, isCopy, spotMove, spotW, spots, spotHalt, currentSpot, targetSpot, orient, pickupFr, nro, dirTh, canCatch, goalzone, pickupDelay, lastX, lastY, lastL, lastFr, sf, px, py, tx, ty, stepX, stepY, sl, frame, charge, isMoving, playerHasBall, rect, mov, hasBall, _rotation, fx, fy, _x, _y, pa, pc;
function Goalkeeper () {
super();
slaveObj = {_x:0, _y:0};
fr = 16;
isCopy = false;
spotMove = false;
spotW = 1;
spots = [];
spotHalt = 0;
currentSpot = 0;
targetSpot = 0;
orient = 1;
pickupFr = 0;
nro = -90;
dirTh = 0;
canCatch = false;
}
function setCanCatch(c) {
canCatch = c;
}
function setOrientation(d) {
orient = d;
}
function setGoalArea(x, y, w, h) {
goalzone = new com.midasplayer.geom.Rectangle(x, y, w, h);
var _local6 = x;
spotW = w / 6;
targetSpot = 3;
currentSpot = 3;
spots = new Array();
var _local7 = 0;
for ( ; _local7 < 7 ; _local7++ , _local6 = _local6 + spotW) {
spots[_local7] = [_local6, y];
}
}
function willCatchShot(ball, goalLine, goalArea) {
var _local5 = ball.copyDead();
var _local6 = copyDead();
var _local7 = 25;
var _local8 = false;
var _local9 = _local5.getPathList();
var _local10 = 0;
// unexpected jump
do {
_local10++;
if (_local10 >= 250) {
break;
}
var _local11 = _local5.getCurrentPosition();
var _local12 = _local5.getLastPosition();
var _local13 = new com.midasplayer.geom.Line(_local12.x, _local12.y, _local11.x, _local11.y);
if (_local13.getIntersect(goalLine) != null) {
_local8 = true;
_local5.enforceLimit(goalArea);
}
if (_local8 && (!_local5.isMoving)) {
break;
}
_local5.onUpdate();
_local6.update(_local5, true);
} while (!_local6.pickedUpBall());
return(!(_local8 && (!_local5.isMoving)));
}
function copyDead() {
var _local2 = new midasplayer.kicking.Goalkeeper();
_local2.dirTh = dirTh;
_local2.spotW = spotW;
_local2.spotMove = spotMove;
_local2.spotHalt = spotHalt;
_local2.targetSpot = targetSpot;
_local2.currentSpot = currentSpot;
_local2.orient = orient;
_local2.pickupFr = pickupFr;
_local2.pickupDelay = pickupDelay;
_local2.canCatch = canCatch;
_local2.fr = fr;
_local2.lastX = lastX;
_local2.lastY = lastY;
_local2.lastL = lastL;
_local2.lastFr = lastFr;
_local2.goalzone = new com.midasplayer.geom.Rectangle(goalzone.x1, goalzone.y1, goalzone.x2 - goalzone.x1, goalzone.y2 - goalzone.y1);
_local2.isCopy = true;
_local2.sf = sf;
_local2.px = px;
_local2.py = py;
_local2.tx = tx;
_local2.ty = ty;
_local2.stepX = stepX;
_local2.stepY = stepY;
_local2.sl = sl;
_local2.frame = frame;
_local2.charge = charge;
_local2.isMoving = isMoving;
_local2.playerHasBall = playerHasBall;
_local2.nro = nro;
_local2.rect = new com.midasplayer.geom.Rectangle(rect.x1, rect.y1, rect.x2 - rect.x1, rect.y2 - rect.y1);
_local2.spots = new Array();
for (var i in spots) {
_local2.spots[i] = [spots[i][0], spots[i][1]];
}
_local2.slaveObj = {_x:slaveObj._x, _y:slaveObj._y};
if (mov) {
_local2.mov = mov.makeCopy(_local2.slaveObj);
} else {
_local2.mov = undefined;
}
return(_local2);
}
function update(ball, isView) {
isMoving = !hasBall;
if (!hasBall) {
var _local4 = ball.px - px;
var _local5 = ball.py - py;
if (canCatch) {
var _local6 = Math.sqrt((_local4 * _local4) + (_local5 * _local5));
if (_local6 < 25) {
var _local7 = ball.getPathList()[ball.getPathIndex()][3];
if (_local7 < 0.7) {
ball.freeze();
slaveObj._y = ball.py - 8;
_rotation = (orient * Math.atan2(_local4, 8)) * midasplayer.kicking.Game.RADIAN_TO_DEGREE;
ball.holdBall(slaveObj._x, slaveObj._y);
playerHasBall = true;
return(undefined);
}
}
}
if (mov && (mov.isFinished())) {
spotHalt = 2;
spotMove = false;
currentSpot = targetSpot;
mov = undefined;
} else if (mov) {
mov.update();
fr = Math.floor(mov.getElapsedPercent() * 7) + 1;
if ((orient > 0) && (targetSpot > currentSpot)) {
fr = 14 - fr;
} else if ((orient < 0) && (targetSpot < currentSpot)) {
fr = 14 - fr;
}
} else {
if (spotHalt > 0) {
spotHalt--;
return(undefined);
}
if ((_local4 > 0) && (currentSpot < (spots.length - 1))) {
targetSpot++;
spotMove = true;
}
if ((_local4 < 0) && (currentSpot > 0)) {
targetSpot--;
spotMove = true;
}
if (spotMove) {
mov = new com.midasplayer.util.EaseInQuadAnimator(slaveObj);
mov.setPosition(spots[targetSpot][0], spots[targetSpot][1]);
mov.setDurationTicks(40);
}
}
} else if (canCatch) {
pickupFr = pickupFr + 1;
pickupFr = Math.min(7, pickupFr);
}
px = slaveObj._x;
py = slaveObj._y;
fx.set(px);
fy.set(py);
rect.setPosition(px - 20, py - 20);
}
function setPosition(x, y) {
slaveObj._x = x;
px = x;
_x = x;
slaveObj._y = y;
py = y;
_y = y;
fx.set(px);
fy.set(py);
rect.setPosition(px, py);
}
function pickedUpBall() {
return(pickupFr == 7);
}
function toString() {
return(((((((("Goalkeeper[" + px) + ", ") + py) + " (") + slaveObj._x) + ",") + slaveObj._y) + ")]");
}
function render(a) {
_x = fx.get(a);
_y = fy.get(a);
if (hasBall) {
if (!canCatch) {
pa.gotoAndStop(16);
pc._rotation = orient * -90;
return(undefined);
}
pa.gotoAndStop(13 + Math.floor(pickupFr));
return(undefined);
}
pc._rotation = orient * -90;
pa.gotoAndStop(fr);
}
static var GOALIE_SPEED = 0.5;
}
Symbol 449 MovieClip [__Packages.com.midasplayer.util.Animator] Frame 0
class com.midasplayer.util.Animator
{
var finished, targetObject, x, startX, y, startY, startTime, tick, duration, timeTicks, targetY, targetX, dx, dy, dt, callback, callbackFire;
function Animator (t) {
finished = true;
targetObject = t;
x = (startX = t._x);
y = (startY = t._y);
startTime = null;
tick = 0;
duration = 800;
timeTicks = false;
}
function fillBaseCopy(t, o) {
o.targetObject = t;
o.duration = duration;
o.x = x;
o.y = y;
o.startTime = startTime;
o.finished = finished;
o.timeTicks = timeTicks;
o.tick = tick;
o.targetY = targetY;
o.targetX = targetX;
o.startX = startX;
o.startY = startY;
o.dx = dx;
o.dy = dy;
o.dt = dt;
}
function setSource(t) {
targetObject = t;
x = (startX = t._x);
y = (startY = t._y);
}
function setPosition(x, y) {
startX = targetObject._x;
startY = targetObject._y;
targetX = Math.round(x);
targetY = Math.round(y);
finished = false;
startTime = null;
}
function setDuration(ms) {
duration = ms;
finished = false;
startTime = null;
}
function setDurationTicks(ticks) {
duration = ticks;
finished = false;
startTime = null;
timeTicks = true;
}
function getElapsedPercent() {
return(getElapsed());
}
function getElapsed() {
if ((!dt) || (duration == 0)) {
return(1);
}
return(Math.max(0, duration - dt) / duration);
}
function update() {
if (finished) {
if (callback && ((1 - getElapsed()) >= callbackFire)) {
callback();
callbackFire = undefined;
callback = undefined;
}
return(true);
}
if (!timeTicks) {
var _local2 = getTimer();
if (startTime == null) {
startTime = _local2;
}
dt = _local2 - startTime;
} else {
dt = tick;
tick++;
}
dx = targetX - startX;
dy = targetY - startY;
nextPosition();
x = x >> 0;
var _local3 = false;
if (((x >= targetX) && (targetX >= startX)) || ((x <= targetX) && (targetX <= startX))) {
_local3 = true;
x = targetX;
}
var _local4 = false;
y = y >> 0;
if (((y >= targetY) && (targetY >= startY)) || ((y <= targetY) && (targetY <= startY))) {
_local4 = true;
y = targetY;
}
if (_local3 && (_local4)) {
startTime = null;
x = targetX;
y = targetY;
finished = true;
}
targetObject._x = x;
targetObject._y = y;
if (callback && ((1 - getElapsed()) >= callbackFire)) {
callback();
callbackFire = undefined;
callback = undefined;
}
return(finished);
}
function setCallback(at, fn) {
callbackFire = ((at == undefined) ? 1 : (at));
callback = fn;
}
function toString() {
return((((((((("Animator[start=" + [startX, startY]) + ", target=") + [targetX, targetY]) + ", t=") + getElapsedPercent()) + ", ticks=") + tick) + ", targetObject=") + [targetObject._x, targetObject._y]);
}
function isFinished() {
return(finished);
}
function nextPosition() {
}
}
Symbol 450 MovieClip [__Packages.com.midasplayer.util.EaseInQuadAnimator] Frame 0
class com.midasplayer.util.EaseInQuadAnimator extends com.midasplayer.util.Animator
{
var dt, duration, x, startX, dx, y, startY, dy, fillBaseCopy;
function EaseInQuadAnimator (o) {
super(o);
}
function nextPosition() {
var _local2 = dt * dt;
var _local3 = duration * duration;
x = ((dx * _local2) / _local3) + startX;
y = ((dy * _local2) / _local3) + startY;
}
function makeCopy(t) {
var _local3 = new com.midasplayer.util.EaseInQuadAnimator();
fillBaseCopy(t, _local3);
return(_local3);
}
}
Symbol 451 MovieClip [__Packages.midasplayer.kicking.Level] Frame 0
class midasplayer.kicking.Level
{
var debug, baseSpeed, radar, planeClip, ta, tb, tx, offsetPtr, offsetX, offsetY, itemType, itemCount, itemX, itemY, allocItem, lastOffset, lastLayup;
function Level (rnd, baseSpeed, ta, tb, tx, planeClip, radar, debug) {
this.debug = debug;
this.baseSpeed = baseSpeed;
this.radar = radar;
this.planeClip = planeClip;
this.ta = ta;
this.tb = tb;
this.tx = tx;
offsetPtr = rnd.nextInt(DISPLACE_NUM);
offsetX = new Array(DISPLACE_NUM + 1);
offsetY = new Array(DISPLACE_NUM + 1);
itemType = new Array(ITEM_TYPE_NUM + 1);
itemCount = new Array(ITEM_COUNT_NUM + 1);
itemX = new Array(ITEM_POS_NUM + 1);
itemY = new Array(ITEM_POS_NUM + 1);
var _local10 = DISPLACE / 2;
var _local11 = 0;
for ( ; _local11 < (DISPLACE_NUM + 1) ; _local11++) {
offsetX[_local11] = (rnd.nextFloat() * DISPLACE) - _local10;
offsetY[_local11] = (rnd.nextFloat() * DISPLACE) - _local10;
}
var _local12 = 0;
var _local13 = ITEM.length;
for ( ; _local12 < (ITEM_TYPE_NUM + 1) ; _local12++) {
itemType[_local12] = rnd.nextInt(_local13);
}
var _local14 = midasplayer.kicking.Game.PLANE_WIDTH / 8;
var _local15 = midasplayer.kicking.Game.PLANE_WIDTH - (_local14 * 2);
var _local16 = midasplayer.kicking.Game.PLANE_HEIGHT / 8;
var _local17 = midasplayer.kicking.Game.PLANE_HEIGHT - (_local16 * 2);
var _local18 = 0;
for ( ; _local18 < (ITEM_POS_NUM + 1) ; _local18++) {
itemX[_local18] = (rnd.nextFloat() * _local15) + _local14;
itemY[_local18] = (rnd.nextFloat() * _local17) + _local16;
}
var _local19 = 0;
for ( ; _local19 < (ITEM_COUNT_NUM + 1) ; _local19++) {
itemCount[_local19] = rnd.nextInt(3) + 1;
}
}
function destroyLevel() {
radar.clearObjects();
for (var i in allocItem) {
var _local2 = allocItem[i];
killClip(_local2.clip);
killClip(_local2.rclip);
}
var _local3 = tx.getMembers().iterator;
while (_local3.hasNext()) {
var _local4 = midasplayer.kicking.Player(_local3.next());
killClip(_local4.radarDot);
_local4.destroy();
}
ta.removeAllMembers();
tb.removeAllMembers();
tx.removeAllMembers();
}
function restartLastLevel() {
offsetPtr = lastOffset;
buildLevel(lastLayup[0], lastLayup[1]);
}
function killClip(p) {
p.swapDepths(104800);
p.removeMovieClip();
}
function attractPowerUp(fromX, fromY, strength) {
var _local5 = new Array();
var _local6 = new Array();
for (var i in allocItem) {
var _local7 = allocItem[i];
var _local8 = fromX - _local7.x;
var _local9 = fromY - _local7.y;
var _local10 = Math.sqrt((_local8 * _local8) + (_local9 * _local9));
if (_local10 < strength) {
killClip(_local7.clip);
killClip(_local7.rclip);
_local6.push(_local7);
} else {
_local5.push(_local7);
}
}
allocItem = _local5;
return(_local6);
}
function buildLevel(layupCpu, layupTeam) {
allocItem = new Array();
lastLayup = [layupCpu, layupTeam];
lastOffset = offsetPtr;
var _local4 = itemCount[offsetPtr & ITEM_COUNT_NUM];
offsetPtr++;
var _local5 = 0;
for ( ; _local5 < _local4 ; _local5++) {
var _local6 = itemType[offsetPtr & ITEM_TYPE_NUM];
var _local7 = ITEM[_local6];
offsetPtr++;
var _local8 = offsetPtr & ITEM_POS_NUM;
var _local9 = itemX[_local8];
var _local10 = itemY[_local8];
offsetPtr++;
var _local11 = planeClip.attachMovie(_local7, _local7 + _local5, planeClip.getNextHighestDepth());
_local11._x = _local9;
_local11._y = _local10;
var _local12 = {id:_local5, clip:_local11, x:_local9, y:_local10, type:_local6, typeName:_local7};
allocItem.push(_local12);
radar.addPowerUp(_local12);
}
var _local13 = layupCpu.w;
var _local14 = layupCpu.h;
var _local15 = (midasplayer.kicking.Game.PLANE_WIDTH - (midasplayer.kicking.Game.PLANE_MARGIN_LEFT + midasplayer.kicking.Game.PLANE_MARGIN_RIGHT)) - INNER_MARGIN;
var _local16 = ((midasplayer.kicking.Game.PLANE_HEIGHT - (midasplayer.kicking.Game.PLANE_MARGIN_TOP + midasplayer.kicking.Game.PLANE_MARGIN_BOTTOM)) - INNER_MARGIN) - (GOAL_AREA_HEIGHT * 2);
var _local17 = _local15 / _local13;
var _local18 = _local16;
var _local19 = _local18 / _local14;
var _local20;
var _local21;
var _local22 = -1;
var _local23 = 0;
for ( ; _local23 < _local14 ; _local23++) {
var _local24 = 0;
for ( ; _local24 < _local13 ; _local24++) {
var _local25 = layupCpu.f[(_local23 * _local13) + _local24];
var _local26 = ((_local24 * _local17) + midasplayer.kicking.Game.PLANE_MARGIN_LEFT) + (INNER_MARGIN / 2);
var _local27 = (((_local23 * _local19) + midasplayer.kicking.Game.PLANE_MARGIN_TOP) + GOAL_AREA_HEIGHT) + (INNER_MARGIN / 2);
for ( ; _local25 == 0 ; _local24++) {
}
_local26 = _local26 + (offsetX[offsetPtr & DISPLACE_NUM] + (_local17 / 2));
_local27 = _local27 + (offsetY[offsetPtr & DISPLACE_NUM] + (_local19 / 2));
offsetPtr++;
_local22 = planeClip.getNextHighestDepth();
_local20 = planeClip.attachMovie("player_team1", "teamA_" + _local22, _local22);
_local20.setPosition(_local26, _local27);
_local20.speed = baseSpeed;
_local20.setTeam(ta);
radar.addPlayer(_local20, 1);
ta.addMember(_local20);
tx.addMember(_local20);
}
}
_local22 = planeClip.getNextHighestDepth();
_local21 = planeClip.attachMovie("goalkeeper_team1", "teamA_" + _local22, _local22);
ta.addMember(_local21);
tx.addMember(_local21);
_local13 = layupTeam.w;
_local14 = layupTeam.h;
_local15 = (midasplayer.kicking.Game.PLANE_WIDTH - (midasplayer.kicking.Game.PLANE_MARGIN_LEFT + midasplayer.kicking.Game.PLANE_MARGIN_RIGHT)) - INNER_MARGIN;
_local16 = ((midasplayer.kicking.Game.PLANE_HEIGHT - (midasplayer.kicking.Game.PLANE_MARGIN_TOP + midasplayer.kicking.Game.PLANE_MARGIN_BOTTOM)) - INNER_MARGIN) - (GOAL_AREA_HEIGHT * 2);
_local17 = _local15 / _local13;
_local18 = _local16;
_local19 = _local18 / _local14;
var _local28 = 0;
for ( ; _local28 < _local14 ; _local28++) {
var _local29 = 0;
for ( ; _local29 < _local13 ; _local29++) {
var _local30 = layupTeam.f[(_local28 * _local13) + _local29];
var _local31 = ((_local29 * _local17) + midasplayer.kicking.Game.PLANE_MARGIN_LEFT) + (INNER_MARGIN / 2);
var _local32 = ((((GOAL_AREA_HEIGHT - INNER_MARGIN) + _local18) - (_local28 * _local19)) + midasplayer.kicking.Game.PLANE_MARGIN_TOP) + (INNER_MARGIN / 2);
for ( ; _local30 == 0 ; _local29++) {
}
_local31 = _local31 + (offsetX[offsetPtr & DISPLACE_NUM] + (_local17 / 2));
_local32 = _local32 + (offsetY[offsetPtr & DISPLACE_NUM] + (_local19 / 2));
offsetPtr++;
_local22 = planeClip.getNextHighestDepth();
_local20 = planeClip.attachMovie("player_team2", "teamB_" + _local22, _local22);
_local20.setPosition(_local31, _local32);
_local20.speed = 2;
_local20.setTeam(tb);
radar.addPlayer(_local20, 2);
tb.addMember(_local20);
tx.addMember(_local20);
}
}
_local22 = planeClip.getNextHighestDepth();
_local21 = planeClip.attachMovie("goalkeeper_team2", "teamB_" + _local22, _local22);
tb.addMember(_local21);
tx.addMember(_local21);
var _local33 = ta.getMembers();
var _local34 = tb.getMembers();
var _local35 = 0;
var _local36 = true;
var _local37 = midasplayer.kicking.Game.PLANE_WIDTH - (midasplayer.kicking.Game.PLANE_MARGIN_RIGHT + (INNER_MARGIN / 2));
var _local38 = midasplayer.kicking.Game.PLANE_MARGIN_LEFT + (INNER_MARGIN / 2);
var _local39 = 15;
do {
_local36 = false;
var _local40 = _local33.iterator;
while (_local40.hasNext()) {
var _local41 = midasplayer.kicking.Player(_local40.next());
var _local42 = _local41.getPosition();
var _local43 = _local34.iterator;
while (_local43.hasNext()) {
var _local44 = midasplayer.kicking.Player(_local43.next());
var _local45 = _local44.getPosition();
var _local46 = _local42.x - _local45.x;
var _local47 = _local42.y - _local45.y;
var _local48 = (_local46 * _local46) + (_local47 * _local47);
if (_local48 < 2000) {
var _local49 = new com.midasplayer.geom.Line(_local42.x, _local42.y, _local45.x, _local45.y);
var _local50 = _local49.getAngle();
var _local51 = Math.cos(_local50);
var _local52 = Math.sin(_local50);
var _local53 = _local42.x + (_local51 * (-_local39));
var _local54 = _local42.y + (_local52 * (-_local39));
var _local55 = _local45.x + (_local51 * _local39);
var _local56 = _local45.y + (_local52 * _local39);
if ((_local53 > _local37) || (_local53 < _local38)) {
_local50 = _local50 + Math.PI;
_local53 = _local42.x + (Math.cos(_local50) * (-_local39));
_local54 = _local42.y + (Math.sin(_local50) * (-_local39));
}
_local41.setPosition(_local53, _local54);
if ((_local55 > _local37) || (_local55 < _local38)) {
_local50 = _local50 + Math.PI;
_local55 = _local45.x + (Math.cos(_local50) * _local39);
_local56 = _local45.y + (Math.sin(_local50) * _local39);
}
_local44.setPosition(_local55, _local56);
_local36 = true;
}
}
}
_local35++;
} while (_local36 && (_local35 < 10));
radar.initDone();
}
static var ITEM_WATER = 0;
static var ITEM_ENERGYBAR = 1;
static var ITEM = ["powerup_water", "powerup_energybar"];
static var INNER_MARGIN = 40;
static var ITEM_PROBABILITY = 1;
static var DISPLACE = 35;
static var DISPLACE_NUM = 63;
static var ITEM_TYPE_NUM = 31;
static var ITEM_COUNT_NUM = 15;
static var ITEM_POS_NUM = 63;
static var GOAL_AREA_HEIGHT = 175;
}
Symbol 452 MovieClip [__Packages.com.midasplayer.util.Random] Frame 0
class com.midasplayer.util.Random
{
var mta, mti, lastSeed;
function Random (aSeed) {
mta = new Array(N);
mti = N + 1;
if (aSeed != undefined) {
init_genrand(aSeed);
}
}
function set seed(s) {
init_genrand(s);
//return(seed);
}
function get seed() {
return(lastSeed);
}
function nextInt(n) {
return((genrand_int32() & 2147483647) % n);
}
function nextFloat() {
return(next(24) / (1 << 24));
}
function next(bits) {
if (bits < 32) {
return(genrand_int32() & ((1 << bits) - 1));
}
return(genrand_int32());
}
function init_genrand(s) {
s = int(s);
var _local3 = getTimer();
lastSeed = s;
mta[0] = s;
var _local4 = s;
var _local5 = new com.midasplayer.util.Integer64();
mti = 1;
for ( ; mti < N ; mti++) {
_local5.init32((_local4 >>> 30) ^ _local4);
_local5.mulu32(1812433253);
_local4 = (mta[mti] = int(_local5.lsb + mti));
}
var _local6 = getTimer();
}
function genrand_int32() {
var _local2 = 0;
if (mti >= N) {
if (mti == (N + 1)) {
init_genrand(5489);
}
var _local3 = getTimer();
var _local4 = 0;
_local4 = 0;
for ( ; _local4 < (N - M) ; _local4++) {
_local2 = (mta[_local4] & UPPER_MASK) | (mta[_local4 + 1] & LOWER_MASK);
mta[_local4] = (mta[_local4 + M] ^ (_local2 >>> 1)) ^ mag01[_local2 & 1];
}
for ( ; _local4 < (N - 1) ; _local4++) {
_local2 = (mta[_local4] & UPPER_MASK) | (mta[_local4 + 1] & LOWER_MASK);
mta[_local4] = (mta[_local4 + (M - N)] ^ (_local2 >>> 1)) ^ mag01[_local2 & 1];
}
_local2 = (mta[N - 1] & UPPER_MASK) | (mta[0] & LOWER_MASK);
mta[N - 1] = (mta[M - 1] ^ (_local2 >>> 1)) ^ mag01[_local2 & 1];
mti = 0;
var _local5 = getTimer();
}
_local2 = mta[mti++];
_local2 = _local2 ^ (_local2 >>> 11);
_local2 = _local2 ^ ((_local2 << 7) & -1658038656);
_local2 = _local2 ^ ((_local2 << 15) & -272236544);
_local2 = _local2 ^ (_local2 >>> 18);
return(_local2);
}
static var N = 624;
static var M = 397;
static var MATRIX_A = -1727483681;
static var UPPER_MASK = -2147483648;
static var LOWER_MASK = 2147483647;
static var mag01 = [0, -1727483681];
}
Symbol 453 MovieClip [__Packages.com.midasplayer.util.Integer64] Frame 0
class com.midasplayer.util.Integer64
{
var r, p, s;
function Integer64 (lowInt) {
r = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]];
p = [0, 0, 0, 0, 0];
s = [0, 0, 0];
if (lowInt != undefined) {
merge(lowInt);
}
}
function init(v) {
var _local3 = 0;
for ( ; _local3 < p.length ; _local3++) {
p[_local3] = v.p[_local3];
}
}
function init32(n) {
p[0] = n & 32767;
n = n >>> 15;
p[1] = n & 32767;
n = n >>> 15;
p[2] = n & 3;
p[3] = 0;
p[4] = 0;
}
function get lsb() {
return((p[0] | (p[1] << SH)) | ((p[2] & 3) << 30));
}
function get msb() {
return((((p[2] >> 2) | ((p[3] << SH) >> 2)) | ((p[4] << (SH * 2)) >> 2)) & 2147483647);
}
function binaryShiftLeft(step) {
var _local3 = 0;
for ( ; _local3 < step ; _local3++) {
shl();
}
}
function binaryShiftRight(step) {
var _local3 = (step / SH) >> 0;
var _local4 = step - (_local3 * SH);
var _local5 = p.length - 1;
for ( ; _local5 > 0 ; p[_local5--] = 0) {
var _local6 = 0;
for ( ; _local6 < _local3 ; _local6++) {
p[_local6] = p[_local6 + 1];
}
}
if (_local4 > 0) {
var _local7 = 0;
for ( ; _local7 < _local4 ; _local7++) {
shr();
}
}
}
function binaryNot(o) {
p[0] = p[0] ^ o.p[0];
p[1] = p[1] ^ o.p[1];
p[2] = p[2] ^ o.p[2];
p[3] = p[3] ^ o.p[3];
p[4] = p[4] ^ o.p[4];
}
function add64(o) {
var _local3 = 0;
var _local4 = 1;
var _local5 = 0;
for ( ; (_local4 < p.length) && (o.p[_local5] != 0) ; _local4++) {
}
_local5 = 0;
for ( ; _local5 < _local4 ; _local5++) {
_local3 = _local3 + (p[_local5] + o.p[_local5]);
p[_local5] = _local3 & MASK;
_local3 = _local3 >> SH;
}
}
function add32(num) {
var _local3 = 0;
var _local4 = num & MASK;
num = num >> SH;
var _local5 = num & MASK;
num = num >> SH;
var _local6 = num & 3;
_local3 = _local3 + (p[0] + _local4);
p[0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (p[1] + _local5);
p[1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (p[2] + _local6);
p[2] = _local3 & MASK;
}
function mulu32(num) {
var _local3 = 0;
s[0] = num & MASK;
num = num >>> 15;
s[1] = num & MASK;
num = num >>> 15;
s[2] = num & 3;
var _local4 = 0;
for ( ; _local4 < 3 ; _local4++) {
var _local5 = s[_local4];
_local3 = _local5 * p[0];
r[_local4][0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local5 * p[1]);
r[_local4][1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local5 * p[2]);
r[_local4][2] = _local3 & 3;
}
_local3 = r[0][0];
p[0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (r[0][1] + r[1][0]);
p[1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + ((r[0][2] + r[1][1]) + r[2][0]);
p[2] = _local3 & 3;
p[3] = 0;
p[4] = 0;
}
function mul64(o) {
var _local3 = 0;
var _local4 = 0;
for ( ; _local4 < 5 ; _local4++) {
var _local5 = o.p[_local4];
_local3 = _local5 * p[0];
r[_local4][0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local5 * p[1]);
r[_local4][1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local5 * p[2]);
r[_local4][2] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local5 * p[3]);
r[_local4][3] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (_local5 * p[4]);
r[_local4][4] = _local3 & MASK;
}
_local3 = r[0][0];
p[0] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (r[0][1] + r[1][0]);
p[1] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + ((r[0][2] + r[1][1]) + r[2][0]);
p[2] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + (((r[0][3] + r[1][2]) + r[2][1]) + r[3][0]);
p[3] = _local3 & MASK;
_local3 = _local3 >> SH;
_local3 = _local3 + ((((r[0][4] + r[1][3]) + r[2][2]) + r[3][1]) + r[4][0]);
p[4] = _local3 & 7;
}
function mul32(value) {
mul64(new com.midasplayer.util.Integer64(value));
}
function toString() {
return(((((("Integer64[value=0x" + com.midasplayer.util.Numbers.dec2hex(msb)) + ":") + com.midasplayer.util.Numbers.dec2hex(lsb)) + ":(") + p) + ")]");
}
function merge(a) {
var _local3 = 0;
for ( ; _local3 < 3 ; _local3++) {
p[_local3] = p[_local3] + (a & 32767);
a = a >>> 15;
}
return(a);
}
function shl() {
var _local2 = 0;
var _local3 = 0;
var _local4 = 0;
var _local5 = p.length;
for ( ; _local4 < _local5 ; _local4++ , _local3 = _local2) {
_local2 = (p[_local4] & 16384) >> 14;
p[_local4] = p[_local4] << 1;
p[_local4] = (p[_local4] | _local3) & 32767;
}
}
function shr() {
var _local2 = 0;
var _local3 = 0;
var _local4 = p.length - 1;
for ( ; _local4 >= 0 ; _local4-- , _local3 = _local2) {
_local2 = (p[_local4] & 1) << 14;
p[_local4] = p[_local4] >> 1;
p[_local4] = (p[_local4] | _local3) & 32767;
}
}
static var MASK = 32767;
static var SH = 15;
}
Symbol 454 MovieClip [__Packages.com.midasplayer.util.Numbers] Frame 0
class com.midasplayer.util.Numbers
{
function Numbers () {
}
static function dec2hex(iValue, padding) {
var _local4 = "";
while (iValue != 0) {
_local4 = "0123456789abcdef".charAt(iValue & 15) + _local4;
iValue = iValue >>> 4;
}
if (padding) {
if (_local4.length == 0) {
_local4 = "00";
}
if (_local4.length < 2) {
_local4 = "0" + _local4;
}
} else if (_local4.length == 0) {
_local4 = "0";
}
return(_local4);
}
static function itoa(value, numZeroPadding) {
var _local4 = "" + value;
if (numZeroPadding) {
var _local5 = numZeroPadding - 1;
for ( ; _local5 > 0 ; _local5--) {
if (value < Math.pow(10, _local5)) {
_local4 = "0" + _local4;
}
}
}
return(_local4);
}
static function asTime(millis, alwaysHours, alwaysMinutes) {
if (alwaysHours) {
alwaysMinutes = true;
}
if (millis < 0) {
millis = 0;
}
millis = millis / 1000;
millis = Math.floor(millis);
var _local5 = Math.floor(millis / 3600);
var _local6 = Math.floor(millis / 60) % 60;
var _local7 = millis % 60;
var _local8 = "";
if (alwaysHours || (_local5 > 0)) {
_local8 = _local8 + itoa(_local5, 2);
}
if (alwaysHours || (_local8.length > 0)) {
_local8 = _local8 + ":";
}
var _local9 = _local8.length;
if (alwaysMinutes || ((_local6 > 0) || (_local5 > 0))) {
_local8 = _local8 + itoa(_local6, 2);
}
if (alwaysMinutes || (_local8.length != _local9)) {
_local8 = _local8 + ":";
}
return(_local8 + itoa(_local7, 2));
}
}
Symbol 455 MovieClip [__Packages.midasplayer.kicking.PlayerLocation] Frame 0
class midasplayer.kicking.PlayerLocation
{
var ply, wp;
function PlayerLocation (ply, wp) {
this.ply = ply;
this.wp = wp;
}
function getWaypoint() {
return(wp);
}
function getDirection() {
var _local2 = ply.getPosition();
var _local3 = wp.x - _local2.x;
var _local4 = wp.y - _local2.y;
var _local5 = Math.atan2(_local4, _local3);
return(_local5 * midasplayer.kicking.Game.RADIAN_TO_DEGREE);
}
function getPlayer() {
return(ply);
}
}
Symbol 456 MovieClip [__Packages.com.midasplayer.timing.Timer] Frame 0
class com.midasplayer.timing.Timer
{
var timeable;
function Timer (timeable, gameTicksPerSecond) {
millisPerGameTick = 1000 / gameTicksPerSecond;
this.timeable = timeable;
}
function getMillisPerTick() {
return(millisPerGameTick);
}
function advanceTime() {
time = getTimer();
var _local2 = time - lastTime;
lastTime = time;
fps = 1000 / _local2;
unprocessedTime = unprocessedTime + _local2;
var _local3 = 0;
while (unprocessedTime > millisPerGameTick) {
unprocessedTime = unprocessedTime - millisPerGameTick;
timeable.tick(tick);
tick++;
_local3++;
if (_local3 >= 10) {
unprocessedTime = 0;
}
}
var _local4 = unprocessedTime / millisPerGameTick;
timeable.render(tick, _local4);
}
var time = 0;
var lastTime = 0;
var unprocessedTime = 0;
var tick = 0;
var millisPerGameTick = 0;
var fps = 0;
}
Symbol 457 MovieClip [__Packages.midasplayer.kicking.Introduction] Frame 0
class midasplayer.kicking.Introduction implements com.midasplayer.timing.Timeable
{
var parent, slideState, initRemove, bkg, bkgMask, instTop, instBottom, ballEndMc, ballGroundMc, ballShadow, cursor, ball, player1, player2, ballPlayer, animTop, ended, fn, anim, animBottom, pressedAt, charging, lastCharge;
function Introduction (parent) {
this.parent = parent;
slideState = 0;
initRemove = false;
bkg = parent.attachMovie("instructions", "intro", parent.getNextHighestDepth());
bkg._x = 770;
bkg._y = 15;
bkg.bottom_title_txt.text = com.midasplayer.util.I18n.getString("inst_part_1_title");
bkg.bottom_txt.text = com.midasplayer.util.I18n.getString("inst_part_1");
bkgMask = parent.attachMovie("panel_mask", "intro_panel_mask", parent.getNextHighestDepth());
bkgMask._x = 150;
bkgMask._y = 0;
bkg.setMask(bkgMask);
instTop = parent.attachMovie("instructions_top", "intro_top", parent.getNextHighestDepth());
instTop._x = 770;
instTop._y = 15;
instTop.top_txt.text = com.midasplayer.util.I18n.getString("inst_top_intro");
instBottom = parent.attachMovie("instructions_bottom", "intro_top", parent.getNextHighestDepth());
instBottom._x = 770;
instBottom._y = 15;
instBottom.btn_ballbtn.text = com.midasplayer.util.I18n.getString("inst_btn");
instBottom.start_game_btn.onPress = function () {
this.gotoAndStop(2);
this._x = this._x + 1;
this._y = this._y + 1;
this._parent.btn_ballbtn._x = this._parent.btn_ballbtn._x + 1;
this._parent.btn_ballbtn._y = this._parent.btn_ballbtn._y + 1;
};
instBottom.start_game_btn.onRelease = mx.utils.Delegate.create(this, onStartGame);
instBottom.start_game_btn.onReleaseOutside = mx.utils.Delegate.create(this, onStartGame);
ballEndMc = bkg.attachMovie("ball_end", "ball_end_mc_intro", bkg.getNextHighestDepth());
ballEndMc._visible = false;
ballGroundMc = bkg.attachMovie("ball_ground", "ball_ground_mc_intro", bkg.getNextHighestDepth());
ballGroundMc._visible = false;
ballShadow = bkg.attachMovie("shadowanim", "intro_ballshadow", bkg.getNextHighestDepth());
var _local3 = bkg.attachMovie("spinning arrow", "intro_cursor", bkg.getNextHighestDepth());
cursor = midasplayer.kicking.Cursor(_local3);
cursor.displayArrow(true);
cursor._visible = false;
_local3 = bkg.attachMovie("football_mc", "ball2", bkg.getNextHighestDepth());
ball = midasplayer.kicking.Ball(_local3);
ball.setPosition(170, 210);
var _local4 = bkg.getNextHighestDepth();
player1 = midasplayer.kicking.Player(bkg.attachMovie("player_team2", "intro_teamB_" + _local4, _local4));
player1.setPosition(170, 210);
_local4 = bkg.getNextHighestDepth();
player2 = midasplayer.kicking.Player(bkg.attachMovie("player_team2", "intro_teamB_" + _local4, _local4));
player2.setPosition(307.94, 136.65);
ballPlayer = player1;
player1.hasBall = true;
var _local5 = ballPlayer.getPosition();
cursor.setPosition(_local5.x, _local5.y);
cursor.go(0);
ballShadow.swapDepths(bkg.getNextHighestDepth());
animTop = new com.midasplayer.util.EaseOutQuadAnimator(instTop);
animTop.setPosition(220, 15);
animTop.setDuration(800);
ended = false;
}
function setExitFunction(fn) {
this.fn = fn;
}
function onStartGame() {
instBottom.btn_ballbtn._x = instBottom.btn_ballbtn._x - 1;
instBottom.btn_ballbtn._y = instBottom.btn_ballbtn._y - 1;
instBottom.start_game_btn._x = instBottom.start_game_btn._x - 1;
instBottom.start_game_btn._y = instBottom.start_game_btn._y - 1;
instBottom.start_game_btn.gotoAndStop(1);
initRemove = true;
}
function handleStoryBoard(tick) {
var _local3 = 0;
switch (tick) {
case A_OFFSET :
anim = new com.midasplayer.util.EaseOutQuadAnimator(bkg);
anim.setPosition(220, 15);
anim.setDuration(1000);
cursor.go(0);
break;
case 25 + A_OFFSET :
animBottom = new com.midasplayer.util.EaseOutQuadAnimator(instBottom);
animBottom.setPosition(220, 15);
animBottom.setDuration(1500);
break;
case (49 + A_OFFSET) + B_OFFSET :
case (140 + A_OFFSET) + B_OFFSET :
case ((250 + A_OFFSET) + B_OFFSET) + C_OFFSET :
case ((320 + A_OFFSET) + B_OFFSET) + C_OFFSET :
bkg.mouse.gotoAndStop(2);
cursor.hold();
pressedAt = getTimer();
charging = true;
if (!ballPlayer.isRunning) {
ballPlayer.facingAngle((2 * Math.PI) - cursor.getRadians());
}
break;
case ((388 + A_OFFSET) + B_OFFSET) + C_OFFSET :
charging = false;
bkg.mouse.gotoAndStop(1);
ball.affect(cursor.getRadians(), lastCharge * 4);
cursor._visible = false;
break;
case ((273 + A_OFFSET) + B_OFFSET) + C_OFFSET :
var _local4 = new midasplayer.kicking.PlayerLocation(player2, new com.midasplayer.geom.Pt(305.41, 138));
player2.run(_local4.getWaypoint());
player2.rotation = _local4.getDirection();
case (72 + A_OFFSET) + B_OFFSET :
charging = false;
bkg.mouse.gotoAndStop(1);
ballPlayer = player2;
player1.hasBall = false;
player2.hasBall = false;
cursor.go();
ball.affect(cursor.getRadians(), lastCharge * 4);
var _local5 = ball.getPathList();
var _local6 = ball.getWaypoints();
_local3 = ball.getEndPosition();
ballEndMc._x = _local3.x;
ballEndMc._y = _local3.y;
ballEndMc._visible = true;
var _local7 = _local5.length - 1;
for ( ; _local7 > -1 ; _local7--) {
if (_local5[_local7][3] != 0) {
ballGroundMc._x = _local5[_local7][0];
ballGroundMc._y = _local5[_local7][1];
ballGroundMc._visible = true;
break;
}
}
break;
case (160 + A_OFFSET) + B_OFFSET :
anim = new com.midasplayer.util.EaseInQuadAnimator(bkg);
anim.setPosition(-410, 15);
anim.setDuration(1000);
break;
case (201 + A_OFFSET) + B_OFFSET :
bkg.bottom_title_txt.text = com.midasplayer.util.I18n.getString("inst_part_2_title");
bkg.bottom_txt.text = com.midasplayer.util.I18n.getString("inst_part_2");
bkg.mouse.gotoAndStop(1);
ballEndMc._visible = false;
ballGroundMc._visible = false;
_local3 = player2.getPosition();
player2.setPosition(_local3.x + 60, _local3.y + 40);
ballPlayer = player1;
player1.hasBall = false;
player2.hasBall = false;
_local3 = ballPlayer.getPosition();
ball.setPosition(_local3.x, _local3.y);
cursor.go(0);
charging = false;
lastCharge = 0;
bkg._x = 710;
anim = new com.midasplayer.util.EaseOutQuadAnimator(bkg);
anim.setPosition(220, 15);
anim.setDuration(1000);
break;
case ((525 + A_OFFSET) + B_OFFSET) + C_OFFSET :
initRemove = true;
}
}
function tick(tick) {
if (ended) {
return(undefined);
}
if (initRemove && (slideState != 75)) {
animTop = new com.midasplayer.util.EaseOutQuadAnimator(instTop);
animTop.setPosition(770, 15);
animTop.setDuration(800);
anim = new com.midasplayer.util.EaseInQuadAnimator(bkg);
anim.setPosition(770, 15);
anim.setDuration(1000);
animBottom = new com.midasplayer.util.EaseOutQuadAnimator(instBottom);
animBottom.setPosition(770, 15);
animBottom.setDuration(1200);
slideState = 75;
ball.stabilize();
cursor.stabilize();
}
if (!initRemove) {
handleStoryBoard(tick);
player1.hasBall = false;
player2.hasBall = false;
if (charging) {
var _local3 = (getTimer() - pressedAt) / 1.25;
var _local4 = (_local3 % MAX_SHOT_CHARGE_TIME) / MAX_SHOT_CHARGE_TIME;
lastCharge = Math.sin(_local4 * Math.PI);
ballPlayer.setChargePower(lastCharge);
ballPlayer.hasBall = true;
cursor.setPower(lastCharge * 60);
}
cursor.update();
ball.onUpdate();
player1.update(ball, true);
player2.update(ball, true);
var _local5 = ballPlayer.getPosition();
cursor.setPosition(_local5.x, _local5.y);
}
if (animBottom && (animBottom.isFinished())) {
if (!(slideState === 75)) {
} else {
fn();
bkg.removeMovieClip();
instTop.removeMovieClip();
instBottom.removeMovieClip();
cursor.removeMovieClip();
bkgMask.removeMovieClip();
ended = true;
}
}
}
function render(tick, alpha) {
if (ended) {
return(undefined);
}
if (player1) {
player1.render(alpha);
}
if (player2) {
player2.render(alpha);
}
ball.onRender(alpha);
var _local4 = ball.getPathList()[ball.getPathIndex()][3];
ballShadow.gotoAndStop(Math.round(_local4 * 20) + 1);
ballShadow._x = ball._x - 8;
ballShadow._y = ball._y - 8;
cursor.render(alpha);
if (anim && (!anim.isFinished())) {
anim.update();
}
if (animTop && (!animTop.isFinished())) {
animTop.update();
}
if (animBottom && (!animBottom.isFinished())) {
animBottom.update();
}
}
static var A_OFFSET = 75;
static var B_OFFSET = 150;
static var C_OFFSET = 150;
static var MAX_SHOT_CHARGE_TIME = 4000;
}
Symbol 458 MovieClip [__Packages.midasplayer.kicking.Cursor] Frame 0
class midasplayer.kicking.Cursor extends MovieClip
{
var fpx, fpy, fy, fr, arrowAngle, isHeld, blink, arrowVisible, arrow, cursor_arrow, sy, isTimeLow, px, py, _xscale, _yscale, _visible, hexaplate, _x, _y;
function Cursor () {
super();
fpx = new com.midasplayer.timing.IFloat();
fpy = new com.midasplayer.timing.IFloat();
fy = new com.midasplayer.timing.IFloat();
fr = new com.midasplayer.timing.IFloat();
arrowAngle = 0;
isHeld = false;
blink = 0;
arrowVisible = false;
}
function displayArrow(makeVisible) {
arrow = cursor_arrow;
arrow._x = 0;
arrow._y = 0;
arrow.power_thing._x = -17;
arrow.power_thing._y = 0;
sy = 0;
fy.set(sy);
arrowVisible = makeVisible;
isTimeLow = false;
}
function setPosition(x, y) {
px = x;
fpx.set(px);
py = y;
fpy.set(py);
}
function setTimeLimitLow(v) {
if (v != isTimeLow) {
isTimeLow = v;
blink = 0;
}
}
function getDegrees() {
return(90 - (arrowAngle % 360));
}
function getRadians() {
return((90 - (arrowAngle % 360)) * midasplayer.kicking.Game.DEGREE_TO_RADIAN);
}
function setPower(n) {
sy = -40 - n;
}
function go(angle) {
isHeld = false;
if (angle == undefined) {
var _local3 = arrowAngle;
} else {
var _local3 = 270 - (angle * (180 / Math.PI));
}
sy = -40;
fy.set(sy);
arrow._rotation = _local3;
arrowAngle = _local3;
fr.set(_local3);
_xscale = 100;
_yscale = 100;
_visible = true;
}
function hold() {
isHeld = true;
}
function update() {
if (isTimeLow) {
blink--;
if (blink < 0) {
blink = 8;
}
}
if ((!isHeld) && (arrowVisible)) {
arrowAngle = arrowAngle + 8;
}
fpx.set(px);
fpy.set(py);
fy.set(sy);
fr.set(arrowAngle);
}
function stabilize() {
fpx.set(px);
fpy.set(py);
fy.set(sy);
fr.set(arrowAngle);
}
function render(a) {
if (blink <= 4) {
hexaplate._visible = true;
} else {
hexaplate._visible = false;
}
_x = fpx.get(a);
_y = fpy.get(a);
arrow._rotation = fr.get(a) % 360;
arrow.power_thing._y = fy.get(a);
}
}
Symbol 459 MovieClip [__Packages.com.midasplayer.util.EaseOutQuadAnimator] Frame 0
class com.midasplayer.util.EaseOutQuadAnimator extends com.midasplayer.util.Animator
{
var dt, duration, x, startX, dx, y, startY, dy;
function EaseOutQuadAnimator (o) {
super(o);
}
function nextPosition() {
var _local2 = dt;
var _local3 = duration * duration;
if (_local2 > duration) {
_local2 = duration;
}
var _local4 = _local2 * _local2;
x = ((((-dx) * _local4) / _local3) + (((2 * dx) * _local2) / duration)) + startX;
y = ((((-dy) * _local4) / _local3) + (((2 * dy) * _local2) / duration)) + startY;
}
}
Symbol 460 MovieClip [__Packages.com.midasplayer.fx.ScrollPlane] Frame 0
class com.midasplayer.fx.ScrollPlane
{
var ox, oy, viewMask, parent, viewWidth, viewHeight, centerX, centerY, clip, mox, moy, __get__visible;
function ScrollPlane (parent) {
ox = 0;
oy = 0;
viewMask = null;
this.parent = parent;
}
function setViewport(x, y, w, h, disableUseMask) {
viewWidth = w;
viewHeight = h;
if (disableUseMask != true) {
var _local7 = new com.midasplayer.fx.Draw(null);
_local7.createClip(parent);
_local7.color = 16711680 /* 0xFF0000 */;
_local7.fillRect(x, y, w, h);
viewMask = _local7.mc;
}
ox = x;
oy = y;
centerX = w >> 1;
centerY = h >> 1;
}
function setMovieClip(mc) {
clip = mc;
clip._visible = false;
if (viewMask != null) {
clip.setMask(viewMask);
mox = clip._width - viewMask._width;
moy = clip._height - viewMask._height;
} else {
mox = clip._width - viewWidth;
moy = clip._height - viewHeight;
}
}
function centerAround(x, y) {
if (x <= centerX) {
x = 0;
} else {
x = x - centerX;
}
if (y <= centerY) {
y = 0;
} else {
y = y - centerY;
}
if (y > moy) {
y = moy;
}
if (x > mox) {
x = mox;
}
setOffset(x, y);
}
function getViewport() {
var _local2 = (-clip._x) + ox;
var _local3 = (-clip._y) + oy;
return([_local2, _local3, viewWidth, viewHeight]);
}
function setOffset(x, y) {
clip._x = ((-x) + ox) >> 0;
clip._y = ((-y) + oy) >> 0;
}
function get mc() {
return(clip);
}
function get maxOffsetX() {
return(mox);
}
function get maxOffsetY() {
return(moy);
}
function get width() {
return(clip._width);
}
function get height() {
return(clip._height);
}
function set visible(isVisible) {
clip._visible = isVisible;
//return(__get__visible());
}
}
Symbol 461 MovieClip [__Packages.com.midasplayer.timing.Performance] Frame 0
class com.midasplayer.timing.Performance
{
var idealFps, measurePeriod, minPeriodFps, listeners, startAt, period, nextFpsUpdate, totalFps, fpsCount, lastFpsCount, periodFps, updates;
function Performance (idealFps) {
this.idealFps = idealFps;
measurePeriod = 5;
minPeriodFps = (idealFps / 2) * measurePeriod;
listeners = [];
begin();
}
function begin() {
startAt = -1;
period = -1;
nextFpsUpdate = getTimer();
totalFps = 0;
fpsCount = 0;
lastFpsCount = -1;
periodFps = 0;
updates = 0;
}
function frameUpdated() {
fpsCount++;
var _local2 = getTimer();
if (startAt < 0) {
startAt = _local2;
}
if (_local2 > nextFpsUpdate) {
if (updates > 0) {
lastFpsCount = fpsCount;
totalFps = totalFps + fpsCount;
}
periodFps = periodFps + fpsCount;
if ((++period) == measurePeriod) {
if (periodFps < minPeriodFps) {
for (var i in listeners) {
listeners[i](periodFps / measurePeriod);
}
}
period = 0;
periodFps = 0;
}
nextFpsUpdate = _local2 + 1000;
fpsCount = 0;
updates++;
}
}
function addQualityFeedbackListener(fn) {
listeners.push(fn);
}
function setFpsThreshold(minPeriodFps, measurePeriod) {
this.minPeriodFps = minPeriodFps * measurePeriod;
this.measurePeriod = measurePeriod;
}
function get fps() {
return(lastFpsCount);
}
function get averageFps() {
return(totalFps / ((getTimer() - startAt) / 1000));
}
}
Symbol 462 MovieClip [__Packages.com.midasplayer.fx.SoundManager] Frame 0
class com.midasplayer.fx.SoundManager
{
function SoundManager () {
}
static function isSoundEnabled() {
return(soundEnabled);
}
static function enableSounds(enabled) {
soundEnabled = enabled;
if (!enabled) {
muteAll();
} else {
restoreMuteAll();
}
}
static function stopAll() {
sounds.foreach(function (name, soundEntry) {
soundEntry.sound.stop();
soundEntry.playStatus = false;
});
}
static function muteAll() {
sounds.foreach(function (name, soundEntry) {
soundEntry.sound.setVolume(0);
soundEntry.isMuted = true;
});
}
static function restoreMuteAll() {
sounds.foreach(function (name, soundEntry) {
soundEntry.sound.setVolume(soundEntry.realVol);
soundEntry.isMuted = false;
});
}
static function stop(resource) {
var _local3 = sounds.get(resource);
if (_local3 != undefined) {
_local3.sound.stop();
_local3.playStatus = false;
}
}
static function getCalibratedVolume(flashVolume) {
flashVolume = Math.min(100, flashVolume);
flashVolume = Math.max(0, flashVolume);
return(Math.ceil(Math.pow(flashVolume / 100, 1.46) * 100));
}
static function setVolume(resource, percent) {
var _local4 = sounds.get(resource);
if ((_local4 != undefined) && (_local4.playStatus == true)) {
var _local5 = getCalibratedVolume(percent);
if (!_local4.isMuted) {
_local4.sound.setVolume(_local5);
}
_local4.realVol = _local5;
}
}
static function isPlaying(resource) {
var _local3 = sounds.get(resource);
return((_local3 != undefined) && (_local3.playStatus == true));
}
static function initialize(list) {
for (var i in list) {
var resource = list[i];
var _local3 = _root.getNextHighestDepth();
var _local4 = new Sound(_root.createEmptyMovieClip("sm_sndhold_" + _local3, _local3));
_local4.attachSound(resource);
_local4.onSoundComplete = function () {
var _local2 = com.midasplayer.fx.SoundManager.sounds.get(resource);
_local2.playStatus = false;
};
sounds.put(resource, {realVol:100, sound:_local4, playStatus:false});
}
}
static function play(resource, volume, isLoop, fn) {
if (volume == undefined) {
volume = 100;
}
if (isLoop == undefined) {
isLoop = false;
}
volume = getCalibratedVolume(volume);
var _local5 = sounds.get(resource);
if (_local5 != undefined) {
_local5.sound.setVolume((soundEnabled ? (volume) : 0));
_local5.realVol = volume;
_local5.isMuted = !soundEnabled;
_local5.playStatus = true;
_local5.onPlayedFn = fn;
_local5.sound.start(0, (isLoop ? 32767 : 1));
} else {
var _local6 = _root.getNextHighestDepth();
var _local7 = new Sound(_root.createEmptyMovieClip("sm_sndhold_" + _local6, _local6));
_local7.attachSound(resource);
_local7.onSoundComplete = function () {
var _local2 = com.midasplayer.fx.SoundManager.sounds.get(resource);
_local2.playStatus = false;
com.midasplayer.fx.SoundManager.onPlayed_(resource);
};
_local7.setVolume((soundEnabled ? (volume) : 0));
_local7.start(0, (isLoop ? 32767 : 1));
sounds.put(resource, {isMuted:!soundEnabled, realVol:volume, onPlayedFn:fn, sound:_local7, playStatus:true});
}
}
static function onPlayed_(name) {
var _local3 = sounds.get(name);
if ((_local3 != undefined) && (_local3.onPlayedFn != undefined)) {
_local3.onPlayedFn();
}
}
static var sounds = new com.midasplayer.util.Map();
static var soundEnabled = true;
}
Symbol 463 MovieClip [__Packages.com.midasplayer.fx.AnimatedPlate] Frame 0
class com.midasplayer.fx.AnimatedPlate extends MovieClip
{
var removeInited, appearAnimFr, removeAnimFr, self, exitDelay, propMap, exitCallback, _x, _y, bkg, bkgMask, subClipDelay, setMask, swapDepths, _visible, stopDisplayTime, count_down_txt, removeMovieClip;
function AnimatedPlate () {
super();
removeInited = false;
appearAnimFr = -1;
removeAnimFr = -1;
self = this;
exitDelay = -1;
propMap = {x:100, y:100, offsetx:0, offsety:0, sub_clip_random_delay:-1, background_name:"", mask_name:"", anim_is_sub_clips:false, appearanim_begin_frame:-1, appearanim_end_frame:-1, removeanim_begin_frame:-1, removeanim_end_frame:-1, call_exit_on_begin_remove:false};
}
function setExitEvent(fn) {
exitCallback = fn;
}
function remove() {
exitDelay = getTimer() + Math.round((Math.random() * 500) + 10);
}
function onPress() {
remove();
}
function setup(parent, prop) {
for (var i in prop) {
propMap[i] = prop[i];
}
var _local4 = 0;
_x = propMap.x + propMap.offsetx;
_y = propMap.y + propMap.offsety;
if (propMap.background_name != null) {
_local4 = parent.getNextHighestDepth();
bkg = parent.attachMovie(propMap.background_name, "bkg_" + _local4, _local4);
bkg.onPress = mx.utils.Delegate.create(this, onPress);
bkg._x = propMap.x;
bkg._y = propMap.y;
}
if (propMap.mask_name != null) {
_local4 = parent.getNextHighestDepth();
bkgMask = parent.attachMovie(propMap.mask_name, "bkg_mask_" + _local4, _local4);
bkgMask._x = propMap.x;
bkgMask._y = propMap.y;
}
if (propMap.sub_clip_random_delay != -1) {
var _local5 = 0;
subClipDelay = [];
var _local6 = propMap.sub_clip_random_delay / 2;
for (var i in bkg) {
var _local7 = bkg[i];
if (typeof(_local7) != "movieclip") {
continue;
}
var _local8 = [Math.floor(Math.random() * _local6) + _local6, 0];
subClipDelay[_local5++] = _local8;
}
} else {
var _local9 = 0;
subClipDelay = [];
for (var i in bkg) {
var _local10 = bkg[i];
if (typeof(_local10) != "movieclip") {
continue;
}
subClipDelay[_local9++] = [0, 0];
}
}
setMask(bkgMask);
swapDepths(parent.getNextHighestDepth());
_visible = true;
}
function startAppearAnim() {
appearAnimFr = 0;
removeAnimFr = -1;
}
function startRemoveAnim() {
removeInited = true;
appearAnimFr = -1;
removeAnimFr = 0;
if (propMap.call_exit_on_begin_remove && (exitCallback)) {
exitCallback(this);
}
onAppearRemoveBegin();
}
function init(values) {
}
function onAppearAnimComplete() {
}
function onAppearRemoveComplete() {
}
function onAppearRemoveBegin() {
}
function onEnterFrame() {
if (bkg && ((appearAnimFr != -1) || (removeAnimFr != -1))) {
var _local2 = 0;
var _local3 = 0;
var _local4 = 0;
var _local5 = 0;
if (appearAnimFr != -1) {
_local2 = propMap.appearanim_begin_frame + appearAnimFr;
_local3 = propMap.appearanim_end_frame;
appearAnimFr++;
}
if (removeAnimFr != -1) {
_local2 = propMap.removeanim_begin_frame + removeAnimFr;
_local3 = propMap.removeanim_end_frame;
removeAnimFr++;
}
for (var i in bkg) {
var _local6 = bkg[i];
if (typeof(_local6) != "movieclip") {
continue;
}
_local6.gotoAndStop(subClipDelay[_local5][1]);
_local5++;
}
if (bkgMask) {
_local5 = 0;
for (var i in bkgMask) {
var _local7 = bkgMask[i];
if (typeof(_local7) != "movieclip") {
continue;
}
_local7.gotoAndStop(subClipDelay[_local5][1]);
_local5++;
}
}
_local5 = subClipDelay.length;
for (var i in subClipDelay) {
if (subClipDelay[i][0] > 0) {
subClipDelay[i][0]--;
} else if ((++subClipDelay[i][1]) > _local3) {
subClipDelay[i][1] = _local3;
_local4++;
}
}
if ((_local4 > 0) && (_local4 == _local5)) {
if (appearAnimFr != -1) {
onAppearAnimComplete();
appearAnimFr = -1;
}
if (removeAnimFr != -1) {
onAppearRemoveComplete();
destroy();
removeAnimFr = -1;
}
}
}
var _local8 = getTimer();
var _local9 = Math.max(0, stopDisplayTime - _local8);
_local9 = _local9 / 1000;
_local9 = Math.ceil(_local9);
count_down_txt.text = com.midasplayer.util.I18n.getString("count_down", _local9);
if ((exitDelay != -1) && (_local8 > exitDelay)) {
if (!removeInited) {
startRemoveAnim();
}
} else if (_local9 == 0) {
remove();
}
}
function destroy() {
if ((!propMap.call_exit_on_begin_remove) && (exitCallback)) {
exitCallback(this);
}
if (bkg) {
bkg.swapDepths(1048000);
bkg.removeMovieClip();
}
if (bkgMask) {
bkgMask.swapDepths(1048000);
bkgMask.removeMovieClip();
}
swapDepths(1048000);
removeMovieClip();
}
}
Symbol 464 MovieClip [__Packages.midasplayer.kicking.Const] Frame 0
class midasplayer.kicking.Const
{
function Const () {
}
static var LAYUP = [{t:"4-5-1", w:11, h:11, f:[1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]}, {t:"3-4-3", w:11, h:11, f:[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0]}, {t:"4-2-4", w:11, h:11, f:[1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]}, {t:"3-3-4", w:11, h:11, f:[0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]}, {t:"4-4-2", w:11, h:11, f:[0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]}, {t:"4-3-3", w:11, h:11, f:[0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]}, {t:"4-3-2-1", w:11, h:11, f:[0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]}];
}
Symbol 465 MovieClip [__Packages.com.midasplayer.util.Sprite] Frame 0
class com.midasplayer.util.Sprite
{
var sxp, syp, mc, animator, alpha, r, fx, fy, fr, immedate, hooks, opacity, scale, color, lastResource, thisParent, visible, currentColor, posX, posY, frame, signalValue, realWidth, realHeight;
function Sprite (resource, ix, iy, iframe, parent) {
sxp = 0;
syp = 0;
mc = null;
animator = null;
alpha = 100;
r = 0;
fx = new com.midasplayer.timing.IFloat();
fy = new com.midasplayer.timing.IFloat();
fr = new com.midasplayer.timing.IFloat();
immedate = true;
hooks = new com.midasplayer.util.Map();
opacity = new Object();
scale = new Object();
color = new Object();
lastResource = resource;
thisParent = ((parent == undefined) ? (_root) : (parent));
visible = false;
currentColor = {ra:0, rb:0, ga:0, gb:0, ba:0, bb:0, aa:0, ab:0};
if ((ix != undefined) && ((iy != undefined) && ((iframe != undefined) && (resource != undefined)))) {
visible = true;
}
posX = ix;
posY = iy;
frame = iframe;
if (resource != undefined) {
bind();
}
}
function setAttribute(name, value) {
if (mc != undefined) {
mc.properties[name] = value;
}
}
function getAttribute(name) {
if (mc != undefined) {
return(mc.properties[name]);
}
}
function get signal() {
return(signalValue);
}
function set signal(value) {
signalValue = value;
//return(signal);
}
function setFrame(f) {
frame = f;
mc.gotoAndStop(frame + 1);
}
function getFrame() {
return(frame);
}
function setPosition(x, y) {
posX = x;
posY = y;
fx.set(x);
fy.set(y);
fr.set(r);
if (immedate && (mc != undefined)) {
mc._x = x;
mc._y = y;
}
}
function getPosition() {
return({x:posX, y:posY});
}
function setPosX(x) {
posX = x;
fx.set(x);
if (immedate && (mc != undefined)) {
mc._x = x;
}
}
function setPosY(y) {
posX = y;
fy.set(y);
if (immedate && (mc != undefined)) {
mc._y = y;
}
}
function setRotation(degree) {
r = degree;
if (mc != undefined) {
mc._rotation = degree;
}
}
function getRotation() {
return(r);
}
function getPosX() {
return(posX);
}
function getPosY() {
return(posY);
}
function getWidth() {
return(realWidth);
}
function getHeight() {
return(realHeight);
}
function getMovieClip() {
return(mc);
}
function setImmedateRendering(enable) {
immedate = enable;
fx.set(posX);
fy.set(posY);
}
function setDepth(depth) {
if (mc != undefined) {
mc.swapDepths(depth);
}
}
function setVisible(visible) {
this.visible = visible;
if (mc != undefined) {
mc._visible = visible;
}
}
function setScale(value) {
if (mc != undefined) {
mc._xscale = value;
mc._yscale = value;
}
}
function setAlpha(value) {
alpha = (mc._alpha = value);
}
function setParent(aParent) {
var _local3 = thisParent;
thisParent = aParent;
if (mc != undefined) {
destroy();
bind(lastResource);
posX = (mc._x = 0);
posY = (mc._y = 0);
}
}
function scaleFitInside(maxWidth, maxHeight) {
var _local4 = realWidth;
var _local5 = realHeight;
var _local6 = _local4;
var _local7 = _local5;
if ((_local6 < maxWidth) && (_local7 < maxWidth)) {
_local7 = _local7 * (maxWidth / _local6);
_local6 = maxWidth;
}
if (_local6 > maxWidth) {
_local7 = _local7 * (maxWidth / _local6);
_local6 = maxWidth;
}
if (_local7 > maxHeight) {
_local6 = _local6 * (maxHeight / _local7);
_local7 = maxHeight;
}
var _local8 = 100 * (1 - ((realWidth - _local6) / realWidth));
var _local9 = 100 * (1 - ((realHeight - _local7) / realHeight));
mc._xscale = _local8;
mc._yscale = _local9;
}
function updatePosition(alpha) {
if (immedate) {
return(undefined);
}
mc._x = fx.get(alpha);
mc._y = fy.get(alpha);
}
function setColorTransform(a) {
var _local3 = new Color(mc);
_local3.setTransform(a);
currentColor = a;
}
function setTint(r, g, b, amount) {
currentColor = new Object();
currentColor.ra = (currentColor.ga = (currentColor.ba = 100 - amount));
var _local6 = amount / 100;
currentColor.rb = r * _local6;
currentColor.gb = g * _local6;
currentColor.bb = b * _local6;
var _local7 = new Color(mc);
_local7.setTransform(currentColor);
}
function moveSpringy(centerx, centery, inertia, k) {
var _local6 = (-posX) + centerx;
var _local7 = (-posY) + centery;
sxp = (sxp * inertia) + (_local6 * k);
syp = (syp * inertia) + (_local7 * k);
setPosition(posX + sxp, posY + syp);
}
function delayedInvokation(duration, callback) {
var _local4 = new Object();
_local4.callback = callback;
_local4.finished = getTimer() + duration;
_local4.name = "delay-" + getUniqeId();
_local4.fn = function (owner, hook) {
return(hook.finished > getTimer());
};
hooks.put(_local4.name, _local4);
}
function approachColor(colorTransform, duration, callback) {
color.endTransform = colorTransform;
color.transformDiff = {ra:colorTransform.ra - currentColor.ra, rb:colorTransform.rb - currentColor.rb, ga:colorTransform.ga - currentColor.ga, gb:colorTransform.gb - currentColor.gb, ba:colorTransform.ba - currentColor.ba, bb:colorTransform.bb - currentColor.bb, aa:colorTransform.aa - currentColor.aa, ab:colorTransform.ab - currentColor.ab};
color.colorObj = new Color(mc);
color.duration = duration;
color.finishAt = duration + getTimer();
var _local4 = new Object();
_local4.callback = callback;
_local4.name = "color-";
_local4.fn = function (owner) {
var _local3 = owner.color;
var _local4 = _local3.finishAt - getTimer();
var _local5 = owner.mc;
if (_local4 <= 0) {
owner.currentColor = _local3.endTransform;
_local3.colorObj.setTransform(_local3.endTransform);
_local3.color = new Object();
return(false);
}
var _local6 = 1 - (_local4 / duration);
var _local7 = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
_local7.rb = owner.currentColor.rb + Math.floor(_local3.transformDiff.rb * _local6);
_local7.gb = owner.currentColor.gb + Math.floor(_local3.transformDiff.gb * _local6);
_local7.bb = owner.currentColor.bb + Math.floor(_local3.transformDiff.bb * _local6);
_local3.colorObj.setTransform(_local7);
return(true);
};
hooks.put(_local4.name, _local4);
}
function approachScale(targetScaleFactor, duration, keepCenter, callback) {
var _local4 = Math.max(mc._xscale, mc._yscale) - targetScaleFactor;
if (0 == Math.round(_local4)) {
if (callback) {
callback(this);
}
return(undefined);
}
scale.targetScale = targetScaleFactor;
scale.duration = duration;
scale.diff = _local4;
scale.finishAt = duration + getTimer();
scale.cx = mc._x + (mc._width / 2);
scale.cy = mc._y + (mc._height / 2);
var _local5 = new Object();
_local5.callback = callback;
_local5.name = "scale-";
_local5.fn = function (owner) {
var _local3 = owner.scale;
var _local4 = _local3.finishAt - getTimer();
var _local5 = owner.mc;
if (_local4 <= 0) {
owner.scale = new Object();
owner.mc._xscale = _local3.targetScale;
owner.mc._yscale = _local3.targetScale;
if (keepCenter) {
owner.posX = (_local5._x = _local3.cx - (_local5._width / 2));
owner.posY = (_local5._y = _local3.cy - (_local5._height / 2));
}
return(false);
}
var _local6 = _local4 / duration;
var _local7 = Math.round((_local6 * _local3.diff) + _local3.targetScale);
_local5._xscale = _local7;
_local5._yscale = _local7;
if (keepCenter) {
owner.posX = (_local5._x = _local3.cx - (_local5._width / 2));
owner.posY = (_local5._y = _local3.cy - (_local5._height / 2));
}
return(true);
};
hooks.put(_local5.name, _local5);
}
function approachAlpha(targetOpacity, duration, callback) {
if ((targetOpacity < 0) || (targetOpacity > 100)) {
mc._alpha = 100;
return(undefined);
}
opacity.targetOp = targetOpacity;
opacity.duration = duration;
opacity.diff = mc._alpha - targetOpacity;
opacity.finsishAt = duration + getTimer();
var _local4 = new Object();
_local4.callback = callback;
_local4.name = "alpha-";
_local4.fn = function (owner) {
var _local3 = owner.opacity;
var _local4 = _local3.finsishAt - getTimer();
if (_local4 <= 0) {
_local3.alpha = (owner.mc._alpha = _local3.targetOp);
owner.opacity = new Object();
return(false);
}
_local3.alpha = (owner.mc._alpha = Math.round(((_local4 / duration) * _local3.diff) + _local3.targetOp));
return(true);
};
hooks.put(_local4.name, _local4);
}
function applyAnimator(an, callback) {
animator = an;
animator.setSource(mc);
var _local4 = new Object();
_local4.callback = callback;
_local4.name = "anim-";
_local4.fn = function (owner) {
var _local3 = owner.animator;
if ((_local3 != undefined) && (!_local3.isFinished())) {
_local3.update();
return(true);
}
return(false);
};
hooks.put(_local4.name, _local4);
}
function bind(resource) {
if (resource == undefined) {
if (lastResource == undefined) {
return(undefined);
}
resource = lastResource;
}
var _local3 = thisParent.getNextHighestDepth();
var _local4 = "@sprite" + com.midasplayer.util.Numbers.itoa(_local3, 4);
mc = thisParent.attachMovie(resource, _local4, _local3);
mc._x = posX;
mc._y = posY;
realWidth = mc._width;
realHeight = mc._height;
mc._visible = visible;
mc._alpha = alpha;
mc.gotoAndStop(frame + 1);
var _local5 = new Object();
_local5.owner = this;
mc.properties = _local5;
lastResource = resource;
mc.onEnterFrame = function () {
var o = this.properties.owner;
var _local2 = o.hooks;
var _local3 = 0;
_local3 = _local2.count();
if (_local3 > 0) {
var list = new Array();
_local2.foreach(function (name, hook) {
if (hook.fn(o, hook) == false) {
if (hook.callback != undefined) {
hook.callback(o);
}
list.push(hook.name);
}
return(true);
});
for (var i in list) {
_local2.remove(list[i]);
}
}
};
}
function flipX() {
if (mc != undefined) {
}
mc._yscale = -mc._yscale;
}
function flipY() {
if (mc != undefined) {
}
mc._xscale = -mc._xscale;
}
function destroy() {
if (mc != undefined) {
for (var i in mc) {
if (i.indexOf("@sprite") == 0) {
mc[i].destroy();
}
}
for (var i in mc.properties) {
delete mc.properties[i];
mc.properties[i] = null;
}
mc.onEnterFrame = undefined;
mc.swapDepths(1048000);
mc.removeMovieClip();
mc = undefined;
}
hooks.clear();
}
function clearHooks() {
hooks.clear();
}
function hookCount() {
return(hooks.count());
}
function getUniqeId() {
var _local2 = (Math.random() * 10000) >> 0;
var _local3 = getTimer();
return((_local2 + ":") + _local3);
}
}
Symbol 466 MovieClip [__Packages.com.midasplayer.util.EaseInBackAnimator] Frame 0
class com.midasplayer.util.EaseInBackAnimator extends com.midasplayer.util.Animator
{
var back, dt, duration, x, startX, dx, y, startY, dy;
function EaseInBackAnimator (o, backStep) {
super(o);
back = (backStep ? (backStep) : 1.516);
}
function nextPosition() {
var _local2 = dt;
_local2 = _local2 / duration;
x = (((dx * _local2) * _local2) * (((back + 1) * _local2) - back)) + startX;
_local2 = dt;
_local2 = _local2 / duration;
y = (((dy * _local2) * _local2) * (((back + 1) * _local2) - back)) + startY;
}
}
Symbol 467 MovieClip [__Packages.midasplayer.kicking.Goal] Frame 0
class midasplayer.kicking.Goal extends MovieClip
{
function Goal () {
super();
}
}
Symbol 468 MovieClip [__Packages.midasplayer.kicking.GameOverPlate] Frame 0
class midasplayer.kicking.GameOverPlate extends com.midasplayer.fx.AnimatedPlate
{
var title_txt, big_msg_txt, msg1_txt, score1_txt, msg2_txt, score2_txt, msg3_txt, score3_txt, count_down_msg_txt, _visible, stopDisplayTime;
function GameOverPlate () {
super();
}
function init(v) {
title_txt.text = com.midasplayer.util.I18n.getString("game_over");
big_msg_txt.text = com.midasplayer.util.I18n.getString(v[0]);
msg1_txt.text = com.midasplayer.util.I18n.getString("shot_score");
score1_txt.text = v[1];
msg2_txt.text = com.midasplayer.util.I18n.getString("distance_score");
score2_txt.text = v[2];
msg3_txt.text = com.midasplayer.util.I18n.getString("final_score");
score3_txt.text = v[3];
count_down_msg_txt.text = com.midasplayer.util.I18n.getString("count_down_msg_end");
_visible = true;
stopDisplayTime = getTimer() + 5000;
}
}
Symbol 469 MovieClip [__Packages.midasplayer.kicking.RoundOverPlate] Frame 0
class midasplayer.kicking.RoundOverPlate extends com.midasplayer.fx.AnimatedPlate
{
var title_txt, big_msg_txt, msg1_txt, score1_txt, msg2_txt, score2_txt, msg3_txt, score3_txt, count_down_msg_txt, _visible, stopDisplayTime;
function RoundOverPlate () {
super();
}
function init(v) {
title_txt.text = com.midasplayer.util.I18n.getString("round_over", v[0]);
big_msg_txt.text = com.midasplayer.util.I18n.getString(v[1]);
msg1_txt.text = com.midasplayer.util.I18n.getString("shot_score");
score1_txt.text = v[2];
msg2_txt.text = com.midasplayer.util.I18n.getString("distance_score");
score2_txt.text = v[3];
msg3_txt.text = com.midasplayer.util.I18n.getString("total_score");
score3_txt.text = v[4];
count_down_msg_txt.text = com.midasplayer.util.I18n.getString("count_down_msg_round");
_visible = true;
stopDisplayTime = getTimer() + 5000;
}
}
Symbol 470 MovieClip [__Packages.midasplayer.kicking.Particle] Frame 0
class midasplayer.kicking.Particle extends MovieClip
{
var colorStep, _visible, dead, currentColor, color, sha, _x, _y, animator, ts, born, _xscale, _yscale, _rotation;
function Particle () {
super();
colorStep = 0;
_visible = false;
dead = false;
currentColor = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
color = new Color(this);
}
function init(x, y) {
sha = Math.sin((Math.PI * 2) - 0.77) * 14;
_x = x;
_y = y;
animator = new com.midasplayer.util.EaseOutCubicAnimator(this);
var _local4 = Math.floor(Math.random() * 80) + 30;
var _local5 = (Math.random() * Math.PI) * 2;
ts = Math.floor(Math.random() * 15);
var _local6 = Math.floor(Math.random() * 200) + 1000;
_local4 = _local4 / 2;
var _local7 = x + (Math.cos(_local5) * _local4);
var _local8 = y + (Math.sin(_local5) * _local4);
animator.setPosition(_local7, _local8);
animator.setDuration(_local6);
}
function update() {
if ((!born) && ((--ts) > 0)) {
return(dead);
}
if (!born) {
born = true;
_visible = true;
}
return(dead);
}
function render() {
if (born && (!animator.isFinished())) {
animator.update();
var _local2 = 1 - animator.getElapsedPercent();
if (_local2 < 0.75) {
var _local3 = Math.max(0.5, ((-_local2) * sha) - ((_local2 * _local2) * 16));
_xscale = (_yscale = Math.floor(_local3 * 100));
var _local4 = colorScheme[colorStep].fin;
while ((_local2 > _local4) && (colorStep < colorScheme.length)) {
currentColor = colorScheme[colorStep].col;
colorStep++;
_local4 = colorScheme[colorStep].fin;
}
var _local5 = 0;
var _local6 = 0;
if (colorStep > 0) {
_local6 = colorScheme[colorStep - 1].fin;
_local4 = _local4 - _local6;
}
_local5 = (_local2 - _local6) / _local4;
var _local7 = colorScheme[colorStep].col;
var _local8 = currentColor.rb;
var _local9 = currentColor.gb;
var _local10 = currentColor.bb;
var _local11 = currentColor.ab;
var _local12 = _local8 + ((_local7.rb - _local8) * _local5);
var _local13 = _local9 + ((_local7.gb - _local9) * _local5);
var _local14 = _local10 + ((_local7.bb - _local10) * _local5);
var _local15 = _local11 + ((_local7.ab - _local11) * _local5);
color.setTransform({ra:100, ga:100, ba:100, aa:100, rb:_local12 >> 0, gb:_local13 >> 0, bb:_local14 >> 0, ab:_local15 >> 0});
} else {
color.setTransform(defaultColor);
var _local16 = ((_local2 < 0.85) && (_local2 > 0.84)) || (((_local2 < 0.95) && (_local2 > 0.94)) || ((_local2 < 1) && (_local2 > 0.99)));
_visible = _local16;
}
_rotation = 57.295779513 * Math.floor((Math.random() * Math.PI) * 2);
}
if (born && (animator.isFinished())) {
dead = true;
}
}
static var defaultColor = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
static var colorScheme = [{fin:0.2, col:{ra:0, rb:0, ga:0, gb:0, ba:0, bb:0, aa:0, ab:0}}, {fin:0.4, col:{ra:0, rb:0, ga:0, gb:-20, ba:0, bb:-255, aa:0, ab:0}}, {fin:1, col:{ra:0, rb:0, ga:0, gb:-175, ba:0, bb:-175, aa:0, ab:0}}];
}
Symbol 471 MovieClip [__Packages.com.midasplayer.util.EaseOutCubicAnimator] Frame 0
class com.midasplayer.util.EaseOutCubicAnimator extends com.midasplayer.util.Animator
{
var dt, duration, x, startX, dx, y, startY, dy;
function EaseOutCubicAnimator (o) {
super(o);
}
function nextPosition() {
var _local2 = dt;
if (_local2 > duration) {
_local2 = duration;
}
var _local3 = _local2;
_local3 = (_local3 / duration) - 1;
x = (dx * (((_local3 * _local3) * _local3) + 1)) + startX;
_local3 = _local2;
_local3 = (_local3 / duration) - 1;
y = (dy * (((_local3 * _local3) * _local3) + 1)) + startY;
}
}