Section 1
//MainTimeline (gempower_fla.MainTimeline)
package gempower_fla {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.net.*;
import flash.printing.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var channel:SoundChannel;
public var music:Sound;
public var joints:Array;
public var tex:BitmapData;
public var heights:Array;
public var pony:MovieClip;
public var min1:Number;
public var render1:MovieClip;
public var decals_spr:MovieClip;
public var decals:Array;
public var i:int;
public var k:int;
public var decal_reload:int;
public var dh:Number;
public var jem_link:LinkSprite;
public var h:Number;
public var hs1:Number;
public var mc:MovieClip;
public var max1:Number;
public var tx:Number;
public var bmp:Bitmap;
public var dhs1:Number;
public var spr:MovieClip;
public var links:Array;
public var ty:Number;
public var render:MovieClip;
public var time:Number;
public var trollestia:MovieClip;
public var cell_w:Number;
public var ddh:Number;
public function MainTimeline(){
addFrameScript(0, frame1, 2, frame3);
}
public function interpolate(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return ((_arg1 + ((_arg2 - _arg1) * _arg3)));
}
public function PreloadUpdate(_arg1:Event):void{
if (stage.loaderInfo.bytesLoaded >= stage.loaderInfo.bytesTotal){
removeEventListener(Event.ENTER_FRAME, PreloadUpdate);
gotoAndStop(3);
};
}
function frame3(){
tex = new BitmapData(160, 120);
bmp = new Bitmap(tex);
addChild(mc);
mc.scaleY = 4;
mc.scaleX = 4;
mc.x = 0;
mc.y = 0;
addEventListener("enterFrame", update);
spr = mc;
render1 = new MovieClip();
render = new MovieClip();
spr.addChild(render1);
spr.addChild(render);
music = new music1();
channel = music.play(0, 9999);
heights = new Array();
i = 0;
while (i < 80) {
heights.push(100);
i++;
};
h = 100;
dh = -0.1;
ddh = 1;
time = 0;
hs1 = 0.5;
dhs1 = 0;
decals = new Array();
decal_reload = 0;
decals_spr = new MovieClip();
spr.addChild(decals_spr);
decals_spr.mask = render;
min1 = 1000;
max1 = -1000;
cell_w = 2.55;
pony = spr.pony;
spr.addChild(pony);
trollestia = spr.trollestia;
spr.addChild(trollestia);
joints = new Array();
links = new Array();
i = 0;
while (i < 10) {
joints.push(new Joint(-30, (-30 + (i * 4)), (20 - i)));
i++;
};
i = 0;
while (i < (joints.length - 2)) {
links.push(new LinkSprite(joints[i], joints[(i + 1)], 0.95, null));
i++;
};
joints[(joints.length - 1)].mass = 30;
trollestia.gem.y = ((-30 + (i * 4)) + 4);
jem_link = new LinkSprite(joints[i], joints[(i + 1)], 0.98, trollestia.gem);
tx = trollestia.x;
ty = trollestia.y;
}
function frame1(){
stop();
addEventListener(Event.ENTER_FRAME, PreloadUpdate, false, 0, true);
}
public function rnd(_arg1:Number, _arg2:Number):Number{
return (((Math.random() * (_arg2 - _arg1)) + _arg1));
}
public function irnd(_arg1:Number, _arg2:Number):int{
return (int((((Math.random() * (_arg2 - _arg1)) + _arg1) + 0.5)));
}
public function limit(_arg1:Number, _arg2:Number, _arg3:Number):Number{
_arg1 = Math.max(_arg1, _arg2);
_arg1 = Math.min(_arg1, _arg3);
return (_arg1);
}
public function update(_arg1:Event):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:int;
var _local7:b2Vec2;
var _local8:MovieClip;
dhs1 = (dhs1 + limit(rnd(-0.025, 0.025), -0.1, 0.1));
hs1 = limit((hs1 + dhs1), 0.1, 0.5);
h = (h + dh);
_local2 = dh;
dh = (dh + (rnd(-0.25, 0.25) + (Math.sin((time * dhs1)) * 2)));
dh = limit(dh, -7, 7);
if (h > 100){
dh = Math.min(dh, -0.1);
};
if (h < 50){
dh = Math.max(dh, 0.1);
};
i = 0;
while (i < (heights.length - 1)) {
heights[i] = heights[(i + 1)];
i++;
};
_local3 = (heights[(heights.length - 1)] = (((h * 0.333) + (heights[(heights.length - 2)] * 0.333)) + (heights[(heights.length - 3)] * 0.333)));
dh = interpolate(dh, (_local3 - heights[(heights.length - 2)]), 0.2);
_local4 = (heights[(heights.length - 6)] - heights[(heights.length - 12)]);
_local5 = (heights[(heights.length - 1)] - heights[(heights.length - 6)]);
if (((((((((((_local4 * _local5) < 0)) && ((_local4 < 0)))) && ((Math.abs((_local4 - _local5)) > 7)))) && ((decal_reload < 0)))) && ((heights[(heights.length - 6)] < 60)))){
_local8 = new decal();
_local8.x = ((heights.length - 6) * cell_w);
_local8.y = _local3;
_local8.rotation = (Math.random() * 360);
_local8.gotoAndStop(irnd(1, 3));
decals_spr.addChild(_local8);
decals.push(_local8);
decal_reload = 10;
};
decal_reload--;
i = 0;
while (i < decals.length) {
decals[i].x = (decals[i].x - cell_w);
if (decals[i].x < -60){
decals_spr.removeChild(decals[i]);
decals[i] = null;
decals.splice(i, 1);
i--;
};
i++;
};
render.graphics.clear();
render.graphics.beginFill(7709365);
render.graphics.moveTo(0, 120);
i = 0;
while (i < heights.length) {
render.graphics.lineTo((i * cell_w), heights[i]);
i++;
};
render.graphics.lineTo(160, 120);
render1.graphics.clear();
render1.graphics.beginFill(7709365);
render1.graphics.moveTo(0, 120);
i = 0;
while (i < heights.length) {
render1.graphics.lineTo((i * cell_w), heights[i]);
i++;
};
render1.graphics.lineTo(160, 120);
time++;
_local6 = 25;
_local7 = new b2Vec2(cell_w, (heights[(_local6 + 1)] - heights[_local6]));
pony.rotation = interpolate(pony.rotation, (_local7.Angle() * 0.8), 0.2);
pony.x = (_local6 * cell_w);
pony.y = heights[_local6];
trollestia.y = interpolate(trollestia.y, (heights[60] - 40), 0.01);
trollestia.x = (154 + (Math.sin((time * 0.05)) * 4));
tx = (tx - trollestia.x);
ty = (ty - trollestia.y);
i = 0;
while (i < joints.length) {
joints[i].Update2(0.9);
joints[i].x = (joints[i].x - ((0.01 + rnd(-0.05, 0.05)) + tx));
joints[i].y = (joints[i].y + (0.4 + ty));
i++;
};
tx = trollestia.x;
ty = trollestia.y;
k = 0;
while (k < 4) {
joints[0].x = trollestia.end.x;
joints[0].y = trollestia.end.y;
i = 0;
while (i < links.length) {
links[i].Update();
i++;
};
k++;
};
joints[0].x = trollestia.end.x;
joints[0].y = trollestia.end.y;
trollestia.graphics.clear();
trollestia.graphics.lineStyle(1, 12702423);
trollestia.graphics.moveTo(joints[0].x, joints[0].y);
i = 0;
while (i < joints.length) {
trollestia.graphics.lineTo(joints[i].x, joints[i].y);
i++;
};
jem_link.Update();
jem_link.Render();
}
}
}//package gempower_fla
Section 2
//Symbol10_3 (gempower_fla.Symbol10_3)
package gempower_fla {
import flash.display.*;
public dynamic class Symbol10_3 extends MovieClip {
public var pony:MovieClip;
public var trollestia:MovieClip;
}
}//package gempower_fla
Section 3
//Symbol20_1 (gempower_fla.Symbol20_1)
package gempower_fla {
import flash.display.*;
public dynamic class Symbol20_1 extends MovieClip {
public function Symbol20_1(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package gempower_fla
Section 4
//Symbol30_13 (gempower_fla.Symbol30_13)
package gempower_fla {
import flash.display.*;
public dynamic class Symbol30_13 extends MovieClip {
public var gem:MovieClip;
public var end:MovieClip;
}
}//package gempower_fla
Section 5
//apple (apple)
package {
import flash.display.*;
public dynamic class apple extends MovieClip {
}
}//package
Section 6
//b2Vec2 (b2Vec2)
package {
public class b2Vec2 {
public var x:Number;
public var y:Number;
public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{
x = _arg1;
y = _arg2;
}
public function Set(_arg1:Number=0, _arg2:Number=0):void{
x = _arg1;
y = _arg2;
}
public function Multiply(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
}
public function Length():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
public function LengthSquared():Number{
return (((x * x) + (y * y)));
}
public function RotateNormal(_arg1:b2Vec2):void{
var _local2:Number;
_local2 = ((_arg1.x * x) - (_arg1.y * y));
y = ((_arg1.y * x) + (_arg1.x * y));
x = _local2;
}
public function SetZero():void{
x = 0;
y = 0;
}
public function InvertCopy():b2Vec2{
return (new b2Vec2(-(x), -(y)));
}
public function Add(_arg1:b2Vec2):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
public function Perpendicular():void{
var _local1:Number;
_local1 = x;
x = -(y);
y = _local1;
}
public function MaxV(_arg1:b2Vec2):void{
x = ((x > _arg1.x)) ? x : _arg1.x;
y = ((y > _arg1.y)) ? y : _arg1.y;
}
public function SetV(_arg1:b2Vec2):void{
x = _arg1.x;
y = _arg1.y;
}
public function Negative():b2Vec2{
return (new b2Vec2(-(x), -(y)));
}
public function CrossVF(_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (_arg1 * y);
y = (-(_arg1) * _local2);
}
public function Abs():void{
if (x < 0){
x = -(x);
};
if (y < 0){
y = -(y);
};
}
public function RotateRad(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
var _local4:b2Vec2;
_local2 = Math.cos(_arg1);
_local3 = Math.sin(_arg1);
_local4 = new b2Vec2(((_local2 * x) - (_local3 * y)), ((_local3 * x) + (_local2 * y)));
x = _local4.x;
y = _local4.y;
}
public function Limit(_arg1:Number, _arg2:Number):void{
if (x > _arg1){
x = _arg1;
} else {
if (x < -(_arg1)){
x = -(_arg1);
};
};
if (y > _arg2){
y = _arg2;
} else {
if (y < -(_arg2)){
y = -(_arg2);
};
};
}
public function Copy():b2Vec2{
return (new b2Vec2(x, y));
}
public function PerpendicularCopy():b2Vec2{
return (new b2Vec2(-(y), x));
}
public function QuadraticDistLine(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = (_arg1.y - _arg2.y);
_local4 = (_arg2.x - _arg1.x);
_local5 = ((_arg1.x * _arg2.y) - (_arg2.x * _arg1.y));
return ((((_local3 * x) + (_local4 * y)) + _local5));
}
public function MinV(_arg1:b2Vec2):void{
x = ((x < _arg1.x)) ? x : _arg1.x;
y = ((y < _arg1.y)) ? y : _arg1.y;
}
public function LimitLength(_arg1:Number):Boolean{
var _local2:Number;
_local2 = Length();
if (_local2 < _arg1){
return (false);
};
_arg1 = (_arg1 / _local2);
x = (x * _arg1);
y = (y * _arg1);
return (true);
}
public function Dot(_arg1:b2Vec2):Number{
return (((x * _arg1.x) + (y * _arg1.y)));
}
public function Normalize():Number{
var _local1:Number;
var _local2:Number;
_local1 = Math.sqrt(((x * x) + (y * y)));
if (_local1 < Number.MIN_VALUE){
return (0);
};
_local2 = (1 / _local1);
x = (x * _local2);
y = (y * _local2);
return (_local1);
}
public function CrossFV(_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (-(_arg1) * y);
y = (_arg1 * _local2);
}
public function Subtract(_arg1:b2Vec2):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
public function Rad():Number{
return (Math.atan2(y, x));
}
public function Invert():void{
x = -(x);
y = -(y);
}
public function Angle():Number{
return ((Math.atan2(y, x) * 57.295779513));
}
public function Rotate(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
var _local4:b2Vec2;
_arg1 = (_arg1 * 0.017453292);
_local2 = Math.cos(_arg1);
_local3 = Math.sin(_arg1);
_local4 = new b2Vec2(((_local2 * x) - (_local3 * y)), ((_local3 * x) + (_local2 * y)));
x = _local4.x;
y = _local4.y;
}
public static function Make(_arg1:Number, _arg2:Number):b2Vec2{
return (new b2Vec2(_arg1, _arg2));
}
}
}//package
Section 7
//decal (decal)
package {
import flash.display.*;
public dynamic class decal extends MovieClip {
}
}//package
Section 8
//Joint (Joint)
package {
public class Joint {
public var y:Number;
public var oldx:Number;
public var mass:Number;
public var x:Number;
public var oldy:Number;
public function Joint(_arg1:Number, _arg2:Number, _arg3:Number):void{
x = _arg1;
y = _arg2;
oldx = x;
oldy = y;
mass = _arg3;
}
public function get vy():Number{
return ((y - oldy));
}
public function set vy(_arg1:Number):void{
oldy = (y - _arg1);
}
public function Update():void{
var _local1:Number;
var _local2:Number;
_local1 = ((x - oldx) * 0.85);
_local2 = ((y - oldy) * 0.85);
oldx = x;
oldy = y;
x = (x + _local1);
y = (y + _local2);
}
public function Update2(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_local2 = ((x - oldx) * _arg1);
_local3 = ((y - oldy) * _arg1);
oldx = x;
oldy = y;
x = (x + _local2);
y = (y + _local3);
}
public function get vx():Number{
return ((x - oldx));
}
public function set vx(_arg1:Number):void{
oldx = (x - _arg1);
}
}
}//package
Section 9
//LinkSprite (LinkSprite)
package {
import flash.display.*;
public class LinkSprite {
public var a:Joint;
public var sprite:MovieClip;
public var b:Joint;
public var k:Number;
public var r:Number;
public function LinkSprite(_arg1:Joint, _arg2:Joint, _arg3:Number, _arg4:MovieClip):void{
var _local5:Number;
var _local6:Number;
super();
a = _arg1;
b = _arg2;
k = _arg3;
_local5 = (b.x - a.x);
_local6 = (b.y - a.y);
r = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
sprite = _arg4;
}
public function RenderCoeff(_arg1:Number):void{
var _local2:Number;
sprite.x = (sprite.x + ((a.x - sprite.x) * _arg1));
sprite.y = (sprite.y + ((a.y - sprite.y) * _arg1));
_local2 = ((Math.atan2((b.y - a.y), (b.x - a.x)) * 57.295779513082) - sprite.rotation);
if (_local2 < -180){
_local2 = (_local2 + (int((0.5 + (int((-(_local2) / 180)) / 2))) * 360));
} else {
if (_local2 > 180){
_local2 = (_local2 - (int((0.5 + (int((_local2 / 180)) / 2))) * 360));
};
};
sprite.rotation = (sprite.rotation + (_local2 * _arg1));
}
public function Kill():void{
a = null;
b = null;
sprite = null;
}
public function Update():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = (b.x - a.x);
_local2 = (b.y - a.y);
_local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2)));
_local4 = ((_local3 - r) / _local3);
_local4 = (_local4 * (k / (a.mass + b.mass)));
_local1 = (_local1 * _local4);
_local2 = (_local2 * _local4);
a.x = (a.x + (b.mass * _local1));
a.y = (a.y + (b.mass * _local2));
b.x = (b.x - (a.mass * _local1));
b.y = (b.y - (a.mass * _local2));
}
public function Render():void{
sprite.x = a.x;
sprite.y = a.y;
sprite.rotation = (Math.atan2((b.y - a.y), (b.x - a.x)) * 57.295779513082);
}
public function RenderStretch():void{
var _local1:Number;
var _local2:Number;
sprite.x = a.x;
sprite.y = a.y;
_local1 = (b.x - a.x);
_local2 = (b.y - a.y);
sprite.rotation = (Math.atan2(_local2, _local1) * 57.295779513082);
sprite.scaleX = (Math.sqrt(((_local1 * _local1) + (_local2 * _local2))) / r);
}
}
}//package
Section 10
//music1 (music1)
package {
import flash.media.*;
public dynamic class music1 extends Sound {
}
}//package