Section 1
//NewgroundsAPIAsset_API_Conencted_4 (APIConnector_fla.NewgroundsAPIAsset_API_Conencted_4)
package APIConnector_fla {
import flash.display.*;
import com.newgrounds.components.*;
public dynamic class NewgroundsAPIAsset_API_Conencted_4 extends MovieClip {
public function NewgroundsAPIAsset_API_Conencted_4(){
addFrameScript(36, this.frame37);
}
function frame37(){
APIConnector(parent).clear();
}
}
}//package APIConnector_fla
Section 2
//NewgroundsAPIAsset_ConnectingAPI_2 (APIConnector_fla.NewgroundsAPIAsset_ConnectingAPI_2)
package APIConnector_fla {
import flash.display.*;
public dynamic class NewgroundsAPIAsset_ConnectingAPI_2 extends MovieClip {
public function NewgroundsAPIAsset_ConnectingAPI_2(){
addFrameScript(9, this.frame10);
}
function frame10(){
stop();
}
}
}//package APIConnector_fla
Section 3
//NewgroundsAPIAsset_Connection_Error_7 (APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7)
package APIConnector_fla {
import flash.display.*;
import com.newgrounds.components.*;
public dynamic class NewgroundsAPIAsset_Connection_Error_7 extends MovieClip {
public function NewgroundsAPIAsset_Connection_Error_7(){
addFrameScript(9, this.frame10, 20, this.frame21);
}
function frame10(){
stop();
}
function frame21(){
APIConnector(parent).clear();
}
}
}//package APIConnector_fla
Section 4
//NewgroundsAPIAsset_Load_Indicator_3 (APIConnector_fla.NewgroundsAPIAsset_Load_Indicator_3)
package APIConnector_fla {
import flash.events.*;
import flash.display.*;
public dynamic class NewgroundsAPIAsset_Load_Indicator_3 extends MovieClip {
public function NewgroundsAPIAsset_Load_Indicator_3(){
addFrameScript(0, this.frame1);
}
public function onEnterFrame(_arg1:Event):void{
if (((visible) && (stage))){
rotation = (rotation + 30);
} else {
removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
};
}
function frame1(){
addEventListener(Event.ENTER_FRAME, this.onEnterFrame);
}
}
}//package APIConnector_fla
Section 5
//NewgroundsAPIAsset_Login_Warning_5 (APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5)
package APIConnector_fla {
import flash.display.*;
import com.newgrounds.components.*;
public dynamic class NewgroundsAPIAsset_Login_Warning_5 extends MovieClip {
public function NewgroundsAPIAsset_Login_Warning_5(){
addFrameScript(9, this.frame10, 20, this.frame21);
}
function frame10(){
stop();
}
function frame21(){
APIConnector(parent).clear();
}
}
}//package APIConnector_fla
Section 6
//b2CircleDef (Code.Box2D.Collision.Shapes.b2CircleDef)
package Code.Box2D.Collision.Shapes {
import Code.Box2D.Common.Math.*;
public class b2CircleDef extends b2ShapeDef {
public var localPosition:b2Vec2;
public var radius:Number;
public function b2CircleDef(){
localPosition = new b2Vec2(0, 0);
super();
type = b2Shape.e_circleShape;
radius = 1;
}
}
}//package Code.Box2D.Collision.Shapes
Section 7
//b2CircleShape (Code.Box2D.Collision.Shapes.b2CircleShape)
package Code.Box2D.Collision.Shapes {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class b2CircleShape extends b2Shape {
public var m_radius:Number;
public var m_localPosition:b2Vec2;
public function b2CircleShape(_arg1:b2ShapeDef){
var _local2:b2CircleDef;
m_localPosition = new b2Vec2();
super(_arg1);
_local2 = (_arg1 as b2CircleDef);
m_type = e_circleShape;
m_localPosition.SetV(_local2.localPosition);
m_radius = _local2.radius;
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
_local3 = _arg1.R;
_local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y)));
_local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y)));
_local4 = (_arg2.x - _local4);
_local5 = (_arg2.y - _local5);
return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius)));
}
public function GetLocalPosition():b2Vec2{
return (m_localPosition);
}
override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
var _local6:b2Mat22;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local6 = _arg1.R;
_local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y)));
_local8 = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y)));
_local9 = (_arg4.p1.x - _local7);
_local10 = (_arg4.p1.y - _local8);
_local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius));
if (_local11 < 0){
return (false);
};
_local12 = (_arg4.p2.x - _arg4.p1.x);
_local13 = (_arg4.p2.y - _arg4.p1.y);
_local14 = ((_local9 * _local12) + (_local10 * _local13));
_local15 = ((_local12 * _local12) + (_local13 * _local13));
_local16 = ((_local14 * _local14) - (_local15 * _local11));
if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){
return (false);
};
_local17 = -((_local14 + Math.sqrt(_local16)));
if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){
_local17 = (_local17 / _local15);
_arg2[0] = _local17;
_arg3.x = (_local9 + (_local17 * _local12));
_arg3.y = (_local10 + (_local17 * _local13));
_arg3.Normalize();
return (true);
};
return (false);
}
override public function ComputeMass(_arg1:b2MassData):void{
_arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius);
_arg1.center.SetV(m_localPosition);
_arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y))));
}
override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local4 = _arg2.R;
_local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y)));
_local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y)));
_local4 = _arg3.R;
_local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y)));
_local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y)));
_arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius));
_arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius));
}
public function GetRadius():Number{
return (m_radius);
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:Number;
var _local3:Number;
_local2 = (m_localPosition.x - _arg1.x);
_local3 = (m_localPosition.y - _arg1.y);
_local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop);
}
override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
_local3 = _arg2.R;
_local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y)));
_local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y)));
_arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius));
_arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius));
}
}
}//package Code.Box2D.Collision.Shapes
Section 8
//b2FilterData (Code.Box2D.Collision.Shapes.b2FilterData)
package Code.Box2D.Collision.Shapes {
public class b2FilterData {
public var categoryBits:uint;// = 1
public var isGhost:Boolean;// = false
public var isCloud:Boolean;// = false
public var maskBits:uint;// = 0xFFFF
public var groupIndex:int;// = 0
public var isElevator:Boolean;// = false
public function b2FilterData(){
categoryBits = 1;
maskBits = 0xFFFF;
groupIndex = 0;
isCloud = false;
isElevator = false;
isGhost = false;
super();
}
public function Copy():b2FilterData{
var _local1:b2FilterData;
_local1 = new b2FilterData();
_local1.categoryBits = categoryBits;
_local1.maskBits = maskBits;
_local1.groupIndex = groupIndex;
_local1.isCloud = isCloud;
_local1.isElevator = isElevator;
_local1.isGhost = isGhost;
return (_local1);
}
}
}//package Code.Box2D.Collision.Shapes
Section 9
//b2MassData (Code.Box2D.Collision.Shapes.b2MassData)
package Code.Box2D.Collision.Shapes {
import Code.Box2D.Common.Math.*;
public class b2MassData {
public var mass:Number;// = 0
public var center:b2Vec2;
public var I:Number;// = 0
public function b2MassData(){
mass = 0;
center = new b2Vec2(0, 0);
I = 0;
super();
}
}
}//package Code.Box2D.Collision.Shapes
Section 10
//b2PolygonDef (Code.Box2D.Collision.Shapes.b2PolygonDef)
package Code.Box2D.Collision.Shapes {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2PolygonDef extends b2ShapeDef {
public var vertexCount:int;
public var vertices:Array;
private static var s_mat:b2Mat22 = new b2Mat22();
public function b2PolygonDef(){
var _local1:int;
vertices = new Array(b2Settings.b2_maxPolygonVertices);
super();
type = b2Shape.e_polygonShape;
vertexCount = 0;
_local1 = 0;
while (_local1 < b2Settings.b2_maxPolygonVertices) {
vertices[_local1] = new b2Vec2();
_local1++;
};
}
public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{
var _local5:b2Vec2;
var _local6:b2Mat22;
var _local7:int;
vertexCount = 4;
vertices[0].Set(-(_arg1), -(_arg2));
vertices[1].Set(_arg1, -(_arg2));
vertices[2].Set(_arg1, _arg2);
vertices[3].Set(-(_arg1), _arg2);
if (_arg3){
_local5 = _arg3;
_local6 = s_mat;
_local6.Set(_arg4);
_local7 = 0;
while (_local7 < vertexCount) {
_arg3 = vertices[_local7];
_arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y)));
_arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y)));
_arg3.x = _arg1;
_local7++;
};
};
}
public function SetAsBox(_arg1:Number, _arg2:Number):void{
vertexCount = 4;
vertices[0].Set(-(_arg1), -(_arg2));
vertices[1].Set(_arg1, -(_arg2));
vertices[2].Set(_arg1, _arg2);
vertices[3].Set(-(_arg1), _arg2);
}
}
}//package Code.Box2D.Collision.Shapes
Section 11
//b2PolygonShape (Code.Box2D.Collision.Shapes.b2PolygonShape)
package Code.Box2D.Collision.Shapes {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class b2PolygonShape extends b2Shape {
public var m_vertices:Array;
public var m_normals:Array;
private var s_supportVec:b2Vec2;
public var m_obb:b2OBB;
public var m_coreVertices:Array;
public var m_centroid:b2Vec2;
public var m_vertexCount:int;
private static var s_computeMat:b2Mat22 = new b2Mat22();
private static var s_sweptAABB1:b2AABB = new b2AABB();
private static var s_sweptAABB2:b2AABB = new b2AABB();
public function b2PolygonShape(_arg1:b2ShapeDef){
var _local2:b2PolygonDef;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
s_supportVec = new b2Vec2();
m_obb = new b2OBB();
m_vertices = new Array(b2Settings.b2_maxPolygonVertices);
m_normals = new Array(b2Settings.b2_maxPolygonVertices);
m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices);
super(_arg1);
m_type = e_polygonShape;
_local2 = (_arg1 as b2PolygonDef);
m_vertexCount = _local2.vertexCount;
_local4 = _local3;
_local5 = _local3;
_local3 = 0;
while (_local3 < m_vertexCount) {
m_vertices[_local3] = _local2.vertices[_local3].Copy();
_local3++;
};
_local3 = 0;
while (_local3 < m_vertexCount) {
_local4 = _local3;
_local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0;
_local6 = (m_vertices[_local5].x - m_vertices[_local4].x);
_local7 = (m_vertices[_local5].y - m_vertices[_local4].y);
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8));
_local3++;
};
m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount);
ComputeOBB(m_obb, m_vertices, m_vertexCount);
_local3 = 0;
while (_local3 < m_vertexCount) {
_local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1);
_local5 = _local3;
_local9 = m_normals[_local4].x;
_local10 = m_normals[_local4].y;
_local11 = m_normals[_local5].x;
_local12 = m_normals[_local5].y;
_local13 = (m_vertices[_local3].x - m_centroid.x);
_local14 = (m_vertices[_local3].y - m_centroid.y);
_local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop);
_local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop);
_local17 = (1 / ((_local9 * _local12) - (_local10 * _local11)));
m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y));
_local3++;
};
}
override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
var _local3:b2Vec2;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:int;
var _local10:Number;
_local4 = _arg1.R;
_local5 = (_arg2.x - _arg1.position.x);
_local6 = (_arg2.y - _arg1.position.y);
_local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y));
_local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y));
_local9 = 0;
while (_local9 < m_vertexCount) {
_local3 = m_vertices[_local9];
_local5 = (_local7 - _local3.x);
_local6 = (_local8 - _local3.y);
_local3 = m_normals[_local9];
_local10 = ((_local3.x * _local5) + (_local3.y * _local6));
if (_local10 > 0){
return (false);
};
_local9++;
};
return (true);
}
public function GetCoreVertices():Array{
return (m_coreVertices);
}
override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Mat22;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:int;
var _local19:int;
var _local20:Number;
var _local21:Number;
_local6 = 0;
_local7 = _arg5;
_local8 = (_arg4.p1.x - _arg1.position.x);
_local9 = (_arg4.p1.y - _arg1.position.y);
_local10 = _arg1.R;
_local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y));
_local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y));
_local8 = (_arg4.p2.x - _arg1.position.x);
_local9 = (_arg4.p2.y - _arg1.position.y);
_local10 = _arg1.R;
_local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y));
_local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y));
_local16 = (_local14 - _local12);
_local17 = (_local15 - _local13);
_local18 = -1;
_local19 = 0;
while (_local19 < m_vertexCount) {
_local11 = m_vertices[_local19];
_local8 = (_local11.x - _local12);
_local9 = (_local11.y - _local13);
_local11 = m_normals[_local19];
_local20 = ((_local11.x * _local8) + (_local11.y * _local9));
_local21 = ((_local11.x * _local16) + (_local11.y * _local17));
if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){
_local6 = (_local20 / _local21);
_local18 = _local19;
} else {
if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){
_local7 = (_local20 / _local21);
};
};
if (_local7 < _local6){
return (false);
};
_local19++;
};
if (_local18 >= 0){
_arg2[0] = _local6;
_local10 = _arg1.R;
_local11 = m_normals[_local18];
_arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
return (true);
};
return (false);
}
public function GetCentroid():b2Vec2{
return (m_centroid);
}
override public function ComputeMass(_arg1:b2MassData):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:int;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
_local2 = 0;
_local3 = 0;
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = 0;
_local8 = (1 / 3);
_local9 = 0;
while (_local9 < m_vertexCount) {
_local10 = m_vertices[_local9];
_local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0];
_local12 = (_local10.x - _local6);
_local13 = (_local10.y - _local7);
_local14 = (_local11.x - _local6);
_local15 = (_local11.y - _local7);
_local16 = ((_local12 * _local15) - (_local13 * _local14));
_local17 = (0.5 * _local16);
_local4 = (_local4 + _local17);
_local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x)));
_local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y)));
_local18 = _local6;
_local19 = _local7;
_local20 = _local12;
_local21 = _local13;
_local22 = _local14;
_local23 = _local15;
_local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18));
_local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19));
_local5 = (_local5 + (_local16 * (_local24 + _local25)));
_local9++;
};
_arg1.mass = (m_density * _local4);
_local2 = (_local2 * (1 / _local4));
_local3 = (_local3 * (1 / _local4));
_arg1.center.Set(_local2, _local3);
_arg1.I = (m_density * _local5);
}
public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{
var _local4:b2Vec2;
var _local5:b2Mat22;
var _local6:Number;
var _local7:Number;
var _local8:int;
var _local9:Number;
var _local10:int;
var _local11:Number;
_local5 = _arg1.R;
_local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y));
_local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y));
_local8 = 0;
_local4 = m_coreVertices[0];
_local9 = ((_local4.x * _local6) + (_local4.y * _local7));
_local10 = 1;
while (_local10 < m_vertexCount) {
_local4 = m_coreVertices[_local10];
_local11 = ((_local4.x * _local6) + (_local4.y * _local7));
if (_local11 > _local9){
_local8 = _local10;
_local9 = _local11;
};
_local10++;
};
_local5 = _arg1.R;
_local4 = m_coreVertices[_local8];
s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y)));
s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y)));
return (s_supportVec);
}
public function GetVertexCount():int{
return (m_vertexCount);
}
override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
var _local4:b2AABB;
var _local5:b2AABB;
_local4 = s_sweptAABB1;
_local5 = s_sweptAABB2;
ComputeAABB(_local4, _arg2);
ComputeAABB(_local5, _arg3);
_arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y);
_arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y);
}
public function GetVertices():Array{
return (m_vertices);
}
public function GetNormals():Array{
return (m_normals);
}
public function GetOBB():b2OBB{
return (m_obb);
}
public function GetFirstVertex(_arg1:b2XForm):b2Vec2{
return (b2Math.b2MulX(_arg1, m_coreVertices[0]));
}
public function Centroid(_arg1:b2XForm):b2Vec2{
return (b2Math.b2MulX(_arg1, m_centroid));
}
override public function UpdateSweepRadius(_arg1:b2Vec2):void{
var _local2:b2Vec2;
var _local3:int;
var _local4:Number;
var _local5:Number;
m_sweepRadius = 0;
_local3 = 0;
while (_local3 < m_vertexCount) {
_local2 = m_coreVertices[_local3];
_local4 = (_local2.x - _arg1.x);
_local5 = (_local2.y - _arg1.y);
_local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5)));
if (_local4 > m_sweepRadius){
m_sweepRadius = _local4;
};
_local3++;
};
}
override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:b2Mat22;
var _local6:b2Mat22;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local5 = s_computeMat;
_local3 = _arg2.R;
_local4 = m_obb.R.col1;
_local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local4 = m_obb.R.col2;
_local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
_local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
_local5.Abs();
_local6 = _local5;
_local4 = m_obb.extents;
_local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y));
_local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y));
_local3 = _arg2.R;
_local4 = m_obb.center;
_local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)));
_local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)));
_arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8));
_arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8));
}
public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{
var _local3:b2Vec2;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:int;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local3 = new b2Vec2();
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = (1 / 3);
_local8 = 0;
while (_local8 < _arg2) {
_local9 = _arg1[_local8];
_local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0];
_local11 = (_local9.x - _local5);
_local12 = (_local9.y - _local6);
_local13 = (_local10.x - _local5);
_local14 = (_local10.y - _local6);
_local15 = ((_local11 * _local14) - (_local12 * _local13));
_local16 = (0.5 * _local15);
_local4 = (_local4 + _local16);
_local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x)));
_local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y)));
_local8++;
};
_local3.x = (_local3.x * (1 / _local4));
_local3.y = (_local3.y * (1 / _local4));
return (_local3);
}
public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{
var _local4:int;
var _local5:Array;
var _local6:Number;
var _local7:b2Vec2;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:b2Mat22;
_local5 = new Array((b2Settings.b2_maxPolygonVertices + 1));
_local4 = 0;
while (_local4 < _arg3) {
_local5[_local4] = _arg2[_local4];
_local4++;
};
_local5[_arg3] = _local5[0];
_local6 = Number.MAX_VALUE;
_local4 = 1;
while (_local4 <= _arg3) {
_local7 = _local5[int((_local4 - 1))];
_local8 = (_local5[_local4].x - _local7.x);
_local9 = (_local5[_local4].y - _local7.y);
_local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
_local8 = (_local8 / _local10);
_local9 = (_local9 / _local10);
_local11 = -(_local9);
_local12 = _local8;
_local13 = Number.MAX_VALUE;
_local14 = Number.MAX_VALUE;
_local15 = -(Number.MAX_VALUE);
_local16 = -(Number.MAX_VALUE);
_local17 = 0;
while (_local17 < _arg3) {
_local19 = (_local5[_local17].x - _local7.x);
_local20 = (_local5[_local17].y - _local7.y);
_local21 = ((_local8 * _local19) + (_local9 * _local20));
_local22 = ((_local11 * _local19) + (_local12 * _local20));
if (_local21 < _local13){
_local13 = _local21;
};
if (_local22 < _local14){
_local14 = _local22;
};
if (_local21 > _local15){
_local15 = _local21;
};
if (_local22 > _local16){
_local16 = _local22;
};
_local17++;
};
_local18 = ((_local15 - _local13) * (_local16 - _local14));
if (_local18 < (0.95 * _local6)){
_local6 = _local18;
_arg1.R.col1.x = _local8;
_arg1.R.col1.y = _local9;
_arg1.R.col2.x = _local11;
_arg1.R.col2.y = _local12;
_local23 = (0.5 * (_local13 + _local15));
_local24 = (0.5 * (_local14 + _local16));
_local25 = _arg1.R;
_arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24)));
_arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24)));
_arg1.extents.x = (0.5 * (_local15 - _local13));
_arg1.extents.y = (0.5 * (_local16 - _local14));
};
_local4++;
};
}
}
}//package Code.Box2D.Collision.Shapes
Section 12
//b2Shape (Code.Box2D.Collision.Shapes.b2Shape)
package Code.Box2D.Collision.Shapes {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
public class b2Shape {
public var m_type:int;
public var m_sweepRadius:Number;
public var m_density:Number;
public var m_filter:b2FilterData;
public var m_friction:Number;
public var m_next:b2Shape;
public var m_restitution:Number;
public var m_userData;
public var m_isSensor:Boolean;
public var m_proxyId:uint;
public var m_body:b2Body;
public static const e_polygonShape:int = 1;
public static const e_unknownShape:int = -1;
public static const e_circleShape:int = 0;
public static const e_shapeTypeCount:int = 2;
private static var s_resetAABB:b2AABB = new b2AABB();
private static var s_syncAABB:b2AABB = new b2AABB();
private static var s_proxyAABB:b2AABB = new b2AABB();
public function b2Shape(_arg1:b2ShapeDef){
m_userData = _arg1.userData;
m_friction = _arg1.friction;
m_restitution = _arg1.restitution;
m_density = _arg1.density;
m_body = null;
m_sweepRadius = 0;
m_next = null;
m_proxyId = b2Pair.b2_nullProxy;
m_filter = _arg1.filter.Copy();
m_isSensor = _arg1.isSensor;
}
public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{
return (false);
}
public function GetSweepRadius():Number{
return (m_sweepRadius);
}
public function GetNext():b2Shape{
return (m_next);
}
public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{
}
public function GetType():int{
return (m_type);
}
public function GetRestitution():Number{
return (m_restitution);
}
public function GetFriction():Number{
return (m_friction);
}
public function GetFilterData():b2FilterData{
return (m_filter.Copy());
}
public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{
return (false);
}
public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
var _local3:b2AABB;
var _local4:Boolean;
if (m_proxyId == b2Pair.b2_nullProxy){
return;
};
_arg1.DestroyProxy(m_proxyId);
_local3 = s_resetAABB;
ComputeAABB(_local3, _arg2);
_local4 = _arg1.InRange(_local3);
if (_local4){
m_proxyId = _arg1.CreateProxy(_local3, this);
} else {
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function SetFilterData(_arg1:b2FilterData):void{
m_filter = _arg1.Copy();
}
public function GetUserData(){
return (m_userData);
}
public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{
var _local4:b2AABB;
if (m_proxyId == b2Pair.b2_nullProxy){
return (false);
};
_local4 = s_syncAABB;
ComputeSweptAABB(_local4, _arg2, _arg3);
if (_arg1.InRange(_local4)){
_arg1.MoveProxy(m_proxyId, _local4);
return (true);
};
return (false);
}
public function ComputeMass(_arg1:b2MassData):void{
}
public function IsSensor():Boolean{
return (m_isSensor);
}
public function DestroyProxy(_arg1:b2BroadPhase):void{
if (m_proxyId != b2Pair.b2_nullProxy){
_arg1.DestroyProxy(m_proxyId);
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function UpdateSweepRadius(_arg1:b2Vec2):void{
}
public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{
}
public function GetBody():b2Body{
return (m_body);
}
public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{
var _local3:b2AABB;
var _local4:Boolean;
_local3 = s_proxyAABB;
ComputeAABB(_local3, _arg2);
_local4 = _arg1.InRange(_local3);
if (_local4){
m_proxyId = _arg1.CreateProxy(_local3, this);
} else {
m_proxyId = b2Pair.b2_nullProxy;
};
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public static function Destroy(_arg1:b2Shape, _arg2):void{
}
public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{
switch (_arg1.type){
case e_circleShape:
return (new b2CircleShape(_arg1));
case e_polygonShape:
return (new b2PolygonShape(_arg1));
default:
return (null);
};
}
}
}//package Code.Box2D.Collision.Shapes
Section 13
//b2ShapeDef (Code.Box2D.Collision.Shapes.b2ShapeDef)
package Code.Box2D.Collision.Shapes {
public class b2ShapeDef {
public var isSensor:Boolean;// = false
public var density:Number;// = 0
public var type:int;// = -1
public var restitution:Number;// = 0
public var userData;// = null
public var filter:b2FilterData;
public var friction:Number;// = 0.2
public function b2ShapeDef(){
type = b2Shape.e_unknownShape;
userData = null;
friction = 0.2;
restitution = 0;
density = 0;
isSensor = false;
filter = new b2FilterData();
super();
}
}
}//package Code.Box2D.Collision.Shapes
Section 14
//b2AABB (Code.Box2D.Collision.b2AABB)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
public class b2AABB {
public var upperBound:b2Vec2;
public var lowerBound:b2Vec2;
public function b2AABB(){
lowerBound = new b2Vec2();
upperBound = new b2Vec2();
super();
}
public function IsValid():Boolean{
var _local1:Number;
var _local2:Number;
var _local3:Boolean;
_local1 = (upperBound.x - lowerBound.x);
_local2 = (upperBound.y - lowerBound.y);
_local3 = (((_local1 >= 0)) && ((_local2 >= 0)));
_local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid()));
return (_local3);
}
}
}//package Code.Box2D.Collision
Section 15
//b2Bound (Code.Box2D.Collision.b2Bound)
package Code.Box2D.Collision {
public class b2Bound {
public var proxyId:uint;
public var stabbingCount:uint;
public var value:uint;
public function Swap(_arg1:b2Bound):void{
var _local2:uint;
var _local3:uint;
var _local4:uint;
_local2 = value;
_local3 = proxyId;
_local4 = stabbingCount;
value = _arg1.value;
proxyId = _arg1.proxyId;
stabbingCount = _arg1.stabbingCount;
_arg1.value = _local2;
_arg1.proxyId = _local3;
_arg1.stabbingCount = _local4;
}
public function IsLower():Boolean{
return (((value & 1) == 0));
}
public function IsUpper():Boolean{
return (((value & 1) == 1));
}
}
}//package Code.Box2D.Collision
Section 16
//b2BoundValues (Code.Box2D.Collision.b2BoundValues)
package Code.Box2D.Collision {
public class b2BoundValues {
public var lowerValues:Array;
public var upperValues:Array;
public function b2BoundValues(){
lowerValues = [0, 0];
upperValues = [0, 0];
super();
}
}
}//package Code.Box2D.Collision
Section 17
//b2BroadPhase (Code.Box2D.Collision.b2BroadPhase)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2BroadPhase {
public var m_quantizationFactor:b2Vec2;
public var m_worldAABB:b2AABB;
public var m_bounds:Array;
public var m_freeProxy:uint;
public var m_proxyCount:int;
public var m_proxyPool:Array;
public var m_queryResultCount:int;
public var m_pairManager:b2PairManager;
public var m_timeStamp:uint;
public var m_queryResults:Array;
public static const b2_nullEdge:uint = b2Settings.USHRT_MAX;
public static const b2_invalid:uint = b2Settings.USHRT_MAX;
public static var s_validate:Boolean = false;
public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:b2Proxy;
var _local7:int;
m_pairManager = new b2PairManager();
m_proxyPool = new Array(b2Settings.b2_maxPairs);
m_bounds = new Array((2 * b2Settings.b2_maxProxies));
m_queryResults = new Array(b2Settings.b2_maxProxies);
m_quantizationFactor = new b2Vec2();
super();
m_pairManager.Initialize(this, _arg2);
m_worldAABB = _arg1;
m_proxyCount = 0;
_local3 = 0;
while (_local3 < b2Settings.b2_maxProxies) {
m_queryResults[_local3] = 0;
_local3++;
};
m_bounds = new Array(2);
_local3 = 0;
while (_local3 < 2) {
m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies));
_local7 = 0;
while (_local7 < (2 * b2Settings.b2_maxProxies)) {
m_bounds[_local3][_local7] = new b2Bound();
_local7++;
};
_local3++;
};
_local4 = (_arg1.upperBound.x - _arg1.lowerBound.x);
_local5 = (_arg1.upperBound.y - _arg1.lowerBound.y);
m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4);
m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5);
_local3 = 0;
while (_local3 < (b2Settings.b2_maxProxies - 1)) {
_local6 = new b2Proxy();
m_proxyPool[_local3] = _local6;
_local6.SetNext((_local3 + 1));
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
_local3++;
};
_local6 = new b2Proxy();
m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6;
_local6.SetNext(b2Pair.b2_nullProxy);
_local6.timeStamp = 0;
_local6.overlapCount = b2_invalid;
_local6.userData = null;
m_freeProxy = 0;
m_timeStamp = 1;
m_queryResultCount = 0;
}
public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{
var _local4:Array;
var _local5:Array;
var _local6:uint;
var _local7:uint;
var _local8:Array;
var _local9:Array;
var _local10:int;
var _local11:int;
var _local12:b2Proxy;
_local4 = new Array();
_local5 = new Array();
ComputeBounds(_local4, _local5, _arg1);
_local8 = [_local6];
_local9 = [_local7];
Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0);
Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1);
_local10 = 0;
_local11 = 0;
while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) {
_local12 = m_proxyPool[m_queryResults[_local11]];
_arg2[_local11] = _local12.userData;
_local11++;
_local10++;
};
m_queryResultCount = 0;
IncrementTimeStamp();
return (_local10);
}
public function Commit():void{
m_pairManager.Commit();
}
public function GetProxy(_arg1:int):b2Proxy{
var _local2:b2Proxy;
_local2 = m_proxyPool[_arg1];
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){
return (null);
};
return (_local2);
}
private function IncrementTimeStamp():void{
var _local1:uint;
if (m_timeStamp == b2Settings.USHRT_MAX){
_local1 = 0;
while (_local1 < b2Settings.b2_maxProxies) {
(m_proxyPool[_local1] as b2Proxy).timeStamp = 0;
_local1++;
};
m_timeStamp = 1;
} else {
m_timeStamp++;
};
}
private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{
var _local8:uint;
var _local9:uint;
var _local10:b2Bound;
var _local11:uint;
var _local12:int;
var _local13:int;
var _local14:b2Proxy;
_local8 = BinarySearch(_arg5, _arg6, _arg3);
_local9 = BinarySearch(_arg5, _arg6, _arg4);
_local11 = _local8;
while (_local11 < _local9) {
_local10 = _arg5[_local11];
if (_local10.IsLower()){
IncrementOverlapCount(_local10.proxyId);
};
_local11++;
};
if (_local8 > 0){
_local12 = (_local8 - 1);
_local10 = _arg5[_local12];
_local13 = _local10.stabbingCount;
while (_local13) {
_local10 = _arg5[_local12];
if (_local10.IsLower()){
_local14 = m_proxyPool[_local10.proxyId];
if (_local8 <= _local14.upperBounds[_arg7]){
IncrementOverlapCount(_local10.proxyId);
_local13--;
};
};
_local12--;
};
};
_arg1[0] = _local8;
_arg2[0] = _local9;
}
private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{
var _local3:int;
var _local4:Array;
var _local5:b2Bound;
var _local6:b2Bound;
_local3 = 0;
while (_local3 < 2) {
_local4 = m_bounds[_local3];
_local5 = _local4[_arg1.lowerBounds[_local3]];
_local6 = _local4[_arg2.upperBounds[_local3]];
if (_local5.value > _local6.value){
return (false);
};
_local5 = _local4[_arg1.upperBounds[_local3]];
_local6 = _local4[_arg2.lowerBounds[_local3]];
if (_local5.value < _local6.value){
return (false);
};
_local3++;
};
return (true);
}
private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local4 = _arg3.lowerBound.x;
_local5 = _arg3.lowerBound.y;
_local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x);
_local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y);
_local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x);
_local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y);
_local6 = _arg3.upperBound.x;
_local7 = _arg3.upperBound.y;
_local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x);
_local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y);
_local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x);
_local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y);
_arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1));
_arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1);
_arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1));
_arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1);
}
public function CreateProxy(_arg1:b2AABB, _arg2):uint{
var _local3:uint;
var _local4:b2Proxy;
var _local5:uint;
var _local6:uint;
var _local7:Array;
var _local8:Array;
var _local9:int;
var _local10:int;
var _local11:Array;
var _local12:uint;
var _local13:uint;
var _local14:Array;
var _local15:Array;
var _local16:Array;
var _local17:int;
var _local18:int;
var _local19:b2Bound;
var _local20:b2Bound;
var _local21:b2Bound;
var _local22:int;
var _local23:b2Proxy;
_local5 = m_freeProxy;
_local4 = m_proxyPool[_local5];
m_freeProxy = _local4.GetNext();
_local4.overlapCount = 0;
_local4.userData = _arg2;
_local6 = (2 * m_proxyCount);
_local7 = new Array();
_local8 = new Array();
ComputeBounds(_local7, _local8, _arg1);
_local9 = 0;
while (_local9 < 2) {
_local11 = m_bounds[_local9];
_local14 = [_local12];
_local15 = [_local13];
Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9);
_local12 = _local14[0];
_local13 = _local15[0];
_local16 = new Array();
_local18 = (_local6 - _local13);
_local17 = 0;
while (_local17 < _local18) {
_local16[_local17] = new b2Bound();
_local19 = _local16[_local17];
_local20 = _local11[int((_local13 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local18 = _local16.length;
_local22 = (_local13 + 2);
_local17 = 0;
while (_local17 < _local18) {
_local20 = _local16[_local17];
_local19 = _local11[int((_local22 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local16 = new Array();
_local18 = (_local13 - _local12);
_local17 = 0;
while (_local17 < _local18) {
_local16[_local17] = new b2Bound();
_local19 = _local16[_local17];
_local20 = _local11[int((_local12 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local18 = _local16.length;
_local22 = (_local12 + 1);
_local17 = 0;
while (_local17 < _local18) {
_local20 = _local16[_local17];
_local19 = _local11[int((_local22 + _local17))];
_local19.value = _local20.value;
_local19.proxyId = _local20.proxyId;
_local19.stabbingCount = _local20.stabbingCount;
_local17++;
};
_local13++;
_local19 = _local11[_local12];
_local20 = _local11[_local13];
_local19.value = _local7[_local9];
_local19.proxyId = _local5;
_local20.value = _local8[_local9];
_local20.proxyId = _local5;
_local21 = _local11[int((_local12 - 1))];
_local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount;
_local21 = _local11[int((_local13 - 1))];
_local20.stabbingCount = _local21.stabbingCount;
_local3 = _local12;
while (_local3 < _local13) {
_local21 = _local11[_local3];
_local21.stabbingCount++;
_local3++;
};
_local3 = _local12;
while (_local3 < (_local6 + 2)) {
_local19 = _local11[_local3];
_local23 = m_proxyPool[_local19.proxyId];
if (_local19.IsLower()){
_local23.lowerBounds[_local9] = _local3;
} else {
_local23.upperBounds[_local9] = _local3;
};
_local3++;
};
_local9++;
};
m_proxyCount++;
_local10 = 0;
while (_local10 < m_queryResultCount) {
m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]);
_local10++;
};
m_pairManager.Commit();
m_queryResultCount = 0;
IncrementTimeStamp();
return (_local5);
}
public function DestroyProxy(_arg1:uint):void{
var _local2:b2Bound;
var _local3:b2Bound;
var _local4:b2Proxy;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:Array;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:Array;
var _local14:int;
var _local15:int;
var _local16:int;
var _local17:uint;
var _local18:int;
var _local19:b2Proxy;
_local4 = m_proxyPool[_arg1];
_local5 = (2 * m_proxyCount);
_local6 = 0;
while (_local6 < 2) {
_local8 = m_bounds[_local6];
_local9 = _local4.lowerBounds[_local6];
_local10 = _local4.upperBounds[_local6];
_local2 = _local8[_local9];
_local11 = _local2.value;
_local3 = _local8[_local10];
_local12 = _local3.value;
_local13 = new Array();
_local15 = ((_local10 - _local9) - 1);
_local14 = 0;
while (_local14 < _local15) {
_local13[_local14] = new b2Bound();
_local2 = _local13[_local14];
_local3 = _local8[int(((_local9 + 1) + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local15 = _local13.length;
_local16 = _local9;
_local14 = 0;
while (_local14 < _local15) {
_local3 = _local13[_local14];
_local2 = _local8[int((_local16 + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local13 = new Array();
_local15 = ((_local5 - _local10) - 1);
_local14 = 0;
while (_local14 < _local15) {
_local13[_local14] = new b2Bound();
_local2 = _local13[_local14];
_local3 = _local8[int(((_local10 + 1) + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local15 = _local13.length;
_local16 = (_local10 - 1);
_local14 = 0;
while (_local14 < _local15) {
_local3 = _local13[_local14];
_local2 = _local8[int((_local16 + _local14))];
_local2.value = _local3.value;
_local2.proxyId = _local3.proxyId;
_local2.stabbingCount = _local3.stabbingCount;
_local14++;
};
_local15 = (_local5 - 2);
_local17 = _local9;
while (_local17 < _local15) {
_local2 = _local8[_local17];
_local19 = m_proxyPool[_local2.proxyId];
if (_local2.IsLower()){
_local19.lowerBounds[_local6] = _local17;
} else {
_local19.upperBounds[_local6] = _local17;
};
_local17++;
};
_local15 = (_local10 - 1);
_local18 = _local9;
while (_local18 < _local15) {
_local2 = _local8[_local18];
_local2.stabbingCount--;
_local18++;
};
Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6);
_local6++;
};
_local7 = 0;
while (_local7 < m_queryResultCount) {
m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]);
_local7++;
};
m_pairManager.Commit();
m_queryResultCount = 0;
IncrementTimeStamp();
_local4.userData = null;
_local4.overlapCount = b2_invalid;
_local4.lowerBounds[0] = b2_invalid;
_local4.lowerBounds[1] = b2_invalid;
_local4.upperBounds[0] = b2_invalid;
_local4.upperBounds[1] = b2_invalid;
_local4.SetNext(m_freeProxy);
m_freeProxy = _arg1;
m_proxyCount--;
}
public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{
var _local3:int;
var _local4:Array;
var _local5:b2Bound;
_local3 = 0;
while (_local3 < 2) {
_local4 = m_bounds[_local3];
_local5 = _local4[_arg2.upperBounds[_local3]];
if (_arg1.lowerValues[_local3] > _local5.value){
return (false);
};
_local5 = _local4[_arg2.lowerBounds[_local3]];
if (_arg1.upperValues[_local3] < _local5.value){
return (false);
};
_local3++;
};
return (true);
}
public function Validate():void{
var _local1:b2Pair;
var _local2:b2Proxy;
var _local3:b2Proxy;
var _local4:Boolean;
var _local5:int;
var _local6:b2Bound;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:b2Bound;
_local5 = 0;
while (_local5 < 2) {
_local6 = m_bounds[_local5];
_local7 = (2 * m_proxyCount);
_local8 = 0;
_local9 = 0;
while (_local9 < _local7) {
_local10 = _local6[_local9];
if (_local10.IsLower() == true){
_local8++;
} else {
_local8--;
};
_local9++;
};
_local5++;
};
}
private function IncrementOverlapCount(_arg1:uint):void{
var _local2:b2Proxy;
_local2 = m_proxyPool[_arg1];
if (_local2.timeStamp < m_timeStamp){
_local2.timeStamp = m_timeStamp;
_local2.overlapCount = 1;
} else {
_local2.overlapCount = 2;
m_queryResults[m_queryResultCount] = _arg1;
m_queryResultCount++;
};
}
public function InRange(_arg1:b2AABB):Boolean{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = _arg1.lowerBound.x;
_local3 = _arg1.lowerBound.y;
_local2 = (_local2 - m_worldAABB.upperBound.x);
_local3 = (_local3 - m_worldAABB.upperBound.y);
_local4 = m_worldAABB.lowerBound.x;
_local5 = m_worldAABB.lowerBound.y;
_local4 = (_local4 - _arg1.upperBound.x);
_local5 = (_local5 - _arg1.upperBound.y);
_local2 = b2Math.b2Max(_local2, _local4);
_local3 = b2Math.b2Max(_local3, _local5);
return ((b2Math.b2Max(_local2, _local3) < 0));
}
public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{
var _local3:Array;
var _local4:int;
var _local5:uint;
var _local6:uint;
var _local7:b2Bound;
var _local8:b2Bound;
var _local9:b2Bound;
var _local10:uint;
var _local11:b2Proxy;
var _local12:uint;
var _local13:b2Proxy;
var _local14:b2BoundValues;
var _local15:b2BoundValues;
var _local16:Array;
var _local17:uint;
var _local18:uint;
var _local19:uint;
var _local20:uint;
var _local21:int;
var _local22:int;
var _local23:uint;
var _local24:b2Proxy;
if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){
return;
};
if (_arg2.IsValid() == false){
return;
};
_local12 = (2 * m_proxyCount);
_local13 = m_proxyPool[_arg1];
_local14 = new b2BoundValues();
ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2);
_local15 = new b2BoundValues();
_local5 = 0;
while (_local5 < 2) {
_local7 = m_bounds[_local5][_local13.lowerBounds[_local5]];
_local15.lowerValues[_local5] = _local7.value;
_local7 = m_bounds[_local5][_local13.upperBounds[_local5]];
_local15.upperValues[_local5] = _local7.value;
_local5++;
};
_local5 = 0;
while (_local5 < 2) {
_local16 = m_bounds[_local5];
_local17 = _local13.lowerBounds[_local5];
_local18 = _local13.upperBounds[_local5];
_local19 = _local14.lowerValues[_local5];
_local20 = _local14.upperValues[_local5];
_local7 = _local16[_local17];
_local21 = (_local19 - _local7.value);
_local7.value = _local19;
_local7 = _local16[_local18];
_local22 = (_local20 - _local7.value);
_local7.value = _local20;
if (_local21 < 0){
_local6 = _local17;
while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) {
_local7 = _local16[_local6];
_local8 = _local16[int((_local6 - 1))];
_local23 = _local8.proxyId;
_local24 = m_proxyPool[_local8.proxyId];
_local8.stabbingCount++;
if (_local8.IsUpper() == true){
if (TestOverlap(_local14, _local24)){
m_pairManager.AddBufferedPair(_arg1, _local23);
};
_local3 = _local24.upperBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount++;
} else {
_local3 = _local24.lowerBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount--;
};
_local3 = _local13.lowerBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.Swap(_local8);
_local6--;
};
};
if (_local22 > 0){
_local6 = _local18;
while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) {
_local7 = _local16[_local6];
_local9 = _local16[int((_local6 + 1))];
_local10 = _local9.proxyId;
_local11 = m_proxyPool[_local10];
_local9.stabbingCount++;
if (_local9.IsLower() == true){
if (TestOverlap(_local14, _local11)){
m_pairManager.AddBufferedPair(_arg1, _local10);
};
_local3 = _local11.lowerBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount++;
} else {
_local3 = _local11.upperBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount--;
};
_local3 = _local13.upperBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.Swap(_local9);
_local6++;
};
};
if (_local21 > 0){
_local6 = _local17;
while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) {
_local7 = _local16[_local6];
_local9 = _local16[int((_local6 + 1))];
_local10 = _local9.proxyId;
_local11 = m_proxyPool[_local10];
_local9.stabbingCount--;
if (_local9.IsUpper()){
if (TestOverlap(_local15, _local11)){
m_pairManager.RemoveBufferedPair(_arg1, _local10);
};
_local3 = _local11.upperBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount--;
} else {
_local3 = _local11.lowerBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.stabbingCount++;
};
_local3 = _local13.lowerBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.Swap(_local9);
_local6++;
};
};
if (_local22 < 0){
_local6 = _local18;
while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) {
_local7 = _local16[_local6];
_local8 = _local16[int((_local6 - 1))];
_local23 = _local8.proxyId;
_local24 = m_proxyPool[_local23];
_local8.stabbingCount--;
if (_local8.IsLower() == true){
if (TestOverlap(_local15, _local24)){
m_pairManager.RemoveBufferedPair(_arg1, _local23);
};
_local3 = _local24.lowerBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount--;
} else {
_local3 = _local24.upperBounds;
_local4 = _local3[_local5];
_local4++;
_local3[_local5] = _local4;
_local7.stabbingCount++;
};
_local3 = _local13.upperBounds;
_local4 = _local3[_local5];
_local4--;
_local3[_local5] = _local4;
_local7.Swap(_local8);
_local6--;
};
};
_local5++;
};
}
public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:b2Bound;
_local4 = 0;
_local5 = (_arg2 - 1);
while (_local4 <= _local5) {
_local6 = ((_local4 + _local5) / 2);
_local7 = _arg1[_local6];
if (_local7.value > _arg3){
_local5 = (_local6 - 1);
} else {
if (_local7.value < _arg3){
_local4 = (_local6 + 1);
} else {
return (uint(_local6));
};
};
};
return (uint(_local4));
}
}
}//package Code.Box2D.Collision
Section 18
//b2BufferedPair (Code.Box2D.Collision.b2BufferedPair)
package Code.Box2D.Collision {
public class b2BufferedPair {
public var proxyId1:uint;
public var proxyId2:uint;
}
}//package Code.Box2D.Collision
Section 19
//b2Collision (Code.Box2D.Collision.b2Collision)
package Code.Box2D.Collision {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2Collision {
public static const b2_nullFeature:uint = 0xFF;
private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2();
public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local6:int;
var _local7:Array;
var _local8:Array;
var _local9:int;
var _local10:Array;
var _local11:b2Mat22;
var _local12:b2Vec2;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:int;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
_local6 = _arg1.m_vertexCount;
_local7 = _arg1.m_vertices;
_local8 = _arg1.m_normals;
_local9 = _arg4.m_vertexCount;
_local10 = _arg4.m_vertices;
_local11 = _arg2.R;
_local12 = _local8[_arg3];
_local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y));
_local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y));
_local11 = _arg5.R;
_local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14));
_local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14));
_local17 = 0;
_local18 = Number.MAX_VALUE;
_local19 = 0;
while (_local19 < _local9) {
_local12 = _local10[_local19];
_local25 = ((_local12.x * _local15) + (_local12.y * _local16));
if (_local25 < _local18){
_local18 = _local25;
_local17 = _local19;
};
_local19++;
};
_local12 = _local7[_arg3];
_local11 = _arg2.R;
_local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)));
_local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)));
_local12 = _local10[_local17];
_local11 = _arg5.R;
_local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)));
_local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)));
_local22 = (_local22 - _local20);
_local23 = (_local23 - _local21);
_local24 = ((_local22 * _local13) + (_local23 * _local14));
return (_local24);
}
public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local3 = _arg2.lowerBound;
_local4 = _arg1.upperBound;
_local5 = (_local3.x - _local4.x);
_local6 = (_local3.y - _local4.y);
_local3 = _arg1.lowerBound;
_local4 = _arg2.upperBound;
_local7 = (_local3.x - _local4.x);
_local8 = (_local3.y - _local4.y);
if ((((_local5 > 0)) || ((_local6 > 0)))){
return (false);
};
if ((((_local7 > 0)) || ((_local8 > 0)))){
return (false);
};
return (true);
}
public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{
var _local7:int;
var _local8:Array;
var _local9:int;
var _local10:Array;
var _local11:Array;
var _local12:b2Mat22;
var _local13:b2Vec2;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Number;
var _local19:int;
var _local20:ClipVertex;
var _local21:int;
var _local22:int;
var _local23:Number;
_local7 = _arg2.m_vertexCount;
_local8 = _arg2.m_normals;
_local9 = _arg5.m_vertexCount;
_local10 = _arg5.m_vertices;
_local11 = _arg5.m_normals;
_local12 = _arg3.R;
_local13 = _local8[_arg4];
_local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y));
_local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y));
_local12 = _arg6.R;
_local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15));
_local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15));
_local14 = _local16;
_local17 = 0;
_local18 = Number.MAX_VALUE;
_local19 = 0;
while (_local19 < _local9) {
_local13 = _local11[_local19];
_local23 = ((_local14 * _local13.x) + (_local15 * _local13.y));
if (_local23 < _local18){
_local18 = _local23;
_local17 = _local19;
};
_local19++;
};
_local21 = _local17;
_local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0;
_local20 = _arg1[0];
_local13 = _local10[_local21];
_local12 = _arg6.R;
_local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)));
_local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)));
_local20.id.features.referenceEdge = _arg4;
_local20.id.features.incidentEdge = _local21;
_local20.id.features.incidentVertex = 0;
_local20 = _arg1[1];
_local13 = _local10[_local22];
_local12 = _arg6.R;
_local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)));
_local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)));
_local20.id.features.referenceEdge = _arg4;
_local20.id.features.incidentEdge = _local22;
_local20.id.features.incidentVertex = 1;
}
public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{
var _local6:ClipVertex;
var _local7:int;
var _local8:Array;
var _local9:Number;
var _local10:int;
var _local11:Array;
var _local12:Number;
var _local13:b2PolygonShape;
var _local14:b2PolygonShape;
var _local15:b2XForm;
var _local16:b2XForm;
var _local17:int;
var _local18:uint;
var _local19:Number;
var _local20:Number;
var _local21:Array;
var _local22:int;
var _local23:Array;
var _local24:b2Vec2;
var _local25:b2Vec2;
var _local26:b2Vec2;
var _local27:b2Vec2;
var _local28:b2Vec2;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Array;
var _local33:Array;
var _local34:int;
var _local35:int;
var _local36:int;
var _local37:b2Vec2;
var _local38:Number;
var _local39:b2ManifoldPoint;
_arg1.pointCount = 0;
_local7 = 0;
_local8 = [_local7];
_local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5);
_local7 = _local8[0];
if (_local9 > 0){
return;
};
_local10 = 0;
_local11 = [_local10];
_local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3);
_local10 = _local11[0];
if (_local12 > 0){
return;
};
_local15 = new b2XForm();
_local16 = new b2XForm();
_local19 = 0.98;
_local20 = 0.001;
if (_local12 > ((_local19 * _local9) + _local20)){
_local13 = _arg4;
_local14 = _arg2;
_local15.Set(_arg5);
_local16.Set(_arg3);
_local17 = _local10;
_local18 = 1;
} else {
_local13 = _arg2;
_local14 = _arg4;
_local15.Set(_arg3);
_local16.Set(_arg5);
_local17 = _local7;
_local18 = 0;
};
_local21 = [new ClipVertex(), new ClipVertex()];
FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16);
_local22 = _local13.m_vertexCount;
_local23 = _local13.m_vertices;
_local24 = _local23[_local17];
_local25 = _local24.Copy();
if ((_local17 + 1) < _local22){
_local24 = _local23[int((_local17 + 1))];
_local37 = _local24.Copy();
} else {
_local24 = _local23[0];
_local37 = _local24.Copy();
};
_local26 = b2Math.SubtractVV(_local37, _local25);
_local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25));
_local27.Normalize();
_local28 = b2Math.b2CrossVF(_local27, 1);
_local25 = b2Math.b2MulX(_local15, _local25);
_local37 = b2Math.b2MulX(_local15, _local37);
_local29 = b2Math.b2Dot(_local28, _local25);
_local30 = -(b2Math.b2Dot(_local27, _local25));
_local31 = b2Math.b2Dot(_local27, _local37);
_local32 = [new ClipVertex(), new ClipVertex()];
_local33 = [new ClipVertex(), new ClipVertex()];
_local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30);
if (_local34 < 2){
return;
};
_local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31);
if (_local34 < 2){
return;
};
_arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy();
_local35 = 0;
_local36 = 0;
while (_local36 < b2Settings.b2_maxManifoldPoints) {
_local6 = _local33[_local36];
_local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29);
if (_local38 <= 0){
_local39 = _arg1.points[_local35];
_local39.separation = _local38;
_local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v);
_local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v);
_local39.id.key = _local6.id._key;
_local39.id.features.flip = _local18;
_local35++;
};
_local36++;
};
_arg1.pointCount = _local35;
}
public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{
var _local6:int;
var _local7:Array;
var _local8:b2Vec2;
var _local9:b2Mat22;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:int;
var _local15:Number;
var _local16:int;
var _local17:Number;
var _local18:int;
var _local19:Number;
var _local20:int;
var _local21:Number;
var _local22:int;
var _local23:Number;
var _local24:int;
var _local25:Number;
_local6 = _arg2.m_vertexCount;
_local7 = _arg2.m_normals;
_local9 = _arg5.R;
_local8 = _arg4.m_centroid;
_local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)));
_local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)));
_local9 = _arg3.R;
_local8 = _arg2.m_centroid;
_local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))));
_local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))));
_local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y));
_local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y));
_local14 = 0;
_local15 = -(Number.MAX_VALUE);
_local16 = 0;
while (_local16 < _local6) {
_local8 = _local7[_local16];
_local25 = ((_local8.x * _local12) + (_local8.y * _local13));
if (_local25 > _local15){
_local15 = _local25;
_local14 = _local16;
};
_local16++;
};
_local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5);
if (_local17 > 0){
return (_local17);
};
_local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1);
_local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5);
if (_local19 > 0){
return (_local19);
};
_local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0;
_local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5);
if (_local21 > 0){
return (_local21);
};
if ((((_local19 > _local17)) && ((_local19 > _local21)))){
_local24 = -1;
_local22 = _local18;
_local23 = _local19;
} else {
if (_local21 > _local17){
_local24 = 1;
_local22 = _local20;
_local23 = _local21;
} else {
_arg1[0] = _local14;
return (_local17);
};
};
while (true) {
if (_local24 == -1){
_local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1);
} else {
_local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0;
};
_local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5);
if (_local17 > 0){
return (_local17);
};
if (_local17 > _local23){
_local22 = _local14;
_local23 = _local17;
} else {
break;
};
};
_arg1[0] = _local22;
return (_local23);
}
public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{
var _local5:ClipVertex;
var _local6:int;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:b2Vec2;
var _local13:ClipVertex;
_local6 = 0;
_local5 = _arg2[0];
_local7 = _local5.v;
_local5 = _arg2[1];
_local8 = _local5.v;
_local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4);
_local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4);
if (_local9 <= 0){
var _temp1 = _local6;
_local6 = (_local6 + 1);
var _local14 = _temp1;
_arg1[_local14] = _arg2[0];
};
if (_local10 <= 0){
var _temp2 = _local6;
_local6 = (_local6 + 1);
_local14 = _temp2;
_arg1[_local14] = _arg2[1];
};
if ((_local9 * _local10) < 0){
_local11 = (_local9 / (_local9 - _local10));
_local5 = _arg1[_local6];
_local12 = _local5.v;
_local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x)));
_local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y)));
_local5 = _arg1[_local6];
if (_local9 > 0){
_local13 = _arg2[0];
_local5.id = _local13.id;
} else {
_local13 = _arg2[1];
_local5.id = _local13.id;
};
_local6++;
};
return (_local6);
}
public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{
var _local6:b2Mat22;
var _local7:b2Vec2;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:b2ManifoldPoint;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
_arg1.pointCount = 0;
_local6 = _arg3.R;
_local7 = _arg2.m_localPosition;
_local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
_local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local6 = _arg5.R;
_local7 = _arg4.m_localPosition;
_local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)));
_local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)));
_local12 = (_local10 - _local8);
_local13 = (_local11 - _local9);
_local14 = ((_local12 * _local12) + (_local13 * _local13));
_local15 = _arg2.m_radius;
_local16 = _arg4.m_radius;
_local17 = (_local15 + _local16);
if (_local14 > (_local17 * _local17)){
return;
};
if (_local14 < Number.MIN_VALUE){
_local18 = -(_local17);
_arg1.normal.Set(0, 1);
} else {
_local24 = Math.sqrt(_local14);
_local18 = (_local24 - _local17);
_local25 = (1 / _local24);
_arg1.normal.x = (_local25 * _local12);
_arg1.normal.y = (_local25 * _local13);
};
_arg1.pointCount = 1;
_local19 = _arg1.points[0];
_local19.id.key = 0;
_local19.separation = _local18;
_local8 = (_local8 + (_local15 * _arg1.normal.x));
_local9 = (_local9 + (_local15 * _arg1.normal.y));
_local10 = (_local10 - (_local16 * _arg1.normal.x));
_local11 = (_local11 - (_local16 * _arg1.normal.y));
_local20 = (0.5 * (_local8 + _local10));
_local21 = (0.5 * (_local9 + _local11));
_local22 = (_local20 - _arg3.position.x);
_local23 = (_local21 - _arg3.position.y);
_local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y));
_local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y));
_local22 = (_local20 - _arg5.position.x);
_local23 = (_local21 - _arg5.position.y);
_local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y));
_local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y));
}
public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{
var _local6:b2ManifoldPoint;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:b2Vec2;
var _local12:b2Mat22;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:int;
var _local19:Number;
var _local20:Number;
var _local21:int;
var _local22:Array;
var _local23:Array;
var _local24:int;
var _local25:int;
var _local26:int;
var _local27:b2Vec2;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
_arg1.pointCount = 0;
_local12 = _arg5.R;
_local11 = _arg4.m_localPosition;
_local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)));
_local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)));
_local7 = (_local13 - _arg3.position.x);
_local8 = (_local14 - _arg3.position.y);
_local12 = _arg3.R;
_local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local18 = 0;
_local19 = -(Number.MAX_VALUE);
_local20 = _arg4.m_radius;
_local21 = _arg2.m_vertexCount;
_local22 = _arg2.m_vertices;
_local23 = _arg2.m_normals;
_local24 = 0;
while (_local24 < _local21) {
_local11 = _local22[_local24];
_local7 = (_local15 - _local11.x);
_local8 = (_local16 - _local11.y);
_local11 = _local23[_local24];
_local34 = ((_local11.x * _local7) + (_local11.y * _local8));
if (_local34 > _local20){
return;
};
if (_local34 > _local19){
_local19 = _local34;
_local18 = _local24;
};
_local24++;
};
if (_local19 < Number.MIN_VALUE){
_arg1.pointCount = 1;
_local11 = _local23[_local18];
_local12 = _arg3.R;
_arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y));
_arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y));
_local6 = _arg1.points[0];
_local6.id.features.incidentEdge = _local18;
_local6.id.features.incidentVertex = b2_nullFeature;
_local6.id.features.referenceEdge = 0;
_local6.id.features.flip = 0;
_local9 = (_local13 - (_local20 * _arg1.normal.x));
_local10 = (_local14 - (_local20 * _arg1.normal.y));
_local7 = (_local9 - _arg3.position.x);
_local8 = (_local10 - _arg3.position.y);
_local12 = _arg3.R;
_local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local7 = (_local9 - _arg5.position.x);
_local8 = (_local10 - _arg5.position.y);
_local12 = _arg5.R;
_local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local6.separation = (_local19 - _local20);
return;
};
_local25 = _local18;
_local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0;
_local11 = _local22[_local25];
_local27 = _local22[_local26];
_local28 = (_local27.x - _local11.x);
_local29 = (_local27.y - _local11.y);
_local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29)));
_local28 = (_local28 / _local30);
_local29 = (_local29 / _local30);
_local7 = (_local15 - _local11.x);
_local8 = (_local16 - _local11.y);
_local31 = ((_local7 * _local28) + (_local8 * _local29));
_local6 = _arg1.points[0];
if (_local31 <= 0){
_local32 = _local11.x;
_local33 = _local11.y;
_local6.id.features.incidentEdge = b2_nullFeature;
_local6.id.features.incidentVertex = _local25;
} else {
if (_local31 >= _local30){
_local32 = _local27.x;
_local33 = _local27.y;
_local6.id.features.incidentEdge = b2_nullFeature;
_local6.id.features.incidentVertex = _local26;
} else {
_local32 = ((_local28 * _local31) + _local11.x);
_local33 = ((_local29 * _local31) + _local11.y);
_local6.id.features.incidentEdge = _local18;
_local6.id.features.incidentVertex = b2_nullFeature;
};
};
_local7 = (_local15 - _local32);
_local8 = (_local16 - _local33);
_local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local7 = (_local7 / _local17);
_local8 = (_local8 / _local17);
if (_local17 > _local20){
return;
};
_arg1.pointCount = 1;
_local12 = _arg3.R;
_arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8));
_arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8));
_local9 = (_local13 - (_local20 * _arg1.normal.x));
_local10 = (_local14 - (_local20 * _arg1.normal.y));
_local7 = (_local9 - _arg3.position.x);
_local8 = (_local10 - _arg3.position.y);
_local12 = _arg3.R;
_local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local7 = (_local9 - _arg5.position.x);
_local8 = (_local10 - _arg5.position.y);
_local12 = _arg5.R;
_local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y));
_local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y));
_local6.separation = (_local17 - _local20);
_local6.id.features.referenceEdge = 0;
_local6.id.features.flip = 0;
}
}
}//package Code.Box2D.Collision
Section 20
//b2ContactID (Code.Box2D.Collision.b2ContactID)
package Code.Box2D.Collision {
public class b2ContactID {
public var _key:uint;
public var features:Features;
public function b2ContactID(){
features = new Features();
super();
features._m_id = this;
}
public function Set(_arg1:b2ContactID):void{
key = _arg1._key;
}
public function Copy():b2ContactID{
var _local1:b2ContactID;
_local1 = new b2ContactID();
_local1.key = key;
return (_local1);
}
public function get key():uint{
return (_key);
}
public function set key(_arg1:uint):void{
_key = _arg1;
features._referenceEdge = (_key & 0xFF);
features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF);
features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF);
features._flip = (((_key & 4278190080) >> 24) & 0xFF);
}
}
}//package Code.Box2D.Collision
Section 21
//b2ContactPoint (Code.Box2D.Collision.b2ContactPoint)
package Code.Box2D.Collision {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
public class b2ContactPoint {
public var separation:Number;
public var normal:b2Vec2;
public var position:b2Vec2;
public var restitution:Number;
public var shape1:b2Shape;
public var shape2:b2Shape;
public var id:b2ContactID;
public var friction:Number;
public var velocity:b2Vec2;
public function b2ContactPoint(){
position = new b2Vec2();
velocity = new b2Vec2();
normal = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Code.Box2D.Collision
Section 22
//b2Distance (Code.Box2D.Collision.b2Distance)
package Code.Box2D.Collision {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2Distance {
private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()];
private static var gPoint:b2Point = new b2Point();
public static var g_GJK_Iterations:int = 0;
public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{
var _local4:Number;
var _local5:int;
var _local6:b2Vec2;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local4 = (100 * Number.MIN_VALUE);
_local5 = 0;
while (_local5 < _arg3) {
_local6 = _arg2[_local5];
_local7 = Math.abs((_arg1.x - _local6.x));
_local8 = Math.abs((_arg1.y - _local6.y));
_local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x));
_local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y));
if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){
return (true);
};
_local5++;
};
return (false);
}
public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{
var _local7:b2Vec2;
var _local8:Array;
var _local9:Array;
var _local10:Array;
var _local11:int;
var _local12:Number;
var _local13:int;
var _local14:int;
var _local15:Number;
var _local16:Number;
var _local17:b2Vec2;
var _local18:b2Vec2;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:int;
_local8 = s_p1s;
_local9 = s_p2s;
_local10 = s_points;
_local11 = 0;
_arg1.SetV(_arg3.GetFirstVertex(_arg4));
_arg2.SetV(_arg5.GetFirstVertex(_arg6));
_local12 = 0;
_local13 = 20;
_local14 = 0;
while (_local14 < _local13) {
_local15 = (_arg2.x - _arg1.x);
_local16 = (_arg2.y - _arg1.y);
_local17 = _arg3.Support(_arg4, _local15, _local16);
_local18 = _arg5.Support(_arg6, -(_local15), -(_local16));
_local12 = ((_local15 * _local15) + (_local16 * _local16));
_local19 = (_local18.x - _local17.x);
_local20 = (_local18.y - _local17.y);
_local21 = ((_local15 * _local19) + (_local16 * _local20));
if ((_local12 - _local21) <= (0.01 * _local12)){
if (_local11 == 0){
_arg1.SetV(_local17);
_arg2.SetV(_local18);
};
g_GJK_Iterations = _local14;
return (Math.sqrt(_local12));
};
switch (_local11){
case 0:
_local7 = _local8[0];
_local7.SetV(_local17);
_local7 = _local9[0];
_local7.SetV(_local18);
_local7 = _local10[0];
_local7.x = _local19;
_local7.y = _local20;
_arg1.SetV(_local8[0]);
_arg2.SetV(_local9[0]);
_local11++;
break;
case 1:
_local7 = _local8[1];
_local7.SetV(_local17);
_local7 = _local9[1];
_local7.SetV(_local18);
_local7 = _local10[1];
_local7.x = _local19;
_local7.y = _local20;
_local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10);
break;
case 2:
_local7 = _local8[2];
_local7.SetV(_local17);
_local7 = _local9[2];
_local7.SetV(_local18);
_local7 = _local10[2];
_local7.x = _local19;
_local7.y = _local20;
_local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10);
break;
};
if (_local11 == 3){
g_GJK_Iterations = _local14;
return (0);
};
_local22 = -(Number.MAX_VALUE);
_local23 = 0;
while (_local23 < _local11) {
_local7 = _local10[_local23];
_local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y)));
_local23++;
};
if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){
g_GJK_Iterations = _local14;
_local15 = (_arg2.x - _arg1.x);
_local16 = (_arg2.y - _arg1.y);
_local12 = ((_local15 * _local15) + (_local16 * _local16));
return (Math.sqrt(_local12));
};
_local14++;
};
g_GJK_Iterations = _local13;
return (Math.sqrt(_local12));
}
public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{
var _local7:b2Mat22;
var _local8:b2Vec2;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local7 = _arg4.R;
_local8 = _arg3.m_localPosition;
_local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local7 = _arg6.R;
_local8 = _arg5.m_localPosition;
_local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local13 = (_local11 - _local9);
_local14 = (_local12 - _local10);
_local15 = ((_local13 * _local13) + (_local14 * _local14));
_local16 = (_arg3.m_radius - b2Settings.b2_toiSlop);
_local17 = (_arg5.m_radius - b2Settings.b2_toiSlop);
_local18 = (_local16 + _local17);
if (_local15 > (_local18 * _local18)){
_local19 = Math.sqrt(_local15);
_local13 = (_local13 / _local19);
_local14 = (_local14 / _local19);
_local20 = (_local19 - _local18);
_arg1.x = (_local9 + (_local16 * _local13));
_arg1.y = (_local10 + (_local16 * _local14));
_arg2.x = (_local11 - (_local17 * _local13));
_arg2.y = (_local12 - (_local17 * _local14));
return (_local20);
};
if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){
_local19 = Math.sqrt(_local15);
_local13 = (_local13 / _local19);
_local14 = (_local14 / _local19);
_arg1.x = (_local9 + (_local16 * _local13));
_arg1.y = (_local10 + (_local16 * _local14));
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
return (0);
};
_arg1.x = _local9;
_arg1.y = _local10;
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
return (0);
}
public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:b2Vec2;
var _local13:b2Vec2;
var _local14:b2Vec2;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
_local6 = _arg5[0];
_local7 = _arg5[1];
_local8 = _arg5[2];
_local9 = _arg3[0];
_local10 = _arg3[1];
_local11 = _arg3[2];
_local12 = _arg4[0];
_local13 = _arg4[1];
_local14 = _arg4[2];
_local15 = _local6.x;
_local16 = _local6.y;
_local17 = _local7.x;
_local18 = _local7.y;
_local19 = _local8.x;
_local20 = _local8.y;
_local21 = (_local17 - _local15);
_local22 = (_local18 - _local16);
_local23 = (_local19 - _local15);
_local24 = (_local20 - _local16);
_local25 = (_local19 - _local17);
_local26 = (_local20 - _local18);
_local27 = -(((_local15 * _local21) + (_local16 * _local22)));
_local28 = ((_local17 * _local21) + (_local18 * _local22));
_local29 = -(((_local15 * _local23) + (_local16 * _local24)));
_local30 = ((_local19 * _local23) + (_local20 * _local24));
_local31 = -(((_local17 * _local25) + (_local18 * _local26)));
_local32 = ((_local19 * _local25) + (_local20 * _local26));
if ((((_local30 <= 0)) && ((_local32 <= 0)))){
_arg1.SetV(_local11);
_arg2.SetV(_local14);
_local9.SetV(_local11);
_local12.SetV(_local14);
_local6.SetV(_local8);
return (1);
};
_local33 = ((_local21 * _local24) - (_local22 * _local23));
_local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17)));
_local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19)));
if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){
_local35 = (_local31 / (_local31 + _local32));
_arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x)));
_arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y)));
_arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x)));
_arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y)));
_local9.SetV(_local11);
_local12.SetV(_local14);
_local6.SetV(_local8);
return (2);
};
_local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15)));
if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){
_local35 = (_local29 / (_local29 + _local30));
_arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x)));
_arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y)));
_arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x)));
_arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y)));
_local10.SetV(_local11);
_local13.SetV(_local14);
_local7.SetV(_local8);
return (2);
};
_local38 = ((_local36 + _local37) + _local34);
_local38 = (1 / _local38);
_local39 = (_local36 * _local38);
_local40 = (_local37 * _local38);
_local41 = ((1 - _local39) - _local40);
_arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x));
_arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y));
_arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x));
_arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y));
return (3);
}
public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{
var _local7:b2Mat22;
var _local8:b2Vec2;
var _local9:b2Point;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local9 = gPoint;
_local8 = _arg5.m_localPosition;
_local7 = _arg6.R;
_local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)));
_local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)));
_local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity);
_local11 = (_arg5.m_radius - b2Settings.b2_toiSlop);
if (_local10 > _local11){
_local10 = (_local10 - _local11);
_local12 = (_arg2.x - _arg1.x);
_local13 = (_arg2.y - _arg1.y);
_local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13)));
_local12 = (_local12 / _local14);
_local13 = (_local13 / _local14);
_arg2.x = (_arg2.x - (_local11 * _local12));
_arg2.y = (_arg2.y - (_local11 * _local13));
} else {
_local10 = 0;
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
};
return (_local10);
}
public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{
var _local7:int;
var _local8:int;
_local7 = _arg3.m_type;
_local8 = _arg5.m_type;
if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){
return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6));
};
if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){
return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6));
};
if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){
return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4));
};
if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){
return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6));
};
return (0);
}
public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local6 = _arg5[0];
_local7 = _arg5[1];
_local8 = _arg3[0];
_local9 = _arg3[1];
_local10 = _arg4[0];
_local11 = _arg4[1];
_local12 = -(_local7.x);
_local13 = -(_local7.y);
_local14 = (_local6.x - _local7.x);
_local15 = (_local6.y - _local7.y);
_local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15)));
_local14 = (_local14 / _local16);
_local15 = (_local15 / _local16);
_local17 = ((_local12 * _local14) + (_local13 * _local15));
if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){
_arg1.SetV(_local9);
_arg2.SetV(_local11);
_local8.SetV(_local9);
_local10.SetV(_local11);
_local6.SetV(_local7);
return (1);
};
_local17 = (_local17 / _local16);
_arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x)));
_arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y)));
_arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x)));
_arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y)));
return (2);
}
}
}//package Code.Box2D.Collision
Section 23
//b2Manifold (Code.Box2D.Collision.b2Manifold)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2Manifold {
public var points:Array;
public var pointCount:int;// = 0
public var normal:b2Vec2;
public function b2Manifold(){
var _local1:int;
pointCount = 0;
super();
points = new Array(b2Settings.b2_maxManifoldPoints);
_local1 = 0;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
points[_local1] = new b2ManifoldPoint();
_local1++;
};
normal = new b2Vec2();
}
public function Set(_arg1:b2Manifold):void{
var _local2:int;
pointCount = _arg1.pointCount;
_local2 = 0;
while (_local2 < b2Settings.b2_maxManifoldPoints) {
(points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]);
_local2++;
};
normal.SetV(_arg1.normal);
}
public function Reset():void{
var _local1:int;
_local1 = 0;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
(points[_local1] as b2ManifoldPoint).Reset();
_local1++;
};
normal.SetZero();
pointCount = 0;
}
}
}//package Code.Box2D.Collision
Section 24
//b2ManifoldPoint (Code.Box2D.Collision.b2ManifoldPoint)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
public class b2ManifoldPoint {
public var separation:Number;
public var localPoint2:b2Vec2;
public var normalImpulse:Number;
public var tangentImpulse:Number;
public var localPoint1:b2Vec2;
public var id:b2ContactID;
public function b2ManifoldPoint(){
localPoint1 = new b2Vec2();
localPoint2 = new b2Vec2();
id = new b2ContactID();
super();
}
public function Set(_arg1:b2ManifoldPoint):void{
localPoint1.SetV(_arg1.localPoint1);
localPoint2.SetV(_arg1.localPoint2);
separation = _arg1.separation;
normalImpulse = _arg1.normalImpulse;
tangentImpulse = _arg1.tangentImpulse;
id.key = _arg1.id.key;
}
public function Reset():void{
localPoint1.SetZero();
localPoint2.SetZero();
separation = 0;
normalImpulse = 0;
tangentImpulse = 0;
id.key = 0;
}
}
}//package Code.Box2D.Collision
Section 25
//b2OBB (Code.Box2D.Collision.b2OBB)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
public class b2OBB {
public var R:b2Mat22;
public var center:b2Vec2;
public var extents:b2Vec2;
public function b2OBB(){
R = new b2Mat22();
center = new b2Vec2();
extents = new b2Vec2();
super();
}
}
}//package Code.Box2D.Collision
Section 26
//b2Pair (Code.Box2D.Collision.b2Pair)
package Code.Box2D.Collision {
public class b2Pair {
public var userData;// = null
public var proxyId1:uint;
public var proxyId2:uint;
public var status:uint;
public var next:uint;
public static var e_pairFinal:uint = 4;
public static var b2_tableMask:int = (b2_tableCapacity - 1);
public static var e_pairRemoved:uint = 2;
public static var b2_nullPair:uint = 0xFFFF;
public static var e_pairBuffered:uint = 1;
public static var b2_nullProxy:uint = 0xFFFF;
public static var b2_tableCapacity:int = 16384;
public function b2Pair(){
userData = null;
super();
}
public function SetBuffered():void{
status = (status | e_pairBuffered);
}
public function IsBuffered():Boolean{
return (((status & e_pairBuffered) == e_pairBuffered));
}
public function IsFinal():Boolean{
return (((status & e_pairFinal) == e_pairFinal));
}
public function ClearRemoved():void{
status = (status & ~(e_pairRemoved));
}
public function SetFinal():void{
status = (status | e_pairFinal);
}
public function IsRemoved():Boolean{
return (((status & e_pairRemoved) == e_pairRemoved));
}
public function ClearBuffered():void{
status = (status & ~(e_pairBuffered));
}
public function SetRemoved():void{
status = (status | e_pairRemoved);
}
}
}//package Code.Box2D.Collision
Section 27
//b2PairCallback (Code.Box2D.Collision.b2PairCallback)
package Code.Box2D.Collision {
public class b2PairCallback {
public function PairRemoved(_arg1, _arg2, _arg3):void{
}
public function PairAdded(_arg1, _arg2){
return (null);
}
}
}//package Code.Box2D.Collision
Section 28
//b2PairManager (Code.Box2D.Collision.b2PairManager)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2PairManager {
public var m_pairCount:int;
public var m_pairBuffer:Array;
public var m_callback:b2PairCallback;
public var m_pairs:Array;
public var m_pairBufferCount:int;
public var m_hashTable:Array;
public var m_broadPhase:b2BroadPhase;
public var m_freePair:uint;
public function b2PairManager(){
var _local1:uint;
super();
m_hashTable = new Array(b2Pair.b2_tableCapacity);
_local1 = 0;
while (_local1 < b2Pair.b2_tableCapacity) {
m_hashTable[_local1] = b2Pair.b2_nullPair;
_local1++;
};
m_pairs = new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairs[_local1] = new b2Pair();
_local1++;
};
m_pairBuffer = new Array(b2Settings.b2_maxPairs);
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairBuffer[_local1] = new b2BufferedPair();
_local1++;
};
_local1 = 0;
while (_local1 < b2Settings.b2_maxPairs) {
m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy;
m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy;
m_pairs[_local1].userData = null;
m_pairs[_local1].status = 0;
m_pairs[_local1].next = (_local1 + 1);
_local1++;
};
m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair;
m_pairCount = 0;
m_pairBufferCount = 0;
}
private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{
var _local4:b2Pair;
var _local5:uint;
_local5 = m_hashTable[_arg3];
_local4 = m_pairs[_local5];
while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) {
_local5 = _local4.next;
_local4 = m_pairs[_local5];
};
if (_local5 == b2Pair.b2_nullPair){
return (null);
};
return (_local4);
}
private function Find(_arg1:uint, _arg2:uint):b2Pair{
var _local3:uint;
var _local4:uint;
if (_arg1 > _arg2){
_local4 = _arg1;
_arg1 = _arg2;
_arg2 = _local4;
};
_local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
return (FindHash(_arg1, _arg2, _local3));
}
private function ValidateBuffer():void{
}
public function Commit():void{
var _local1:b2BufferedPair;
var _local2:int;
var _local3:int;
var _local4:Array;
var _local5:b2Pair;
var _local6:b2Proxy;
var _local7:b2Proxy;
_local3 = 0;
_local4 = m_broadPhase.m_proxyPool;
_local2 = 0;
while (_local2 < m_pairBufferCount) {
_local1 = m_pairBuffer[_local2];
_local5 = Find(_local1.proxyId1, _local1.proxyId2);
_local5.ClearBuffered();
_local6 = _local4[_local5.proxyId1];
_local7 = _local4[_local5.proxyId2];
if (_local5.IsRemoved()){
if (_local5.IsFinal() == true){
m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData);
};
_local1 = m_pairBuffer[_local3];
_local1.proxyId1 = _local5.proxyId1;
_local1.proxyId2 = _local5.proxyId2;
_local3++;
} else {
if (_local5.IsFinal() == false){
_local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData);
_local5.SetFinal();
};
};
_local2++;
};
_local2 = 0;
while (_local2 < _local3) {
_local1 = m_pairBuffer[_local2];
RemovePair(_local1.proxyId1, _local1.proxyId2);
_local2++;
};
m_pairBufferCount = 0;
if (b2BroadPhase.s_validate){
ValidateTable();
};
}
public function RemoveBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2BufferedPair;
var _local4:b2Pair;
_local4 = Find(_arg1, _arg2);
if (_local4 == null){
return;
};
if (_local4.IsBuffered() == false){
_local4.SetBuffered();
_local3 = m_pairBuffer[m_pairBufferCount];
_local3.proxyId1 = _local4.proxyId1;
_local3.proxyId2 = _local4.proxyId2;
m_pairBufferCount++;
};
_local4.SetRemoved();
if (b2BroadPhase.s_validate){
ValidateBuffer();
};
}
private function RemovePair(_arg1:uint, _arg2:uint){
var _local3:b2Pair;
var _local4:uint;
var _local5:uint;
var _local6:b2Pair;
var _local7:uint;
var _local8:uint;
var _local9:*;
if (_arg1 > _arg2){
_local7 = _arg1;
_arg1 = _arg2;
_arg2 = _local7;
};
_local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
_local5 = m_hashTable[_local4];
_local6 = null;
while (_local5 != b2Pair.b2_nullPair) {
if (Equals(m_pairs[_local5], _arg1, _arg2)){
_local8 = _local5;
_local3 = m_pairs[_local5];
if (_local6){
_local6.next = _local3.next;
} else {
m_hashTable[_local4] = _local3.next;
};
_local3 = m_pairs[_local8];
_local9 = _local3.userData;
_local3.next = m_freePair;
_local3.proxyId1 = b2Pair.b2_nullProxy;
_local3.proxyId2 = b2Pair.b2_nullProxy;
_local3.userData = null;
_local3.status = 0;
m_freePair = _local8;
m_pairCount--;
return (_local9);
} else {
_local6 = m_pairs[_local5];
_local5 = _local6.next;
};
};
return (null);
}
public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{
m_broadPhase = _arg1;
m_callback = _arg2;
}
public function AddBufferedPair(_arg1:int, _arg2:int):void{
var _local3:b2BufferedPair;
var _local4:b2Pair;
_local4 = AddPair(_arg1, _arg2);
if (_local4.IsBuffered() == false){
_local4.SetBuffered();
_local3 = m_pairBuffer[m_pairBufferCount];
_local3.proxyId1 = _local4.proxyId1;
_local3.proxyId2 = _local4.proxyId2;
m_pairBufferCount++;
};
_local4.ClearRemoved();
if (b2BroadPhase.s_validate){
ValidateBuffer();
};
}
private function AddPair(_arg1:uint, _arg2:uint):b2Pair{
var _local3:uint;
var _local4:b2Pair;
var _local5:uint;
var _local6:uint;
if (_arg1 > _arg2){
_local6 = _arg1;
_arg1 = _arg2;
_arg2 = _local6;
};
_local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask);
_local4 = FindHash(_arg1, _arg2, _local3);
if (_local4 != null){
return (_local4);
};
_local5 = m_freePair;
_local4 = m_pairs[_local5];
m_freePair = _local4.next;
_local4.proxyId1 = _arg1;
_local4.proxyId2 = _arg2;
_local4.status = 0;
_local4.userData = null;
_local4.next = m_hashTable[_local3];
m_hashTable[_local3] = _local5;
m_pairCount++;
return (_local4);
}
private function ValidateTable():void{
}
public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{
return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2))));
}
public static function Hash(_arg1:uint, _arg2:uint):uint{
var _local3:uint;
_local3 = (((_arg2 << 16) & 4294901760) | _arg1);
_local3 = (~(_local3) + ((_local3 << 15) & 4294934528));
_local3 = (_local3 ^ ((_local3 >> 12) & 1048575));
_local3 = (_local3 + ((_local3 << 2) & 4294967292));
_local3 = (_local3 ^ ((_local3 >> 4) & 268435455));
_local3 = (_local3 * 2057);
_local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF));
return (_local3);
}
public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{
return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3))));
}
}
}//package Code.Box2D.Collision
Section 29
//b2Point (Code.Box2D.Collision.b2Point)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
public class b2Point {
public var p:b2Vec2;
public function b2Point(){
p = new b2Vec2();
super();
}
public function GetFirstVertex(_arg1:b2XForm):b2Vec2{
return (p);
}
public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{
return (p);
}
}
}//package Code.Box2D.Collision
Section 30
//b2Proxy (Code.Box2D.Collision.b2Proxy)
package Code.Box2D.Collision {
public class b2Proxy {
public var overlapCount:uint;
public var lowerBounds:Array;
public var upperBounds:Array;
public var userData;// = null
public var timeStamp:uint;
public function b2Proxy(){
lowerBounds = [uint(0), uint(0)];
upperBounds = [uint(0), uint(0)];
userData = null;
super();
}
public function GetNext():uint{
return (lowerBounds[0]);
}
public function IsValid():Boolean{
return (!((overlapCount == b2BroadPhase.b2_invalid)));
}
public function SetNext(_arg1:uint):void{
lowerBounds[0] = (_arg1 & 0xFFFF);
}
}
}//package Code.Box2D.Collision
Section 31
//b2Segment (Code.Box2D.Collision.b2Segment)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
public class b2Segment {
public var p1:b2Vec2;
public var p2:b2Vec2;
public function b2Segment(){
p1 = new b2Vec2();
p2 = new b2Vec2();
super();
}
public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{
var _local5:b2Vec2;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
_local5 = _arg3.p1;
_local6 = (_arg3.p2.x - _local5.x);
_local7 = (_arg3.p2.y - _local5.y);
_local8 = (p2.x - p1.x);
_local9 = (p2.y - p1.y);
_local10 = _local9;
_local11 = -(_local8);
_local12 = (100 * Number.MIN_VALUE);
_local13 = -(((_local6 * _local10) + (_local7 * _local11)));
if (_local13 > _local12){
_local14 = (_local5.x - p1.x);
_local15 = (_local5.y - p1.y);
_local16 = ((_local14 * _local10) + (_local15 * _local11));
if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){
_local17 = ((-(_local6) * _local15) + (_local7 * _local14));
if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){
_local16 = (_local16 / _local13);
_local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
_local10 = (_local10 / _local18);
_local11 = (_local11 / _local18);
_arg1[0] = _local16;
_arg2.Set(_local10, _local11);
return (true);
};
};
};
return (false);
}
}
}//package Code.Box2D.Collision
Section 32
//b2TimeOfImpact (Code.Box2D.Collision.b2TimeOfImpact)
package Code.Box2D.Collision {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Common.*;
public class b2TimeOfImpact {
public static var s_xf1:b2XForm = new b2XForm();
public static var s_xf2:b2XForm = new b2XForm();
public static var s_p1:b2Vec2 = new b2Vec2();
public static var s_p2:b2Vec2 = new b2Vec2();
public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:b2Vec2;
var _local18:b2Vec2;
var _local19:int;
var _local20:int;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:b2XForm;
var _local27:b2XForm;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
_local7 = _arg1.m_sweepRadius;
_local8 = _arg3.m_sweepRadius;
_local9 = _arg2.t0;
_local10 = (_arg2.c.x - _arg2.c0.x);
_local11 = (_arg2.c.y - _arg2.c0.y);
_local12 = (_arg4.c.x - _arg4.c0.x);
_local13 = (_arg4.c.y - _arg4.c0.y);
_local14 = (_arg2.a - _arg2.a0);
_local15 = (_arg4.a - _arg4.a0);
_local16 = 0;
_local17 = s_p1;
_local18 = s_p2;
_local19 = 20;
_local20 = 0;
_local21 = 0;
_local22 = 0;
_local23 = 0;
_local24 = 0;
while (true) {
_local25 = (((1 - _local16) * _local9) + _local16);
_local26 = s_xf1;
_local27 = s_xf2;
_arg2.GetXForm(_local26, _local25);
_arg4.GetXForm(_local27, _local25);
_local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27);
if (_local20 == 0){
if (_local23 > (2 * b2Settings.b2_toiSlop)){
_local24 = (1.5 * b2Settings.b2_toiSlop);
} else {
_local5 = (0.05 * b2Settings.b2_toiSlop);
_local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop));
_local24 = ((_local5 > _local6)) ? _local5 : _local6;
};
};
if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){
break;
};
_local21 = (_local18.x - _local17.x);
_local22 = (_local18.y - _local17.y);
_local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22)));
_local21 = (_local21 / _local28);
_local22 = (_local22 / _local28);
_local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8));
if (_local29 == 0){
_local16 = 1;
break;
};
_local30 = ((_local23 - _local24) / _local29);
_local31 = (_local16 + _local30);
if ((((_local31 < 0)) || ((1 < _local31)))){
_local16 = 1;
break;
};
if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){
break;
};
_local16 = _local31;
_local20++;
};
return (_local16);
}
}
}//package Code.Box2D.Collision
Section 33
//ClipVertex (Code.Box2D.Collision.ClipVertex)
package Code.Box2D.Collision {
import Code.Box2D.Common.Math.*;
public class ClipVertex {
public var v:b2Vec2;
public var id:b2ContactID;
public function ClipVertex(){
v = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Code.Box2D.Collision
Section 34
//Features (Code.Box2D.Collision.Features)
package Code.Box2D.Collision {
public class Features {
public var _referenceEdge:int;
public var _incidentEdge:int;
public var _flip:int;
public var _incidentVertex:int;
public var _m_id:b2ContactID;
public function get referenceEdge():int{
return (_referenceEdge);
}
public function set incidentVertex(_arg1:int):void{
_incidentVertex = _arg1;
_m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000));
}
public function get flip():int{
return (_flip);
}
public function get incidentEdge():int{
return (_incidentEdge);
}
public function set referenceEdge(_arg1:int):void{
_referenceEdge = _arg1;
_m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF));
}
public function set flip(_arg1:int):void{
_flip = _arg1;
_m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080));
}
public function get incidentVertex():int{
return (_incidentVertex);
}
public function set incidentEdge(_arg1:int):void{
_incidentEdge = _arg1;
_m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00));
}
}
}//package Code.Box2D.Collision
Section 35
//b2Mat22 (Code.Box2D.Common.Math.b2Mat22)
package Code.Box2D.Common.Math {
public class b2Mat22 {
public var col1:b2Vec2;
public var col2:b2Vec2;
public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){
var _local4:Number;
var _local5:Number;
col1 = new b2Vec2();
col2 = new b2Vec2();
super();
if (((!((_arg2 == null))) && (!((_arg3 == null))))){
col1.SetV(_arg2);
col2.SetV(_arg3);
} else {
_local4 = Math.cos(_arg1);
_local5 = Math.sin(_arg1);
col1.x = _local4;
col2.x = -(_local5);
col1.y = _local5;
col2.y = _local4;
};
}
public function SetIdentity():void{
col1.x = 1;
col2.x = 0;
col1.y = 0;
col2.y = 1;
}
public function Set(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_local2 = Math.cos(_arg1);
_local3 = Math.sin(_arg1);
col1.x = _local2;
col2.x = -(_local3);
col1.y = _local3;
col2.y = _local2;
}
public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{
col1.SetV(_arg1);
col2.SetV(_arg2);
}
public function SetZero():void{
col1.x = 0;
col2.x = 0;
col1.y = 0;
col2.y = 0;
}
public function SetM(_arg1:b2Mat22):void{
col1.SetV(_arg1.col1);
col2.SetV(_arg1.col2);
}
public function AddM(_arg1:b2Mat22):void{
col1.x = (col1.x + _arg1.col1.x);
col1.y = (col1.y + _arg1.col1.y);
col2.x = (col2.x + _arg1.col2.x);
col2.y = (col2.y + _arg1.col2.y);
}
public function Abs():void{
col1.Abs();
col2.Abs();
}
public function Copy():b2Mat22{
return (new b2Mat22(0, col1, col2));
}
public function Invert(_arg1:b2Mat22):b2Mat22{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = col1.x;
_local3 = col2.x;
_local4 = col1.y;
_local5 = col2.y;
_local6 = ((_local2 * _local5) - (_local3 * _local4));
_local6 = (1 / _local6);
_arg1.col1.x = (_local6 * _local5);
_arg1.col2.x = (-(_local6) * _local3);
_arg1.col1.y = (-(_local6) * _local4);
_arg1.col2.y = (_local6 * _local2);
return (_arg1);
}
public function GetAngle():Number{
return (Math.atan2(col1.y, col1.x));
}
public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local4 = col1.x;
_local5 = col2.x;
_local6 = col1.y;
_local7 = col2.y;
_local8 = ((_local4 * _local7) - (_local5 * _local6));
_local8 = (1 / _local8);
_arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3)));
_arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2)));
return (_arg1);
}
}
}//package Code.Box2D.Common.Math
Section 36
//b2Math (Code.Box2D.Common.Math.b2Math)
package Code.Box2D.Common.Math {
public class b2Math {
public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1));
public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity);
public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0);
public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x));
return (_local3);
}
public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y));
return (_local3);
}
public static function b2IsValid(_arg1:Number):Boolean{
return (isFinite(_arg1));
}
public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y));
return (_local3);
}
public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = b2MulMV(_arg1.R, _arg2);
_local3.x = (_local3.x + _arg1.position.x);
_local3.y = (_local3.y + _arg1.position.y);
return (_local3);
}
public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_arg1.x - _arg2.x);
_local4 = (_arg1.y - _arg2.y);
return (((_local3 * _local3) + (_local4 * _local4)));
}
public static function b2Swap(_arg1:Array, _arg2:Array):void{
var _local3:*;
_local3 = _arg1[0];
_arg1[0] = _arg2[0];
_arg2[0] = _local3;
}
public static function b2AbsM(_arg1:b2Mat22):b2Mat22{
var _local2:b2Mat22;
_local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2));
return (_local2);
}
public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y));
return (_local3);
}
public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
var _local4:Number;
_local3 = SubtractVV(_arg2, _arg1.position);
_local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y));
_local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y));
_local3.x = _local4;
return (_local3);
}
public static function b2Abs(_arg1:Number):Number{
return (((_arg1 > 0)) ? _arg1 : -(_arg1));
}
public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (b2Max(_arg2, b2Min(_arg1, _arg3)));
}
public static function b2AbsV(_arg1:b2Vec2):b2Vec2{
var _local2:b2Vec2;
_local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y));
return (_local2);
}
public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y));
return (_local3);
}
public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{
return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)));
}
public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{
return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)));
}
public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x));
return (_local3);
}
public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Mat22;
_local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2));
return (_local3);
}
public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_arg1.x - _arg2.x);
_local4 = (_arg1.y - _arg2.y);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Mat22;
_local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1));
_local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2));
_local5 = new b2Mat22(0, _local3, _local4);
return (_local5);
}
public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y));
return (_local3);
}
public static function b2IsPowerOfTwo(_arg1:uint):Boolean{
var _local2:Boolean;
_local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0)));
return (_local2);
}
public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{
return (b2MaxV(_arg2, b2MinV(_arg1, _arg3)));
}
public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
_local3 = Math.random();
_local3 = (((_arg2 - _arg1) * _local3) + _arg1);
return (_local3);
}
public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2));
return (_local3);
}
public static function b2Min(_arg1:Number, _arg2:Number):Number{
return (((_arg1 < _arg2)) ? _arg1 : _arg2);
}
public static function b2Random():Number{
return (((Math.random() * 2) - 1));
}
public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{
var _local3:b2Mat22;
_local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2));
return (_local3);
}
public static function b2NextPowerOfTwo(_arg1:uint):uint{
_arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647));
_arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823));
_arg1 = (_arg1 | ((_arg1 >> 4) & 268435455));
_arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF));
_arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF));
return ((_arg1 + 1));
}
public static function b2Max(_arg1:Number, _arg2:Number):Number{
return (((_arg1 > _arg2)) ? _arg1 : _arg2);
}
public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{
var _local3:b2Vec2;
_local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y)));
return (_local3);
}
}
}//package Code.Box2D.Common.Math
Section 37
//b2Sweep (Code.Box2D.Common.Math.b2Sweep)
package Code.Box2D.Common.Math {
public class b2Sweep {
public var localCenter:b2Vec2;
public var c:b2Vec2;
public var a:Number;
public var c0:b2Vec2;
public var a0:Number;
public var t0:Number;
public function b2Sweep(){
localCenter = new b2Vec2();
c0 = new b2Vec2();
c = new b2Vec2();
super();
}
public function Advance(_arg1:Number):void{
var _local2:Number;
if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){
_local2 = ((_arg1 - t0) / (1 - t0));
c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x));
c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y));
a0 = (((1 - _local2) * a0) + (_local2 * a));
t0 = _arg1;
};
}
public function GetXForm(_arg1:b2XForm, _arg2:Number):void{
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
if ((1 - t0) > Number.MIN_VALUE){
_local4 = ((_arg2 - t0) / (1 - t0));
_arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x));
_arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y));
_local5 = (((1 - _local4) * a0) + (_local4 * a));
_arg1.R.Set(_local5);
} else {
_arg1.position.SetV(c);
_arg1.R.Set(a);
};
_local3 = _arg1.R;
_arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y)));
_arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y)));
}
}
}//package Code.Box2D.Common.Math
Section 38
//b2Vec2 (Code.Box2D.Common.Math.b2Vec2)
package Code.Box2D.Common.Math {
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 SetZero():void{
x = 0;
y = 0;
}
public function Add(_arg1:b2Vec2):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
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 Copy():b2Vec2{
return (new b2Vec2(x, y));
}
public function MulTM(_arg1:b2Mat22):void{
var _local2:Number;
_local2 = b2Math.b2Dot(this, _arg1.col1);
y = b2Math.b2Dot(this, _arg1.col2);
x = _local2;
}
public function IsValid():Boolean{
return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y))));
}
public function MinV(_arg1:b2Vec2):void{
x = ((x < _arg1.x)) ? x : _arg1.x;
y = ((y < _arg1.y)) ? y : _arg1.y;
}
public function MulM(_arg1:b2Mat22):void{
var _local2:Number;
_local2 = x;
x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y));
y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * 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 Subtract(_arg1:b2Vec2):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
public function CrossFV(_arg1:Number):void{
var _local2:Number;
_local2 = x;
x = (-(_arg1) * y);
y = (_arg1 * _local2);
}
public static function Make(_arg1:Number, _arg2:Number):b2Vec2{
return (new b2Vec2(_arg1, _arg2));
}
}
}//package Code.Box2D.Common.Math
Section 39
//b2XForm (Code.Box2D.Common.Math.b2XForm)
package Code.Box2D.Common.Math {
public class b2XForm {
public var R:b2Mat22;
public var position:b2Vec2;
public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{
position = new b2Vec2();
R = new b2Mat22();
super();
if (_arg1){
position.SetV(_arg1);
R.SetM(_arg2);
};
}
public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{
position.SetV(_arg1);
R.SetM(_arg2);
}
public function Set(_arg1:b2XForm):void{
position.SetV(_arg1.position);
R.SetM(_arg1.R);
}
public function SetIdentity():void{
position.SetZero();
R.SetIdentity();
}
}
}//package Code.Box2D.Common.Math
Section 40
//b2Color (Code.Box2D.Common.b2Color)
package Code.Box2D.Common {
import Code.Box2D.Common.Math.*;
public class b2Color {
private var _g:uint;// = 0
private var _b:uint;// = 0
private var _r:uint;// = 0
public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){
_r = 0;
_g = 0;
_b = 0;
super();
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
_g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
_b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
_g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1)));
_b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1)));
}
public function get color():uint{
return (((_r | (_g << 8)) | (_b << 16)));
}
public function set r(_arg1:Number):void{
_r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set b(_arg1:Number):void{
_b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
public function set g(_arg1:Number):void{
_g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1)));
}
}
}//package Code.Box2D.Common
Section 41
//b2Settings (Code.Box2D.Common.b2Settings)
package Code.Box2D.Common {
import Code.Box2D.Common.Math.*;
public class b2Settings {
public static const b2_angularSleepTolerance:Number = 0.0111111111111111;
public static const b2_linearSleepTolerance:Number = 0.01;
public static const b2_angularSlop:Number = 0.0349065850398866;
public static const b2_linearSlop:Number = 0.005;
public static const b2_pi:Number = 3.14159265358979;
public static const b2_maxProxies:int = 0x0800;
public static const b2_maxAngularVelocitySquared:Number = 62500;
public static const b2_maxPolygonVertices:int = 8;
public static const b2_velocityThreshold:Number = 1;
public static const b2_contactBaumgarte:Number = 0.4;
public static const b2_maxPairs:int = 16384;
public static const b2_maxTOIContactsPerIsland:int = 32;
public static const b2_timeToSleep:Number = 0.5;
public static const b2_maxManifoldPoints:int = 2;
public static const b2_maxAngularVelocity:Number = 250;
public static const b2_maxAngularCorrection:Number = 0.139626340159546;
public static const USHRT_MAX:int = 0xFFFF;
public static const b2_maxLinearVelocity:Number = 200;
public static const b2_maxLinearCorrection:Number = 0.2;
public static const b2_toiSlop:Number = 0.04;
public static const b2_maxLinearVelocitySquared:Number = 40000;
public static function b2Assert(_arg1:Boolean):void{
var _local2:b2Vec2;
if (!_arg1){
_local2.x++;
};
}
}
}//package Code.Box2D.Common
Section 42
//b2CircleContact (Code.Box2D.Dynamics.Contacts.b2CircleContact)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
public class b2CircleContact extends b2Contact {
private var m_manifolds:Array;
private var m0:b2Manifold;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){
var _local3:b2ManifoldPoint;
m_manifolds = [new b2Manifold()];
m0 = new b2Manifold();
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
m_manifold.pointCount = 0;
_local3 = m_manifold.points[0];
_local3.normalImpulse = 0;
_local3.tangentImpulse = 0;
}
override public function GetManifolds():Array{
return (m_manifolds);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2ManifoldPoint;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2ContactPoint;
var _local8:b2ManifoldPoint;
_local5 = m_shape1.m_body;
_local6 = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf);
_local7 = s_evalCP;
_local7.shape1 = m_shape1;
_local7.shape2 = m_shape2;
_local7.friction = m_friction;
_local7.restitution = m_restitution;
if (m_manifold.pointCount > 0){
m_manifoldCount = 1;
_local8 = m_manifold.points[0];
if (m0.pointCount == 0){
_local8.normalImpulse = 0;
_local8.tangentImpulse = 0;
if (_arg1){
_local7.position = _local5.GetWorldPoint(_local8.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local8.separation;
_local7.id.key = _local8.id._key;
_arg1.Add(_local7);
};
} else {
_local4 = m0.points[0];
_local8.normalImpulse = _local4.normalImpulse;
_local8.tangentImpulse = _local4.tangentImpulse;
if (_arg1){
_local7.position = _local5.GetWorldPoint(_local8.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local8.separation;
_local7.id.key = _local8.id._key;
_arg1.Persist(_local7);
};
};
} else {
m_manifoldCount = 0;
if ((((m0.pointCount > 0)) && (_arg1))){
_local4 = m0.points[0];
_local7.position = _local5.GetWorldPoint(_local4.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m0.normal);
_local7.separation = _local4.separation;
_local7.id.key = _local4.id._key;
_arg1.Remove(_local7);
};
};
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
return (new b2CircleContact(_arg1, _arg2));
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 43
//b2Contact (Code.Box2D.Dynamics.Contacts.b2Contact)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class b2Contact {
public var m_shape1:b2Shape;
public var m_shape2:b2Shape;
public var m_prev:b2Contact;
public var m_toi:Number;
public var m_next:b2Contact;
public var m_friction:Number;
public var m_manifoldCount:int;
public var m_node1:b2ContactEdge;
public var m_node2:b2ContactEdge;
public var m_restitution:Number;
public var m_flags:uint;
public static var e_toiFlag:uint = 8;
public static var e_nonSolidFlag:uint = 1;
public static var e_slowFlag:uint = 2;
public static var e_islandFlag:uint = 4;
public static var s_registers:Array;
public static var s_initialized:Boolean = false;
public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){
m_node1 = new b2ContactEdge();
m_node2 = new b2ContactEdge();
super();
m_flags = 0;
if (((!(_arg1)) || (!(_arg2)))){
m_shape1 = null;
m_shape2 = null;
return;
};
if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){
m_flags = (m_flags | e_nonSolidFlag);
};
m_shape1 = _arg1;
m_shape2 = _arg2;
m_manifoldCount = 0;
m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction));
m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution);
m_prev = null;
m_next = null;
m_node1.contact = null;
m_node1.prev = null;
m_node1.next = null;
m_node1.other = null;
m_node2.contact = null;
m_node2.prev = null;
m_node2.next = null;
m_node2.other = null;
}
public function GetShape1():b2Shape{
return (m_shape1);
}
public function IsSolid():Boolean{
return (((m_flags & e_nonSolidFlag) == 0));
}
public function GetNext():b2Contact{
return (m_next);
}
public function GetManifolds():Array{
return (null);
}
public function GetShape2():b2Shape{
return (m_shape2);
}
public function GetManifoldCount():int{
return (m_manifoldCount);
}
public function Update(_arg1:b2ContactListener):void{
var _local2:int;
var _local3:int;
var _local4:b2Body;
var _local5:b2Body;
_local2 = m_manifoldCount;
Evaluate(_arg1);
_local3 = m_manifoldCount;
_local4 = m_shape1.m_body;
_local5 = m_shape2.m_body;
if ((((_local3 == 0)) && ((_local2 > 0)))){
_local4.WakeUp();
_local5.WakeUp();
};
if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){
m_flags = (m_flags & ~(e_slowFlag));
} else {
m_flags = (m_flags | e_slowFlag);
};
}
public function Evaluate(_arg1:b2ContactListener):void{
}
public static function InitializeRegisters():void{
var _local1:int;
var _local2:int;
s_registers = new Array(b2Shape.e_shapeTypeCount);
_local1 = 0;
while (_local1 < b2Shape.e_shapeTypeCount) {
s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount);
_local2 = 0;
while (_local2 < b2Shape.e_shapeTypeCount) {
s_registers[_local1][_local2] = new b2ContactRegister();
_local2++;
};
_local1++;
};
AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape);
AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape);
AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape);
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
var _local3:int;
var _local4:int;
var _local5:b2ContactRegister;
var _local6:Function;
if (_arg1.m_manifoldCount > 0){
_arg1.m_shape1.m_body.WakeUp();
_arg1.m_shape2.m_body.WakeUp();
};
_local3 = _arg1.m_shape1.m_type;
_local4 = _arg1.m_shape2.m_type;
_local5 = s_registers[_local3][_local4];
_local6 = _local5.destroyFcn;
_local6(_arg1, _arg2);
}
public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{
s_registers[_arg3][_arg4].createFcn = _arg1;
s_registers[_arg3][_arg4].destroyFcn = _arg2;
s_registers[_arg3][_arg4].primary = true;
if (_arg3 != _arg4){
s_registers[_arg4][_arg3].createFcn = _arg1;
s_registers[_arg4][_arg3].destroyFcn = _arg2;
s_registers[_arg4][_arg3].primary = false;
};
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
var _local4:int;
var _local5:int;
var _local6:b2ContactRegister;
var _local7:Function;
var _local8:b2Contact;
var _local9:int;
var _local10:b2Manifold;
if (s_initialized == false){
InitializeRegisters();
s_initialized = true;
};
_local4 = _arg1.m_type;
_local5 = _arg2.m_type;
_local6 = s_registers[_local4][_local5];
_local7 = _local6.createFcn;
if (_local7 != null){
if (_local6.primary){
return (_local7(_arg1, _arg2, _arg3));
};
_local8 = _local7(_arg2, _arg1, _arg3);
_local9 = 0;
while (_local9 < _local8.m_manifoldCount) {
_local10 = _local8.GetManifolds()[_local9];
_local8.GetManifolds()[_local9].normal = _local10.normal.Negative();
_local9++;
};
return (_local8);
//unresolved jump
};
return (null);
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 44
//b2ContactConstraint (Code.Box2D.Dynamics.Contacts.b2ContactConstraint)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class b2ContactConstraint {
public var points:Array;
public var restitution:Number;
public var body1:b2Body;
public var manifold:b2Manifold;
public var normal:b2Vec2;
public var body2:b2Body;
public var friction:Number;
public var pointCount:int;
public function b2ContactConstraint(){
var _local1:int;
normal = new b2Vec2();
super();
points = new Array(b2Settings.b2_maxManifoldPoints);
_local1 = 0;
while (_local1 < b2Settings.b2_maxManifoldPoints) {
points[_local1] = new b2ContactConstraintPoint();
_local1++;
};
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 45
//b2ContactConstraintPoint (Code.Box2D.Dynamics.Contacts.b2ContactConstraintPoint)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Common.Math.*;
public class b2ContactConstraintPoint {
public var r2:b2Vec2;
public var separation:Number;
public var positionImpulse:Number;
public var normalImpulse:Number;
public var equalizedMass:Number;
public var tangentMass:Number;
public var tangentImpulse:Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var normalMass:Number;
public var velocityBias:Number;
public var r1:b2Vec2;
public function b2ContactConstraintPoint(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
r1 = new b2Vec2();
r2 = new b2Vec2();
super();
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 46
//b2ContactEdge (Code.Box2D.Dynamics.Contacts.b2ContactEdge)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Dynamics.*;
public class b2ContactEdge {
public var next:b2ContactEdge;
public var other:b2Body;
public var contact:b2Contact;
public var prev:b2ContactEdge;
}
}//package Code.Box2D.Dynamics.Contacts
Section 47
//b2ContactRegister (Code.Box2D.Dynamics.Contacts.b2ContactRegister)
package Code.Box2D.Dynamics.Contacts {
public class b2ContactRegister {
public var primary:Boolean;
public var createFcn:Function;
public var destroyFcn:Function;
}
}//package Code.Box2D.Dynamics.Contacts
Section 48
//b2ContactResult (Code.Box2D.Dynamics.Contacts.b2ContactResult)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Collision.*;
public class b2ContactResult {
public var normal:b2Vec2;
public var position:b2Vec2;
public var shape1:b2Shape;
public var shape2:b2Shape;
public var normalImpulse:Number;
public var tangentImpulse:Number;
public var id:b2ContactID;
public function b2ContactResult(){
position = new b2Vec2();
normal = new b2Vec2();
id = new b2ContactID();
super();
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 49
//b2ContactSolver (Code.Box2D.Dynamics.Contacts.b2ContactSolver)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class b2ContactSolver {
public var m_constraintCount:int;
public var m_constraints:Array;
public var m_allocator;
public var m_step:b2TimeStep;
public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){
var _local5:b2Contact;
var _local6:int;
var _local7:b2Vec2;
var _local8:b2Mat22;
var _local9:int;
var _local10:b2Body;
var _local11:b2Body;
var _local12:int;
var _local13:Array;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:int;
var _local23:b2Manifold;
var _local24:Number;
var _local25:Number;
var _local26:b2ContactConstraint;
var _local27:uint;
var _local28:b2ManifoldPoint;
var _local29:b2ContactConstraintPoint;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
var _local39:Number;
var _local40:Number;
var _local41:Number;
var _local42:Number;
var _local43:Number;
var _local44:Number;
var _local45:Number;
var _local46:Number;
var _local47:Number;
m_step = new b2TimeStep();
m_constraints = new Array();
super();
m_step.dt = _arg1.dt;
m_step.inv_dt = _arg1.inv_dt;
m_step.maxIterations = _arg1.maxIterations;
m_allocator = _arg4;
m_constraintCount = 0;
_local6 = 0;
while (_local6 < _arg3) {
_local5 = _arg2[_local6];
m_constraintCount = (m_constraintCount + _local5.m_manifoldCount);
_local6++;
};
_local6 = 0;
while (_local6 < m_constraintCount) {
m_constraints[_local6] = new b2ContactConstraint();
_local6++;
};
_local9 = 0;
_local6 = 0;
while (_local6 < _arg3) {
_local5 = _arg2[_local6];
_local10 = _local5.m_shape1.m_body;
_local11 = _local5.m_shape2.m_body;
_local12 = _local5.m_manifoldCount;
_local13 = _local5.GetManifolds();
_local14 = _local5.m_friction;
_local15 = _local5.m_restitution;
_local16 = _local10.m_linearVelocity.x;
_local17 = _local10.m_linearVelocity.y;
_local18 = _local11.m_linearVelocity.x;
_local19 = _local11.m_linearVelocity.y;
_local20 = _local10.m_angularVelocity;
_local21 = _local11.m_angularVelocity;
_local22 = 0;
while (_local22 < _local12) {
_local23 = _local13[_local22];
_local24 = _local23.normal.x;
_local25 = _local23.normal.y;
_local26 = m_constraints[_local9];
_local26.body1 = _local10;
_local26.body2 = _local11;
_local26.manifold = _local23;
_local26.normal.x = _local24;
_local26.normal.y = _local25;
_local26.pointCount = _local23.pointCount;
_local26.friction = _local14;
_local26.restitution = _local15;
_local27 = 0;
while (_local27 < _local26.pointCount) {
_local28 = _local23.points[_local27];
_local29 = _local26.points[_local27];
_local29.normalImpulse = _local28.normalImpulse;
_local29.tangentImpulse = _local28.tangentImpulse;
_local29.separation = _local28.separation;
_local29.positionImpulse = 0;
_local29.localAnchor1.SetV(_local28.localPoint1);
_local29.localAnchor2.SetV(_local28.localPoint2);
_local8 = _local10.m_xf.R;
_local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x);
_local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y);
_local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33));
_local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33));
_local32 = _local30;
_local29.r1.Set(_local32, _local33);
_local8 = _local11.m_xf.R;
_local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x);
_local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y);
_local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35));
_local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35));
_local34 = _local30;
_local29.r2.Set(_local34, _local35);
_local36 = ((_local32 * _local32) + (_local33 * _local33));
_local37 = ((_local34 * _local34) + (_local35 * _local35));
_local38 = ((_local32 * _local24) + (_local33 * _local25));
_local39 = ((_local34 * _local24) + (_local35 * _local25));
_local40 = (_local10.m_invMass + _local11.m_invMass);
_local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39)))));
_local29.normalMass = (1 / _local40);
_local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass));
_local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39)))));
_local29.equalizedMass = (1 / _local41);
_local42 = _local25;
_local43 = -(_local24);
_local44 = ((_local32 * _local42) + (_local33 * _local43));
_local45 = ((_local34 * _local42) + (_local35 * _local43));
_local46 = (_local10.m_invMass + _local11.m_invMass);
_local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45)))));
_local29.tangentMass = (1 / _local46);
_local29.velocityBias = 0;
if (_local29.separation > 0){
_local29.velocityBias = (-60 * _local29.separation);
};
_local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33));
_local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32));
_local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31));
if (_local47 < -(b2Settings.b2_velocityThreshold)){
_local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47));
};
_local27++;
};
_local9++;
_local22++;
};
_local6++;
};
}
public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2Mat22;
var _local5:int;
var _local6:b2ContactConstraint;
var _local7:b2Body;
var _local8:b2Body;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:int;
var _local19:int;
var _local20:b2ContactConstraintPoint;
var _local21:Number;
var _local22:Number;
var _local23:b2ContactConstraintPoint;
_local5 = 0;
while (_local5 < m_constraintCount) {
_local6 = m_constraints[_local5];
_local7 = _local6.body1;
_local8 = _local6.body2;
_local9 = _local7.m_invMass;
_local10 = _local7.m_invI;
_local11 = _local8.m_invMass;
_local12 = _local8.m_invI;
_local13 = _local6.normal.x;
_local14 = _local6.normal.y;
_local15 = _local14;
_local16 = -(_local13);
if (_arg1.warmStarting){
_local19 = _local6.pointCount;
_local18 = 0;
while (_local18 < _local19) {
_local20 = _local6.points[_local18];
_local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio);
_local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio);
_local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15));
_local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16));
_local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21))));
_local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21));
_local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22));
_local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21))));
_local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21));
_local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22));
_local18++;
};
} else {
_local19 = _local6.pointCount;
_local18 = 0;
while (_local18 < _local19) {
_local23 = _local6.points[_local18];
_local23.normalImpulse = 0;
_local23.tangentImpulse = 0;
_local18++;
};
};
_local5++;
};
}
public function SolvePositionConstraints(_arg1:Number):Boolean{
var _local2:Number;
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:int;
var _local6:b2ContactConstraint;
var _local7:b2Body;
var _local8:b2Body;
var _local9:b2Vec2;
var _local10:Number;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:int;
var _local20:int;
var _local21:b2ContactConstraintPoint;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:Number;
var _local38:Number;
_local2 = 0;
_local5 = 0;
while (_local5 < m_constraintCount) {
_local6 = m_constraints[_local5];
_local7 = _local6.body1;
_local8 = _local6.body2;
_local9 = _local7.m_sweep.c;
_local10 = _local7.m_sweep.a;
_local11 = _local8.m_sweep.c;
_local12 = _local8.m_sweep.a;
_local13 = (_local7.m_mass * _local7.m_invMass);
_local14 = (_local7.m_mass * _local7.m_invI);
_local15 = (_local8.m_mass * _local8.m_invMass);
_local16 = (_local8.m_mass * _local8.m_invI);
_local17 = _local6.normal.x;
_local18 = _local6.normal.y;
_local19 = _local6.pointCount;
_local20 = 0;
while (_local20 < _local19) {
_local21 = _local6.points[_local20];
_local3 = _local7.m_xf.R;
_local4 = _local7.m_sweep.localCenter;
_local22 = (_local21.localAnchor1.x - _local4.x);
_local23 = (_local21.localAnchor1.y - _local4.y);
_local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23));
_local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23));
_local22 = _local26;
_local3 = _local8.m_xf.R;
_local4 = _local8.m_sweep.localCenter;
_local24 = (_local21.localAnchor2.x - _local4.x);
_local25 = (_local21.localAnchor2.y - _local4.y);
_local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25));
_local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25));
_local24 = _local26;
_local27 = (_local9.x + _local22);
_local28 = (_local9.y + _local23);
_local29 = (_local11.x + _local24);
_local30 = (_local11.y + _local25);
_local31 = (_local29 - _local27);
_local32 = (_local30 - _local28);
_local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation);
_local2 = b2Math.b2Min(_local2, _local33);
_local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0));
_local35 = (-(_local21.equalizedMass) * _local34);
_local36 = _local21.positionImpulse;
_local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0);
_local35 = (_local21.positionImpulse - _local36);
_local37 = (_local35 * _local17);
_local38 = (_local35 * _local18);
_local9.x = (_local9.x - (_local13 * _local37));
_local9.y = (_local9.y - (_local13 * _local38));
_local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37))));
_local7.m_sweep.a = _local10;
_local7.SynchronizeTransform();
_local11.x = (_local11.x + (_local15 * _local37));
_local11.y = (_local11.y + (_local15 * _local38));
_local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37))));
_local8.m_sweep.a = _local12;
_local8.SynchronizeTransform();
_local20++;
};
_local5++;
};
return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop)));
}
public function SolveVelocityConstraints():void{
var _local1:int;
var _local2:b2ContactConstraintPoint;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:b2Mat22;
var _local18:b2Vec2;
var _local19:int;
var _local20:b2ContactConstraint;
var _local21:b2Body;
var _local22:b2Body;
var _local23:Number;
var _local24:Number;
var _local25:b2Vec2;
var _local26:b2Vec2;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
var _local33:Number;
var _local34:Number;
var _local35:Number;
var _local36:Number;
var _local37:int;
var _local38:Number;
_local19 = 0;
while (_local19 < m_constraintCount) {
_local20 = m_constraints[_local19];
_local21 = _local20.body1;
_local22 = _local20.body2;
_local23 = _local21.m_angularVelocity;
_local24 = _local22.m_angularVelocity;
_local25 = _local21.m_linearVelocity;
_local26 = _local22.m_linearVelocity;
_local27 = _local21.m_invMass;
_local28 = _local21.m_invI;
_local29 = _local22.m_invMass;
_local30 = _local22.m_invI;
_local31 = _local20.normal.x;
_local32 = _local20.normal.y;
_local33 = _local32;
_local34 = -(_local31);
_local35 = _local20.friction;
_local37 = _local20.pointCount;
_local1 = 0;
while (_local1 < _local37) {
_local2 = _local20.points[_local1];
_local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y));
_local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x));
_local9 = ((_local7 * _local31) + (_local8 * _local32));
_local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias));
_local10 = ((_local7 * _local33) + (_local8 * _local34));
_local12 = (_local2.tangentMass * -(_local10));
_local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0);
_local11 = (_local13 - _local2.normalImpulse);
_local38 = (_local35 * _local2.normalImpulse);
_local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38);
_local12 = (_local14 - _local2.tangentImpulse);
_local15 = ((_local11 * _local31) + (_local12 * _local33));
_local16 = ((_local11 * _local32) + (_local12 * _local34));
_local25.x = (_local25.x - (_local27 * _local15));
_local25.y = (_local25.y - (_local27 * _local16));
_local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15))));
_local26.x = (_local26.x + (_local29 * _local15));
_local26.y = (_local26.y + (_local29 * _local16));
_local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15))));
_local2.normalImpulse = _local13;
_local2.tangentImpulse = _local14;
_local1++;
};
_local21.m_angularVelocity = _local23;
_local22.m_angularVelocity = _local24;
_local19++;
};
}
public function FinalizeVelocityConstraints():void{
var _local1:int;
var _local2:b2ContactConstraint;
var _local3:b2Manifold;
var _local4:int;
var _local5:b2ManifoldPoint;
var _local6:b2ContactConstraintPoint;
_local1 = 0;
while (_local1 < m_constraintCount) {
_local2 = m_constraints[_local1];
_local3 = _local2.manifold;
_local4 = 0;
while (_local4 < _local2.pointCount) {
_local5 = _local3.points[_local4];
_local6 = _local2.points[_local4];
_local5.normalImpulse = _local6.normalImpulse;
_local5.tangentImpulse = _local6.tangentImpulse;
_local4++;
};
_local1++;
};
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 50
//b2NullContact (Code.Box2D.Dynamics.Contacts.b2NullContact)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Dynamics.*;
public class b2NullContact extends b2Contact {
override public function GetManifolds():Array{
return (null);
}
override public function Evaluate(_arg1:b2ContactListener):void{
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 51
//b2PolyAndCircleContact (Code.Box2D.Dynamics.Contacts.b2PolyAndCircleContact)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class b2PolyAndCircleContact extends b2Contact {
private var m_manifolds:Array;
private var m0:b2Manifold;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){
var _local3:b2ManifoldPoint;
m_manifolds = [new b2Manifold()];
m0 = new b2Manifold();
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape));
b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape));
m_manifold.pointCount = 0;
_local3 = m_manifold.points[0];
_local3.normalImpulse = 0;
_local3.tangentImpulse = 0;
}
override public function GetManifolds():Array{
return (m_manifolds);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:int;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2ManifoldPoint;
var _local6:b2Body;
var _local7:b2Body;
var _local8:Array;
var _local9:b2ContactPoint;
var _local10:b2ManifoldPoint;
var _local11:Boolean;
var _local12:uint;
var _local13:int;
_local6 = m_shape1.m_body;
_local7 = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf);
_local8 = [false, false];
_local9 = s_evalCP;
_local9.shape1 = m_shape1;
_local9.shape2 = m_shape2;
_local9.friction = m_friction;
_local9.restitution = m_restitution;
if (m_manifold.pointCount > 0){
_local2 = 0;
while (_local2 < m_manifold.pointCount) {
_local10 = m_manifold.points[_local2];
_local10.normalImpulse = 0;
_local10.tangentImpulse = 0;
_local11 = false;
_local12 = _local10.id._key;
_local13 = 0;
while (_local13 < m0.pointCount) {
if (_local8[_local13] == true){
} else {
_local5 = m0.points[_local13];
if (_local5.id._key == _local12){
_local8[_local13] = true;
_local10.normalImpulse = _local5.normalImpulse;
_local10.tangentImpulse = _local5.tangentImpulse;
_local11 = true;
if (_arg1 != null){
_local9.position = _local6.GetWorldPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y));
_local9.normal.SetV(m_manifold.normal);
_local9.separation = _local10.separation;
_local9.id.key = _local12;
_arg1.Persist(_local9);
};
break;
};
};
_local13++;
};
if ((((_local11 == false)) && (!((_arg1 == null))))){
_local9.position = _local6.GetWorldPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y));
_local9.normal.SetV(m_manifold.normal);
_local9.separation = _local10.separation;
_local9.id.key = _local12;
_arg1.Add(_local9);
};
_local2++;
};
m_manifoldCount = 1;
} else {
m_manifoldCount = 0;
};
if (_arg1 == null){
return;
};
_local2 = 0;
while (_local2 < m0.pointCount) {
if (_local8[_local2]){
} else {
_local5 = m0.points[_local2];
_local9.position = _local6.GetWorldPoint(_local5.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1);
_local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2);
_local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y));
_local9.normal.SetV(m0.normal);
_local9.separation = _local5.separation;
_local9.id.key = _local5.id._key;
_arg1.Remove(_local9);
};
_local2++;
};
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
return (new b2PolyAndCircleContact(_arg1, _arg2));
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 52
//b2PolygonContact (Code.Box2D.Dynamics.Contacts.b2PolygonContact)
package Code.Box2D.Dynamics.Contacts {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
public class b2PolygonContact extends b2Contact {
private var m_manifolds:Array;
private var m0:b2Manifold;
public var m_manifold:b2Manifold;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{
m0 = new b2Manifold();
m_manifolds = [new b2Manifold()];
super(_arg1, _arg2);
m_manifold = m_manifolds[0];
m_manifold.pointCount = 0;
}
override public function GetManifolds():Array{
return (m_manifolds);
}
override public function Evaluate(_arg1:b2ContactListener):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2ManifoldPoint;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2ContactPoint;
var _local8:int;
var _local9:Array;
var _local10:b2ManifoldPoint;
var _local11:Boolean;
var _local12:uint;
var _local13:int;
_local5 = m_shape1.m_body;
_local6 = m_shape2.m_body;
m0.Set(m_manifold);
b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf);
_local9 = [false, false];
_local7 = s_evalCP;
_local7.shape1 = m_shape1;
_local7.shape2 = m_shape2;
_local7.friction = m_friction;
_local7.restitution = m_restitution;
if (m_manifold.pointCount > 0){
_local8 = 0;
while (_local8 < m_manifold.pointCount) {
_local10 = m_manifold.points[_local8];
_local10.normalImpulse = 0;
_local10.tangentImpulse = 0;
_local11 = false;
_local12 = _local10.id._key;
_local13 = 0;
while (_local13 < m0.pointCount) {
if (_local9[_local13] == true){
} else {
_local4 = m0.points[_local13];
if (_local4.id._key == _local12){
_local9[_local13] = true;
_local10.normalImpulse = _local4.normalImpulse;
_local10.tangentImpulse = _local4.tangentImpulse;
_local11 = true;
if (_arg1 != null){
_local7.position = _local5.GetWorldPoint(_local10.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local10.separation;
_local7.id.key = _local12;
_arg1.Persist(_local7);
};
break;
};
};
_local13++;
};
if ((((_local11 == false)) && (!((_arg1 == null))))){
_local7.position = _local5.GetWorldPoint(_local10.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m_manifold.normal);
_local7.separation = _local10.separation;
_local7.id.key = _local12;
_arg1.Add(_local7);
};
_local8++;
};
m_manifoldCount = 1;
} else {
m_manifoldCount = 0;
};
if (_arg1 == null){
return;
};
_local8 = 0;
while (_local8 < m0.pointCount) {
if (_local9[_local8]){
} else {
_local4 = m0.points[_local8];
_local7.position = _local5.GetWorldPoint(_local4.localPoint1);
_local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1);
_local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2);
_local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y));
_local7.normal.SetV(m0.normal);
_local7.separation = _local4.separation;
_local7.id.key = _local4.id._key;
_arg1.Remove(_local7);
};
_local8++;
};
}
public static function Destroy(_arg1:b2Contact, _arg2):void{
}
public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{
return (new b2PolygonContact(_arg1, _arg2));
}
}
}//package Code.Box2D.Dynamics.Contacts
Section 53
//b2DistanceJoint (Code.Box2D.Dynamics.Joints.b2DistanceJoint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Common.*;
public class b2DistanceJoint extends b2Joint {
public var m_mass:Number;
public var m_u:b2Vec2;
public var m_impulse:Number;
public var m_dampingRatio:Number;
public var m_frequencyHz:Number;
public var m_localAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_bias:Number;
public var m_gamma:Number;
public var m_length:Number;
public function b2DistanceJoint(_arg1:b2DistanceJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_u = new b2Vec2();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_length = _arg1.length;
m_frequencyHz = _arg1.frequencyHz;
m_dampingRatio = _arg1.dampingRatio;
m_impulse = 0;
m_gamma = 0;
m_bias = 0;
m_inv_dt = 0;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = new b2Vec2();
_local1.SetV(m_u);
_local1.Multiply((m_inv_dt * m_impulse));
return (_local1);
}
override public function SolvePositionConstraints():Boolean{
var _local1:b2Mat22;
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
if (m_frequencyHz > 0){
return (true);
};
_local2 = m_body1;
_local3 = m_body2;
_local1 = _local2.m_xf.R;
_local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5));
_local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5));
_local4 = _local6;
_local1 = _local3.m_xf.R;
_local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8));
_local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8));
_local7 = _local6;
_local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4);
_local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5);
_local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10)));
_local9 = (_local9 / _local11);
_local10 = (_local10 / _local11);
_local12 = (_local11 - m_length);
_local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local13 = (-(m_mass) * _local12);
m_u.Set(_local9, _local10);
_local14 = (_local13 * m_u.x);
_local15 = (_local13 * m_u.y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14))));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15));
_local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14))));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:Number;
var _local4:b2Body;
var _local5:b2Body;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
m_inv_dt = _arg1.inv_dt;
_local4 = m_body1;
_local5 = m_body2;
_local2 = _local4.m_xf.R;
_local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x);
_local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y);
_local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7));
_local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7));
_local6 = _local3;
_local2 = _local5.m_xf.R;
_local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y);
_local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9));
_local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9));
_local8 = _local3;
m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6);
m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7);
_local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y)));
if (_local10 > b2Settings.b2_linearSlop){
m_u.Multiply((1 / _local10));
} else {
m_u.SetZero();
};
_local11 = ((_local6 * m_u.y) - (_local7 * m_u.x));
_local12 = ((_local8 * m_u.y) - (_local9 * m_u.x));
_local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12));
m_mass = (1 / _local13);
if (m_frequencyHz > 0){
_local14 = (_local10 - m_length);
_local15 = ((2 * Math.PI) * m_frequencyHz);
_local16 = (((2 * m_mass) * m_dampingRatio) * _local15);
_local17 = ((m_mass * _local15) * _local15);
m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17))));
m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma);
m_mass = (1 / (_local13 + m_gamma));
};
if (_arg1.warmStarting){
m_impulse = (m_impulse * _arg1.dtRatio);
_local18 = (m_impulse * m_u.x);
_local19 = (m_impulse * m_u.y);
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19));
_local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18))));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19));
_local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18))));
} else {
m_impulse = 0;
};
}
override public function GetReactionTorque():Number{
return (0);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Mat22;
var _local3:b2Body;
var _local4:b2Body;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
_local3 = m_body1;
_local4 = m_body2;
_local2 = _local3.m_xf.R;
_local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6));
_local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6));
_local5 = _local7;
_local2 = _local4.m_xf.R;
_local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9));
_local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9));
_local8 = _local7;
_local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6));
_local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5));
_local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9));
_local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8));
_local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11)));
_local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse)));
m_impulse = (m_impulse + _local15);
_local16 = (_local15 * m_u.x);
_local17 = (_local15 * m_u.y);
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16))));
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17));
_local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
}
}
}//package Code.Box2D.Dynamics.Joints
Section 54
//b2DistanceJointDef (Code.Box2D.Dynamics.Joints.b2DistanceJointDef)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class b2DistanceJointDef extends b2JointDef {
public var length:Number;
public var dampingRatio:Number;
public var frequencyHz:Number;
public var localAnchor2:b2Vec2;
public var localAnchor1:b2Vec2;
public function b2DistanceJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_distanceJoint;
length = 1;
frequencyHz = 0;
dampingRatio = 0;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{
var _local5:Number;
var _local6:Number;
body1 = _arg1;
body2 = _arg2;
localAnchor1.SetV(body1.GetLocalPoint(_arg3));
localAnchor2.SetV(body2.GetLocalPoint(_arg4));
_local5 = (_arg4.x - _arg3.x);
_local6 = (_arg4.y - _arg3.y);
length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
frequencyHz = 0;
dampingRatio = 0;
}
}
}//package Code.Box2D.Dynamics.Joints
Section 55
//b2GearJoint (Code.Box2D.Dynamics.Joints.b2GearJoint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Common.*;
public class b2GearJoint extends b2Joint {
public var m_force:Number;
public var m_mass:Number;
public var m_prismatic1:b2PrismaticJoint;
public var m_prismatic2:b2PrismaticJoint;
public var m_ground1:b2Body;
public var m_ground2:b2Body;
public var m_constant:Number;
public var m_revolute1:b2RevoluteJoint;
public var m_revolute2:b2RevoluteJoint;
public var m_groundAnchor1:b2Vec2;
public var m_groundAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_ratio:Number;
public var m_J:b2Jacobian;
public function b2GearJoint(_arg1:b2GearJointDef){
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:Number;
m_groundAnchor1 = new b2Vec2();
m_groundAnchor2 = new b2Vec2();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_J = new b2Jacobian();
super(_arg1);
_local2 = _arg1.joint1.m_type;
_local3 = _arg1.joint2.m_type;
m_revolute1 = null;
m_prismatic1 = null;
m_revolute2 = null;
m_prismatic2 = null;
m_ground1 = _arg1.joint1.m_body1;
m_body1 = _arg1.joint1.m_body2;
if (_local2 == b2Joint.e_revoluteJoint){
m_revolute1 = (_arg1.joint1 as b2RevoluteJoint);
m_groundAnchor1.SetV(m_revolute1.m_localAnchor1);
m_localAnchor1.SetV(m_revolute1.m_localAnchor2);
_local4 = m_revolute1.GetJointAngle();
} else {
m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint);
m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1);
m_localAnchor1.SetV(m_prismatic1.m_localAnchor2);
_local4 = m_prismatic1.GetJointTranslation();
};
m_ground2 = _arg1.joint2.m_body1;
m_body2 = _arg1.joint2.m_body2;
if (_local3 == b2Joint.e_revoluteJoint){
m_revolute2 = (_arg1.joint2 as b2RevoluteJoint);
m_groundAnchor2.SetV(m_revolute2.m_localAnchor1);
m_localAnchor2.SetV(m_revolute2.m_localAnchor2);
_local5 = m_revolute2.GetJointAngle();
} else {
m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint);
m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1);
m_localAnchor2.SetV(m_prismatic2.m_localAnchor2);
_local5 = m_prismatic2.GetJointTranslation();
};
m_ratio = _arg1.ratio;
m_constant = (_local4 + (m_ratio * _local5));
m_force = 0;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y));
return (_local1);
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local1 = 0;
_local2 = m_body1;
_local3 = m_body2;
if (m_revolute1){
_local4 = m_revolute1.GetJointAngle();
} else {
_local4 = m_prismatic1.GetJointTranslation();
};
if (m_revolute2){
_local5 = m_revolute2.GetJointAngle();
} else {
_local5 = m_prismatic2.GetJointTranslation();
};
_local6 = (m_constant - (_local4 + (m_ratio * _local5)));
_local7 = (-(m_mass) * _local6);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y));
_local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1));
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2));
_local2.SynchronizeTransform();
_local3.SynchronizeTransform();
return ((_local1 < b2Settings.b2_linearSlop));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Body;
var _local5:b2Body;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Mat22;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
_local2 = m_ground1;
_local3 = m_ground2;
_local4 = m_body1;
_local5 = m_body2;
_local14 = 0;
m_J.SetZero();
if (m_revolute1){
m_J.angular1 = -1;
_local14 = (_local14 + _local4.m_invI);
} else {
_local10 = _local2.m_xf.R;
_local11 = m_prismatic1.m_localXAxis1;
_local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
_local10 = _local4.m_xf.R;
_local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x);
_local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y);
_local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9));
_local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9));
_local8 = _local13;
_local12 = ((_local8 * _local7) - (_local9 * _local6));
m_J.linear1.Set(-(_local6), -(_local7));
m_J.angular1 = -(_local12);
_local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12)));
};
if (m_revolute2){
m_J.angular2 = -(m_ratio);
_local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI));
} else {
_local10 = _local3.m_xf.R;
_local11 = m_prismatic2.m_localXAxis1;
_local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y));
_local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y));
_local10 = _local5.m_xf.R;
_local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y);
_local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9));
_local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9));
_local8 = _local13;
_local12 = ((_local8 * _local7) - (_local9 * _local6));
m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7));
m_J.angular2 = (-(m_ratio) * _local12);
_local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12))));
};
m_mass = (1 / _local14);
if (_arg1.warmStarting){
_local15 = (_arg1.dt * m_force);
_local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x));
_local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y));
_local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1));
_local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x));
_local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y));
_local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2));
} else {
m_force = 0;
};
}
override public function GetReactionTorque():Number{
var _local1:b2Mat22;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = m_body2.m_xf.R;
_local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x);
_local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y);
_local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3));
_local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3));
_local2 = _local4;
_local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x))));
return (_local4);
}
public function GetRatio():Number{
return (m_ratio);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local5 = ((-(_arg1.inv_dt) * m_mass) * _local4);
m_force = (m_force + _local5);
_local6 = (_arg1.dt * _local5);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2));
}
}
}//package Code.Box2D.Dynamics.Joints
Section 56
//b2GearJointDef (Code.Box2D.Dynamics.Joints.b2GearJointDef)
package Code.Box2D.Dynamics.Joints {
public class b2GearJointDef extends b2JointDef {
public var joint2:b2Joint;
public var joint1:b2Joint;
public var ratio:Number;
public function b2GearJointDef(){
type = b2Joint.e_gearJoint;
joint1 = null;
joint2 = null;
ratio = 1;
}
}
}//package Code.Box2D.Dynamics.Joints
Section 57
//b2Jacobian (Code.Box2D.Dynamics.Joints.b2Jacobian)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
public class b2Jacobian {
public var linear1:b2Vec2;
public var linear2:b2Vec2;
public var angular2:Number;
public var angular1:Number;
public function b2Jacobian(){
linear1 = new b2Vec2();
linear2 = new b2Vec2();
super();
}
public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{
linear1.SetV(_arg1);
angular1 = _arg2;
linear2.SetV(_arg3);
angular2 = _arg4;
}
public function SetZero():void{
linear1.SetZero();
angular1 = 0;
linear2.SetZero();
angular2 = 0;
}
public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{
return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4)));
}
}
}//package Code.Box2D.Dynamics.Joints
Section 58
//b2Joint (Code.Box2D.Dynamics.Joints.b2Joint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class b2Joint {
public var m_islandFlag:Boolean;
public var m_body1:b2Body;
public var m_prev:b2Joint;
public var m_next:b2Joint;
public var m_type:int;
public var m_collideConnected:Boolean;
public var m_node1:b2JointEdge;
public var m_node2:b2JointEdge;
public var m_inv_dt:Number;
public var m_userData;
public var m_body2:b2Body;
public static const e_unknownJoint:int = 0;
public static const e_inactiveLimit:int = 0;
public static const e_atUpperLimit:int = 2;
public static const e_atLowerLimit:int = 1;
public static const e_gearJoint:int = 6;
public static const e_revoluteJoint:int = 1;
public static const e_equalLimits:int = 3;
public static const e_distanceJoint:int = 3;
public static const e_pulleyJoint:int = 4;
public static const e_prismaticJoint:int = 2;
public static const e_mouseJoint:int = 5;
public function b2Joint(_arg1:b2JointDef){
m_node1 = new b2JointEdge();
m_node2 = new b2JointEdge();
super();
m_type = _arg1.type;
m_prev = null;
m_next = null;
m_body1 = _arg1.body1;
m_body2 = _arg1.body2;
m_collideConnected = _arg1.collideConnected;
m_islandFlag = false;
m_userData = _arg1.userData;
}
public function GetAnchor1():b2Vec2{
return (null);
}
public function GetAnchor2():b2Vec2{
return (null);
}
public function InitVelocityConstraints(_arg1:b2TimeStep):void{
}
public function GetType():int{
return (m_type);
}
public function GetBody2():b2Body{
return (m_body2);
}
public function GetNext():b2Joint{
return (m_next);
}
public function GetReactionTorque():Number{
return (0);
}
public function GetUserData(){
return (m_userData);
}
public function GetReactionForce():b2Vec2{
return (null);
}
public function SolvePositionConstraints():Boolean{
return (false);
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public function GetBody1():b2Body{
return (m_body1);
}
public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
}
public function InitPositionConstraints():void{
}
public static function Destroy(_arg1:b2Joint, _arg2):void{
}
public static function Create(_arg1:b2JointDef, _arg2):b2Joint{
var _local3:b2Joint;
_local3 = null;
switch (_arg1.type){
case e_distanceJoint:
_local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef));
break;
case e_mouseJoint:
_local3 = new b2MouseJoint((_arg1 as b2MouseJointDef));
break;
case e_prismaticJoint:
_local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef));
break;
case e_revoluteJoint:
_local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef));
break;
case e_pulleyJoint:
_local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef));
break;
case e_gearJoint:
_local3 = new b2GearJoint((_arg1 as b2GearJointDef));
break;
default:
break;
};
return (_local3);
}
}
}//package Code.Box2D.Dynamics.Joints
Section 59
//b2JointDef (Code.Box2D.Dynamics.Joints.b2JointDef)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Dynamics.*;
public class b2JointDef {
public var collideConnected:Boolean;
public var body1:b2Body;
public var body2:b2Body;
public var userData;
public var type:int;
public function b2JointDef(){
type = b2Joint.e_unknownJoint;
userData = null;
body1 = null;
body2 = null;
collideConnected = false;
}
}
}//package Code.Box2D.Dynamics.Joints
Section 60
//b2JointEdge (Code.Box2D.Dynamics.Joints.b2JointEdge)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Dynamics.*;
public class b2JointEdge {
public var joint:b2Joint;
public var other:b2Body;
public var next:b2JointEdge;
public var prev:b2JointEdge;
}
}//package Code.Box2D.Dynamics.Joints
Section 61
//b2MouseJoint (Code.Box2D.Dynamics.Joints.b2MouseJoint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Common.*;
public class b2MouseJoint extends b2Joint {
public var m_beta:Number;
public var m_mass:b2Mat22;
public var m_target:b2Vec2;
public var m_impulse:b2Vec2;
public var m_localAnchor:b2Vec2;
private var K1:b2Mat22;
private var K2:b2Mat22;
private var K:b2Mat22;
public var m_gamma:Number;
public var m_C:b2Vec2;
public var m_maxForce:Number;
public function b2MouseJoint(_arg1:b2MouseJointDef){
var _local2:Number;
var _local3:Number;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
K = new b2Mat22();
K1 = new b2Mat22();
K2 = new b2Mat22();
m_localAnchor = new b2Vec2();
m_target = new b2Vec2();
m_impulse = new b2Vec2();
m_mass = new b2Mat22();
m_C = new b2Vec2();
super(_arg1);
m_target.SetV(_arg1.target);
_local2 = (m_target.x - m_body2.m_xf.position.x);
_local3 = (m_target.y - m_body2.m_xf.position.y);
_local4 = m_body2.m_xf.R;
m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y));
m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y));
m_maxForce = _arg1.maxForce;
m_impulse.SetZero();
_local5 = m_body2.m_mass;
_local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz);
_local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6);
_local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6));
m_gamma = (1 / (_local7 + _local8));
m_beta = (_local8 / (_local7 + _local8));
}
override public function GetAnchor1():b2Vec2{
return (m_target);
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor));
}
override public function GetReactionForce():b2Vec2{
return (m_impulse);
}
override public function SolvePositionConstraints():Boolean{
return (true);
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local2 = m_body2;
_local3 = _local2.m_xf.R;
_local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x);
_local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y);
_local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5));
_local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5));
_local4 = _local6;
_local7 = _local2.m_invMass;
_local8 = _local2.m_invI;
K1.col1.x = _local7;
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = _local7;
K2.col1.x = ((_local8 * _local5) * _local5);
K2.col2.x = ((-(_local8) * _local4) * _local5);
K2.col1.y = ((-(_local8) * _local4) * _local5);
K2.col2.y = ((_local8 * _local4) * _local4);
K.SetM(K1);
K.AddM(K2);
K.col1.x = (K.col1.x + m_gamma);
K.col2.y = (K.col2.y + m_gamma);
K.Invert(m_mass);
m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x);
m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y);
_local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98);
_local9 = (_arg1.dt * m_impulse.x);
_local10 = (_arg1.dt * m_impulse.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9))));
}
override public function GetReactionTorque():Number{
return (0);
}
public function SetTarget(_arg1:b2Vec2):void{
if (m_body2.IsSleeping()){
m_body2.WakeUp();
};
m_target = _arg1;
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
_local2 = m_body2;
_local3 = _local2.m_xf.R;
_local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x);
_local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y);
_local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7));
_local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7));
_local6 = _local4;
_local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7));
_local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6));
_local3 = m_mass;
_local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x));
_local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y));
_local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)));
_local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)));
_local12 = m_impulse.x;
_local13 = m_impulse.y;
m_impulse.x = (m_impulse.x + _local10);
m_impulse.y = (m_impulse.y + _local11);
_local14 = m_impulse.Length();
if (_local14 > m_maxForce){
m_impulse.Multiply((m_maxForce / _local14));
};
_local10 = (m_impulse.x - _local12);
_local11 = (m_impulse.y - _local13);
_local15 = (_arg1.dt * _local10);
_local16 = (_arg1.dt * _local11);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15))));
}
}
}//package Code.Box2D.Dynamics.Joints
Section 62
//b2MouseJointDef (Code.Box2D.Dynamics.Joints.b2MouseJointDef)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
public class b2MouseJointDef extends b2JointDef {
public var frequencyHz:Number;
public var dampingRatio:Number;
public var maxForce:Number;
public var target:b2Vec2;
public var timeStep:Number;
public function b2MouseJointDef(){
target = new b2Vec2();
super();
type = b2Joint.e_mouseJoint;
maxForce = 0;
frequencyHz = 5;
dampingRatio = 0.7;
timeStep = (1 / 60);
}
}
}//package Code.Box2D.Dynamics.Joints
Section 63
//b2PrismaticJoint (Code.Box2D.Dynamics.Joints.b2PrismaticJoint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Common.*;
public class b2PrismaticJoint extends b2Joint {
public var m_limitForce:Number;
public var m_refAngle:Number;
public var m_lowerTranslation:Number;
public var m_localXAxis1:b2Vec2;
public var m_torque:Number;
public var m_enableLimit:Boolean;
public var m_motorForce:Number;
public var m_force:Number;
public var m_localYAxis1:b2Vec2;
public var m_motorMass:Number;
public var m_maxMotorForce:Number;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_angularMass:Number;
public var m_limitState:int;
public var m_linearMass:Number;
public var m_upperTranslation:Number;
public var m_motorJacobian:b2Jacobian;
public var m_limitPositionImpulse:Number;
public var m_motorSpeed:Number;
public var m_linearJacobian:b2Jacobian;
public var m_enableMotor:Boolean;
public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_localXAxis1 = new b2Vec2();
m_localYAxis1 = new b2Vec2();
m_linearJacobian = new b2Jacobian();
m_motorJacobian = new b2Jacobian();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_localXAxis1.SetV(_arg1.localAxis1);
m_localYAxis1.x = -(m_localXAxis1.y);
m_localYAxis1.y = m_localXAxis1.x;
m_refAngle = _arg1.referenceAngle;
m_linearJacobian.SetZero();
m_linearMass = 0;
m_force = 0;
m_angularMass = 0;
m_torque = 0;
m_motorJacobian.SetZero();
m_motorMass = 0;
m_motorForce = 0;
m_limitForce = 0;
m_limitPositionImpulse = 0;
m_lowerTranslation = _arg1.lowerTranslation;
m_upperTranslation = _arg1.upperTranslation;
m_maxMotorForce = _arg1.maxMotorForce;
m_motorSpeed = _arg1.motorSpeed;
m_enableLimit = _arg1.enableLimit;
m_enableMotor = _arg1.enableMotor;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
public function EnableMotor(_arg1:Boolean):void{
m_enableMotor = _arg1;
}
public function GetUpperLimit():Number{
return (m_upperTranslation);
}
public function GetLowerLimit():Number{
return (m_lowerTranslation);
}
public function GetJointTranslation():Number{
var _local1:b2Body;
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:b2Vec2;
var _local6:Number;
var _local7:Number;
var _local8:b2Vec2;
var _local9:Number;
_local1 = m_body1;
_local2 = m_body2;
_local4 = _local1.GetWorldPoint(m_localAnchor1);
_local5 = _local2.GetWorldPoint(m_localAnchor2);
_local6 = (_local5.x - _local4.x);
_local7 = (_local5.y - _local4.y);
_local8 = _local1.GetWorldVector(m_localXAxis1);
_local9 = ((_local8.x * _local6) + (_local8.y * _local7));
return (_local9);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
m_lowerTranslation = _arg1;
m_upperTranslation = _arg2;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Mat22;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body1.m_xf.R;
_local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y)));
_local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y)));
_local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y)));
_local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y)));
return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5))));
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _local3:b2Body;
var _local4:b2Body;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:b2Mat22;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
var _local29:Number;
var _local30:Number;
var _local31:Number;
var _local32:Number;
_local3 = m_body1;
_local4 = m_body2;
_local5 = _local3.m_invMass;
_local6 = _local4.m_invMass;
_local7 = _local3.m_invI;
_local8 = _local4.m_invI;
_local9 = _local3.m_xf.R;
_local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12));
_local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12));
_local11 = _local10;
_local9 = _local4.m_xf.R;
_local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14));
_local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14));
_local13 = _local10;
_local15 = (_local3.m_sweep.c.x + _local11);
_local16 = (_local3.m_sweep.c.y + _local12);
_local17 = (_local4.m_sweep.c.x + _local13);
_local18 = (_local4.m_sweep.c.y + _local14);
_local19 = (_local17 - _local15);
_local20 = (_local18 - _local16);
_local9 = _local3.m_xf.R;
_local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y));
_local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y));
_local23 = ((_local21 * _local19) + (_local22 * _local20));
_local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local24 = (-(m_linearMass) * _local23);
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2));
_local25 = b2Math.b2Abs(_local23);
_local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle);
_local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
_local27 = (-(m_angularMass) * _local26);
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
_local28 = b2Math.b2Abs(_local26);
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local9 = _local3.m_xf.R;
_local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12));
_local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12));
_local11 = _local10;
_local9 = _local4.m_xf.R;
_local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14));
_local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14));
_local13 = _local10;
_local15 = (_local3.m_sweep.c.x + _local11);
_local16 = (_local3.m_sweep.c.y + _local12);
_local17 = (_local4.m_sweep.c.x + _local13);
_local18 = (_local4.m_sweep.c.y + _local14);
_local19 = (_local17 - _local15);
_local20 = (_local18 - _local16);
_local9 = _local3.m_xf.R;
_local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y));
_local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y));
_local31 = ((_local29 * _local19) + (_local30 * _local20));
_local32 = 0;
if (m_limitState == e_equalLimits){
_local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection);
_local32 = (-(m_motorMass) * _local1);
_local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26));
} else {
if (m_limitState == e_atLowerLimit){
_local1 = (_local31 - m_lowerTranslation);
_local25 = b2Math.b2Max(_local25, -(_local1));
_local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local32 = (-(m_motorMass) * _local1);
_local2 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0);
_local32 = (m_limitPositionImpulse - _local2);
} else {
if (m_limitState == e_atUpperLimit){
_local1 = (_local31 - m_upperTranslation);
_local25 = b2Math.b2Max(_local25, _local1);
_local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection);
_local32 = (-(m_motorMass) * _local1);
_local2 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0);
_local32 = (m_limitPositionImpulse - _local2);
};
};
};
_local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y));
_local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y));
_local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop))));
}
public function GetJointSpeed():Number{
var _local1:b2Body;
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:b2Vec2;
var _local16:b2Vec2;
var _local17:b2Vec2;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local1 = m_body1;
_local2 = m_body2;
_local3 = _local1.m_xf.R;
_local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
_local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
_local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5));
_local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5));
_local4 = _local6;
_local3 = _local2.m_xf.R;
_local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
_local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y);
_local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8));
_local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8));
_local7 = _local6;
_local9 = (_local1.m_sweep.c.x + _local4);
_local10 = (_local1.m_sweep.c.y + _local5);
_local11 = (_local2.m_sweep.c.x + _local7);
_local12 = (_local2.m_sweep.c.y + _local8);
_local13 = (_local11 - _local9);
_local14 = (_local12 - _local10);
_local15 = _local1.GetWorldVector(m_localXAxis1);
_local16 = _local1.m_linearVelocity;
_local17 = _local2.m_linearVelocity;
_local18 = _local1.m_angularVelocity;
_local19 = _local2.m_angularVelocity;
_local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4)))));
return (_local20);
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
var _local27:Number;
var _local28:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7));
_local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7));
_local6 = _local5;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local5;
_local10 = _local2.m_invMass;
_local11 = _local3.m_invMass;
_local12 = _local2.m_invI;
_local13 = _local3.m_invI;
_local4 = _local2.m_xf.R;
_local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y));
_local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y));
_local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x);
_local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y);
m_linearJacobian.linear1.x = -(_local14);
m_linearJacobian.linear1.y = -(_local15);
m_linearJacobian.linear2.x = _local14;
m_linearJacobian.linear2.y = _local15;
m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14)));
m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14));
m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2));
m_linearMass = (1 / m_linearMass);
m_angularMass = (_local12 + _local13);
if (m_angularMass > Number.MIN_VALUE){
m_angularMass = (1 / m_angularMass);
};
if (((m_enableLimit) || (m_enableMotor))){
_local4 = _local2.m_xf.R;
_local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y));
_local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y));
m_motorJacobian.linear1.x = -(_local18);
m_motorJacobian.linear1.y = -(_local19);
m_motorJacobian.linear2.x = _local18;
m_motorJacobian.linear2.y = _local19;
m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18)));
m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18));
m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2));
m_motorMass = (1 / m_motorMass);
if (m_enableLimit){
_local20 = (_local16 - _local6);
_local21 = (_local17 - _local7);
_local22 = ((_local18 * _local20) + (_local19 * _local21));
if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){
m_limitState = e_equalLimits;
} else {
if (_local22 <= m_lowerTranslation){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local22 >= m_upperTranslation){
if (m_limitState != e_atUpperLimit){
m_limitForce = 0;
};
m_limitState = e_atUpperLimit;
} else {
m_limitState = e_inactiveLimit;
m_limitForce = 0;
};
};
};
};
};
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit == false){
m_limitForce = 0;
};
if (_arg1.warmStarting){
_local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x)));
_local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y)));
_local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x)));
_local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y)));
_local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1)));
_local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2)));
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28));
} else {
m_force = 0;
m_torque = 0;
m_limitForce = 0;
m_motorForce = 0;
};
m_limitPositionImpulse = 0;
}
public function GetMotorForce():Number{
return (m_motorForce);
}
public function SetMaxMotorForce(_arg1:Number):void{
m_maxMotorForce = _arg1;
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
override public function GetReactionTorque():Number{
return (m_torque);
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_invMass;
_local5 = _local3.m_invMass;
_local6 = _local2.m_invI;
_local7 = _local3.m_invI;
_local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9);
m_force = (m_force + _local10);
_local11 = (_arg1.dt * _local10);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2));
_local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12);
m_torque = (m_torque + _local13);
_local14 = (_arg1.dt * _local13);
_local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14));
if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){
_local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed);
_local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15);
_local17 = m_motorForce;
m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce);
_local16 = (m_motorForce - _local17);
_local11 = (_arg1.dt * _local16);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity);
_local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local19);
} else {
if (m_limitState == e_atLowerLimit){
_local8 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0);
_local19 = (m_limitForce - _local8);
} else {
if (m_limitState == e_atUpperLimit){
_local8 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0);
_local19 = (m_limitForce - _local8);
};
};
};
_local11 = (_arg1.dt * _local19);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2));
};
}
}
}//package Code.Box2D.Dynamics.Joints
Section 64
//b2PrismaticJointDef (Code.Box2D.Dynamics.Joints.b2PrismaticJointDef)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class b2PrismaticJointDef extends b2JointDef {
public var localAxis1:b2Vec2;
public var referenceAngle:Number;
public var maxMotorForce:Number;
public var motorSpeed:Number;
public var upperTranslation:Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var enableLimit:Boolean;
public var enableMotor:Boolean;
public var lowerTranslation:Number;
public function b2PrismaticJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
localAxis1 = new b2Vec2();
super();
type = b2Joint.e_prismaticJoint;
localAxis1.Set(1, 0);
referenceAngle = 0;
enableLimit = false;
lowerTranslation = 0;
upperTranslation = 0;
enableMotor = false;
maxMotorForce = 0;
motorSpeed = 0;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{
body1 = _arg1;
body2 = _arg2;
localAnchor1 = body1.GetLocalPoint(_arg3);
localAnchor2 = body2.GetLocalPoint(_arg3);
localAxis1 = body1.GetLocalVector(_arg4);
referenceAngle = (body2.GetAngle() - body1.GetAngle());
}
}
}//package Code.Box2D.Dynamics.Joints
Section 65
//b2PulleyJoint (Code.Box2D.Dynamics.Joints.b2PulleyJoint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Common.*;
public class b2PulleyJoint extends b2Joint {
public var m_ground:b2Body;
public var m_maxLength2:Number;
public var m_limitForce1:Number;
public var m_maxLength1:Number;
public var m_limitState1:int;
public var m_limitState2:int;
public var m_limitPositionImpulse2:Number;
public var m_force:Number;
public var m_limitPositionImpulse1:Number;
public var m_constant:Number;
public var m_state:int;
public var m_ratio:Number;
public var m_groundAnchor1:b2Vec2;
public var m_groundAnchor2:b2Vec2;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
public var m_positionImpulse:Number;
public var m_limitMass2:Number;
public var m_limitMass1:Number;
public var m_pulleyMass:Number;
public var m_u1:b2Vec2;
public var m_u2:b2Vec2;
public var m_limitForce2:Number;
public static const b2_minPulleyLength:Number = 2;
public function b2PulleyJoint(_arg1:b2PulleyJointDef){
var _local2:b2Mat22;
var _local3:Number;
var _local4:Number;
m_groundAnchor1 = new b2Vec2();
m_groundAnchor2 = new b2Vec2();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_u1 = new b2Vec2();
m_u2 = new b2Vec2();
super(_arg1);
m_ground = m_body1.m_world.m_groundBody;
m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x);
m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y);
m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x);
m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_ratio = _arg1.ratio;
m_constant = (_arg1.length1 + (m_ratio * _arg1.length2));
m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength)));
m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio));
m_force = 0;
m_limitForce1 = 0;
m_limitForce2 = 0;
}
public function GetGroundAnchor2():b2Vec2{
var _local1:b2Vec2;
_local1 = m_ground.m_xf.position.Copy();
_local1.Add(m_groundAnchor2);
return (_local1);
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
override public function GetReactionForce():b2Vec2{
var _local1:b2Vec2;
_local1 = m_u2.Copy();
_local1.Multiply(m_force);
return (_local1);
}
override public function SolvePositionConstraints():Boolean{
var _local1:b2Body;
var _local2:b2Body;
var _local3:b2Mat22;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
_local1 = m_body1;
_local2 = m_body2;
_local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x);
_local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y);
_local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x);
_local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y);
_local23 = 0;
if (m_state == e_atUpperLimit){
_local3 = _local1.m_xf.R;
_local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
_local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9));
_local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9));
_local8 = _local22;
_local3 = _local2.m_xf.R;
_local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
_local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11));
_local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11));
_local10 = _local22;
_local12 = (_local1.m_sweep.c.x + _local8);
_local13 = (_local1.m_sweep.c.y + _local9);
_local14 = (_local2.m_sweep.c.x + _local10);
_local15 = (_local2.m_sweep.c.y + _local11);
m_u1.Set((_local12 - _local4), (_local13 - _local5));
m_u2.Set((_local14 - _local6), (_local15 - _local7));
_local16 = m_u1.Length();
_local17 = m_u2.Length();
if (_local16 > b2Settings.b2_linearSlop){
m_u1.Multiply((1 / _local16));
} else {
m_u1.SetZero();
};
if (_local17 > b2Settings.b2_linearSlop){
m_u2.Multiply((1 / _local17));
} else {
m_u2.SetZero();
};
_local18 = ((m_constant - _local16) - (m_ratio * _local17));
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_pulleyMass) * _local18);
_local20 = m_positionImpulse;
m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19));
_local19 = (m_positionImpulse - _local20);
_local12 = (-(_local19) * m_u1.x);
_local13 = (-(_local19) * m_u1.y);
_local14 = ((-(m_ratio) * _local19) * m_u2.x);
_local15 = ((-(m_ratio) * _local19) * m_u2.y);
_local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12));
_local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13));
_local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12))));
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local1.SynchronizeTransform();
_local2.SynchronizeTransform();
};
if (m_limitState1 == e_atUpperLimit){
_local3 = _local1.m_xf.R;
_local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x);
_local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9));
_local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9));
_local8 = _local22;
_local12 = (_local1.m_sweep.c.x + _local8);
_local13 = (_local1.m_sweep.c.y + _local9);
m_u1.Set((_local12 - _local4), (_local13 - _local5));
_local16 = m_u1.Length();
if (_local16 > b2Settings.b2_linearSlop){
m_u1.x = (m_u1.x * (1 / _local16));
m_u1.y = (m_u1.y * (1 / _local16));
} else {
m_u1.SetZero();
};
_local18 = (m_maxLength1 - _local16);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_limitMass1) * _local18);
_local21 = m_limitPositionImpulse1;
m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19));
_local19 = (m_limitPositionImpulse1 - _local21);
_local12 = (-(_local19) * m_u1.x);
_local13 = (-(_local19) * m_u1.y);
_local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12));
_local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13));
_local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12))));
_local1.SynchronizeTransform();
};
if (m_limitState2 == e_atUpperLimit){
_local3 = _local2.m_xf.R;
_local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x);
_local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y);
_local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11));
_local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11));
_local10 = _local22;
_local14 = (_local2.m_sweep.c.x + _local10);
_local15 = (_local2.m_sweep.c.y + _local11);
m_u2.Set((_local14 - _local6), (_local15 - _local7));
_local17 = m_u2.Length();
if (_local17 > b2Settings.b2_linearSlop){
m_u2.x = (m_u2.x * (1 / _local17));
m_u2.y = (m_u2.y * (1 / _local17));
} else {
m_u2.SetZero();
};
_local18 = (m_maxLength2 - _local17);
_local23 = b2Math.b2Max(_local23, -(_local18));
_local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0);
_local19 = (-(m_limitMass2) * _local18);
_local21 = m_limitPositionImpulse2;
m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19));
_local19 = (m_limitPositionImpulse2 - _local21);
_local14 = (-(_local19) * m_u2.x);
_local15 = (-(_local19) * m_u2.y);
_local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14));
_local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15));
_local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14))));
_local2.SynchronizeTransform();
};
return ((_local23 < b2Settings.b2_linearSlop));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6));
_local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6));
_local5 = _local7;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local7;
_local10 = (_local2.m_sweep.c.x + _local5);
_local11 = (_local2.m_sweep.c.y + _local6);
_local12 = (_local3.m_sweep.c.x + _local8);
_local13 = (_local3.m_sweep.c.y + _local9);
_local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x);
_local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y);
_local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x);
_local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y);
m_u1.Set((_local10 - _local14), (_local11 - _local15));
m_u2.Set((_local12 - _local16), (_local13 - _local17));
_local18 = m_u1.Length();
_local19 = m_u2.Length();
if (_local18 > b2Settings.b2_linearSlop){
m_u1.Multiply((1 / _local18));
} else {
m_u1.SetZero();
};
if (_local19 > b2Settings.b2_linearSlop){
m_u2.Multiply((1 / _local19));
} else {
m_u2.SetZero();
};
_local20 = ((m_constant - _local18) - (m_ratio * _local19));
if (_local20 > 0){
m_state = e_inactiveLimit;
m_force = 0;
} else {
m_state = e_atUpperLimit;
m_positionImpulse = 0;
};
if (_local18 < m_maxLength1){
m_limitState1 = e_inactiveLimit;
m_limitForce1 = 0;
} else {
m_limitState1 = e_atUpperLimit;
m_limitPositionImpulse1 = 0;
};
if (_local19 < m_maxLength2){
m_limitState2 = e_inactiveLimit;
m_limitForce2 = 0;
} else {
m_limitState2 = e_atUpperLimit;
m_limitPositionImpulse2 = 0;
};
_local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x));
_local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x));
m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21));
m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22));
m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2));
m_limitMass1 = (1 / m_limitMass1);
m_limitMass2 = (1 / m_limitMass2);
m_pulleyMass = (1 / m_pulleyMass);
if (_arg1.warmStarting){
_local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x);
_local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y);
_local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x);
_local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25))));
} else {
m_force = 0;
m_limitForce1 = 0;
m_limitForce2 = 0;
};
}
override public function GetReactionTorque():Number{
return (0);
}
public function GetRatio():Number{
return (m_ratio);
}
public function GetLength2():Number{
var _local1:b2Vec2;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body2.GetWorldPoint(m_localAnchor2);
_local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x);
_local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y);
_local4 = (_local1.x - _local2);
_local5 = (_local1.y - _local3);
return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))));
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6));
_local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6));
_local5 = _local7;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local7;
if (m_state == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13))));
_local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18);
_local20 = m_force;
m_force = b2Math.b2Max(0, (m_force + _local19));
_local19 = (m_force - _local20);
_local14 = ((-(_arg1.dt) * _local19) * m_u1.x);
_local15 = ((-(_arg1.dt) * _local19) * m_u1.y);
_local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x);
_local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
};
if (m_limitState1 == e_atUpperLimit){
_local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6));
_local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5));
_local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11)));
_local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18);
_local20 = m_limitForce1;
m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19));
_local19 = (m_limitForce1 - _local20);
_local14 = ((-(_arg1.dt) * _local19) * m_u1.x);
_local15 = ((-(_arg1.dt) * _local19) * m_u1.y);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15));
_local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14))));
};
if (m_limitState2 == e_atUpperLimit){
_local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9));
_local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8));
_local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13)));
_local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18);
_local20 = m_limitForce2;
m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19));
_local19 = (m_limitForce2 - _local20);
_local16 = ((-(_arg1.dt) * _local19) * m_u2.x);
_local17 = ((-(_arg1.dt) * _local19) * m_u2.y);
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16))));
};
}
public function GetLength1():Number{
var _local1:b2Vec2;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = m_body1.GetWorldPoint(m_localAnchor1);
_local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x);
_local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y);
_local4 = (_local1.x - _local2);
_local5 = (_local1.y - _local3);
return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))));
}
public function GetGroundAnchor1():b2Vec2{
var _local1:b2Vec2;
_local1 = m_ground.m_xf.position.Copy();
_local1.Add(m_groundAnchor1);
return (_local1);
}
}
}//package Code.Box2D.Dynamics.Joints
Section 66
//b2PulleyJointDef (Code.Box2D.Dynamics.Joints.b2PulleyJointDef)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class b2PulleyJointDef extends b2JointDef {
public var maxLength2:Number;
public var length1:Number;
public var length2:Number;
public var maxLength1:Number;
public var ratio:Number;
public var groundAnchor1:b2Vec2;
public var groundAnchor2:b2Vec2;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public function b2PulleyJointDef(){
groundAnchor1 = new b2Vec2();
groundAnchor2 = new b2Vec2();
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_pulleyJoint;
groundAnchor1.Set(-1, 1);
groundAnchor2.Set(1, 1);
localAnchor1.Set(-1, 0);
localAnchor2.Set(1, 0);
length1 = 0;
maxLength1 = 0;
length2 = 0;
maxLength2 = 0;
ratio = 1;
collideConnected = true;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
body1 = _arg1;
body2 = _arg2;
groundAnchor1.SetV(_arg3);
groundAnchor2.SetV(_arg4);
localAnchor1 = body1.GetLocalPoint(_arg5);
localAnchor2 = body2.GetLocalPoint(_arg6);
_local8 = (_arg5.x - _arg3.x);
_local9 = (_arg5.y - _arg3.y);
length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9)));
_local10 = (_arg6.x - _arg4.x);
_local11 = (_arg6.y - _arg4.y);
length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
ratio = _arg7;
_local12 = (length1 + (ratio * length2));
maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength));
maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio);
}
}
}//package Code.Box2D.Dynamics.Joints
Section 67
//b2RevoluteJoint (Code.Box2D.Dynamics.Joints.b2RevoluteJoint)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Common.*;
public class b2RevoluteJoint extends b2Joint {
public var m_limitForce:Number;
public var m_motorForce:Number;
public var m_pivotMass:b2Mat22;
public var m_enableLimit:Boolean;
public var m_limitState:int;
public var m_motorMass:Number;
public var m_localAnchor1:b2Vec2;
public var m_localAnchor2:b2Vec2;
private var K1:b2Mat22;
private var K2:b2Mat22;
private var K3:b2Mat22;
private var K:b2Mat22;
public var m_pivotForce:b2Vec2;
public var m_motorSpeed:Number;
public var m_enableMotor:Boolean;
public var m_limitPositionImpulse:Number;
public var m_maxMotorTorque:Number;
public var m_referenceAngle:Number;
public var m_lowerAngle:Number;
public var m_upperAngle:Number;
public static var tImpulse:b2Vec2 = new b2Vec2();
public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){
K = new b2Mat22();
K1 = new b2Mat22();
K2 = new b2Mat22();
K3 = new b2Mat22();
m_localAnchor1 = new b2Vec2();
m_localAnchor2 = new b2Vec2();
m_pivotForce = new b2Vec2();
m_pivotMass = new b2Mat22();
super(_arg1);
m_localAnchor1.SetV(_arg1.localAnchor1);
m_localAnchor2.SetV(_arg1.localAnchor2);
m_referenceAngle = _arg1.referenceAngle;
m_pivotForce.Set(0, 0);
m_motorForce = 0;
m_limitForce = 0;
m_limitPositionImpulse = 0;
m_lowerAngle = _arg1.lowerAngle;
m_upperAngle = _arg1.upperAngle;
m_maxMotorTorque = _arg1.maxMotorTorque;
m_motorSpeed = _arg1.motorSpeed;
m_enableLimit = _arg1.enableLimit;
m_enableMotor = _arg1.enableMotor;
}
override public function GetAnchor1():b2Vec2{
return (m_body1.GetWorldPoint(m_localAnchor1));
}
override public function GetAnchor2():b2Vec2{
return (m_body2.GetWorldPoint(m_localAnchor2));
}
public function EnableMotor(_arg1:Boolean):void{
m_enableMotor = _arg1;
}
public function GetUpperLimit():Number{
return (m_upperAngle);
}
public function GetLowerLimit():Number{
return (m_lowerAngle);
}
public function SetLimits(_arg1:Number, _arg2:Number):void{
m_lowerAngle = _arg1;
m_upperAngle = _arg2;
}
public function GetMotorSpeed():Number{
return (m_motorSpeed);
}
override public function GetReactionForce():b2Vec2{
return (m_pivotForce);
}
override public function SolvePositionConstraints():Boolean{
var _local1:Number;
var _local2:Number;
var _local3:b2Body;
var _local4:b2Body;
var _local5:Number;
var _local6:b2Mat22;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:Number;
var _local26:Number;
_local3 = m_body1;
_local4 = m_body2;
_local5 = 0;
_local6 = _local3.m_xf.R;
_local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x);
_local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y);
_local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8));
_local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8));
_local7 = _local9;
_local6 = _local4.m_xf.R;
_local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x);
_local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y);
_local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11));
_local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11));
_local10 = _local9;
_local12 = (_local3.m_sweep.c.x + _local7);
_local13 = (_local3.m_sweep.c.y + _local8);
_local14 = (_local4.m_sweep.c.x + _local10);
_local15 = (_local4.m_sweep.c.y + _local11);
_local16 = (_local14 - _local12);
_local17 = (_local15 - _local13);
_local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17)));
_local18 = _local3.m_invMass;
_local19 = _local4.m_invMass;
_local20 = _local3.m_invI;
_local21 = _local4.m_invI;
K1.col1.x = (_local18 + _local19);
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = (_local18 + _local19);
K2.col1.x = ((_local20 * _local8) * _local8);
K2.col2.x = ((-(_local20) * _local7) * _local8);
K2.col1.y = ((-(_local20) * _local7) * _local8);
K2.col2.y = ((_local20 * _local7) * _local7);
K3.col1.x = ((_local21 * _local11) * _local11);
K3.col2.x = ((-(_local21) * _local10) * _local11);
K3.col1.y = ((-(_local21) * _local10) * _local11);
K3.col2.y = ((_local21 * _local10) * _local10);
K.SetM(K1);
K.AddM(K2);
K.AddM(K3);
K.Solve(tImpulse, -(_local16), -(_local17));
_local22 = tImpulse.x;
_local23 = tImpulse.y;
_local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22));
_local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23));
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22))));
_local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22));
_local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22))));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
_local24 = 0;
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle);
_local26 = 0;
if (m_limitState == e_equalLimits){
_local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local24 = b2Math.b2Abs(_local2);
} else {
if (m_limitState == e_atLowerLimit){
_local2 = (_local25 - m_lowerAngle);
_local24 = b2Math.b2Max(0, -(_local2));
_local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
} else {
if (m_limitState == e_atUpperLimit){
_local2 = (_local25 - m_upperAngle);
_local24 = b2Math.b2Max(0, _local2);
_local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection);
_local26 = (-(m_motorMass) * _local2);
_local1 = m_limitPositionImpulse;
m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0);
_local26 = (m_limitPositionImpulse - _local1);
};
};
};
_local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26));
_local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26));
_local3.SynchronizeTransform();
_local4.SynchronizeTransform();
};
return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop))));
}
public function GetJointSpeed():Number{
return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity));
}
public function SetMotorSpeed(_arg1:Number):void{
m_motorSpeed = _arg1;
}
public function SetMaxMotorTorque(_arg1:Number):void{
m_maxMotorTorque = _arg1;
}
public function GetJointAngle():Number{
return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle));
}
override public function InitVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7));
_local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7));
_local6 = _local5;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local5;
_local10 = _local2.m_invMass;
_local11 = _local3.m_invMass;
_local12 = _local2.m_invI;
_local13 = _local3.m_invI;
K1.col1.x = (_local10 + _local11);
K1.col2.x = 0;
K1.col1.y = 0;
K1.col2.y = (_local10 + _local11);
K2.col1.x = ((_local12 * _local7) * _local7);
K2.col2.x = ((-(_local12) * _local6) * _local7);
K2.col1.y = ((-(_local12) * _local6) * _local7);
K2.col2.y = ((_local12 * _local6) * _local6);
K3.col1.x = ((_local13 * _local9) * _local9);
K3.col2.x = ((-(_local13) * _local8) * _local9);
K3.col1.y = ((-(_local13) * _local8) * _local9);
K3.col2.y = ((_local13 * _local8) * _local8);
K.SetM(K1);
K.AddM(K2);
K.AddM(K3);
K.Invert(m_pivotMass);
m_motorMass = (1 / (_local12 + _local13));
if (m_enableMotor == false){
m_motorForce = 0;
};
if (m_enableLimit){
_local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle);
if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){
m_limitState = e_equalLimits;
} else {
if (_local14 <= m_lowerAngle){
if (m_limitState != e_atLowerLimit){
m_limitForce = 0;
};
m_limitState = e_atLowerLimit;
} else {
if (_local14 >= m_upperAngle){
if (m_limitState != e_atUpperLimit){
m_limitForce = 0;
};
m_limitState = e_atUpperLimit;
} else {
m_limitState = e_inactiveLimit;
m_limitForce = 0;
};
};
};
} else {
m_limitForce = 0;
};
if (_arg1.warmStarting){
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y));
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce)));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce)));
} else {
m_pivotForce.SetZero();
m_motorForce = 0;
m_limitForce = 0;
};
m_limitPositionImpulse = 0;
}
public function EnableLimit(_arg1:Boolean):void{
m_enableLimit = _arg1;
}
public function GetMotorTorque():Number{
return (m_motorForce);
}
override public function GetReactionTorque():Number{
return (m_limitForce);
}
public function IsLimitEnabled():Boolean{
return (m_enableLimit);
}
public function IsMotorEnabled():Boolean{
return (m_enableMotor);
}
override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2Mat22;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
_local2 = m_body1;
_local3 = m_body2;
_local4 = _local2.m_xf.R;
_local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x);
_local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7));
_local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7));
_local6 = _local5;
_local4 = _local3.m_xf.R;
_local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x);
_local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y);
_local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9));
_local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9));
_local8 = _local5;
_local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7));
_local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6));
_local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12)));
_local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12)));
m_pivotForce.x = (m_pivotForce.x + _local13);
m_pivotForce.y = (m_pivotForce.y + _local14);
_local15 = (_arg1.dt * _local13);
_local16 = (_arg1.dt * _local14);
_local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15));
_local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16));
_local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15))));
_local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15));
_local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16));
_local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15))));
if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){
_local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed);
_local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17);
_local19 = m_motorForce;
m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque);
_local18 = (m_motorForce - _local19);
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18));
};
if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){
_local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity);
_local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20);
if (m_limitState == e_equalLimits){
m_limitForce = (m_limitForce + _local21);
} else {
if (m_limitState == e_atLowerLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
} else {
if (m_limitState == e_atUpperLimit){
_local10 = m_limitForce;
m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0);
_local21 = (m_limitForce - _local10);
};
};
};
_local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21));
_local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21));
};
}
}
}//package Code.Box2D.Dynamics.Joints
Section 68
//b2RevoluteJointDef (Code.Box2D.Dynamics.Joints.b2RevoluteJointDef)
package Code.Box2D.Dynamics.Joints {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class b2RevoluteJointDef extends b2JointDef {
public var referenceAngle:Number;
public var upperAngle:Number;
public var lowerAngle:Number;
public var motorSpeed:Number;
public var maxMotorTorque:Number;
public var localAnchor1:b2Vec2;
public var localAnchor2:b2Vec2;
public var enableLimit:Boolean;
public var enableMotor:Boolean;
public function b2RevoluteJointDef(){
localAnchor1 = new b2Vec2();
localAnchor2 = new b2Vec2();
super();
type = b2Joint.e_revoluteJoint;
localAnchor1.Set(0, 0);
localAnchor2.Set(0, 0);
referenceAngle = 0;
lowerAngle = 0;
upperAngle = 0;
maxMotorTorque = 0;
motorSpeed = 0;
enableLimit = false;
enableMotor = false;
}
public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{
body1 = _arg1;
body2 = _arg2;
localAnchor1 = body1.GetLocalPoint(_arg3);
localAnchor2 = body2.GetLocalPoint(_arg3);
referenceAngle = (body2.GetAngle() - body1.GetAngle());
}
}
}//package Code.Box2D.Dynamics.Joints
Section 69
//b2Body (Code.Box2D.Dynamics.b2Body)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Dynamics.Contacts.*;
public class b2Body {
public var m_next:b2Body;
public var m_contactList:b2ContactEdge;
public var m_angularVelocity:Number;
public var m_shapeList:b2Shape;
public var m_force:b2Vec2;
public var m_mass:Number;
public var m_sweep:b2Sweep;
public var m_xf:b2XForm;
public var m_torque:Number;
public var m_userData;
public var m_flags:uint;
public var m_forceSleep:Boolean;// = false
public var m_world:b2World;
public var m_linearVelocity:b2Vec2;
public var m_prev:b2Body;
public var m_invMass:Number;
public var m_linearDamping:Number;
public var m_type:int;
public var m_angularDamping:Number;
public var m_sleepTime:Number;
public var m_shapeCount:int;
public var m_jointList:b2JointEdge;
public var m_invI:Number;
public var m_I:Number;
public static var e_fixedRotationFlag:uint = 64;
public static var e_frozenFlag:uint = 2;
public static var e_maxTypes:uint = 3;
public static var e_sleepFlag:uint = 8;
private static var s_massData:b2MassData = new b2MassData();
public static var e_bulletFlag:uint = 32;
public static var e_staticType:uint = 1;
public static var e_islandFlag:uint = 4;
public static var e_allowSleepFlag:uint = 16;
private static var s_xf1:b2XForm = new b2XForm();
public static var e_dynamicType:uint = 2;
public function b2Body(_arg1:b2BodyDef, _arg2:b2World){
var _local3:b2Mat22;
var _local4:b2Vec2;
m_forceSleep = false;
m_xf = new b2XForm();
m_sweep = new b2Sweep();
m_linearVelocity = new b2Vec2();
m_force = new b2Vec2();
super();
m_flags = 0;
if (_arg1.isBullet){
m_flags = (m_flags | e_bulletFlag);
};
if (_arg1.fixedRotation){
m_flags = (m_flags | e_fixedRotationFlag);
};
if (_arg1.allowSleep){
m_flags = (m_flags | e_allowSleepFlag);
};
if (_arg1.isSleeping){
m_flags = (m_flags | e_sleepFlag);
};
m_world = _arg2;
m_xf.position.SetV(_arg1.position);
m_xf.R.Set(_arg1.angle);
m_sweep.localCenter.SetV(_arg1.massData.center);
m_sweep.t0 = 1;
m_sweep.a0 = (m_sweep.a = _arg1.angle);
_local3 = m_xf.R;
_local4 = m_sweep.localCenter;
m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
m_jointList = null;
m_contactList = null;
m_prev = null;
m_next = null;
m_linearDamping = _arg1.linearDamping;
m_angularDamping = _arg1.angularDamping;
m_force.Set(0, 0);
m_torque = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_sleepTime = 0;
m_invMass = 0;
m_I = 0;
m_invI = 0;
m_mass = _arg1.massData.mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
m_I = _arg1.massData.I;
};
if (m_I > 0){
m_invI = (1 / m_I);
};
if ((((m_invMass == 0)) && ((m_invI == 0)))){
m_type = e_staticType;
} else {
m_type = e_dynamicType;
};
m_userData = _arg1.userData;
m_shapeList = null;
m_shapeCount = 0;
}
public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{
return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x)))));
}
public function SetLinearVelocity(_arg1:b2Vec2):void{
m_linearVelocity.SetV(_arg1);
}
public function WakeUp():void{
if (!m_forceSleep){
m_flags = (m_flags & ~(e_sleepFlag));
m_sleepTime = 0;
};
}
public function GetLocalCenter():b2Vec2{
return (m_sweep.localCenter);
}
public function ApplyTorque(_arg1:Number):void{
if (IsSleeping()){
WakeUp();
};
m_torque = (m_torque + _arg1);
}
public function IsFrozen():Boolean{
return (((m_flags & e_frozenFlag) == e_frozenFlag));
}
public function IsDynamic():Boolean{
return ((m_type == e_dynamicType));
}
public function GetLinearVelocity():b2Vec2{
return (m_linearVelocity);
}
public function SynchronizeTransform():void{
var _local1:b2Mat22;
var _local2:b2Vec2;
m_xf.R.Set(m_sweep.a);
_local1 = m_xf.R;
_local2 = m_sweep.localCenter;
m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y)));
m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y)));
}
public function GetInertia():Number{
return (m_I);
}
public function PutToSleep():void{
m_flags = (m_flags | e_sleepFlag);
m_sleepTime = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_force.SetZero();
m_torque = 0;
}
public function SetMassFromShapes():void{
var _local1:b2Shape;
var _local2:Number;
var _local3:Number;
var _local4:b2MassData;
var _local5:b2Mat22;
var _local6:b2Vec2;
var _local7:int;
if (m_world.m_lock == true){
return;
};
m_mass = 0;
m_invMass = 0;
m_I = 0;
m_invI = 0;
_local2 = 0;
_local3 = 0;
_local4 = s_massData;
_local1 = m_shapeList;
while (_local1) {
_local1.ComputeMass(_local4);
m_mass = (m_mass + _local4.mass);
_local2 = (_local2 + (_local4.mass * _local4.center.x));
_local3 = (_local3 + (_local4.mass * _local4.center.y));
m_I = (m_I + _local4.I);
_local1 = _local1.m_next;
};
if (m_mass > 0){
m_invMass = (1 / m_mass);
_local2 = (_local2 * m_invMass);
_local3 = (_local3 * m_invMass);
};
if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){
m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3))));
m_invI = (1 / m_I);
} else {
m_I = 0;
m_invI = 0;
};
m_sweep.localCenter.Set(_local2, _local3);
_local5 = m_xf.R;
_local6 = m_sweep.localCenter;
m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y));
m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
_local1 = m_shapeList;
while (_local1) {
_local1.UpdateSweepRadius(m_sweep.localCenter);
_local1 = _local1.m_next;
};
_local7 = m_type;
if ((((m_invMass == 0)) && ((m_invI == 0)))){
m_type = e_staticType;
} else {
m_type = e_dynamicType;
};
if (_local7 != m_type){
_local1 = m_shapeList;
while (_local1) {
_local1.RefilterProxy(m_world.m_broadPhase, m_xf);
_local1 = _local1.m_next;
};
};
}
public function IsSleeping():Boolean{
return (((m_flags & e_sleepFlag) == e_sleepFlag));
}
public function GetJointList():b2JointEdge{
return (m_jointList);
}
public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{
var _local3:b2Shape;
var _local4:b2Mat22;
var _local5:b2Vec2;
var _local6:Boolean;
var _local7:Boolean;
if (m_world.m_lock == true){
return (true);
};
if (IsFrozen()){
return (false);
};
m_xf.R.Set(_arg2);
m_xf.position.SetV(_arg1);
_local4 = m_xf.R;
_local5 = m_sweep.localCenter;
m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y));
m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
m_sweep.a0 = (m_sweep.a = _arg2);
_local6 = false;
_local3 = m_shapeList;
while (_local3) {
_local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf);
if (_local7 == false){
_local6 = true;
break;
};
_local3 = _local3.m_next;
};
if (_local6 == true){
m_flags = (m_flags | e_frozenFlag);
m_linearVelocity.SetZero();
m_angularVelocity = 0;
_local3 = m_shapeList;
while (_local3) {
_local3.DestroyProxy(m_world.m_broadPhase);
_local3 = _local3.m_next;
};
return (false);
};
m_world.m_broadPhase.Commit();
return (true);
}
public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulXT(m_xf, _arg1));
}
public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{
if (IsSleeping()){
WakeUp();
};
m_force.x = (m_force.x + _arg1.x);
m_force.y = (m_force.y + _arg1.y);
m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)));
}
public function SynchronizeShapes():Boolean{
var _local1:b2XForm;
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local4:b2Shape;
var _local5:Boolean;
_local1 = s_xf1;
_local1.R.Set(m_sweep.a0);
_local2 = _local1.R;
_local3 = m_sweep.localCenter;
_local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)));
_local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y)));
_local5 = true;
_local4 = m_shapeList;
while (_local4) {
_local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf);
if (_local5 == false){
break;
};
_local4 = _local4.m_next;
};
if (_local5 == false){
m_flags = (m_flags | e_frozenFlag);
m_linearVelocity.SetZero();
m_angularVelocity = 0;
_local4 = m_shapeList;
while (_local4) {
_local4.DestroyProxy(m_world.m_broadPhase);
_local4 = _local4.m_next;
};
return (false);
};
return (true);
}
public function GetAngle():Number{
return (m_sweep.a);
}
public function GetXForm():b2XForm{
return (m_xf);
}
public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{
if (IsSleeping()){
WakeUp();
};
m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x));
m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y));
m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))));
}
public function GetNext():b2Body{
return (m_next);
}
public function GetMass():Number{
return (m_mass);
}
public function ForceSleep():void{
m_flags = (m_flags | e_sleepFlag);
m_sleepTime = 0;
m_linearVelocity.SetZero();
m_angularVelocity = 0;
m_force.SetZero();
m_torque = 0;
m_forceSleep = true;
}
public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{
var _local2:b2Mat22;
var _local3:b2Vec2;
_local2 = m_xf.R;
_local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y)));
_local3.x = (_local3.x + m_xf.position.x);
_local3.y = (_local3.y + m_xf.position.y);
return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x)))));
}
public function GetAngularVelocity():Number{
return (m_angularVelocity);
}
public function SetAngularVelocity(_arg1:Number):void{
m_angularVelocity = _arg1;
}
public function SetMass(_arg1:b2MassData):void{
var _local2:b2Shape;
var _local3:b2Mat22;
var _local4:b2Vec2;
var _local5:int;
if (m_world.m_lock == true){
return;
};
m_invMass = 0;
m_I = 0;
m_invI = 0;
m_mass = _arg1.mass;
if (m_mass > 0){
m_invMass = (1 / m_mass);
};
if ((m_flags & b2Body.e_fixedRotationFlag) == 0){
m_I = _arg1.I;
};
if (m_I > 0){
m_invI = (1 / m_I);
};
m_sweep.localCenter.SetV(_arg1.center);
_local3 = m_xf.R;
_local4 = m_sweep.localCenter;
m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y));
m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y));
m_sweep.c.x = (m_sweep.c.x + m_xf.position.x);
m_sweep.c.y = (m_sweep.c.y + m_xf.position.y);
m_sweep.c0.SetV(m_sweep.c);
_local2 = m_shapeList;
while (_local2) {
_local2.UpdateSweepRadius(m_sweep.localCenter);
_local2 = _local2.m_next;
};
_local5 = m_type;
if ((((m_invMass == 0)) && ((m_invI == 0)))){
m_type = e_staticType;
} else {
m_type = e_dynamicType;
};
if (_local5 != m_type){
_local2 = m_shapeList;
while (_local2) {
_local2.RefilterProxy(m_world.m_broadPhase, m_xf);
_local2 = _local2.m_next;
};
};
}
public function IsStatic():Boolean{
return ((m_type == e_staticType));
}
public function GetWorldVector(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulMV(m_xf.R, _arg1));
}
public function GetShapeList():b2Shape{
return (m_shapeList);
}
public function Advance(_arg1:Number):void{
m_sweep.Advance(_arg1);
m_sweep.c.SetV(m_sweep.c0);
m_sweep.a = m_sweep.a0;
SynchronizeTransform();
}
public function SetBullet(_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_bulletFlag);
} else {
m_flags = (m_flags & ~(e_bulletFlag));
};
}
public function CreateShape(_arg1:b2ShapeDef):b2Shape{
var _local2:b2Shape;
if (m_world.m_lock == true){
return (null);
};
_local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator);
_local2.m_next = m_shapeList;
m_shapeList = _local2;
m_shapeCount++;
_local2.m_body = this;
_local2.CreateProxy(m_world.m_broadPhase, m_xf);
_local2.UpdateSweepRadius(m_sweep.localCenter);
return (_local2);
}
public function IsConnected(_arg1:b2Body):Boolean{
var _local2:b2JointEdge;
_local2 = m_jointList;
while (_local2) {
if (_local2.other == _arg1){
return ((_local2.joint.m_collideConnected == false));
};
_local2 = _local2.next;
};
return (false);
}
public function DestroyShape(_arg1:b2Shape):void{
var _local2:b2Shape;
var _local3:b2Shape;
var _local4:Boolean;
if (m_world.m_lock == true){
return;
};
_arg1.DestroyProxy(m_world.m_broadPhase);
_local2 = m_shapeList;
_local3 = null;
_local4 = false;
while (_local2 != null) {
if (_local2 == _arg1){
if (_local3){
_local3.m_next = _arg1.m_next;
} else {
m_shapeList = _arg1.m_next;
};
_local4 = true;
break;
};
_local3 = _local2;
_local2 = _local2.m_next;
};
_arg1.m_body = null;
_arg1.m_next = null;
m_shapeCount--;
b2Shape.Destroy(_arg1, m_world.m_blockAllocator);
}
public function GetUserData(){
return (m_userData);
}
public function IsBullet():Boolean{
return (((m_flags & e_bulletFlag) == e_bulletFlag));
}
public function GetWorldCenter():b2Vec2{
return (m_sweep.c);
}
public function AllowSleeping(_arg1:Boolean):void{
if (_arg1){
m_flags = (m_flags | e_allowSleepFlag);
} else {
m_flags = (m_flags & ~(e_allowSleepFlag));
WakeUp();
};
}
public function SetUserData(_arg1):void{
m_userData = _arg1;
}
public function GetLocalVector(_arg1:b2Vec2):b2Vec2{
return (b2Math.b2MulTMV(m_xf.R, _arg1));
}
public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{
var _local2:b2Mat22;
var _local3:b2Vec2;
_local2 = m_xf.R;
_local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y)));
_local3.x = (_local3.x + m_xf.position.x);
_local3.y = (_local3.y + m_xf.position.y);
return (_local3);
}
public function GetWorld():b2World{
return (m_world);
}
public function GetPosition():b2Vec2{
return (m_xf.position);
}
}
}//package Code.Box2D.Dynamics
Section 70
//b2BodyDef (Code.Box2D.Dynamics.b2BodyDef)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
public class b2BodyDef {
public var isSleeping:Boolean;
public var position:b2Vec2;
public var isBullet:Boolean;
public var allowSleep:Boolean;
public var userData;
public var angularDamping:Number;
public var fixedRotation:Boolean;
public var angle:Number;
public var linearDamping:Number;
public var massData:b2MassData;
public function b2BodyDef(){
massData = new b2MassData();
position = new b2Vec2();
super();
massData.center.SetZero();
massData.mass = 0;
massData.I = 0;
userData = null;
position.Set(0, 0);
angle = 0;
linearDamping = 0;
angularDamping = 0;
allowSleep = true;
isSleeping = false;
fixedRotation = false;
isBullet = false;
}
}
}//package Code.Box2D.Dynamics
Section 71
//b2BoundaryListener (Code.Box2D.Dynamics.b2BoundaryListener)
package Code.Box2D.Dynamics {
public class b2BoundaryListener {
public function Violation(_arg1:b2Body):void{
}
}
}//package Code.Box2D.Dynamics
Section 72
//b2ContactFilter (Code.Box2D.Dynamics.b2ContactFilter)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
public class b2ContactFilter {
public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter);
;
public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{
var _local3:b2FilterData;
var _local4:b2FilterData;
var _local5:Boolean;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local3 = _arg1.GetFilterData();
_local4 = _arg2.GetFilterData();
if (_local3.isCloud){
if (_arg1.m_body.GetAngle() != 0){
_local6 = (_arg1.m_body.GetPosition().x - _arg2.m_body.GetPosition().x);
_local7 = (_arg1.m_body.GetPosition().y - _arg2.m_body.GetPosition().y);
_local8 = Math.cos(-(_arg1.m_body.GetAngle()));
_local9 = Math.sin(-(_arg1.m_body.GetAngle()));
_local10 = ((_local6 * _local8) + (_local7 * -(_local9)));
_local11 = ((_local6 * _local9) + (_local7 * _local8));
_local12 = Math.atan2(_local11, _local10);
if ((((_local12 < -0.35)) && ((_local12 > -2.79)))){
return (false);
};
} else {
if (_arg2.m_body.GetLinearVelocity().y < 0){
if (_arg1.m_body.GetPosition().y < (_arg2.m_body.GetPosition().y - _arg2.m_body.GetLinearVelocity().y)){
return (false);
};
};
};
} else {
if (_local3.isElevator){
if (_arg2.m_body.GetPosition().y >= _arg1.m_body.GetPosition().y){
return (false);
};
} else {
if (_local4.isGhost){
if (_arg1.m_body.IsStatic()){
return (false);
};
};
};
};
if (((!(_arg1.m_body.IsStatic())) && (!(_arg2.m_body.IsStatic())))){
if (((_arg1.m_body.GetUserData().objectData.IsThrowableFragile) && (_arg2.m_body.GetUserData().objectData.IsThrowableObject))){
_arg1.m_body.GetUserData().objectData.ForceDestruction();
return (false);
};
if (((_arg2.m_body.GetUserData().objectData.IsThrowableFragile) && (_arg1.m_body.GetUserData().objectData.IsThrowableObject))){
_arg2.m_body.GetUserData().objectData.ForceDestruction();
return (false);
};
};
if (!_arg1.m_body.IsStatic()){
if (_arg1.m_body.GetUserData().objectData.IgnoreCoverID != -1){
if (_arg2.m_body.GetUserData().IDNumber == _arg1.m_body.GetUserData().objectData.IgnoreCoverID){
return (false);
};
};
};
if (!_arg2.m_body.IsStatic()){
if (_arg2.m_body.GetUserData().objectData.IgnoreCoverID != -1){
if (_arg1.m_body.GetUserData().IDNumber == _arg2.m_body.GetUserData().objectData.IgnoreCoverID){
return (false);
};
};
};
if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){
return ((_local3.groupIndex > 0));
};
_local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0))));
return (_local5);
}
}
}//package Code.Box2D.Dynamics
Section 73
//b2ContactListener (Code.Box2D.Dynamics.b2ContactListener)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Data.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
import Code.Particles.*;
public class b2ContactListener {
private var _ContactData:ContactData;
private var vec:b2Vec2;
public function Remove(_arg1:b2ContactPoint):void{
}
private function CheckConveyorBelt(_arg1:b2ContactPoint):void{
var _local2:Number;
var _local3:Number;
if (_arg1.shape1.GetBody().GetUserData().isConveyorBelt == true){
if (!_arg1.shape2.GetBody().IsStatic()){
if (Math.abs(_arg1.shape2.GetBody().GetLinearVelocity().x) < Math.abs(_arg1.shape1.GetBody().GetUserData().conveyorBeltSpeedX)){
_local2 = ((_ContactData.game_speed * _arg1.shape1.GetBody().GetUserData().conveyorBeltSpeedX) * _arg1.shape2.GetBody().GetMass());
_local3 = ((_ContactData.game_speed * _arg1.shape1.GetBody().GetUserData().conveyorBeltSpeedY) * _arg1.shape2.GetBody().GetMass());
_arg1.shape2.GetBody().ApplyImpulse(new b2Vec2(_local2, _local3), new b2Vec2(_arg1.position.x, _arg1.position.y));
};
};
};
}
public function SetHandler(_arg1:ContactData){
_ContactData = _arg1;
vec = new b2Vec2();
}
public function Add(_arg1:b2ContactPoint):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:Number;
_local2 = _arg1.shape1.GetBody().GetLinearVelocityFromWorldPoint(_arg1.position);
_local3 = _arg1.shape2.GetBody().GetLinearVelocityFromWorldPoint(_arg1.position);
vec = _local2.Copy();
vec.Subtract(_local3);
_local4 = vec.Length();
if (_local4 >= 2){
CheckBodyImpact(_arg1.shape1.GetBody(), _arg1.shape2.GetBody(), _arg1, _local2, _local4);
};
if (((!(_arg1.shape1.GetBody().IsStatic())) && (!(_arg1.shape2.GetBody().IsStatic())))){
if (_arg1.shape1.GetBody().GetUserData().objectData.IsGlass){
_arg1.shape1.GetBody().GetUserData().objectData.ForceDestruction();
};
if (_arg1.shape2.GetBody().GetUserData().objectData.IsGlass){
_arg1.shape2.GetBody().GetUserData().objectData.ForceDestruction();
};
};
}
public function Persist(_arg1:b2ContactPoint):void{
CheckConveyorBelt(_arg1);
}
private function CheckBodyImpact(_arg1:b2Body, _arg2:b2Body, _arg3:b2ContactPoint, _arg4:b2Vec2, _arg5:Number):void{
if (!_arg1.IsStatic()){
_arg1.WakeUp();
_ContactData.Handler_Sounds.PlaySoundAt_Box2DScale(_arg1.GetUserData().material.BounceImpactSound, _arg1.GetPosition().x, _arg1.GetPosition().y);
_arg1.GetUserData().objectData.Damage_Impact(_arg5);
};
if (!_arg2.IsStatic()){
_arg2.WakeUp();
_ContactData.Handler_Sounds.PlaySoundAt_Box2DScale(_arg2.GetUserData().material.BounceImpactSound, _arg2.GetPosition().x, _arg2.GetPosition().y);
_arg2.GetUserData().objectData.Damage_Impact(_arg5);
};
if (((!(_arg2.IsStatic())) && (!(_arg1.IsStatic())))){
if (_arg1.GetUserData().material.ImpactEffectConditionFullfilled(_arg2.GetUserData().material.Type)){
_ContactData.Handler_Effects.AddParticle_Box2DScale(new particle_data(_arg1.GetUserData().material.ImpactEffect, _arg3.position.x, _arg3.position.y, _arg4));
};
} else {
if (_arg1.GetUserData().material.ImpactEffectConditionFullfilled(_arg2.GetUserData().material.Type)){
_ContactData.Handler_Effects.AddParticle_Box2DScale(new particle_data(_arg1.GetUserData().material.ImpactEffect, _arg3.position.x, _arg3.position.y, _arg4));
};
if (_arg2.GetUserData().material.ImpactEffectConditionFullfilled(_arg1.GetUserData().material.Type)){
_ContactData.Handler_Effects.AddParticle_Box2DScale(new particle_data(_arg2.GetUserData().material.ImpactEffect, _arg3.position.x, _arg3.position.y, _arg4));
};
};
}
public function Result(_arg1:b2ContactResult):void{
}
}
}//package Code.Box2D.Dynamics
Section 74
//b2ContactManager (Code.Box2D.Dynamics.b2ContactManager)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Dynamics.Contacts.*;
public class b2ContactManager extends b2PairCallback {
public var m_world:b2World;
public var m_destroyImmediate:Boolean;
public var m_nullContact:b2NullContact;
private static const s_evalCP:b2ContactPoint = new b2ContactPoint();
public function b2ContactManager(){
m_nullContact = new b2NullContact();
super();
m_world = null;
m_destroyImmediate = false;
}
override public function PairAdded(_arg1, _arg2){
var _local3:b2Shape;
var _local4:b2Shape;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2Contact;
_local3 = (_arg1 as b2Shape);
_local4 = (_arg2 as b2Shape);
_local5 = _local3.m_body;
_local6 = _local4.m_body;
if (((_local5.IsStatic()) && (_local6.IsStatic()))){
return (m_nullContact);
};
if (_local3.m_body == _local4.m_body){
return (m_nullContact);
};
if (_local6.IsConnected(_local5)){
return (m_nullContact);
};
if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){
return (m_nullContact);
};
_local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator);
if (_local7 == null){
return (m_nullContact);
};
_local3 = _local7.m_shape1;
_local4 = _local7.m_shape2;
_local5 = _local3.m_body;
_local6 = _local4.m_body;
_local7.m_prev = null;
_local7.m_next = m_world.m_contactList;
if (m_world.m_contactList != null){
m_world.m_contactList.m_prev = _local7;
};
m_world.m_contactList = _local7;
_local7.m_node1.contact = _local7;
_local7.m_node1.other = _local6;
_local7.m_node1.prev = null;
_local7.m_node1.next = _local5.m_contactList;
if (_local5.m_contactList != null){
_local5.m_contactList.prev = _local7.m_node1;
};
_local5.m_contactList = _local7.m_node1;
_local7.m_node2.contact = _local7;
_local7.m_node2.other = _local5;
_local7.m_node2.prev = null;
_local7.m_node2.next = _local6.m_contactList;
if (_local6.m_contactList != null){
_local6.m_contactList.prev = _local7.m_node2;
};
_local6.m_contactList = _local7.m_node2;
m_world.m_contactCount++;
return (_local7);
}
override public function PairRemoved(_arg1, _arg2, _arg3):void{
var _local4:b2Contact;
if (_arg3 == null){
return;
};
_local4 = (_arg3 as b2Contact);
if (_local4 == m_nullContact){
return;
};
Destroy(_local4);
}
public function Destroy(_arg1:b2Contact):void{
var _local2:b2Shape;
var _local3:b2Shape;
var _local4:int;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2Body;
var _local8:b2Body;
var _local9:Array;
var _local10:b2ContactPoint;
var _local11:int;
var _local12:b2Manifold;
var _local13:int;
var _local14:b2ManifoldPoint;
var _local15:b2Vec2;
var _local16:b2Vec2;
_local2 = _arg1.m_shape1;
_local3 = _arg1.m_shape2;
_local4 = _arg1.m_manifoldCount;
if ((((_local4 > 0)) && (m_world.m_contactListener))){
_local7 = _local2.m_body;
_local8 = _local3.m_body;
_local9 = _arg1.GetManifolds();
_local10 = s_evalCP;
_local10.shape1 = _arg1.m_shape1;
_local10.shape2 = _arg1.m_shape2;
_local10.friction = _arg1.m_friction;
_local10.restitution = _arg1.m_restitution;
_local11 = 0;
while (_local11 < _local4) {
_local12 = _local9[_local11];
_local10.normal.SetV(_local12.normal);
_local13 = 0;
while (_local13 < _local12.pointCount) {
_local14 = _local12.points[_local13];
_local10.position = _local7.GetWorldPoint(_local14.localPoint1);
_local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1);
_local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2);
_local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y));
_local10.separation = _local14.separation;
_local10.id.key = _local14.id._key;
m_world.m_contactListener.Remove(_local10);
_local13++;
};
_local11++;
};
};
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_world.m_contactList){
m_world.m_contactList = _arg1.m_next;
};
_local5 = _local2.m_body;
_local6 = _local3.m_body;
if (_arg1.m_node1.prev){
_arg1.m_node1.prev.next = _arg1.m_node1.next;
};
if (_arg1.m_node1.next){
_arg1.m_node1.next.prev = _arg1.m_node1.prev;
};
if (_arg1.m_node1 == _local5.m_contactList){
_local5.m_contactList = _arg1.m_node1.next;
};
if (_arg1.m_node2.prev){
_arg1.m_node2.prev.next = _arg1.m_node2.next;
};
if (_arg1.m_node2.next){
_arg1.m_node2.next.prev = _arg1.m_node2.prev;
};
if (_arg1.m_node2 == _local6.m_contactList){
_local6.m_contactList = _arg1.m_node2.next;
};
b2Contact.Destroy(_arg1, m_world.m_blockAllocator);
m_world.m_contactCount--;
}
public function Collide():void{
var _local1:b2Contact;
var _local2:b2Body;
var _local3:b2Body;
_local1 = m_world.m_contactList;
while (_local1) {
_local2 = _local1.m_shape1.m_body;
_local3 = _local1.m_shape2.m_body;
if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){
} else {
_local1.Update(m_world.m_contactListener);
};
_local1 = _local1.m_next;
};
}
}
}//package Code.Box2D.Dynamics
Section 75
//b2DebugDraw (Code.Box2D.Dynamics.b2DebugDraw)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import flash.display.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
public class b2DebugDraw {
public var m_xformScale:Number;// = 1
public var m_fillAlpha:Number;// = 1
public var m_alpha:Number;// = 1
public var m_lineThickness:Number;// = 1
public var m_drawFlags:uint;
public var m_sprite:Sprite;
public var m_drawScale:Number;// = 1
public static var e_coreShapeBit:uint = 4;
public static var e_shapeBit:uint = 1;
public static var e_centerOfMassBit:uint = 64;
public static var e_aabbBit:uint = 8;
public static var e_obbBit:uint = 16;
public static var e_pairBit:uint = 32;
public static var e_jointBit:uint = 2;
public function b2DebugDraw(){
m_drawScale = 1;
m_lineThickness = 1;
m_alpha = 1;
m_fillAlpha = 1;
m_xformScale = 1;
super();
m_drawFlags = 0;
}
public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{
var _local4:int;
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha, false, "none");
m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha);
_local4 = 1;
while (_local4 < _arg2) {
m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale));
_local4++;
};
m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
m_sprite.graphics.endFill();
}
public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha, false, "none");
m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale));
}
public function DrawXForm(_arg1:b2XForm):void{
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha, false, "none");
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale));
m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha, false, "none");
m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale));
}
public function ClearFlags(_arg1:uint):void{
m_drawFlags = (m_drawFlags & ~(_arg1));
}
public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha, false, "none");
m_sprite.graphics.moveTo(0, 0);
m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha);
m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale));
m_sprite.graphics.endFill();
m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale));
}
public function SetFlags(_arg1:uint):void{
m_drawFlags = _arg1;
}
public function AppendFlags(_arg1:uint):void{
m_drawFlags = (m_drawFlags | _arg1);
}
public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha);
m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale));
m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale));
}
public function GetFlags():uint{
return (m_drawFlags);
}
public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{
var _local4:int;
m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha, false, "none");
m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
_local4 = 1;
while (_local4 < _arg2) {
m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale));
_local4++;
};
m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale));
}
}
}//package Code.Box2D.Dynamics
Section 76
//b2DestructionListener (Code.Box2D.Dynamics.b2DestructionListener)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Dynamics.Joints.*;
public class b2DestructionListener {
public function SayGoodbyeJoint(_arg1:b2Joint):void{
}
public function SayGoodbyeShape(_arg1:b2Shape):void{
}
}
}//package Code.Box2D.Dynamics
Section 77
//b2Island (Code.Box2D.Dynamics.b2Island)
package Code.Box2D.Dynamics {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
public class b2Island {
public var m_joints:Array;
public var m_fallasleepbody:Function;
public var m_listener:b2ContactListener;
public var m_positionIterationCount:int;
public var m_bodyCapacity:int;
public var m_bodies:Array;
public var m_jointCapacity:int;
public var m_contactCount:int;
public var m_contacts:Array;
public var m_contactCapacity:int;
public var m_jointCount:int;
public var m_allocator;
public var m_bodyCount:int;
private static var s_reportCR:b2ContactResult = new b2ContactResult();
public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener, _arg6:Function){
var _local7:int;
m_fallasleepbody = function (_arg1:b2Body):void{
};
super();
m_bodyCapacity = _arg1;
m_contactCapacity = _arg2;
m_jointCapacity = _arg3;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_fallasleepbody = _arg6;
m_allocator = _arg4;
m_listener = _arg5;
m_bodies = new Array(_arg1);
_local7 = 0;
while (_local7 < _arg1) {
m_bodies[_local7] = null;
_local7++;
};
m_contacts = new Array(_arg2);
_local7 = 0;
while (_local7 < _arg2) {
m_contacts[_local7] = null;
_local7++;
};
m_joints = new Array(_arg3);
_local7 = 0;
while (_local7 < _arg3) {
m_joints[_local7] = null;
_local7++;
};
m_positionIterationCount = 0;
}
public function AddBody(_arg1:b2Body):void{
var _local2 = m_bodyCount++;
m_bodies[_local2] = _arg1;
}
public function AddJoint(_arg1:b2Joint):void{
var _local2 = m_jointCount++;
m_joints[_local2] = _arg1;
}
public function Report(_arg1:Array):void{
var _local2:b2Mat22;
var _local3:b2Vec2;
var _local4:int;
var _local5:b2Contact;
var _local6:b2ContactConstraint;
var _local7:b2ContactResult;
var _local8:b2Body;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:b2Manifold;
var _local13:int;
var _local14:b2ManifoldPoint;
var _local15:b2ContactConstraintPoint;
if (m_listener == null){
return;
};
_local4 = 0;
while (_local4 < m_contactCount) {
_local5 = m_contacts[_local4];
_local6 = _arg1[_local4];
_local7 = s_reportCR;
_local7.shape1 = _local5.m_shape1;
_local7.shape2 = _local5.m_shape2;
_local8 = _local7.shape1.m_body;
_local9 = _local5.m_manifoldCount;
_local10 = _local5.GetManifolds();
_local11 = 0;
while (_local11 < _local9) {
_local12 = _local10[_local11];
_local7.normal.SetV(_local12.normal);
_local13 = 0;
while (_local13 < _local12.pointCount) {
_local14 = _local12.points[_local13];
_local15 = _local6.points[_local13];
_local7.position = _local8.GetWorldPoint(_local14.localPoint1);
_local7.normalImpulse = _local15.normalImpulse;
_local7.tangentImpulse = _local15.tangentImpulse;
_local7.id.key = _local14.id.key;
m_listener.Result(_local7);
_local13++;
};
_local11++;
};
_local4++;
};
}
public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{
var _local5:int;
var _local6:b2Body;
var _local7:b2Joint;
var _local8:b2ContactSolver;
var _local9:int;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Boolean;
var _local13:Number;
var _local14:Number;
var _local15:Number;
_local5 = 0;
while (_local5 < m_bodyCount) {
_local6 = m_bodies[_local5];
if (_local6.IsStatic()){
} else {
_local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x))));
_local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y))));
_local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque));
_local6.m_force.SetZero();
_local6.m_torque = 0;
_local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1));
_local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1));
if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){
_local6.m_linearVelocity.Normalize();
_local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity);
_local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity);
};
if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){
if (_local6.m_angularVelocity < 0){
_local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity);
} else {
_local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity;
};
};
};
_local5++;
};
_local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local8.InitVelocityConstraints(_arg1);
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = m_joints[_local5];
_local7.InitVelocityConstraints(_arg1);
_local5++;
};
_local5 = 0;
while (_local5 < _arg1.maxIterations) {
_local8.SolveVelocityConstraints();
_local9 = 0;
while (_local9 < m_jointCount) {
_local7 = m_joints[_local9];
_local7.SolveVelocityConstraints(_arg1);
_local9++;
};
_local5++;
};
_local8.FinalizeVelocityConstraints();
_local5 = 0;
while (_local5 < m_bodyCount) {
_local6 = m_bodies[_local5];
if (_local6.IsStatic()){
} else {
_local6.m_sweep.c0.SetV(_local6.m_sweep.c);
_local6.m_sweep.a0 = _local6.m_sweep.a;
_local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x));
_local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y));
_local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity));
_local6.SynchronizeTransform();
};
_local5++;
};
if (_arg3){
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = m_joints[_local5];
_local7.InitPositionConstraints();
_local5++;
};
m_positionIterationCount = 0;
while (m_positionIterationCount < _arg1.maxIterations) {
_local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte);
_local11 = true;
_local5 = 0;
while (_local5 < m_jointCount) {
_local7 = m_joints[_local5];
_local12 = _local7.SolvePositionConstraints();
_local11 = ((_local11) && (_local12));
_local5++;
};
if (((_local10) && (_local11))){
break;
};
m_positionIterationCount++;
};
};
Report(_local8.m_constraints);
if (_arg4){
_local13 = Number.MAX_VALUE;
_local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance);
_local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance);
_local5 = 0;
while (_local5 < m_bodyCount) {
_local6 = m_bodies[_local5];
if (_local6.m_invMass == 0){
} else {
if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){
_local6.m_sleepTime = 0;
_local13 = 0;
};
if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){
_local6.m_sleepTime = 0;
_local13 = 0;
} else {
_local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt);
_local13 = b2Math.b2Min(_local13, _local6.m_sleepTime);
};
};
_local5++;
};
if (_local13 >= b2Settings.b2_timeToSleep){
_local5 = 0;
while (_local5 < m_bodyCount) {
_local6 = m_bodies[_local5];
m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag);
_local6.m_linearVelocity.SetZero();
_local6.m_angularVelocity = 0;
m_fallasleepbody(_local6);
_local5++;
};
};
};
}
public function AddContact(_arg1:b2Contact):void{
var _local2 = m_contactCount++;
m_contacts[_local2] = _arg1;
}
public function Clear():void{
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
}
public function SolveTOI(_arg1:b2TimeStep):void{
var _local2:int;
var _local3:b2ContactSolver;
var _local4:Number;
var _local5:b2Body;
var _local6:Boolean;
_local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator);
_local2 = 0;
while (_local2 < _arg1.maxIterations) {
_local3.SolveVelocityConstraints();
_local2++;
};
_local2 = 0;
while (_local2 < m_bodyCount) {
_local5 = m_bodies[_local2];
if (_local5.IsStatic()){
} else {
_local5.m_sweep.c0.SetV(_local5.m_sweep.c);
_local5.m_sweep.a0 = _local5.m_sweep.a;
_local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x));
_local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y));
_local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity));
_local5.SynchronizeTransform();
};
_local2++;
};
_local4 = 0.75;
_local2 = 0;
while (_local2 < _arg1.maxIterations) {
_local6 = _local3.SolvePositionConstraints(_local4);
if (_local6){
break;
};
_local2++;
};
Report(_local3.m_constraints);
}
}
}//package Code.Box2D.Dynamics
Section 78
//b2TimeStep (Code.Box2D.Dynamics.b2TimeStep)
package Code.Box2D.Dynamics {
public class b2TimeStep {
public var warmStarting:Boolean;
public var positionCorrection:Boolean;
public var dt:Number;
public var maxIterations:int;
public var dtRatio:Number;
public var inv_dt:Number;
}
}//package Code.Box2D.Dynamics
Section 79
//b2World (Code.Box2D.Dynamics.b2World)
package Code.Box2D.Dynamics {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
public class b2World {
private var _laser_solid_list:Array;
private var _aim_solid_list:Array;
public var m_contactList:b2Contact;
private var _weapon_list:Array;
private var _stair_object_list:Array;
public var m_broadPhase:b2BroadPhase;
public var m_allowSleep:Boolean;
public var m_contactListener:b2ContactListener;
public var m_blockAllocator;
public var m_bodyCount:int;
private var _hazards_list:Array;
public var m_contactCount:int;
public var m_contactFilter:b2ContactFilter;
private var _fire_carrier_list:Array;
private var _part_of_static_world:Array;
public var m_contactManager:b2ContactManager;
public var m_gravity:b2Vec2;
public var m_stackAllocator;
private var _molotov_list:Array;
public var m_inv_dt0:Number;
private var _burn_object_list:Array;
private var _static_covers:Array;
private var _bullet_solid_list:Array;
private var _conveyor_list:Array;
public var m_boundaryListener:b2BoundaryListener;
public var m_destructionListener:b2DestructionListener;
private var _is_glass_list:Array;
private var _all_dynamic_object_list:Array;
public var m_lock:Boolean;
private var _button_list:Array;
public var m_positionIterationCount:int;
public var m_jointCount:int;
private var _dynamic_hitbox_object_list:Array;
public var FallAsleepBody:Function;
public var m_groundBody:b2Body;
private var _ladder_list:Array;
private var _dynamic_object_list:Array;
private var _static_object_list:Array;
private var _can_take_fire_damage_list:Array;
private var _static_rotated_cloud_list:Array;
public var m_bodyList:b2Body;
public var m_jointList:b2Joint;
public var m_debugDraw:b2DebugDraw;
private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8);
public static var m_continuousPhysics:Boolean;
public static var m_warmStarting:Boolean;
private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6);
public static var m_positionCorrection:Boolean;
private static var s_xf:b2XForm = new b2XForm();
public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){
var _local4:b2BodyDef;
_dynamic_object_list = new Array();
_all_dynamic_object_list = new Array();
_dynamic_hitbox_object_list = new Array();
_static_object_list = new Array();
_stair_object_list = new Array();
_conveyor_list = new Array();
_weapon_list = new Array();
_button_list = new Array();
_ladder_list = new Array();
_burn_object_list = new Array();
_fire_carrier_list = new Array();
_bullet_solid_list = new Array();
_laser_solid_list = new Array();
_aim_solid_list = new Array();
_molotov_list = new Array();
_can_take_fire_damage_list = new Array();
_static_covers = new Array();
_hazards_list = new Array();
_static_rotated_cloud_list = new Array();
_is_glass_list = new Array();
_part_of_static_world = new Array();
FallAsleepBody = function (_arg1:b2Body):void{
};
m_contactManager = new b2ContactManager();
super();
m_destructionListener = null;
m_boundaryListener = null;
m_contactFilter = b2ContactFilter.b2_defaultFilter;
m_contactListener = null;
m_debugDraw = null;
m_bodyList = null;
m_contactList = null;
m_jointList = null;
m_bodyCount = 0;
m_contactCount = 0;
m_jointCount = 0;
m_positionCorrection = true;
m_warmStarting = true;
m_continuousPhysics = true;
m_allowSleep = _arg3;
m_gravity = _arg2;
m_lock = false;
m_inv_dt0 = 0;
m_contactManager.m_world = this;
m_broadPhase = new b2BroadPhase(_arg1, m_contactManager);
_local4 = new b2BodyDef();
m_groundBody = CreateBody(_local4);
}
public function get LadderList():Array{
return (_ladder_list);
}
private function RemoveObject(_arg1:b2Body, _arg2:Array):void{
var _local3:*;
_local3 = 0;
while (_local3 < _arg2.length) {
if (_arg2[_local3].GetUserData().IDNumber == _arg1.GetUserData().IDNumber){
_arg2.splice(_local3, 1);
};
_local3++;
};
}
public function GetStairBodyAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < _stair_object_list.length) {
_local3 = _stair_object_list[_local4];
if (_local3.GetUserData().shapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function get ButtonList():Array{
return (_button_list);
}
public function get DynamicHitBoxObjectList():Array{
return (_dynamic_hitbox_object_list);
}
public function SetDebugDraw(_arg1:b2DebugDraw):void{
m_debugDraw = _arg1;
}
public function SetContinuousPhysics(_arg1:Boolean):void{
m_continuousPhysics = _arg1;
}
public function GetProxyCount():int{
return (m_broadPhase.m_proxyCount);
}
public function GetAimSolidAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < AimSolidList.length) {
_local3 = AimSolidList[_local4];
if (_local3.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function GetFireCarrierAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:Array;
var _local4:b2Body;
var _local5:*;
_local3 = FireCarrierList;
_local5 = 0;
while (_local5 < _local3.length) {
_local4 = _local3[_local5];
if (_local4.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local4);
};
_local5++;
};
return (null);
}
public function GetContactCount():int{
return (m_contactCount);
}
public function get IsGlassList():Array{
return (_is_glass_list);
}
public function Solve(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Island;
var _local4:b2Contact;
var _local5:b2Joint;
var _local6:int;
var _local7:Array;
var _local8:b2Body;
var _local9:int;
var _local10:int;
var _local11:b2Body;
var _local12:b2ContactEdge;
var _local13:b2JointEdge;
var _local14:Boolean;
m_positionIterationCount = 0;
_local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener, FallAsleepBody);
_local2 = m_bodyList;
while (_local2) {
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
_local2 = _local2.m_next;
};
_local4 = m_contactList;
while (_local4) {
_local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag));
_local4 = _local4.m_next;
};
_local5 = m_jointList;
while (_local5) {
_local5.m_islandFlag = false;
_local5 = _local5.m_next;
};
_local6 = m_bodyCount;
_local7 = new Array(_local6);
_local8 = m_bodyList;
while (_local8) {
if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){
} else {
if (_local8.IsStatic()){
} else {
_local3.Clear();
_local9 = 0;
var _temp1 = _local9;
_local9 = (_local9 + 1);
var _local15 = _temp1;
_local7[_local15] = _local8;
_local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag);
while (_local9 > 0) {
--_local9;
_local2 = _local7[_local9];
_local3.AddBody(_local2);
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag));
if (_local2.IsStatic()){
} else {
_local12 = _local2.m_contactList;
while (_local12) {
if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){
} else {
if (_local12.contact.m_manifoldCount == 0){
} else {
_local3.AddContact(_local12.contact);
_local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag);
_local11 = _local12.other;
if ((_local11.m_flags & b2Body.e_islandFlag)){
} else {
var _temp2 = _local9;
_local9 = (_local9 + 1);
var _local16 = _temp2;
_local7[_local16] = _local11;
_local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag);
};
};
};
_local12 = _local12.next;
};
_local13 = _local2.m_jointList;
while (_local13) {
if (_local13.joint.m_islandFlag == true){
} else {
_local3.AddJoint(_local13.joint);
_local13.joint.m_islandFlag = true;
_local11 = _local13.other;
if ((_local11.m_flags & b2Body.e_islandFlag)){
} else {
var _temp3 = _local9;
_local9 = (_local9 + 1);
_local16 = _temp3;
_local7[_local16] = _local11;
_local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag);
};
};
_local13 = _local13.next;
};
};
};
_local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep);
if (_local3.m_positionIterationCount > m_positionIterationCount){
m_positionIterationCount = _local3.m_positionIterationCount;
};
_local10 = 0;
while (_local10 < _local3.m_bodyCount) {
_local2 = _local3.m_bodies[_local10];
if (_local2.IsStatic()){
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
};
_local10++;
};
};
};
_local8 = _local8.m_next;
};
_local2 = m_bodyList;
while (_local2) {
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local14 = _local2.SynchronizeShapes();
if ((((_local14 == false)) && (!((m_boundaryListener == null))))){
m_boundaryListener.Violation(_local2);
};
};
};
_local2 = _local2.m_next;
};
m_broadPhase.Commit();
}
public function get ConveyorList():Array{
return (_conveyor_list);
}
public function get MolotovList():Array{
return (_molotov_list);
}
public function Validate():void{
m_broadPhase.Validate();
}
public function GetBulletSolidAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < BulletSolidList.length) {
_local3 = BulletSolidList[_local4];
if (_local3.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function SetWarmStarting(_arg1:Boolean):void{
m_warmStarting = _arg1;
}
public function RemoveObjectFromLists(_arg1:b2Body):void{
if (_arg1.IsDynamic()){
if (!_arg1.GetUserData().objectData.DrawShapeMC){
return;
};
RemoveObject(_arg1, _all_dynamic_object_list);
if (_arg1.GetUserData().isWeapon == true){
RemoveObject(_arg1, _weapon_list);
} else {
if (_arg1.GetUserData().isButton == true){
RemoveObject(_arg1, _button_list);
} else {
if (_arg1.GetUserData().isLadder == true){
RemoveObject(_arg1, _ladder_list);
} else {
RemoveObject(_arg1, _dynamic_object_list);
if (!_arg1.GetUserData().objectData.BulletTransparent){
RemoveObject(_arg1, _bullet_solid_list);
};
if (((!(_arg1.GetUserData().objectData.LaserTransparent)) || (_arg1.GetUserData().objectData.LaserVisibleOnObject))){
RemoveObject(_arg1, _laser_solid_list);
};
if (!_arg1.GetUserData().objectData.AimTransparent){
RemoveObject(_arg1, _aim_solid_list);
};
if (((_arg1.GetUserData().objectData.DrawHitBox) || (_arg1.GetUserData().objectData.DrawCloudBox))){
RemoveObject(_arg1, _dynamic_hitbox_object_list);
};
if (_arg1.GetUserData().objectData.IsGlass){
RemoveObject(_arg1, _is_glass_list);
};
if (_arg1.GetUserData().objectData.CanBurn){
RemoveObject(_arg1, _burn_object_list);
} else {
if (_arg1.GetUserData().objectData.ResistanceFire > 0){
RemoveObject(_arg1, _can_take_fire_damage_list);
};
};
if (_arg1.GetUserData().objectData.CanBeHazard){
RemoveObject(_arg1, _hazards_list);
};
if (_arg1.GetUserData().objectData.PartOfStaticWorld){
RemoveObject(_arg1, _part_of_static_world);
};
if (_arg1.GetUserData().objectData.CanCarryFire){
RemoveObject(_arg1, _fire_carrier_list);
};
if (_arg1.GetUserData().tiltValue != 0){
RemoveObject(_arg1, _stair_object_list);
};
if (_arg1.GetUserData().isMolotov == true){
RemoveObject(_arg1, _molotov_list);
};
};
};
};
} else {
RemoveObject(_arg1, _static_object_list);
if (_arg1.GetUserData().tiltValue != 0){
RemoveObject(_arg1, _stair_object_list);
};
if (_arg1.GetUserData().isConveyorBelt == true){
RemoveObject(_arg1, _conveyor_list);
};
if (_arg1.GetUserData().isLadder == true){
RemoveObject(_arg1, _ladder_list);
};
if (_arg1.GetUserData().allowCover == true){
RemoveObject(_arg1, _static_covers);
};
if ((((_arg1.GetUserData().isCloud == true)) && (!((_arg1.GetAngle() == 0))))){
RemoveObject(_arg1, _static_rotated_cloud_list);
};
};
}
public function SetPositionCorrection(_arg1:Boolean):void{
m_positionCorrection = _arg1;
}
public function get AimSolidList():Array{
return (_aim_solid_list);
}
public function GetLaserSolidAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < LaserSolidList.length) {
_local3 = LaserSolidList[_local4];
if (_local3.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function SetContactListener(_arg1:b2ContactListener):void{
m_contactListener = _arg1;
}
public function SetBoundaryListener(_arg1:b2BoundaryListener):void{
m_boundaryListener = _arg1;
}
public function GetStaticCoverAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < StaticCovers.length) {
_local3 = StaticCovers[_local4];
if (_local3.GetUserData().shapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function GetRotatedCloudAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:Array;
var _local4:b2Body;
var _local5:*;
_local3 = _static_rotated_cloud_list;
_local5 = 0;
while (_local5 < _local3.length) {
_local4 = _local3[_local5];
if (_local4.GetUserData().shapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local4);
};
_local5++;
};
return (null);
}
public function GetJointCount():int{
return (m_jointCount);
}
public function get LaserSolidList():Array{
return (_laser_solid_list);
}
public function get FireCarrierList():Array{
return (_fire_carrier_list);
}
public function Refilter(_arg1:b2Shape):void{
_arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf);
}
public function GetLadderBodyAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < _ladder_list.length) {
_local3 = _ladder_list[_local4];
if (_local3.GetUserData().shapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function get StairObjectList():Array{
return (_stair_object_list);
}
public function SetContactFilter(_arg1:b2ContactFilter):void{
m_contactFilter = _arg1;
}
public function DrawDebugData():void{
var _local1:uint;
var _local2:int;
var _local3:b2Body;
var _local4:b2Shape;
var _local5:b2Joint;
var _local6:b2BroadPhase;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Color;
var _local11:b2XForm;
var _local12:b2AABB;
var _local13:b2AABB;
var _local14:Array;
var _local15:Boolean;
if (m_debugDraw == null){
return;
};
m_debugDraw.m_sprite.graphics.clear();
_local1 = m_debugDraw.GetFlags();
_local7 = new b2Vec2();
_local8 = new b2Vec2();
_local9 = new b2Vec2();
_local10 = new b2Color(0, 0, 0);
_local12 = new b2AABB();
_local13 = new b2AABB();
_local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()];
if ((_local1 & b2DebugDraw.e_shapeBit)){
_local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit);
_local3 = m_bodyList;
while (_local3) {
_local11 = _local3.m_xf;
_local4 = _local3.GetShapeList();
while (_local4) {
if (_local3.IsStatic()){
DrawShape(_local4, _local11, new b2Color(0, 0, 0), _local15);
};
_local4 = _local4.m_next;
};
_local3 = _local3.m_next;
};
};
}
public function AddObjectToLists(_arg1:b2Body):void{
if (_arg1.IsDynamic()){
if (!_arg1.GetUserData().objectData.DrawShapeMC){
return;
};
_all_dynamic_object_list.push(_arg1);
if (_arg1.GetUserData().isWeapon == true){
_weapon_list.push(_arg1);
} else {
if (_arg1.GetUserData().isButton == true){
_button_list.push(_arg1);
} else {
if (_arg1.GetUserData().isLadder == true){
_ladder_list.push(_arg1);
} else {
_dynamic_object_list.push(_arg1);
if (!_arg1.GetUserData().objectData.BulletTransparent){
_bullet_solid_list.push(_arg1);
};
if (((!(_arg1.GetUserData().objectData.LaserTransparent)) || (_arg1.GetUserData().objectData.LaserVisibleOnObject))){
_laser_solid_list.push(_arg1);
};
if (!_arg1.GetUserData().objectData.AimTransparent){
_aim_solid_list.push(_arg1);
};
if (((_arg1.GetUserData().objectData.DrawHitBox) || (_arg1.GetUserData().objectData.DrawCloudBox))){
_dynamic_hitbox_object_list.push(_arg1);
};
if (_arg1.GetUserData().objectData.IsGlass){
_is_glass_list.push(_arg1);
};
if (_arg1.GetUserData().objectData.CanBurn){
_burn_object_list.push(_arg1);
} else {
if (_arg1.GetUserData().objectData.ResistanceFire > 0){
_can_take_fire_damage_list.push(_arg1);
};
};
if (_arg1.GetUserData().objectData.CanBeHazard){
_hazards_list.push(_arg1);
};
if (_arg1.GetUserData().objectData.PartOfStaticWorld){
_part_of_static_world.push(_arg1);
};
if (_arg1.GetUserData().objectData.CanCarryFire){
_fire_carrier_list.push(_arg1);
};
if (_arg1.GetUserData().tiltValue != 0){
_stair_object_list.push(_arg1);
};
if (_arg1.GetUserData().isMolotov == true){
_molotov_list.push(_arg1);
};
};
};
};
} else {
if (_arg1.GetUserData() != null){
_static_object_list.push(_arg1);
if (_arg1.GetUserData().tiltValue != 0){
_stair_object_list.push(_arg1);
};
if (_arg1.GetUserData().isConveyorBelt == true){
_conveyor_list.push(_arg1);
};
if (_arg1.GetUserData().isLadder == true){
_ladder_list.push(_arg1);
};
if (_arg1.GetUserData().allowCover == true){
_static_covers.push(_arg1);
};
if ((((_arg1.GetUserData().isCloud == true)) && (!((_arg1.GetAngle() == 0))))){
_static_rotated_cloud_list.push(_arg1);
};
};
};
}
public function get AllDynamicObjectList():Array{
return (_all_dynamic_object_list);
}
public function DestroyBody(_arg1:b2Body):void{
var _local2:b2JointEdge;
var _local3:b2Shape;
var _local4:b2JointEdge;
var _local5:b2Shape;
if (m_lock == true){
return;
};
_local2 = _arg1.m_jointList;
while (_local2) {
_local4 = _local2;
_local2 = _local2.next;
if (m_destructionListener){
m_destructionListener.SayGoodbyeJoint(_local4.joint);
};
DestroyJoint(_local4.joint);
};
_local3 = _arg1.m_shapeList;
while (_local3) {
_local5 = _local3;
_local3 = _local3.m_next;
if (m_destructionListener){
m_destructionListener.SayGoodbyeShape(_local5);
};
_local5.DestroyProxy(m_broadPhase);
b2Shape.Destroy(_local5, m_blockAllocator);
};
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_bodyList){
m_bodyList = _arg1.m_next;
};
m_bodyCount--;
}
public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{
var _local5:b2Color;
var _local6:b2CircleShape;
var _local7:b2Vec2;
var _local8:Number;
var _local9:b2Vec2;
var _local10:int;
var _local11:b2PolygonShape;
var _local12:int;
var _local13:Array;
var _local14:Array;
var _local15:Array;
_local5 = s_coreColor;
switch (_arg1.m_type){
case b2Shape.e_circleShape:
_local6 = (_arg1 as b2CircleShape);
_local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition);
_local8 = _local6.m_radius;
_local9 = _arg2.R.col1;
m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3);
if (_arg4){
m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5);
};
break;
case b2Shape.e_polygonShape:
_local11 = (_arg1 as b2PolygonShape);
_local12 = _local11.GetVertexCount();
_local13 = _local11.GetVertices();
_local14 = new Array(b2Settings.b2_maxPolygonVertices);
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]);
_local10++;
};
m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3);
if (_arg4){
_local15 = _local11.GetCoreVertices();
_local10 = 0;
while (_local10 < _local12) {
_local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]);
_local10++;
};
m_debugDraw.DrawPolygon(_local14, _local12, _local5);
};
break;
};
}
public function DrawJoint(_arg1:b2Joint):void{
var _local2:b2Body;
var _local3:b2Body;
var _local4:b2XForm;
var _local5:b2XForm;
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Color;
var _local11:b2PulleyJoint;
var _local12:b2Vec2;
var _local13:b2Vec2;
_local2 = _arg1.m_body1;
_local3 = _arg1.m_body2;
_local4 = _local2.m_xf;
_local5 = _local3.m_xf;
_local6 = _local4.position;
_local7 = _local5.position;
_local8 = _arg1.GetAnchor1();
_local9 = _arg1.GetAnchor2();
_local10 = s_jointColor;
switch (_arg1.m_type){
case b2Joint.e_distanceJoint:
m_debugDraw.DrawSegment(_local8, _local9, _local10);
break;
case b2Joint.e_pulleyJoint:
_local11 = (_arg1 as b2PulleyJoint);
_local12 = _local11.GetGroundAnchor1();
_local13 = _local11.GetGroundAnchor2();
m_debugDraw.DrawSegment(_local12, _local8, _local10);
m_debugDraw.DrawSegment(_local13, _local9, _local10);
m_debugDraw.DrawSegment(_local12, _local13, _local10);
break;
case b2Joint.e_mouseJoint:
m_debugDraw.DrawSegment(_local8, _local9, _local10);
break;
default:
if (_local2 != m_groundBody){
m_debugDraw.DrawSegment(_local6, _local8, _local10);
};
m_debugDraw.DrawSegment(_local8, _local9, _local10);
if (_local3 != m_groundBody){
m_debugDraw.DrawSegment(_local7, _local9, _local10);
};
};
}
public function GetGroundBody():b2Body{
return (m_groundBody);
}
public function ResetLists():void{
_dynamic_hitbox_object_list = new Array();
_dynamic_object_list = new Array();
_all_dynamic_object_list = new Array();
_static_object_list = new Array();
_stair_object_list = new Array();
_conveyor_list = new Array();
_weapon_list = new Array();
_button_list = new Array();
_ladder_list = new Array();
_burn_object_list = new Array();
_fire_carrier_list = new Array();
_bullet_solid_list = new Array();
_aim_solid_list = new Array();
_laser_solid_list = new Array();
_molotov_list = new Array();
_can_take_fire_damage_list = new Array();
_static_covers = new Array();
_hazards_list = new Array();
_static_rotated_cloud_list = new Array();
_is_glass_list = new Array();
_part_of_static_world = new Array();
}
public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{
var _local4:Array;
var _local5:int;
var _local6:int;
_local4 = new Array(_arg3);
_local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3);
_local6 = 0;
while (_local6 < _local5) {
_arg2[_local6] = _local4[_local6];
_local6++;
};
return (_local5);
}
public function get StaticObjectList():Array{
return (_static_object_list);
}
public function SolveTOI(_arg1:b2TimeStep):void{
var _local2:b2Body;
var _local3:b2Shape;
var _local4:b2Shape;
var _local5:b2Body;
var _local6:b2Body;
var _local7:b2ContactEdge;
var _local8:b2Island;
var _local9:int;
var _local10:Array;
var _local11:b2Contact;
var _local12:b2Contact;
var _local13:Number;
var _local14:b2Body;
var _local15:int;
var _local16:b2TimeStep;
var _local17:int;
var _local18:Number;
var _local19:Number;
var _local20:b2Body;
var _local21:Boolean;
_local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener, FallAsleepBody);
_local9 = m_bodyCount;
_local10 = new Array(_local9);
_local2 = m_bodyList;
while (_local2) {
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
_local2.m_sweep.t0 = 0;
_local2 = _local2.m_next;
};
_local11 = m_contactList;
while (_local11) {
_local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag)));
_local11 = _local11.m_next;
};
while (true) {
_local12 = null;
_local13 = 1;
_local11 = m_contactList;
for (;_local11;(_local11 = _local11.m_next)) {
if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){
} else {
_local18 = 1;
if ((_local11.m_flags & b2Contact.e_toiFlag)){
_local18 = _local11.m_toi;
} else {
_local3 = _local11.m_shape1;
_local4 = _local11.m_shape2;
_local5 = _local3.m_body;
_local6 = _local4.m_body;
if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){
continue;
};
_local19 = _local5.m_sweep.t0;
if (_local5.m_sweep.t0 < _local6.m_sweep.t0){
_local19 = _local6.m_sweep.t0;
_local5.m_sweep.Advance(_local19);
} else {
if (_local6.m_sweep.t0 < _local5.m_sweep.t0){
_local19 = _local5.m_sweep.t0;
_local6.m_sweep.Advance(_local19);
};
};
_local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep);
if ((((_local18 > 0)) && ((_local18 < 1)))){
_local18 = (((1 - _local18) * _local19) + _local18);
if (_local18 > 1){
_local18 = 1;
};
};
_local11.m_toi = _local18;
_local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag);
};
if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){
_local12 = _local11;
_local13 = _local18;
};
};
};
if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){
break;
};
_local3 = _local12.m_shape1;
_local4 = _local12.m_shape2;
_local5 = _local3.m_body;
_local6 = _local4.m_body;
_local5.Advance(_local13);
_local6.Advance(_local13);
_local12.Update(m_contactListener);
_local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag));
if (_local12.m_manifoldCount == 0){
} else {
_local14 = _local5;
if (_local14.IsStatic()){
_local14 = _local6;
};
_local8.Clear();
_local15 = 0;
var _temp1 = _local15;
_local15 = (_local15 + 1);
var _local22 = _temp1;
_local10[_local22] = _local14;
_local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag);
while (_local15 > 0) {
--_local15;
_local2 = _local10[_local15];
_local8.AddBody(_local2);
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag));
if (_local2.IsStatic()){
} else {
_local7 = _local2.m_contactList;
while (_local7) {
if (_local8.m_contactCount == _local8.m_contactCapacity){
} else {
if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){
} else {
if (_local7.contact.m_manifoldCount == 0){
} else {
_local8.AddContact(_local7.contact);
_local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag);
_local20 = _local7.other;
if ((_local20.m_flags & b2Body.e_islandFlag)){
} else {
if (_local20.IsStatic() == false){
_local20.Advance(_local13);
_local20.WakeUp();
};
var _temp2 = _local15;
_local15 = (_local15 + 1);
var _local23 = _temp2;
_local10[_local23] = _local20;
_local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag);
};
};
};
};
_local7 = _local7.next;
};
};
};
_local16 = new b2TimeStep();
_local16.dt = ((1 - _local13) * _arg1.dt);
_local16.inv_dt = (1 / _local16.dt);
_local16.maxIterations = _arg1.maxIterations;
_local8.SolveTOI(_local16);
_local17 = 0;
while (_local17 < _local8.m_bodyCount) {
_local2 = _local8.m_bodies[_local17];
_local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag));
if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){
} else {
if (_local2.IsStatic()){
} else {
_local21 = _local2.SynchronizeShapes();
if ((((_local21 == false)) && (!((m_boundaryListener == null))))){
m_boundaryListener.Violation(_local2);
};
_local7 = _local2.m_contactList;
while (_local7) {
_local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag));
_local7 = _local7.next;
};
};
};
_local17++;
};
_local17 = 0;
while (_local17 < _local8.m_contactCount) {
_local11 = _local8.m_contacts[_local17];
_local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag)));
_local17++;
};
m_broadPhase.Commit();
};
};
}
public function GetJointList():b2Joint{
return (m_jointList);
}
public function SetGravity(_arg1:b2Vec2):void{
m_gravity = _arg1;
}
public function GetBodyList():b2Body{
return (m_bodyList);
}
public function GetGlassAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:Array;
var _local4:b2Body;
var _local5:*;
_local3 = _is_glass_list;
_local5 = 0;
while (_local5 < _local3.length) {
_local4 = _local3[_local5];
if (_local4.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local4);
};
_local5++;
};
return (null);
}
public function get CanTakeFireDamageList():Array{
return (_can_take_fire_damage_list);
}
public function GetPairCount():int{
return (m_broadPhase.m_pairManager.m_pairCount);
}
public function get HazardsList():Array{
return (_hazards_list);
}
public function get StaticRotatedCloudList():Array{
return (_static_rotated_cloud_list);
}
public function get StaticCovers():Array{
return (_static_covers);
}
public function CreateJoint(_arg1:b2JointDef):b2Joint{
var _local2:b2Joint;
var _local3:b2Body;
var _local4:b2Shape;
_local2 = b2Joint.Create(_arg1, m_blockAllocator);
_local2.m_prev = null;
_local2.m_next = m_jointList;
if (m_jointList){
m_jointList.m_prev = _local2;
};
m_jointList = _local2;
m_jointCount++;
_local2.m_node1.joint = _local2;
_local2.m_node1.other = _local2.m_body2;
_local2.m_node1.prev = null;
_local2.m_node1.next = _local2.m_body1.m_jointList;
if (_local2.m_body1.m_jointList){
_local2.m_body1.m_jointList.prev = _local2.m_node1;
};
_local2.m_body1.m_jointList = _local2.m_node1;
_local2.m_node2.joint = _local2;
_local2.m_node2.other = _local2.m_body1;
_local2.m_node2.prev = null;
_local2.m_node2.next = _local2.m_body2.m_jointList;
if (_local2.m_body2.m_jointList){
_local2.m_body2.m_jointList.prev = _local2.m_node2;
};
_local2.m_body2.m_jointList = _local2.m_node2;
if (_arg1.collideConnected == false){
_local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2;
_local4 = _local3.m_shapeList;
while (_local4) {
_local4.RefilterProxy(m_broadPhase, _local3.m_xf);
_local4 = _local4.m_next;
};
};
return (_local2);
}
public function DestroyJoint(_arg1:b2Joint):void{
var _local2:Boolean;
var _local3:b2Body;
var _local4:b2Body;
var _local5:b2Body;
var _local6:b2Shape;
_local2 = _arg1.m_collideConnected;
if (_arg1.m_prev){
_arg1.m_prev.m_next = _arg1.m_next;
};
if (_arg1.m_next){
_arg1.m_next.m_prev = _arg1.m_prev;
};
if (_arg1 == m_jointList){
m_jointList = _arg1.m_next;
};
_local3 = _arg1.m_body1;
_local4 = _arg1.m_body2;
_local3.WakeUp();
_local4.WakeUp();
if (_arg1.m_node1.prev){
_arg1.m_node1.prev.next = _arg1.m_node1.next;
};
if (_arg1.m_node1.next){
_arg1.m_node1.next.prev = _arg1.m_node1.prev;
};
if (_arg1.m_node1 == _local3.m_jointList){
_local3.m_jointList = _arg1.m_node1.next;
};
_arg1.m_node1.prev = null;
_arg1.m_node1.next = null;
if (_arg1.m_node2.prev){
_arg1.m_node2.prev.next = _arg1.m_node2.next;
};
if (_arg1.m_node2.next){
_arg1.m_node2.next.prev = _arg1.m_node2.prev;
};
if (_arg1.m_node2 == _local4.m_jointList){
_local4.m_jointList = _arg1.m_node2.next;
};
_arg1.m_node2.prev = null;
_arg1.m_node2.next = null;
b2Joint.Destroy(_arg1, m_blockAllocator);
m_jointCount--;
if (_local2 == false){
_local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4;
_local6 = _local5.m_shapeList;
while (_local6) {
_local6.RefilterProxy(m_broadPhase, _local5.m_xf);
_local6 = _local6.m_next;
};
};
}
public function get BurnObjectList():Array{
return (_burn_object_list);
}
public function GetStaticBodyAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:b2Body;
var _local4:*;
_local4 = 0;
while (_local4 < _static_object_list.length) {
_local3 = _static_object_list[_local4];
if (_local3.GetUserData().shapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local3);
};
_local4++;
};
return (null);
}
public function GetPartWorldAt(_arg1:Number, _arg2:Number):b2Body{
var _local3:Array;
var _local4:b2Body;
var _local5:*;
_local3 = _part_of_static_world;
_local5 = 0;
while (_local5 < _local3.length) {
_local4 = _local3[_local5];
if (_local4.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local4);
};
_local5++;
};
return (null);
}
public function SetDestructionListener(_arg1:b2DestructionListener):void{
m_destructionListener = _arg1;
}
public function CreateBody(_arg1:b2BodyDef):b2Body{
var _local2:b2Body;
if (m_lock == true){
return (null);
};
_local2 = new b2Body(_arg1, this);
_local2.m_prev = null;
_local2.m_next = m_bodyList;
if (m_bodyList){
m_bodyList.m_prev = _local2;
};
m_bodyList = _local2;
m_bodyCount++;
return (_local2);
}
public function get BulletSolidList():Array{
return (_bullet_solid_list);
}
public function Step(_arg1:Number, _arg2:int):void{
var _local3:b2TimeStep;
m_lock = true;
_local3 = new b2TimeStep();
_local3.dt = _arg1;
_local3.maxIterations = _arg2;
if (_arg1 > 0){
_local3.inv_dt = (1 / _arg1);
} else {
_local3.inv_dt = 0;
};
_local3.dtRatio = (m_inv_dt0 * _arg1);
_local3.positionCorrection = m_positionCorrection;
_local3.warmStarting = m_warmStarting;
m_contactManager.Collide();
if (_local3.dt > 0){
Solve(_local3);
};
if (((m_continuousPhysics) && ((_local3.dt > 0)))){
SolveTOI(_local3);
};
m_inv_dt0 = _local3.inv_dt;
m_lock = false;
}
public function UpdateObjectLists():void{
var _local1:b2Body;
ResetLists();
_local1 = m_bodyList;
while (_local1) {
AddObjectToLists(_local1);
_local1 = _local1.m_next;
};
}
public function GetBodyCount():int{
return (m_bodyCount);
}
public function get WeaponList():Array{
return (_weapon_list);
}
public function get DynamicObjectList():Array{
return (_dynamic_object_list);
}
public function GetDynamicBodyAt(_arg1:Number, _arg2:Number, _arg3:Boolean):b2Body{
var _local4:Array;
var _local5:b2Body;
var _local6:*;
if (_arg3){
_local4 = DynamicObjectList;
} else {
_local4 = DynamicHitBoxObjectList;
};
_local6 = 0;
while (_local6 < _local4.length) {
_local5 = _local4[_local6];
if (_local5.GetUserData().objectData.ShapeMC.hitTestPoint(_arg1, _arg2, true)){
return (_local5);
};
_local6++;
};
return (null);
}
}
}//package Code.Box2D.Dynamics
Section 80
//bot_plate (Code.Data.Menu.bot_plate)
package Code.Data.Menu {
import flash.geom.*;
import Code.Handler.*;
import Code.Data.Players.*;
import flash.display.*;
public class bot_plate extends submenu_base {
private var _allChoicesDone:Boolean;// = false
private var _curr_choice:int;// = -1
private var _must_not_team:int;// = 0
private var _difficulty:int;// = 2
private var _character:int;// = 0
private var _team:int;// = 0
public function bot_plate(_arg1:MovieClip, _arg2:Sounds):void{
_allChoicesDone = false;
_curr_choice = -1;
_character = 0;
_team = 0;
_difficulty = 2;
_must_not_team = 0;
super();
_this = _arg1;
_Handler_Sounds = _arg2;
_this.empty_cover.visible = true;
UpdateMarker();
ShowCharacter();
ShowTeam();
ShowDifficulty();
}
override public function UpdateMarker():void{
HideMarker();
if (_curr_choice == 0){
_this.marker_0.visible = true;
_this.marker_1.visible = true;
_this.highlight_0.visible = true;
} else {
if (_curr_choice == 1){
_this.marker_2.visible = true;
_this.marker_3.visible = true;
_this.highlight_1.visible = true;
UncolorTeam();
} else {
if (_curr_choice == 2){
_this.marker_4.visible = true;
_this.marker_5.visible = true;
_this.highlight_2.visible = true;
};
};
};
}
public function get Team():int{
return (_team);
}
private function ChangeCharacter(_arg1:int):void{
_character = (_character + _arg1);
if (_character < 0){
_character = PlayerCharacter.TOTAL_CHARACTERS;
};
if (_character > PlayerCharacter.TOTAL_CHARACTERS){
_character = 0;
};
if (!PlayerCharacter.CharacterAvailable(_character)){
ChangeCharacter(_arg1);
};
ShowCharacter();
}
public function get Character():int{
return (_character);
}
private function HideMarker():void{
_this.highlight_0.visible = false;
_this.highlight_1.visible = false;
_this.highlight_2.visible = false;
_this.marker_0.visible = false;
_this.marker_1.visible = false;
_this.marker_2.visible = false;
_this.marker_3.visible = false;
_this.marker_4.visible = false;
_this.marker_5.visible = false;
ColorTeam();
}
private function ShowCharacter():void{
if (_character == 0){
_this.character_name.gotoAndStop("RANDOM");
_this.character_pic.gotoAndStop("RANDOM");
} else {
_this.character_name.gotoAndStop(_character);
_this.character_pic.gotoAndStop(_character);
};
}
private function ChangeTeam(_arg1:int):void{
_team = (_team + _arg1);
if (_team < 0){
_team = 4;
};
if (_team > 4){
_team = 0;
};
if ((((_team == _must_not_team)) && (!((_must_not_team == 0))))){
ChangeTeam(_arg1);
return;
};
ShowTeam();
}
private function UncolorTeam():void{
var _local1:ColorTransform;
_local1 = _this.team.transform.colorTransform;
_local1.redOffset = (PlayerTeamColor.SOLO[0] - 0xFF);
_local1.greenOffset = (PlayerTeamColor.SOLO[1] - 0xFF);
_local1.blueOffset = (PlayerTeamColor.SOLO[2] - 0xFF);
_this.team.transform.colorTransform = _local1;
}
public function get CurrChoice():int{
return (_curr_choice);
}
public function get Difficulty():int{
return (_difficulty);
}
public function SetStartItems(_arg1:int, _arg2:int):void{
if (_this.empty_cover.visible == true){
if (_arg1 != _must_not_team){
_team = _arg1;
};
_difficulty = _arg2;
};
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_LEFT:
if (_curr_choice == 0){
ChangeCharacter(-1);
} else {
if (_curr_choice == 1){
ChangeTeam(-1);
} else {
if (_curr_choice == 2){
ChangeDifficulty(-1);
};
};
};
break;
case MenuKey.KEY_RIGHT:
if (_curr_choice == 0){
ChangeCharacter(1);
} else {
if (_curr_choice == 1){
ChangeTeam(1);
} else {
if (_curr_choice == 2){
ChangeDifficulty(1);
};
};
};
break;
case MenuKey.KEY_DOWN:
if (_curr_choice < 2){
_curr_choice++;
} else {
_curr_choice = 0;
};
UpdateMarker();
break;
case MenuKey.KEY_ENTER:
HideMarker();
_canReturn = false;
_allChoicesDone = true;
break;
case MenuKey.KEY_UP:
if (_curr_choice > 0){
_curr_choice--;
} else {
_curr_choice = 2;
};
UpdateMarker();
break;
case MenuKey.KEY_BACKSPACE:
HideMarker();
_canReturn = true;
_allChoicesDone = false;
break;
};
}
private function ShowDifficulty():void{
_this.difficulty.gotoAndStop(_difficulty);
}
public function set CurrChoice(_arg1:int):void{
_curr_choice = _arg1;
_this.empty_cover.visible = false;
UpdateMarker();
ShowCharacter();
ShowTeam();
ShowDifficulty();
}
private function ShowTeam():void{
if (_team == 0){
_this.team.gotoAndStop("SOLO");
} else {
_this.team.gotoAndStop(_team);
};
}
public function set MusntTeam(_arg1:int):void{
_must_not_team = _arg1;
if (_arg1 != 0){
if (_team == _arg1){
};
};
}
private function ChangeDifficulty(_arg1:int):void{
_difficulty = (_difficulty + _arg1);
if (_difficulty > 3){
_difficulty = 1;
};
if (_difficulty < 1){
_difficulty = 3;
};
ShowDifficulty();
}
override public function GetChoice():String{
if (_allChoicesDone){
return ("done");
};
return ("");
}
private function ColorTeam():void{
var _local1:ColorTransform;
if (_team == 0){
UncolorTeam();
return;
};
_local1 = _this.team.transform.colorTransform;
_local1.redOffset = (PlayerTeamColor.TEAM[(_team - 1)][0] - 0xFF);
_local1.greenOffset = (PlayerTeamColor.TEAM[(_team - 1)][1] - 0xFF);
_local1.blueOffset = (PlayerTeamColor.TEAM[(_team - 1)][2] - 0xFF);
_this.team.transform.colorTransform = _local1;
}
}
}//package Code.Data.Menu
Section 81
//bot_setup (Code.Data.Menu.bot_setup)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class bot_setup extends submenu_base {
private var _all_plates_set:Boolean;// = false
private var _must_not_team:int;
private var _max_plates:int;
private var _curr_plate:int;// = 0
private var _bots:int;
private var _plates:Array;
public function bot_setup(_arg1:MovieClip, _arg2:Sounds, _arg3:int, _arg4:int):void{
var i:int;
var botPlate:MovieClip;
var j:int;
var mc = _arg1;
var snd = _arg2;
var nrOfBots = _arg3;
var musntTeam = _arg4;
_curr_plate = 0;
_all_plates_set = false;
super();
_this = mc;
_Handler_Sounds = snd;
_bots = nrOfBots;
_must_not_team = musntTeam;
_canReturn = true;
_plates = new Array();
try {
_this.cp_7.visible = true;
_max_plates = 7;
} catch(e:Error) {
_max_plates = 6;
};
i = 1;
while (i <= _max_plates) {
botPlate = MovieClip(_this.getChildByName(("cp_" + i)));
botPlate.visible = true;
_plates.push(new bot_plate(botPlate, _Handler_Sounds));
i = (i + 1);
};
if (_bots < _max_plates){
j = (_bots + 1);
while (j <= _max_plates) {
MovieClip(_this.getChildByName(("cp_" + j))).visible = false;
j = (j + 1);
};
};
_plates[0].CurrChoice = 0;
if (_bots == 1){
_plates[0].MusntTeam = _must_not_team;
};
}
private function CheckNextPlate():void{
var _local1:String;
_canReturn = false;
_local1 = _plates[_curr_plate].GetChoice();
if (_local1 == "done"){
if (_curr_plate < (_bots - 1)){
_curr_plate++;
_plates[_curr_plate].MusntTeam = GetMustNotTeam();
_plates[_curr_plate].SetStartItems(_plates[(_curr_plate - 1)].Team, _plates[(_curr_plate - 1)].Difficulty);
_plates[_curr_plate].CurrChoice = 0;
_Handler_Sounds.PlayMightySound("ACCEPT");
} else {
_all_plates_set = true;
};
};
}
override public function Show():void{
_this.visible = true;
_plates[_curr_plate].CurrChoice = 0;
}
override public function KeyPressed(_arg1:int):void{
_plates[_curr_plate].KeyPressed(_arg1);
switch (_arg1){
case MenuKey.KEY_ENTER:
CheckNextPlate();
break;
case MenuKey.KEY_BACKSPACE:
CheckPrevPlate();
break;
};
}
public function get BotPlates():Array{
return (_plates);
}
private function CheckPrevPlate():void{
_all_plates_set = false;
if (_plates[_curr_plate].CanReturn){
if (_curr_plate > 0){
_curr_plate--;
_plates[_curr_plate].MusntTeam = GetMustNotTeam();
_plates[_curr_plate].CurrChoice = 0;
_Handler_Sounds.PlayMightySound("CANCEL");
} else {
_canReturn = true;
};
};
}
private function GetMustNotTeam():int{
var _local1:int;
if (_must_not_team != 0){
_local1 = 0;
while (_local1 < _bots) {
if (_local1 != _curr_plate){
if (_plates[_local1].Team != _must_not_team){
return (0);
};
};
_local1++;
};
return (_must_not_team);
};
return (0);
}
override public function GetChoice():String{
if (_all_plates_set){
return ("map_selection");
};
return ("");
}
}
}//package Code.Data.Menu
Section 82
//challenge_selection (Code.Data.Menu.challenge_selection)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
import Code.Data.*;
import com.newgrounds.*;
import flash.net.*;
public class challenge_selection extends submenu_base {
private var _skipChoiseOnce:Boolean;// = false
private var _Handler_Keyboard:InputKeyboard;
private var _stageLevelsFinished:Array;
private var _nextChallenge:int;
public function challenge_selection(_arg1:MovieClip, _arg2:Sounds, _arg3:InputKeyboard, _arg4:int):void{
var _local5:int;
var _local6:int;
_skipChoiseOnce = false;
super();
_this = _arg1;
_this.win_message.visible = false;
_canReturn = true;
_Handler_Sounds = _arg2;
_Handler_Keyboard = _arg3;
_local5 = 0;
while (_local5 < 12) {
_local6 = Challenges.CHALLENGE[(_arg4 - 1)][_local5][0];
MovieClip(_this.getChildByName(("c_" + (_local5 + 1)))).map_pic.gotoAndStop(_local6);
_local5++;
};
LoadData();
UpdateMarker();
}
override public function UpdateMarker():void{
var _local1:int;
_local1 = 1;
while (_local1 <= 12) {
if (_stageLevelsFinished[(_local1 - 1)]){
MovieClip(_this.getChildByName(("c_" + _local1))).gotoAndStop(3);
} else {
MovieClip(_this.getChildByName(("c_" + _local1))).gotoAndStop(1);
};
MovieClip(MovieClip(_this.getChildByName(("c_" + _local1))).getChildByName("selection")).visible = false;
_local1++;
};
if (_nextChallenge != 0){
MovieClip(_this.getChildByName(("c_" + _nextChallenge))).gotoAndStop(2);
};
if (_nextChallenge == 0){
MovieClip(_this.getChildByName("funnyman_message")).gotoAndStop(2);
} else {
MovieClip(_this.getChildByName("funnyman_message")).gotoAndStop(1);
};
_this.delete_marker.visible = false;
if (_marker_pos <= 12){
MovieClip(MovieClip(_this.getChildByName(("c_" + _marker_pos))).getChildByName("selection")).visible = true;
} else {
_this.delete_marker.visible = true;
};
}
public function SaveWinData():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
_local1.data.stageModeWinMessageShown = true;
_local1.flush();
}
public function LoadData():void{
var _local1:SharedObject;
var _local2:int;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
if (_local1.data.stageLevelsFinished != undefined){
_stageLevelsFinished = _local1.data.stageLevelsFinished;
} else {
_stageLevelsFinished = [false, false, false, false, false, false, false, false, false, false, false, false];
SaveData();
};
_nextChallenge = 0;
_marker_pos = 1;
_local2 = 0;
while (_local2 < 12) {
if (_stageLevelsFinished[_local2] == false){
_nextChallenge = (_local2 + 1);
_marker_pos = (_local2 + 1);
return;
};
_local2++;
};
if (_nextChallenge == 0){
if (_local1.data.stageModeWinMessageShown == undefined){
_this.win_message.visible = true;
_canReturn = false;
_skipChoiseOnce = true;
SaveWinData();
};
};
}
public function SaveData():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
_local1.data.stageLevelsFinished = _stageLevelsFinished;
_local1.flush();
}
private function Change(_arg1:int):void{
if (_marker_pos == 13){
_marker_pos = 12;
};
_marker_pos = (_marker_pos + _arg1);
if (_marker_pos < 1){
_marker_pos = (_marker_pos + 12);
};
if (_marker_pos > 12){
_marker_pos = (_marker_pos - 12);
};
}
override public function Show():void{
_this.visible = true;
LoadData();
UpdateMarker();
if (_nextChallenge == 0){
API.unlockMedal("Superfighter");
};
}
override public function KeyPressed(_arg1:int):void{
if (!_this.win_message.visible){
switch (_arg1){
case MenuKey.KEY_UP:
if (_marker_pos == 13){
_marker_pos = 12;
} else {
Change(-4);
};
break;
case MenuKey.KEY_DOWN:
if ((((_marker_pos == 11)) || ((_marker_pos == 12)))){
_marker_pos = 13;
} else {
if (_marker_pos == 13){
_marker_pos = 4;
} else {
Change(4);
};
};
break;
case MenuKey.KEY_LEFT:
Change(-1);
break;
case MenuKey.KEY_RIGHT:
Change(1);
break;
case MenuKey.KEY_ENTER:
break;
case MenuKey.KEY_BACKSPACE:
break;
};
UpdateMarker();
} else {
if ((((_arg1 == MenuKey.KEY_ENTER)) || ((_arg1 == MenuKey.KEY_BACKSPACE)))){
_this.win_message.visible = false;
_canReturn = true;
};
};
}
public function get SelectedChallenge():int{
return (_marker_pos);
}
override public function GetChoice():String{
if (_skipChoiseOnce){
_skipChoiseOnce = false;
} else {
if (_marker_pos == 13){
return ("confirm_delete");
};
if ((((_marker_pos <= _nextChallenge)) || ((_nextChallenge == 0)))){
return ("start_challenge");
};
};
return ("");
}
}
}//package Code.Data.Menu
Section 83
//confirm_delete (Code.Data.Menu.confirm_delete)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class confirm_delete extends submenu_base {
public function confirm_delete(_arg1:MovieClip, _arg2:Sounds):void{
_this = _arg1;
_Handler_Sounds = _arg2;
_canReturn = true;
_marker_pos = 1;
UpdateMarker();
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_LEFT:
Toggle();
break;
case MenuKey.KEY_RIGHT:
Toggle();
break;
};
UpdateMarker();
}
override public function UpdateMarker():void{
_this.marker_1.visible = false;
_this.marker_2.visible = false;
MovieClip(_this.getChildByName(("marker_" + _marker_pos))).visible = true;
}
private function Toggle():void{
_marker_pos++;
if (_marker_pos > 2){
_marker_pos = 1;
};
}
override public function GetChoice():String{
if (_marker_pos == 1){
return ("delete_progress");
};
return ("not_delete_progress");
}
}
}//package Code.Data.Menu
Section 84
//first_choise (Code.Data.Menu.first_choise)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
import flash.net.*;
public class first_choise extends submenu_base {
private var _players:int;// = 1
public function first_choise(_arg1:MovieClip, _arg2:Sounds):void{
_players = 1;
super();
_this = _arg1;
_total_markers = 4;
_Handler_Sounds = _arg2;
_canReturn = true;
LoadData();
UpdateMarker();
}
private function LoadData():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
if (_local1.data.startedBefore == undefined){
_marker_pos = 2;
_this.tutorial_promt.visible = true;
SaveData();
} else {
_this.tutorial_promt.visible = false;
};
}
public function get Players():int{
return (_players);
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_UP:
_marker_pos--;
if (_marker_pos < 0){
_marker_pos = (_total_markers - 1);
};
break;
case MenuKey.KEY_DOWN:
_marker_pos++;
if (_marker_pos >= _total_markers){
_marker_pos = 0;
};
break;
};
UpdateMarker();
}
private function SaveData():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
_local1.data.startedBefore = true;
_local1.flush();
}
override public function GetChoice():String{
switch (_marker_pos){
case 0:
_players = 1;
return ("mode_selection");
case 1:
_players = 2;
return ("mode_selection");
case 2:
_players = 1;
return ("tutorial");
case 3:
return ("set_up_main");
};
return ("");
}
}
}//package Code.Data.Menu
Section 85
//map_selection (Code.Data.Menu.map_selection)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class map_selection extends submenu_base {
private var _mode:int;
public var Mode:int;// = 1
public var Level:int;
public function map_selection(_arg1:MovieClip, _arg2:Sounds, _arg3:int):void{
Level = Maps.RANDOM_MAP;
Mode = 1;
super();
_mode = _arg3;
_this = _arg1;
_canReturn = true;
_Handler_Sounds = _arg2;
_canReturn = true;
if (_mode == 0){
_this.gotoAndStop(1);
} else {
if (_mode == 2){
_this.gotoAndStop(2);
Level = 10;
};
};
UpdateMarker();
}
override public function UpdateMarker():void{
_this.highlight_0.visible = false;
_this.highlight_1.visible = false;
_this.marker_0.visible = false;
_this.marker_1.visible = false;
_this.marker_2.visible = false;
_this.marker_3.visible = false;
_this.marker_4.visible = false;
_this.marker_5.visible = false;
if (_marker_pos == 0){
_this.marker_0.visible = true;
} else {
if (_marker_pos == 1){
_this.highlight_0.visible = true;
_this.marker_1.visible = true;
_this.marker_2.visible = true;
} else {
if (_marker_pos == 2){
_this.highlight_1.visible = true;
_this.marker_3.visible = true;
_this.marker_4.visible = true;
} else {
if (_marker_pos == 3){
_this.marker_5.visible = true;
};
};
};
};
_this.map.gotoAndStop(Level);
_this.map_pic.gotoAndStop(Level);
if (_mode == 0){
_this.game_mode.gotoAndStop(Mode);
} else {
if (_mode == 2){
_this.game_mode.gotoAndStop(10);
};
};
}
private function ChangeMode(_arg1:int):void{
Mode = (Mode + _arg1);
if (Mode < 1){
Mode = 7;
};
if (Mode > 7){
Mode = 1;
};
}
private function ChangeLevel(_arg1:int):void{
if (_mode == 0){
Level = (Level + _arg1);
if (Level > Maps.TOTAL_MAPS){
Level = 2;
};
if (Level < 2){
Level = Maps.TOTAL_MAPS;
};
} else {
if (_mode == 2){
Level = (Level + _arg1);
if ((Level - 9) > Maps.TOTAL_SURVIVAL_MAPS){
Level = 10;
};
if ((Level - 9) < 1){
Level = (9 + Maps.TOTAL_SURVIVAL_MAPS);
};
};
};
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_UP:
_marker_pos--;
if ((((_mode == 2)) && ((_marker_pos == 2)))){
_marker_pos--;
};
if (_marker_pos < 0){
_marker_pos = 3;
};
break;
case MenuKey.KEY_DOWN:
_marker_pos++;
if ((((_mode == 2)) && ((_marker_pos == 2)))){
_marker_pos++;
};
if (_marker_pos > 3){
_marker_pos = 0;
};
break;
case MenuKey.KEY_LEFT:
if (_marker_pos == 1){
ChangeLevel(-1);
};
if (_marker_pos == 2){
ChangeMode(-1);
};
break;
case MenuKey.KEY_RIGHT:
if (_marker_pos == 1){
ChangeLevel(1);
};
if (_marker_pos == 2){
ChangeMode(1);
};
break;
};
UpdateMarker();
}
override public function GetChoice():String{
if (_marker_pos == 0){
if (_mode == 0){
return ("fight");
};
if (_mode == 2){
return ("start_survival");
};
} else {
if (_marker_pos == 3){
return ("reset");
};
};
return ("");
}
}
}//package Code.Data.Menu
Section 86
//MenuKey (Code.Data.Menu.MenuKey)
package Code.Data.Menu {
public class MenuKey {
public static const KEY_DOWN:int = 1;
public static const KEY_LEFT:int = 2;
public static const KEY_ENTER:int = 4;
public static const KEY_UP:int = 0;
public static const KEY_RIGHT:int = 3;
public static const KEY_BACKSPACE:int = 5;
}
}//package Code.Data.Menu
Section 87
//mode_selection (Code.Data.Menu.mode_selection)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class mode_selection extends submenu_base {
public function mode_selection(_arg1:MovieClip, _arg2:Sounds):void{
_this = _arg1;
_total_markers = 3;
_canReturn = true;
_Handler_Sounds = _arg2;
UpdateMarker();
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_UP:
_marker_pos--;
if (_marker_pos < 0){
_marker_pos = (_total_markers - 1);
};
break;
case MenuKey.KEY_DOWN:
_marker_pos++;
if (_marker_pos >= _total_markers){
_marker_pos = 0;
};
break;
};
UpdateMarker();
}
override public function GetChoice():String{
switch (_marker_pos){
case 0:
return ("vs_mode");
case 1:
return ("stage_mode");
case 2:
return ("survival_mode");
};
return ("");
}
}
}//package Code.Data.Menu
Section 88
//no_bots (Code.Data.Menu.no_bots)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class no_bots extends submenu_base {
private var _no_bots:int;// = 0
private var _max_bots:int;// = 0
private var _min_bots:int;// = 0
public function no_bots(_arg1:MovieClip, _arg2:Sounds, _arg3:int, _arg4:int):void{
var _local5:int;
_max_bots = 0;
_min_bots = 0;
_no_bots = 0;
super();
_max_bots = _arg4;
_min_bots = _arg3;
_this = _arg1;
_local5 = 0;
if (_min_bots == 1){
_local5 = (_local5 + 2);
_no_bots = 1;
};
if (_max_bots == 7){
_local5 = (_local5 + 1);
} else {
_local5 = (_local5 + 2);
};
_this.gotoAndStop(_local5);
_Handler_Sounds = _arg2;
_canReturn = true;
_total_markers = 8;
_marker_pos = _no_bots;
UpdateMarker();
}
public function get NoBots():int{
return (_no_bots);
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_LEFT:
ChangeBots(-1);
break;
case MenuKey.KEY_RIGHT:
ChangeBots(1);
break;
case MenuKey.KEY_ENTER:
Hide();
break;
};
}
private function ChangeBots(_arg1:int):void{
_no_bots = (_no_bots + _arg1);
if (_no_bots < _min_bots){
_no_bots = _max_bots;
};
if (_no_bots > _max_bots){
_no_bots = _min_bots;
};
_marker_pos = _no_bots;
UpdateMarker();
}
override public function GetChoice():String{
return ("prepare_bots");
}
}
}//package Code.Data.Menu
Section 89
//player_plate (Code.Data.Menu.player_plate)
package Code.Data.Menu {
import flash.geom.*;
import Code.Handler.*;
import Code.Data.Players.*;
import flash.display.*;
public class player_plate extends submenu_base {
private var _allChoicesDone:Boolean;// = false
private var _curr_choice:int;// = -1
private var _canSelectTeam:Boolean;
private var _character:int;// = 0
private var _team:int;// = 0
public function player_plate(_arg1:MovieClip, _arg2:Sounds, _arg3:int, _arg4:Boolean):void{
_allChoicesDone = false;
_curr_choice = -1;
_character = 0;
_team = 0;
super();
_this = _arg1;
_Handler_Sounds = _arg2;
UpdateMarker();
_this.player_type.gotoAndStop(_arg3);
_canSelectTeam = _arg4;
if (_canSelectTeam){
_this.gotoAndStop(1);
} else {
_this.gotoAndStop(2);
_team = 1;
};
ShowCharacter();
ShowTeam();
}
override public function UpdateMarker():void{
HideMarker();
if (_curr_choice == 0){
_this.marker_0.visible = true;
_this.marker_1.visible = true;
_this.highlight_0.visible = true;
} else {
if (_curr_choice == 1){
_this.marker_2.visible = true;
_this.marker_3.visible = true;
_this.highlight_1.visible = true;
UncolorTeam();
};
};
}
public function get Team():int{
return (_team);
}
public function get Character():int{
return (_character);
}
private function HideMarker():void{
_this.highlight_0.visible = false;
_this.highlight_1.visible = false;
_this.marker_0.visible = false;
_this.marker_1.visible = false;
_this.marker_2.visible = false;
_this.marker_3.visible = false;
ColorTeam();
}
private function ShowCharacter():void{
if (_character == 0){
_this.character_name.gotoAndStop("RANDOM");
_this.character_pic.gotoAndStop("RANDOM");
} else {
_this.character_name.gotoAndStop(_character);
_this.character_pic.gotoAndStop(_character);
};
}
private function ChangeTeam(_arg1:int):void{
_team = (_team + _arg1);
if (_team < 0){
_team = 4;
};
if (_team > 4){
_team = 0;
};
ShowTeam();
}
private function UncolorTeam():void{
var _local1:ColorTransform;
_local1 = _this.team.transform.colorTransform;
_local1.redOffset = (PlayerTeamColor.SOLO[0] - 0xFF);
_local1.greenOffset = (PlayerTeamColor.SOLO[1] - 0xFF);
_local1.blueOffset = (PlayerTeamColor.SOLO[2] - 0xFF);
_this.team.transform.colorTransform = _local1;
}
public function get CurrChoice():int{
return (_curr_choice);
}
private function ColorTeam():void{
var _local1:ColorTransform;
if (_team == 0){
UncolorTeam();
return;
};
_local1 = _this.team.transform.colorTransform;
_local1.redOffset = (PlayerTeamColor.TEAM[(_team - 1)][0] - 0xFF);
_local1.greenOffset = (PlayerTeamColor.TEAM[(_team - 1)][1] - 0xFF);
_local1.blueOffset = (PlayerTeamColor.TEAM[(_team - 1)][2] - 0xFF);
_this.team.transform.colorTransform = _local1;
}
private function ShowTeam():void{
if (_team == 0){
_this.team.gotoAndStop("SOLO");
} else {
_this.team.gotoAndStop(_team);
};
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_LEFT:
if (_curr_choice == 0){
ChangeCharacter(-1);
} else {
if (_curr_choice == 1){
ChangeTeam(-1);
};
};
break;
case MenuKey.KEY_RIGHT:
if (_curr_choice == 0){
ChangeCharacter(1);
} else {
if (_curr_choice == 1){
ChangeTeam(1);
};
};
break;
case MenuKey.KEY_DOWN:
if (!_canSelectTeam){
return;
};
if (_curr_choice < 1){
_curr_choice++;
} else {
_curr_choice--;
};
UpdateMarker();
break;
case MenuKey.KEY_ENTER:
HideMarker();
_canReturn = false;
_allChoicesDone = true;
break;
case MenuKey.KEY_UP:
if (!_canSelectTeam){
return;
};
if (_curr_choice > 0){
_curr_choice--;
} else {
_curr_choice++;
};
UpdateMarker();
break;
case MenuKey.KEY_BACKSPACE:
HideMarker();
_canReturn = true;
_allChoicesDone = false;
break;
};
}
public function set CurrChoice(_arg1:int):void{
_curr_choice = _arg1;
UpdateMarker();
ShowCharacter();
ShowTeam();
}
override public function GetChoice():String{
if (_allChoicesDone){
return ("done");
};
return ("");
}
private function ChangeCharacter(_arg1:int):void{
_character = (_character + _arg1);
if (_character < 0){
_character = PlayerCharacter.TOTAL_CHARACTERS;
};
if (_character > PlayerCharacter.TOTAL_CHARACTERS){
_character = 0;
};
if (!PlayerCharacter.CharacterAvailable(_character)){
ChangeCharacter(_arg1);
};
ShowCharacter();
}
}
}//package Code.Data.Menu
Section 90
//set_up (Code.Data.Menu.set_up)
package Code.Data.Menu {
import flash.events.*;
import Code.Handler.*;
import Code.Data.Players.*;
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class set_up extends submenu_base {
private var _delay_key:Boolean;// = true
private var _Handler_Options:Options;
private var _lockKeys:Boolean;// = false
private var _curr_player:int;// = 0
private var _key_edit_timer:Number;
private var _Handler_Keyboard:InputKeyboard;
private var _config:int;
private var _update_delay:Boolean;
private var _update_marker_timer:Number;
private var _wait_for_key:Boolean;// = false
private static var TOTAL_SELECTIONS:Array = [10, 13];
private static var SIMPLE:int = 0;
private static var ADVANCED:int = 1;
public function set_up(_arg1:MovieClip, _arg2:Sounds, _arg3:InputKeyboard, _arg4:Options):void{
_curr_player = 0;
_config = SIMPLE;
_wait_for_key = false;
_delay_key = true;
_lockKeys = false;
super();
_this = _arg1;
_marker_pos = 0;
_canReturn = true;
_Handler_Sounds = _arg2;
_Handler_Keyboard = _arg3;
_Handler_Options = _arg4;
UpdateMarker();
_Handler_Keyboard.KeyDownFunction = keyDownHandler;
}
override public function UpdateMarker():void{
try {
UpdateMarkerTick(null);
} catch(e:Error) {
_update_delay = false;
_this.removeEventListener(Event.ENTER_FRAME, UpdateMarkerTick);
_this.addEventListener(Event.ENTER_FRAME, UpdateMarkerTick, false, 0, true);
};
}
override public function GetChoice():String{
return ("");
}
private function EngageWaiting():void{
_delay_key = true;
_wait_for_key = true;
_canReturn = false;
GetCurrentTextField().text = "PRESS";
MovieClip(_this.getChildByName(("highlight_" + (_marker_pos + 2)))).visible = true;
_key_edit_timer = setInterval(function (){
clearInterval(_key_edit_timer);
_delay_key = false;
}, 100);
}
override public function Show():void{
_this.gotoAndStop(_config);
_this.visible = true;
UpdateMarker();
}
public function PrintKeys():void{
if (_config == SIMPLE){
PrintKeyFor(_this.key_up, Player.KEY_JUMP, Player.KEY_UP);
PrintKeyFor(_this.key_down, Player.KEY_KNEEL, Player.KEY_DOWN);
PrintKeyFor(_this.key_left, Player.KEY_LEFT, Player.KEY_LEFT);
PrintKeyFor(_this.key_right, Player.KEY_RIGHT, Player.KEY_RIGHT);
PrintKeyFor(_this.key_melee, Player.KEY_MELEE, Player.KEY_MELEE);
PrintKeyFor(_this.key_fire, Player.KEY_FIRE, Player.KEY_FIRE);
PrintKeyFor(_this.key_throw, Player.KEY_THROW, Player.KEY_THROW);
PrintKeyFor(_this.key_powerup, Player.KEY_POWERUP, Player.KEY_POWERUP);
} else {
PrintKeyFor(_this.key_up, Player.KEY_UP, Player.KEY_UP);
PrintKeyFor(_this.key_jump, Player.KEY_JUMP, Player.KEY_JUMP);
PrintKeyFor(_this.key_down, Player.KEY_DOWN, Player.KEY_DOWN);
PrintKeyFor(_this.key_kneel, Player.KEY_KNEEL, Player.KEY_KNEEL);
PrintKeyFor(_this.key_left, Player.KEY_LEFT, Player.KEY_LEFT);
PrintKeyFor(_this.key_right, Player.KEY_RIGHT, Player.KEY_RIGHT);
PrintKeyFor(_this.key_melee, Player.KEY_MELEE, Player.KEY_MELEE);
PrintKeyFor(_this.key_fire, Player.KEY_FIRE, Player.KEY_FIRE);
PrintKeyFor(_this.key_throw, Player.KEY_THROW, Player.KEY_THROW);
PrintKeyFor(_this.key_powerup, Player.KEY_POWERUP, Player.KEY_POWERUP);
PrintKeyFor(_this.key_sprint, Player.KEY_SPRINT, Player.KEY_SPRINT);
};
}
private function GetCurrentTextField():TextField{
if (_config == SIMPLE){
switch (_marker_pos){
case 2:
return (_this.key_up);
case 3:
return (_this.key_down);
case 4:
return (_this.key_left);
case 5:
return (_this.key_right);
case 6:
return (_this.key_melee);
case 7:
return (_this.key_fire);
case 8:
return (_this.key_throw);
case 9:
return (_this.key_powerup);
};
} else {
switch (_marker_pos){
case 2:
return (_this.key_up);
case 3:
return (_this.key_jump);
case 4:
return (_this.key_down);
case 5:
return (_this.key_kneel);
case 6:
return (_this.key_left);
case 7:
return (_this.key_right);
case 8:
return (_this.key_melee);
case 9:
return (_this.key_fire);
case 10:
return (_this.key_throw);
case 11:
return (_this.key_powerup);
case 12:
return (_this.key_sprint);
};
};
return (null);
}
private function EditKeyBind():void{
if (!_wait_for_key){
EngageWaiting();
};
}
private function SetDefaultKeys():void{
if (_curr_player == 0){
_Handler_Options.SetDefaultP1Keys();
} else {
_Handler_Options.SetDefaultP2Keys();
};
_Handler_Sounds.PlayMightySound("ACCEPT");
PrintKeys();
}
private function GetCurrentKeyIndex():Array{
if (_config == SIMPLE){
switch (_marker_pos){
case 2:
return ([Player.KEY_UP, Player.KEY_JUMP]);
case 3:
return ([Player.KEY_DOWN, Player.KEY_KNEEL]);
case 4:
return ([Player.KEY_LEFT]);
case 5:
return ([Player.KEY_RIGHT]);
case 6:
return ([Player.KEY_MELEE]);
case 7:
return ([Player.KEY_FIRE]);
case 8:
return ([Player.KEY_THROW]);
case 9:
return ([Player.KEY_POWERUP]);
};
} else {
switch (_marker_pos){
case 2:
return ([Player.KEY_UP]);
case 3:
return ([Player.KEY_JUMP]);
case 4:
return ([Player.KEY_DOWN]);
case 5:
return ([Player.KEY_KNEEL]);
case 6:
return ([Player.KEY_LEFT]);
case 7:
return ([Player.KEY_RIGHT]);
case 8:
return ([Player.KEY_MELEE]);
case 9:
return ([Player.KEY_FIRE]);
case 10:
return ([Player.KEY_THROW]);
case 11:
return ([Player.KEY_POWERUP]);
case 12:
return ([Player.KEY_SPRINT]);
};
};
return ([0]);
}
private function UpdateMarkerTick(_arg1:Event):void{
var _local2:int;
if (!_update_delay){
_update_delay = true;
return;
};
_this.removeEventListener(Event.ENTER_FRAME, UpdateMarkerTick);
_local2 = 0;
while (_local2 < 16) {
MovieClip(_this.getChildByName(("marker_" + _local2))).visible = false;
_local2++;
};
_this.highlight_0.visible = false;
_this.highlight_1.visible = false;
_local2 = 4;
while (_local2 < 16) {
MovieClip(_this.getChildByName(("highlight_" + _local2))).visible = false;
_local2++;
};
switch (_marker_pos){
case 0:
_this.highlight_0.visible = true;
_this.marker_0.visible = true;
_this.marker_1.visible = true;
break;
case 1:
_this.highlight_1.visible = true;
_this.marker_2.visible = true;
_this.marker_3.visible = true;
break;
default:
MovieClip(_this.getChildByName(("marker_" + (_marker_pos + 2)))).visible = true;
break;
};
PrintKeys();
}
private function PrintKeyFor(_arg1:TextField, _arg2:int, _arg3:int):void{
if (_Handler_Options.PlayerKeys[_curr_player][_arg2] == _Handler_Options.PlayerKeys[_curr_player][_arg3]){
if (_Handler_Options.PlayerKeys[_curr_player][_arg2] == 0){
_arg1.text = "[ NONE ]";
} else {
_arg1.text = _Handler_Keyboard.GetCharFromCode(_Handler_Options.PlayerKeys[_curr_player][_arg2]);
};
} else {
_arg1.text = ((_Handler_Keyboard.GetCharFromCode(_Handler_Options.PlayerKeys[_curr_player][_arg2]) + " / ") + _Handler_Keyboard.GetCharFromCode(_Handler_Options.PlayerKeys[_curr_player][_arg3]));
};
}
private function ToggleConfig():void{
if (_config == SIMPLE){
_config = ADVANCED;
} else {
_config = SIMPLE;
};
_this.gotoAndStop((_config + 1));
}
override public function KeyPressed(_arg1:int):void{
if (_wait_for_key){
return;
};
switch (_arg1){
case MenuKey.KEY_UP:
_marker_pos--;
if (_marker_pos < 0){
_marker_pos = TOTAL_SELECTIONS[_config];
};
break;
case MenuKey.KEY_DOWN:
_marker_pos++;
if (_marker_pos > TOTAL_SELECTIONS[_config]){
_marker_pos = 0;
};
break;
case MenuKey.KEY_LEFT:
if (_marker_pos == 0){
TogglePlayer();
};
if (_marker_pos == 1){
ToggleConfig();
};
break;
case MenuKey.KEY_RIGHT:
if (_marker_pos == 0){
TogglePlayer();
};
if (_marker_pos == 1){
ToggleConfig();
};
break;
case MenuKey.KEY_ENTER:
if ((((_marker_pos > 1)) && ((_marker_pos < TOTAL_SELECTIONS[_config])))){
EditKeyBind();
return;
};
if (_marker_pos == TOTAL_SELECTIONS[_config]){
SetDefaultKeys();
};
break;
case MenuKey.KEY_BACKSPACE:
if (!_wait_for_key){
_Handler_Keyboard.KeyDownFunction = null;
};
break;
};
UpdateMarker();
}
private function ReleaseWaiting():void{
_wait_for_key = false;
_canReturn = true;
_lockKeys = false;
clearInterval(_key_edit_timer);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
var _local2:Array;
var _local3:int;
var _local4:int;
if (((((!(_lockKeys)) && (_wait_for_key))) && (!(_delay_key)))){
_lockKeys = true;
_local2 = GetCurrentKeyIndex();
_local3 = _arg1.keyCode;
if (_local3 == 27){
_local3 = 0;
};
_local4 = 0;
while (_local4 < _local2.length) {
_Handler_Options.PlayerKeys[_curr_player][_local2[_local4]] = _local3;
_local4++;
};
_key_edit_timer = setInterval(ReleaseWaiting, 60);
_Handler_Sounds.PlayMightySound("ACCEPT");
UpdateMarker();
};
}
private function TogglePlayer():void{
if (_curr_player == 0){
_curr_player = 1;
} else {
_curr_player = 0;
};
_this.player_nr.text = (_curr_player + 1).toString();
}
}
}//package Code.Data.Menu
Section 91
//set_up_main (Code.Data.Menu.set_up_main)
package Code.Data.Menu {
import flash.events.*;
import Code.Handler.*;
import flash.display.*;
public class set_up_main extends submenu_base {
private var _Handler_Keyboard:InputKeyboard;
private var _Handler_Options:Options;
public function set_up_main(_arg1:MovieClip, _arg2:Sounds, _arg3:InputKeyboard, _arg4:Options):void{
_this = _arg1;
_canReturn = true;
_Handler_Sounds = _arg2;
_Handler_Options = _arg4;
_Handler_Keyboard = _arg3;
_Handler_Keyboard.KeyDownFunctionRepeatable = keyDownHandler;
UpdateMarker();
}
override public function UpdateMarker():void{
var _local1:int;
_local1 = 0;
while (_local1 < 7) {
MovieClip(_this.getChildByName(("marker_" + _local1))).visible = false;
_local1++;
};
_local1 = 0;
while (_local1 < 3) {
MovieClip(_this.getChildByName(("highlight_" + _local1))).visible = false;
_local1++;
};
switch (_marker_pos){
case 0:
_this.marker_0.visible = true;
_this.marker_1.visible = true;
_this.highlight_0.visible = true;
break;
case 1:
_this.marker_2.visible = true;
_this.marker_3.visible = true;
_this.highlight_1.visible = true;
break;
case 2:
_this.marker_4.visible = true;
_this.marker_5.visible = true;
_this.highlight_2.visible = true;
break;
case 3:
_this.marker_6.visible = true;
break;
};
UpdateText();
}
private function UpdateText():void{
_this.graphic_text.text = _Handler_Options.GetStageQuality();
_this.effect_text.text = _Handler_Options.GetEffectQuality();
_this.volume_text.text = (Math.round((_Handler_Sounds.SoundEffectVolume * 100)) + " %");
}
override public function Show():void{
_this.visible = true;
UpdateMarker();
}
override public function KeyPressed(_arg1:int):void{
switch (_arg1){
case MenuKey.KEY_UP:
_marker_pos--;
if (_marker_pos < 0){
_marker_pos = 3;
};
break;
case MenuKey.KEY_DOWN:
_marker_pos++;
if (_marker_pos > 3){
_marker_pos = 0;
};
break;
case MenuKey.KEY_LEFT:
if (_marker_pos == 0){
_Handler_Options.ToggleGraphicQuality(-1);
};
if (_marker_pos == 1){
_Handler_Options.ToggleEffectLevel(-1);
};
if (_marker_pos == 2){
_Handler_Sounds.ChangeEffectVolume(0);
};
break;
case MenuKey.KEY_RIGHT:
if (_marker_pos == 0){
_Handler_Options.ToggleGraphicQuality(1);
};
if (_marker_pos == 1){
_Handler_Options.ToggleEffectLevel(1);
};
if (_marker_pos == 2){
_Handler_Sounds.ChangeEffectVolume(0);
};
break;
case MenuKey.KEY_BACKSPACE:
_Handler_Keyboard.KeyDownFunctionRepeatable = null;
_Handler_Options.SaveData();
break;
};
UpdateMarker();
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (_marker_pos == 2){
if (_arg1.keyCode == 37){
_Handler_Sounds.ChangeEffectVolume(-0.01);
};
if (_arg1.keyCode == 39){
_Handler_Sounds.ChangeEffectVolume(0.01);
};
_this.volume_text.text = (Math.round((_Handler_Sounds.SoundEffectVolume * 100)) + " %");
};
}
override public function GetChoice():String{
switch (_marker_pos){
case 3:
return ("set_up");
};
return ("");
}
}
}//package Code.Data.Menu
Section 92
//submenu_base (Code.Data.Menu.submenu_base)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class submenu_base {
protected var _canReturn:Boolean;// = false
protected var _marker_pos:int;// = 0
protected var _Handler_Sounds:Sounds;
protected var _this:MovieClip;
protected var _total_markers:int;// = 0
public function submenu_base(){
_total_markers = 0;
_marker_pos = 0;
_canReturn = false;
super();
}
public function get CanReturn():Boolean{
return (_canReturn);
}
public function KeyPressed(_arg1:int):void{
}
public function Show():void{
_this.visible = true;
}
public function Hide():void{
_this.visible = false;
}
public function UpdateMarker():void{
var _local1:int;
_local1 = 0;
while (_local1 < _total_markers) {
MovieClip(_this.getChildByName(("marker_" + _local1))).visible = false;
_local1++;
};
MovieClip(_this.getChildByName(("marker_" + _marker_pos))).visible = true;
}
public function GetChoice():String{
return ("");
}
}
}//package Code.Data.Menu
Section 93
//vs_player_setup (Code.Data.Menu.vs_player_setup)
package Code.Data.Menu {
import Code.Handler.*;
import flash.display.*;
public class vs_player_setup extends submenu_base {
private var _all_plates_set:Boolean;// = false
private var _mode:int;
private var _curr_plate:int;// = 0
private var _players:int;
private var _plates:Array;
public function vs_player_setup(_arg1:MovieClip, _arg2:Sounds, _arg3:int, _arg4:int):void{
var _local5:Boolean;
var _local6:int;
_curr_plate = 0;
_all_plates_set = false;
super();
_this = _arg1;
_Handler_Sounds = _arg2;
_players = _arg3;
_plates = new Array();
_mode = _arg4;
_local5 = true;
if ((((_mode == 1)) || ((_mode == 2)))){
_local5 = false;
};
_local6 = 1;
while (_local6 <= _players) {
_plates.push(new player_plate(MovieClip(_this.getChildByName((("p" + _local6) + "_plate"))), _Handler_Sounds, _local6, _local5));
_local6++;
};
_plates[0].CurrChoice = 0;
}
public function get PlayerPlateOne():player_plate{
return (_plates[0]);
}
public function get PlayerPlateTwo():player_plate{
return (_plates[1]);
}
private function CheckNextPlate():void{
var _local1:String;
_canReturn = false;
_local1 = _plates[_curr_plate].GetChoice();
if (_local1 == "done"){
if (_curr_plate < (_players - 1)){
_curr_plate++;
_plates[_curr_plate].CurrChoice = 0;
_Handler_Sounds.PlayMightySound("ACCEPT");
} else {
_all_plates_set = true;
};
};
}
override public function Show():void{
_this.visible = true;
_plates[_curr_plate].CurrChoice = 0;
}
override public function KeyPressed(_arg1:int):void{
_plates[_curr_plate].KeyPressed(_arg1);
switch (_arg1){
case MenuKey.KEY_ENTER:
CheckNextPlate();
break;
case MenuKey.KEY_BACKSPACE:
CheckPrevPlate();
break;
};
}
private function CheckPrevPlate():void{
_all_plates_set = false;
if (_plates[_curr_plate].CanReturn){
if (_curr_plate > 0){
_curr_plate--;
_plates[_curr_plate].CurrChoice = 0;
_Handler_Sounds.PlayMightySound("CANCEL");
} else {
_canReturn = true;
};
};
}
override public function GetChoice():String{
if (((_all_plates_set) && ((_mode == 0)))){
return ("no_bots");
};
if (((_all_plates_set) && ((_mode == 1)))){
return ("challenge_selection");
};
if (((_all_plates_set) && ((_mode == 2)))){
return ("start_survival");
};
return ("");
}
}
}//package Code.Data.Menu
Section 94
//BotState (Code.Data.Players.BotState)
package Code.Data.Players {
import Code.Box2D.Dynamics.*;
import Code.Data.*;
public class BotState {
public var RandomFirePosition:Boolean;// = true
public var GrabWeaponTimer:int;// = 0
private var _nextResNode:PathResultNode;// = null
public var TargetInSight:Boolean;// = false
public var DodgeBullet:Boolean;// = false
public var _targetChooseTimer:Number;
public var DoFireCheck:Boolean;// = false
public var PreferJumpOverObstacle:Boolean;// = false
public var CancelAimSoon:Boolean;// = false
public var IgnoreDodgeBulletWhileAiming:Boolean;// = false
public var UnavailableWeapons:Array;
public var ActivateSprintCounter:int;// = 0
public var TargetHazardousObject:b2Body;// = null
public var MeleeToAimMinimumChance:Number;// = 0.2
public var IgnoreObjectCheckingTimer:int;// = 0
public var RunOften:Boolean;// = true
public var TargetInAim:Boolean;// = false
public var RandomFireX:Number;
public var RandomFireY:Number;
public var FirstRocketTurnDone:Boolean;// = false
public var Path:Array;
public var PathGridCounter:int;// = 0
public var ResetTimer:int;// = 0
public var ActionShotFired:Boolean;// = true
public var Difficulty:int;
private var _phaseDelay:int;// = 0
public var UnavailablePlayers:Array;
private var _targetWeapon:b2Body;// = null
public var RunAwayFromHazards:Boolean;// = false
public var FollowToAimMinimumDistance:Number;// = 50
public var _randomizTimer:Number;
public var OpponentExist:Boolean;// = true
private var _phase:int;// = 0
public var _targetInSightTimer:Number;
private var targetPlayer:Player;// = null
public static const DISTANCE_WALK_TOLERANCE:Number = 4;
public static const EASY:int = 1;
public static const DISTANCE_NODE_TOLERANCE_Y_MIN:Number = 8;
public static const DISTANCE_NODE_TOLERANCE_X:Number = 6;
public static const MELEE:int = 6;
public static const DISTANCE_LADDER_TOLERANCE_X:Number = 2;
public static const DISTANCE_NODE_TOLERANCE_Y_MAX:Number = -22;
public static const IDLE:int = 0;
public static const CANCEL_AIM:int = 3;
public static const AIM:int = 1;
public static const INTERRUPTED:int = -1;
public static const HARD:int = 3;
public static const GRAB_WEAPON:int = 5;
public static const FOLLOW_PATH:int = 4;
public static const MEDIUM:int = 2;
public static const UNAVAILABLE_PLAYER_TIMER:int = 6;
public static const FOLLOW_ONLY:Boolean = false;
public static const DISTANCE_LADDER_TOLERANCE_Y:Number = 5;
public static const SHOOT:int = 2;
public function BotState(){
_phase = IDLE;
_phaseDelay = 0;
TargetInAim = false;
TargetInSight = false;
ActivateSprintCounter = 0;
ResetTimer = 0;
DoFireCheck = false;
DodgeBullet = false;
RunAwayFromHazards = false;
OpponentExist = true;
PreferJumpOverObstacle = false;
ActionShotFired = true;
IgnoreObjectCheckingTimer = 0;
CancelAimSoon = false;
FirstRocketTurnDone = false;
RunOften = true;
RandomFirePosition = true;
UnavailablePlayers = new Array();
UnavailableWeapons = new Array();
FollowToAimMinimumDistance = 50;
MeleeToAimMinimumChance = 0.2;
IgnoreDodgeBulletWhileAiming = false;
_nextResNode = null;
PathGridCounter = 0;
Path = new Array();
TargetHazardousObject = null;
targetPlayer = null;
GrabWeaponTimer = 0;
_targetWeapon = null;
super();
}
public function IsPlayerUnavailable(_arg1:Player):Boolean{
var _local2:int;
_local2 = 0;
while (_local2 < UnavailablePlayers.length) {
if (UnavailablePlayers[_local2][0] == _arg1){
return (true);
};
_local2++;
};
return (false);
}
public function UpdateUnavailableStuff():void{
var _local1:int;
if (IgnoreObjectCheckingTimer > 0){
IgnoreObjectCheckingTimer = (IgnoreObjectCheckingTimer - 1);
};
_local1 = (UnavailablePlayers.length - 1);
while (_local1 >= 0) {
UnavailablePlayers[_local1][1] = (UnavailablePlayers[_local1][1] + 1);
if (UnavailablePlayers[_local1][1] >= UNAVAILABLE_PLAYER_TIMER){
UnavailablePlayers.splice(_local1, 1);
};
_local1--;
};
_local1 = (UnavailableWeapons.length - 1);
while (_local1 >= 0) {
UnavailableWeapons[_local1][1] = (UnavailableWeapons[_local1][1] + 1);
if (UnavailableWeapons[_local1][1] >= 20){
UnavailableWeapons.splice(_local1, 1);
};
_local1--;
};
}
public function get TargetWeapon():b2Body{
return (_targetWeapon);
}
public function set Phase(_arg1:int):void{
if (_phase != _arg1){
_phase = _arg1;
if (((((((!((_phase == INTERRUPTED))) && (!((_phase == IDLE))))) && (!((_phase == SHOOT))))) && (!((_phase == CANCEL_AIM))))){
SetDelay();
} else {
_phaseDelay = 0;
};
};
}
public function get NextResultNode():PathResultNode{
return (_nextResNode);
}
public function set PhaseDelay(_arg1:int):void{
_phaseDelay = _arg1;
}
public function get IgnoreObjectChecking():Boolean{
return ((IgnoreObjectCheckingTimer > 0));
}
public function set TargetWeapon(_arg1:b2Body):void{
_targetWeapon = _arg1;
if (_targetWeapon == null){
GrabWeaponTimer = 0;
};
}
public function get Phase():int{
return (_phase);
}
public function SetDelay():void{
switch (Difficulty){
case EASY:
_phaseDelay = (6 + Math.floor((Math.random() * 1.99)));
break;
case MEDIUM:
_phaseDelay = (3 + Math.floor((Math.random() * 1.99)));
break;
case HARD:
_phaseDelay = Math.floor((Math.random() * 2.99));
break;
};
}
public function set NextResultNode(_arg1:PathResultNode):void{
_nextResNode = _arg1;
}
public function get PhaseDelay():int{
return (_phaseDelay);
}
public function IsWeaponUnavailable(_arg1:b2Body):Boolean{
var _local2:int;
_local2 = 0;
while (_local2 < UnavailableWeapons.length) {
if (UnavailableWeapons[_local2][0] == _arg1){
return (true);
};
_local2++;
};
return (false);
}
public function set TargetPlayer(_arg1:Player):void{
targetPlayer = _arg1;
if (targetPlayer == null){
TargetInAim = false;
TargetInSight = false;
TargetHazardousObject = null;
};
}
public function get TargetPlayer():Player{
return (targetPlayer);
}
}
}//package Code.Data.Players
Section 95
//Player (Code.Data.Players.Player)
package Code.Data.Players {
import flash.geom.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import Code.Data.Weapons.*;
import flash.display.*;
import Code.Data.*;
import flash.utils.*;
import fl.motion.*;
import Code.Particles.*;
public class Player extends MovieClip {
private var _last_slowmotion:SlowmoData;// = null
private var AFSUpdated:Boolean;// = false
private var _staggerFragileObject:b2Body;// = null
private var _char:MovieClip;
private var _this_x:Number;
private var _this_y:Number;
private var _gui_mc:MovieClip;
private var _static_objects_hitbox_mc:MovieClip;
private var _button_in_melee_range:Boolean;// = false
private var _static_players_area_mc:MovieClip;
private var _PlayerState:PlayerState;
private var _activated:Boolean;// = false
private var _Handler_Slowmo:Slowmo;
private var _flameAwayCounter:Number;// = 0
private var _slowmotion_timer:int;// = 0
private var b:b2Body;
private var _players:Array;
private var _static_objects_cloud_hitbox_mc:MovieClip;
private var _BotState:BotState;
private var _static_ladder_hitbox_mc:MovieClip;
private var _Handler_Maps:Maps;
public var CameraFocus:Boolean;// = true
private var _performJumpDownLevel:Boolean;// = false
private var _flameAwayActivated:Boolean;// = false
private var _Handler_ProjectilesUpdater;
private var _static_world_hitbox_mc:MovieClip;
private var _standingOnObject:b2Body;// = null
private var _indicationWeapon:b2Body;// = null
var _edgePositionL:Number;
private var _bot:Boolean;// = false
var _edgePositionR:Number;
private var _flameAwayTimer:Number;
private var _lazer_mc:MovieClip;
private var m_world:b2World;
private var _player_area_mc:MovieClip;
private var _Handler_Fires:Fires;
private var _lastBounceY:Number;
private var _despawnTimer:int;// = 96
private var _startAimASAP:Boolean;// = false
private var _old_this_x:Number;
private var _old_this_y:Number;
private var _playerNr:int;
private var _Handler_Output:OutputTrace;
private var _char_gui:MovieClip;
private var _player_mc:MovieClip;
private var _Handler_Sounds:Sounds;
private var _downTimer:Number;
private var _cancelAimingASAP:Boolean;// = false
private var _slowmotion_modifier:Number;// = 1
private var _keyPressed:Array;
var _headColl:Boolean;
var _sideColl:Boolean;
private var _pathGrid:PathGrid;
private var _static_world_cloud_hitbox_mc:MovieClip;
private var _Handler_Effects:Effects;
private var _bullet_game_speed:Number;// = 1
private var _MapArea:PlayerAreaData;
private var _keys:Array;
private var _smokeDelay:Number;// = 0
private var _PlayerBars:PlayerBars;
private var RecalculateCamArea:Function;
private var _botTimer:Number;
private var _dynamic_mc:MovieClip;
private var _team:Number;
private var _PlayerAnimation:PlayerAnimation;
private var _button_to_activate:b2Body;// = null
private var _game_speed:Number;// = 1
private var _blood_mc:MovieClip;
private var _static_players_hitbox_mc:MovieClip;
private var _deathScreamDone:Boolean;// = false
private var _lazer_rnd:Number;// = 0
private var _static_mc:MovieClip;
private var _Handler_Shake:Shake;
private var _collision_mc:MovieClip;
private var objectImpactList:Array;
private var _game_mc:MovieClip;
private var _jumpDownPosYDisable:Number;// = 0
private var _Handler_Keyboard:InputKeyboard;
var _edgePosition:Number;
private var _aim_mc:MovieClip;
private var _enableJumpDownLevel:Boolean;// = false
private var _blood_gui:MovieClip;
public static const KEY_POWERUP:int = 7;
public static const TEAM_SOLO:int = 0;
public static const KEY_THROW:int = 6;
public static const KEY_LEFT:int = 2;
public static const TEAM_2:int = 2;
public static const TEAM_3:int = 3;
public static const KEY_MELEE:int = 4;
public static const AIM_SQUARE_DISTANCE:Number = 8;
public static const TEAM_1:int = 1;
public static const HAZARDOUS_DISTANCE:Number = 25;
public static const KEY_SPRINT:int = 10;
public static const KEY_UP:int = 0;
public static const TEAM_4:int = 4;
public static const KEY_DOWN:int = 1;
public static const KEY_JUMP:int = 8;
public static const HAZARDOUS_DISTANCE_AVOID:Number = 45;
public static const KEY_KNEEL:int = 9;
public static const KEY_RIGHT:int = 3;
public static const KEY_FIRE:int = 5;
public function Player(_arg1:int, _arg2:MovieClip, _arg3:b2World, _arg4:Maps, _arg5:Sounds, _arg6:Slowmo, _arg7:Shake, _arg8:Effects, _arg9:ProjectilesUpdater, _arg10:OutputTrace, _arg11:Point, _arg12:Number, _arg13:int, _arg14:Function, _arg15:Array, _arg16:PathGrid){
var _local17:MovieClip;
var _local18:*;
var _local19:MovieClip;
_bot = false;
_game_speed = 1;
_last_slowmotion = null;
_slowmotion_timer = 0;
_slowmotion_modifier = 1;
_bullet_game_speed = 1;
_lazer_rnd = 0;
_startAimASAP = false;
_cancelAimingASAP = false;
_smokeDelay = 0;
_deathScreamDone = false;
_activated = false;
_despawnTimer = (24 * 4);
CameraFocus = true;
_indicationWeapon = null;
_performJumpDownLevel = false;
_jumpDownPosYDisable = 0;
_enableJumpDownLevel = false;
_standingOnObject = null;
_flameAwayCounter = 0;
_flameAwayActivated = false;
AFSUpdated = false;
_button_in_melee_range = false;
_button_to_activate = null;
_staggerFragileObject = null;
super();
_game_mc = _arg2;
m_world = _arg3;
_Handler_Output = _arg10;
_Handler_Effects = _arg8;
_Handler_ProjectilesUpdater = _arg9;
_Handler_Maps = _arg4;
_Handler_Sounds = _arg5;
_Handler_Slowmo = _arg6;
_Handler_Shake = _arg7;
_pathGrid = _arg16;
PlayerNr = _arg13;
RecalculateCamArea = _arg14;
_static_mc = MovieClip(_game_mc.getChildByName("STATIC"));
_local17 = MovieClip(_game_mc.getChildByName("GAME_WINDOW"));
_dynamic_mc = MovieClip(MovieClip(_local17.getChildByName("DYNAMICHOLDER")).getChildByName("DYNAMIC"));
_static_ladder_hitbox_mc = MovieClip(_static_mc.getChildByName("LADDER_HITBOX"));
_static_world_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_HITBOX"));
_static_world_cloud_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_CLOUD_HITBOX"));
_static_objects_cloud_hitbox_mc = MovieClip(_static_world_cloud_hitbox_mc.getChildByName("OBJECTS_CLOUD_HITBOX"));
_static_objects_hitbox_mc = MovieClip(_static_world_hitbox_mc.getChildByName("OBJECTS_HITBOX"));
_static_players_hitbox_mc = MovieClip(_static_mc.getChildByName("PLAYERS_HITBOX"));
_static_players_area_mc = MovieClip(_static_mc.getChildByName("PLAYERS_AREA"));
_lazer_mc = new MovieClip();
_lazer_mc.visible = false;
_aim_mc = new player_aim();
_aim_mc.visible = false;
MovieClip(_dynamic_mc.getChildByName("LAZERS")).addChild(_lazer_mc);
MovieClip(_dynamic_mc.getChildByName("LAZERS")).addChild(_aim_mc);
_collision_mc = new player_hitarea();
_player_area_mc = new MovieClip();
_player_area_mc.graphics.lineStyle(1, 0xFF0000, 0.5);
_player_area_mc.graphics.beginFill(0xFF0000, 0.5);
_player_area_mc.graphics.moveTo(-6, 2);
_player_area_mc.graphics.lineTo(-6, -18);
_player_area_mc.graphics.lineTo(6, -18);
_player_area_mc.graphics.lineTo(6, 2);
_player_area_mc.graphics.lineTo(-6, 2);
_player_area_mc.graphics.endFill();
_static_players_hitbox_mc.addChild(_collision_mc);
_static_players_area_mc.addChild(_player_area_mc);
_char = PlayerCharacter.Get(_arg1);
_char.x = 0;
_char.y = 0;
this.addChild(_char);
_blood_mc = new player_blood();
_blood_mc.visible = false;
this.addChild(_blood_mc);
_player_mc = MovieClip(_dynamic_mc.getChildByName("PLAYERS"));
_player_mc.addChild(this);
this.x = _arg11.x;
this.y = _arg11.y;
_team = _arg12;
if (_team == 0){
_team = (-(PlayerNr) - 1);
};
_keyPressed = new Array(20);
_local18 = 0;
while (_local18 < _keyPressed.length) {
_keyPressed[_local18] = false;
_local18++;
};
_PlayerState = new PlayerState();
_PlayerState.Team = _team;
_PlayerState.CharNr = _arg1;
_PlayerState.StopStaggerFunc = StopStaggerFunc;
_PlayerAnimation = new PlayerAnimation(_char, _blood_mc, _collision_mc, _PlayerState, _Handler_Output);
_local19 = MovieClip(_dynamic_mc.parent.parent.getChildByName("GUI"));
_PlayerBars = new PlayerBars(_PlayerState, _local19);
_players = _arg15;
_Handler_Output.Trace(("Player Constructed at: " + _arg11));
}
public function ExplosionX():Number{
return (MidPosX());
}
public function ExplosionY():Number{
return (MidPosY());
}
private function KillPlayer():void{
}
private function ThrowUp():void{
if (((_PlayerState.StuckToRocket) || (_PlayerState.Staggering))){
return;
};
_startAimASAP = false;
if (((((!(_PlayerState.Throwing)) && (_PlayerState.Aiming))) && (!(_PlayerState.AimTurningAroundDelay)))){
if (_PlayerState.AimMode == 1){
_PlayerState.Throwing = true;
_PlayerState.Aiming = false;
ReleaseThrowable();
};
};
}
public function LinkToFire(_arg1:Fires):void{
_Handler_Fires = _arg1;
}
private function MainUpdate():void{
var _local1:int;
var _local2:int;
var _local3:Number;
if ((((_PlayerState.HP > 0)) && (_PlayerState.ShowFlashEffect))){
if (_PlayerState.FlashEffectTimer > 0){
UpdateFlashEffect();
} else {
StopFlashEffect();
};
} else {
if (_PlayerState.ShowFlashEffect){
StopFlashEffect();
} else {
if (((!(_activated)) && (!(_bot)))){
_PlayerState.ShowFlashEffect = true;
};
};
};
if (_PlayerState.GrabbedByPlayer){
return;
};
if (_PlayerState.StuckToRocket){
AddSmokeTrace(1);
_PlayerState.RocketRideTimer = (_PlayerState.RocketRideTimer + _game_speed);
if (_PlayerState.RocketRideTimer > 150){
_PlayerState.RocketRideProjectile.Explode();
return;
};
if (_keyPressed[3]){
_PlayerState.RocketRideProjectile.Angle = (_PlayerState.RocketRideProjectile.Angle + (20 * _game_speed));
};
if (_keyPressed[2]){
_PlayerState.RocketRideProjectile.Angle = (_PlayerState.RocketRideProjectile.Angle - (20 * _game_speed));
};
return;
};
_old_this_x = _this_x;
_old_this_y = _this_y;
_PlayerState.MovingDirectionX = 0;
UpdateInversedDirection();
if (_PlayerState.TakingCover){
if (!CanTakeCover(_PlayerState.LastDirX)){
_PlayerState.TakingCover = false;
};
};
if (_PlayerState.ControllAble){
if (_PlayerState.Aiming){
if (!_PlayerState.AimTurningAroundDelay){
if (_keyPressed[1]){
AimDown();
} else {
if (_keyPressed[0]){
AimUp();
} else {
AimIdle();
};
};
AimLazer();
if (PressingLeft()){
AimLeft();
} else {
if (PressingRight()){
AimRight();
};
};
} else {
if (_keyPressed[1]){
AimDown();
} else {
if (_keyPressed[0]){
AimUp();
} else {
AimIdle();
};
};
};
} else {
if (!_PlayerState.Sprinting){
if (KeyPressed(KEY_SPRINT)){
if (_PlayerState.SprintEnergy > 10){
_PlayerState.Sprinting = true;
};
};
};
if (_PlayerState.PlayerJumpPushActivated){
if (((_PlayerState.Jumping) && (_PlayerState.PlayerJumpPushEnabled))){
if (_keyPressed[KEY_JUMP]){
_PlayerState.JumpPushTimeLeft = (_PlayerState.JumpPushTimeLeft - _game_speed);
if (_PlayerState.JumpPushTimeLeft <= 0){
_PlayerState.PlayerJumpPushEnabled = false;
} else {
if (_PlayerState.PlayerJumpPushLevelOut){
_local3 = (_PlayerState.JumpPushTimeLeft / _PlayerState.PlayerJumpPushTime);
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY + ((_PlayerState.PlayerJumpPushPower * _local3) * _game_speed));
} else {
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY + (_PlayerState.PlayerJumpPushPower * _game_speed));
};
};
} else {
_PlayerState.PlayerJumpPushEnabled = false;
};
};
};
if (_keyPressed[KEY_UP]){
if (_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), MidPosY(), true)){
_PlayerState.Climbing = true;
};
} else {
if (_keyPressed[KEY_DOWN]){
if (!_PlayerState.OnGround){
if (_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), MidPosY(), true)){
_PlayerState.Climbing = true;
};
};
};
};
if (((_keyPressed[KEY_KNEEL]) && (!(_PlayerState.TakingCover)))){
if (_PlayerState.OnGround){
if (((!(_keyPressed[2])) && (!(_keyPressed[3])))){
if (!_PlayerState.DisableKneel){
_PlayerState.Kneeling = true;
};
} else {
if (!CheckForceKneeling()){
_PlayerState.Kneeling = false;
};
if (_PlayerState.Sprinting){
if (((_PlayerState.CanDive) || (_PlayerState.ShortDiveAvailable))){
Dive();
};
} else {
if (_PlayerState.ShortDiveAvailable){
Dive();
} else {
if (_PlayerState.CanRoll){
Roll();
};
};
};
};
};
} else {
if (!CheckForceKneeling()){
_PlayerState.Kneeling = false;
};
};
if (!_PlayerState.Climbing){
if (PressingLeft(true)){
MoveDirection(-1);
} else {
if (PressingRight(true)){
MoveDirection(1);
} else {
if (_PlayerState.WallJumping){
MovePlayer(1, _PlayerState.WallJumpSpeed);
};
};
};
};
};
UpdateWeaponGrab();
if (_PlayerState.QueueJumpKick){
if (_PlayerState.Jumping){
if (((((!(_PlayerState.JumpKickPerformed)) && ((_PlayerState.AirbornTimer >= 2.5)))) && (!(_PlayerState.Climbing)))){
_Handler_Sounds.PlaySoundAt("KICK_SWING", PosX(), PosY());
Kick(false, true);
_PlayerState.JumpKickPerformed = true;
};
};
};
} else {
_lazer_mc.visible = false;
_aim_mc.visible = false;
if (_PlayerState.Staggering){
if (CanStagger()){
if (_staggerFragileObject != null){
_staggerFragileObject.ApplyImpulse(new b2Vec2((-(_PlayerState.LastDirX) * 0.5), 0), new b2Vec2(0, 0));
_staggerFragileObject.GetUserData().objectData.ForceDestruction();
_staggerFragileObject = null;
};
MovePlayer(_PlayerState.LastDirX, (_PlayerState.LastDirX * _PlayerState.StaggerSpeed));
} else {
if (_PlayerState.HP <= 0){
Fall(false);
};
_PlayerState.Staggering = false;
};
} else {
if (_PlayerState.Rolling){
MovePlayer(_PlayerState.LastDirX, (_PlayerState.LastDirX * _PlayerState.RollSpeed));
UpdateWeaponGrab();
} else {
if (!_PlayerState.IsStunned){
if (_PlayerState.Punching){
if (!_PlayerState.PunchHitPerformed){
if (_PlayerAnimation.NextFrame(_game_speed) < _PlayerState.HitPunchComboFrame){
if (PressingLeft()){
TurnLeft();
} else {
if (PressingRight()){
TurnRight();
};
};
} else {
if (_PlayerAnimation.NextFrame(_game_speed) == _PlayerState.HitPunchComboFrame){
MeleeStrike();
};
};
} else {
if (_PlayerState.PunchComboNr == 3){
MovePlayer(_PlayerState.LastDirX, ((_PlayerState.PunchGlideSpeed * _PlayerState.LastDirX) * (1 - _PlayerAnimation.Progress)));
};
};
};
};
};
};
};
if (((((((!(_PlayerState.ControllAble)) || (_PlayerState.Aiming))) || (((!(_keyPressed[2])) && (!(_keyPressed[3])))))) || (((_keyPressed[2]) && (_keyPressed[3]))))){
_PlayerState.Running = false;
};
UpdateObjectImpacts();
UpdateStairBounce();
if (!_PlayerState.OnGround){
UpdateAirMovement();
} else {
UpdateGroundMovement();
};
if (Stuck()){
_this_x = _old_this_x;
_this_y = _old_this_y;
};
this.x = _this_x;
this.y = _this_y;
_collision_mc.x = _this_x;
_collision_mc.y = _this_y;
_player_area_mc.x = _this_x;
_player_area_mc.y = _this_y;
_PlayerState.PortalSpeedX = (Math.abs((_this_x - _old_this_x)) / _game_speed);
_local1 = ConvertToDirection((_this_x - _old_this_x));
if (_local1 != 0){
_PlayerState.PortalDirectionX = _local1;
};
ProgressAFS();
AFSUpdated = false;
_local2 = 0;
while (_local2 < m_world.MolotovList.length) {
b = m_world.MolotovList[_local2];
if (b.GetUserData().objectData.UserValues[0] != PlayerNr){
if (CollisionMC.hitTestObject(b.GetUserData().objectData.ShapeMC)){
if (CollisionMC.hitTestPoint((b.GetPosition().x * 30), (b.GetPosition().y * 30), true)){
b.GetUserData().objectData.ForceDestruction();
};
};
};
_local2++;
};
if (_PlayerState.EmptyWeaponRecoilBack > 0){
_PlayerState.EmptyWeaponRecoilBack = (_PlayerState.EmptyWeaponRecoilBack - 1);
if (_PlayerState.EmptyWeaponRecoilBack <= 0){
if (_char.ANIM_WPN != null){
_char.ANIM_WPN.x = _PlayerState.CharAnimWpnX;
_char.ANIM_WPN.y = _PlayerState.CharAnimWpnY;
};
};
};
if (_PlayerState.AddSmokeEffect){
AddSmokeTrace(2);
};
}
private function FireWeapon():void{
if ((((_PlayerState.CurrentWeaponCooldown > 0)) || ((_PlayerState.DrawDelay > 0)))){
return;
};
if (_PlayerState.CurrentRangeWeapon.Ammo > 0){
_PlayerState.CurrentWeaponCooldown = _PlayerState.CurrentRangeWeapon.Properties.WeaponCooldown;
_PlayerState.CurrentFireFrame = 1;
ProgressAFS(true);
} else {
WeaponEmptyRecoil();
};
}
private function CheckDeathBounce():void{
var _local1:Boolean;
var _local2:Boolean;
var _local3:Boolean;
var _local4:int;
var _local5:int;
var _local6:Boolean;
_local1 = true;
_local2 = true;
_local3 = true;
if ((_lastBounceY + 5) > _this_y){
_local3 = false;
_local1 = false;
_local2 = false;
} else {
_local1 = DetectEdge(1);
_local2 = DetectEdge(-1);
};
if (((!(_local1)) && (!(_local2)))){
_local6 = true;
_local5 = 0;
while (_local5 < 6) {
if (HitTestWorldOnly(_this_x, (_this_y + _local5))){
_local6 = false;
};
_local5 = (_local5 + 2);
};
if (_local6){
_local5 = 0;
while (_local5 < 4) {
if (_static_world_cloud_hitbox_mc.hitTestPoint(_this_x, (_this_y + _local5), true)){
_jumpDownPosYDisable = (_this_y + 10);
_performJumpDownLevel = true;
Fall(false);
this.scaleX = (this.scaleX * -1);
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
_PlayerState.AirVelocityX = ((Math.random() * 3) - 1.5);
_PlayerState.AirVelocityY = -1.5;
return;
};
_local5 = (_local5 + 2);
};
};
return;
};
if (!_local3){
return;
};
if (((_local1) && (_local2))){
if (Math.random() < 0.5){
_local1 = false;
} else {
_local2 = false;
};
};
_local4 = 0;
if (_local1){
_local4 = 1;
} else {
if (_local2){
_local4 = -1;
};
};
Fall(false);
this.scaleX = (this.scaleX * -1);
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
_PlayerState.AirVelocityX = (_local4 * 1.5);
_PlayerState.AirVelocityY = -1.5;
}
private function FireDown():void{
if (_game_speed == 0){
return;
};
if (_PlayerState.StuckToRocket){
return;
};
if (_PlayerState.Staggering){
return;
};
if (((_PlayerState.ControllAble) && (!(_PlayerState.Jumping)))){
if (((!(_PlayerState.Throwing)) && (!(_PlayerState.Aiming)))){
if (!_PlayerState.FireDelayActivated){
_PlayerState.FireDelayActivated = true;
_PlayerState.FireDelayUpdated = false;
_PlayerState.FireDelayTimer = setInterval(FireDelay, 100);
} else {
if (_PlayerState.CurrentThrowableWeapon.Ammo > 0){
CancelFireDelay();
_PlayerState.Aiming = true;
_PlayerState.AimMode = 1;
_PlayerState.ThrowTimer = _PlayerState.CurrentThrowableWeapon.Properties.ThrowTimer;
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentThrowableWeapon.Properties.AimSound, PosX(), PosY());
} else {
CancelFireDelay();
};
};
};
} else {
_startAimASAP = true;
};
}
private function CollisionHead(_arg1:Number=0):Boolean{
var _local2:int;
if (((_static_world_hitbox_mc.hitTestPoint(_this_x, ((_this_y - _PlayerState.PlayerHeight) + _arg1), true)) && (((_static_world_hitbox_mc.hitTestPoint((_this_x - _PlayerState.PlayerEdgeDistance), ((_this_y - _PlayerState.PlayerHeight) + _arg1), true)) || (_static_world_hitbox_mc.hitTestPoint((_this_x + _PlayerState.PlayerEdgeDistance), ((_this_y - _PlayerState.PlayerHeight) + _arg1), true)))))){
return (true);
};
_local2 = 4;
while (_local2 <= (_PlayerState.PlayerHeight - 2)) {
if (((((_static_world_hitbox_mc.hitTestPoint((_this_x - _PlayerState.PlayerEdgeDistance), ((_this_y - _local2) + _arg1), true)) && (_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y - _local2), true)))) && (_static_world_hitbox_mc.hitTestPoint((_this_x + _PlayerState.PlayerEdgeDistance), ((_this_y - _local2) + _arg1), true)))){
return (true);
};
_local2 = (_local2 + 2);
};
return (false);
}
private function BotGoForReset(_arg1:Boolean=false):void{
_BotState.ResetTimer = (_BotState.ResetTimer + 1);
if ((((_BotState.ResetTimer >= 4)) || (_arg1))){
_BotState.NextResultNode = null;
_BotState.TargetPlayer = null;
_BotState.TargetWeapon = null;
_BotState.ResetTimer = 0;
_BotState.RunAwayFromHazards = false;
};
}
private function StopFlashEffect():void{
var _local1:Color;
if (_PlayerState.ShowFlashEffect){
_local1 = new Color();
_local1.brightness = 0;
this.transform.colorTransform = _local1;
};
_PlayerState.ShowFlashEffect = false;
}
public function Stop():void{
CancelFireDelay();
clearInterval(_flameAwayTimer);
clearInterval(_downTimer);
if (_bot){
clearInterval(_BotState._targetInSightTimer);
clearInterval(_BotState._targetChooseTimer);
clearInterval(_BotState._randomizTimer);
clearInterval(_botTimer);
};
}
private function CloudCollisionUp(_arg1:Number, _arg2:Number, _arg3:Boolean):Boolean{
var _local4:b2Body;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
if (_static_world_cloud_hitbox_mc.hitTestPoint(_arg1, _arg2, _arg3)){
_local4 = m_world.GetRotatedCloudAt(_arg1, _arg2);
if (_local4 != null){
if (_local4.GetAngle() != 0){
_local5 = _PlayerState.AirVelocityX;
_local6 = _PlayerState.AirVelocityY;
if (((!(_PlayerState.Falling)) && (!(_PlayerState.Knockdowned)))){
_local5 = (_PlayerState.MovingDirectionX * _PlayerState.RunSpeed);
};
_local7 = Math.cos(-(_local4.GetAngle()));
_local8 = Math.sin(-(_local4.GetAngle()));
_local9 = ((_local5 * _local7) + (_local6 * -(_local8)));
_local10 = ((_local5 * _local8) + (_local6 * _local7));
_local11 = Math.atan2(_local10, _local9);
if (_local11 > 0){
return (true);
};
};
};
};
return (false);
}
private function ClearLazerPoints():void{
var _local1:int;
_local1 = _lazer_mc.numChildren;
while (_local1--) {
_lazer_mc.removeChildAt(_local1);
};
}
private function BotObstacleAt(_arg1:int):Boolean{
var _local2:b2Body;
var _local3:Number;
var _local4:Number;
_local3 = 0;
while (_local3 <= 4) {
_local4 = -12;
while (_local4 <= 6) {
_local2 = GetDynamicBodyAt(((_this_x + (_arg1 * _PlayerState.PlayerEdgeDistance)) + (_arg1 * _local3)), (MidPosY() + _local4), false);
if (_local2 != null){
_BotState.PreferJumpOverObstacle = _local2.GetUserData().objectData.BotPreferJump;
return (true);
};
_local4 = (_local4 + 6);
};
_local3 = (_local3 + 4);
};
return (false);
}
private function BotCheckStandingOnObject():Boolean{
if (((BotStandingOnObjectAtX(0)) || (BotStandingOnObjectAtX((_PlayerState.LastDirX * 6))))){
if (_PlayerState.KickingCooldown <= 0){
SetBotKey(KEY_MELEE, !(_keyPressed[KEY_MELEE]));
} else {
SetBotKey(KEY_MELEE, false);
};
return (true);
};
if (BotStandingOnObjectAtX((-(_PlayerState.LastDirX) * 6))){
if (_PlayerState.LastDirX == 1){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, true);
SetBotKey(KEY_RIGHT, false);
};
return (true);
};
return (false);
}
private function BotWalkAroundJumpObstalce():void{
var _local1:int;
var _local2:int;
_local1 = 1;
_local2 = _PlayerState.PlayerEdgeDistance;
while (_local2 <= (_PlayerState.PlayerEdgeDistance * 5)) {
if (BotCanJump(_local2)){
_local1 = 1;
_local2 = 100;
} else {
if (BotCanJump(-(_local2))){
_local1 = -1;
_local2 = 100;
};
};
_local2 = (_local2 + _PlayerState.PlayerEdgeDistance);
};
if (_local1 == 1){
SetBotKey(KEY_RIGHT, true);
SetBotKey(KEY_LEFT, false);
} else {
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
if (BotObstacleAt(_local1)){
if (((_BotState.PreferJumpOverObstacle) && (!(_PlayerState.Jumping)))){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
SetBotKey(KEY_MELEE, !(_keyPressed[KEY_MELEE]));
};
};
}
private function RangedDown():void{
if (((((((_cancelAimingASAP) || ((_game_speed == 0)))) || (_PlayerState.StuckToRocket))) || (_PlayerState.Staggering))){
return;
};
if (((_PlayerState.ControllAble) && (!(_PlayerState.Jumping)))){
if (((!(_PlayerState.Throwing)) && (!(_PlayerState.Aiming)))){
if (_PlayerState.CurrentRangeWeapon != null){
_PlayerState.FastTrigger = true;
_PlayerState.Aiming = true;
_cancelAimingASAP = false;
_PlayerState.AimMode = 0;
_PlayerState.AimTurningAround = true;
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentRangeWeapon.Properties.AimSound, PosX(), PosY());
_PlayerState.DrawDelay = 1;
};
};
} else {
_startAimASAP = true;
};
}
private function UpdateSimpleGroundMovement(_arg1:Boolean):void{
var _local2:int;
if (CollisionFeetMid(0, 1)){
if (CollisionFeetMid(-1, 1)){
_local2 = 0;
while (((((CollisionFeetMid(-1, 1)) && (!(WorldCollisionHead())))) && ((_local2 < 100)))) {
_this_y = (_this_y - 0.1);
_local2 = (_local2 + 1);
};
if (_local2 > 0){
_this_y = (_this_y + 0.1);
};
};
if (_arg1){
UpdateDynamicMovement();
};
} else {
if (CanLandInMid()){
if (_PlayerState.OnGround){
while (!(CollisionFeetMid())) {
_this_y = (_this_y + 0.1);
};
if (_arg1){
UpdateDynamicMovement();
};
};
} else {
if (CollisionFeetSides()){
if (_arg1){
UpdateDynamicMovement();
};
if (!CollisionFeetSides()){
if (_PlayerState.Staggering){
Fall(false);
} else {
_PlayerState.Jumping = true;
};
};
} else {
CheckAimDrop();
if (_PlayerState.Staggering){
Fall(false);
} else {
if (_standingOnObject != null){
if (_standingOnObject.GetUserData().objectData.IsElevator){
UpdateDynamicMovement();
return;
};
};
_PlayerState.Jumping = true;
};
};
};
};
}
public function get RemoveFromList():Boolean{
return (((_PlayerState.CameraIgnoreMe) && (_PlayerState.Gone)));
}
private function BotAutoPickupItem(_arg1:b2Body):Boolean{
if ((((_arg1.GetUserData().isRanged == true)) && ((_PlayerState.CurrentRangeWeapon == null)))){
return (true);
};
if ((((_arg1.GetUserData().isThrowable == true)) && ((_PlayerState.CurrentThrowableWeapon == null)))){
return (true);
};
if ((((_arg1.GetUserData().isMelee == true)) && ((_PlayerState.CurrentMeleeWeapon == null)))){
return (true);
};
if ((((_arg1.GetUserData().isPowerup == true)) && ((_PlayerState.CurrentPowerupWeapon == null)))){
return (true);
};
if ((((_arg1.GetUserData().isHealth == true)) && ((_PlayerState.HP < 100)))){
return (true);
};
return (false);
}
public function get CollisionMC():MovieClip{
return (_collision_mc);
}
private function Jump():void{
if (!_PlayerState.Aiming){
if (_PlayerState.Climbing){
LadderJump();
} else {
if (!_PlayerState.Jumping){
BeginJump();
};
};
};
}
private function UpdateWeaponGrab():void{
var _local1:b2Body;
_local1 = GetClosestReachableWeapon();
if (_local1 != null){
if ((((_local1.GetUserData().isRanged == true)) && ((_PlayerState.CurrentRangeWeapon == null)))){
_PlayerState.CurrentRangeWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_local1.GetUserData().objectData.ForceDestruction();
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentRangeWeapon.Properties.PickupSound, PosX(), PosY());
UpdateGUI();
return;
};
if ((((_local1.GetUserData().isThrowable == true)) && ((_PlayerState.CurrentThrowableWeapon.Ammo <= 0)))){
_PlayerState.CurrentThrowableWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentThrowableWeapon.Properties.PickupSound, PosX(), PosY());
_local1.GetUserData().objectData.ForceDestruction();
UpdateGUI();
return;
};
if ((((_local1.GetUserData().isMelee == true)) && ((_PlayerState.CurrentMeleeWeapon == null)))){
_PlayerState.CurrentMeleeWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_Handler_Sounds.PlaySoundAt(_PlayerState.GetMeleeWeapon().Properties.PickupSound, PosX(), PosY());
_local1.GetUserData().objectData.ForceDestruction();
UpdateGUI();
return;
};
if ((((_local1.GetUserData().isPowerup == true)) && ((_PlayerState.CurrentPowerupWeapon == null)))){
_PlayerState.CurrentPowerupWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentPowerupWeapon.Properties.PickupSound, PosX(), PosY());
_local1.GetUserData().objectData.ForceDestruction();
UpdateGUI();
return;
};
if ((((_local1.GetUserData().isHealth == true)) && ((_PlayerState.HP < 100)))){
_PlayerState.HP = (_PlayerState.HP + _local1.GetUserData().weaponData.Ammo);
_Handler_Sounds.PlaySoundAt(_local1.GetUserData().weaponData.Properties.PickupSound, PosX(), PosY());
_local1.GetUserData().objectData.ForceDestruction();
StartFlashEffect();
return;
};
if (_indicationWeapon != _local1){
if (_indicationWeapon != null){
_indicationWeapon.GetUserData().objectData.MC.indicator.gotoAndStop(1);
};
_indicationWeapon = _local1;
_indicationWeapon.GetUserData().objectData.MC.indicator.gotoAndStop(2);
};
} else {
if (_indicationWeapon != null){
_indicationWeapon.GetUserData().objectData.MC.indicator.gotoAndStop(1);
_indicationWeapon = null;
};
};
}
private function CheckObjectHeadImpactSpeeds():void{
var _local1:int;
_local1 = -(_PlayerState.PlayerEdgeDistance);
while (_local1 <= _PlayerState.PlayerEdgeDistance) {
b = GetDynamicBodyAt((_this_x + _local1), (_this_y - _PlayerState.PlayerHeight), false);
if (b != null){
if (b.GetUserData().objectData.CanKnockDownPlayer){
if ((b.GetLinearVelocity().y + 1) > _PlayerState.AirVelocityY){
_PlayerState.AirVelocityY = (b.GetLinearVelocity().y + 1);
break;
};
};
};
_local1 = (_local1 + _PlayerState.PlayerEdgeDistance);
};
}
public function EnemiesInMeleeRange():Array{
var _local1:Array;
var _local2:*;
_local1 = new Array();
_local2 = 0;
while (_local2 < _players.length) {
if (_local2 != PlayerNr){
if (Team != _players[_local2].Team){
if (_players[_local2].CanBePunched){
if (CheckCollisionTowardsPlayer(_this_x, _players[_local2].PosX(), _PlayerState.LastDirX)){
if (InMeleeRange(_players[_local2])){
_local1.push(_local2);
};
};
};
};
};
_local2++;
};
return (_local1);
}
public function SetCoordinates(_arg1:Number, _arg2:Number, _arg3:Boolean=false, _arg4:Boolean=true):void{
if (!_arg4){
if (_PlayerState.GrabbedPlayer){
if (!_players[_PlayerState.GrabbedPlayerNr].Bot){
DropGrabbedPlayer();
};
};
};
_this_x = _arg1;
_this_y = _arg2;
_PlayerState.PortalDirectionX = 0;
if (_arg3){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX * -1);
_PlayerState.MovingDirectionInversed = _PlayerState.MovingDirectionX;
_PlayerState.MovingDirectionX = (_PlayerState.MovingDirectionX * -1);
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
if (!_PlayerState.StuckToRocket){
this.scaleX = (this.scaleX * -1);
_collision_mc.scaleX = this.scaleX;
if (_PlayerState.GrabbedPlayer){
_players[_PlayerState.GrabbedPlayerNr].SetCoordinates(_this_x, _this_y, _arg3);
};
} else {
_PlayerAnimation.ShowAnimation("ROCKET_RIDE", true);
_PlayerState.RocketRideProjectile.DirectionX = (_PlayerState.RocketRideProjectile.DirectionX * -1);
};
};
_collision_mc.x = _this_x;
_collision_mc.y = _this_y;
_player_area_mc.x = _this_x;
_player_area_mc.y = _this_y;
this.x = _this_x;
this.y = _this_y;
if (_PlayerState.StuckToRocket){
_PlayerState.RocketRideProjectile.PosX = _this_x;
_PlayerState.RocketRideProjectile.PosY = _this_y;
};
}
private function BotStateCancelAim():void{
var _local1:int;
if (_PlayerState.Aiming){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, false);
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_MELEE, !(_keyPressed[KEY_MELEE]));
} else {
SetBotKey(KEY_MELEE, false);
SetBotKey(KEY_FIRE, false);
_BotState.CancelAimSoon = false;
if (_BotState.RunAwayFromHazards){
_BotState.Phase = BotState.FOLLOW_PATH;
} else {
if (BotTargetInMelee()){
_BotState.Phase = BotState.MELEE;
} else {
_BotState.Phase = BotState.IDLE;
};
};
};
}
public function ExplosionHit(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:int;
if (_PlayerState.IsImmune){
return;
};
_PlayerState.CritSmokeTimer = 48;
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (Math.cos(_arg1) * _arg2));
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY + (Math.sin(_arg1) * _arg2));
if (_PlayerState.AirVelocityY > -2){
if (!_PlayerState.Falling){
_PlayerState.AirVelocityY = -2;
};
};
DropGrabbedPlayer();
if (_PlayerState.HP > 0){
_PlayerState.HP = (_PlayerState.HP - _arg3);
if (_PlayerState.HP <= 0){
Disarm();
if (ActivateSlowmotion(PlayerNr)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
};
} else {
if (_arg3 >= 20){
GibPlayer();
return;
};
};
if (_arg3 <= 10){
if (_PlayerState.HP > 0){
StartStagger(ConvertToDirection(-(_PlayerState.AirVelocityX)));
} else {
_local4 = EdgeStaggerDistance();
if (_local4 > 6){
StartStagger(ConvertToDirection(-(_PlayerState.AirVelocityX)));
_PlayerState.StaggerTimer = (_local4 - 4);
} else {
CheckAimDrop();
if (!_PlayerState.CantRise){
_PlayerState.Falling = true;
};
_PlayerAnimation.ShowAnimation("knockdown", true);
};
};
} else {
CheckAimDrop();
if (!_PlayerState.CantRise){
_PlayerState.Falling = true;
};
_PlayerAnimation.ShowAnimation("knockdown", true);
};
}
private function BeginJump():void{
if (((((CheckForceKneeling()) || (!(_PlayerState.ControllAble)))) || (CollisionHead(-2)))){
return;
};
if (PressingLeft(true)){
this.scaleX = -1;
};
if (PressingRight(true)){
this.scaleX = 1;
};
_PlayerState.LastDirX = this.scaleX;
_collision_mc.scaleX = this.scaleX;
if (_PlayerState.SprintEnergy <= 0){
_PlayerState.Sprinting = false;
};
_Handler_Sounds.PlaySoundAt("JUMP", PosX(), PosY());
_PlayerAnimation.ShowAnimation("jump", true);
UpdateDynamicMovement(true);
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY + _PlayerState.PlayerJumpPower);
_PlayerState.Jumping = true;
_PlayerState.JumpPushTimeLeft = _PlayerState.PlayerJumpPushTime;
_PlayerState.PlayerJumpPushEnabled = true;
if (_PlayerState.Sprinting){
DrainEnergy("SPRINT_JUMP");
} else {
DrainEnergy("JUMP");
};
}
private function GetStaticCoverAt(_arg1:Number, _arg2:Number):b2Body{
if (_static_world_hitbox_mc.hitTestPoint(_arg1, _arg2, true)){
return (m_world.GetStaticCoverAt(_arg1, _arg2));
};
return (null);
}
private function BotCanJump(_arg1:Number=0):Boolean{
var _local2:b2Body;
var _local3:Number;
var _local4:Number;
_local3 = -(_PlayerState.PlayerEdgeDistance);
while (_local3 <= _PlayerState.PlayerEdgeDistance) {
_local4 = 0;
while (_local4 <= 20) {
_local2 = GetDynamicBodyAt(((_this_x + _local3) + _arg1), ((_this_y - 16) - _local4), false);
if (_local2 != null){
return (false);
};
_local4 = (_local4 + 4);
};
_local3 = (_local3 + (_PlayerState.PlayerEdgeDistance * 2));
};
return (true);
}
private function PressingRight(_arg1:Boolean=false):Boolean{
if (_PlayerState.MovingDirectionInversed != 0){
if (_PlayerState.MovingDirectionInversed == 1){
return (false);
};
if (_keyPressed[2]){
return (true);
};
} else {
if (((_keyPressed[3]) && (((!(_keyPressed[2])) || (!(_arg1)))))){
return (true);
};
};
return (false);
}
private function AddSmokeTrace(_arg1:Number=0):void{
var _local2:Number;
var _local3:Number;
_smokeDelay = (_smokeDelay - _game_speed);
if ((((_smokeDelay <= 0)) || ((_arg1 == 0)))){
_local2 = ((Math.random() * 10) - 5);
_local3 = ((Math.random() * 14) - 8);
_Handler_Effects.AddParticle(new particle_data("SMOKE_TRACE_EFFECT", (MidPosX() + (_local2 * 0.7)), (MidPosY() + (_local3 * 0.7)), new b2Vec2(), 0, 1, [1]));
_smokeDelay = _arg1;
};
}
private function BotStateMelee():void{
var _local1:Number;
var _local2:Boolean;
var _local3:Number;
if (_BotState.TargetPlayer == null){
BotGoForReset(true);
_BotState.Phase = BotState.IDLE;
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_MELEE, false);
return;
};
_local1 = (_BotState.TargetPlayer.MidPosX() - MidPosX());
BotCheckObstacle((_local1 / Math.abs(_local1)), true);
_local2 = BotTargetInMelee();
if (_PlayerState.Climbing){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, true);
} else {
SetBotKey(KEY_DOWN, false);
if ((((Math.abs(_local1) >= 40)) || ((((Math.abs(_local1) < _PlayerState.MeleeWeaponRange)) && (!(_local2)))))){
if (((_BotState.TargetInSight) && (!((_PlayerState.CurrentRangeWeapon == null))))){
_BotState.Phase = BotState.AIM;
} else {
_BotState.Phase = BotState.FOLLOW_PATH;
};
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_MELEE, false);
return;
};
};
if (_PlayerState.CurrentRangeWeapon != null){
if (Math.abs(_local1) >= 8){
if (_BotState.TargetPlayer.State.Knockdowned){
if (Math.random() < ((_PlayerState.CurrentRangeWeapon.TotalKnockdown / 100) + _BotState.MeleeToAimMinimumChance)){
if (_PlayerState.RangeWeaponCanShootDown){
_BotState.ActionShotFired = false;
} else {
_BotState.ActionShotFired = true;
};
_BotState.Phase = BotState.AIM;
};
};
};
};
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
if (BotFacingEdgeMelee()){
if ((((_PlayerState.LastDirX < 0)) && ((_local1 > 0)))){
SetBotKey(KEY_RIGHT, true);
SetBotKey(KEY_LEFT, false);
} else {
if ((((_PlayerState.LastDirX > 0)) && ((_local1 < 0)))){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
};
} else {
if (_PlayerState.OnGround){
if ((((_local1 > 6)) || ((((_PlayerState.LastDirX < 0)) && ((_local1 > 0)))))){
SetBotKey(KEY_RIGHT, true);
SetBotKey(KEY_LEFT, false);
} else {
if ((((_local1 < -6)) || ((((_PlayerState.LastDirX > 0)) && ((_local1 < 0)))))){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
};
} else {
if (_local1 > 0.5){
SetBotKey(KEY_RIGHT, true);
SetBotKey(KEY_LEFT, false);
} else {
if (_local1 < -0.5){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
};
};
};
if (_local1 != 0){
if (_PlayerState.CanRoll){
if (_BotState.TargetPlayer.State.Aiming){
SetBotKey(KEY_DOWN, true);
} else {
if (_PlayerState.Sprinting){
if (Math.random() <= 0.08){
if (!BotFacingEdge()){
SetBotKey(KEY_DOWN, true);
};
};
};
};
};
};
if (_local2){
if (((((((!(_keyPressed[KEY_MELEE])) && (_PlayerState.OnGround))) && ((Math.random() < 0.1)))) && ((_BotState.Difficulty > BotState.EASY)))){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
if (_BotState.Difficulty == BotState.EASY){
if (Math.random() < 0.8){
return;
};
};
if (_BotState.Difficulty == BotState.MEDIUM){
if (Math.random() < 0.6){
return;
};
};
if (_BotState.Difficulty == BotState.HARD){
if (Math.random() < 0.3){
return;
};
};
SetBotKey(KEY_MELEE, !(_keyPressed[KEY_MELEE]));
};
} else {
if (Math.abs(_local1) < 4){
if (((_PlayerState.OnGround) && (_BotState.TargetPlayer.State.OnGround))){
_local3 = (MidPosY() - _BotState.TargetPlayer.MidPosY());
if (Math.abs(_local3) > 10){
_BotState.Phase = BotState.FOLLOW_PATH;
};
};
};
};
}
private function KneelPressed():void{
if (!_PlayerState.Jumping){
if (_enableJumpDownLevel){
_enableJumpDownLevel = false;
clearInterval(_downTimer);
AbortAiming();
_jumpDownPosYDisable = (_this_y + 10);
_performJumpDownLevel = true;
_PlayerState.AirVelocityX = 0;
_PlayerState.AirVelocityY = 0;
_PlayerState.Jumping = true;
} else {
if (((!(_PlayerState.ControllAble)) || (_PlayerState.Aiming))){
return;
};
clearInterval(_downTimer);
_downTimer = setInterval(DisableJumpDownLevel, 250);
_enableJumpDownLevel = true;
};
};
}
public function get BulletGameSpeed():Number{
return (_bullet_game_speed);
}
private function BotCheckCover():void{
if (_PlayerState.TakingCover){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
return;
};
}
private function ThrowDown():void{
if ((((((_game_speed == 0)) || (_PlayerState.StuckToRocket))) || (_PlayerState.Staggering))){
return;
};
if (((_PlayerState.ControllAble) && (!(_PlayerState.Jumping)))){
if (((!(_PlayerState.Throwing)) && (!(_PlayerState.Aiming)))){
if (_PlayerState.CurrentThrowableWeapon.Ammo > 0){
_PlayerState.Aiming = true;
_PlayerState.AimMode = 1;
_PlayerState.ThrowTimer = _PlayerState.CurrentThrowableWeapon.Properties.ThrowTimer;
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentThrowableWeapon.Properties.AimSound, PosX(), PosY());
};
};
} else {
_startAimASAP = true;
};
}
private function Roll():void{
_Handler_Sounds.PlaySoundAt("ROLL", PosX(), PosY());
DrainEnergy("ROLL");
_PlayerState.DecreaseBurnState();
_PlayerState.Rolling = true;
}
private function FlameAway():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
if (_PlayerState.Staggering){
clearInterval(_flameAwayTimer);
_flameAwayActivated = false;
_flameAwayCounter = 0;
return;
};
_flameAwayCounter = (_flameAwayCounter - _game_speed);
if (_char.ANIM_WPN == null){
return;
};
if (_flameAwayCounter <= 0){
_local1 = ((_char.ANIM_WPN.x * _PlayerState.LastDirX) + PosX());
_local2 = (_char.ANIM_WPN.y + PosY());
_local1 = (_local1 + (Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.x));
_local2 = (_local2 + (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.x));
_local2 = (_local2 + ((Math.sin(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.y) * _PlayerState.LastDirX));
_local1 = (_local1 + ((Math.cos(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.y) * _PlayerState.LastDirX));
_local3 = (((Math.random() * _PlayerState.CurrentRangeWeapon.Properties.AccuracyDeflection) * 2) - _PlayerState.CurrentRangeWeapon.Properties.AccuracyDeflection);
_Handler_Fires.AddFlame(_local1, _local2, (_PlayerState.CurrentAimAngle + _local3), PlayerNr);
_flameAwayCounter = 2;
};
}
private function CheckDivePlayerImpact():void{
var _local1:*;
if (!_PlayerState.GrabbedPlayer){
_local1 = 0;
while (_local1 < _players.length) {
if (((!((_local1 == PlayerNr))) && (!(_players[_local1].State.IsImmune)))){
if (this.hitTestObject(_players[_local1].MC)){
if (CheckCollisionTowardsPlayer(PosX(), _players[_local1].PosX(), _PlayerState.LastDirX)){
if (Math.sqrt(((_this_x - _players[_local1].MidPosX()) * (_this_x - _players[_local1].MidPosX()))) <= 8){
if (Math.sqrt(((MidPosY() - _players[_local1].MidPosY()) * (MidPosY() - _players[_local1].MidPosY()))) <= 10){
if (_players[_local1].State.Diving){
_Handler_Sounds.PlaySoundAt("DIVE_CATCH", PosX(), PosY());
_Handler_Effects.AddEffectAt("DIVE_IMPACT", (MidPosX() + (_PlayerState.LastDirX * 12)), (MidPosY() - 4));
_players[_local1].DiveCollision();
DiveCollision();
} else {
if (((_players[_local1].CanBeCatched) && (!(_PlayerState.GrabbedPlayer)))){
_Handler_Sounds.PlaySoundAt("DIVE_CATCH", PosX(), PosY());
_Handler_Effects.AddEffectAt("DIVE_IMPACT", (MidPosX() + (_PlayerState.LastDirX * 12)), (MidPosY() - 4));
if (this.parent.getChildIndex(this) < _players[_local1].parent.getChildIndex(_players[_local1])){
this.parent.swapChildren(this, _players[_local1]);
};
_PlayerState.GrabbedPlayerNr = _local1;
_PlayerState.GrabbedPlayerCharNr = _players[_PlayerState.GrabbedPlayerNr].State.CharNr;
_players[_PlayerState.GrabbedPlayerNr].GrabbedByOtherPlayer(true, _PlayerState.LastDirX);
};
};
};
};
};
};
};
_local1++;
};
};
}
public function GrabbedByOtherPlayer(_arg1:Boolean, _arg2:int=0):void{
if (_arg2 != 0){
_PlayerState.LastDirX = -(_arg2);
this.scaleX = _PlayerState.LastDirX;
_collision_mc.scaleX = this.scaleX;
};
_PlayerState.GrabbedByPlayer = _arg1;
if (!_arg1){
_PlayerState.AirVelocityY = 0;
_PlayerState.AirVelocityX = 0;
_PlayerState.Knockdowned = true;
_PlayerState.Jumping = true;
if (_PlayerState.IgnoreMe){
this.visible = false;
};
} else {
CheckAimDrop();
CancelAFS();
_PlayerAnimation.ShowAnimation("GRABBED");
};
}
private function UpdateGroundMovement():void{
if (CollisionFeetBothSides()){
if (CollisionFeetMid()){
_this_y = (_this_y - 0.1);
};
};
UpdateSides();
if (((!(_PlayerState.Knockdowned)) && (!(_PlayerState.Falling)))){
if (CheckForceKnockdown()){
Fall();
_PlayerState.Falling = false;
_PlayerState.Knockdowned = true;
_PlayerState.CantRise = true;
_PlayerAnimation.ShowAnimation("knockdown", true);
if (CheckGibPlayer()){
return;
};
} else {
if (CheckForceKneeling()){
_PlayerState.Kneeling = true;
};
};
} else {
if (_PlayerState.CantRise){
if (!CheckForceKnockdown()){
_PlayerState.CantRise = false;
} else {
if (CheckGibPlayer()){
return;
};
};
} else {
if (CheckForceKnockdown()){
if (CheckForceKnockdown()){
_PlayerState.CantRise = true;
if (CheckGibPlayer()){
return;
};
};
};
};
};
UpdateSimpleGroundMovement(true);
}
public function Remove():void{
Disarm();
CancelAFS();
IgnorePlayer();
_PlayerState.CameraIgnoreTimer = 0;
_PlayerState.Gone = true;
if (_PlayerAnimation.UseGUI){
_char_gui.visible = false;
_blood_gui.visible = false;
_gui_mc.gib_pic.alpha = 1;
};
_PlayerState.BurnState = 0;
}
public function get PortalSpeedX():Number{
return (_PlayerState.PortalSpeedX);
}
public function get State():PlayerState{
return (_PlayerState);
}
private function CanKickPlayer(_arg1:Player, _arg2:Boolean=false):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:int;
var _local6:int;
if (_arg1.State.CanBeKicked){
if (CheckCollisionTowardsPlayer(_this_x, _arg1.PosX(), _PlayerState.LastDirX)){
_local3 = (PosX() - _arg1.PosX());
if (Math.abs(_local3) <= 16){
_local4 = (PosY() - _arg1.PosY());
_local5 = -4;
_local6 = -16;
if (_arg1.State.Knockdowned){
_local6 = -8;
if (_arg2){
_local5 = 8;
} else {
_local5 = 2;
};
} else {
if (_arg2){
_local5 = 16;
};
};
if ((((_local4 <= _local5)) && ((_local4 >= _local6)))){
return (true);
};
};
};
};
return (false);
}
public function PosX():Number{
return (this.x);
}
public function PosY():Number{
return (this.y);
}
private function UpdateInversedDirection():void{
if (_PlayerState.MovingDirectionInversed != 0){
if (((!(_keyPressed[3])) && ((_PlayerState.MovingDirectionInversed == 1)))){
_PlayerState.MovingDirectionInversed = 0;
};
if (((!(_keyPressed[2])) && ((_PlayerState.MovingDirectionInversed == -1)))){
_PlayerState.MovingDirectionInversed = 0;
};
};
}
private function SimpleMove(_arg1:Number, _arg2:Number):void{
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:int;
_this_x = (_this_x + _arg1);
_this_y = (_this_y + _arg2);
return;
}
public function get PlayerNr():int{
return (_playerNr);
}
private function BotTargetThreat_Weapon(_arg1:Player):Number{
return ((_arg1.State.RangeWeaponTotalDamage / 100));
}
public function RocketWillHit():Boolean{
if (_PlayerState.IsImmune){
return (false);
};
if (((_PlayerState.Rolling) || (_PlayerState.Diving))){
if (Math.random() < 0.5){
return (false);
};
};
return (true);
}
private function CheckCollisionWithBody(_arg1:Array):void{
var _local2:b2Body;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Boolean;
var _local7:b2Vec2;
var _local8:b2Vec2;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Number;
var _local13:Number;
var _local14:Boolean;
var _local15:Boolean;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:b2Vec2;
var _local20:int;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local24:b2Vec2;
var _local25:Number;
_local2 = _arg1[0];
if (_local2.GetLinearVelocity().Length() < 2){
return;
};
_local3 = _local2.GetLinearVelocity().Length();
_local4 = _arg1[1];
_local5 = _arg1[2];
_local6 = false;
_local7 = new b2Vec2((_local4 / 30), (_local5 / 30));
_local8 = _local2.GetLinearVelocityFromWorldPoint(_local7);
_local9 = new b2Vec2(_PlayerState.AirVelocityX, _PlayerState.AirVelocityY);
_local10 = new b2Vec2(_local8.x, _local8.y);
_local11 = new b2Vec2(_local9.x, _local9.y);
_local12 = _local2.GetMass();
_local13 = _PlayerState.Mass;
if (_local5 < (_this_y - 1)){
_local14 = CheckCollisionTowardsPlayer(_local4, MidPosX(), ConvertToDirection(_local8.x));
_local15 = CheckCollisionTowardsPlayer(_local5, MidPosY(), ConvertToDirection(_local8.y));
if (((_local14) && (_local15))){
_local10.y = (((_local8.y * (_local12 - _local13)) + ((2 * _local13) * _local9.y)) / (_local12 + _local13));
_local11.y = (((_local9.y * (_local13 - _local12)) + ((2 * _local12) * _local8.y)) / (_local12 + _local13));
if (((_PlayerState.OnGround) && (!(_PlayerState.Knockdowned)))){
if (_local2.GetUserData().objectData.CrushDamage > 0){
if (((((_local14) || ((_local8.x == 0)))) && (_local15))){
_PlayerState.HP = (_PlayerState.HP - _local2.GetUserData().objectData.CrushDamage);
_local10.y = -2;
_local6 = true;
if (_PlayerState.HP <= 0){
Fall(false);
};
};
} else {
_local6 = true;
};
if ((((_local10.x > -1)) && ((_local10.x < 1)))){
_local10.x = ConvertToDirection(_local10.x);
if (_local10.x == 0){
_local10.x = ConvertToDirection((_local4 - MidPosX()));
};
};
} else {
if (!_local2.GetUserData().objectData.CanGibb){
_local6 = true;
};
};
};
} else {
if (((_local14) || (_local15))){
if (((_PlayerState.OnGround) && (!(_PlayerState.Knockdowned)))){
if (_local2.GetUserData().objectData.CrushDamage > 0){
if (((((_local14) || ((_local8.x == 0)))) && (_local15))){
_local11.y = (((_local9.y * (_local13 - _local12)) + ((2 * _local12) * _local8.y)) / (_local12 + _local13));
_PlayerState.HP = (_PlayerState.HP - _local2.GetUserData().objectData.CrushDamage);
_local10.y = -2;
_local6 = true;
if (_PlayerState.HP <= 0){
Fall(false);
};
};
};
};
};
};
if (_local6){
if (!_local2.GetUserData().objectData.CanGibb){
_local20 = 0;
_local21 = ((_local2.m_linearVelocity.x / _local2.m_linearVelocity.Length()) / 30);
_local22 = ((_local2.m_linearVelocity.y / _local2.m_linearVelocity.Length()) / 30);
while ((((_local20 < 0)) && (_local2.m_userData.objectData.CollisionMC.hitTestPoint(_local4, _local5, true)))) {
_local2.SetXForm(new b2Vec2((_local2.GetPosition().x - _local21), (_local2.GetPosition().y - _local22)), _local2.GetAngle());
_local2.m_userData.objectData.ShapeMC.x = (_local2.GetPosition().x * 30);
_local2.m_userData.objectData.ShapeMC.y = (_local2.GetPosition().y * 30);
_local2.m_userData.objectData.ShapeMC.rotation = (_local2.GetAngle() * (180 / Math.PI));
_local2.m_userData.objectData.CollisionMC.x = _local2.m_userData.objectData.ShapeMC.x;
_local2.m_userData.objectData.CollisionMC.y = _local2.m_userData.objectData.ShapeMC.y;
_local2.m_userData.objectData.CollisionMC.rotation = _local2.m_userData.objectData.ShapeMC.rotation;
_local20 = (_local20 + 1);
};
};
UpdateSides();
_local2.SetLinearVelocity(_local10);
_local16 = (_local4 - MidPosX());
_local17 = (_local5 - MidPosY());
_local18 = Math.atan2(_local17, _local16);
_local19 = new b2Vec2((Math.cos(_local18) * 2), (Math.sin(_local18) * 4));
if (_local2.GetUserData().objectData.CanGibb){
_local19 = new b2Vec2((Math.cos(_local18) * 0.5), (Math.sin(_local18) * 1));
};
_local2.ApplyImpulse(_local19, _local7);
_Handler_Sounds.PlaySoundAt("MELEE_HIT", _this_x, _this_y);
_PlayerState.AirVelocityX = _local11.x;
_PlayerState.AirVelocityY = _local11.y;
if (_PlayerState.AirVelocityY > -2){
_PlayerState.AirVelocityY = -2;
};
if (_local4 < MidPosX()){
if (_local2.GetLinearVelocity().x > _PlayerState.AirVelocityX){
_PlayerState.AirVelocityX = (_local2.GetLinearVelocity().x + 1);
};
} else {
if (_local2.GetLinearVelocity().x < _PlayerState.AirVelocityX){
_PlayerState.AirVelocityX = (_local2.GetLinearVelocity().x - 1);
};
};
_this_y = (_this_y - 0.5);
Fall();
_local2.GetUserData().objectData.Damage_Impact(5);
if (_local2.GetLinearVelocity().Length() > _local3){
_local23 = (_local3 / _local2.GetLinearVelocity().Length());
_local24 = _local2.GetLinearVelocity();
_local2.GetLinearVelocity().x = (_local24.x * (_local23 * 0.8));
_local24.y = (_local24.y * (_local23 * 0.8));
_local2.SetLinearVelocity(_local24);
};
if (_PlayerState.TotalAirVelocity > _local3){
_local25 = (_local3 / _PlayerState.TotalAirVelocity);
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX * _local25);
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY * _local25);
};
};
}
private function FireDelay():void{
CancelFireDelay();
if (KeyPressed(5)){
if (_PlayerState.CurrentRangeWeapon != null){
if (((_PlayerState.ControllAble) && (!(_PlayerState.Jumping)))){
_PlayerState.Aiming = true;
_cancelAimingASAP = false;
_PlayerState.AimMode = 0;
_PlayerState.AimTurningAround = true;
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentRangeWeapon.Properties.AimSound, PosX(), PosY());
_PlayerState.DrawDelay = 1;
};
};
};
}
private function KeyPressed(_arg1:int):Boolean{
if (_bot){
return (_keyPressed[_arg1]);
};
return (_Handler_Keyboard.KeyIsDown(_keys[_arg1]));
}
private function UpPressed():void{
if (_PlayerState.ControllAble){
if (_PlayerState.Aiming){
if (!_PlayerState.AimTurningAroundDelay){
AimUp(0.5);
};
};
};
}
public function Update(_arg1:Number):void{
if (_slowmotion_timer > 0){
_slowmotion_timer = (_slowmotion_timer - 1);
_game_speed = (_arg1 * _slowmotion_modifier);
_bullet_game_speed = ((_arg1 * _slowmotion_modifier) * 0.75);
if (_game_speed > 1){
_game_speed = 1;
};
if (_bullet_game_speed > 1){
_bullet_game_speed = 1;
};
} else {
_game_speed = _arg1;
_bullet_game_speed = _arg1;
if (_arg1 < 1){
_bullet_game_speed = (_bullet_game_speed * 0.5);
};
};
if (_PlayerState.HP <= 0){
if (_despawnTimer > 0){
_despawnTimer = (_despawnTimer - 1);
};
if (!_deathScreamDone){
if (Math.random() < 0.02){
_Handler_Sounds.PlaySoundAt("WILHELM", PosX(), PosY());
};
_deathScreamDone = true;
};
};
if (_PlayerState.IgnoreMe){
_PlayerState.UpdateCameraIgnoreTimer();
return;
};
if (RemoveFromList){
return;
};
if (!_bot){
UpdateEventPC();
};
if (_game_speed != 0){
if (!_PlayerState.Gone){
MainUpdate();
_PlayerState.Update(_game_speed);
_char_gui.scaleX = this.scaleX;
_blood_gui.scaleX = this.scaleX;
};
};
_PlayerAnimation.ProgressAnimation(_game_speed);
_PlayerBars.Update(this.x, this.y, _dynamic_mc.scaleX);
}
public function FireContact(_arg1:Boolean=false, _arg2:Number=1):void{
var _local3:MovieClip;
if (_PlayerState.IsImmune){
return;
};
if (_PlayerState.StuckToRocket){
return;
};
_PlayerState.BurnState = (_PlayerState.BurnState + (_game_speed * _arg2));
if (((_arg1) && ((_PlayerState.BurnState < 100)))){
_PlayerState.InWorldFire = true;
};
if (_PlayerState.BurnState < _PlayerState.FireRank1Minimum){
return;
};
if (_PlayerState.HP <= 0){
if (!_PlayerState.Burned){
DropGrabbedPlayer();
StopFlashEffect();
this.removeChild(_char);
_char = new player_burnt();
this.addChild(_char);
_PlayerAnimation.NewSkin(_char);
_local3 = MovieClip(_char_gui.parent);
_local3.removeChild(_char_gui);
_char_gui = new player_burnt();
_local3.addChild(_char_gui);
_PlayerAnimation.SetGUISkin(_char_gui, _blood_gui);
_Handler_Effects.AddEffectAt("PLAYER_BURNED", MidPosX(), MidPosY());
_PlayerState.BurnState = 100;
_PlayerState.Burned = true;
if (((((!(_PlayerState.Knockdowned)) && (!(_PlayerState.DeathKneel)))) && (!(_PlayerState.Staggering)))){
if (((((DetectEdge(_PlayerState.LastDirX)) || ((Math.random() < 0.5)))) && (_PlayerState.OnGround))){
if (_PlayerState.Sprinting){
Fall(false);
} else {
_PlayerState.DeathKneel = true;
_PlayerState.CameraIgnoreTimer = (3 * 24);
};
} else {
Fall(false);
};
_Handler_Shake.Add(2, 2);
};
};
return;
};
if (_arg1){
_PlayerState.HP = (_PlayerState.HP - ((_PlayerState.FireRankWorldExtraDamage * _game_speed) * _arg2));
};
if (_PlayerState.BurnState >= _PlayerState.FireRank2Minimum){
_PlayerState.HP = (_PlayerState.HP - ((_PlayerState.FireRank2Damage * _game_speed) * _arg2));
} else {
_PlayerState.HP = (_PlayerState.HP - ((_PlayerState.FireRank1Damage * _game_speed) * _arg2));
};
if (_PlayerState.HP <= 0){
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY - 1);
Disarm();
Fall(true);
if (ActivateSlowmotion(PlayerNr)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
};
}
private function CheckCollisionHeight(_arg1:Number, _arg2:Number):Boolean{
var _local3:int;
var _local4:int;
var _local5:b2Body;
var _local6:b2Vec2;
var _local7:int;
_headColl = false;
_sideColl = false;
_local3 = _arg2;
while (_local3 >= _arg1) {
if (((_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y - _local3), true)) && (((_static_world_hitbox_mc.hitTestPoint((_this_x - _PlayerState.PlayerEdgeDistance), (_this_y - _local3), true)) || (_static_world_hitbox_mc.hitTestPoint((_this_x + _PlayerState.PlayerEdgeDistance), (_this_y - _local3), true)))))){
_headColl = true;
break;
};
_local3 = (_local3 - 2);
};
if (!_headColl){
_local4 = -(_PlayerState.PlayerEdgeDistance);
while (_local4 <= _PlayerState.PlayerEdgeDistance) {
_local5 = GetDynamicBodyAt((_this_x + _local4), (_this_y - _arg2), false);
if (_local5 != null){
if (_local5.GetUserData().objectData.CanGibb){
_local6 = _local5.GetLinearVelocity();
if (Math.abs(_local6.x) > 0.01){
if (CheckCollisionTowardsPlayer((_this_x + _local4), _this_x, ConvertToDirection(_local6.x))){
_headColl = true;
_sideColl = true;
break;
};
};
};
};
_local4 = (_local4 + (_PlayerState.PlayerEdgeDistance * 2));
};
};
if (!_sideColl){
_edgePositionL = (_this_x - _PlayerState.PlayerEdgeDistance);
_edgePositionR = (_this_x + _PlayerState.PlayerEdgeDistance);
_local7 = _arg2;
while (_local7 >= _arg1) {
if (((_static_world_hitbox_mc.hitTestPoint(_edgePositionL, (_this_y - _local7), true)) || (_static_world_hitbox_mc.hitTestPoint(_edgePositionR, (_this_y - _local7), true)))){
_sideColl = true;
break;
};
_local7 = (_local7 - 2);
};
};
if (((_headColl) && (_sideColl))){
return (true);
};
return (false);
}
private function UpdateEventPC():void{
var _local1:*;
if (!_activated){
return;
};
_local1 = 0;
while (_local1 < _keys.length) {
if (_Handler_Keyboard.KeyIsDown(_keys[_local1])){
_keyPressed[_local1] = true;
} else {
_keyPressed[_local1] = false;
};
_local1++;
};
}
private function UpdateFlashEffect():void{
var _local1:Color;
_local1 = new Color();
_local1.brightness = ((_PlayerState.FlashEffectTimer / 8) * 1);
this.transform.colorTransform = _local1;
}
private function UpdateGUIRanged():void{
if (!_PlayerAnimation.UseGUI){
return;
};
if (_PlayerState.CurrentRangeWeapon == null){
_gui_mc.ranged.gotoAndStop("EMPTY");
_gui_mc.ranged_num.visible = false;
} else {
_gui_mc.ranged.gotoAndStop(_PlayerState.CurrentRangeWeapon.Properties.WeaponType);
_gui_mc.ranged_num.visible = true;
if (_PlayerState.CurrentRangeWeapon.Properties.WeaponType == "SHOTGUN"){
SetNumTo(_gui_mc.ranged_num, (_PlayerState.CurrentRangeWeapon.Ammo / 4));
} else {
SetNumTo(_gui_mc.ranged_num, _PlayerState.CurrentRangeWeapon.Ammo);
};
};
}
private function CheckHeadToObjectImpacts(_arg1:Number):void{
var _local2:int;
var _local3:b2Vec2;
_local2 = -(_PlayerState.PlayerEdgeDistance);
while (_local2 <= _PlayerState.PlayerEdgeDistance) {
b = GetDynamicBodyAt((_this_x + _local2), ((_this_y - _PlayerState.PlayerHeight) - 2), false);
if (b != null){
_local3 = new b2Vec2(((_this_x + _local2) / 30), (((_this_y - _PlayerState.PlayerHeight) - 2) / 30));
b.ApplyImpulse(new b2Vec2(0, -(_arg1)), _local3);
};
_local2 = (_local2 + _PlayerState.PlayerEdgeDistance);
};
}
private function DownPressed():void{
if (_PlayerState.ControllAble){
if (_PlayerState.Aiming){
if (!_PlayerState.AimTurningAroundDelay){
AimDown(0.5);
};
};
};
}
private function GetClosestReachableWeapon():b2Body{
var _local1:b2Body;
var _local2:Number;
var _local3:int;
var _local4:Number;
var _local5:Number;
_local1 = null;
_local3 = 0;
while (_local3 < m_world.WeaponList.length) {
b = m_world.WeaponList[_local3];
if (b.GetUserData().weaponData.Ammo > 0){
_local4 = (MidPosX() - (b.GetPosition().x * 30));
if (Math.sqrt((_local4 * _local4)) <= b.GetUserData().weaponData.Properties.PickupRadius){
_local5 = ((MidPosY() + 4) - (b.GetPosition().y * 30));
if (Math.sqrt((_local5 * _local5)) <= 10){
if (_local1 != null){
if (Math.sqrt(((_local4 * _local4) + (_local5 * _local5))) < _local2){
_local1 = b;
_local2 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5)));
};
} else {
_local1 = b;
_local2 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5)));
};
};
};
};
_local3++;
};
return (_local1);
}
public function StartStagger(_arg1:int=0):void{
if (_PlayerState.Aiming){
if (_PlayerState.AimMode == 1){
DropThrowable();
};
};
_PlayerState.CurrentFireFrame = 0;
_PlayerState.LastFireFrame = 0;
if (_arg1 != 0){
_PlayerState.LastDirX = _arg1;
};
this.scaleX = _PlayerState.LastDirX;
_collision_mc.scaleX = this.scaleX;
if (((_PlayerState.OnGround) && (CanStagger()))){
_PlayerState.Staggering = true;
if (_PlayerState.StaggerTimer < 6){
_PlayerState.StaggerTimer = (6 + (Math.random() * 8));
};
} else {
Fall(false);
};
}
private function ActivateSprint():void{
if (_PlayerState.SprintEnergy > 0){
_Handler_Output.Trace("Sprint On");
_PlayerState.Sprinting = true;
};
}
private function Punch(_arg1:Boolean=false):void{
_PlayerState.Punching = true;
_PlayerAnimation.ShowAnimation(((_PlayerState.MeleeAnimation + "_0") + _PlayerState.PunchComboNr), true);
}
public function Activate():void{
_activated = true;
if (_bot){
_botTimer = setInterval(function (){
clearInterval(_botTimer);
_BotState._targetChooseTimer = setInterval(BotChooseTarget_Tick, 200);
_botTimer = setInterval(function (){
clearInterval(_botTimer);
_botTimer = setInterval(UpdateEventNPC, (1000 / 24));
_BotState._targetInSightTimer = setInterval(BotInSightCheck_Tick, 300);
_BotState._randomizTimer = setInterval(BotRandomize, 4000);
}, 25);
}, (10 + ((PlayerNr * 3) % 20)));
} else {
_Handler_Keyboard.AddHandler(_keys[KEY_POWERUP], UsePowerup);
_Handler_Keyboard.AddHandler(_keys[KEY_THROW], ThrowDown, ThrowUp);
_Handler_Keyboard.AddHandler(_keys[KEY_FIRE], RangedDown, RangedUp);
_Handler_Keyboard.AddHandler(_keys[KEY_MELEE], Melee);
_Handler_Keyboard.AddHandler(_keys[KEY_JUMP], Jump);
_Handler_Keyboard.AddHandler(_keys[KEY_KNEEL], KneelPressed, KneelReleased);
_Handler_Keyboard.AddHandler(_keys[KEY_SPRINT], ActivateSprint, DeactivateSprint);
_Handler_Keyboard.AddHandler(_keys[KEY_UP], UpPressed);
_Handler_Keyboard.AddHandler(_keys[KEY_DOWN], DownPressed);
};
}
public function SetControls(_arg1:InputKeyboard, _arg2:Array):void{
_Handler_Keyboard = _arg1;
_keys = _arg2;
_Handler_Output.Trace(("Controls set to: " + _keys));
}
private function ReleaseThrowable():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:b2Body;
_local1 = ((MidPosX() - (_PlayerState.LastDirX * 4.5)) / 30);
_local2 = ((MidPosY() - 7.5) / 30);
_local3 = (_PlayerState.CurrentAimAngle * (Math.PI / 180));
_local4 = (Math.cos(_local3) * 5.5);
_local5 = ((Math.sin(_local3) * 5.5) - 2);
_local6 = _Handler_Maps.Handler_WorldItems.AddPolygon((_PlayerState.CurrentThrowableWeapon.Properties.ThrowType + "_thrown"), _local1, _local2, 0, new b2Vec2(_local4, _local5), (_PlayerState.LastDirX * 10), new Array(_PlayerState.ThrowTimer, PlayerNr));
_local6.SetBullet(true);
_local6.GetUserData().objectData.IgnoreCoverID = _PlayerState.CoverObjectID;
_PlayerState.ThrowTimer = 0;
_PlayerState.CurrentThrowableWeapon.Ammo = (_PlayerState.CurrentThrowableWeapon.Ammo - 1);
UpdateGUI();
}
public function SetSign(_arg1:int):void{
_PlayerBars.SetSign(_arg1);
}
public function get CanBeCatched():Boolean{
if (_PlayerState.IsImmune){
return (false);
};
if (_PlayerState.StuckToRocket){
return (false);
};
if (_PlayerState.Knockdowned){
if (_PlayerAnimation.CurrentFrame < 10){
return (false);
};
};
if (_PlayerState.GrabbedPlayer){
return (false);
};
if (_PlayerState.Gone){
return (false);
};
return (!(_PlayerState.GrabbedByPlayer));
}
public function UpdatePositionToProjectile():void{
_this_x = _PlayerState.RocketRideProjectile.PosX;
_this_y = _PlayerState.RocketRideProjectile.PosY;
this.x = _this_x;
this.y = _this_y;
_collision_mc.x = _this_x;
_collision_mc.y = _this_y;
_player_area_mc.x = _this_x;
_player_area_mc.y = _this_y;
}
private function BackToOldPosition():void{
_this_x = _old_this_x;
_this_y = _old_this_y;
}
private function HitTestWorldOnly(_arg1:Number, _arg2:Number):Boolean{
if (_static_world_hitbox_mc.hitTestPoint(_arg1, _arg2, true)){
if (!_static_objects_hitbox_mc.hitTestPoint(_arg1, _arg2, true)){
return (true);
};
};
return (false);
}
private function Walljump():void{
var _local1:*;
var _local2:int;
var _local3:b2Vec2;
_edgePosition = (_this_x + (_PlayerState.PlayerEdgeDistance * _PlayerState.LastDirX));
_local1 = 0;
while (_local1 < m_world.DynamicHitBoxObjectList.length) {
b = m_world.DynamicHitBoxObjectList[_local1];
_local2 = 0;
while (_local2 <= 8) {
if (b.GetUserData().objectData.CollisionMC.hitTestPoint(_edgePosition, (_this_y - _local2), true)){
_local3 = new b2Vec2(((_this_x + (_PlayerState.PlayerEdgeDistance * _PlayerState.LastDirX)) / 30), (_this_y / 30));
b.ApplyImpulse(new b2Vec2(_PlayerState.LastDirX, 0), _local3);
break;
};
_local2 = (_local2 + 2);
};
_local1++;
};
this.scaleX = (this.scaleX * -1);
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
_PlayerState.MovingDirectionX = _PlayerState.LastDirX;
_PlayerState.Sprinting = false;
_PlayerState.WallJumping = true;
_PlayerState.AirVelocityY = _PlayerState.PlayerWallJumpPower;
_PlayerAnimation.ShowAnimation("jump", true);
_Handler_Effects.AddParticle(new particle_data("DUST", (_this_x - (_PlayerState.LastDirX * 5)), _this_y, new b2Vec2(_PlayerState.LastDirX, 1)));
}
private function BotTargetThreat_Weakness(_arg1:Player):Number{
return (((100 - _arg1.State.HP) / 100));
}
public function PunchReady():Boolean{
if (_PlayerState.Punching){
if (!_PlayerState.PunchHitPerformed){
if (_PlayerAnimation.NextFrame(_game_speed) == _PlayerState.HitPunchComboFrame){
return (true);
};
};
};
return (false);
}
private function BotInSightCheck_Tick():void{
if (_BotState.TargetPlayer != null){
_BotState.TargetInSight = BotPositionInSight(((_BotState.TargetPlayer.MidPosX() + (Math.random() * 6)) - 3), ((_BotState.TargetPlayer.MidPosY() + (Math.random() * 4)) - 2), _BotState.TargetPlayer.PlayerNr);
};
}
public function set PlayerNr(_arg1:int):void{
_playerNr = _arg1;
}
private function UpdateObjectImpacts():void{
var _local1:int;
var _local2:Boolean;
var _local3:MovieClip;
var _local4:int;
var _local5:int;
var _local6:b2Vec2;
var _local7:b2Vec2;
var _local8:int;
if (_PlayerState.Knockdowned){
if (_PlayerState.HP > 0){
if (_PlayerState.OnGround){
b = GetDynamicBodyAt(MidPosX(), (MidPosY() - 4), false);
if (b == null){
b = GetDynamicBodyAt(MidPosX(), (MidPosY() - 8), false);
};
if (b == null){
b = GetDynamicBodyAt(MidPosX(), (MidPosY() - 12), false);
};
if (b != null){
if (b.GetLinearVelocity().Length() < 0.5){
if (((((b.GetUserData().objectData.CanGibb) && (b.IsSleeping()))) || (!(b.GetUserData().objectData.CanGibb)))){
_local6 = new b2Vec2((_PlayerState.LastDirX * b.GetMass()), -(b.GetMass()));
_local7 = new b2Vec2(MidPosX(), (MidPosY() - 8));
new b2Vec2(MidPosX(), (MidPosY() - 8)).x = (_local7.x / 30);
_local7.y = (_local7.y / 30);
b.ApplyImpulse(_local6, _local7);
b.GetUserData().objectData.Damage_Impact(1);
};
};
};
};
};
return;
};
objectImpactList = new Array();
_local1 = 0;
while (_local1 < m_world.DynamicHitBoxObjectList.length) {
b = m_world.DynamicHitBoxObjectList[_local1];
if (_standingOnObject != b){
if (b.GetUserData().objectData.CanKnockDownPlayer){
if (b.GetUserData().objectData.CollisionMC.hitTestObject(CollisionMC)){
objectImpactList.push([b, 0, 0]);
};
};
};
_local1++;
};
if (objectImpactList.length <= 0){
return;
};
_local4 = 0;
while (_local4 < objectImpactList.length) {
_local2 = false;
_local3 = objectImpactList[_local4][0].GetUserData().objectData.CollisionMC;
_local8 = 0;
while (_local8 <= _PlayerState.PlayerHeight) {
if (_local3.hitTestPoint((_this_x - 5), (_this_y - _local8), true)){
_local2 = true;
objectImpactList[_local4][1] = (_this_x - 4);
objectImpactList[_local4][2] = (_this_y - _local8);
break;
} else {
if (_local3.hitTestPoint((_this_x + 5), (_this_y - _local8), true)){
_local2 = true;
objectImpactList[_local4][1] = (_this_x + 4);
objectImpactList[_local4][2] = (_this_y - _local8);
break;
};
};
_local8 = (_local8 + 2);
};
if (!_local2){
if (_local3.hitTestPoint(_this_x, _this_y, true)){
objectImpactList[_local4][1] = _this_x;
objectImpactList[_local4][2] = _this_y;
} else {
if (_local3.hitTestPoint(_this_x, (_this_y - _PlayerState.PlayerHeight), true)){
objectImpactList[_local4][1] = _this_x;
objectImpactList[_local4][2] = (_this_y - _PlayerState.PlayerHeight);
} else {
objectImpactList.splice(_local4, 1);
};
};
};
_local4++;
};
if (objectImpactList.length <= 0){
return;
};
_local5 = 0;
while (_local5 < objectImpactList.length) {
CheckCollisionWithBody(objectImpactList[_local5]);
_local5++;
};
}
public function CanBeKnockedByFlyingPlayer():Boolean{
if (_PlayerState.IsImmune){
return (false);
};
if (_PlayerState.Falling){
return (false);
};
if (_PlayerState.Knockdowned){
if (_PlayerAnimation.CurrentFrame >= 10){
return (true);
};
return (false);
};
return (true);
}
private function BotCheckObstacle(_arg1:int, _arg2:Boolean=false):void{
if (BotObstacleAt(_arg1)){
if (!_PlayerState.Jumping){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
if (((!(_PlayerState.JumpKickPerformed)) && ((((Math.abs(_PlayerState.AirVelocityY) < 2)) || (_arg2))))){
SetBotKey(KEY_MELEE, !(_keyPressed[KEY_MELEE]));
};
};
};
}
private function WorldCollisionSide(_arg1:Number, _arg2:Number=-1):Boolean{
var _local3:int;
if (_arg2 < 0){
_arg2 = _PlayerState.PlayerEdgeDistance;
};
_edgePosition = (_this_x + (_arg2 * ConvertToDirection(_arg1)));
_local3 = 4;
while (_local3 <= (_PlayerState.PlayerHeight - 2)) {
if (HitTestWorldOnly(_edgePosition, (_this_y - _local3))){
return (true);
};
_local3 = (_local3 + 2);
};
return (false);
}
public function LadderKnockdown(_arg1:int){
if (_arg1 == 0){
if ((Math.random() * 10) < 5){
_arg1 = 1;
} else {
_arg1 = -1;
};
};
_PlayerState.AirVelocityX = _arg1;
_PlayerState.AirVelocityY = -1;
Fall();
}
public function SetDirection(_arg1:int):void{
this.scaleX = _arg1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = _arg1;
}
private function Melee():void{
if (_game_speed == 0){
return;
};
if (_PlayerState.AFSInProgress){
_cancelAimingASAP = true;
return;
};
if (_PlayerState.Aiming){
AbortAiming();
return;
};
if (_PlayerState.CanGrabWeapon){
if (KeyPressed(KEY_KNEEL)){
if (GrabWeapon()){
UpdateGUI();
return;
};
};
};
if (((_PlayerState.ControllAble) && (!(_PlayerState.Jumping)))){
_button_in_melee_range = false;
if (EnemiesInMeleeRange().length > 0){
Punch(true);
} else {
if (ButtonInMeleeRange()){
Punch();
} else {
if (!Kick()){
Punch();
};
};
};
} else {
if (_PlayerState.ControllAble){
_PlayerState.QueueJumpKick = true;
} else {
if (_PlayerState.Punching){
if (_PlayerAnimation.CurrentFrame >= _PlayerState.MinPunchComboFrame){
if (_PlayerState.PunchComboNr < 3){
_PlayerState.PunchComboNr = (_PlayerState.PunchComboNr + 1);
};
if (EnemiesInMeleeRange().length > 0){
_button_in_melee_range = false;
};
};
};
};
};
}
private function BotDodgeRocket():Boolean{
if (_BotState.Difficulty == BotState.EASY){
return (false);
};
if (_BotState.Difficulty == BotState.MEDIUM){
if (Math.random() < 0.5){
return (false);
};
};
if (!_PlayerState.OnGround){
return (false);
};
if (_PlayerState.Aiming){
if (_Handler_ProjectilesUpdater.RocketImpactFrameTime(this, 0.1, 16)){
return (true);
};
} else {
if (_Handler_ProjectilesUpdater.RocketImpactFrameTime(this, 0.1, 16)){
return (true);
};
};
return (false);
}
private function KeyTurnPlayer():void{
if (PressingLeft()){
if (_PlayerState.LastDirX != -1){
_PlayerState.LastDirX = -1;
this.scaleX = _PlayerState.LastDirX;
_collision_mc.scaleX = this.scaleX;
};
} else {
if (PressingRight()){
if (_PlayerState.LastDirX != 1){
_PlayerState.LastDirX = 1;
this.scaleX = _PlayerState.LastDirX;
_collision_mc.scaleX = this.scaleX;
};
};
};
}
private function PlayerLands():void{
var _local1:Number;
var _local2:Boolean;
var _local3:int;
var _local4:int;
var _local5:Boolean;
var _local6:Boolean;
var _local7:int;
_PlayerState.Climbing = false;
_performJumpDownLevel = false;
if (_PlayerState.Falling){
_local1 = Math.abs(_PlayerState.AirVelocityY);
_local1 = (_local1 - 3);
_local1 = (_local1 * 1.5);
if (_local1 < 3){
_local1 = 0;
};
_local2 = false;
_local3 = 0;
while (_local3 <= 2) {
if (HitTestWorldOnly(_this_x, (_this_y + _local3))){
_local2 = true;
break;
};
_local3++;
};
_local4 = 0;
while (_local4 <= 6) {
b = m_world.GetStairBodyAt(_this_x, (_this_y + _local4));
if (b != null){
if (CanBounceAtDirection(ConvertToDirection(b.GetUserData().tiltValue))){
_PlayerState.StairBounce = true;
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
_PlayerState.StairVelocityY = (_PlayerState.StairVelocityY * -0.7);
if (_PlayerState.StairVelocityY < -4){
_PlayerState.StairVelocityY = -4;
} else {
if (_PlayerState.StairVelocityY > -1){
_PlayerState.StairVelocityY = -1;
};
};
_PlayerState.StairVelocityX = b.GetUserData().tiltValue;
_Handler_Sounds.PlaySoundAt("BODYFALL", _this_x, _this_y);
BodyDust();
_PlayerState.IncreaseKnockdownGrade();
_lastBounceY = _this_y;
return;
};
};
_local4++;
};
if (!_local2){
_local5 = false;
_local6 = false;
_local7 = -4;
while (_local7 <= _PlayerState.PlayerEdgeDistance) {
b = GetDynamicBodyAt((_this_x + _local7), (_this_y + 2), false);
if (b != null){
if (b.GetUserData().objectData.PlayerFragile){
b.GetUserData().objectData.ForceDestruction();
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY * 0.6);
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
_local5 = true;
};
};
_local7 = (_local7 + 2);
};
};
if (((!(_local6)) && (!(_local5)))){
_local6 = SidewayBounce();
};
if (_local1 != 0){
_PlayerState.HP = (_PlayerState.HP - _local1);
};
if (_local6){
_PlayerState.DecreaseBurnState();
_lastBounceY = _this_y;
return;
};
if (_local5){
_lastBounceY = _this_y;
return;
};
_Handler_Sounds.PlaySoundAt("BODYFALL", _this_x, _this_y);
BodyDust();
_PlayerState.IncreaseKnockdownGrade();
_PlayerState.Falling = false;
_PlayerState.Knockdowned = true;
this.scaleX = _PlayerState.LastDirX;
_collision_mc.scaleX = this.scaleX;
_PlayerState.DecreaseBurnState();
if (_PlayerState.HP <= 0){
CheckDeathBounce();
_lastBounceY = _this_y;
};
} else {
if (_PlayerState.Diving){
b = m_world.GetGlassAt(_this_x, _this_y);
if (b == null){
b = m_world.GetGlassAt(_this_x, (_this_y + 2));
};
if (b != null){
b.GetUserData().objectData.ForceDestruction();
return;
};
DropGrabbedPlayer();
_PlayerState.Jumping = false;
Roll();
return;
};
};
if (_PlayerState.Jumping){
_PlayerState.Jumping = false;
if (_keyPressed[KEY_JUMP]){
Jump();
};
} else {
UpdateDynamicMovement();
};
}
public function BotPositionInSight(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:b2Body=null):Boolean{
var _local5:Point;
var _local6:Point;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Body;
var _local11:b2Body;
var _local12:int;
var _local13:Number;
var _local14:Number;
var _local15:int;
var _local16:Point;
var _local17:b2Body;
var _local18:int;
var _local19:int;
var _local20:Boolean;
_local5 = new Point((PosX() - (_PlayerState.LastDirX * 4)), (PosY() - 14));
_local6 = new Point(_arg1, _arg2);
_local7 = (_local5.x - _local6.x);
_local8 = (_local5.y - _local6.y);
_local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
if (_local9 > _PlayerState.RangeWeaponRange){
return (false);
};
_local10 = null;
_local11 = null;
_local12 = (_local9 / 4);
_local13 = (-(_local7) / _local12);
_local14 = (-(_local8) / _local12);
_local15 = 1;
while (_local15 <= _local12) {
_local5.x = (_local5.x + _local13);
_local5.y = (_local5.y + _local14);
_local6.x = (_local6.x - _local13);
_local6.y = (_local6.y - _local14);
_local17 = null;
_local18 = -1;
while (_local18 <= 1) {
if (_local18 == 1){
_local16 = _local5;
_local17 = _local10;
} else {
_local16 = _local6;
_local17 = _local11;
};
if (_local17 != null){
if (!_local17.GetUserData().objectData.ShapeMC.hitTestPoint(_local16.x, _local16.y, true)){
_local17 = null;
};
};
if (_local17 == null){
if (_static_objects_hitbox_mc.hitTestPoint(_local16.x, _local16.y, true)){
_local17 = m_world.GetBulletSolidAt(_local16.x, _local16.y);
if (_local17 == _arg4){
_local17 = null;
};
} else {
if (_static_world_hitbox_mc.hitTestPoint(_local16.x, _local16.y, true)){
return (false);
};
if ((((_local14 > 0)) && (!(_PlayerState.RangeWeaponCanShootDown)))){
if (_static_world_cloud_hitbox_mc.hitTestPoint(_local16.x, _local16.y, true)){
return (false);
};
};
};
};
if (_local17 != null){
if (!_PlayerState.RangeWeaponIsFlamethrower){
if (((!(_BotState.IgnoreObjectChecking)) || (!(_PlayerState.RangeWeaponIsBazooka)))){
if (_local17.GetUserData().objectData.Indestructible){
return (false);
};
};
if (_PlayerState.CurrentRangeWeapon != null){
_local20 = false;
if (_local17.GetUserData().objectData.IsBulletHazard){
if (Math.sqrt((Math.pow(((_local17.GetPosition().x * 30) - MidPosX()), 2) + Math.pow(((_local17.GetPosition().y * 30) - MidPosY()), 2))) > HAZARDOUS_DISTANCE_AVOID){
_local20 = true;
} else {
return (false);
};
};
if (((!(_local20)) && (!(_BotState.IgnoreObjectChecking)))){
if (_PlayerState.CurrentRangeWeapon.Properties.Projectile.StrengthLeft < _local17.GetUserData().objectData.Strength){
return (false);
};
};
};
};
};
if (_local18 == 1){
_local10 = _local17;
} else {
_local11 = _local17;
};
_local19 = 0;
while (_local19 < _players.length) {
if (_players[_local19].State.HP <= 0){
if ((_local15 + 2) <= _local12){
if (_players[_local19].CollisionMC.hitTestPoint(_local16.x, _local16.y, true)){
return (false);
};
};
} else {
if (_players[_local19].PlayerNr != PlayerNr){
if (_players[_local19].PlayerNr != _arg3){
if (_players[_local19].Team == Team){
if (_players[_local19].AreaMC.hitTestPoint(_local16.x, _local16.y, true)){
return (false);
};
};
};
};
};
_local19++;
};
_local18 = (_local18 + 2);
};
_local15 = (_local15 + 2);
};
return (true);
}
public function Revive(_arg1:Number, _arg2:Number):void{
_PlayerBars.Show();
this.visible = true;
_PlayerState.ForceHP = 100;
_collision_mc.visible = true;
_collision_mc.x = _arg1;
_collision_mc.y = _arg2;
_player_area_mc.x = _arg1;
_player_area_mc.y = _arg2;
_this_x = _arg1;
_this_y = _arg2;
_PlayerState.IgnoreMe = false;
_char_gui.visible = true;
_blood_gui.visible = true;
_gui_mc.gib_pic.alpha = 0;
_PlayerState.Gone = false;
_PlayerState.AirVelocityX = 0;
_PlayerState.AirVelocityY = 0;
_PlayerState.Falling = false;
_PlayerState.Knockdowned = false;
_PlayerState.Jumping = true;
}
public function get CameraIgnore():Boolean{
if (!CameraFocus){
return (true);
};
return (_PlayerState.CameraIgnoreMe);
}
private function SetNumTo(_arg1:MovieClip, _arg2:int):void{
var _local3:int;
var _local4:int;
_local3 = (_arg2 % 10);
_local4 = int(((_arg2 - _local3) / 10));
if (_local3 == 0){
_arg1.dig_1.gotoAndStop(10);
} else {
_arg1.dig_1.gotoAndStop(_local3);
};
if (_local4 == 0){
_arg1.dig_10.gotoAndStop(10);
} else {
_arg1.dig_10.gotoAndStop(_local4);
};
}
private function Stuck():Boolean{
if (HitTestWorldOnly(_this_x, (_this_y - 2))){
if (HitTestWorldOnly(_this_x, (_this_y + 2))){
return (true);
};
};
return (false);
}
public function GiveDefaultMelee(_arg1:WeaponMeleeData):void{
_PlayerState.DefaultMeleeWeapon = _arg1;
}
private function StandingOnCloud():Boolean{
var _local1:int;
_local1 = 0;
while (_local1 <= 4) {
if (_static_world_cloud_hitbox_mc.hitTestPoint(_this_x, (_this_y + _local1), true)){
return (true);
};
_local1 = (_local1 + 1);
};
return (false);
}
private function PunchPlayer(_arg1:int):void{
var _local2:Boolean;
var _local3:int;
var _local4:int;
_local2 = false;
if (_players[_arg1].State.HP <= 0){
_local2 = true;
};
_players[_arg1].SetDirection(-(_PlayerState.LastDirX));
_players[_arg1].Disarm();
if (_players[_arg1].State.Jumping){
_players[_arg1].State.AirVelocityX = (_players[_arg1].State.AirVelocityX + (_PlayerState.LastDirX * 2));
_players[_arg1].Fall();
} else {
_players[_arg1].State.StunTimer = _PlayerState.HitPunchStunTime;
};
if (_players[_arg1].State.HP > 0){
_players[_arg1].State.HP = (_players[_arg1].State.HP - _PlayerState.HitPunchDamage);
if (_players[_arg1].State.HP <= 0){
if (ActivateSlowmotion(_arg1)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
};
};
if (_PlayerState.CurrentMeleeWeapon != null){
if (!_players[_arg1].State.Burned){
_local3 = 0;
while (_local3 < 3) {
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", (_players[_arg1].PosX() - (_PlayerState.LastDirX * 2)), ((_players[_arg1].PosY() - 12) - (Math.random() * 2)), new b2Vec2(_PlayerState.LastDirX, 0), 0, 1, [Math.floor((Math.random() * 1.99))]));
_local3++;
};
_Handler_Effects.AddEffectAt("BLOOD", (_players[_arg1].PosX() - (_PlayerState.LastDirX * 2)), (_players[_arg1].PosY() - 12));
} else {
_Handler_Effects.AddEffectAt("PLAYER_BURNED_HITDEFAULT", (_players[_arg1].PosX() - (_PlayerState.LastDirX * 2)), (_players[_arg1].PosY() - 12));
};
} else {
_Handler_Effects.AddEffectAt("FIST_IMPACT", (_players[_arg1].PosX() - (_PlayerState.LastDirX * 2)), (_players[_arg1].PosY() - 12));
if (_PlayerState.PunchComboNr >= 2){
if (!_players[_arg1].State.Burned){
_local4 = 0;
while (_local4 < _PlayerState.PunchComboNr) {
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", (_players[_arg1].PosX() - (_PlayerState.LastDirX * 2)), ((_players[_arg1].PosY() - 12) - (Math.random() * 2)), new b2Vec2(_PlayerState.LastDirX, 0), 0, 1, [Math.floor((Math.random() * 1.99))]));
_local4++;
};
} else {
_Handler_Effects.AddEffectAt("PLAYER_BURNED_HITDEFAULT", (_players[_arg1].PosX() - (_PlayerState.LastDirX * 2)), (_players[_arg1].PosY() - 12));
};
};
};
if ((((((_players[_arg1].State.HP <= 0)) && (!(_local2)))) && (((_players[_arg1].State.Running) || (_players[_arg1].State.Sprinting))))){
_players[_arg1].State.AirVelocityX = (_players[_arg1].State.LastDirX * 3);
_players[_arg1].State.AirVelocityY = -2.5;
_players[_arg1].Fall();
} else {
if ((((_PlayerState.PunchComboNr == 3)) || ((_players[_arg1].State.HP <= 0)))){
_players[_arg1].State.AirVelocityX = (_PlayerState.LastDirX * 3);
_players[_arg1].State.AirVelocityY = -2.5;
_players[_arg1].Fall();
};
};
if ((((((_players[_arg1].State.HP <= 0)) && (!(_players[_arg1].State.Knockdowned)))) && (!(_PlayerState.Falling)))){
_players[_arg1].State.AirVelocityX = (_PlayerState.LastDirX * 2);
_players[_arg1].State.AirVelocityY = -2.5;
_players[_arg1].Fall();
};
}
private function DisableJumpDownLevel():void{
_enableJumpDownLevel = false;
clearInterval(_downTimer);
}
private function PressingLeft(_arg1:Boolean=false):Boolean{
if (_PlayerState.MovingDirectionInversed != 0){
if (_PlayerState.MovingDirectionInversed == -1){
return (false);
};
if (_keyPressed[3]){
return (true);
};
} else {
if (((_keyPressed[2]) && (((!(_keyPressed[3])) || (!(_arg1)))))){
return (true);
};
};
return (false);
}
public function get MC():MovieClip{
return (this);
}
public function SetGUI(_arg1:MovieClip):void{
var _local2:MovieClip;
_gui_mc = _arg1;
_gui_mc.visible = true;
_local2 = new MovieClip();
_char_gui = PlayerCharacter.Get(_PlayerState.CharNr);
_blood_gui = new player_blood();
_local2.addChild(_char_gui);
_local2.scaleX = 1;
_local2.scaleY = 1;
_gui_mc.addChild(_local2);
_gui_mc.addChild(_blood_gui);
_local2.x = _gui_mc.player_mc.x;
_local2.y = _gui_mc.player_mc.y;
_blood_gui.x = _gui_mc.player_mc.x;
_blood_gui.y = _gui_mc.player_mc.y;
_PlayerAnimation.SetGUISkin(_char_gui, _blood_gui);
_PlayerAnimation.ShowAnimation("aim_pistol");
_PlayerBars.SetGUI(_gui_mc);
}
private function CanTakeCover(_arg1:int):Boolean{
var _local2:Number;
var _local3:int;
_local2 = ((_arg1 * _PlayerState.PlayerEdgeDistance) + (_arg1 * 4));
if (_static_world_hitbox_mc.hitTestPoint((_this_x + _local2), MidPosY(), true)){
if (!_PlayerState.TakingCover){
b = m_world.GetStairBodyAt((_this_x + _local2), MidPosY());
if (b != null){
return (false);
};
};
_local3 = 0;
while (_local3 <= 12) {
if (!_static_world_hitbox_mc.hitTestPoint((_this_x + _local2), ((_this_y - 22) + _local3), true)){
return (true);
};
_local3 = (_local3 + 4);
};
};
return (false);
}
public function get Bot():Boolean{
return (_bot);
}
private function AbleToWalljump():Boolean{
var _local1:int;
if (!_PlayerState.WallJumping){
if (Math.sqrt((_PlayerState.AirVelocityY * _PlayerState.AirVelocityY)) <= 3){
_edgePosition = (_this_x + ((_PlayerState.PlayerEdgeDistance + 1) * _PlayerState.LastDirX));
_local1 = 0;
while (_local1 <= 8) {
if (_static_world_hitbox_mc.hitTestPoint(_edgePosition, (_this_y - _local1), true)){
return (true);
};
_local1 = (_local1 + 2);
};
};
};
return (false);
}
private function SwapDepths(_arg1:int):void{
if (this.parent.getChildIndex(this) < _players[_arg1].parent.getChildIndex(_players[_arg1])){
this.parent.swapChildren(this, _players[_arg1]);
};
}
private function BotStateAim():void{
var _local1:Number;
if (((_PlayerState.Jumping) || ((_PlayerState.CurrentRangeWeapon == null)))){
_BotState.Phase = BotState.CANCEL_AIM;
return;
};
if (_PlayerState.CurrentRangeWeapon.Ammo <= 0){
_BotState.Phase = BotState.CANCEL_AIM;
return;
};
if (_BotState.TargetHazardousObject == null){
if (_BotState.ActionShotFired){
if (!_BotState.TargetInSight){
_BotState.Phase = BotState.CANCEL_AIM;
return;
};
if (((BotTargetInMelee()) && (!(_BotState.TargetPlayer.State.Knockdowned)))){
_BotState.Phase = BotState.CANCEL_AIM;
return;
};
} else {
if (_BotState.TargetPlayer == null){
_BotState.Phase = BotState.CANCEL_AIM;
return;
};
};
};
SetBotKey(2, false);
SetBotKey(3, false);
if (_BotState.TargetHazardousObject != null){
_local1 = ((_BotState.TargetHazardousObject.GetPosition().x * 30) - MidPosX());
} else {
_local1 = (_BotState.TargetPlayer.MidPosX() - MidPosX());
};
if (Math.abs(_local1) > 5){
if ((_PlayerState.LastDirX * _local1) <= 0){
if (_PlayerState.LastDirX > 0){
SetBotKey(2, true);
} else {
SetBotKey(3, true);
};
return;
};
};
if (!_PlayerState.Aiming){
SetBotKey(KEY_FIRE, !(_keyPressed[KEY_FIRE]));
};
BotAimY();
if (_BotState.TargetInAim){
if ((((_PlayerState.CurrentWeaponCooldown <= 0)) && (!(_PlayerState.AimTurningAround)))){
if (_BotState.TargetHazardousObject == null){
if (((_BotState.TargetPlayer.State.IsImmune) && ((_BotState.Difficulty == BotState.HARD)))){
if (Math.random() < 0.9){
return;
};
};
if (((_BotState.TargetPlayer.State.StuckToRocket) && ((_PlayerState.CurrentRangeWeapon.Properties.WeaponType == "BAZOOKA")))){
if ((((((_BotState.TargetPlayer.State.RocketRideProjectile.DirectionX < 0)) && ((MidPosX() > _BotState.TargetPlayer.MidPosX())))) || ((((_BotState.TargetPlayer.State.RocketRideProjectile.DirectionX > 0)) && ((MidPosX() < _BotState.TargetPlayer.MidPosX())))))){
return;
};
};
};
if (_BotState.Difficulty == BotState.EASY){
if (Math.random() < 0.85){
return;
};
};
if (_BotState.Difficulty == BotState.MEDIUM){
if (Math.random() < 0.75){
return;
};
};
if (_BotState.Difficulty == BotState.HARD){
if (Math.random() < 0.5){
return;
};
};
_BotState.SetDelay();
_BotState.Phase = BotState.SHOOT;
SetBotKey(5, false);
_BotState.RandomFirePosition = true;
_BotState.ActionShotFired = true;
};
};
}
private function BotFacingEdge(_arg1:int=1):Boolean{
return (DetectEdge((_PlayerState.LastDirX * _arg1), 45, true));
}
private function BotTargetThreat_Aim(_arg1:Player):Number{
if (_arg1.State.Aiming){
return (_arg1.PlayerInSightPercentage(this));
};
return (0);
}
public function get CanDespawn():Boolean{
return ((_despawnTimer <= 0));
}
private function CanDive():Boolean{
if (CollisionHead()){
return (false);
};
return (true);
}
private function BotChooseTarget(_arg1:Boolean=true):void{
var _local2:int;
var _local3:Number;
var _local4:Player;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Boolean;
var _local10:Number;
var _local11:b2Body;
var _local12:Number;
var _local13:Number;
var _local14:b2Body;
var _local15:int;
var _local16:PathNode;
var _local17:Number;
var _local18:PathNode;
var _local19:Number;
var _local20:Number;
var _local21:PathNode;
var _local22:PathNode;
var _local23:Array;
_local2 = -1;
_local3 = 99999;
_local4 = _BotState.TargetPlayer;
_BotState.DoFireCheck = true;
_local9 = false;
if (_arg1){
_BotState.UpdateUnavailableStuff();
};
_local5 = 0;
while (_local5 < _players.length) {
if (PlayerNr != _local5){
if ((((_players[_local5].State.HP > 0)) && (!((_players[_local5].Team == _team))))){
_local9 = true;
if (!_BotState.IsPlayerUnavailable(_players[_local5])){
_local6 = (_players[_local5].MidPosX() - MidPosX());
_local7 = (_players[_local5].MidPosY() - MidPosY());
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
_local8 = (_local8 * (1 - (0.33 * BotTargetThreat_Aim(_players[_local5]))));
_local8 = (_local8 * (1 - (0.25 * BotTargetThreat_Weapon(_players[_local5]))));
_local8 = (_local8 * (1 - (0.4 * BotTargetThreat_Weakness(_players[_local5]))));
_local10 = (_local8 * 0.33);
if ((((_local8 < 50)) && ((Math.abs(_local7) < 20)))){
_local8 = _local10;
} else {
if (_local10 < _local3){
if (_PlayerState.RangeWeaponRange < _local10){
if (BotPositionInSight(((_players[_local5].MidPosX() + (Math.random() * 6)) - 3), ((_players[_local5].MidPosY() + (Math.random() * 4)) - 2), _players[_local5].PlayerNr)){
_local8 = _local10;
};
};
};
};
if (_local8 < _local3){
_local2 = _local5;
_local3 = _local8;
};
};
};
};
_local5++;
};
_BotState.OpponentExist = _local9;
if (!_BotState.OpponentExist){
BotCalculatePathGrid(_pathGrid.GetNodeAt(MidPosX(), MidPosY()));
return;
};
if ((((((((((_BotState.Difficulty > BotState.EASY)) && (_PlayerState.OnGround))) && (!((_local2 == -1))))) && (!((_PlayerState.CurrentRangeWeapon == null))))) && (!(BotState.FOLLOW_ONLY)))){
_local5 = 0;
while (_local5 < m_world.HazardsList.length) {
_local11 = m_world.HazardsList[_local5];
if (_local11.GetUserData().objectData.IsBulletHazard){
_local12 = (_local11.GetPosition().x * 30);
_local13 = (_local11.GetPosition().y * 30);
_local6 = (_local12 - _players[_local2].MidPosX());
_local7 = (_local13 - _players[_local2].MidPosY());
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
if (_local8 <= HAZARDOUS_DISTANCE){
_local6 = (_local12 - MidPosX());
_local7 = (_local13 - MidPosY());
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
if (_local8 > HAZARDOUS_DISTANCE_AVOID){
if (BotPositionInSight(_local12, _local13, 9999, _local11)){
_BotState.TargetHazardousObject = _local11;
_BotState.TargetPlayer = _players[_local2];
_BotState.Phase = BotState.AIM;
return;
};
};
};
};
_local5++;
};
};
_BotState.TargetHazardousObject = null;
if (!BotState.FOLLOW_ONLY){
if ((((_PlayerState.CurrentRangeWeapon == null)) || (!(_BotState.TargetInSight)))){
_local14 = _BotState.TargetWeapon;
_local15 = -1;
_local5 = 0;
while (_local5 < m_world.WeaponList.length) {
b = m_world.WeaponList[_local5];
_local16 = _pathGrid.GetNodeAt((b.GetPosition().x * 30), (b.GetPosition().y * 30));
if (_local16 != null){
if (!_local16.Avoid){
if (b.GetUserData().weaponData.Ammo > 0){
if (!_BotState.IsWeaponUnavailable(b)){
_local6 = (MidPosX() - (b.GetPosition().x * 30));
_local7 = ((MidPosY() + 4) - (b.GetPosition().y * 30));
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
if ((((b.GetUserData().isRanged == true)) && ((b.GetUserData().weaponData.TotalDamage > (_PlayerState.RangeWeaponTotalDamage * 1.2))))){
_local8 = (_local8 - (0.25 * (b.GetUserData().weaponData.TotalDamage - _PlayerState.RangeWeaponTotalDamage)));
} else {
if ((((b.GetUserData().isMelee == true)) && ((b.GetUserData().weaponData.TotalDamage > _PlayerState.MeleeWeaponTotalDamage)))){
_local8 = (_local8 - (0.25 * (b.GetUserData().weaponData.TotalDamage - _PlayerState.MeleeWeaponTotalDamage)));
} else {
if ((((((b.GetUserData().isHealth == true)) && ((_PlayerState.HP < 100)))) && ((_BotState.Difficulty > BotState.EASY)))){
_local17 = (100 - _PlayerState.HP);
if (_local17 > b.GetUserData().weaponData.Ammo){
_local17 = b.GetUserData().weaponData.Ammo;
};
_local8 = (_local8 - (0.5 * _local17));
if (_PlayerState.HP <= 25){
_local8 = (_local8 * 0.7);
};
} else {
_local8 = 9999;
};
};
};
if (b == _local14){
_local8 = (_local8 * 0.8);
};
if (_local8 < _local3){
_local15 = _local5;
_local3 = _local8;
_local2 = -1;
};
};
};
};
};
_local5++;
};
if (_local15 >= 0){
_BotState.TargetWeapon = m_world.WeaponList[_local15];
_BotState.PathGridCounter = (_BotState.PathGridCounter - 1);
if (((!((_local14 == _BotState.TargetWeapon))) && ((_BotState.Phase == BotState.GRAB_WEAPON)))){
_BotState.Phase = BotState.IDLE;
};
if (((!((_local14 == _BotState.TargetWeapon))) || ((_BotState.PathGridCounter <= 0)))){
_BotState.PathGridCounter = 2;
_local18 = _pathGrid.GetNodeAt((_BotState.TargetWeapon.GetPosition().x * 30), (_BotState.TargetWeapon.GetPosition().y * 30));
BotCalculatePathGrid(_local18);
if (_BotState.Path.length <= 0){
if (_pathGrid.GetNodeAt(MidPosX(), MidPosY()) != _local18){
_BotState.UnavailableWeapons.push([_BotState.TargetWeapon, 0]);
_BotState.TargetWeapon = null;
};
};
};
} else {
_BotState.TargetWeapon = null;
};
};
};
if (_local2 >= 0){
_BotState.TargetPlayer = _players[_local2];
_BotState.PathGridCounter = (_BotState.PathGridCounter - 1);
if (((!((_local4 == _BotState.TargetPlayer))) || ((_BotState.PathGridCounter <= 0)))){
_BotState.PathGridCounter = 2;
_local19 = _BotState.TargetPlayer.MidPosX();
_local20 = _BotState.TargetPlayer.MidPosY();
_local21 = _pathGrid.GetNodeAt(_local19, _local20);
BotCalculatePathGrid(_local21);
if (_BotState.Path.length <= 0){
_local22 = _pathGrid.GetNodeAt(MidPosX(), MidPosY());
if (_local22 != null){
if (((!((_local22.GetBindTo(_local21) == null))) || ((_local22 == _local21)))){
return;
};
if (BotPositionShootableFrom(_local19, _local20, _local22.PosX, (_local22.PosY - 2))){
_BotState.IgnoreObjectCheckingTimer = BotState.UNAVAILABLE_PLAYER_TIMER;
return;
};
_local23 = _pathGrid.GetConnectedNodes();
_local5 = 2;
while (_local5 < _local23.length) {
if (BotPositionShootableFrom(_local19, _local20, _local23[_local5].PosX, (_local23[_local5].PosY - 2))){
_BotState.IgnoreObjectCheckingTimer = BotState.UNAVAILABLE_PLAYER_TIMER;
BotCalculatePathGrid(_local23[_local5]);
return;
};
_local5 = (_local5 + 2);
};
_BotState.UnavailablePlayers.push([_BotState.TargetPlayer, 0]);
_BotState.TargetPlayer = null;
BotChooseTarget(false);
};
};
};
} else {
_BotState.TargetPlayer = null;
};
if ((((_local2 == -1)) && ((_local15 == -1)))){
BotCalculatePathGrid(_pathGrid.GetNodeAt(MidPosX(), MidPosY()));
};
}
private function ThrowTimerEnded():void{
if (((_PlayerState.Aiming) && ((_PlayerState.AimMode == 1)))){
DropThrowable();
};
}
private function CanStagger():Boolean{
if ((((_PlayerState.HP <= 0)) && (_PlayerState.Knockdowned))){
return (false);
};
return (!(StaggerCollision(-(_PlayerState.LastDirX))));
}
private function WorldCollisionHead():Boolean{
var _local1:int;
if (((HitTestWorldOnly(_this_x, (_this_y - _PlayerState.PlayerHeight))) && (((HitTestWorldOnly((_this_x - _PlayerState.PlayerEdgeDistance), (_this_y - _PlayerState.PlayerHeight))) || (HitTestWorldOnly((_this_x + _PlayerState.PlayerEdgeDistance), (_this_y - _PlayerState.PlayerHeight))))))){
return (true);
};
_local1 = 4;
while (_local1 <= (_PlayerState.PlayerHeight - 2)) {
if (((((HitTestWorldOnly((_this_x - _PlayerState.PlayerEdgeDistance), (_this_y - _local1))) && (HitTestWorldOnly(_this_x, (_this_y - _local1))))) && (HitTestWorldOnly((_this_x + _PlayerState.PlayerEdgeDistance), (_this_y - _local1))))){
return (true);
};
_local1 = (_local1 + 2);
};
return (false);
}
private function UpdateDynamicMovement(_arg1:Boolean=false):void{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:b2Vec2;
var _local6:b2Vec2;
var _local7:Number;
if (_PlayerState.KickingTimer > 0){
return;
};
if (_PlayerState.OnGround){
_local2 = new Array();
_local3 = 0;
while (_local3 < m_world.DynamicHitBoxObjectList.length) {
b = m_world.DynamicHitBoxObjectList[_local3];
if (b.GetUserData().objectData.ShapeMC.hitTestObject(_player_area_mc)){
_local2.push(b);
};
_local3++;
};
_local4 = 0;
while (_local4 <= (_PlayerState.PlayerEdgeDistance + 2)) {
_local3 = 0;
while (_local3 < _local2.length) {
b = _local2[_local3];
if (((b.GetUserData().objectData.ShapeMC.hitTestPoint((_this_x + _local4), (_this_y + 2), true)) || (b.GetUserData().objectData.ShapeMC.hitTestPoint((_this_x - _local4), (_this_y + 2), true)))){
_local5 = new b2Vec2((_this_x / 30), (_this_y / 30));
if (b.GetUserData().objectData.IsElevator){
_local6 = b.GetLinearVelocity();
} else {
_local6 = b.GetLinearVelocityFromWorldPoint(_local5);
};
if (_arg1){
if (b.GetUserData().isConveyorBelt == true){
_PlayerState.AirVelocityX = (b.GetLinearVelocity().x + b.GetUserData().conveyorBeltSpeedX);
_PlayerState.AirVelocityY = (b.GetLinearVelocity().y + b.GetUserData().conveyorBeltSpeedY);
} else {
_PlayerState.AirVelocityX = b.GetLinearVelocity().x;
_PlayerState.AirVelocityY = b.GetLinearVelocity().y;
};
} else {
_PlayerState.AirVelocityX = _local6.x;
_PlayerState.AirVelocityY = _local6.y;
if (b.GetUserData().objectData.ShapeMC.hitTestPoint(_this_x, (_this_y + 2), true)){
SimpleMove((_local6.x * _game_speed), ((_local6.y * _game_speed) * 0.66));
} else {
SimpleMove((_local6.x * _game_speed), ((_local6.y * _game_speed) * 1.01));
};
if (_game_speed >= 0.01){
_local7 = (b.GetMass() / 10);
b.ApplyImpulse(new b2Vec2(0, (_local7 * _game_speed)), _local5);
};
};
_standingOnObject = b;
return;
};
_local3++;
};
_local4 = (_local4 + 2);
};
_PlayerState.AirVelocityX = 0;
_PlayerState.AirVelocityY = 0;
};
_standingOnObject = null;
}
private function CanLandInMid():Boolean{
var _local1:int;
_local1 = 0;
while (_local1 <= _PlayerState.PlayerEdgeDistance) {
if (!_performJumpDownLevel){
if (_static_world_cloud_hitbox_mc.hitTestPoint(_this_x, (_this_y + _local1), true)){
return (true);
};
};
if (_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y + _local1), true)){
return (true);
};
_local1 = (_local1 + 2);
};
return (false);
}
private function UpdateEventNPC():void{
var _local1:int;
var _local2:Number;
var _local3:int;
var _local4:*;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Boolean;
var _local13:Boolean;
if (_PlayerState.HP <= 0){
clearInterval(_botTimer);
clearInterval(_BotState._targetChooseTimer);
clearInterval(_BotState._targetInSightTimer);
clearInterval(_BotState._randomizTimer);
return;
};
if (_PlayerState.StuckToRocket){
clearInterval(_BotState._targetChooseTimer);
clearInterval(_BotState._targetInSightTimer);
clearInterval(_BotState._randomizTimer);
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, false);
if (_BotState.Difficulty < BotState.HARD){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
return;
};
_local2 = 99999;
_local3 = -1;
_local1 = 0;
while (_local1 < _players.length) {
if ((((((_players[_local1].State.HP > 0)) && (!((_players[_local1].Team == Team))))) && (!((_local1 == PlayerNr))))){
_local4 = Math.sqrt((Math.pow((_players[_local1].MidPosX() - MidPosX()), 2) + Math.pow((_players[_local1].MidPosY() - MidPosY()), 2)));
if (_local4 < _local2){
_local2 = _local4;
_local3 = _local1;
};
};
_local1++;
};
if (_local3 == -1){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
return;
};
_BotState.TargetPlayer = _players[_local3];
if (((!(_BotState.FirstRocketTurnDone)) && ((((((_PlayerState.RocketRideProjectile.DirectionX > 0)) && ((_BotState.TargetPlayer.MidPosX() < MidPosX())))) || ((((_PlayerState.RocketRideProjectile.DirectionX < 0)) && ((_BotState.TargetPlayer.MidPosX() > MidPosX())))))))){
if (_PlayerState.RocketRideProjectile.DirectionX < 0){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
} else {
_BotState.FirstRocketTurnDone = true;
_local5 = Math.atan2((_BotState.TargetPlayer.MidPosY() - MidPosY()), (_BotState.TargetPlayer.MidPosX() - MidPosX()));
_local6 = Math.atan2(_PlayerState.RocketRideProjectile.DirectionY, _PlayerState.RocketRideProjectile.DirectionX);
_local7 = (_local5 * (180 / Math.PI));
_local8 = (_local6 * (180 / Math.PI));
_local9 = 10;
_local10 = _local8;
_local11 = _local8;
_local1 = 0;
while (_local1 < 180) {
_local10 = (_local10 - 4);
_local11 = (_local11 + 4);
if (_local10 < -180){
_local10 = (_local10 + 360);
};
if (_local11 > 180){
_local11 = (_local11 - 360);
};
_local12 = (Math.abs((_local10 - _local7)) < _local9);
_local13 = (Math.abs((_local11 - _local7)) < _local9);
if (((_local12) && (_local13))){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
} else {
if (_local12){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
} else {
if (_local13){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
};
};
};
_local1 = (_local1 + 4);
};
return;
};
return;
};
if (_BotState.TargetPlayer != null){
if (_BotState.TargetPlayer.State.HP <= 0){
_BotState.TargetPlayer = null;
};
};
if (_PlayerState.BotInterrupt){
_local1 = 0;
while (_local1 <= 9) {
SetBotKey(_local1, false);
_local1++;
};
_BotState.Phase = BotState.INTERRUPTED;
return;
} else {
if (_BotState.Phase == BotState.INTERRUPTED){
BotGoForReset(true);
BotChooseTarget();
_BotState.Phase = BotState.IDLE;
};
};
if (_BotState.PhaseDelay > 0){
_BotState.PhaseDelay = (_BotState.PhaseDelay - 1);
return;
};
if (BotDodgeRocket()){
if (_PlayerState.Aiming){
_BotState.Phase = BotState.CANCEL_AIM;
} else {
if ((((((Math.random() < 0.7)) || (!(_PlayerState.CanRoll)))) || (BotFacingEdge()))){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
if (((_keyPressed[KEY_LEFT]) && (_keyPressed[KEY_RIGHT]))){
if (_PlayerState.LastDirX == 1){
SetBotKey(KEY_LEFT, false);
} else {
SetBotKey(KEY_RIGHT, false);
};
} else {
if (((!(_keyPressed[KEY_LEFT])) && (!(_keyPressed[KEY_RIGHT])))){
if (_PlayerState.LastDirX == 1){
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, true);
};
};
};
SetBotKey(KEY_DOWN, true);
};
};
};
if (((BotDodgeBullet()) || (_BotState.DodgeBullet))){
if (_PlayerState.Aiming){
_BotState.DodgeBullet = true;
_BotState.Phase = BotState.CANCEL_AIM;
} else {
BotCheckCover();
if (_PlayerState.CanRoll){
if (((_keyPressed[KEY_LEFT]) && (_keyPressed[KEY_RIGHT]))){
if (_PlayerState.LastDirX == 1){
SetBotKey(KEY_LEFT, false);
} else {
SetBotKey(KEY_RIGHT, false);
};
} else {
if (((!(_keyPressed[KEY_LEFT])) && (!(_keyPressed[KEY_RIGHT])))){
if (_PlayerState.LastDirX == 1){
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, true);
};
};
};
if (BotFacingEdge()){
if (BotFacingEdge(-1)){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
_BotState.Phase = BotState.FOLLOW_PATH;
_BotState.DodgeBullet = false;
return;
};
if (_keyPressed[KEY_LEFT]){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
};
DisableJumpDownLevel();
SetBotKey(KEY_DOWN, true);
} else {
if (_BotState.NextResultNode != null){
if (_BotState.NextResultNode.PrevBind != null){
switch (_BotState.NextResultNode.PrevBind.MovementType){
case PathBind.SPRINTJUMP:
case PathBind.JUMP:
case PathBind.DIVE:
case PathBind.CLOUDDOWN:
_BotState.DodgeBullet = false;
return;
};
};
};
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
};
_BotState.DodgeBullet = false;
return;
};
};
if ((((((_PlayerState.BurnState >= 60)) || (((((!(_PlayerState.InWorldFire)) && ((_PlayerState.BurnState > 20)))) && (!(_BotState.RunAwayFromHazards)))))) || (((((((!(_PlayerState.InWorldFire)) && (_PlayerState.FireRank1Attached))) && ((_PlayerState.HP < 10)))) && (!(_BotState.RunAwayFromHazards)))))){
if (_PlayerState.Aiming){
if (_PlayerState.HP < 10){
SetBotKey(KEY_MELEE, !(_keyPressed[KEY_MELEE]));
_BotState.Phase = BotState.FOLLOW_PATH;
return;
};
_BotState.CancelAimSoon = true;
} else {
if (_PlayerState.CanRoll){
BotCheckCover();
if (_PlayerState.Sprinting){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
return;
};
SetBotKey(KEY_MELEE, false);
SetBotKey(KEY_UP, false);
if (_PlayerState.OnGround){
if (_PlayerState.Rolling){
SetBotKey(KEY_DOWN, false);
} else {
if (_PlayerState.LastDirX == 1){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
};
DisableJumpDownLevel();
SetBotKey(KEY_DOWN, true);
return;
};
};
if ((((_BotState.Phase == BotState.MELEE)) && ((_PlayerState.BurnState >= 45)))){
return;
};
};
};
};
if (((!(_PlayerState.Sprinting)) && ((_PlayerState.SprintEnergy > 40)))){
if (_PlayerState.OnGround){
if (_BotState.RunOften){
if (_PlayerState.Running){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
return;
};
};
};
};
if (_BotState.Phase == BotState.IDLE){
SetBotKey(KEY_DOWN, false);
if (_PlayerState.ControllAble){
if (((((!((_BotState.TargetPlayer == null))) || (!((_BotState.TargetWeapon == null))))) || (_BotState.RunAwayFromHazards))){
_BotState.Phase = BotState.FOLLOW_PATH;
} else {
if (((((_BotState.TargetInSight) && (!((_PlayerState.CurrentRangeWeapon == null))))) && (!(BotState.FOLLOW_ONLY)))){
_BotState.Phase = BotState.AIM;
};
};
};
};
if (_BotState.Phase == BotState.MELEE){
BotStateMelee();
} else {
if (_BotState.Phase == BotState.GRAB_WEAPON){
BotStateGrabWeapon();
} else {
if (_BotState.Phase == BotState.FOLLOW_PATH){
BotStateFollowPath();
} else {
if (_BotState.Phase == BotState.CANCEL_AIM){
BotStateCancelAim();
} else {
if (_BotState.Phase == BotState.AIM){
BotStateAim();
} else {
if (_BotState.Phase == BotState.SHOOT){
BotStateShoot();
};
};
};
};
};
};
}
public function get Ignore():Boolean{
return (_PlayerState.IgnoreMe);
}
private function SetBotKey(_arg1:int, _arg2:Boolean):void{
switch (_arg2){
case true:
switch (_arg1){
case 0:
if (!_keyPressed[0]){
_keyPressed[0] = true;
_keyPressed[8] = true;
UpPressed();
Jump();
};
break;
case 1:
if (!_keyPressed[1]){
_keyPressed[1] = true;
_keyPressed[9] = true;
DownPressed();
KneelPressed();
};
break;
case 2:
_keyPressed[2] = true;
break;
case 3:
_keyPressed[3] = true;
break;
case 4:
if (!_keyPressed[4]){
_keyPressed[4] = true;
Melee();
};
break;
case 5:
if (!_keyPressed[5]){
_keyPressed[5] = true;
RangedDown();
};
break;
case 6:
if (!_keyPressed[6]){
_keyPressed[6] = true;
ThrowDown();
};
break;
case 7:
if (!_keyPressed[7]){
_keyPressed[7] = true;
UsePowerup();
};
break;
};
break;
case false:
switch (_arg1){
case 0:
_keyPressed[0] = false;
_keyPressed[8] = false;
break;
case 1:
if (_keyPressed[1]){
_keyPressed[1] = false;
_keyPressed[9] = false;
KneelReleased();
};
break;
case 2:
_keyPressed[2] = false;
break;
case 3:
_keyPressed[3] = false;
break;
case 4:
_keyPressed[4] = false;
break;
case 5:
if (_keyPressed[5]){
_keyPressed[5] = false;
RangedUp();
};
break;
case 6:
if (_keyPressed[6]){
_keyPressed[6] = false;
ThrowUp();
};
break;
case 7:
_keyPressed[7] = false;
break;
};
break;
};
}
private function BotAimY():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
if (_BotState.TargetPlayer == null){
return;
};
if (_BotState.TargetHazardousObject != null){
_local3 = ((PosX() - (_PlayerState.LastDirX * 4)) - (_BotState.TargetHazardousObject.GetPosition().x * 30));
_local4 = ((PosY() - 14) - (_BotState.TargetHazardousObject.GetPosition().y * 30));
} else {
_local3 = ((PosX() - (_PlayerState.LastDirX * 4)) - _BotState.TargetPlayer.MidPosX());
_local7 = -1;
if (Math.abs(_local3) < 100){
if (((((!(_BotState.TargetPlayer.State.Kneeling)) && (!(_BotState.TargetPlayer.State.TakingCover)))) && (!(_BotState.TargetPlayer.State.Knockdowned)))){
_local7 = (_local7 - 2);
};
};
_local4 = ((PosY() - 14) - (_BotState.TargetPlayer.MidPosY() + _local7));
};
_local5 = Math.sqrt((Math.pow(_local3, 2) + Math.pow(_local4, 2)));
if (_BotState.RandomFirePosition){
if (_BotState.Difficulty == BotState.EASY){
_local9 = (16 * (Math.PI / 180));
_local8 = (_local5 * Math.tan(_local9));
if (_local8 > 22){
_local8 = 22;
};
} else {
if (_BotState.Difficulty == BotState.MEDIUM){
_local9 = (11 * (Math.PI / 180));
_local8 = (_local5 * Math.tan(_local9));
if (_local8 > 16){
_local8 = 16;
};
} else {
if (_BotState.Difficulty == BotState.HARD){
_local9 = (6 * (Math.PI / 180));
_local8 = (_local5 * Math.tan(_local9));
if (_local8 > 8){
_local8 = 8;
};
};
};
};
_local10 = ((Math.random() * Math.PI) * 2);
_BotState.RandomFireX = (Math.cos(_local10) * _local8);
_BotState.RandomFireY = (Math.sin(_local10) * _local8);
_BotState.RandomFirePosition = false;
};
_local3 = (_local3 + _BotState.RandomFireX);
_local4 = (_local4 + _BotState.RandomFireY);
if (_PlayerState.LastDirX == -1){
_local1 = (_PlayerState.CurrentAimAngle - 180);
_local2 = (Math.atan2(_local4, _local3) * (180 / Math.PI));
} else {
_local1 = ((Math.atan2(-(_local4), -(_local3)) * (180 / Math.PI)) + 180);
_local2 = (_PlayerState.CurrentAimAngle + 180);
};
_local6 = (Math.atan((5 / _local5)) * (180 / Math.PI));
if (_local4 != 0){
_local11 = (Math.abs(_local3) / Math.abs(_local4));
if (_local11 < 1){
_local6 = (_local6 * _local11);
};
};
if (_local6 < 1.5){
_local6 = 1.5;
};
_BotState.TargetInAim = false;
if ((_local1 + _local6) < _local2){
SetBotKey(1, false);
SetBotKey(0, true);
} else {
if ((_local1 - _local6) > _local2){
SetBotKey(0, false);
SetBotKey(1, true);
} else {
SetBotKey(1, false);
SetBotKey(0, false);
_BotState.TargetInAim = true;
};
};
}
private function CollisionFeetSides(_arg1:Number=0, _arg2:Number=0):Boolean{
var _local3:int;
if (_arg2 == 0){
_arg2 = _PlayerState.PlayerEdgeDistance;
};
_local3 = 2;
while (_local3 <= _arg2) {
if (((_static_world_hitbox_mc.hitTestPoint((_this_x - _local3), (_this_y + _arg1), true)) || (_static_world_hitbox_mc.hitTestPoint((_this_x + _local3), (_this_y + _arg1), true)))){
return (true);
};
if (!_performJumpDownLevel){
if (((_static_world_cloud_hitbox_mc.hitTestPoint((_this_x - _local3), (_this_y + _arg1), true)) || (_static_world_cloud_hitbox_mc.hitTestPoint((_this_x + _local3), (_this_y + _arg1), true)))){
return (true);
};
};
_local3 = (_local3 + 2);
};
return (false);
}
private function BotTargetInMelee():Boolean{
if (_BotState.TargetPlayer == null){
return (false);
};
if (_PlayerState.Jumping){
return (CanKickPlayer(_BotState.TargetPlayer, _PlayerState.Jumping));
};
if (CanKickPlayer(_BotState.TargetPlayer, false)){
return (true);
};
return (InMeleeRange(_BotState.TargetPlayer));
}
private function Dive():void{
if (!CanDive()){
return;
};
KeyTurnPlayer();
if (!_PlayerState.ShortDiveAvailable){
_PlayerState.DiveSpeed = 3.5;
} else {
_PlayerState.DiveSpeed = 1;
};
_Handler_Sounds.PlaySoundAt("JUMP", PosX(), PosY());
_PlayerState.Diving = true;
_PlayerState.Jumping = true;
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (_PlayerState.LastDirX * _PlayerState.DiveSpeed));
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY - 3);
_this_y = (_this_y - 6);
_this_x = (_this_x + _PlayerState.MovingDirectionX);
DrainEnergy("SPRINT_DIVE");
}
private function StaggerCollision(_arg1:int):Boolean{
var _local2:int;
_local2 = 2;
while (_local2 <= 6) {
if (_static_world_hitbox_mc.hitTestPoint((_this_x + ((_local2 - 1) * _arg1)), ((_this_y - 3) - _local2), true)){
_staggerFragileObject = m_world.GetGlassAt((_this_x + ((_local2 - 1) * _arg1)), ((_this_y - 3) - _local2));
if (_staggerFragileObject == null){
return (true);
};
return (false);
};
_local2 = (_local2 + 2);
};
return (false);
}
private function MeleeStrike():void{
var _local1:particle_data;
var _local2:Number;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Array;
var _local7:Array;
var _local8:int;
var _local9:int;
var _local10:Boolean;
var _local11:Array;
var _local12:int;
var _local13:Number;
_Handler_Sounds.PlaySoundAt(_PlayerState.MeleeSwingSound, MidPosX(), MidPosY());
_local1 = new particle_data(_PlayerState.MeleeSwingEffect, _this_x, _this_y);
_local1.ScaleX = _PlayerState.LastDirX;
_Handler_Effects.AddParticle(_local1);
_local3 = (MidPosY() - 4);
_local4 = false;
_local5 = 4;
while (_local5 <= _PlayerState.MeleeWeaponRange) {
_local2 = (MidPosX() + (_PlayerState.LastDirX * _local5));
if (HitTestWorldOnly(_local2, _local3)){
_local4 = true;
_local2 = (MidPosX() + (_PlayerState.LastDirX * (_local5 + 2)));
_local5 = (_PlayerState.MeleeWeaponRange + 1);
};
_local5++;
};
if (_local4){
_Handler_Effects.AddParticle(new particle_data("DUST", _local2, _local3, new b2Vec2(((Math.random() * 4) - 2), (-(Math.random()) * 4))));
_Handler_Effects.AddEffectAt("FIST_IMPACT", _local2, _local3);
};
Kick(true);
_PlayerState.PunchHitPerformed = true;
if (_PlayerState.CurrentMeleeWeapon != null){
DeflectBullets();
};
_local6 = new Array();
_local7 = EnemiesInMeleeRange();
_local8 = 0;
while (_local8 < _local7.length) {
SwapDepths(_local7[_local8]);
_local10 = false;
if (_local7[_local8] > PlayerNr){
if (_players[_local7[_local8]].PunchReady()){
_local11 = _players[_local7[_local8]].EnemiesInMeleeRange();
_local12 = 0;
while (_local12 < _local11.length) {
if (_local11[_local12] == PlayerNr){
_local10 = true;
_local6.push(_local7[_local8]);
};
_local12++;
};
};
};
if (!_local10){
PunchPlayer(_local7[_local8]);
};
_local8++;
};
_local9 = 0;
while (_local9 < _local6.length) {
_local13 = Math.random();
if (_local13 < 0.5){
PunchPlayer(_local6[_local9]);
} else {
_PlayerState.StunTimer = 2;
_PlayerState.StunTimer = 2;
};
_local9++;
};
if (_local7.length > 0){
_Handler_Sounds.PlaySoundAt(_PlayerState.MeleeWeaponHitSound, _this_x, _this_y);
_PlayerAnimation.DelayAnimation(_PlayerState.HitPunchComboFrame, 1);
} else {
if (_button_in_melee_range){
_Handler_Output.Trace("Pressing Button");
_Handler_Sounds.PlaySoundAt(_button_to_activate.GetUserData().buttonData.OnActivationSound, MidPosX(), MidPosY());
_button_to_activate.GetUserData().buttonData.Activate();
};
};
}
private function BotChooseTarget_Tick():void{
BotChooseTarget();
}
private function MovePlayer(_arg1:int, _arg2:Number):void{
var _local3:int;
var _local4:Number;
var _local5:int;
if (!_PlayerState.Staggering){
if (((!(_PlayerState.WallJumping)) && (_PlayerState.Jumping))){
_PlayerState.MovingDirectionX = _arg1;
} else {
if (!_PlayerState.WallJumping){
this.scaleX = _arg1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = this.scaleX;
_PlayerState.MovingDirectionX = _PlayerState.LastDirX;
} else {
_PlayerState.LastDirX = this.scaleX;
_PlayerState.MovingDirectionX = _PlayerState.LastDirX;
};
};
} else {
_PlayerState.MovingDirectionX = -(_PlayerState.LastDirX);
};
if (((_PlayerState.Kneeling) && (!(_PlayerState.Rolling)))){
if (_PlayerState.CanRoll){
Roll();
};
return;
};
_local3 = Math.abs((_arg2 * 10));
_local4 = (_PlayerState.MovingDirectionX * 0.1);
_local5 = 1;
while (_local5 <= _local3) {
if (!WalkCollision(_PlayerState.MovingDirectionX, _PlayerState.Jumping)){
_this_x = (_this_x + (_local4 * _game_speed));
if (_PlayerState.OnGround){
UpdateSimpleGroundMovement(false);
};
} else {
return;
};
_local5++;
};
}
private function CollisionFeetMid(_arg1:Number=0, _arg2:Number=0, _arg3:Boolean=false):Boolean{
if (((_static_world_cloud_hitbox_mc.hitTestPoint(_this_x, (_this_y + _arg1), true)) && (!(_performJumpDownLevel)))){
return (true);
};
if (_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y + _arg1), true)){
return (true);
};
if (_arg2 != 0){
if (((_static_world_cloud_hitbox_mc.hitTestPoint((_this_x + _arg2), (_this_y + _arg1), true)) && (!(_performJumpDownLevel)))){
return (true);
};
if (_static_world_hitbox_mc.hitTestPoint((_this_x + _arg2), (_this_y + _arg1), true)){
return (true);
};
if (((_static_world_cloud_hitbox_mc.hitTestPoint((_this_x - _arg2), (_this_y + _arg1), true)) && (!(_performJumpDownLevel)))){
return (true);
};
if (_static_world_hitbox_mc.hitTestPoint((_this_x - _arg2), (_this_y + _arg1), true)){
return (true);
};
};
return (false);
}
private function TurnLeft():void{
if (_PlayerState.LastDirX == 1){
this.scaleX = -1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = -1;
};
}
private function BotStateFollowPath():void{
var _local1:Boolean;
var _local2:PathResultNode;
var _local3:int;
var _local4:Boolean;
var _local5:PathNode;
var _local6:*;
var _local7:Number;
var _local8:PathNode;
if (_PlayerState.BurnState <= 0){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, false);
};
if (_PlayerState.Aiming){
_BotState.Phase = BotState.AIM;
return;
};
if ((((((_BotState.TargetPlayer == null)) && ((_BotState.TargetWeapon == null)))) && (!(_BotState.RunAwayFromHazards)))){
_BotState.Phase = BotState.IDLE;
BotGoForReset();
return;
};
if (_BotState.Path.length <= 0){
_BotState.RunAwayFromHazards = false;
_BotState.NextResultNode = null;
_local1 = false;
if (!BotState.FOLLOW_ONLY){
if (_BotState.TargetWeapon != null){
BotCalculatePathGrid(_pathGrid.GetNodeAt((_BotState.TargetWeapon.GetPosition().x * 30), (_BotState.TargetWeapon.GetPosition().y * 30)));
if (_BotState.Path.length <= 1){
_BotState.Phase = BotState.GRAB_WEAPON;
SetBotKey(KEY_UP, false);
} else {
_local1 = true;
};
return;
};
if (_BotState.TargetPlayer != null){
BotCalculatePathGrid(_pathGrid.GetNodeAt(_BotState.TargetPlayer.MidPosX(), _BotState.TargetPlayer.MidPosY()));
if (_BotState.Path.length <= 1){
_BotState.Phase = BotState.MELEE;
} else {
_local1 = true;
};
return;
};
};
if (!_local1){
BotGoForReset(true);
return;
};
};
if (_BotState.Path.length > 0){
BotCheckPathProgress();
if (_BotState.Path.length <= 0){
return;
};
_BotState.NextResultNode = _BotState.Path[(_BotState.Path.length - 1)];
if (((((!(_PlayerState.Climbing)) && (!(_BotState.RunAwayFromHazards)))) && (!(BotState.FOLLOW_ONLY)))){
if (BotTargetInMelee()){
if (!BotFacingEdgeMelee()){
_BotState.Phase = BotState.MELEE;
} else {
if (_PlayerState.Jumping){
SetBotKey(KEY_MELEE, true);
SetBotKey(KEY_MELEE, false);
};
};
} else {
if (((((_PlayerState.OnGround) && (_BotState.TargetInSight))) && (!((_PlayerState.CurrentRangeWeapon == null))))){
if (Math.sqrt((Math.pow((_BotState.TargetPlayer.MidPosX() - MidPosX()), 2) + Math.pow((_BotState.TargetPlayer.MidPosY() - MidPosY()), 2))) >= _BotState.FollowToAimMinimumDistance){
_BotState.Phase = BotState.AIM;
return;
};
};
};
};
_local2 = _BotState.NextResultNode;
if (((_BotState.DoFireCheck) && (!(_BotState.RunAwayFromHazards)))){
if (_PlayerState.BurnState <= 0){
if (_Handler_Fires.PlayerPosInFire(_local2.Node.PosX, (_local2.Node.PosY + 4))){
return;
};
};
_BotState.DoFireCheck = false;
};
if (_PlayerState.MovingDirectionInversed != 0){
_BotState.Path.splice((_BotState.Path.length - 1), 1);
_PlayerState.MovingDirectionInversed = 0;
return;
};
_local3 = 0;
if (PosX() > (_local2.Node.PosX + BotState.DISTANCE_WALK_TOLERANCE)){
_local3 = -1;
} else {
if (PosX() < (_local2.Node.PosX - BotState.DISTANCE_WALK_TOLERANCE)){
_local3 = 1;
};
};
BotCheckCover();
_local4 = true;
if (_local2.PrevBind != null){
if (!_local2.PrevBind.TargetNodeCloseEnough()){
_local3 = 0;
if (PosX() > (_local2.PrevBind.SourceNode.PosX + BotState.DISTANCE_WALK_TOLERANCE)){
_local3 = -1;
} else {
if (PosX() < (_local2.PrevBind.SourceNode.PosX - BotState.DISTANCE_WALK_TOLERANCE)){
_local3 = 1;
};
};
if (_local3 == 0){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
} else {
if (_local3 == 1){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, true);
SetBotKey(KEY_RIGHT, false);
};
};
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, false);
return;
};
switch (_local2.PrevBind.MovementType){
case PathBind.ROAD:
break;
case PathBind.JUMP:
if (_local2.Node.PosY < MidPosY()){
BotGoForReset();
};
if (!_PlayerState.Jumping){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
SetBotKey(KEY_UP, false);
};
BotWalkAroundJumpObstalce();
break;
case PathBind.CLOUDDOWN:
_local4 = false;
if (!_keyPressed[KEY_DOWN]){
if (!_PlayerState.Jumping){
if (BotCheckStandingOnObject()){
return;
};
SetBotKey(KEY_DOWN, true);
SetBotKey(KEY_DOWN, false);
SetBotKey(KEY_DOWN, true);
SetBotKey(KEY_DOWN, false);
return;
} else {
SetBotKey(KEY_DOWN, false);
};
};
break;
case PathBind.DIVE:
if (!_PlayerState.Running){
if (_local3 == -1){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, true);
SetBotKey(KEY_RIGHT, false);
};
} else {
if (!_PlayerState.Sprinting){
_BotState.ActivateSprintCounter = (_BotState.ActivateSprintCounter - 1);
if (_BotState.ActivateSprintCounter <= 0){
_BotState.ActivateSprintCounter = 2;
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
return;
};
} else {
if (((!(_PlayerState.Diving)) && (!(_PlayerState.ShortDiveAvailable)))){
SetBotKey(KEY_DOWN, true);
} else {
if (_PlayerState.Diving){
SetBotKey(KEY_DOWN, false);
};
};
};
};
break;
case PathBind.SPRINTJUMP:
if (!_PlayerState.Sprinting){
_BotState.ActivateSprintCounter = (_BotState.ActivateSprintCounter - 1);
if (_BotState.ActivateSprintCounter <= 0){
_BotState.ActivateSprintCounter = 2;
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
return;
};
} else {
if (!_PlayerState.Jumping){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
if (BotObstacleAt(_local3)){
SetBotKey(KEY_MELEE, true);
SetBotKey(KEY_MELEE, false);
};
};
};
break;
case PathBind.ROLL:
SetBotKey(KEY_DOWN, true);
break;
case PathBind.LADDER:
if ((((_local2.Node.PosY < _local2.PrevBind.SourceNode.PosY)) && (!(_local2.PrevBind.Blocked)))){
if (((_PlayerState.Climbing) && (!(_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), (MidPosY() - 1), true))))){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_UP, true);
};
if (_BotState.TargetPlayer != null){
if ((_BotState.TargetPlayer.MidPosY() < MidPosY())){
_local6 = false;
_local7 = Math.abs((MidPosX() - _BotState.TargetPlayer.MidPosX()));
if (_local7 < 35){
if (_PlayerState.Climbing){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, true);
} else {
BotGoForReset(true);
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, false);
return;
};
};
};
};
SetBotKey(KEY_UP, true);
_local5 = _local2.PrevBind.SourceNode;
if ((_local2.Node.PosY - MidPosY()) >= BotState.DISTANCE_LADDER_TOLERANCE_Y){
_local5 = _local2.Node;
};
if (PosX() > (_local5.PosX + BotState.DISTANCE_LADDER_TOLERANCE_X)){
SetBotKey(KEY_LEFT, true);
SetBotKey(KEY_RIGHT, false);
} else {
if (PosX() < (_local5.PosX - BotState.DISTANCE_LADDER_TOLERANCE_X)){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
};
};
return;
} else {
_local8 = _local2.Node;
SetBotKey(KEY_DOWN, true);
if (PosX() > (_local8.PosX + BotState.DISTANCE_LADDER_TOLERANCE_X)){
SetBotKey(KEY_LEFT, true);
SetBotKey(KEY_RIGHT, false);
} else {
if (PosX() < (_local8.PosX - BotState.DISTANCE_LADDER_TOLERANCE_X)){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, false);
};
};
if (((_PlayerState.OnGround) && (_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), (MidPosY() - 1), true)))){
BotGoForReset();
};
return;
};
};
} else {
BotGoForReset();
};
if ((((((_PlayerState.AirVelocityY >= 0)) && (!(_PlayerState.OnGround)))) && (_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), (MidPosY() - 1), true)))){
SetBotKey(KEY_DOWN, true);
SetBotKey(KEY_UP, false);
return;
};
if (_local4){
if (((((BotCloudAbove()) && (_PlayerState.OnGround))) && ((Math.random() < 0.5)))){
if (BotObstacleAt(_local3)){
if (((_BotState.PreferJumpOverObstacle) && (!(_PlayerState.Jumping)))){
SetBotKey(KEY_UP, true);
SetBotKey(KEY_UP, false);
} else {
SetBotKey(KEY_MELEE, true);
SetBotKey(KEY_MELEE, false);
};
};
} else {
BotCheckObstacle(_local3);
};
};
if (_PlayerState.Climbing){
SetBotKey(KEY_DOWN, true);
SetBotKey(KEY_UP, false);
return;
};
if (_local3 == -1){
SetBotKey(KEY_LEFT, true);
SetBotKey(KEY_RIGHT, false);
} else {
if (_local3 == 1){
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_RIGHT, true);
} else {
if ((MidPosY() - _local2.Node.PosY) >= 22){
_BotState.NextResultNode = null;
BotChooseTarget();
} else {
if (((_PlayerState.OnGround) || (_PlayerState.Climbing))){
if ((MidPosY() - _local2.Node.PosY) >= 0){
if (!_PlayerState.Jumping){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_UP, true);
};
} else {
BotCheckStandingOnObject();
};
BotGoForReset();
};
};
};
};
};
}
private function BotStateGrabWeapon():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Boolean;
if (_BotState.TargetWeapon == null){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_DOWN, false);
SetBotKey(KEY_MELEE, false);
BotGoForReset(true);
_BotState.Phase = BotState.IDLE;
return;
};
_local1 = ((_BotState.TargetWeapon.GetPosition().x * 30) - MidPosX());
_local2 = ((_BotState.TargetWeapon.GetPosition().y * 30) - MidPosY());
_local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2)));
_local4 = 2;
if (_PlayerState.OnGround){
_local4 = (_BotState.TargetWeapon.GetUserData().weaponData.Properties.PickupRadius * 0.5);
};
SetBotKey(KEY_UP, false);
_local5 = false;
if (_local1 > _local4){
SetBotKey(KEY_RIGHT, true);
SetBotKey(KEY_LEFT, false);
BotCheckObstacle((_local1 / Math.abs(_local1)));
} else {
if (_local1 < -(_local4)){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, true);
BotCheckObstacle((_local1 / Math.abs(_local1)));
} else {
_local5 = true;
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
if (_PlayerState.OnGround){
if (BotCheckStandingOnObject()){
return;
};
};
};
};
if (_PlayerState.Climbing){
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, true);
return;
};
if (_PlayerState.OnGround){
if (_local3 <= (_BotState.TargetWeapon.GetUserData().weaponData.Properties.PickupRadius * 0.7)){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
if (!_PlayerState.Kneeling){
DisableJumpDownLevel();
SetBotKey(KEY_DOWN, true);
return;
};
SetBotKey(KEY_MELEE, true);
BotGoForReset();
} else {
if (_local5){
SetBotKey(KEY_RIGHT, false);
SetBotKey(KEY_LEFT, false);
SetBotKey(KEY_DOWN, false);
SetBotKey(KEY_MELEE, false);
BotGoForReset(true);
_BotState.Phase = BotState.IDLE;
return;
};
};
};
}
private function BotFacingEdgeMelee(_arg1:int=1):Boolean{
return (DetectEdge((_PlayerState.LastDirX * _arg1), 18, true));
}
public function get PortalDirectionX():int{
return (_PlayerState.PortalDirectionX);
}
private function Kick(_arg1:Boolean=false, _arg2:Boolean=false):Boolean{
var _local3:Boolean;
var _local4:Number;
var _local5:b2Body;
var _local6:int;
var _local7:Boolean;
var _local8:*;
var _local9:b2Vec2;
var _local10:b2Vec2;
var _local11:Number;
var _local12:Number;
var _local13:int;
if (((!(_arg1)) && (!(_arg2)))){
if (_PlayerState.KickingCooldown > 0){
return (false);
};
};
_local3 = false;
_local6 = 0;
while (_local6 < m_world.DynamicObjectList.length) {
_local5 = m_world.DynamicObjectList[_local6];
if (_local5.m_userData.objectData.Kickable){
if (KickHit(_local5, _arg1, _arg2)){
if (_local5.m_userData.objectData.KickPower == 0){
if (_local5.m_userData.objectData.KickWeightCalculation){
_local4 = (_PlayerState.KickPower * _local5.GetMass());
} else {
_local4 = _PlayerState.KickPower;
};
} else {
if (_local5.m_userData.objectData.KickWeightCalculation){
_local4 = (_local5.m_userData.objectData.KickPower * _local5.GetMass());
} else {
_local4 = _local5.m_userData.objectData.KickPower;
};
};
_local9 = new b2Vec2((_PlayerState.LastDirX * _local4), -(_local4));
_local10 = _local5.GetPosition();
_local5.ApplyImpulse(_local9, _local10);
_local10 = new b2Vec2(((_this_x + (_PlayerState.LastDirX * 4)) / 30), ((_this_y - 4) / 30));
if (_local5.GetMass() < 1){
_local9 = new b2Vec2(0, (-0.4 * _local5.GetMass()));
} else {
_local9 = new b2Vec2(0, -0.4);
};
_local5.ApplyImpulse(_local9, _local10);
_local11 = (_local5.GetPosition().x * 30);
if (Math.abs((_this_x - _local11)) > _PlayerState.MeleeWeaponRange){
_local11 = (MidPosX() + (_PlayerState.LastDirX * _PlayerState.MeleeWeaponRange));
};
if (_arg1){
_local5.GetUserData().objectData.Damage_Impact(_PlayerState.HitPunchDamage);
_Handler_Sounds.PlaySoundAt(_PlayerState.GetMeleeMaterialHitSound(_local5.GetUserData().material.Type), MidPosX(), MidPosY());
_local12 = 4;
while (_local12 <= _PlayerState.MeleeWeaponRange) {
if (_local5.m_userData.objectData.ShapeMC.hitTestPoint((MidPosX() + (_PlayerState.LastDirX * _local12)), (_this_y - 12), true)){
_local11 = (MidPosX() + (_PlayerState.LastDirX * _local12));
_local12 = (_PlayerState.MeleeWeaponRange + 1);
};
_local12++;
};
_Handler_Effects.AddEffectAt("FIST_IMPACT", _local11, (_this_y - 12));
_Handler_Effects.AddEffectAt(_PlayerState.GetMeleeMaterialHitEffect(_local5.GetUserData().material.Type), _local11, (_this_y - 12));
} else {
if (_arg2){
_local5.GetUserData().objectData.Damage_Impact(_PlayerState.JumpKickDamage);
} else {
_local5.GetUserData().objectData.Damage_Impact(_PlayerState.KickDamage);
};
_Handler_Sounds.PlaySoundAt(_PlayerState.GetKickMaterialHitSound(_local5.GetUserData().material.Type), MidPosX(), MidPosY());
_local12 = 4;
while (_local12 <= _PlayerState.MeleeWeaponRange) {
if (_local5.m_userData.objectData.ShapeMC.hitTestPoint((MidPosX() + (_PlayerState.LastDirX * _local12)), (_this_y - 6), true)){
_local11 = (MidPosX() + (_PlayerState.LastDirX * _local12));
_local12 = (_PlayerState.MeleeWeaponRange + 1);
};
_local12++;
};
_Handler_Effects.AddEffectAt(_PlayerState.GetKickMaterialHitEffect(_local5.GetUserData().material.Type), _local11, (_this_y - 6));
_Handler_Effects.AddEffectAt("KICK_IMPACT", _local11, (_this_y - 6));
_local3 = true;
};
};
};
_local6++;
};
if (_local3){
if (_arg1){
_local13 = 1;
while (_local13 <= 2) {
_Handler_Effects.AddParticle(new particle_data("DUST", (_this_x + (_PlayerState.LastDirX * (6 + (Math.random() * 2)))), ((_this_y - 10) - (Math.random() * 2)), new b2Vec2(((_PlayerState.LastDirX * Math.random()) * 4), (-(Math.random()) * 4))));
_local13++;
};
} else {
_local13 = 1;
while (_local13 <= 2) {
_Handler_Effects.AddParticle(new particle_data("DUST", (_this_x + (_PlayerState.LastDirX * (6 + (Math.random() * 2)))), ((_this_y - 3) - (Math.random() * 2)), new b2Vec2(((_PlayerState.LastDirX * Math.random()) * 4), (-(Math.random()) * 4))));
_local13++;
};
};
};
if (_arg1){
return (false);
};
_local7 = false;
_local8 = 0;
while (_local8 < _players.length) {
if (_local8 != PlayerNr){
if (Team != _players[_local8].Team){
if (CanKickPlayer(_players[_local8], _arg2)){
_local7 = true;
SwapDepths(_local8);
if (_players[_local8].State.HP > 0){
if (_arg2){
_players[_local8].State.HP = (_players[_local8].State.HP - _PlayerState.JumpKickDamage);
} else {
_players[_local8].State.HP = (_players[_local8].State.HP - _PlayerState.KickDamage);
};
if (_players[_local8].State.HP <= 0){
if (ActivateSlowmotion(_local8)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
_players[_local8].BeingKicked(_PlayerState.LastDirX);
} else {
_players[_local8].BeingKicked(_PlayerState.LastDirX, _arg2);
};
} else {
_players[_local8].BeingKicked(_PlayerState.LastDirX);
};
};
};
};
_local8++;
};
if (_local7){
_Handler_Sounds.PlaySoundAt("kick", _this_x, _this_y);
_Handler_Effects.AddEffectAt("KICK_IMPACT", (_this_x + (_PlayerState.LastDirX * 6)), (_this_y - 2));
};
if (((_local3) || (_local7))){
_PlayerAnimation.ShowAnimation("kick", true);
_PlayerState.Kicking = true;
if (((!(_arg1)) && (!(_arg2)))){
_Handler_Sounds.PlaySoundAt("KICK_SWING", PosX(), PosY());
};
return (true);
//unresolved jump
};
return (false);
}
public function StuckToProjectile(_arg1:ProjectileData):void{
if (!_PlayerState.StuckToRocket){
DropGrabbedPlayer();
Disarm();
CancelAFS();
_PlayerState.StuckToRocket = true;
_PlayerState.BurnState = 0;
};
_PlayerState.LastDirX = 1;
this.scaleX = 1;
_collision_mc.scaleX = 1;
_PlayerState.RocketRideTimer = 0;
_PlayerState.RocketRideProjectile = _arg1;
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, 12, 6, 0.01));
}
public function ActivateSlowmotion(_arg1:Number):Boolean{
var _local2:int;
var _local3:Array;
var _local4:int;
var _local5:Boolean;
var _local6:int;
_local2 = 0;
_local3 = new Array();
_local4 = 0;
while (_local4 < _players.length) {
if (_players[_local4].State.HP > 0){
if (_players[_local4].Team != _players[_arg1].Team){
_local5 = false;
_local6 = 0;
while (_local6 < _local3.length) {
if (_local3[_local6] == _players[_local4].Team){
_local5 = true;
_local6 = _local3.length;
};
_local6++;
};
if (!_local5){
_local2++;
_local3.push(_players[_local4].Team);
if (_local2 >= 2){
return (false);
};
};
} else {
if (_playerNr != _local4){
return (false);
};
};
};
_local4++;
};
return (true);
}
private function DrainEnergy(_arg1:String):void{
switch (_arg1){
case "SPRINT_JUMP":
_PlayerState.SprintEnergy = (_PlayerState.SprintEnergy - 12);
break;
case "JUMP":
_PlayerState.SprintEnergy = (_PlayerState.SprintEnergy - 5);
break;
case "SPRINT_DIVE":
_PlayerState.SprintEnergy = (_PlayerState.SprintEnergy - 12);
break;
case "ROLL":
_PlayerState.SprintEnergy = (_PlayerState.SprintEnergy - 5);
break;
};
}
public function get Team():int{
return (_team);
}
private function BotStandingOnObjectAtX(_arg1:Number):Boolean{
var _local2:Number;
_local2 = 0;
while (_local2 <= 2) {
if (_static_objects_hitbox_mc.hitTestPoint((_this_x + _arg1), (_this_y + _local2), true)){
return (true);
};
_local2 = (_local2 + 2);
};
return (false);
}
public function GiveStartItems(_arg1:WeaponData=null, _arg2:WeaponThrowableData=null, _arg3:WeaponMeleeData=null, _arg4:WeaponPowerupData=null):void{
_PlayerState.CurrentRangeWeapon = _arg1;
_PlayerState.CurrentThrowableWeapon = _arg2;
_PlayerState.CurrentMeleeWeapon = _arg3;
_PlayerState.CurrentPowerupWeapon = _arg4;
}
private function UpdateStairBounce():void{
if (_PlayerState.StairBounce){
_PlayerState.AirVelocityX = _PlayerState.StairVelocityX;
_PlayerState.AirVelocityY = _PlayerState.StairVelocityY;
_Handler_Sounds.PlaySoundAt("STAIRBOUNCE", _this_x, _this_y);
_PlayerState.Knockdowned = false;
_PlayerState.Jumping = true;
_PlayerState.Falling = true;
_PlayerState.StairBounce = false;
_PlayerState.DecreaseBurnState();
if (_PlayerState.HP > 0){
_PlayerState.HP = (_PlayerState.HP - _PlayerState.StairBounceDamage);
if (_PlayerState.HP <= 0){
if (ActivateSlowmotion(PlayerNr)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
};
};
};
}
private function UpdateSides(_arg1:Boolean=true):void{
var _local2:Boolean;
var _local3:Boolean;
var _local4:int;
var _local5:b2Vec2;
var _local6:int;
if (CanLandInMid()){
_local4 = (-(_PlayerState.PlayerEdgeDistance) - 1);
while (_local4 <= (_PlayerState.PlayerEdgeDistance + 1)) {
b = GetDynamicBodyAt((_this_x + _local4), (_this_y - _PlayerState.PlayerHeight), false);
if (b != null){
if (b.GetUserData().objectData.CanGibb){
_local5 = b.GetLinearVelocity();
if (Math.abs(_local5.x) > 0.1){
if (CheckCollisionTowardsPlayer((b.GetPosition().x * 30), _this_x, ConvertToDirection(_local5.x))){
return;
};
};
};
};
_local4 = (_local4 + (_PlayerState.PlayerEdgeDistance + 1));
};
};
_local2 = CollisionSide(1);
_local3 = CollisionSide(-1);
if (((_local2) || (_local3))){
_local6 = 1;
while (_local6 <= (_PlayerState.PlayerEdgeDistance * 10)) {
_local2 = CollisionSide(1, (_local6 / 10));
_local3 = CollisionSide(-1, (_local6 / 10));
if (!((_local3) && (_local2))){
if (_local2){
if (!WorldCollisionSide(-1, _PlayerState.PlayerEdgeDistance)){
_this_x = (_this_x - 0.1);
if (_arg1){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX - 0.02);
};
} else {
_this_x = (_this_x + 0.1);
if (_arg1){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + 0.02);
};
};
} else {
if (_local3){
if (!WorldCollisionSide(1, _PlayerState.PlayerEdgeDistance)){
_this_x = (_this_x + 0.1);
if (_arg1){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + 0.02);
};
} else {
_this_x = (_this_x - 0.1);
if (_arg1){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX - 0.02);
};
};
};
};
};
_local6++;
};
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX * 0.9);
};
}
private function MoveDirection(_arg1:int):void{
if (_PlayerState.TakingCover){
if (_PlayerState.LastDirX != _arg1){
_PlayerState.TakingCover = false;
} else {
_PlayerState.Running = false;
return;
};
};
if (((!(_PlayerState.Running)) && (_PlayerState.OnGround))){
if (CanTakeCover(_arg1)){
_PlayerState.TakingCover = true;
b = GetDynamicBodyAt(((_this_x + (_arg1 * _PlayerState.PlayerEdgeDistance)) + (_arg1 * 4)), MidPosY(), false);
if (b != null){
_PlayerState.Box2DCover = b;
_PlayerState.CoverObjectID = b.GetUserData().IDNumber;
} else {
b = GetStaticCoverAt(((_this_x + (_arg1 * _PlayerState.PlayerEdgeDistance)) + (_arg1 * 4)), MidPosY());
if (b != null){
_PlayerState.Box2DCover = null;
_PlayerState.CoverObjectID = b.GetUserData().IDNumber;
};
};
};
};
_PlayerState.Running = true;
if (_PlayerState.WallJumping){
MovePlayer(_arg1, ((_PlayerState.WallJumpSpeed * _arg1) + _PlayerState.LastDirX));
} else {
MovePlayer(_arg1, (_PlayerState.RunSpeed * _arg1));
};
}
private function StopStaggerFunc():void{
if (_PlayerState.HP <= 0){
Fall(false);
return;
};
b = m_world.GetStairBodyAt(_this_x, (_this_y + 2));
if (b == null){
b = m_world.GetStairBodyAt(_this_x, (_this_y + 4));
};
if (b != null){
if (CanBounceAtDirection(ConvertToDirection(b.GetUserData().tiltValue))){
Fall(false);
_PlayerState.StairBounce = true;
if (_PlayerState.StairVelocityY < -4){
_PlayerState.StairVelocityY = -4;
} else {
if (_PlayerState.StairVelocityY > -1){
_PlayerState.StairVelocityY = -1;
};
};
_PlayerState.StairVelocityX = b.GetUserData().tiltValue;
};
};
}
private function AimIdle():void{
_PlayerState.ResetChangePitchSpeed();
}
private function PlayerOutsideLevel():Boolean{
if ((((((_this_x < _MapArea.Left)) || ((_this_x > _MapArea.Right)))) || ((_this_y > _MapArea.Bottom)))){
return (true);
};
return (false);
}
private function AimUp(_arg1:Number=0):void{
if (_PlayerState.CurrentAimPitch > -(_PlayerState.UpperAimPitch)){
if (_arg1 != 0){
_PlayerState.CurrentChangePitchSpeed = -(_arg1);
};
if (_PlayerState.CurrentChangePitchSpeed > 0){
_PlayerState.CurrentChangePitchSpeed = 0;
};
_PlayerState.CurrentAimPitch = (_PlayerState.CurrentAimPitch + (_PlayerState.CurrentChangePitchSpeed * _game_speed));
_PlayerState.CurrentChangePitchSpeed = (_PlayerState.CurrentChangePitchSpeed - 2);
if (_PlayerState.CurrentAimPitch < -(_PlayerState.UpperAimPitch)){
_PlayerState.CurrentAimPitch = -(_PlayerState.UpperAimPitch);
};
};
}
public function GibPlayer():void{
if (ActivateSlowmotion(PlayerNr)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
Disarm();
CancelAFS();
_Handler_Maps.Handler_WorldItems.AddBox("char_gib_01", (((_this_x + (Math.random() * 8)) - 4) / 30), ((_this_y - 1) / 30), (Math.random() * Math.PI), new b2Vec2(((Math.random() * 6) - 3), ((-(Math.random()) * 4) + 3)), ((Math.random() * Math.PI) - (Math.PI / 2)));
_Handler_Maps.Handler_WorldItems.AddBox("char_gib_02", (((_this_x + (Math.random() * 8)) - 4) / 30), ((_this_y - 2) / 30), (Math.random() * Math.PI), new b2Vec2(((Math.random() * 6) - 3), ((-(Math.random()) * 4) + 3)), ((Math.random() * Math.PI) - (Math.PI / 2)));
_Handler_Maps.Handler_WorldItems.AddBox("char_gib_03", (((_this_x + (Math.random() * 8)) - 4) / 30), ((_this_y - 5) / 30), (Math.random() * Math.PI), new b2Vec2(((Math.random() * 6) - 3), ((-(Math.random()) * 4) + 3)), ((Math.random() * Math.PI) - (Math.PI / 2)));
_Handler_Maps.Handler_WorldItems.AddBox("char_gib_04", (((_this_x + (Math.random() * 8)) - 4) / 30), ((_this_y - 7) / 30), (Math.random() * Math.PI), new b2Vec2(((Math.random() * 6) - 3), ((-(Math.random()) * 4) + 3)), ((Math.random() * Math.PI) - (Math.PI / 2)));
_Handler_Maps.Handler_WorldItems.AddBox("char_gib_05", (((_this_x + (Math.random() * 8)) - 4) / 30), ((_this_y - 8) / 30), (Math.random() * Math.PI), new b2Vec2(((Math.random() * 6) - 3), ((-(Math.random()) * 4) + 3)), ((Math.random() * Math.PI) - (Math.PI / 2)));
_Handler_Effects.AddEffectAt("gib", _this_x, _this_y);
_Handler_Sounds.PlaySoundAt("gib", _this_x, _this_y);
IgnorePlayer();
_PlayerState.CameraIgnoreTimer = (24 * 2);
_PlayerState.Gone = true;
if (_PlayerAnimation.UseGUI){
_char_gui.visible = false;
_blood_gui.visible = false;
_gui_mc.gib_pic.alpha = 1;
};
_PlayerState.BurnState = 0;
_Handler_Output.Trace("Gib player");
}
private function CheckGibPlayer():Boolean{
var _local1:int;
if (((_PlayerState.OnGround) && (_PlayerState.Knockdowned))){
b = GetDynamicBodyAt(_this_x, (_this_y - 6), false);
if (b != null){
if (b.GetUserData().objectData.CanGibb){
_local1 = 4;
while (_local1 >= 1) {
if (((_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y + _local1), true)) || (_static_world_cloud_hitbox_mc.hitTestPoint(_this_x, (_this_y + _local1), true)))){
if (!b.GetUserData().objectData.CollisionMC.hitTestPoint(_this_x, (_this_y + _local1), true)){
GibPlayer();
return (true);
};
};
_local1--;
};
};
};
};
return (false);
}
public function get CanBePunched():Boolean{
if (_PlayerState.IsImmune){
return (false);
};
if (_PlayerState.Gone){
return (false);
};
if ((((_PlayerState.KnockdownGrade >= 3)) && (_PlayerState.Falling))){
return (false);
};
if (((_PlayerState.Knockdowned) && (_PlayerState.OnGround))){
if (_PlayerAnimation.CurrentFrame < 10){
return (false);
};
};
return (!(_PlayerState.GrabbedByPlayer));
}
private function UpdatePlayerFallingOnPlayer():void{
var _local1:*;
var _local2:Number;
var _local3:Number;
var _local4:Number;
if ((((_PlayerState.TotalAirVelocity >= 6)) && (_PlayerState.Falling))){
_local1 = 0;
while (_local1 < _players.length) {
if (_local1 != PlayerNr){
if (_players[_local1].CanBeKnockedByFlyingPlayer()){
if (this.hitTestObject(_players[_local1].MC)){
_local2 = (_players[_local1].MidPosX() - MidPosX());
_local3 = (_players[_local1].MidPosY() - MidPosY());
if (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))) <= 12){
_local4 = _players[_local1].State.AirVelocityY;
_players[_local1].State.AirVelocityY = (_PlayerState.AirVelocityY * 0.9);
_PlayerState.AirVelocityY = (_local4 * 0.9);
_local4 = _players[_local1].State.AirVelocityX;
_players[_local1].State.AirVelocityX = (_PlayerState.AirVelocityX * 0.9);
_PlayerState.AirVelocityX = (_local4 * 0.9);
_players[_local1].Fall(false);
};
};
};
};
_local1++;
};
};
}
private function SidewayBounce():Boolean{
var _local1:Number;
if ((((Math.abs(_PlayerState.AirVelocityX) >= 4)) && ((Math.abs(_PlayerState.AirVelocityX) > Math.abs(_PlayerState.AirVelocityY))))){
_Handler_Sounds.PlaySoundAt("BODYFALL", _this_x, _this_y);
BodyDust();
_local1 = _PlayerState.TotalAirVelocity;
_PlayerState.AirVelocityY = (-(_local1) * 0.3);
_PlayerState.AirVelocityX = ((_local1 * 0.5) * ConvertToDirection(_PlayerState.AirVelocityX));
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
if (_PlayerState.AirVelocityY > -2){
_PlayerState.AirVelocityY = -2;
};
return (true);
};
return (false);
}
public function MidPosY():Number{
if (_PlayerState.Diving){
return (_this_y);
};
if (_PlayerState.Knockdowned){
return ((_this_y - 3));
};
if (((_PlayerState.Kneeling) || (_PlayerState.Falling))){
return ((_this_y - 6));
};
return ((_this_y - 8));
}
private function CheckCollisionTowardsPlayer(_arg1:Number, _arg2:Number, _arg3:int):Boolean{
if ((((_arg3 == 1)) && ((_arg1 < (_arg2 + 4))))){
return (true);
};
if ((((_arg3 == -1)) && ((_arg1 > (_arg2 - 4))))){
return (true);
};
return (false);
}
private function AimLeft():void{
if (_PlayerState.LastDirX == 1){
_PlayerState.FastTrigger = false;
_lazer_mc.visible = false;
_aim_mc.visible = false;
CancelAFS();
_PlayerState.AimTurningAround = true;
this.scaleX = -1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = -1;
_PlayerState.CurrentAimPitch = 0;
_PlayerState.CurrentChangePitchSpeed = 0;
};
}
private function BeingKicked(_arg1:int, _arg2:Boolean=false):void{
var _local3:int;
DropGrabbedPlayer();
_local3 = _PlayerState.LastDirX;
_PlayerState.LastDirX = -(_arg1);
CheckAimDrop(true);
if (!_PlayerState.Burned){
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", PosX(), (PosY() - 13), new b2Vec2(_arg1, -0.5), 0, 1, [Math.floor((Math.random() * 1.99))]));
} else {
_Handler_Effects.AddEffectAt("PLAYER_BURNED_HITDEFAULT", PosX(), (PosY() - 13));
};
if ((((Math.random() < 0.5)) || (!(_arg2)))){
_PlayerState.LastDirX = _local3;
Fall();
} else {
this.scaleX = _PlayerState.LastDirX;
StartStagger();
};
_PlayerState.AirVelocityX = (_arg1 * 4);
_PlayerState.AirVelocityY = -2;
}
public function BulletWillHit():Boolean{
if (_PlayerState.IsImmune){
return (false);
};
if (((_PlayerState.Rolling) || (_PlayerState.Diving))){
if (Math.random() < 0.9){
return (false);
};
};
return (true);
}
private function AimLazer():void{
var _local1:Number;
var _local2:Number;
var _local3:Point;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Array;
var _local8:int;
if (_char.ANIM_WPN == null){
return;
};
if (!_bot){
_local1 = ((_char.ANIM_WPN.x * _PlayerState.LastDirX) + PosX());
_local2 = (_char.ANIM_WPN.y + PosY());
_local1 = (_local1 + (Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.AIM_POSITION.x));
_local2 = (_local2 + (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.AIM_POSITION.x));
_local2 = (_local2 + ((Math.sin(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.AIM_POSITION.y) * _PlayerState.LastDirX));
_local1 = (_local1 + ((Math.cos(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.AIM_POSITION.y) * _PlayerState.LastDirX));
_local3 = _Handler_ProjectilesUpdater.CalculateAimSquare(new Point(_local1, _local2), _PlayerState.CurrentAimAngle, _PlayerState.CoverObjectID, AIM_SQUARE_DISTANCE, CollisionMC);
_aim_mc.x = _local3.x;
_aim_mc.y = _local3.y;
_aim_mc.visible = true;
};
if (_PlayerState.AimMode == 0){
if (_PlayerState.CurrentRangeWeapon.Properties.LaserSight){
ClearLazerPoints();
_local4 = ((_char.ANIM_WPN.x * _PlayerState.LastDirX) + PosX());
_local5 = (_char.ANIM_WPN.y + PosY());
_local4 = (_local4 + (Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.LAZER_CENTER.x));
_local5 = (_local5 + (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.LAZER_CENTER.x));
_local5 = (_local5 + ((Math.sin(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.LAZER_CENTER.y) * _PlayerState.LastDirX));
_local4 = (_local4 + ((Math.cos(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.LAZER_CENTER.y) * _PlayerState.LastDirX));
_lazer_rnd = ((Math.random() * Math.PI) * 2);
_local6 = (Math.sin(_lazer_rnd) * _PlayerState.CurrentRangeWeapon.Properties.LaserDeflection);
_local7 = _Handler_ProjectilesUpdater.CalculateLazer(new Point(_local4, _local5), (_PlayerState.CurrentAimAngle + _local6), _PlayerState.CoverObjectID, CollisionMC);
_local8 = 0;
while (_local8 < _local7.length) {
AddLazerPoint(_local7[_local8]);
_local8++;
};
_lazer_mc.visible = true;
};
};
}
public function MidPosX():Number{
return (_this_x);
}
private function DropThrowable():void{
var _local1:Number;
var _local2:Number;
if (_PlayerState.Throwing){
_PlayerState.Aiming = false;
_PlayerState.Throwing = false;
return;
};
_local1 = ((MidPosX() - (_PlayerState.LastDirX * 6)) / 30);
_local2 = ((MidPosY() - 6) / 30);
_Handler_Maps.Handler_WorldItems.AddPolygon((_PlayerState.CurrentThrowableWeapon.Properties.ThrowType + "_thrown"), _local1, _local2, 0, new b2Vec2(), (_PlayerState.LastDirX * 10), [_PlayerState.ThrowTimer]);
_PlayerState.Aiming = false;
_PlayerState.Throwing = false;
_PlayerState.ThrowTimer = 0;
_PlayerState.CurrentThrowableWeapon.Ammo = (_PlayerState.CurrentThrowableWeapon.Ammo - 1);
}
private function UsePowerup():void{
if (_PlayerState.HP <= 0){
return;
};
if (_PlayerState.CurrentPowerupWeapon != null){
_PlayerState.SlowmotionDelay = 24;
_Handler_Output.Trace((("Activating Slowmotion (" + _PlayerState.CurrentPowerupWeapon.Ammo) + ")"));
_slowmotion_timer = ((24 * _PlayerState.CurrentPowerupWeapon.Ammo) + (24 * 2));
_slowmotion_modifier = 1.2;
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * _PlayerState.CurrentPowerupWeapon.Ammo), (24 * 1), 0.2), true, PlayerNr);
_PlayerState.CurrentPowerupWeapon = null;
UpdateGUI();
} else {
if (_PlayerState.SlowmotionDelay <= 0){
_Handler_Slowmo.RemoveSlowmotion(PlayerNr);
};
};
}
private function CollisionFeetBothSides():Boolean{
var _local1:int;
_local1 = 2;
while (_local1 <= _PlayerState.PlayerEdgeDistance) {
if (((((_static_world_cloud_hitbox_mc.hitTestPoint((_this_x - _local1), _this_y, true)) && (_static_world_cloud_hitbox_mc.hitTestPoint((_this_x + _local1), _this_y, true)))) && (!(_performJumpDownLevel)))){
return (true);
};
if (((_static_world_hitbox_mc.hitTestPoint((_this_x - _local1), _this_y, true)) && (_static_world_hitbox_mc.hitTestPoint((_this_x + _local1), _this_y, true)))){
return (true);
};
_local1 = (_local1 + 2);
};
return (false);
}
public function set ShowBars(_arg1:Boolean):void{
if (_arg1){
_PlayerBars.Show();
} else {
_PlayerBars.Hide();
};
}
private function CollisionFeetMidUp(_arg1:Number=0, _arg2:Number=0):Boolean{
if (((CloudCollisionUp(_this_x, (_this_y + _arg1), true)) && (!(_performJumpDownLevel)))){
return (true);
};
if (_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y + _arg1), true)){
return (true);
};
if (_arg2 != 0){
if (((CloudCollisionUp((_this_x + _arg2), (_this_y + _arg1), true)) && (!(_performJumpDownLevel)))){
return (true);
};
if (_static_world_hitbox_mc.hitTestPoint((_this_x + _arg2), (_this_y + _arg1), true)){
return (true);
};
if (((CloudCollisionUp((_this_x - _arg2), (_this_y + _arg1), true)) && (!(_performJumpDownLevel)))){
return (true);
};
if (_static_world_hitbox_mc.hitTestPoint((_this_x - _arg2), (_this_y + _arg1), true)){
return (true);
};
};
return (false);
}
private function GetDynamicBodyAt(_arg1:Number, _arg2:Number, _arg3:Boolean):b2Body{
if (_static_objects_hitbox_mc.hitTestPoint(_arg1, _arg2, true)){
return (m_world.GetDynamicBodyAt(_arg1, _arg2, _arg3));
};
return (null);
}
private function AddLazerPoint(_arg1:Point):void{
var _local2:MovieClip;
var _local3:Number;
_local2 = new lazersight();
_local2.x = _arg1.x;
_local2.y = _arg1.y;
_local2.alpha = 0.7;
_local3 = (0.7 + (0.7 / _dynamic_mc.scaleX));
_local2.scaleX = _local3;
_local2.scaleY = _local3;
_lazer_mc.addChild(_local2);
}
private function WeaponEmptyRecoil():void{
var _local1:Number;
var _local2:Number;
if (_PlayerState.EmptyWeaponRecoilBack <= 0){
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentRangeWeapon.Properties.EmptySound, PosX(), PosY());
_PlayerState.CharAnimWpnX = _char.ANIM_WPN.x;
_PlayerState.CharAnimWpnY = _char.ANIM_WPN.y;
_local1 = _PlayerState.CharAnimWpnX;
_local2 = _PlayerState.CharAnimWpnY;
_local1 = (_local1 - ((Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * 0.5) * _PlayerState.LastDirX));
_local2 = (_local2 - (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * 0.5));
_char.ANIM_WPN.x = _local1;
_char.ANIM_WPN.y = _local2;
_PlayerState.EmptyWeaponRecoilBack = 2;
};
}
private function CanBounceAtDirection(_arg1:Number):Boolean{
var _local2:int;
var _local3:int;
_local2 = 2;
while (_local2 <= 12) {
_edgePosition = (_this_x + (_arg1 * _local2));
_local3 = 2;
while (_local3 <= 20) {
if (_static_world_hitbox_mc.hitTestPoint(_edgePosition, (_this_y - _local3), true)){
return (false);
};
_local3 = (_local3 + 4);
};
_local2 = (_local2 + 2);
};
return (true);
}
private function BotStateShoot():void{
if (_PlayerState.AFSInProgress){
if (_char.ANIM_WPN == null){
_BotState.Phase = BotState.CANCEL_AIM;
} else {
SetBotKey(5, true);
BotAimY();
};
} else {
if (_PlayerState.CurrentRangeWeapon != null){
if (_PlayerState.CurrentRangeWeapon.Ammo <= 0){
_BotState.Phase = BotState.CANCEL_AIM;
} else {
if (_BotState.CancelAimSoon){
_BotState.Phase = BotState.CANCEL_AIM;
} else {
SetBotKey(KEY_UP, false);
SetBotKey(KEY_DOWN, false);
_BotState.Phase = BotState.AIM;
};
};
} else {
_BotState.Phase = BotState.CANCEL_AIM;
};
};
}
public function get AreaMC():MovieClip{
return (_player_area_mc);
}
private function DetectEdge(_arg1:int, _arg2:int=14, _arg3:Boolean=false):Boolean{
var _local4:int;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Boolean;
_local4 = 0;
_local5 = _this_y;
_local7 = 4;
while (_local7 <= _arg2) {
_local4 = (_this_x + (_arg1 * _local7));
_local8 = 4;
while (_local8 < 12) {
_local6 = (_local5 - _local8);
if (((_static_world_hitbox_mc.hitTestPoint(_local4, _local6, true)) || (_static_world_cloud_hitbox_mc.hitTestPoint(_local4, _local6, true)))){
if (m_world.GetPartWorldAt(_local4, _local6) == null){
return (false);
};
};
_local8 = (_local8 + 2);
};
_local10 = true;
_local9 = -2;
while (_local9 <= 10) {
_local6 = (_local5 + _local9);
if (((_static_world_hitbox_mc.hitTestPoint(_local4, _local6, true)) || (_static_world_cloud_hitbox_mc.hitTestPoint(_local4, _local6, true)))){
_local10 = false;
_local9 = 12;
};
_local9 = (_local9 + 1);
};
if (_local10){
_Handler_Output.Trace(("Edge Found: " + _local7));
if (_arg3){
_local9 = 12;
while (_local9 <= 40) {
_local6 = (_local5 + _local9);
if (((_static_world_hitbox_mc.hitTestPoint(_local4, _local6, true)) || (_static_world_cloud_hitbox_mc.hitTestPoint(_local4, _local6, true)))){
return (false);
};
_local9 = (_local9 + 4);
};
};
return (true);
};
_local7 = (_local7 + 2);
};
return (false);
}
private function EdgeStaggerDistance():int{
var _local1:int;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Boolean;
var _local7:Number;
var _local8:Boolean;
_local1 = 0;
_local2 = _this_y;
_local4 = 0;
while (_local4 <= 36) {
_local1 = (_this_x - ((_PlayerState.LastDirX * _PlayerState.StaggerSpeed) * _local4));
_local5 = 4;
while (_local5 < 12) {
_local3 = (_local2 - _local5);
if (_static_world_hitbox_mc.hitTestPoint(_local1, _local3, true)){
if (m_world.GetGlassAt(_local1, _local3) == null){
return (0);
};
};
_local5 = (_local5 + 2);
};
_local6 = true;
_local7 = -2;
while (_local7 <= 10) {
_local3 = (_local2 + _local7);
_local8 = _static_world_cloud_hitbox_mc.hitTestPoint(_local1, _local3, true);
if (((_static_world_hitbox_mc.hitTestPoint(_local1, _local3, true)) || (_local8))){
if (((((HitTestWorldOnly(_local1, _local3)) || ((m_world.GetGlassAt(_local1, _local3) == null)))) || (_local8))){
_local2 = _local3;
_local6 = false;
_local7 = 12;
};
};
_local7 = (_local7 + 1);
};
if (_local6){
_Handler_Output.Trace(("Edge Found: " + _local4));
return (_local4);
};
_local4 = (_local4 + 2);
};
return (0);
}
private function DropGrabbedPlayer():void{
if (_PlayerState.GrabbedPlayer){
UpdateGrabbedPlayer(true);
_players[_PlayerState.GrabbedPlayerNr].GrabbedByOtherPlayer(false, _PlayerState.LastDirX);
_PlayerState.GrabbedPlayer = false;
};
}
public function Disarm():void{
CheckAimDrop(true);
}
public function PlayerInSightPercentage(_arg1:Player):Number{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local4 = ((PosX() - (_PlayerState.LastDirX * 4)) - _arg1.MidPosX());
_local5 = ((PosY() - 14) - _arg1.MidPosY());
if (_PlayerState.LastDirX == -1){
_local2 = (_PlayerState.CurrentAimAngle - 180);
_local3 = (Math.atan2(_local5, _local4) * (180 / Math.PI));
} else {
_local2 = ((Math.atan2(-(_local5), -(_local4)) * (180 / Math.PI)) + 180);
_local3 = (_PlayerState.CurrentAimAngle + 180);
};
if (_local2 < _local3){
_local6 = (Math.round((_local3 - _local2)) / 90);
} else {
_local6 = (Math.round((_local2 - _local3)) / 90);
};
if (_local6 > 1){
_local6 = 1;
};
return ((1 - _local6));
}
public function BotPositionShootableFrom(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{
var _local5:Point;
var _local6:Point;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:b2Body;
var _local11:b2Body;
var _local12:int;
var _local13:Number;
var _local14:Number;
var _local15:int;
var _local16:Point;
var _local17:b2Body;
var _local18:int;
_local5 = new Point(_arg3, _arg4);
_local6 = new Point(_arg1, _arg2);
_local7 = (_local5.x - _local6.x);
_local8 = (_local5.y - _local6.y);
_local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
if (_local9 > _PlayerState.RangeWeaponRange){
return (false);
};
_local10 = null;
_local11 = null;
_local12 = (_local9 / 4);
_local13 = (-(_local7) / _local12);
_local14 = (-(_local8) / _local12);
_local15 = 1;
while (_local15 <= _local12) {
_local5.x = (_local5.x + _local13);
_local5.y = (_local5.y + _local14);
_local6.x = (_local6.x - _local13);
_local6.y = (_local6.y - _local14);
_local17 = null;
_local18 = -1;
while (_local18 <= 1) {
if (_local18 == 1){
_local16 = _local5;
_local17 = _local10;
} else {
_local16 = _local6;
_local17 = _local11;
};
if (_local17 != null){
if (!_local17.GetUserData().objectData.ShapeMC.hitTestPoint(_local16.x, _local16.y, true)){
_local17 = null;
};
};
if (_local17 == null){
if (_static_objects_hitbox_mc.hitTestPoint(_local16.x, _local16.y, true)){
_local17 = m_world.GetBulletSolidAt(_local16.x, _local16.y);
} else {
if (_static_world_hitbox_mc.hitTestPoint(_local16.x, _local16.y, true)){
return (false);
};
if ((((_local14 > 0)) && (!(_PlayerState.RangeWeaponCanShootDown)))){
if (_static_world_cloud_hitbox_mc.hitTestPoint(_local16.x, _local16.y, true)){
return (false);
};
};
};
};
if (_local17 != null){
if (((!(_PlayerState.RangeWeaponIsFlamethrower)) && (!(_PlayerState.RangeWeaponIsBazooka)))){
if (_local17.GetUserData().objectData.Indestructible){
return (false);
};
};
};
if (_local18 == 1){
_local10 = _local17;
} else {
_local11 = _local17;
};
_local18 = (_local18 + 2);
};
_local15 = (_local15 + 2);
};
return (true);
}
public function BulletDamage(_arg1:ProjectileData):void{
var _local2:Boolean;
var _local3:Boolean;
var _local4:int;
if (_PlayerState.IsImmune){
return;
};
if (_PlayerState.DeathKneel){
return;
};
_local2 = false;
if (_PlayerState.HP <= 0){
_local2 = true;
};
_local3 = false;
if ((Math.random() * 100) <= _arg1.Properties.CriticalChance){
_local3 = true;
};
if (_PlayerState.StuckToRocket){
if (_local3){
_PlayerState.RocketRideProjectile.Explode();
if (ActivateSlowmotion(PlayerNr)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
};
return;
};
_PlayerState.CurrentPushbackPower = (_PlayerState.CurrentPushbackPower + _arg1.Properties.PushbackPower);
if (_local3){
_PlayerState.HP = (_PlayerState.HP - _arg1.Properties.CriticalDamage);
} else {
_PlayerState.HP = (_PlayerState.HP - _arg1.Properties.Damage);
};
if (_PlayerState.GrabbedByPlayer){
return;
};
if (((((_local3) || (((!(_local2)) && ((_PlayerState.HP <= 0)))))) || ((_PlayerState.CurrentPushbackPower >= 100)))){
_PlayerState.CritSmokeTimer = 36;
_Handler_Effects.AddEffectAt("HITDEFAULT_01", _arg1.PosX, _arg1.PosY);
if (_PlayerState.OnGround){
_this_y = (_this_y - 1);
};
if ((((_PlayerState.HP > 0)) || (_local2))){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (_arg1.DirectionX * 2));
_PlayerState.AirVelocityY = -2;
} else {
if (((_PlayerState.OnGround) && ((Math.random() < 0.5)))){
_PlayerState.AirVelocityX = (_PlayerState.LastDirX * _PlayerState.RunSpeed);
_PlayerState.AirVelocityY = -2;
} else {
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (_arg1.DirectionX * 2));
_PlayerState.AirVelocityY = -2;
};
};
_PlayerState.LastDirX = -(ConvertToDirection(_arg1.DirectionX));
if (_PlayerState.LastDirX == 0){
_PlayerState.LastDirX = 1;
};
_PlayerState.CurrentPushbackPower = 0;
this.scaleX = _PlayerState.LastDirX;
_collision_mc.scaleX = this.scaleX;
if (_PlayerState.HP <= 0){
Disarm();
if (((((((!(_local2)) && (_PlayerState.OnGround))) && (!(_PlayerState.Knockdowned)))) || (_PlayerState.Staggering))){
_local4 = EdgeStaggerDistance();
if (_local4 > 6){
StartStagger();
_PlayerState.StaggerTimer = (_local4 - 4);
} else {
if (DetectEdge(_PlayerState.LastDirX)){
_PlayerState.DeathKneel = true;
_PlayerState.CameraIgnoreTimer = (3 * 24);
} else {
if (Math.random() < 0.5){
Fall(false);
} else {
if (Math.random() < 0.5){
StartStagger();
} else {
_PlayerState.DeathKneel = true;
_PlayerState.CameraIgnoreTimer = (3 * 24);
};
};
_Handler_Shake.Add(2, 2);
};
};
} else {
Fall(false);
_Handler_Shake.Add(2, 2);
};
} else {
if ((((Math.random() < 0.25)) || (_PlayerState.Knockdowned))){
Fall(false);
_Handler_Shake.Add(2, 2);
} else {
StartStagger();
};
};
};
if (((!(_local2)) && ((_PlayerState.HP <= 0)))){
if (ActivateSlowmotion(PlayerNr)){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 2), (24 * 1), 0.2));
};
if (((((_PlayerState.OnGround) && (!(_PlayerState.Staggering)))) && (!(_PlayerState.DeathKneel)))){
Fall(false);
};
};
}
public function SetGrabRotation(_arg1:Number):void{
_PlayerAnimation.GrabRotation = _arg1;
}
private function InMeleeRange(_arg1:Player):Boolean{
var _local2:Number;
var _local3:Number;
_local2 = (_this_x - _arg1.PosX());
if (Math.abs(_local2) <= (_PlayerState.MeleeWeaponRange + 4)){
_local3 = (MidPosY() - _arg1.MidPosY());
if ((((_local3 >= -7)) && ((_local3 <= 12.5)))){
return (true);
};
};
return (false);
}
private function WalkCollision(_arg1:int, _arg2:Boolean):Boolean{
var _local3:int;
_local3 = 2;
while (_local3 <= 4) {
if (_static_world_hitbox_mc.hitTestPoint((_this_x + ((_local3 - 1) * _arg1)), ((_this_y - 2) - _local3), true)){
return (true);
};
_local3 = (_local3 + 2);
};
return (false);
}
private function KickHit(_arg1:b2Body, _arg2:Boolean, _arg3:Boolean=false):Boolean{
var _local4:int;
var _local5:int;
var _local6:int;
if (_arg2){
if (_standingOnObject == _arg1){
return (false);
};
};
_local6 = _PlayerState.LastDirX;
if (_arg2){
_local4 = 0;
while (_local4 <= _PlayerState.MeleeWeaponRange) {
_local5 = -16;
while (_local5 <= 0) {
if (_arg1.m_userData.objectData.ShapeMC.hitTestPoint((_this_x + (_local4 * _local6)), (_this_y + _local5), true)){
return (true);
};
_local5 = (_local5 + 2);
};
_local4 = (_local4 + 2);
};
} else {
if (_arg3){
_local4 = 0;
while (_local4 <= 16) {
_local5 = -16;
while (_local5 <= 0) {
if (_arg1.m_userData.objectData.ShapeMC.hitTestPoint((_this_x + (_local4 * _local6)), (_this_y + _local5), true)){
return (true);
};
_local5 = (_local5 + 2);
};
_local4 = (_local4 + 2);
};
} else {
_local4 = 0;
while (_local4 <= 8) {
_local5 = -8;
while (_local5 <= 4) {
if (_arg1.m_userData.objectData.ShapeMC.hitTestPoint((_this_x + (_local4 * _local6)), (_this_y + _local5), true)){
return (true);
};
_local5 = (_local5 + 2);
};
_local4 = (_local4 + 2);
};
};
};
return (false);
}
private function AimDown(_arg1:Number=0):void{
if (_PlayerState.CurrentAimPitch < _PlayerState.LowerAimPitch){
if (_arg1 != 0){
_PlayerState.CurrentChangePitchSpeed = _arg1;
};
if (_PlayerState.CurrentChangePitchSpeed < 0){
_PlayerState.CurrentChangePitchSpeed = 0;
};
_PlayerState.CurrentAimPitch = (_PlayerState.CurrentAimPitch + (_PlayerState.CurrentChangePitchSpeed * _game_speed));
_PlayerState.CurrentChangePitchSpeed = (_PlayerState.CurrentChangePitchSpeed + 2);
if (_PlayerState.CurrentAimPitch > _PlayerState.LowerAimPitch){
_PlayerState.CurrentAimPitch = _PlayerState.LowerAimPitch;
};
};
}
private function ProgressAFS(_arg1:Boolean=false):void{
var pd:particle_data;
var realFrame:int;
var posX:Number;
var posY:Number;
var shellPosX:Number;
var shellPosY:Number;
var muzzlePosX:Number;
var muzzlePosY:Number;
var speedVec:b2Vec2;
var randomDeflection:Number;
var i:int;
var firstUpdate = _arg1;
try {
if (_PlayerState.Staggering){
return;
};
if (_startAimASAP){
if (((_PlayerState.ControllAble) && (_PlayerState.OnGround))){
if (KeyPressed(5)){
RangedDown();
} else {
if (KeyPressed(6)){
ThrowDown();
};
};
};
};
if (_PlayerState.Aiming){
if (_PlayerState.AimMode == 1){
if (_PlayerState.CurrentThrowableWeapon.Properties.ThrowType == "MOLOTOV"){
if (Math.random() < 0.35){
pd = new particle_data("FIRE", (MidPosX() - (_PlayerState.LastDirX * 8)), (MidPosY() - 4.5));
pd.ScaleX = 0.5;
pd.ScaleY = 0.5;
_Handler_Effects.AddParticle(pd);
};
};
if (_PlayerState.ThrowTimer > 0){
_PlayerState.ThrowTimer = (_PlayerState.ThrowTimer - _game_speed);
if (_PlayerState.ThrowTimer <= 0){
_PlayerState.ThrowTimer = 0;
ThrowTimerEnded();
};
};
};
};
if (AFSUpdated){
return;
} else {
AFSUpdated = true;
};
if (_PlayerState.CurrentFireFrame > 0){
if (!firstUpdate){
_PlayerState.CurrentFireFrame = (_PlayerState.CurrentFireFrame + _game_speed);
};
if (_char.ANIM_WPN == null){
return;
};
realFrame = Math.floor(_PlayerState.CurrentFireFrame);
if (_PlayerState.LastFireFrame != realFrame){
_PlayerState.LastFireFrame = realFrame;
if (_PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].End){
_PlayerState.CurrentFireFrame = 0;
_PlayerState.LastFireFrame = 0;
if (_flameAwayActivated){
clearInterval(_flameAwayTimer);
_flameAwayActivated = false;
};
} else {
if (_PlayerState.BackToIdleTimer < 6){
_PlayerState.BackToIdleTimer = 6;
};
};
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].FrameSound, PosX(), PosY());
posX = ((_char.ANIM_WPN.x * _PlayerState.LastDirX) + PosX());
posY = (_char.ANIM_WPN.y + PosY());
if (_PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].UseShellEffect){
shellPosX = posX;
shellPosY = posY;
shellPosX = (shellPosX + (Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.SHELL_CENTER.x));
shellPosY = (shellPosY + (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.SHELL_CENTER.x));
shellPosY = (shellPosY + ((Math.sin(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.SHELL_CENTER.y) * _PlayerState.LastDirX));
shellPosX = (shellPosX + ((Math.cos(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.SHELL_CENTER.y) * _PlayerState.LastDirX));
_Handler_Effects.AddParticle(new particle_data(_PlayerState.CurrentRangeWeapon.Properties.ShellEffect, shellPosX, shellPosY, new b2Vec2((((-(_PlayerState.LastDirX) * Math.random()) * 1) - _PlayerState.LastDirX), ((-(Math.random()) * 1) - 1)), _PlayerState.CurrentAimAngleRad));
};
if (_PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].UseMuzzleEffect){
muzzlePosX = posX;
muzzlePosY = posY;
muzzlePosX = (muzzlePosX + (Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.MUZZLE_CENTER.x));
muzzlePosY = (muzzlePosY + (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.MUZZLE_CENTER.x));
muzzlePosY = (muzzlePosY + ((Math.sin(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.MUZZLE_CENTER.y) * _PlayerState.LastDirX));
muzzlePosX = (muzzlePosX + ((Math.cos(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.MUZZLE_CENTER.y) * _PlayerState.LastDirX));
speedVec = new b2Vec2();
_Handler_Effects.AddParticle(new particle_data(_PlayerState.CurrentRangeWeapon.Properties.MuzzleFlashEffect, muzzlePosX, muzzlePosY, speedVec, _PlayerState.CurrentAimAngle));
};
if (_PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].Bullets > 0){
posX = (posX + (Math.cos((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.x));
posY = (posY + (Math.sin((_PlayerState.CurrentAimAngle * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.x));
posY = (posY + ((Math.sin(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.y) * _PlayerState.LastDirX));
posX = (posX + ((Math.cos(((_PlayerState.CurrentAimAngle + 90) * (Math.PI / 180))) * _char.ANIM_WPN.FIRE_CENTER.y) * _PlayerState.LastDirX));
i = 0;
while (i < _PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].Bullets) {
if (_PlayerState.CurrentRangeWeapon.Ammo > 0){
randomDeflection = (((Math.random() * _PlayerState.CurrentRangeWeapon.Properties.AccuracyDeflection) * 2) - _PlayerState.CurrentRangeWeapon.Properties.AccuracyDeflection);
switch (_PlayerState.CurrentRangeWeapon.Properties.BulletType){
case "FLAME":
if (!_flameAwayActivated){
FlameAway();
_flameAwayTimer = setInterval(FlameAway, 10);
_flameAwayActivated = true;
};
break;
case "BAZOOKA_ROCKET":
_Handler_ProjectilesUpdater.NewRocket("BAZOOKA_ROCKET", posX, posY, (_PlayerState.CurrentAimAngle + randomDeflection), this);
break;
default:
_Handler_ProjectilesUpdater.NewProjectile(_PlayerState.CurrentRangeWeapon.Properties.BulletType, posX, posY, (_PlayerState.CurrentAimAngle + randomDeflection), this);
break;
};
_PlayerState.CurrentRangeWeapon.Ammo = (_PlayerState.CurrentRangeWeapon.Ammo - 1);
} else {
WeaponEmptyRecoil();
_PlayerState.CurrentFireFrame = (_PlayerState.CurrentRangeWeapon.Properties.FireSequence.length - 1);
_PlayerState.LastFireFrame = _PlayerState.CurrentFireFrame;
i = _PlayerState.CurrentRangeWeapon.Properties.FireSequence[(realFrame - 1)].Bullets;
};
UpdateGUIRanged();
i = (i + 1);
};
};
};
};
if (!_PlayerState.AFSInProgress){
if (_PlayerState.CurrentWeaponCooldown > 0){
_PlayerState.CurrentWeaponCooldown = (_PlayerState.CurrentWeaponCooldown - (1 - ((1 - _game_speed) / 2)));
};
if (_PlayerState.Aiming){
if (((((!(KeyPressed(5))) && (!(KeyPressed(6))))) || (_cancelAimingASAP))){
if (_PlayerState.FastTrigger){
if (!_PlayerState.AimTurningAroundDelay){
_PlayerState.FastTrigger = false;
AFSUpdated = false;
FireWeapon();
};
} else {
if ((((_PlayerState.BackToIdleTimer <= 0)) || (_cancelAimingASAP))){
_cancelAimingASAP = false;
AbortAiming();
};
};
};
};
};
} catch(e:Error) {
};
}
private function BotCloudAbove():Boolean{
var _local1:int;
_local1 = 0;
while (_local1 < 20) {
if (_static_world_cloud_hitbox_mc.hitTestPoint(_this_x, (_this_y - _local1), true)){
return (true);
};
_local1 = (_local1 + 2);
};
return (false);
}
private function UpdateAirMovement():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:int;
var _local7:Number;
var _local8:Boolean;
var _local9:int;
var _local10:b2Vec2;
var _local11:b2Vec2;
var _local12:Boolean;
var _local13:b2Vec2;
var _local14:b2Vec2;
var _local15:Number;
if (_PlayerState.AirVelocityY == 0){
_PlayerState.AirVelocityY = 0.1;
};
if (_this_y > _jumpDownPosYDisable){
_performJumpDownLevel = false;
};
if (_PlayerState.Climbing){
if (((_keyPressed[1]) && (!(_keyPressed[0])))){
_PlayerState.AirVelocityY = _PlayerState.SlideSpeed;
_PlayerState.AirVelocityX = 0;
if (_PlayerState.CurrentLadder == null){
_PlayerState.CurrentLadder = m_world.GetLadderBodyAt(MidPosX(), MidPosY());
};
if (_PlayerState.CurrentLadder != null){
_PlayerState.DisableKneel = true;
_this_x = (_PlayerState.CurrentLadder.GetPosition().x * 30);
};
LadderSliding();
} else {
if (_keyPressed[0]){
_PlayerState.AirVelocityY = -(_PlayerState.ClimbSpeed);
} else {
_PlayerState.AirVelocityY = 0;
};
if (PressingLeft()){
_PlayerState.AirVelocityX = -(_PlayerState.ClimbSpeed);
this.scaleX = -1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = -1;
} else {
if (PressingRight()){
_PlayerState.AirVelocityX = _PlayerState.ClimbSpeed;
this.scaleX = 1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = 1;
} else {
_PlayerState.AirVelocityX = 0;
};
};
};
} else {
if (((!(_PlayerState.Knockdowned)) && ((_PlayerState.HP <= 0)))){
Fall(false);
};
};
_local1 = Math.ceil(_PlayerState.TotalAirVelocity);
if (_local1 <= 1){
_local1 = 1;
};
_local2 = (_PlayerState.AirVelocityY * _game_speed);
_local3 = (_PlayerState.AirVelocityX * _game_speed);
if (_PlayerState.ControllAble){
if (PressingLeft()){
TurnLeft();
} else {
if (PressingRight()){
TurnRight();
};
};
};
_local4 = _this_x;
_local5 = _this_y;
_local6 = 1;
while (_local6 <= _local1) {
_local4 = _this_x;
_local5 = _this_y;
_this_x = (_this_x + (_local3 / _local1));
_this_y = (_this_y + (_local2 / _local1));
if (PlayerOutsideLevel()){
IgnorePlayer();
return;
};
if (_PlayerState.Climbing){
if (!_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), MidPosY(), true)){
if (_local2 < 0){
_this_y = _local5;
if (!_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), MidPosY(), true)){
_PlayerState.Climbing = false;
_PlayerState.AirVelocityX = 0;
} else {
_PlayerState.AirVelocityY = 0;
};
} else {
_PlayerState.Climbing = false;
_PlayerState.AirVelocityX = 0;
};
} else {
if (_local2 > 0){
_PlayerState.NextLadderEffect = (_PlayerState.NextLadderEffect - _local2);
if (_PlayerState.NextLadderEffect <= 0){
if (_PlayerState.LadderEffectRightSide){
_local7 = 1;
} else {
_local7 = -1;
};
if ((Math.random() * 10) < 5){
_Handler_Effects.AddParticle(new particle_data("METAL", (PosX() + (6 * _local7)), (PosY() - 16), new b2Vec2(((Math.random() * _local7) * 0.5), (-(Math.random()) * 0.5))));
} else {
_Handler_Effects.AddParticle(new particle_data("METAL", (PosX() + (6 * _local7)), PosY(), new b2Vec2(((Math.random() * _local7) * 0.5), (Math.random() * 0.5))));
};
_PlayerState.LadderEffectRightSide = !(_PlayerState.LadderEffectRightSide);
_PlayerState.NextLadderEffect = (14 + (Math.random() * 4));
};
};
};
};
if (_PlayerState.Falling){
if (CollisionSide(_local3)){
_local8 = false;
_local9 = ConvertToDirection(_PlayerState.AirVelocityX);
b = GetDynamicBodyAt((MidPosX() + ((_PlayerState.PlayerEdgeDistance + 2) * _local9)), MidPosY(), false);
if (b != null){
_local10 = new b2Vec2(_PlayerState.LastDirX, 0);
_local11 = new b2Vec2((MidPosX() + ((_PlayerState.PlayerEdgeDistance + 2) * _local9)), MidPosY());
new b2Vec2((MidPosX() + ((_PlayerState.PlayerEdgeDistance + 2) * _local9)), MidPosY()).x = (_local11.x / 30);
_local11.y = (_local11.y / 30);
b.ApplyImpulse(_local10, _local11);
if (b.GetUserData().objectData.PlayerFragile){
_local8 = true;
b.GetUserData().objectData.ForceDestruction();
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX * 0.6);
return;
};
b.GetUserData().objectData.Damage_Impact(2);
};
_Handler_Sounds.PlaySoundAt("MELEE_HIT", _this_x, _this_y);
_this_x = _local4;
if (CanLandInMid()){
_PlayerState.AirVelocityX = 0;
} else {
if (!CollisionHead()){
_PlayerState.AirVelocityX = (-(_PlayerState.AirVelocityX) * 0.5);
_PlayerState.AirVelocityY = (-(Math.abs(_PlayerState.AirVelocityY)) * 0.7);
if (Math.abs(_PlayerState.AirVelocityX) > 2){
_PlayerState.AirVelocityX = (-(_local9) * 2);
};
if (_PlayerState.AirVelocityY < -2.5){
_PlayerState.AirVelocityY = -2.5;
};
return;
};
};
};
} else {
_local12 = false;
if (CollisionSide(_local3)){
if (_PlayerState.Diving){
b = GetDynamicBodyAt((MidPosX() + (6 * _PlayerState.LastDirX)), MidPosY(), false);
if (b != null){
_local13 = new b2Vec2(_PlayerState.LastDirX, 0);
_local14 = new b2Vec2((MidPosX() + (6 * _PlayerState.LastDirX)), MidPosY());
new b2Vec2((MidPosX() + (6 * _PlayerState.LastDirX)), MidPosY()).x = (_local14.x / 30);
_local14.y = (_local14.y / 30);
b.ApplyImpulse(_local13, _local14);
b.GetUserData().objectData.Damage_Impact(2);
if (b.GetUserData().objectData.HP > 0){
_local12 = true;
_PlayerState.Diving = false;
_PlayerState.Sprinting = false;
_PlayerState.AirVelocityY = 0;
_PlayerState.AirVelocityX = 0;
_local3 = 0;
};
} else {
_local12 = true;
_PlayerState.Diving = false;
_PlayerState.Sprinting = false;
_PlayerState.AirVelocityY = 0;
_PlayerState.AirVelocityX = 0;
_local3 = 0;
};
} else {
_PlayerState.AirVelocityX = 0;
_local3 = 0;
};
};
UpdateSides(false);
if (_local12){
DropGrabbedPlayer();
};
};
if (_PlayerState.Diving){
CheckDivePlayerImpact();
};
if (_local2 > 0){
if (!_PlayerState.Climbing){
if (((!(_PlayerState.Falling)) && (!(_PlayerState.Diving)))){
if (_PlayerState.AirVelocityY >= _PlayerState.FallTriggerSpeed){
if (_PlayerState.MovingDirectionInversed != 0){
if (((_keyPressed[2]) && (!(CollisionSide(1, (_PlayerState.PlayerEdgeDistance + 1)))))){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (_PlayerState.RunSpeed * 0.8));
};
if (((_keyPressed[3]) && (!(CollisionSide(-1, (_PlayerState.PlayerEdgeDistance + 1)))))){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX - (_PlayerState.RunSpeed * 0.8));
};
} else {
if (((_keyPressed[2]) && (!(CollisionSide(-1, (_PlayerState.PlayerEdgeDistance + 1)))))){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX - (_PlayerState.RunSpeed * 0.8));
};
if (((_keyPressed[3]) && (!(CollisionSide(1, (_PlayerState.PlayerEdgeDistance + 1)))))){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (_PlayerState.RunSpeed * 0.8));
};
};
_PlayerState.Falling = true;
};
};
};
if (CollisionHead()){
CheckObjectHeadImpactSpeeds();
};
if (CollisionFeetSides()){
if (CanLandInMid()){
if (CollisionFeetMid()){
PlayerLands();
return;
};
} else {
if (!CollisionFeetSides(-2)){
if (CollisionFeetSides(1, (_PlayerState.PlayerEdgeDistance - 1))){
PlayerLands();
return;
};
} else {
if (!CollisionFeetBothSides()){
UpdateSides();
} else {
PlayerLands();
return;
};
};
};
};
} else {
if (_local2 < 0){
if (((CollisionHead()) || (WorldCollisionHead()))){
_local15 = _PlayerState.AirVelocityY;
_this_y = _local5;
_PlayerState.AirVelocityY = 0;
CheckObjectHeadImpactSpeeds();
CheckHeadToObjectImpacts((Math.abs(_local15) * 0.1));
return;
};
if (_PlayerState.AirVelocityY != _PlayerState.PlayerJumpPower){
if (CollisionFeetSides()){
if (CanLandInMid()){
if (CollisionFeetMidUp(-2, 0)){
PlayerLands();
return;
};
};
};
};
};
};
UpdateGrabbedPlayer();
UpdatePlayerFallingOnPlayer();
if (!_PlayerState.Climbing){
_PlayerState.AirVelocityY = (_PlayerState.AirVelocityY + ((_PlayerState.PlayerGravity * _game_speed) / _local1));
_local3 = (_PlayerState.AirVelocityX * _game_speed);
_local2 = (_PlayerState.AirVelocityY * _game_speed);
};
_local6++;
};
}
private function CancelFireDelay():void{
clearInterval(_PlayerState.FireDelayTimer);
_PlayerState.FireDelayActivated = false;
_PlayerState.FireDelayUpdated = false;
_startAimASAP = false;
}
public function IgnorePlayer():void{
if (_PlayerState.GrabbedPlayer){
_players[_PlayerState.GrabbedPlayerNr].SetCoordinates(_this_x, _this_y);
_players[_PlayerState.GrabbedPlayerNr].GrabbedByOtherPlayer(false, _PlayerState.LastDirX);
_PlayerState.GrabbedPlayer = false;
};
_PlayerBars.Hide();
_PlayerState.TakingCover = false;
_PlayerState.CoverObjectID = -1;
_PlayerState.HP = 0;
if (_PlayerAnimation.UseGUI){
_char_gui.visible = false;
_blood_gui.visible = false;
_gui_mc.gib_pic.alpha = 1;
};
_PlayerState.CameraIgnoreTimer = (24 * 2);
this.visible = false;
_collision_mc.visible = false;
_collision_mc.x = 9999;
_collision_mc.y = 9999;
_player_area_mc.x = 9999;
_player_area_mc.y = 9999;
_PlayerState.IgnoreMe = true;
}
private function TurnRight():void{
if (_PlayerState.LastDirX == -1){
this.scaleX = 1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = 1;
};
}
public function DiveCollision():void{
DropGrabbedPlayer();
_PlayerState.AirVelocityX = (_PlayerState.LastDirX * 3.5);
_PlayerState.LastDirX = (_PlayerState.LastDirX * -1);
_PlayerState.Falling = true;
}
private function CollisionSide(_arg1:Number, _arg2:Number=-1):Boolean{
var _local3:int;
if (_arg1 == 0){
return (false);
};
if (_arg2 <= 0){
_arg2 = _PlayerState.PlayerEdgeDistance;
};
_edgePosition = (_this_x + (_arg2 * ConvertToDirection(_arg1)));
_local3 = 6;
while (_local3 <= (_PlayerState.PlayerHeight - 2)) {
if (_static_world_hitbox_mc.hitTestPoint(_edgePosition, (_this_y - _local3), true)){
return (true);
};
_local3 = (_local3 + 2);
};
return (false);
}
private function UpdateGrabbedPlayer(_arg1:Boolean=false):void{
var center = _arg1;
if (_PlayerState.GrabbedPlayer){
if (center){
_players[_PlayerState.GrabbedPlayerNr].SetCoordinates(_this_x, _this_y);
} else {
_players[_PlayerState.GrabbedPlayerNr].SetCoordinates((_this_x + (_PlayerState.LastDirX * 6)), (_this_y - 2));
};
try {
_players[_PlayerState.GrabbedPlayerNr].SetGrabRotation(-(_PlayerAnimation.GrabRotation));
} catch(e:Error) {
};
};
}
private function LadderJump():void{
if (!_static_ladder_hitbox_mc.hitTestPoint(MidPosX(), (MidPosY() - 1), true)){
_PlayerState.Climbing = false;
_this_y = (_this_y - 1);
BeginJump();
};
}
private function FireUp():void{
if (_PlayerState.StuckToRocket){
return;
};
if (_PlayerState.Staggering){
return;
};
_startAimASAP = false;
if (((_PlayerState.FireDelayActivated) && (!(_PlayerState.FireDelayUpdated)))){
clearInterval(_PlayerState.FireDelayTimer);
_PlayerState.FireDelayUpdated = true;
_PlayerState.FireDelayTimer = setInterval(CancelFireDelay, 100);
return;
};
if (((((!(_PlayerState.Throwing)) && (_PlayerState.Aiming))) && (!(_PlayerState.AimTurningAroundDelay)))){
if (_PlayerState.AimMode == 0){
_PlayerState.BackToIdleTimer = 6;
FireWeapon();
} else {
if (_PlayerState.AimMode == 1){
_PlayerState.Throwing = true;
_PlayerState.Aiming = false;
ReleaseThrowable();
};
};
};
}
private function BotDodgeBullet():Boolean{
var _local1:Number;
var _local2:Number;
var _local3:Number;
if (_BotState.Difficulty == BotState.EASY){
return (false);
};
if (_BotState.DodgeBullet){
return (true);
};
if (_BotState.Difficulty == BotState.MEDIUM){
if (Math.random() < 0.7){
return (false);
};
};
if (((!(_PlayerState.OnGround)) || (_PlayerState.Punching))){
return (false);
};
if (((!(_PlayerState.CanRoll)) && (_PlayerState.Aiming))){
return (false);
};
if (((((!(_PlayerState.CanRoll)) && (!(_PlayerState.Aiming)))) && ((Math.random() < 0.7)))){
return (false);
};
if (_PlayerState.Aiming){
if (_BotState.IgnoreDodgeBulletWhileAiming){
return (false);
};
if (_Handler_ProjectilesUpdater.BulletImpactFrameTime(this, 3.1, 8)){
return (true);
};
} else {
if (_Handler_ProjectilesUpdater.BulletImpactFrameTime(this, 0, 8)){
return (true);
};
if (_BotState.TargetPlayer != null){
if (_BotState.TargetPlayer.State.Aiming){
_local1 = (_BotState.TargetPlayer.MidPosX() - MidPosX());
_local2 = (_BotState.TargetPlayer.MidPosY() - MidPosY());
_local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2)));
if (_local3 <= 25){
return (true);
};
};
};
};
return (false);
}
private function LadderSliding():void{
var _local1:*;
_local1 = 0;
while (_local1 < _players.length) {
if (_local1 != PlayerNr){
if (_players[_local1].State.Climbing){
if (_players[_local1].PosY() > PosY()){
if (this.hitTestObject(_players[_local1].MC)){
_players[_local1].LadderKnockdown(ConvertToDirection((_players[_local1].PosX() - PosX())));
};
};
};
};
_local1++;
};
}
private function BodyDust():void{
var _local1:int;
_local1 = -2;
while (_local1 < 3) {
_Handler_Effects.AddEffectAt("BODYFALL", (_this_x + (_local1 * 3)), _this_y);
_local1++;
};
}
public function NoGUI():void{
_PlayerAnimation.UseGUI = false;
}
public function Fall(_arg1:Boolean=true):void{
if (!_PlayerState.Falling){
_lastBounceY = _this_y;
DropGrabbedPlayer();
CheckAimDrop();
if (_PlayerState.Knockdowned){
if (_PlayerState.AirVelocityY > -0.1){
_PlayerState.AirVelocityY = -0.1;
};
};
if (_arg1){
if (PressingRight()){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX + (_PlayerState.RunSpeed - 1));
};
if (PressingLeft()){
_PlayerState.AirVelocityX = (_PlayerState.AirVelocityX - (_PlayerState.RunSpeed - 1));
};
} else {
if (_PlayerState.Staggering){
_PlayerState.AirVelocityX = (-(_PlayerState.LastDirX) * _PlayerState.StaggerSpeed);
_PlayerState.AirVelocityY = -2;
};
};
_PlayerState.Falling = true;
};
}
private function ButtonInMeleeRange():Boolean{
var _local1:int;
var _local2:Number;
var _local3:Number;
_local1 = 0;
while (_local1 < m_world.ButtonList.length) {
b = m_world.ButtonList[_local1];
if (b.GetUserData().buttonData.Enabled){
if (CheckCollisionTowardsPlayer(MidPosX(), (b.GetPosition().x * 30), _PlayerState.LastDirX)){
_local2 = (MidPosX() - (b.GetPosition().x * 30));
_local2 = Math.abs(_local2);
if ((((_local2 <= 14)) && ((_local2 > 4)))){
_local3 = (MidPosY() - (b.GetPosition().y * 30));
if (Math.abs(_local3) <= 10){
_button_in_melee_range = true;
_button_to_activate = m_world.ButtonList[_local1];
return (true);
};
};
};
};
_local1++;
};
return (false);
}
public function UpdateGUI():void{
if (!_PlayerAnimation.UseGUI){
return;
};
_gui_mc.melee.gotoAndStop(_PlayerState.GetMeleeWeapon().Properties.WeaponType);
if (_PlayerState.CurrentThrowableWeapon.Ammo <= 0){
_gui_mc.throwable.gotoAndStop("EMPTY");
_gui_mc.throwable_num.visible = false;
} else {
_gui_mc.throwable.gotoAndStop(_PlayerState.CurrentThrowableWeapon.Properties.WeaponType);
_gui_mc.throwable_num.visible = true;
SetNumTo(_gui_mc.throwable_num, _PlayerState.CurrentThrowableWeapon.Ammo);
};
UpdateGUIRanged();
if (_PlayerState.CurrentPowerupWeapon == null){
_gui_mc.powerup.gotoAndStop("EMPTY");
} else {
_gui_mc.powerup.gotoAndStop(_PlayerState.CurrentPowerupWeapon.Properties.WeaponType);
};
}
private function DeflectBullets():void{
_Handler_ProjectilesUpdater.DeflectBullets(this);
}
private function BotCalculatePathGrid(_arg1:PathNode):void{
var _local2:PathNode;
var _local3:PathBind;
var _local4:int;
var _local5:int;
_local2 = null;
_local3 = null;
if (_BotState.NextResultNode != null){
if (!_PlayerState.OnGround){
_local2 = _BotState.NextResultNode.Node;
};
if (_BotState.NextResultNode.PrevBind != null){
_local3 = _BotState.NextResultNode.PrevBind;
if (((_PlayerState.Climbing) && ((_local3.MovementType == PathBind.LADDER)))){
return;
};
if (((_PlayerState.Jumping) && ((_local3.MovementType == PathBind.SPRINTJUMP)))){
return;
};
if (((_PlayerState.Diving) && ((_local3.MovementType == PathBind.DIVE)))){
return;
};
};
};
if (_local2 == null){
_local2 = _pathGrid.GetNodeAt(MidPosX(), MidPosY());
};
_BotState.Path = _pathGrid.GetPath(_local2, _arg1);
if (_local2 != null){
if (_local2.Avoid){
_BotState.RunAwayFromHazards = true;
if (_PlayerState.Aiming){
_BotState.Phase = BotState.CANCEL_AIM;
} else {
_BotState.Phase = BotState.FOLLOW_PATH;
};
};
};
if (_BotState.Path.length > 0){
_BotState.Path[(_BotState.Path.length - 1)].PrevBind = _local3;
};
if (_BotState.NextResultNode != null){
_local4 = 0;
_local5 = (_BotState.Path.length - 2);
while (_local5 > _local4) {
if (_BotState.Path[_local5].Node == _BotState.NextResultNode.Node){
_BotState.Path.splice((_local5 + 1), (_BotState.Path.length - (_local5 + 1)));
};
_local5--;
};
};
}
private function AbortAiming(_arg1:Boolean=false):void{
var _local2:b2Vec2;
var _local3:b2Body;
_PlayerState.Aiming = false;
_startAimASAP = false;
_lazer_mc.visible = false;
_aim_mc.visible = false;
CancelAFS();
if (_PlayerState.CurrentRangeWeapon != null){
if ((((_PlayerState.CurrentRangeWeapon.Ammo <= 0)) || (_arg1))){
if (_arg1){
_local2 = new b2Vec2((_PlayerState.LastDirX * -2), -((2 + (Math.random() * 2))));
} else {
_local2 = new b2Vec2((_PlayerState.LastDirX * 2), -1);
};
_local3 = _Handler_Maps.Handler_WorldItems.AddPolygon(("wpn_" + _PlayerState.CurrentRangeWeapon.Properties.WeaponType), ((MidPosX() + (_PlayerState.LastDirX * 5)) / 30), ((MidPosY() - 3) / 30), 0, _local2, ((Math.random() * 30) - 15), null, !((_PlayerState.LastDirX == 1)));
_local3.GetUserData().weaponData = _PlayerState.CurrentRangeWeapon;
_local3.GetUserData().weaponData.Ammo = 0;
_local3.GetUserData().objectData.MC.indicator.visible = false;
_local3.GetUserData().objectData.MC.shine.gotoAndStop("EMPTY");
_local3.GetUserData().objectData.MC.shine.visible = false;
_PlayerState.CurrentRangeWeapon = null;
UpdateGUIRanged();
};
};
}
private function GrabWeapon():Boolean{
var _local1:b2Body;
_local1 = GetClosestReachableWeapon();
if (_local1 != null){
if (_local1.GetUserData().isRanged == true){
_PlayerState.CurrentRangeWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_local1.GetUserData().objectData.ForceDestruction();
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentRangeWeapon.Properties.PickupSound, PosX(), PosY());
return (true);
};
if (_local1.GetUserData().isThrowable == true){
_PlayerState.CurrentThrowableWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_local1.GetUserData().objectData.ForceDestruction();
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentThrowableWeapon.Properties.PickupSound, PosX(), PosY());
return (true);
};
if (_local1.GetUserData().isMelee == true){
_PlayerState.CurrentMeleeWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_local1.GetUserData().objectData.ForceDestruction();
_Handler_Sounds.PlaySoundAt(_PlayerState.GetMeleeWeapon().Properties.PickupSound, PosX(), PosY());
return (true);
};
if (_local1.GetUserData().isPowerup == true){
_PlayerState.CurrentPowerupWeapon = _local1.GetUserData().weaponData;
_Handler_Effects.AddParticle(new particle_data(("PICKUP_" + _local1.GetUserData().weaponData.Properties.WeaponType), MidPosX(), (MidPosY() - 10)));
_local1.GetUserData().objectData.ForceDestruction();
_Handler_Sounds.PlaySoundAt(_PlayerState.CurrentPowerupWeapon.Properties.PickupSound, PosX(), PosY());
return (true);
};
if (_local1.GetUserData().isHealth == true){
_PlayerState.HP = (_PlayerState.HP + _local1.GetUserData().weaponData.Ammo);
_Handler_Sounds.PlaySoundAt(_local1.GetUserData().weaponData.Properties.PickupSound, PosX(), PosY());
_local1.GetUserData().objectData.ForceDestruction();
StartFlashEffect();
return (true);
};
};
return (false);
}
public function Initialize(_arg1:PlayerAreaData):void{
var _local2:Number;
var _local3:*;
_MapArea = _arg1;
_local2 = 1;
if (_static_world_hitbox_mc.hitTestPoint(this.x, this.y, true)){
_local2 = -1;
};
_local3 = 0;
for (;_local3 < 100;_local3++) {
if (((!(_static_world_hitbox_mc.hitTestPoint(this.x, this.y, true))) && (!(_static_world_cloud_hitbox_mc.hitTestPoint(this.x, this.y, true))))){
this.y = (this.y + _local2);
} else {
continue;
};
};
_this_x = this.x;
_this_y = this.y;
_PlayerAnimation.ShowAnimation("idle");
}
private function ConvertToDirection(_arg1:Number):int{
if (_arg1 == 0){
return (0);
};
return ((_arg1 / Math.sqrt((_arg1 * _arg1))));
}
private function BotCheckPathProgress():void{
var _local1:PathResultNode;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = _BotState.Path[(_BotState.Path.length - 1)];
_local2 = (MidPosX() - _local1.Node.PosX);
_local3 = (MidPosY() - _local1.Node.PosY);
if (Math.abs(_local2) <= BotState.DISTANCE_NODE_TOLERANCE_X){
if ((((_local3 >= BotState.DISTANCE_NODE_TOLERANCE_Y_MAX)) && ((_local3 <= BotState.DISTANCE_NODE_TOLERANCE_Y_MIN)))){
if (_local1.NextBind != null){
if (!_PlayerState.OnGround){
if (_local1.NextBind.MovementType == PathBind.DIVE){
return;
};
if ((((_local1.NextBind.MovementType == PathBind.SPRINTJUMP)) || ((_local1.NextBind.MovementType == PathBind.JUMP)))){
if (_PlayerState.AirVelocityY > (_PlayerState.PlayerJumpPower + 2)){
return;
};
};
};
};
_BotState.Path.splice((_BotState.Path.length - 1), 1);
_BotState.DoFireCheck = true;
return;
} else {
if (_local3 < 0){
if (_local1.NextBind != null){
if (_local1.NextBind.MovementType == PathBind.ROAD){
_local4 = Math.abs(_local3);
while (_local4 >= 2) {
if (_static_objects_hitbox_mc.hitTestPoint(_this_x, (MidPosY() + _local4), true)){
_BotState.Path.splice((_BotState.Path.length - 1), 1);
_BotState.DoFireCheck = true;
return;
};
_local4 = (_local4 - 2);
};
};
};
};
};
};
}
private function GetGibBodyNearPlayer():b2Body{
var _local1:b2Body;
var _local2:int;
_local2 = -4;
while (_local2 <= 4) {
_local1 = GetDynamicBodyAt((_this_x + _local2), (_this_y - 4), false);
if (_local1 != null){
if (_local1.GetUserData().objectData.CanGibb){
if (((_static_world_hitbox_mc.hitTestPoint(_this_x, (_this_y + 2), true)) && (!(_local1.GetUserData().objectData.CollisionMC.hitTestPoint(_this_x, (_this_y + 2), true))))){
return (_local1);
};
if (((_static_world_hitbox_mc.hitTestPoint((_this_x + _local2), (_this_y + 2), true)) && (!(_local1.GetUserData().objectData.CollisionMC.hitTestPoint((_this_x + _local2), (_this_y + 2), true))))){
return (_local1);
};
};
};
_local2 = (_local2 + 4);
};
return (null);
}
private function CheckForceKneeling():Boolean{
return (CheckCollisionHeight(12, _PlayerState.MaxPlayerHeight));
}
private function KneelReleased():void{
_PlayerState.DisableKneel = false;
}
private function BotRandomize():void{
switch (Math.floor((Math.random() * 3.999))){
case 0:
_BotState.FollowToAimMinimumDistance = 10;
break;
case 1:
_BotState.FollowToAimMinimumDistance = 30;
break;
case 2:
_BotState.FollowToAimMinimumDistance = 60;
break;
case 3:
_BotState.FollowToAimMinimumDistance = 100;
break;
};
switch (_BotState.Difficulty){
case BotState.EASY:
_BotState.RunOften = false;
break;
case BotState.MEDIUM:
_BotState.RunOften = (Math.random() < 0.4);
break;
case BotState.HARD:
_BotState.RunOften = true;
break;
};
if (_BotState.Difficulty == BotState.EASY){
_BotState.FollowToAimMinimumDistance = (_BotState.FollowToAimMinimumDistance + 40);
};
if ((((_BotState.Difficulty == BotState.MEDIUM)) && ((Math.random() < 0.5)))){
_BotState.FollowToAimMinimumDistance = (_BotState.FollowToAimMinimumDistance + 20);
};
_BotState.MeleeToAimMinimumChance = (0.2 + (Math.random() * 0.7));
if (Math.random() < 0.4){
_BotState.IgnoreDodgeBulletWhileAiming = true;
} else {
_BotState.IgnoreDodgeBulletWhileAiming = false;
};
}
private function CheckAimDrop(_arg1:Boolean=false):void{
if (_PlayerState.Aiming){
if (_PlayerState.AimMode == 1){
DropThrowable();
};
if (_PlayerState.AimMode == 0){
AbortAiming(_arg1);
};
};
}
private function GetBodyAbovePlayer():b2Body{
var _local1:b2Body;
_local1 = GetDynamicBodyAt(_this_x, (_this_y - _PlayerState.PlayerHeight), false);
if (_local1 != null){
return (_local1);
};
_local1 = GetDynamicBodyAt((_this_x - 4), (_this_y - _PlayerState.PlayerHeight), false);
if (_local1 != null){
return (_local1);
};
_local1 = GetDynamicBodyAt((_this_x + 4), (_this_y - _PlayerState.PlayerHeight), false);
if (_local1 != null){
return (_local1);
};
return (null);
}
private function DeactivateSprint():void{
_Handler_Output.Trace("Sprint Off");
_PlayerState.Sprinting = false;
}
private function CheckForceKnockdown():Boolean{
return (CheckCollisionHeight(6, 12));
}
private function GetStaticBodyAt(_arg1:Number, _arg2:Number):b2Body{
if (HitTestWorldOnly(_arg1, _arg2)){
return (m_world.GetStaticBodyAt(_arg1, _arg2));
};
return (null);
}
private function RangedUp():void{
if (((_PlayerState.StuckToRocket) || (_PlayerState.Staggering))){
return;
};
_startAimASAP = false;
if (((((!(_PlayerState.Throwing)) && (_PlayerState.Aiming))) && (!(_PlayerState.AimTurningAroundDelay)))){
if (_PlayerState.AimMode == 0){
_PlayerState.BackToIdleTimer = 6;
FireWeapon();
};
};
}
private function HitTestWorld(_arg1:Number, _arg2:Number):Boolean{
if (_static_world_hitbox_mc.hitTestPoint(_arg1, _arg2, true)){
return (true);
};
if (_static_world_cloud_hitbox_mc.hitTestPoint(_arg1, _arg2, true)){
return (true);
};
return (false);
}
private function CancelAFS():void{
_PlayerState.CancelAFS();
_cancelAimingASAP = false;
if (_flameAwayActivated){
clearInterval(_flameAwayTimer);
_flameAwayActivated = false;
};
}
public function SetAI(_arg1:Number):void{
_bot = true;
_BotState = new BotState();
_BotState.Difficulty = _arg1;
if (_BotState.Difficulty == BotState.EASY){
_PlayerState.ImmunityDisabled = true;
};
_Handler_Output.Trace(("Bot difficulty set to: " + _BotState.Difficulty));
}
private function AimRight():void{
if (_PlayerState.LastDirX == -1){
_PlayerState.FastTrigger = false;
_lazer_mc.visible = false;
_aim_mc.visible = false;
CancelAFS();
_PlayerState.AimTurningAround = true;
this.scaleX = 1;
_collision_mc.scaleX = this.scaleX;
_PlayerState.LastDirX = 1;
_PlayerState.CurrentAimPitch = 0;
_PlayerState.CurrentChangePitchSpeed = 0;
};
}
private function StartFlashEffect():void{
var _local1:Color;
_local1 = new Color();
_local1.brightness = 1;
this.transform.colorTransform = _local1;
_PlayerState.ShowFlashEffect = true;
}
}
}//package Code.Data.Players
Section 96
//PlayerAnimation (Code.Data.Players.PlayerAnimation)
package Code.Data.Players {
import Code.Handler.*;
import flash.display.*;
public class PlayerAnimation {
private var _this_gui:MovieClip;
private var _animation_done:Boolean;// = false
private var _disable_slowmotion_modifier:Boolean;// = false
private var _aim_animation:Boolean;// = false
private var _is_rocket_ride:Boolean;// = false
private var _collision_mc:MovieClip;
private var _help_animation:Boolean;// = false
private var _animation_done_func:Function;
private var _current_frame:Number;// = 1
private var _next_blink_timer:Number;// = 0
private var _current_animation:String;// = ""
private var _rotate_speed:Number;// = 0
private var _grabbed_player_updated:Boolean;// = false
private var _loop_animation:Boolean;// = false
private var _PlayerState:PlayerState;
public var UseGUI:Boolean;// = true
private var _delay_timer:Number;// = 0
private var _rotate_increase:Number;// = 0
private var _delay_frame:int;// = -1
private var _Handler_Output:OutputTrace;
private var _blood_gui:MovieClip;
private var _blood:MovieClip;
private var _blink_duration_timer:Number;// = 0
private var _this:MovieClip;
public function PlayerAnimation(_arg1:MovieClip, _arg2:MovieClip, _arg3:MovieClip, _arg4:PlayerState, _arg5:OutputTrace){
_current_frame = 1;
_loop_animation = false;
_animation_done = false;
_help_animation = false;
_aim_animation = false;
_disable_slowmotion_modifier = false;
_grabbed_player_updated = false;
_current_animation = "";
_is_rocket_ride = false;
_rotate_speed = 0;
_rotate_increase = 0;
_delay_frame = -1;
_delay_timer = 0;
_next_blink_timer = 0;
_blink_duration_timer = 0;
UseGUI = true;
super();
_this = _arg1;
_blood = _arg2;
_collision_mc = _arg3;
_PlayerState = _arg4;
_Handler_Output = _arg5;
}
private function AnimationDone():void{
if (_PlayerState.Knockdowned){
_PlayerState.Knockdowned = false;
};
if (_PlayerState.Rolling){
_PlayerState.Rolling = false;
};
if (_PlayerState.Kicking){
_PlayerState.Kicking = false;
};
if (_PlayerState.Throwing){
_PlayerState.Throwing = false;
};
if (_PlayerState.Punching){
_PlayerState.Punching = false;
};
if (_PlayerState.AimTurningAround){
_PlayerState.AimTurningAround = false;
};
if (_PlayerState.DeathKneel){
_PlayerState.Falling = true;
_PlayerState.AirVelocityX = (_PlayerState.LastDirX * 1.7);
_PlayerState.AirVelocityY = -1.5;
};
}
public function get GrabRotation():Number{
return (_this.ANIM.HELPMC.rotation);
}
private function FallingFoward():Boolean{
if ((((((_PlayerState.LastDirX == 1)) && ((_PlayerState.AirVelocityX >= 0)))) || ((((_PlayerState.LastDirX == -1)) && ((_PlayerState.AirVelocityX < 0)))))){
return (true);
};
return (false);
}
private function UpdateAnimation():void{
_blood.visible = _PlayerState.BloodVisible;
if (UseGUI){
_blood_gui.visible = _PlayerState.BloodVisible;
};
if (_PlayerState.IsImmune){
_next_blink_timer = (_next_blink_timer - 1);
if (_next_blink_timer <= 0){
_this.alpha = 0.2;
if (UseGUI){
_this_gui.alpha = 0.2;
};
_blink_duration_timer = (_blink_duration_timer - 1);
if (_blink_duration_timer <= 0){
_blink_duration_timer = 1;
_next_blink_timer = 3;
};
} else {
_this.alpha = 1;
if (UseGUI){
_this_gui.alpha = 1;
};
};
} else {
_this.alpha = 1;
if (UseGUI){
_this_gui.alpha = 1;
};
_next_blink_timer = 0;
_blink_duration_timer = 1;
};
if (_PlayerState.IgnoreMe){
ShowAnimation("EMPTY");
} else {
if (_PlayerState.StuckToRocket){
if (_PlayerState.RocketRideProjectile.DirectionX > 0){
ShowAnimation("ROCKET_RIDE_R");
} else {
ShowAnimation("ROCKET_RIDE_L");
};
} else {
if (_PlayerState.DeathKneel){
ShowAnimation("DEATH_KNEEL");
} else {
if (_PlayerState.GrabbedByPlayer){
ShowAnimation("GRABBED");
} else {
if (_PlayerState.Staggering){
ShowAnimation("STAGGER");
} else {
if (_PlayerState.Climbing){
if (_PlayerState.ClimbingDirection == 1){
ShowAnimation("SLIDE");
} else {
ShowAnimation("CLIMB");
};
} else {
if (_PlayerState.Knockdowned){
ShowAnimation("KNOCKDOWN");
} else {
if (_PlayerState.Falling){
if (FallingFoward()){
ShowAnimation("FALL_F");
} else {
ShowAnimation("FALL_B");
};
} else {
if (_PlayerState.IsStunned){
ShowAnimation(("STUN_0" + _PlayerState.StunAnimation));
} else {
if (_PlayerState.Aiming){
if (_PlayerState.AimMode == 0){
if (_PlayerState.AimTurningAround){
ShowAnimation(("start_" + _PlayerState.CurrentRangeWeapon.Properties.AnimType));
} else {
ShowAnimation(("aim_" + _PlayerState.CurrentRangeWeapon.Properties.AnimType));
};
} else {
if (_PlayerState.AimMode == 1){
if (_PlayerState.AimTurningAround){
ShowAnimation("aim_turn");
} else {
ShowAnimation(("aim_" + _PlayerState.CurrentThrowableWeapon.Properties.AnimType));
};
};
};
} else {
if (_PlayerState.Throwing){
ShowAnimation("THROW");
} else {
if (_PlayerState.Diving){
ShowAnimation("DIVE");
} else {
if (_PlayerState.Jumping){
if (_PlayerState.JumpKickPerformed){
ShowAnimation("JUMPKICK");
} else {
ShowAnimation("JUMP");
};
} else {
if (_PlayerState.Rolling){
if (((_current_animation) && (_animation_done))){
ShowAnimation("ROLL", true);
} else {
ShowAnimation("ROLL");
};
} else {
if (_PlayerState.Kicking){
ShowAnimation("KICK");
} else {
if (_PlayerState.Punching){
ShowAnimation(((_PlayerState.MeleeAnimation + "_0") + _PlayerState.PunchComboNr));
} else {
if (_PlayerState.Kneeling){
ShowAnimation("KNEEL");
} else {
if (_PlayerState.TakingCover){
ShowAnimation("COVER");
} else {
if (_PlayerState.MovingDirectionX == 0){
ShowAnimation("IDLE");
} else {
if (_PlayerState.Sprinting){
ShowAnimation("SPRINT");
} else {
ShowAnimation("RUN");
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function NewSkin(_arg1:MovieClip):void{
_this = _arg1;
ShowAnimation(_current_animation, true);
}
public function ShowAnimation(_arg1:String, _arg2:Boolean=false):void{
if (((!((_current_animation == _arg1.toUpperCase()))) || (_arg2))){
_current_animation = _arg1.toUpperCase();
if (_arg2){
_this.gotoAndStop("IDLE");
if (UseGUI){
_this_gui.gotoAndStop("IDLE");
_blood_gui.gotoAndStop("IDLE");
};
_collision_mc.gotoAndStop("IDLE");
_blood.gotoAndStop("IDLE");
};
_this.gotoAndStop(_arg1.toUpperCase());
if (UseGUI){
_this_gui.gotoAndStop(_arg1.toUpperCase());
_blood_gui.gotoAndStop(_arg1.toUpperCase());
};
_collision_mc.gotoAndStop(_arg1.toUpperCase());
_blood.gotoAndStop(_arg1.toUpperCase());
_current_frame = 0;
_aim_animation = false;
_animation_done = false;
_loop_animation = false;
_help_animation = false;
_grabbed_player_updated = false;
_disable_slowmotion_modifier = false;
_is_rocket_ride = false;
switch (_arg1.toUpperCase()){
case "ROCKET_RIDE_L":
case "ROCKET_RIDE_R":
_is_rocket_ride = true;
_loop_animation = true;
break;
case "AIM_TURN":
_disable_slowmotion_modifier = true;
break;
case "CLIMB":
case "IDLE":
case "STAGGER":
case "SPRINT":
case "GRABBED":
case "RUN":
_loop_animation = true;
break;
case "DIVE":
_help_animation = true;
_loop_animation = true;
_rotate_speed = 1.5;
_rotate_increase = 0;
break;
case "FALL_B":
case "FALL_F":
_help_animation = true;
_loop_animation = true;
if (_arg1.toUpperCase() == "FALL_B"){
_rotate_speed = -10;
_rotate_increase = -2;
} else {
_rotate_speed = 10;
_rotate_increase = 2;
};
break;
default:
if (_arg1.toUpperCase().substr(0, 3) == "AIM"){
_aim_animation = true;
_loop_animation = true;
};
if (_arg1.toUpperCase().substr(0, 5) == "START"){
_disable_slowmotion_modifier = true;
};
break;
};
};
}
public function NextFrame(_arg1:Number):int{
return (Math.floor((_current_frame + _arg1)));
}
public function set GrabRotation(_arg1:Number):void{
_this.ANIM.DOLL.rotation = _arg1;
_collision_mc.ANIM.DOLL.rotation = _arg1;
_blood.ANIM.DOLL.rotation = _arg1;
}
public function get CurrentFrame():int{
return (Math.floor(_current_frame));
}
public function SetGUISkin(_arg1:MovieClip, _arg2:MovieClip):void{
if (!UseGUI){
return;
};
_this_gui = _arg1;
_blood_gui = _arg2;
ShowAnimation(_current_animation, true);
}
public function ProgressAnimation(_arg1:Number):void{
var _local2:int;
var _local3:MovieClip;
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:MovieClip;
var _local7:MovieClip;
var _local8:int;
UpdateAnimation();
if (!_animation_done){
if (_delay_frame == CurrentFrame){
if (_delay_timer > 0){
_delay_timer = (_delay_timer - _arg1);
if (_delay_timer <= 0){
_delay_frame = -1;
};
return;
};
};
if (_current_frame == 0){
_current_frame = 1;
return;
};
if (_is_rocket_ride){
_PlayerState.LastDirX = 1;
_this.ANIM.rotation = _PlayerState.RocketRideProjectile.Angle;
if (UseGUI){
_this_gui.ANIM.rotation = _PlayerState.RocketRideProjectile.Angle;
_blood_gui.ANIM.rotation = _PlayerState.RocketRideProjectile.Angle;
};
_collision_mc.ANIM.rotation = _PlayerState.RocketRideProjectile.Angle;
_blood.ANIM.rotation = _PlayerState.RocketRideProjectile.Angle;
_current_frame = (_current_frame + 1);
} else {
if (_help_animation){
_current_frame = (_current_frame + 1);
} else {
if (_aim_animation){
_this.ANIM_WPN.rotation = _PlayerState.CurrentAimPitch;
if (UseGUI){
_this_gui.ANIM_WPN.rotation = _PlayerState.CurrentAimPitch;
_blood_gui.ANIM_WPN.rotation = _PlayerState.CurrentAimPitch;
};
_collision_mc.ANIM_WPN.rotation = _PlayerState.CurrentAimPitch;
_blood.ANIM_WPN.rotation = _PlayerState.CurrentAimPitch;
if (_PlayerState.AFSInProgress){
_local2 = _PlayerState.CurrentRangeWeapon.Properties.FireSequence[(_PlayerState.LastFireFrame - 1)].FrameNr;
} else {
_local2 = 1;
};
_this.ANIM_WPN.gotoAndStop(_local2);
if (UseGUI){
_this_gui.ANIM_WPN.gotoAndStop(_local2);
_blood_gui.ANIM_WPN.gotoAndStop(_local2);
};
_collision_mc.ANIM_WPN.gotoAndStop(_local2);
_blood.ANIM_WPN.gotoAndStop(_local2);
return;
} else {
if ((((_current_animation == "CLIMB")) && (!(_PlayerState.ClimbingAround)))){
_local2 = Math.floor(_current_frame);
_this.ANIM.gotoAndStop(_local2);
if (UseGUI){
_this_gui.ANIM.gotoAndStop(_local2);
_blood_gui.ANIM.gotoAndStop(_local2);
};
_collision_mc.ANIM.gotoAndStop(_local2);
_blood.ANIM.gotoAndStop(_local2);
return;
};
if ((((((_current_frame >= 4)) && ((_current_animation == "KNOCKDOWN")))) && (((_PlayerState.CantRise) || ((_PlayerState.HP <= 0)))))){
_current_frame = 4;
} else {
if (!_disable_slowmotion_modifier){
if (_current_animation == "KNOCKDOWN"){
if (_current_frame < 9){
_current_frame = (_current_frame + (_arg1 * _PlayerState.KnockdownRiseSpeed));
if (_current_frame >= 9){
_PlayerState.ImmunityTimer = PlayerState.KNOCKDOWN_IMMUNITY_TIME;
};
} else {
_current_frame = (_current_frame + (_arg1 * _PlayerState.KnockdownRiseSpeed));
};
} else {
_current_frame = (_current_frame + _arg1);
};
} else {
_current_frame = (_current_frame + 1);
};
};
};
};
};
if (_help_animation){
_local3 = _this.ANIM.HELPMC;
_local4 = _collision_mc.ANIM.HELPMC;
_local5 = _blood.ANIM.HELPMC;
if (UseGUI){
_local7 = _blood_gui.ANIM.HELPMC;
_local6 = _this_gui.ANIM.HELPMC;
};
_local3.rotation = (_local3.rotation + (_rotate_speed * _arg1));
_local4.rotation = _local3.rotation;
_local5.rotation = _local3.rotation;
if (UseGUI){
_local6.rotation = _local3.rotation;
_local7.rotation = _local3.rotation;
};
if (Math.sqrt((_rotate_speed * _rotate_speed)) < 36){
_rotate_speed = (_rotate_speed + (_rotate_increase * _arg1));
};
if (_current_animation == "DIVE"){
if (_PlayerState.GrabbedPlayer){
if (!_grabbed_player_updated){
_grabbed_player_updated = true;
};
};
};
} else {
_local3 = _this.ANIM;
_local4 = _collision_mc.ANIM;
_local5 = _blood.ANIM;
if (UseGUI){
_local6 = _this_gui.ANIM;
_local7 = _blood_gui.ANIM;
};
};
_local8 = Math.floor(_current_frame);
if (_local8 > _local3.totalFrames){
AnimationDone();
if (_loop_animation){
_current_frame = 1;
_local8 = 1;
} else {
_animation_done = true;
};
};
if (!_grabbed_player_updated){
_local3.gotoAndStop(_local8);
_local4.gotoAndStop(_local8);
_local5.gotoAndStop(_local8);
if (UseGUI){
_local6.gotoAndStop(_local8);
_local7.gotoAndStop(_local8);
};
};
if (_collision_mc.currentFrame != _this.currentFrame){
} else {
if (_local4.currentFrame != _local3.currentFrame){
} else {
if (_local5.currentFrame != _local3.currentFrame){
};
};
};
} else {
AnimationDone();
};
}
public function get Progress():Number{
return ((CurrentFrame / LastFrame));
}
public function get LastFrame():int{
return (_this.ANIM.totalFrames);
}
public function DelayAnimation(_arg1:int, _arg2:Number):void{
_delay_frame = _arg1;
_delay_timer = _arg2;
}
}
}//package Code.Data.Players
Section 97
//PlayerAreaData (Code.Data.Players.PlayerAreaData)
package Code.Data.Players {
import flash.geom.*;
public class PlayerAreaData {
private var _left:Number;
private var _bottom:Number;
private var _top:Number;
private var _right:Number;
public function PlayerAreaData(_arg1:Rectangle){
_top = _arg1.y;
_left = _arg1.x;
_bottom = (_arg1.y + _arg1.height);
_right = (_arg1.x + _arg1.width);
}
public function get Bottom():Number{
return (_bottom);
}
public function get Left():Number{
return (_left);
}
public function get Top():Number{
return (_top);
}
public function get Right():Number{
return (_right);
}
}
}//package Code.Data.Players
Section 98
//PlayerBars (Code.Data.Players.PlayerBars)
package Code.Data.Players {
import flash.geom.*;
import flash.display.*;
public class PlayerBars {
private var _gui_mc:MovieClip;
private var _sprint_bar:MovieClip;
private var _health_bar:MovieClip;
private var _PlayerState:PlayerState;
private var _player_sign:MovieClip;
private var _health_energy_bar:MovieClip;
private var _sprint_energy_bar:MovieClip;
private var _player_sign_text:Boolean;// = false
private var _gui_bars_mc:MovieClip;
private var _showBars:Boolean;
public static var PLAYER_COM:int = 0;
public static var PLAYER_2:int = 2;
public static var PLAYER_1:int = 1;
public function PlayerBars(_arg1:PlayerState, _arg2:MovieClip){
var _local3:Sprite;
var _local4:Sprite;
var _local5:ColorTransform;
_player_sign_text = false;
super();
_PlayerState = _arg1;
_health_bar = new MovieClip();
_local3 = new Sprite();
_local3.graphics.lineStyle(0.25, 0, 0);
_local3.graphics.beginFill(0, 1);
_local3.graphics.moveTo(-10, 0);
_local3.graphics.lineTo(-10, -2);
_local3.graphics.lineTo(10, -2);
_local3.graphics.lineTo(10, 0);
_local3.graphics.lineTo(-10, 0);
_local3.graphics.endFill();
_health_energy_bar = new MovieClip();
_health_energy_bar.graphics.lineStyle(1, GetColor(0xFF, 0xFF, 0xFF), 0);
_health_energy_bar.graphics.beginFill(GetColor(0xFF, 0xFF, 0xFF), 1);
_health_energy_bar.graphics.moveTo(0, 0);
_health_energy_bar.graphics.lineTo(0, -2);
_health_energy_bar.graphics.lineTo(20, -2);
_health_energy_bar.graphics.lineTo(20, 0);
_health_energy_bar.graphics.lineTo(0, 0);
_health_energy_bar.graphics.endFill();
_health_energy_bar.x = -10;
_health_bar.addChild(_local3);
_health_bar.addChild(_health_energy_bar);
_health_bar.alpha = 0.5;
_sprint_bar = new MovieClip();
_local4 = new Sprite();
_local4.graphics.lineStyle(0.25, 0, 0);
_local4.graphics.beginFill(0, 1);
_local4.graphics.moveTo(-10, 0);
_local4.graphics.lineTo(-10, -2);
_local4.graphics.lineTo(10, -2);
_local4.graphics.lineTo(10, 0);
_local4.graphics.lineTo(-10, 0);
_local4.graphics.endFill();
_sprint_energy_bar = new MovieClip();
_sprint_energy_bar.graphics.lineStyle(1, GetColor(0xFF, 0xFF, 0xFF), 0);
_sprint_energy_bar.graphics.beginFill(GetColor(0xFF, 0xFF, 0xFF), 1);
_sprint_energy_bar.graphics.moveTo(0, 0);
_sprint_energy_bar.graphics.lineTo(0, -2);
_sprint_energy_bar.graphics.lineTo(20, -2);
_sprint_energy_bar.graphics.lineTo(20, 0);
_sprint_energy_bar.graphics.lineTo(0, 0);
_sprint_energy_bar.graphics.endFill();
_sprint_energy_bar.x = -10;
_sprint_bar.addChild(_local4);
_sprint_bar.addChild(_sprint_energy_bar);
_sprint_bar.alpha = 0.5;
_arg2.addChild(_sprint_bar);
_arg2.addChild(_health_bar);
_health_bar.visible = false;
_player_sign = new player_sign();
_local5 = _player_sign.transform.colorTransform;
if (_PlayerState.Team < 0){
_local5.redOffset = (PlayerTeamColor.SOLO[0] - 0xFF);
_local5.greenOffset = (PlayerTeamColor.SOLO[1] - 0xFF);
_local5.blueOffset = (PlayerTeamColor.SOLO[2] - 0xFF);
} else {
_local5.redOffset = (PlayerTeamColor.TEAM[(_PlayerState.Team - 1)][0] - 0xFF);
_local5.greenOffset = (PlayerTeamColor.TEAM[(_PlayerState.Team - 1)][1] - 0xFF);
_local5.blueOffset = (PlayerTeamColor.TEAM[(_PlayerState.Team - 1)][2] - 0xFF);
};
_player_sign.transform.colorTransform = _local5;
_arg2.addChild(_player_sign);
_showBars = true;
}
public function Update(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Number;
var _local5:Number;
if (_PlayerState.HP <= 0){
_sprint_bar.visible = false;
_health_bar.visible = false;
_player_sign.visible = false;
_gui_bars_mc.visible = false;
return;
};
DrawGUIBars();
if (((((!(_PlayerState.ShowHealthBar)) && ((_PlayerState.SprintEnergy >= 100)))) || (_PlayerState.StuckToRocket))){
_sprint_bar.visible = false;
_health_bar.visible = false;
};
_arg2 = (_arg2 + 30);
if (_PlayerState.Diving){
_arg2 = (_arg2 - 14);
} else {
_arg2 = (_arg2 - 22);
};
_local4 = (0.5 + (0.5 / _arg3));
_player_sign.x = _arg1;
_player_sign.y = (_arg2 - 30);
if (_player_sign_text){
_player_sign.scaleX = (_local4 * 1.3);
_player_sign.scaleY = (_local4 * 1.3);
} else {
_player_sign.scaleX = _local4;
_player_sign.scaleY = _local4;
};
_player_sign.visible = true;
if (!_showBars){
return;
};
if (_PlayerState.ShowHealthBar){
_health_bar.visible = true;
_health_bar.scaleX = _local4;
_health_bar.scaleY = _local4;
_local5 = (_PlayerState.BarHP / 100);
_health_energy_bar.graphics.clear();
_health_energy_bar.graphics.lineStyle(1, 0xFFFFFF, 0);
_health_energy_bar.graphics.beginFill(GetColor((0xFF - Math.round((0xFF * _local5))), Math.round((0xFF * _local5)), 40));
_health_energy_bar.graphics.moveTo(0, 0);
_health_energy_bar.graphics.lineTo(0, -2);
_health_energy_bar.graphics.lineTo((20 * _local5), -2);
_health_energy_bar.graphics.lineTo((20 * _local5), 0);
_health_energy_bar.graphics.lineTo(0, 0);
_health_energy_bar.graphics.endFill();
_health_energy_bar.x = -10;
_health_bar.x = _arg1;
_health_bar.y = _arg2;
_arg2 = (_arg2 + 3);
} else {
_health_bar.visible = false;
};
if (_PlayerState.SprintEnergy >= 100){
_sprint_bar.visible = false;
return;
};
_sprint_bar.visible = true;
_sprint_bar.scaleX = _local4;
_sprint_bar.scaleY = _local4;
_local5 = (_PlayerState.SprintEnergy / 100);
_sprint_energy_bar.graphics.clear();
_sprint_energy_bar.graphics.lineStyle(1, 0xFFFFFF, 0);
_sprint_energy_bar.graphics.beginFill(0xFFFFFF);
_sprint_energy_bar.graphics.moveTo(0, 0);
_sprint_energy_bar.graphics.lineTo(0, -2);
_sprint_energy_bar.graphics.lineTo((20 * _local5), -2);
_sprint_energy_bar.graphics.lineTo((20 * _local5), 0);
_sprint_energy_bar.graphics.lineTo(0, 0);
_sprint_energy_bar.graphics.endFill();
_sprint_energy_bar.x = -10;
_sprint_bar.x = _arg1;
_sprint_bar.y = _arg2;
}
private function GetColor(_arg1:Number, _arg2:Number, _arg3:Number):uint{
var _local4:uint;
_local4 = (((_arg1 << 16) | (_arg2 << 8)) | _arg3);
return (_local4);
}
public function DrawGUIBars():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local1 = (_gui_mc.bars_end.x - _gui_mc.bars_start.x);
_local2 = 4;
_local3 = 6;
_local4 = (_PlayerState.BarHP / 100);
_gui_bars_mc.graphics.clear();
_gui_bars_mc.graphics.lineStyle(1, 0xFFFFFF, 0);
_gui_bars_mc.graphics.beginFill(GetColor((0xFF - Math.round((0xFF * _local4))), Math.round((0xFF * _local4)), 40));
_gui_bars_mc.graphics.moveTo(0, 0);
_gui_bars_mc.graphics.lineTo(0, _local2);
_gui_bars_mc.graphics.lineTo((_local1 * _local4), _local2);
_gui_bars_mc.graphics.lineTo((_local1 * _local4), 0);
_gui_bars_mc.graphics.lineTo(0, 0);
_gui_bars_mc.graphics.endFill();
if (_local4 == 0){
return;
};
_local4 = (_PlayerState.SprintEnergy / 100);
_gui_bars_mc.graphics.lineStyle(1, 0xFFFFFF, 0);
_gui_bars_mc.graphics.beginFill(0xFFFFFF);
_gui_bars_mc.graphics.moveTo(0, _local3);
_gui_bars_mc.graphics.lineTo(0, (_local3 + _local2));
_gui_bars_mc.graphics.lineTo((_local1 * _local4), (_local3 + _local2));
_gui_bars_mc.graphics.lineTo((_local1 * _local4), _local3);
_gui_bars_mc.graphics.lineTo(0, _local3);
_gui_bars_mc.graphics.endFill();
}
public function SetGUI(_arg1:MovieClip):void{
_gui_mc = _arg1;
_gui_bars_mc = new MovieClip();
_gui_bars_mc.x = _gui_mc.bars_start.x;
_gui_bars_mc.y = _gui_mc.bars_start.y;
_gui_mc.addChild(_gui_bars_mc);
}
public function Show():void{
_showBars = true;
}
public function SetSign(_arg1:int):void{
switch (_arg1){
case PLAYER_COM:
_player_sign.gotoAndStop(3);
_gui_mc.sign.gotoAndStop(3);
_player_sign_text = false;
break;
case PLAYER_1:
_player_sign.gotoAndStop(1);
_gui_mc.sign.gotoAndStop(1);
_player_sign_text = true;
break;
case PLAYER_2:
_player_sign.gotoAndStop(2);
_gui_mc.sign.gotoAndStop(2);
_player_sign_text = true;
break;
};
_gui_mc.sign.transform.colorTransform = _player_sign.transform.colorTransform;
}
public function Hide():void{
_showBars = false;
_sprint_bar.visible = false;
_health_bar.visible = false;
_player_sign.visible = false;
_gui_bars_mc.visible = false;
}
}
}//package Code.Data.Players
Section 99
//PlayerCharacter (Code.Data.Players.PlayerCharacter)
package Code.Data.Players {
import flash.geom.*;
import flash.display.*;
import fl.motion.*;
import flash.net.*;
public class PlayerCharacter {
public static const RANDOM:int = 0;
public static const BORIS:int = 2;
public static const FUNNYMAN:int = 6;
public static const JOHNNY:int = 1;
public static const BRIGHTNESS:Number = 0.05;
public static const AGENT:int = 3;
public static const MAC:int = 7;
public static const BILLY:int = 4;
public static const TOTAL_CHARACTERS:int = 8;
public static const JEFF:int = 8;
public static const SCOTT:int = 5;
public static function CharacterAvailable(_arg1:int):Boolean{
var _local2:SharedObject;
var _local3:Array;
var _local4:int;
if (_arg1 == FUNNYMAN){
_local2 = SharedObject.getLocal("superfightersData_v1.0");
if (_local2.data.stageLevelsFinished != undefined){
_local3 = _local2.data.stageLevelsFinished;
_local4 = 0;
while (_local4 < _local3.length) {
if (!_local3[_local4]){
return (false);
};
_local4++;
};
return (true);
};
return (false);
};
return (true);
}
public static function GetRandomCharacter():int{
var _local1:int;
_local1 = Math.floor((1 + (Math.random() * (PlayerCharacter.TOTAL_CHARACTERS - 0.001))));
while (_local1 == FUNNYMAN) {
_local1 = Math.floor((1 + (Math.random() * (PlayerCharacter.TOTAL_CHARACTERS - 0.001))));
};
return (_local1);
}
public static function Get(_arg1:int):MovieClip{
var _local2:MovieClip;
var _local3:Color;
var _local4:ColorTransform;
switch (_arg1){
case JOHNNY:
_local2 = new player_johnny();
break;
case BORIS:
_local2 = new player_boris();
break;
case AGENT:
_local2 = new player_agent();
break;
case BILLY:
_local2 = new player_billy();
break;
case SCOTT:
_local2 = new player_scott();
break;
case FUNNYMAN:
_local2 = new player_funnyman();
break;
case MAC:
_local2 = new player_mac();
break;
case JEFF:
_local2 = new player_jeff();
break;
default:
_local2 = new player_boris();
_local4 = _local2.transform.colorTransform;
_local4.color = 0;
_local4.alphaMultiplier = 0.5;
_local2.transform.colorTransform = _local4;
break;
};
_local3 = new Color();
_local3.brightness = BRIGHTNESS;
_local2.transform.colorTransform = _local3;
return (_local2);
}
}
}//package Code.Data.Players
Section 100
//PlayerSetupData (Code.Data.Players.PlayerSetupData)
package Code.Data.Players {
import Code.Handler.*;
public class PlayerSetupData {
public var aiDifficulty:Array;
public var ot:OutputTrace;
public var ai:Array;
public var characters:Array;
public var totalPlayers:Number;
public var teams:Array;
public var keys:Array;
public var playerSpawnPositions:Array;
}
}//package Code.Data.Players
Section 101
//PlayersKeeperData (Code.Data.Players.PlayersKeeperData)
package Code.Data.Players {
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import Code.Data.Weapons.*;
import flash.display.*;
public class PlayersKeeperData {
public var m_world:b2World;
public var game_mc:MovieClip;
public var meleeStartWeapon:WeaponMeleeData;
public var pathGrid:PathGrid;
public var Handler_Effects:Effects;
public var Handler_Shake:Shake;
public var rangedStartWeapon:WeaponData;
public var Handler_Sounds:Sounds;
public var Handler_Output:OutputTrace;
public var stg;
public var defaultMeleeWeapon:WeaponMeleeData;
public var Handler_Maps:Maps;
public var Handler_Projectiles:ProjectilesUpdater;
public var pSetupData:PlayerSetupData;
public var Handler_Keyboard:InputKeyboard;
public var throwableStartWeapon:WeaponThrowableData;
public var Handler_Slowmo:Slowmo;
}
}//package Code.Data.Players
Section 102
//PlayerState (Code.Data.Players.PlayerState)
package Code.Data.Players {
import Code.Box2D.Dynamics.*;
import Code.Data.Weapons.*;
import Code.Data.*;
public class PlayerState {
public var PlayerJumpPushPower:Number;// = -0.7
public var ImmunityDisabled:Boolean;// = false
public var PlayerGravity:Number;// = 0.6
private var _jumpKickPerformed:Boolean;// = false
public var ThrowTimer:Number;// = 0
private var _knockdownGrade:int;// = 0
private var _showFlashEffect:Boolean;// = false
public var CurrentChangePitchSpeed:Number;// = 0
public var FireRank1Minimum:Number;// = 15
public var JumpKickDamage:Number;// = 4
private var _grabbed_by_player:Boolean;// = false
private var _grabbed_player_nr:int;// = 0
public var FireRank2Damage:Number;// = 0.4
public var AimMode:int;// = 0
private var _currentPushbackPower:Number;// = 0
public var FireRankWorldExtraDamage:Number;// = 0.2
public var PlayerJumpPushEnabled:Boolean;// = false
private var _running:Boolean;// = false
private var _flashEffectTimer:int;// = 0
private var _decreaseKnockdownGradeTimer:Number;// = 0
private var _healthBarSpeed:Number;// = 4
private var _box2D_cover:b2Body;
public var RocketRideTimer:Number;// = 0
private var _canDive:Boolean;// = true
public var FallTriggerSpeed:Number;// = 8.5
private var _portalDirectionX:int;// = 1
public var CritSmokeTimer:Number;// = 0
public var StaggerSpeed:Number;// = 1
public var Gone:Boolean;// = false
private var _punchComboNr:int;// = 1
private var _showHealthTimer:Number;// = -24
private var _knockdowned:Boolean;// = false
public var CurrentThrowableWeapon:WeaponThrowableData;
public var PlayerJumpPushTime:Number;// = 4
public var PlayerFeetSize:Number;// = 4
private var _rolling:Boolean;// = false
public var RocketRideProjectile:ProjectileData;// = null
private var _kneeling:Boolean;// = false
private var _aimTurningAroundTimer:int;// = 0
private var _taking_cover:Boolean;// = false
public var JumpPushTimeLeft:Number;// = 0
public var FireRank1Damage:Number;// = 0.2
private var _drawDelay:int;// = 0
public var FireRank2Minimum:Number;// = 100
private var _stunTimer:Number;// = 0
private var _kickingCooldown:Number;// = 0
public var SlideSpeed:Number;// = 3
public var ImmunityTimer:Number;// = 0
public var PlayerJumpPushActivated:Boolean;// = false
public var PlayerWallJumpPower:Number;// = -5
private var _falling:Boolean;// = false
private var _punching:Boolean;// = false
private var _cover_object_id:int;
public var CurrentAimPitch:Number;// = 0
public var KickDamage:Number;// = 4
public var CheckForCover:Boolean;// = false
private var _staggerTimer:Number;// = 0
private var _reSprintActivationDuration:int;// = 0
public var CharAnimWpnX:Number;
public var CharAnimWpnY:Number;
private var _aimTurningAround:Boolean;// = false
public var LockRocketSteering:Boolean;// = false
public var CurrentMeleeWeapon:WeaponMeleeData;
public var FastTrigger:Boolean;// = false
public var DisableKneel:Boolean;// = false
public var RollSpeed:Number;// = 2
private var _aiming:Boolean;// = false
public var UsingMeleeWeapon:Boolean;// = false
private var _hp:Number;// = 100
private var game_speed:Number;// = 1
private var _doPunchCombo:Boolean;// = false
public var EmptyWeaponRecoilBack:int;// = 0
private var _grabbed_player_char_nr:int;// = 0
private var _runSpeed:Number;// = 1.7
private var _actionCooldown:Number;// = 0
private var _grabbed_player:Boolean;// = false
private var _movingDirectionInversed:int;// = 0
private var _stunAnimation:int;// = 1
public var StairBounceDamage:Number;// = 4
private var _backToIdleTimer:int;// = 0
private var _movingDirectionX:int;// = 1
private var _sprinting:Boolean;// = false
private var _wallJumping:Boolean;// = false
private var _hp_damage_timer:Number;// = 0
private var _char_nr:int;// = 0
private var kickHitMaterialSounds:Array;
public var KickPower:Number;// = 1.6
public var LadderEffectRightSide:Boolean;// = false
private var _portalSpeedX:Number;// = 0
public var PlayerEdgeDistance:Number;// = 4
public var FireDelayTimer:Number;
private var _climbing:Boolean;// = false
public var Team:int;
private var _burnState:Number;// = 0
public var StopStaggerFunc:Function;
public var DiveSpeed:Number;// = 3.5
public var FireRank2Attached:Boolean;// = false
private var _kicking:Boolean;// = false
public var CurrentRangeWeapon:WeaponData;
public var SlowmotionDelay:Number;// = 0
private var kickHitMaterialEffects:Array;
private var _kickingTimer:Number;// = 0
public var ClimbSpeed:Number;// = 1.5
private var _staggering:Boolean;// = false
private var _shortDiveTimer:Number;// = 0
private var _shortDiveAvailable:Boolean;// = false
public var LastFireFrame:int;// = 0
public var StuckToRocket:Boolean;// = false
public var Burned:Boolean;// = false
private var _diving:Boolean;// = false
private var _airVelocityY:Number;// = 0
public var PlayerJumpPushLevelOut:Boolean;// = false
public var CurrentLadder:b2Body;// = null
private var _airVelocityX:Number;// = 0
private var _actionAvailable:Boolean;// = true
private var _puchbackDecreaseDelay:Number;// = 0
public var NextLadderEffect:Number;// = 4
public var StairBounce:Boolean;// = false
public var Mass:Number;// = 0.7
private var _sprintEnergy:Number;// = 100
private var _deathKneel:Boolean;// = false
public var IgnoreMe:Boolean;// = false
public var FireDelayUpdated:Boolean;// = false
private var _punchHitPerformed:Boolean;// = false
private var _canRoll:Boolean;// = true
public var PunchGlideSpeed:Number;// = 2
public var Throwing:Boolean;// = false
private var _barHP:Number;// = 100
public var UpdateYAxisDistance:Number;// = 3
public var CurrentWeaponCooldown:Number;// = 0
public var PlayerJumpPower:Number;// = -5
public var CurrentFireFrame:Number;// = 0
public var FireDelayActivated:Boolean;// = false
private var _inFireDelay:Number;// = 0
private var _inWorldFire:Number;// = 0
public var AirbornTimer:Number;// = 0
public var FireRank1Attached:Boolean;// = false
public var QueueJumpKick:Boolean;// = false
public var CantRise:Boolean;// = false
private var _camera_ignore_me_timer:Number;// = 0
private var _jumping:Boolean;// = false
public var CurrentPowerupWeapon:WeaponPowerupData;
public var DefaultMeleeWeapon:WeaponMeleeData;
private var _sprintActivationDuration:int;// = 0
private var _stairVelocityX:Number;// = 0
private var _stairVelocityY:Number;// = 0
private var _last_dir_x:int;// = 1
public static var KNOCKDOWN_IMMUNITY_TIME:Number = 10;
public function PlayerState(){
PlayerGravity = 0.6;
UpdateYAxisDistance = 3;
PlayerEdgeDistance = 4;
PlayerFeetSize = 4;
PlayerJumpPower = -5;
PlayerJumpPushActivated = false;
PlayerJumpPushPower = -0.7;
PlayerJumpPushLevelOut = false;
PlayerJumpPushEnabled = false;
PlayerJumpPushTime = 4;
JumpPushTimeLeft = 0;
PlayerWallJumpPower = -5;
FallTriggerSpeed = 8.5;
StaggerSpeed = 1;
RollSpeed = 2;
DiveSpeed = 3.5;
StuckToRocket = false;
RocketRideProjectile = null;
Mass = 0.7;
KickPower = 1.6;
CantRise = false;
CheckForCover = false;
FireRank1Attached = false;
FireRank2Attached = false;
StairBounce = false;
UsingMeleeWeapon = false;
CurrentAimPitch = 0;
CurrentChangePitchSpeed = 0;
ClimbSpeed = 1.5;
SlideSpeed = 3;
CurrentLadder = null;
DisableKneel = false;
CurrentWeaponCooldown = 0;
NextLadderEffect = 4;
LadderEffectRightSide = false;
FireDelayActivated = false;
FireDelayUpdated = false;
SlowmotionDelay = 0;
CurrentFireFrame = 0;
LastFireFrame = 0;
AimMode = 0;
FastTrigger = false;
Throwing = false;
ThrowTimer = 0;
Burned = false;
CritSmokeTimer = 0;
Gone = false;
FireRankWorldExtraDamage = 0.2;
FireRank1Damage = 0.2;
FireRank2Damage = 0.4;
FireRank1Minimum = 15;
FireRank2Minimum = 100;
StairBounceDamage = 4;
KickDamage = 4;
JumpKickDamage = 4;
AirbornTimer = 0;
QueueJumpKick = false;
LockRocketSteering = false;
RocketRideTimer = 0;
EmptyWeaponRecoilBack = 0;
IgnoreMe = false;
ImmunityTimer = 0;
ImmunityDisabled = false;
game_speed = 1;
kickHitMaterialSounds = new Array(["WOOD", "BULLET_HITDEFAULT"]);
kickHitMaterialEffects = new Array(["WOOD", "HITDEFAULT_01"]);
_hp_damage_timer = 0;
_showFlashEffect = false;
_flashEffectTimer = 0;
_aimTurningAroundTimer = 0;
_aimTurningAround = false;
PunchGlideSpeed = 2;
_runSpeed = 1.7;
_aiming = false;
_climbing = false;
_camera_ignore_me_timer = 0;
_diving = false;
_jumpKickPerformed = false;
_jumping = false;
_wallJumping = false;
_canRoll = true;
_canDive = true;
_inWorldFire = 0;
_stunAnimation = 1;
_stunTimer = 0;
_puchbackDecreaseDelay = 0;
_currentPushbackPower = 0;
_drawDelay = 0;
_backToIdleTimer = 0;
_falling = false;
_kneeling = false;
_actionCooldown = 0;
_actionAvailable = true;
_rolling = false;
_sprintEnergy = 100;
_taking_cover = false;
_staggerTimer = 0;
_staggering = false;
_deathKneel = false;
_knockdowned = false;
_knockdownGrade = 0;
_decreaseKnockdownGradeTimer = 0;
_kickingCooldown = 0;
_kickingTimer = 0;
_kicking = false;
_doPunchCombo = false;
_punchComboNr = 1;
_punching = false;
_punchHitPerformed = false;
_sprinting = false;
_running = false;
_shortDiveTimer = 0;
_shortDiveAvailable = false;
_sprintActivationDuration = 0;
_reSprintActivationDuration = 0;
_airVelocityY = 0;
_airVelocityX = 0;
_stairVelocityY = 0;
_stairVelocityX = 0;
_movingDirectionInversed = 0;
_last_dir_x = 1;
_inFireDelay = 0;
_burnState = 0;
_hp = 100;
_showHealthTimer = -24;
_healthBarSpeed = 4;
_barHP = 100;
_movingDirectionX = 1;
_portalSpeedX = 0;
_portalDirectionX = 1;
_grabbed_by_player = false;
_grabbed_player = false;
_grabbed_player_nr = 0;
_grabbed_player_char_nr = 0;
_char_nr = 0;
super();
}
public function ResetChangePitchSpeed():void{
CurrentChangePitchSpeed = 0;
}
public function get DoPunchCombo():Boolean{
return (_doPunchCombo);
}
public function get BackToIdleTimer():int{
return (_backToIdleTimer);
}
public function get Punching():Boolean{
return (_punching);
}
public function set DoPunchCombo(_arg1:Boolean):void{
_doPunchCombo = _arg1;
}
public function set BackToIdleTimer(_arg1:int):void{
_backToIdleTimer = _arg1;
}
public function set CameraIgnoreTimer(_arg1:Number):void{
_camera_ignore_me_timer = _arg1;
}
public function set Punching(_arg1:Boolean):void{
if (!_arg1){
PunchComboNr = 1;
};
_punching = _arg1;
}
public function get ShortDiveAvailable():Boolean{
return (false);
}
public function get MeleeSwingEffect():String{
return (GetMeleeWeapon().Properties.SwingComboEffects[(_punchComboNr - 1)]);
}
public function get BarHP():Number{
return (_barHP);
}
public function get KnockdownRiseSpeed():Number{
return (1);
}
public function get CanRoll():Boolean{
if (!_actionAvailable){
return (false);
};
return (_canRoll);
}
public function set Rolling(_arg1:Boolean):void{
_rolling = _arg1;
if (_rolling){
_diving = false;
_sprinting = false;
} else {
_kneeling = false;
_actionCooldown = 12;
_actionAvailable = false;
};
}
public function get HitPunchComboFrame():int{
switch (_punchComboNr){
case 1:
return (4);
case 2:
return (5);
case 3:
return (6);
default:
return (0);
};
}
public function get OnGround():Boolean{
if (((((_falling) || (_jumping))) || (_climbing))){
return (false);
};
return (true);
}
public function set ShortDiveAvailable(_arg1:Boolean):void{
_shortDiveAvailable = _arg1;
}
public function set GrabbedPlayerNr(_arg1:int):void{
_grabbed_player = true;
_grabbed_player_nr = _arg1;
}
public function get Box2DCover():b2Body{
return (_box2D_cover);
}
public function get BotInterrupt():Boolean{
if (((((_falling) || (_knockdowned))) || (_grabbed_by_player))){
return (true);
};
if (((IsStunned) || (_staggering))){
return (true);
};
return (false);
}
public function set ShowFlashEffect(_arg1:Boolean):void{
_showFlashEffect = _arg1;
if (_arg1){
_flashEffectTimer = 8;
} else {
_flashEffectTimer = 0;
};
}
public function get RangeWeaponTotalDamage():Number{
if (CurrentRangeWeapon != null){
return (CurrentRangeWeapon.TotalDamage);
};
return (0);
}
public function get MeleeAnimation():String{
return (GetMeleeWeapon().Properties.Animation);
}
public function set CanRoll(_arg1:Boolean):void{
_canRoll = _arg1;
}
public function get RunSpeed():Number{
if (_sprinting){
return ((_runSpeed * 2));
};
return (_runSpeed);
}
public function get Aiming():Boolean{
return (_aiming);
}
public function get AddSmokeEffect():Boolean{
if (_burnState > 0){
if (!FireRank1Attached){
return (true);
};
};
if (CritSmokeTimer > 0){
return (true);
};
return (false);
}
public function get PortalSpeedX():Number{
if (StuckToRocket){
return (RocketRideProjectile.VelocityX);
};
if (_staggering){
return ((-(LastDirX) * 10));
};
return (_portalSpeedX);
}
public function get ControllAble():Boolean{
if ((((((((((_hp <= 0)) || (_falling))) || (_knockdowned))) || (_rolling))) || (_diving))){
return (false);
};
if (((((((((_grabbed_by_player) || (_kicking))) || (Punching))) || (Throwing))) || (_staggering))){
return (false);
};
if (((IsStunned) || (DeathKneel))){
return (false);
};
return (true);
}
public function get HitPunchDamage():Number{
return (GetMeleeWeapon().Properties.HitPunchFrameDamage[(_punchComboNr - 1)]);
}
public function set Falling(_arg1:Boolean):void{
_falling = _arg1;
if (_falling){
_camera_ignore_me_timer = (24 * 3);
CancelAFS();
_stunTimer = 0;
Throwing = false;
_diving = false;
_jumping = false;
JumpKickPerformed = false;
_knockdowned = false;
_staggering = false;
Punching = false;
_rolling = false;
TakingCover = false;
_kicking = false;
_wallJumping = false;
Aiming = false;
_climbing = false;
DeathKneel = false;
} else {
AirVelocityX = 0;
AirVelocityY = 0;
};
}
public function set PortalDirectionX(_arg1:int):void{
_portalDirectionX = _arg1;
}
public function get ClimbingDirection():int{
if (AirVelocityY < 0){
return (-1);
};
if (AirVelocityY > 0){
return (1);
};
return (0);
}
public function get Jumping():Boolean{
return (_jumping);
}
public function set JumpKickPerformed(_arg1:Boolean):void{
_jumpKickPerformed = _arg1;
}
public function DecreaseBurnState():void{
if ((((((BurnState < 100)) && (!(Burned)))) && (!(InWorldFire)))){
BurnState = 0;
} else {
BurnState = (BurnState - 50);
if (BurnState < 50){
BurnState = 50;
};
};
}
public function Update(_arg1:Number):void{
game_speed = _arg1;
if (_flashEffectTimer > 0){
_flashEffectTimer = (_flashEffectTimer - 1);
};
if (SlowmotionDelay > 0){
SlowmotionDelay = (SlowmotionDelay - 1);
};
if (ImmunityTimer > 0){
ImmunityTimer = (ImmunityTimer - game_speed);
};
if ((((HP < 100)) && ((_hp_damage_timer <= 0)))){
HP = (HP + (_arg1 * 0.1));
} else {
if (_hp_damage_timer > 0){
_hp_damage_timer = (_hp_damage_timer - game_speed);
};
};
if (CritSmokeTimer > 0){
CritSmokeTimer = (CritSmokeTimer - game_speed);
};
if (_inFireDelay > 0){
_inFireDelay = (_inFireDelay - game_speed);
};
if (AddSmokeEffect){
if (_inFireDelay <= 0){
_burnState = (_burnState - game_speed);
};
if (_burnState < 0){
_burnState = 0;
};
};
if (_kickingTimer > 0){
_kickingTimer = (_kickingTimer - game_speed);
};
if (_kickingCooldown > 0){
_kickingCooldown = (_kickingCooldown - game_speed);
};
if (_drawDelay > 0){
_drawDelay = (_drawDelay - 1);
};
if (_aimTurningAroundTimer > 0){
_aimTurningAroundTimer = (_aimTurningAroundTimer - 1);
if (_aimTurningAroundTimer <= 0){
if (AimTurningAround){
AimTurningAround = false;
};
};
};
if (_backToIdleTimer > 0){
_backToIdleTimer = (_backToIdleTimer - 1);
};
if (_reSprintActivationDuration > 0){
_reSprintActivationDuration = (_reSprintActivationDuration - 1);
};
if (_sprintActivationDuration > 0){
_sprintActivationDuration = (_sprintActivationDuration - 1);
if (_sprintActivationDuration <= 0){
_sprinting = false;
};
};
if (_shortDiveTimer > 0){
_shortDiveTimer = (_shortDiveTimer - 1);
if (_shortDiveTimer <= 0){
_shortDiveAvailable = false;
};
};
if (_actionCooldown > 0){
_actionCooldown = (_actionCooldown - game_speed);
if (_actionCooldown <= 0){
_actionAvailable = true;
};
};
if (_showHealthTimer > -24){
_showHealthTimer = (_showHealthTimer - 1);
if (_showHealthTimer >= 0){
_barHP = (_barHP + _healthBarSpeed);
};
if (_showHealthTimer <= -24){
_showHealthTimer = -24;
};
};
if (((OnGround) && (!(Rolling)))){
if (((_sprinting) && (_running))){
_sprintEnergy = (_sprintEnergy - (game_speed * 1.2));
if (_sprintEnergy <= 0){
_sprintEnergy = 0;
_sprinting = false;
};
} else {
if (_sprintEnergy < 100){
if (_running){
_sprintEnergy = (_sprintEnergy + game_speed);
} else {
_sprintEnergy = (_sprintEnergy + (game_speed + game_speed));
};
if (_sprintEnergy > 100){
_sprintEnergy = 100;
};
};
};
} else {
if (Climbing){
_sprintEnergy = (_sprintEnergy + game_speed);
if (_sprintEnergy > 100){
_sprintEnergy = 100;
};
};
};
if (_puchbackDecreaseDelay > 0){
_puchbackDecreaseDelay = (_puchbackDecreaseDelay - game_speed);
} else {
if (_currentPushbackPower > 0){
_currentPushbackPower = (_currentPushbackPower - (10 * game_speed));
};
};
if (_stunTimer > 0){
_stunTimer = (_stunTimer - game_speed);
};
if (_camera_ignore_me_timer > 0){
if (OnGround){
_camera_ignore_me_timer = (_camera_ignore_me_timer - 1);
};
};
if (Jumping){
AirbornTimer = (AirbornTimer + game_speed);
};
if (Staggering){
StaggerTimer = (StaggerTimer - game_speed);
if (StaggerTimer <= 0){
StopStaggerFunc();
Staggering = false;
StaggerTimer = 0;
};
};
if (Burned){
if (_burnState > 0){
if (OnGround){
_burnState = (_burnState - (game_speed * 1.5));
if (_burnState <= 0){
_burnState = 0;
} else {
if (_burnState >= 90){
_burnState = 90;
};
};
};
};
};
if (_inWorldFire > 0){
_inWorldFire = (_inWorldFire - game_speed);
};
if (((!(Knockdowned)) || ((HP <= 0)))){
if (_decreaseKnockdownGradeTimer > 0){
_decreaseKnockdownGradeTimer = (_decreaseKnockdownGradeTimer - game_speed);
if (_decreaseKnockdownGradeTimer <= 0){
_knockdownGrade = (_knockdownGrade - 1);
if (_knockdownGrade > 0){
_decreaseKnockdownGradeTimer = 12;
};
};
};
};
}
public function set Knockdowned(_arg1:Boolean):void{
_knockdowned = _arg1;
if (_knockdowned){
_stunTimer = 0;
_staggering = false;
DeathKneel = false;
};
}
public function set TakingCover(_arg1:Boolean):void{
_taking_cover = _arg1;
if (!_taking_cover){
if (Box2DCover != null){
Box2DCover.GetUserData().objectData.PlayerCoverLevel = (Box2DCover.GetUserData().objectData.PlayerCoverLevel - 1);
Box2DCover = null;
};
};
}
public function set Box2DCover(_arg1:b2Body):void{
_box2D_cover = _arg1;
if (_box2D_cover != null){
_box2D_cover.GetUserData().objectData.PlayerCoverLevel = (_box2D_cover.GetUserData().objectData.PlayerCoverLevel + 1);
};
}
public function get KickingTimer():Number{
return (_kickingTimer);
}
public function set DrawDelay(_arg1:int):void{
_drawDelay = _arg1;
}
public function IncreaseKnockdownGrade():void{
if (HP <= 0){
return;
};
if (_knockdownGrade < 3){
_knockdownGrade = (_knockdownGrade + 1);
_decreaseKnockdownGradeTimer = 12;
};
}
public function get MovingDirectionInversed():int{
return (_movingDirectionInversed);
}
public function get HP():Number{
return (_hp);
}
public function get AirVelocityX():Number{
return (_airVelocityX);
}
public function get AirVelocityY():Number{
return (_airVelocityY);
}
public function set StunTimer(_arg1:Number):void{
_stunTimer = _arg1;
if (_stunTimer > 0){
CancelAFS();
Punching = false;
DoPunchCombo = false;
};
if (_stunAnimation < 2){
_stunAnimation++;
} else {
_stunAnimation = 1;
};
}
public function get InWorldFire():Boolean{
return ((_inWorldFire > 0));
}
public function get MeleeWeaponTotalDamage():Number{
return (GetMeleeWeapon().TotalDamage);
}
public function get Climbing():Boolean{
return (_climbing);
}
public function get GrabbedPlayerCharNr():int{
return (_grabbed_player_char_nr);
}
public function get MeleeSwingSound():String{
return (GetMeleeWeapon().Properties.SwingComboSounds[(_punchComboNr - 1)]);
}
public function get Staggering():Boolean{
return (_staggering);
}
public function get BloodVisible():Boolean{
return ((((_hp <= 25)) && (!(Burned))));
}
public function set Aiming(_arg1:Boolean):void{
_aiming = _arg1;
if (_arg1){
CurrentAimPitch = 0;
ResetChangePitchSpeed();
Kneeling = false;
} else {
_backToIdleTimer = 0;
};
}
public function get HitPunchStunTime():Number{
switch (_punchComboNr){
case 1:
return ((3 + (Math.random() * 5)));
case 2:
return ((4 + (Math.random() * 5)));
case 3:
return ((5 + (Math.random() * 5)));
default:
return (0);
};
}
public function set PortalSpeedX(_arg1:Number):void{
_portalSpeedX = _arg1;
}
public function get CoverObjectID():int{
if (!TakingCover){
return (-1);
};
return (_cover_object_id);
}
public function get LastDirX():int{
return (_last_dir_x);
}
public function get ClimbingAround():Boolean{
if (((!((AirVelocityX == 0))) || (!((AirVelocityY == 0))))){
return (true);
};
return (false);
}
public function GetMeleeMaterialHitEffect(_arg1:String):String{
var _local2:WeaponMeleeData;
var _local3:int;
_arg1 = _arg1.toUpperCase();
_local2 = GetMeleeWeapon();
_local3 = 0;
while (_local3 < _local2.Properties.HitMaterialEffects.length) {
if (_local2.Properties.HitMaterialEffects[_local3][0] == _arg1){
return (_local2.Properties.HitMaterialEffects[_local3][1]);
};
_local3++;
};
return ("");
}
public function get SprintEnergy():Number{
return (_sprintEnergy);
}
public function get CameraIgnoreMe():Boolean{
if (_hp > 0){
return (false);
};
if (_camera_ignore_me_timer > 0){
return (false);
};
if (_staggering){
return (false);
};
return (true);
}
public function get ShowHealthBar():Boolean{
if (_showHealthTimer > -24){
return (true);
};
return (false);
}
public function get DeathKneel():Boolean{
return (_deathKneel);
}
public function get PunchHitPerformed():Boolean{
return (_punchHitPerformed);
}
public function get Running():Boolean{
return (_running);
}
public function set Jumping(_arg1:Boolean):void{
_jumping = _arg1;
if (!_jumping){
JumpKickPerformed = false;
_airVelocityY = 0;
_wallJumping = false;
} else {
AirbornTimer = 0;
_rolling = false;
TakingCover = false;
DeathKneel = false;
if (_knockdowned){
Falling = true;
};
};
QueueJumpKick = false;
}
public function get CurrentPushbackPower():Number{
return (_currentPushbackPower);
}
public function get CanDive():Boolean{
if (!_actionAvailable){
return (false);
};
return (_canDive);
}
public function get Diving():Boolean{
return (_diving);
}
public function get GrabbedPlayer():Boolean{
return (_grabbed_player);
}
public function set KickingTimer(_arg1:Number):void{
_kickingTimer = _arg1;
}
public function get IsStunned():Boolean{
return ((_stunTimer > 0));
}
public function get StairVelocityX():Number{
return (_stairVelocityX);
}
public function get MeleeWeaponHitSound():String{
return (GetMeleeWeapon().Properties.HitSound);
}
public function get WallJumpSpeed():Number{
return (_runSpeed);
}
public function get AFSInProgress():Boolean{
return ((CurrentFireFrame > 0));
}
public function get CurrentAimAngleThrowable():Number{
if (LastDirX == 1){
return ((CurrentAimPitch - 25));
};
return (((180 - CurrentAimPitch) + 25));
}
public function get StairVelocityY():Number{
return (_stairVelocityY);
}
public function set PunchComboNr(_arg1:int):void{
PunchHitPerformed = false;
_punchComboNr = _arg1;
}
public function set MovingDirectionInversed(_arg1:int):void{
_movingDirectionInversed = _arg1;
}
public function set HP(_arg1:Number):void{
if (_hp <= 0){
return;
};
if (_hp > _arg1){
_hp_damage_timer = (24 * 3);
};
_barHP = _hp;
_hp = _arg1;
if (_hp <= 0){
_hp = 0;
};
if (_hp > 100){
_hp = 100;
};
_healthBarSpeed = ((_hp - _barHP) / 6);
_showHealthTimer = 6;
}
public function get KnockdownGrade():int{
return (_knockdownGrade);
}
public function set AirVelocityY(_arg1:Number):void{
_airVelocityY = _arg1;
}
public function get Rolling():Boolean{
return (_rolling);
}
public function set ForceHP(_arg1:Number):void{
_barHP = _arg1;
_hp = _arg1;
}
public function set AirVelocityX(_arg1:Number):void{
_airVelocityX = _arg1;
}
public function get AimTurningAroundDelay():Boolean{
if (((_aimTurningAround) || ((_aimTurningAroundTimer > 0)))){
return (true);
};
return (false);
}
public function get GrabbedPlayerNr():int{
return (_grabbed_player_nr);
}
public function get ShowFlashEffect():Boolean{
return (_showFlashEffect);
}
public function UpdateCameraIgnoreTimer():void{
if (_camera_ignore_me_timer > 0){
_camera_ignore_me_timer = (_camera_ignore_me_timer - 1);
};
}
public function GetKickMaterialHitSound(_arg1:String):String{
var _local2:int;
_arg1 = _arg1.toUpperCase();
_local2 = 0;
while (_local2 < kickHitMaterialSounds.length) {
if (kickHitMaterialSounds[_local2][0] == _arg1){
return (kickHitMaterialSounds[_local2][1]);
};
_local2++;
};
return ("");
}
public function get FlashEffectTimer():int{
return (_flashEffectTimer);
}
public function set InWorldFire(_arg1:Boolean):void{
if (_arg1){
_inWorldFire = 2.5;
} else {
_inWorldFire = 0;
};
}
public function set Climbing(_arg1:Boolean):void{
_climbing = _arg1;
if (!_arg1){
CurrentLadder = null;
QueueJumpKick = false;
JumpKickPerformed = false;
AirbornTimer = 0;
};
}
public function GetKickMaterialHitEffect(_arg1:String):String{
var _local2:int;
_arg1 = _arg1.toUpperCase();
_local2 = 0;
while (_local2 < kickHitMaterialEffects.length) {
if (kickHitMaterialEffects[_local2][0] == _arg1){
return (kickHitMaterialEffects[_local2][1]);
};
_local2++;
};
return ("");
}
public function get PortalDirectionX():int{
if (StuckToRocket){
return (ConvertToDirection(RocketRideProjectile.VelocityX));
};
return (_portalDirectionX);
}
public function get Falling():Boolean{
return (_falling);
}
public function set Staggering(_arg1:Boolean):void{
_staggering = _arg1;
if (!_arg1){
_staggerTimer = 0;
} else {
Punching = false;
_knockdowned = false;
_falling = false;
_jumping = false;
};
}
public function get IsImmune():Boolean{
return ((((ImmunityTimer > 0)) && (!(ImmunityDisabled))));
}
public function set GrabbedPlayerCharNr(_arg1:int):void{
_grabbed_player_char_nr = _arg1;
}
public function get Knockdowned():Boolean{
return (_knockdowned);
}
public function get TakingCover():Boolean{
return (_taking_cover);
}
public function get DrawDelay():int{
return (_drawDelay);
}
public function set LastDirX(_arg1:int):void{
_last_dir_x = _arg1;
}
public function get TotalAirVelocity():Number{
return (Math.sqrt(((_airVelocityX * _airVelocityX) + (_airVelocityY * _airVelocityY))));
}
public function get JumpKickPerformed():Boolean{
return (_jumpKickPerformed);
}
public function get StunTimer():Number{
return (_stunTimer);
}
public function get MeleeWeaponRange():Number{
return (GetMeleeWeapon().Properties.Range[(_punchComboNr - 1)]);
}
public function set KickingCooldown(_arg1:Number):void{
_kickingCooldown = _arg1;
}
public function get RangeWeaponTotalAmmo():Number{
if (CurrentRangeWeapon != null){
if (CurrentRangeWeapon.Properties.WeaponType == "FLAMETHROWER"){
return ((CurrentRangeWeapon.Ammo / 10));
};
return (CurrentRangeWeapon.Ammo);
};
return (0);
}
public function set AimTurningAround(_arg1:Boolean):void{
_aimTurningAround = _arg1;
if (!_arg1){
_aimTurningAroundTimer = 2;
} else {
BackToIdleTimer = 0;
};
}
public function set CoverObjectID(_arg1:int):void{
_cover_object_id = _arg1;
}
public function set SprintEnergy(_arg1:Number):void{
_sprintEnergy = _arg1;
if (_sprintEnergy < 0){
_sprintEnergy = 0;
};
}
public function set Sprinting(_arg1:Boolean):void{
_sprinting = _arg1;
}
public function get MaxPlayerHeight():Number{
return (18);
}
public function get LowerAimPitch():int{
switch (AimMode){
case 0:
return (90);
case 1:
return (90);
default:
return (45);
};
}
public function get PunchComboNr():int{
return (_punchComboNr);
}
public function get CurrentAimAngle():Number{
if (LastDirX == 1){
return (CurrentAimPitch);
};
return ((180 - CurrentAimPitch));
}
public function get RangeWeaponRange():Number{
if (CurrentRangeWeapon != null){
return (CurrentRangeWeapon.Properties.ShootRange);
};
return (40);
}
public function set DeathKneel(_arg1:Boolean):void{
_deathKneel = _arg1;
if (_arg1){
Staggering = false;
Punching = false;
CancelAFS();
};
}
public function set PunchHitPerformed(_arg1:Boolean):void{
_punchHitPerformed = _arg1;
}
public function set Running(_arg1:Boolean):void{
if (!_arg1){
if (_sprinting){
_sprinting = false;
_reSprintActivationDuration = 2;
} else {
if (((((_running) && (!(_jumping)))) && (!(TakingCover)))){
_sprintActivationDuration = 3;
};
};
} else {
if (_reSprintActivationDuration > 0){
_reSprintActivationDuration = 0;
_sprintActivationDuration = 0;
_sprinting = true;
} else {
if (_sprintActivationDuration > 0){
_shortDiveAvailable = true;
_shortDiveTimer = 3;
_sprintActivationDuration = 0;
_sprinting = true;
};
};
};
_running = _arg1;
}
public function get KickingCooldown():Number{
return (_kickingCooldown);
}
public function get AimTurningAround():Boolean{
return (_aimTurningAround);
}
public function set CurrentPushbackPower(_arg1:Number):void{
_currentPushbackPower = _arg1;
_puchbackDecreaseDelay = 3;
}
public function set WallJumping(_arg1:Boolean):void{
_wallJumping = _arg1;
}
public function get CanGrabWeapon():Boolean{
if (((((((((((((_falling) || (_knockdowned))) || (_grabbed_by_player))) || (_climbing))) || (Throwing))) || (_kicking))) || (Punching))){
return (false);
};
if (((((IsStunned) || (_staggering))) || (DeathKneel))){
return (false);
};
return (true);
}
public function get Sprinting():Boolean{
return (_sprinting);
}
public function set StaggerTimer(_arg1:Number):void{
_staggerTimer = _arg1;
}
public function set Kicking(_arg1:Boolean):void{
_kicking = _arg1;
if (_kicking){
KickingTimer = 8;
_kickingCooldown = 8;
TakingCover = false;
};
}
public function get CanBeKicked():Boolean{
if (IsImmune){
return (false);
};
if (_knockdownGrade >= 2){
return (false);
};
if (GrabbedByPlayer){
return (false);
};
if (IgnoreMe){
return (false);
};
return (true);
}
public function GetMeleeMaterialHitSound(_arg1:String):String{
var _local2:WeaponMeleeData;
var _local3:int;
_arg1 = _arg1.toUpperCase();
_local2 = GetMeleeWeapon();
_local3 = 0;
while (_local3 < _local2.Properties.HitMaterialSounds.length) {
if (_local2.Properties.HitMaterialSounds[_local3][0] == _arg1){
return (_local2.Properties.HitMaterialSounds[_local3][1]);
};
_local3++;
};
return ("");
}
public function get PlayerHeight():Number{
if (_diving){
return (8);
};
if (_knockdowned){
return (10);
};
if (_falling){
return (12);
};
if (_rolling){
return (14);
};
if (((_kneeling) || (TakingCover))){
return (12);
};
return (18);
}
public function get CurrentAimAngleRad():Number{
return ((CurrentAimAngle * (Math.PI / 180)));
}
public function set CanDive(_arg1:Boolean):void{
_canDive = _arg1;
}
public function set MovingDirectionX(_arg1:int):void{
_movingDirectionX = _arg1;
}
public function GetMeleeWeapon():WeaponMeleeData{
if (CurrentMeleeWeapon != null){
return (CurrentMeleeWeapon);
};
return (DefaultMeleeWeapon);
}
public function get UpperAimPitch():int{
switch (AimMode){
case 0:
return (90);
case 1:
return (90);
default:
return (90);
};
}
public function set GrabbedByPlayer(_arg1:Boolean):void{
_grabbed_by_player = _arg1;
}
public function set Diving(_arg1:Boolean):void{
_diving = _arg1;
}
public function get WallJumping():Boolean{
return (_wallJumping);
}
public function set GrabbedPlayer(_arg1:Boolean):void{
_grabbed_player = _arg1;
}
public function get RangeWeaponIsBazooka():Boolean{
if (CurrentRangeWeapon != null){
if (CurrentRangeWeapon.Properties.WeaponType == "BAZOOKA"){
return (true);
};
};
return (false);
}
public function get RangeWeaponCanShootDown():Boolean{
if (CurrentRangeWeapon != null){
return (CurrentRangeWeapon.CanShootDown);
};
return (false);
}
public function set Kneeling(_arg1:Boolean):void{
_kneeling = _arg1;
if (_kneeling){
_sprinting = false;
if (TakingCover){
_kneeling = false;
};
};
}
public function set CharNr(_arg1:int):void{
_char_nr = _arg1;
}
public function get StaggerTimer():Number{
return (_staggerTimer);
}
public function get MinPunchComboFrame():int{
switch (_punchComboNr){
case 1:
return (6);
case 2:
return (7);
case 3:
return (8);
default:
return (0);
};
}
public function get Kicking():Boolean{
return (_kicking);
}
public function set BurnState(_arg1:Number):void{
if (!Burned){
_burnState = _arg1;
_inFireDelay = 3.5;
if (_burnState > 100){
_burnState = 100;
} else {
if (_burnState < 0){
_burnState = 0;
};
};
};
}
private function ConvertToDirection(_arg1:Number):int{
if (_arg1 == 0){
return (0);
};
return ((_arg1 / Math.sqrt((_arg1 * _arg1))));
}
public function get StunAnimation():int{
return (_stunAnimation);
}
public function get GrabbedByPlayer():Boolean{
return (_grabbed_by_player);
}
public function get MovingDirectionX():int{
return (_movingDirectionX);
}
public function get RangeWeaponIsFlamethrower():Boolean{
if (CurrentRangeWeapon != null){
if (CurrentRangeWeapon.Properties.WeaponType == "FLAMETHROWER"){
return (true);
};
};
return (false);
}
public function get Kneeling():Boolean{
return (_kneeling);
}
public function get CharNr():int{
return (_char_nr);
}
public function set StairVelocityX(_arg1:Number):void{
_stairVelocityX = _arg1;
}
public function set StairVelocityY(_arg1:Number):void{
_stairVelocityY = _arg1;
}
public function get BurnState():Number{
if (Gone){
return (0);
};
return (_burnState);
}
public function CancelAFS():void{
CurrentFireFrame = 0;
LastFireFrame = 0;
if (BackToIdleTimer < 6){
BackToIdleTimer = 6;
};
}
}
}//package Code.Data.Players
Section 103
//PlayerTeamColor (Code.Data.Players.PlayerTeamColor)
package Code.Data.Players {
public class PlayerTeamColor {
public static var TEAM:Array = [[0, 64, 0xFF], [0xFF, 0, 0], [0xFF, 0xFF, 0], [0, 0xFF, 0]];
public static var SOLO:Array = [230, 230, 230];
}
}//package Code.Data.Players
Section 104
//WeaponData (Code.Data.Weapons.WeaponData)
package Code.Data.Weapons {
public class WeaponData {
private var w_infinite_ammo:Boolean;
private var w_ammo:int;
private var w_properties:WeaponProperties;
public function WeaponData(_arg1:int, _arg2:WeaponProperties, _arg3:Boolean=false){
w_ammo = _arg1;
w_properties = _arg2;
w_infinite_ammo = _arg3;
}
public function set InfiniteAmmo(_arg1:Boolean):void{
w_infinite_ammo = _arg1;
}
public function get Properties():WeaponProperties{
return (w_properties);
}
public function get Ammo():int{
if (w_infinite_ammo){
return (99);
};
return (w_ammo);
}
public function get TotalKnockdown():Number{
if (Properties.WeaponType == "FLAMETHROWER"){
return (0);
};
return (((Ammo * Properties.Projectile.Properties.PushbackPower) + Properties.Projectile.Properties.CriticalChance));
}
public function Copy():WeaponData{
return (new WeaponData(w_ammo, w_properties, w_infinite_ammo));
}
public function get CanShootDown():Boolean{
switch (Properties.WeaponType){
case "FLAMETHROWER":
return (false);
};
return (true);
}
public function get TotalDamage():Number{
if (Properties.WeaponType == "FLAMETHROWER"){
return ((Ammo * 1));
};
return ((Ammo * Properties.Projectile.AverageDamage));
}
public function set Ammo(_arg1:int):void{
if (!w_infinite_ammo){
w_ammo = _arg1;
};
}
}
}//package Code.Data.Weapons
Section 105
//WeaponMeleeData (Code.Data.Weapons.WeaponMeleeData)
package Code.Data.Weapons {
public class WeaponMeleeData {
private var t_charges:int;
private var t_properties:WeaponMeleeProperties;
public function WeaponMeleeData(_arg1:int, _arg2:WeaponMeleeProperties){
t_charges = _arg1;
t_properties = _arg2;
}
public function get TotalDamage():Number{
return (((Properties.HitPunchFrameDamage[0] + Properties.HitPunchFrameDamage[1]) + Properties.HitPunchFrameDamage[2]));
}
public function get Ammo():int{
return (t_charges);
}
public function get Properties():WeaponMeleeProperties{
return (t_properties);
}
public function Copy():WeaponMeleeData{
return (new WeaponMeleeData(t_charges, t_properties));
}
public function set Ammo(_arg1:int):void{
t_charges = _arg1;
}
}
}//package Code.Data.Weapons
Section 106
//WeaponMeleeProperties (Code.Data.Weapons.WeaponMeleeProperties)
package Code.Data.Weapons {
public class WeaponMeleeProperties {
public var HitPunchFrameDamage:Array;
public var PickupRadius:Number;
public var SwingComboEffects:Array;
public var PickupSound:String;
public var WeaponType:String;
public var HitSound:String;
public var Range:Array;
public var HitMaterialSounds:Array;
public var Animation:String;
public var HitMaterialEffects:Array;
public var SwingComboSounds:Array;
}
}//package Code.Data.Weapons
Section 107
//WeaponPowerupData (Code.Data.Weapons.WeaponPowerupData)
package Code.Data.Weapons {
public class WeaponPowerupData {
private var t_time:int;
private var t_properties:WeaponPowerupProperties;
public function WeaponPowerupData(_arg1:int, _arg2:WeaponPowerupProperties){
t_time = _arg1;
t_properties = _arg2;
}
public function get TotalDamage():Number{
return (10);
}
public function get Ammo():int{
return (t_time);
}
public function get Properties():WeaponPowerupProperties{
return (t_properties);
}
public function Copy():WeaponPowerupData{
return (new WeaponPowerupData(t_time, t_properties));
}
public function set Ammo(_arg1:int):void{
t_time = _arg1;
}
}
}//package Code.Data.Weapons
Section 108
//WeaponPowerupProperties (Code.Data.Weapons.WeaponPowerupProperties)
package Code.Data.Weapons {
public class WeaponPowerupProperties {
public var PickupSound:String;
public var WeaponType:String;
public var PickupRadius:Number;
}
}//package Code.Data.Weapons
Section 109
//WeaponProperties (Code.Data.Weapons.WeaponProperties)
package Code.Data.Weapons {
import Code.Data.*;
public class WeaponProperties {
public var BulletType:String;
public var Projectile:ProjectileData;
public var AnimType:String;
public var ShellEffect:String;
public var PickupSound:String;
public var PickupRadius:Number;
public var WeaponType:String;
public var WeaponCooldown:int;
public var MuzzleFlashEffect:String;
public var EmptySound:String;
public var AimSound:String;
public var LaserDeflection:Number;
public var AccuracyDeflection:Number;
public var FireSequence:Array;
public var LaserSight:Boolean;
public var ShootRange:Number;
public function WeaponProperties(){
FireSequence = new Array();
super();
}
}
}//package Code.Data.Weapons
Section 110
//WeaponSequencePart (Code.Data.Weapons.WeaponSequencePart)
package Code.Data.Weapons {
public class WeaponSequencePart {
public var FrameSound:String;
public var End:Boolean;
public var FrameNr:int;
public var Bullets:int;
public var UseMuzzleEffect:Boolean;
public var UseShellEffect:Boolean;
public function WeaponSequencePart(_arg1:int=0, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:String="NONE", _arg5:int=1, _arg6:Boolean=false){
Bullets = _arg1;
UseMuzzleEffect = _arg2;
UseShellEffect = _arg3;
FrameSound = _arg4;
FrameNr = _arg5;
End = _arg6;
}
}
}//package Code.Data.Weapons
Section 111
//WeaponThrowableData (Code.Data.Weapons.WeaponThrowableData)
package Code.Data.Weapons {
public class WeaponThrowableData {
private var t_amount:int;
private var t_infinite_ammo:Boolean;
private var t_properties:WeaponThrowableProperties;
public function WeaponThrowableData(_arg1:int, _arg2:WeaponThrowableProperties, _arg3:Boolean=false){
t_amount = _arg1;
t_properties = _arg2;
t_infinite_ammo = _arg3;
}
public function get Properties():WeaponThrowableProperties{
return (t_properties);
}
public function set InfiniteAmmo(_arg1:Boolean):void{
t_infinite_ammo = _arg1;
}
public function Copy():WeaponThrowableData{
return (new WeaponThrowableData(t_amount, t_properties, t_infinite_ammo));
}
public function get TotalDamage():Number{
switch (Properties.WeaponType){
case "GRENADE":
return (20);
case "MOLOTOV":
return (15);
};
return (0);
}
public function set Ammo(_arg1:int):void{
if (!t_infinite_ammo){
t_amount = _arg1;
};
}
public function get Ammo():int{
if (t_infinite_ammo){
return (99);
};
return (t_amount);
}
}
}//package Code.Data.Weapons
Section 112
//WeaponThrowableProperties (Code.Data.Weapons.WeaponThrowableProperties)
package Code.Data.Weapons {
public class WeaponThrowableProperties {
public var ThrowType:String;
public var AimSound:String;
public var AnimType:String;
public var PickupRadius:Number;
public var PickupSound:String;
public var WeaponType:String;
public var ThrowTimer:int;
}
}//package Code.Data.Weapons
Section 113
//BodyData (Code.Data.BodyData)
package Code.Data {
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import flash.display.*;
public class BodyData {
private var _can_crush:Boolean;// = false
private var _isBulletHazard:Boolean;// = false
private var _playerCoverLevel:int;// = 0
protected var _Handler_Deconstructer:Deconstructer;
protected var _mc:MovieClip;
protected var _resistance_fire:Number;
private var _canBlockFire:Boolean;// = false
private var _shape_mc:MovieClip;
private var _isBurningHazard:Boolean;// = false
private var _bulletTransparent:Boolean;// = false
private var _isExplosionHazard:Boolean;// = false
private var _canBurn:Boolean;// = false
protected var _body:b2Body;
private var _kickWeightCalculation:Boolean;// = false
private var _drawCloudBox:Boolean;// = false
private var _onlyBurnWhileWake:Boolean;// = false
private var _fireLifeSpan:Number;// = 0
protected var _indestructible:Boolean;
private var _objectSmokeGrade:int;// = 0
private var _objectOnFire:Boolean;// = false
private var _canKnockDownPlayer:Boolean;// = true
protected var _hp_max:Number;
private var _canSmoke:Boolean;// = false
private var _kickPower:Number;// = 0
private var _ignoreCoverID:int;// = -1
private var _aimTransparent:Boolean;// = false
private var _isThrowableFragile:Boolean;// = false
public var UserValues:Array;// = null
private var _can_gibb:Boolean;// = false
private var _isActiveHazard:Boolean;// = false
private var _laserVisibleOnObject:Boolean;// = false
public var ObjectTimer:Number;// = 0
private var _affectedByExplosions:Boolean;// = false
private var _canBlockExplosions:Boolean;// = false
private var _player_fragile:Boolean;// = false
private var _drawHitBox:Boolean;// = false
private var _isHazard:Boolean;// = false
protected var _resistance_bullet:Number;
private var _lastDamage:int;
private var _inPortal:Boolean;// = false
private var _crush_damage:Number;// = 0
private var _drawShapeMC:Boolean;// = true
private var _isImpactHazard:Boolean;// = false
protected var _resistance_explosion:Number;
private var _is_glass:Boolean;// = false
protected var _resistance_impact:Number;
private var _throughPortal:Boolean;// = false
private var _botPreferJump:Boolean;// = false
private var _isThrowableObject:Boolean;// = false
private var _strength:int;// = 10
private var _collision_mc:MovieClip;
protected var _hp:Number;
private var _player_bounce:Boolean;// = false
private var _partOfStaticWorld:Boolean;// = false
private var _isElevator:Boolean;// = false
private var _canCarryFire:Boolean;// = false
private var _laserTransparent:Boolean;// = false
public var UpdateFunction:Function;
private var _kickable:Boolean;// = false
public static var DAMAGE_BULLET:int = 2;
public static var DAMAGE_EXPLOSION:int = 3;
public static var DAMAGE_FIRE:int = 1;
public static var DAMAGE_IMPACT:int = 0;
public function BodyData(_arg1:MovieClip, _arg2:Deconstructer, _arg3:Number=50, _arg4:Number=1, _arg5:Number=1, _arg6:Number=1, _arg7:Number=1, _arg8:Boolean=false){
var mc = _arg1;
var dec = _arg2;
var h = _arg3;
var ri = _arg4;
var rf = _arg5;
var rb = _arg6;
var re = _arg7;
var ind = _arg8;
_drawHitBox = false;
_drawCloudBox = false;
_drawShapeMC = true;
_player_bounce = false;
_player_fragile = false;
_is_glass = false;
_kickable = false;
_kickPower = 0;
_kickWeightCalculation = false;
_can_gibb = false;
_can_crush = false;
_crush_damage = 0;
_canBlockExplosions = false;
_affectedByExplosions = false;
_canBlockFire = false;
_canBurn = false;
_canCarryFire = false;
_canSmoke = false;
_objectOnFire = false;
_objectSmokeGrade = 0;
_canKnockDownPlayer = true;
_playerCoverLevel = 0;
_bulletTransparent = false;
_aimTransparent = false;
_laserTransparent = false;
_laserVisibleOnObject = false;
_onlyBurnWhileWake = false;
_fireLifeSpan = 0;
_strength = 10;
_inPortal = false;
_throughPortal = false;
_isHazard = false;
_isBurningHazard = false;
_isBulletHazard = false;
_isImpactHazard = false;
_isExplosionHazard = false;
_isActiveHazard = false;
_isThrowableFragile = false;
_isThrowableObject = false;
_botPreferJump = false;
_partOfStaticWorld = false;
_ignoreCoverID = -1;
UserValues = null;
ObjectTimer = 0;
_isElevator = false;
super();
_mc = mc;
_mc.stop();
_Handler_Deconstructer = dec;
_hp = h;
_hp_max = hp;
_resistance_impact = ri;
_resistance_fire = rf;
_resistance_bullet = rb;
_resistance_explosion = re;
_indestructible = ind;
_drawHitBox = false;
_lastDamage = 0;
UserValues = new Array();
UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
};
}
public function get CanBeHazard():Boolean{
return (((((((((_isActiveHazard) || (_isBurningHazard))) || (_isBulletHazard))) || (_isImpactHazard))) || (_isExplosionHazard)));
}
public function set HP(_arg1:Number):void{
_hp = _arg1;
}
public function get InPortal():Boolean{
return (_inPortal);
}
public function Damage_Impact(_arg1:Number):void{
_lastDamage = DAMAGE_IMPACT;
Damage((_arg1 * _resistance_impact));
}
public function SetResistance(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1):void{
_resistance_impact = _arg1;
_resistance_fire = _arg2;
_resistance_bullet = _arg3;
_resistance_explosion = _arg4;
}
public function get IsBulletHazard():Boolean{
return (_isBulletHazard);
}
public function get CanCarryFire():Boolean{
return (_canCarryFire);
}
public function set InPortal(_arg1:Boolean):void{
_inPortal = _arg1;
}
public function get CollisionMC():MovieClip{
return (_collision_mc);
}
public function get PartOfStaticWorld():Boolean{
return (_partOfStaticWorld);
}
public function get ResistanceFire():Number{
return (_resistance_fire);
}
public function set PartOfStaticWorld(_arg1:Boolean):void{
_partOfStaticWorld = _arg1;
}
public function set IsBulletHazard(_arg1:Boolean):void{
_isBulletHazard = _arg1;
}
public function get PlayerFragile():Boolean{
return (_player_fragile);
}
public function get KickPower():Number{
return (_kickPower);
}
public function set IsActiveHazard(_arg1:Boolean):void{
_isActiveHazard = _arg1;
}
public function Damage_Explosion(_arg1:Number):void{
_lastDamage = DAMAGE_EXPLOSION;
Damage((_arg1 * _resistance_explosion));
}
public function get CanKnockDownPlayer():Boolean{
return (_canKnockDownPlayer);
}
public function set CanCarryFire(_arg1:Boolean):void{
_canCarryFire = _arg1;
}
public function set CollisionMC(_arg1:MovieClip):void{
_collision_mc = _arg1;
}
public function get IsElevator():Boolean{
return (_isElevator);
}
public function get IsGlass():Boolean{
return (_is_glass);
}
public function get Strength():int{
return (_strength);
}
public function get LaserVisibleOnObject():Boolean{
return (_laserVisibleOnObject);
}
public function get ObjectSmokeGrade():int{
return (_objectSmokeGrade);
}
public function get AffectedByExplosions():Boolean{
return (_affectedByExplosions);
}
public function set PlayerFragile(_arg1:Boolean):void{
_player_fragile = _arg1;
}
public function get CanGibb():Boolean{
return (_can_gibb);
}
public function get IsBurningHazard():Boolean{
return (_isBurningHazard);
}
public function set KickPower(_arg1:Number):void{
_kickPower = _arg1;
}
public function get IsThrowableFragile():Boolean{
return (_isThrowableFragile);
}
public function set CanKnockDownPlayer(_arg1:Boolean):void{
_canKnockDownPlayer = _arg1;
}
public function get CanBlockFire():Boolean{
return (_canBlockFire);
}
public function get CanBlockExplosions():Boolean{
return (_canBlockExplosions);
}
public function set IsElevator(_arg1:Boolean):void{
_isElevator = _arg1;
}
public function get Indestructible():Boolean{
return (_indestructible);
}
public function set IsGlass(_arg1:Boolean):void{
_is_glass = _arg1;
}
public function get Kickable():Boolean{
return (_kickable);
}
public function set IsImpactHazard(_arg1:Boolean):void{
_isImpactHazard = _arg1;
}
public function get IgnoreCoverID():Number{
return (_ignoreCoverID);
}
public function set Strength(_arg1:int):void{
_strength = _arg1;
}
public function set BotPreferJump(_arg1:Boolean):void{
_botPreferJump = _arg1;
}
public function set ObjectSmokeGrade(_arg1:int):void{
_objectSmokeGrade = _arg1;
}
public function get BulletTransparent():Boolean{
return (_bulletTransparent);
}
public function set LaserVisibleOnObject(_arg1:Boolean):void{
_laserVisibleOnObject = _arg1;
}
public function set AffectedByExplosions(_arg1:Boolean):void{
_affectedByExplosions = _arg1;
}
public function set KickWeightCalculation(_arg1:Boolean):void{
_kickWeightCalculation = _arg1;
}
public function get ShapeMC():MovieClip{
return (_shape_mc);
}
public function get DrawCloudBox():Boolean{
return (_drawCloudBox);
}
public function get IsExplosionHazard():Boolean{
return (_isExplosionHazard);
}
public function get FireLifeSpan():Number{
return (_fireLifeSpan);
}
public function set CanGibb(_arg1:Boolean):void{
_can_gibb = _arg1;
}
public function ForceDestruction():void{
_Handler_Deconstructer.AddBody(_body);
_hp = 0;
}
public function set ThroughPortal(_arg1:Boolean):void{
_throughPortal = _arg1;
}
public function get AimTransparent():Boolean{
return (_aimTransparent);
}
public function get PlayerBounce():Boolean{
return (_player_bounce);
}
public function get DrawShapeMC():Boolean{
return (_drawShapeMC);
}
public function get ObjectOnFire():Boolean{
return (_objectOnFire);
}
public function set IsBurningHazard(_arg1:Boolean):void{
_isBurningHazard = _arg1;
}
public function get OnlyBurnWhileWake():Boolean{
return (_onlyBurnWhileWake);
}
public function set IsThrowableFragile(_arg1:Boolean):void{
_isThrowableFragile = _arg1;
}
public function Damage_Fire(_arg1:Number):void{
_lastDamage = DAMAGE_FIRE;
Damage((_arg1 * _resistance_fire));
}
public function get hp():Number{
return (_hp);
}
public function get HP():Number{
return (_hp);
}
public function get IsActiveHazard():Boolean{
return (_isActiveHazard);
}
public function set CanBlockFire(_arg1:Boolean):void{
_canBlockFire = _arg1;
}
public function set MC(_arg1:MovieClip):void{
_mc = _arg1;
}
public function set CanBurn(_arg1:Boolean):void{
_canBurn = _arg1;
}
public function set CanSmoke(_arg1:Boolean):void{
_canSmoke = _arg1;
}
public function set Indestructible(_arg1:Boolean):void{
_indestructible = _arg1;
}
public function set LaserTransparent(_arg1:Boolean):void{
_laserTransparent = _arg1;
}
public function get IsImpactHazard():Boolean{
return (_isImpactHazard);
}
public function set CanBlockExplosions(_arg1:Boolean):void{
_canBlockExplosions = _arg1;
}
public function get BotPreferJump():Boolean{
return (_botPreferJump);
}
public function get KickWeightCalculation():Boolean{
return (_kickWeightCalculation);
}
public function get ThroughPortal():Boolean{
return (_throughPortal);
}
public function set DrawHitBox(_arg1:Boolean):void{
_drawHitBox = _arg1;
}
public function set IgnoreCoverID(_arg1:Number):void{
_ignoreCoverID = _arg1;
}
public function set Body(_arg1:b2Body):void{
_body = _arg1;
}
public function set Kickable(_arg1:Boolean):void{
_kickable = _arg1;
}
protected function Damage(_arg1:Number):void{
if (!_indestructible){
_hp = (_hp - _arg1);
if (_hp <= 0){
_Handler_Deconstructer.AddBody(_body);
};
};
}
public function get MC():MovieClip{
return (_mc);
}
public function get CanBurn():Boolean{
return (_canBurn);
}
public function get CanSmoke():Boolean{
return (_canSmoke);
}
public function set BulletTransparent(_arg1:Boolean):void{
_bulletTransparent = _arg1;
}
public function set DrawCloudBox(_arg1:Boolean):void{
_drawCloudBox = _arg1;
}
public function get LaserTransparent():Boolean{
return (_laserTransparent);
}
public function set FireLifeSpan(_arg1:Number):void{
_fireLifeSpan = _arg1;
}
public function set IsExplosionHazard(_arg1:Boolean):void{
_isExplosionHazard = _arg1;
}
public function set ShapeMC(_arg1:MovieClip):void{
_shape_mc = _arg1;
}
public function get DrawHitBox():Boolean{
return (_drawHitBox);
}
public function get LastDamage():int{
return (_lastDamage);
}
public function get Body():b2Body{
return (_body);
}
public function set PlayerBounce(_arg1:Boolean):void{
_player_bounce = _arg1;
}
public function set CrushDamage(_arg1:Number):void{
_crush_damage = _arg1;
}
public function Damage_Bullet(_arg1:Number):void{
_lastDamage = DAMAGE_BULLET;
Damage((_arg1 * _resistance_bullet));
}
public function set AimTransparent(_arg1:Boolean):void{
_aimTransparent = _arg1;
}
public function set PlayerCoverLevel(_arg1:int):void{
_playerCoverLevel = _arg1;
}
public function set IsThrowableObject(_arg1:Boolean):void{
_isThrowableObject = _arg1;
}
public function set DrawShapeMC(_arg1:Boolean):void{
_drawShapeMC = _arg1;
}
public function get PlayerCoverLevel():int{
return (_playerCoverLevel);
}
public function set ObjectOnFire(_arg1:Boolean):void{
_objectOnFire = _arg1;
if (_objectOnFire){
_objectSmokeGrade = 0;
};
}
public function get CrushDamage():Number{
return (_crush_damage);
}
public function set OnlyBurnWhileWake(_arg1:Boolean):void{
_onlyBurnWhileWake = _arg1;
}
public function get IsThrowableObject():Boolean{
return (_isThrowableObject);
}
public function get IsHazard():Boolean{
if (_isActiveHazard){
return (true);
};
if (((_isBurningHazard) && (_objectOnFire))){
return (true);
};
if (((_isImpactHazard) && (!(_body.IsSleeping())))){
return (true);
};
return (false);
}
}
}//package Code.Data
Section 114
//BodyDataExplosiveBarrel (Code.Data.BodyDataExplosiveBarrel)
package Code.Data {
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import flash.display.*;
public class BodyDataExplosiveBarrel extends BodyData {
public function BodyDataExplosiveBarrel(_arg1:MovieClip, _arg2:Deconstructer, _arg3:Number=50, _arg4:Number=1, _arg5:Number=1, _arg6:Number=1, _arg7:Number=1, _arg8:Boolean=false){
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
UserValues = new Array(0, 0);
}
override protected function Damage(_arg1:Number):void{
var dmg = _arg1;
if (!_indestructible){
HP = (HP - dmg);
if ((((HP <= 0)) && ((UserValues[0] == 0)))){
_mc.gotoAndStop(2);
UserValues[0] = 1;
UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
UserValues[1] = (UserValues[1] + _arg2);
if (UserValues[1] >= 1){
_Handler_Deconstructer.AddBody(_body);
};
};
};
};
}
override public function ForceDestruction():void{
HP = 0;
if ((((HP <= 0)) && ((UserValues[0] == 0)))){
_mc.gotoAndStop(2);
UserValues[0] = 1;
UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
UserValues[1] = (UserValues[1] + _arg2);
if (UserValues[1] >= 1){
_Handler_Deconstructer.AddBody(_body);
};
};
};
}
}
}//package Code.Data
Section 115
//ButtonData (Code.Data.ButtonData)
package Code.Data {
public class ButtonData {
public var OnActivation:Function;
public var Enabled:Boolean;// = true
public var OnActivationSound:String;// = ""
public function ButtonData(){
OnActivationSound = "";
Enabled = true;
super();
OnActivation = function ():void{
};
}
public function Activate():void{
OnActivation();
}
}
}//package Code.Data
Section 116
//Challenges (Code.Data.Challenges)
package Code.Data {
import Code.Data.Players.*;
public class Challenges {
public static var CHALLENGE_1P:Array = [[3, BotState.EASY], [2, BotState.MEDIUM], [4, BotState.EASY, BotState.EASY], [5, BotState.MEDIUM, BotState.EASY], [3, BotState.MEDIUM, BotState.EASY], [2, BotState.HARD], [4, BotState.MEDIUM, BotState.MEDIUM], [5, BotState.EASY, BotState.EASY, BotState.EASY], [3, BotState.MEDIUM, BotState.EASY, BotState.EASY], [2, BotState.HARD, BotState.EASY], [4, BotState.HARD, BotState.MEDIUM, BotState.EASY], [5, BotState.HARD, BotState.MEDIUM, BotState.MEDIUM, BotState.EASY]];
public static var CHALLENGE:Array = [CHALLENGE_1P, CHALLENGE_1P];
}
}//package Code.Data
Section 117
//ContactData (Code.Data.ContactData)
package Code.Data {
import Code.Handler.*;
public class ContactData {
public var Handler_Effects:Effects;
public var Handler_Deconstructer:Deconstructer;
public var Handler_Output:OutputTrace;
public var Handler_Sounds:Sounds;
public var game_speed:Number;// = 1
public function ContactData(){
game_speed = 1;
super();
}
}
}//package Code.Data
Section 118
//ExplosionData (Code.Data.ExplosionData)
package Code.Data {
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import flash.display.*;
public class ExplosionData {
public var m_world:b2World;
public var dynamic_mc:MovieClip;
public var Handler_Effects:Effects;
public var static_mc:MovieClip;
public var Handler_Shake:Shake;
public var Handler_Camera:Cam;
public var Handler_Output:OutputTrace;
public var Handler_Slowmo:Slowmo;
public var Handler_Sounds:Sounds;
public var Handler_Players:PlayersKeeper;
}
}//package Code.Data
Section 119
//FireNodeData (Code.Data.FireNodeData)
package Code.Data {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import Code.Data.Players.*;
import flash.display.*;
import Code.Particles.*;
public class FireNodeData {
private var _b2BodyBurning:b2Body;// = null
private var _Handler_Effects:Effects;
private var _ownerResetTimer:Number;
private var _passCloud:Number;// = 0
private var _onlyBurnWakeTimer:Number;// = 0
private var _lastEffectX:Number;
private var _lastEffectY:Number;
private var _owner:int;// = -1
private var _velX:Number;
private var _velY:Number;
private var _b2BodyLocalPosition:b2Vec2;
private var _slowingDown:Boolean;// = true
private var _lifeSpan:Number;// = 10
private var _air_mc:MovieClip;
private var _currentFrame:Number;
private var _playerBurnLevel:int;// = 0
private var _fire_area_mc:MovieClip;
private var _playerBurnTarget:Player;// = null
private var _posX:Number;
private var _playerNr:int;// = -1
private var _inAir:Boolean;// = true
private var _posY:Number;
private var _b2Body:b2Body;// = null
private var _air_mc_removed:Boolean;// = false
private var _burn_timer:Number;
private var _fire_node_done:Boolean;// = false
private var _effect_timer:Number;// = 0
private var _fireType:int;// = 0
public function FireNodeData(_arg1:Effects, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:int=-1, _arg9:int=0){
_fire_node_done = false;
_inAir = true;
_air_mc_removed = false;
_effect_timer = 0;
_b2Body = null;
_b2BodyBurning = null;
_playerBurnTarget = null;
_playerNr = -1;
_playerBurnLevel = 0;
_lifeSpan = 10;
_slowingDown = true;
_owner = -1;
_fireType = 0;
_onlyBurnWakeTimer = 0;
_passCloud = 0;
super();
_Handler_Effects = _arg1;
_burn_timer = _arg3;
_posX = _arg4;
_posY = _arg5;
_velX = _arg6;
_velY = _arg7;
_lastEffectX = _posX;
_lastEffectY = _posY;
_owner = _arg8;
_ownerResetTimer = 24;
_fireType = _arg9;
_currentFrame = 0;
_effect_timer = (Math.random() * 3);
_fire_area_mc = new MovieClip();
_fire_area_mc.graphics.lineStyle(1, 0xFFFF00, 1, false, "none");
_fire_area_mc.graphics.beginFill(0xFFFF00, 0.4);
_fire_area_mc.graphics.drawCircle(0, 0, 5);
_fire_area_mc.graphics.endFill();
_arg2.addChild(_fire_area_mc);
_fire_area_mc.x = _posX;
_fire_area_mc.y = _posY;
_passCloud = 0;
switch (_fireType){
case 0:
_air_mc = new fire_effect_air();
break;
case 1:
_air_mc = new fire_effect_flamethrower_air();
_passCloud = 8;
break;
default:
_air_mc = new fire_effect_air();
break;
};
_Handler_Effects.EffectMCFront.addChild(_air_mc);
_air_mc_removed = false;
}
public function get VelY():Number{
return (_velY);
}
public function get SlowingDown():Boolean{
return (_slowingDown);
}
public function get PassCloud():Boolean{
return ((_passCloud > 0));
}
public function get PlayerNR():int{
return (_playerNr);
}
public function set PosY(_arg1:Number):void{
_posY = _arg1;
}
public function get FireArea():MovieClip{
if (_lifeSpan > 6){
return (_fire_area_mc);
};
return (new MovieClip());
}
public function FollowBody(_arg1:b2Body, _arg2:b2Vec2):void{
var _local3:b2Vec2;
_b2Body = _arg1;
_b2BodyLocalPosition = _arg2;
_b2BodyBurning = null;
_playerBurnTarget = null;
_playerNr = -1;
_local3 = _b2Body.GetWorldPoint(_b2BodyLocalPosition);
_posX = (_local3.x * 30);
_posY = (_local3.y * 30);
_lastEffectX = _posX;
_lastEffectY = _posY;
_inAir = false;
if (!_air_mc_removed){
_air_mc.parent.removeChild(_air_mc);
_air_mc_removed = true;
};
}
public function get BurnTimer():Number{
return (_burn_timer);
}
public function set VelX(_arg1:Number):void{
_velX = _arg1;
}
private function AddEffectGround(_arg1:Boolean=false):void{
var _local2:Number;
var _local3:Number;
_lastEffectX = _posX;
_lastEffectY = _posY;
if ((((_fireType == 1)) && ((_currentFrame <= (_air_mc.totalFrames - 2))))){
_Handler_Effects.AddParticle(new particle_data("FIRE_FLAMETHROWER", ((_posX + (Math.random() * 6)) - 3), (_posY + Math.random()), new b2Vec2(_velX, _velY)));
} else {
_Handler_Effects.AddParticle(new particle_data("fire", ((_posX + (Math.random() * 6)) - 3), (_posY + Math.random())));
};
if (_arg1){
if (Math.random() < 0.4){
_local2 = ((_posX + (Math.random() * 6)) - 3);
_local3 = (_posY + Math.random());
_Handler_Effects.AddParticle(new particle_data("fireground", _local2, _local3));
if (Math.random() <= 0.5){
_Handler_Effects.AddParticle(new particle_data("smoke_fire", _local2, _local3));
};
};
};
}
public function get Owner():int{
return (_owner);
}
public function get VelX():Number{
return (_velX);
}
public function get CanBeMerged():Boolean{
if (_inAir){
return (false);
};
if (_playerBurnTarget != null){
return (false);
};
return (true);
}
public function set InAir(_arg1:Boolean):void{
_inAir = _arg1;
}
public function get PosX():Number{
return (_posX);
}
public function set BurnTimer(_arg1:Number):void{
_burn_timer = _arg1;
}
public function BurnPlayer(_arg1:Player, _arg2:int, _arg3:int):void{
_b2Body = null;
_b2BodyBurning = null;
_playerBurnTarget = _arg1;
_playerNr = _arg2;
_playerBurnLevel = _arg3;
_inAir = false;
if (!_air_mc_removed){
_air_mc.parent.removeChild(_air_mc);
_air_mc_removed = true;
};
if (_playerBurnLevel == 1){
_fire_area_mc.graphics.clear();
_fire_area_mc.graphics.lineStyle(1, 0xFFFF00, 1, false, "none");
_fire_area_mc.graphics.beginFill(0xFFFF00, 0.4);
_fire_area_mc.graphics.moveTo(-4, 8);
_fire_area_mc.graphics.lineTo(-4, -8);
_fire_area_mc.graphics.lineTo(4, -8);
_fire_area_mc.graphics.lineTo(4, 8);
_fire_area_mc.graphics.lineTo(4, 8);
_fire_area_mc.graphics.endFill();
} else {
if (_playerBurnLevel == 2){
_fire_area_mc.graphics.clear();
_fire_area_mc.addChild(new fire_big());
};
};
_posX = _playerBurnTarget.MidPosX();
_posY = _playerBurnTarget.MidPosY();
_lastEffectX = _posX;
_lastEffectY = _posY;
UpdateMC();
}
public function BurnBody(_arg1:b2Body):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:b2Vec2;
_b2BodyBurning = _arg1;
_b2Body = null;
_playerBurnTarget = null;
_playerNr = -1;
_local2 = _arg1.m_userData.objectData.ShapeMC.width;
_local3 = _arg1.m_userData.objectData.ShapeMC.height;
_local4 = (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))) / 2);
if (_local4 < 5){
_local4 = 5;
};
_fire_area_mc.graphics.clear();
_fire_area_mc.graphics.lineStyle(1, 0xFFFF00, 1, false, "none");
_fire_area_mc.graphics.beginFill(0xFFFF00, 0.4);
_fire_area_mc.graphics.drawCircle(0, 0, _local4);
_fire_area_mc.graphics.endFill();
_local5 = _b2BodyBurning.GetWorldPoint(new b2Vec2(0, 0));
_posX = (_local5.x * 30);
_posY = (_local5.y * 30);
_lastEffectX = _posX;
_lastEffectY = _posY;
UpdateMC();
_lifeSpan = 0;
_inAir = false;
if (!_air_mc_removed){
_air_mc.parent.removeChild(_air_mc);
_air_mc_removed = true;
};
}
public function get PosY():Number{
return (_posY);
}
public function UpdateMC():void{
_fire_area_mc.x = _posX;
_fire_area_mc.y = _posY;
}
public function get FireNodeCompleted():Boolean{
return (_fire_node_done);
}
public function set SlowingDown(_arg1:Boolean):void{
_slowingDown = _arg1;
}
public function get InAir():Boolean{
return (_inAir);
}
public function set PosX(_arg1:Number):void{
_posX = _arg1;
}
public function get TotalVel():Number{
return (Math.sqrt(((_velY * _velY) + (_velX * _velX))));
}
public function End():void{
if (!_air_mc_removed){
_air_mc.parent.removeChild(_air_mc);
_air_mc_removed = true;
};
_fire_area_mc.parent.removeChild(_fire_area_mc);
_fire_node_done = true;
}
public function Update(_arg1:Number):void{
var _local2:b2Vec2;
if (_passCloud > 0){
_passCloud = (_passCloud - _arg1);
};
if (_playerBurnTarget != null){
if (_playerBurnTarget.State.IgnoreMe){
_burn_timer = 0;
};
if ((((_playerBurnLevel == 1)) && ((_playerBurnTarget.State.BurnState < _playerBurnTarget.State.FireRank1Minimum)))){
_playerBurnTarget.State.FireRank1Attached = false;
_burn_timer = 0;
};
if ((((_playerBurnLevel == 2)) && ((_playerBurnTarget.State.BurnState < _playerBurnTarget.State.FireRank2Minimum)))){
_playerBurnTarget.State.FireRank2Attached = false;
_burn_timer = 0;
};
if (_playerBurnTarget.State.BurnState > 0){
_playerBurnTarget.FireContact();
_posX = _playerBurnTarget.MidPosX();
_posY = _playerBurnTarget.MidPosY();
UpdateMC();
_effect_timer = (_effect_timer - _arg1);
if (_effect_timer <= 0){
AddEffectPlayer();
_effect_timer = 3;
} else {
if (EffectDistancePass(4)){
AddEffectPlayer();
_effect_timer = 3;
};
};
};
} else {
if (_b2BodyBurning != null){
_local2 = _b2BodyBurning.GetWorldPoint(new b2Vec2(0, 0));
_posX = (_local2.x * 30);
_posY = (_local2.y * 30);
UpdateMC();
_lifeSpan = (_lifeSpan + _arg1);
_effect_timer = (_effect_timer - _arg1);
if (_effect_timer <= 0){
AddEffectDynamic();
_effect_timer = (2 + Math.random());
} else {
if (EffectDistancePass(4)){
AddEffectDynamic(4);
_effect_timer = (3 + (Math.random() * 2));
};
};
if (_b2BodyBurning.m_userData.destroyed == true){
_burn_timer = 0;
} else {
_b2BodyBurning.m_userData.objectData.Damage_Fire(_arg1);
if (_b2BodyBurning.m_userData.objectData.OnlyBurnWhileWake){
if (_b2BodyBurning.IsSleeping()){
_burn_timer = 0;
_b2BodyBurning.m_userData.objectData.ObjectOnFire = false;
} else {
if (_onlyBurnWakeTimer < 10){
if (Math.abs(_b2BodyBurning.GetLinearVelocity().LengthSquared()) < 0.1){
_onlyBurnWakeTimer = (_onlyBurnWakeTimer + _arg1);
if (_onlyBurnWakeTimer >= 10){
_burn_timer = 0;
_b2BodyBurning.m_userData.objectData.ObjectOnFire = false;
};
};
} else {
_onlyBurnWakeTimer = 0;
};
};
} else {
if ((((_lifeSpan > _b2BodyBurning.m_userData.objectData.FireLifeSpan)) && ((_b2BodyBurning.m_userData.objectData.FireLifeSpan > 0)))){
_burn_timer = 0;
_b2BodyBurning.m_userData.objectData.ObjectOnFire = false;
};
};
};
} else {
_burn_timer = (_burn_timer - _arg1);
if (_b2Body != null){
_local2 = _b2Body.GetWorldPoint(_b2BodyLocalPosition);
_posX = (_local2.x * 30);
_posY = (_local2.y * 30);
UpdateMC();
_effect_timer = (_effect_timer - _arg1);
if (_effect_timer <= 0){
AddEffectGround(!(_inAir));
_effect_timer = (3 + (Math.random() * 2));
} else {
if (EffectDistancePass(5)){
AddEffectGround();
_effect_timer = (3 + (Math.random() * 2));
};
};
} else {
_effect_timer = (_effect_timer - _arg1);
if (_effect_timer <= 0){
AddEffectGround(!(_inAir));
_effect_timer = (3 + (Math.random() * 2));
} else {
if (_inAir){
if (EffectDistancePass(4)){
AddEffectGround();
};
};
};
};
};
};
if (!_air_mc_removed){
if (!_inAir){
_air_mc.parent.removeChild(_air_mc);
_air_mc_removed = true;
_fireType = 0;
_ownerResetTimer = 0;
_owner = -1;
} else {
_air_mc.x = _posX;
_air_mc.y = _posY;
if (_fireType == 1){
_currentFrame = (_currentFrame + _arg1);
_air_mc.gotoAndStop(Math.ceil(_currentFrame));
};
};
} else {
if (_ownerResetTimer > 0){
_ownerResetTimer = (_ownerResetTimer - _arg1);
if (_ownerResetTimer <= 0){
_ownerResetTimer = 0;
_owner = -1;
};
};
};
if (_burn_timer <= 0){
End();
};
}
private function EffectDistancePass(_arg1:Number):Boolean{
var _local2:Number;
var _local3:Number;
_local2 = (_lastEffectX - _posX);
_local3 = (_lastEffectY - _posY);
if (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))) > _arg1){
return (true);
};
return (false);
}
public function set VelY(_arg1:Number):void{
_velY = _arg1;
}
public function get IsFlamethrower():Boolean{
return ((_fireType == 1));
}
private function AddEffectPlayer():void{
_lastEffectX = _posX;
_lastEffectY = _posY;
_Handler_Effects.AddParticle(new particle_data("fire", ((_playerBurnTarget.MidPosX() + (Math.random() * 8)) - 4), ((_playerBurnTarget.MidPosY() + (Math.random() * 12)) - 6)));
}
private function AddEffectDynamic(_arg1:int=0):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:int;
if (_arg1 == 0){
_local2 = ((Math.random() * _b2BodyBurning.m_userData.objectData.ShapeMC.width) - (_b2BodyBurning.m_userData.objectData.ShapeMC.width / 2));
_local3 = ((Math.random() * _b2BodyBurning.m_userData.objectData.ShapeMC.height) - (_b2BodyBurning.m_userData.objectData.ShapeMC.height / 2));
_Handler_Effects.AddParticle(new particle_data("fire", (_posX + (_local2 * 0.9)), (_posY + (_local3 * 0.9))));
} else {
if (!_b2BodyBurning.m_userData.objectData.ThroughPortal){
_local4 = (_posX - _lastEffectX);
_local5 = (_posY - _lastEffectY);
_local6 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5)));
_local7 = (_local4 / _local6);
_local8 = (_local5 / _local6);
_local9 = _arg1;
while (_local9 <= _local6) {
_local2 = ((Math.random() * _b2BodyBurning.m_userData.objectData.ShapeMC.width) - (_b2BodyBurning.m_userData.objectData.ShapeMC.width / 2));
_local3 = ((Math.random() * _b2BodyBurning.m_userData.objectData.ShapeMC.height) - (_b2BodyBurning.m_userData.objectData.ShapeMC.height / 2));
_Handler_Effects.AddParticle(new particle_data("fire", ((_posX + (_local7 * _local9)) + (_local2 * 0.9)), ((_posY + (_local8 * _local9)) + (_local3 * 0.9))));
_local9 = (_local9 + _arg1);
};
} else {
_b2BodyBurning.m_userData.objectData.ThroughPortal = false;
};
};
_lastEffectX = _posX;
_lastEffectY = _posY;
}
}
}//package Code.Data
Section 120
//GameMainData (Code.Data.GameMainData)
package Code.Data {
import Code.Handler.*;
import flash.display.*;
public class GameMainData {
public var game_mc:MovieClip;
public var Handler_Options:Options;
public var stage_temp;
public var Handler_Output:OutputTrace;
public var Handler_Sounds:Sounds;
}
}//package Code.Data
Section 121
//MapGraphic (Code.Data.MapGraphic)
package Code.Data {
import flash.display.*;
public class MapGraphic {
private var clips:Array;
public function MapGraphic(){
clips = new Array();
}
public function Update(_arg1:Number):void{
var _local2:int;
_local2 = 0;
while (_local2 < clips.length) {
clips[_local2][1] = (clips[_local2][1] + _arg1);
if (clips[_local2][1] >= (MovieClip(clips[_local2][0]).totalFrames + 1)){
clips[_local2][1] = (clips[_local2][1] - MovieClip(clips[_local2][0]).totalFrames);
};
MovieClip(clips[_local2][0]).gotoAndStop(Math.floor(clips[_local2][1]));
_local2++;
};
}
public function AddMC(_arg1:MovieClip):void{
clips.push([_arg1, 1]);
}
}
}//package Code.Data
Section 122
//MapLogic (Code.Data.MapLogic)
package Code.Data {
import flash.utils.*;
public class MapLogic {
public var OnUpdate:Function;
private var refireInterval:int;// = 1000
private var started:Boolean;// = false
private var updateTimer:Number;
public function MapLogic(){
started = false;
refireInterval = 1000;
super();
OnUpdate = function ():void{
};
}
public function Start():void{
if (started){
Stop();
};
updateTimer = setInterval(OnUpdate, refireInterval);
started = true;
}
public function set RefireInterval(_arg1:int):void{
refireInterval = _arg1;
if (started){
Start();
};
}
public function Stop():void{
clearInterval(updateTimer);
started = false;
}
public function get RefireInterval():int{
return (refireInterval);
}
}
}//package Code.Data
Section 123
//MaterialData (Code.Data.MaterialData)
package Code.Data {
public class MaterialData {
private var _bullet_hit_sound:String;// = ""
private var _material_type:String;// = ""
private var _impact_conditions:Array;
private var _bullet_hit_effect:String;// = ""
private var _friction:Number;// = 0
private var _density:Number;// = 0
private var _impact_effect:String;// = ""
private var _bounce_impact_sound:String;// = ""
private var _restitution:Number;// = 0
public function MaterialData(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Array, _arg7:String, _arg8:String, _arg9:String){
_material_type = "";
_density = 0;
_friction = 0;
_restitution = 0;
_impact_effect = "";
_bullet_hit_effect = "";
_bullet_hit_sound = "";
_bounce_impact_sound = "";
super();
_material_type = _arg1.toUpperCase();
_density = _arg2;
_friction = _arg3;
_restitution = _arg4;
_impact_effect = _arg5.toUpperCase();
_impact_conditions = _arg6;
_bullet_hit_effect = _arg7.toUpperCase();
_bullet_hit_sound = _arg8.toUpperCase();
_bounce_impact_sound = _arg9.toUpperCase();
}
public function get BulletHitEffect():String{
return (_bullet_hit_effect);
}
public function set BulletHitEffect(_arg1:String):void{
_bullet_hit_effect = _arg1;
}
public function get Density():Number{
return (_density);
}
public function set BounceImpactSound(_arg1:String):void{
_bounce_impact_sound = _arg1;
}
public function set Density(_arg1:Number):void{
_density = _arg1;
}
public function get Restitution():Number{
return (_restitution);
}
public function set Restitution(_arg1:Number):void{
_restitution = _arg1;
}
public function ImpactEffectConditionFullfilled(_arg1:String):Boolean{
var _local2:int;
if (_impact_conditions[0] == "ANYTHING"){
return (true);
};
_local2 = 0;
while (_local2 < _impact_conditions.length) {
if (_impact_conditions[_local2] == _arg1){
return (true);
};
_local2++;
};
return (false);
}
public function get ImpactEffect():String{
return (_impact_effect);
}
public function get Type():String{
return (_material_type);
}
public function get Friction():Number{
return (_friction);
}
public function get BounceImpactSound():String{
return (_bounce_impact_sound);
}
public function Copy():MaterialData{
return (new MaterialData(_material_type, _density, _friction, _restitution, _impact_effect, _impact_conditions, _bullet_hit_effect, _bullet_hit_sound, _bounce_impact_sound));
}
public function set Type(_arg1:String):void{
_material_type = _arg1;
}
public function set ImpactEffect(_arg1:String):void{
_impact_effect = _arg1;
}
public function set Friction(_arg1:Number):void{
_friction = _arg1;
}
public function set BulletHitSound(_arg1:String):void{
_bullet_hit_sound = _arg1;
}
public function get BulletHitSound():String{
return (_bullet_hit_sound);
}
}
}//package Code.Data
Section 124
//MaterialsData (Code.Data.MaterialsData)
package Code.Data {
public class MaterialsData {
private var _metal:MaterialData;
private var _wood:MaterialData;
private var _paper:MaterialData;
private var _spark:MaterialData;
private var _beachball:MaterialData;
private var _ragdoll:MaterialData;
private var _ground:MaterialData;
private var _shell:MaterialData;
private var _electric_lamp:MaterialData;
private var _glass:MaterialData;
public function MaterialsData(){
_wood = new MaterialData("wood", 3, 0.6, 0.3, "wood", ["ANYTHING"], "BULLET_HITDEFAULT", "BULLET_HITWOOD", "");
_metal = new MaterialData("metal", 10, 0.4, 0.1, "metal", ["METAL"], "BULLET_HITMETAL", "BULLET_HITMETAL", "");
_paper = new MaterialData("paper", 5, 0.6, 0.1, "PAPER_HIT", ["ANYTHING"], "PAPER_HIT", "BULLET_HITDEFAULT", "");
_shell = new MaterialData("shell", 10, 0.4, 0.1, "", [""], "", "", "SHELLBOUNCE");
_ground = new MaterialData("ground", 1, 0.5, 0.2, "", [""], "BULLET_HITDEFAULT", "BULLET_HITDEFAULT", "");
_ragdoll = new MaterialData("ragdoll", 10, 0.4, 0.1, "PARTICLE_BLOOD", ["ANYTHING"], "PARTICLE_BLOOD", "BULLET_HITFLESH", "");
_glass = new MaterialData("glass", 3, 0.4, 0.2, "", [""], "", "", "");
_beachball = new MaterialData("beachball", 0.6, 0.4, 0.7, "", [""], "BULLET_HITDEFAULT", "BULLET_HITDEFAULT", "");
_electric_lamp = new MaterialData("electric_lamp", 3, 0.4, 0.2, "", [""], "ELECTRIC_SPARK", "ELECTRIC_SPARK", "");
_spark = new MaterialData("spark", 1, 0.1, 1, "", [""], "", "", "");
super();
}
public function get Beachball():MaterialData{
return (_beachball.Copy());
}
public function get Ragdoll():MaterialData{
return (_ragdoll.Copy());
}
public function get Spark():MaterialData{
return (_spark.Copy());
}
public function get Wood():MaterialData{
return (_wood.Copy());
}
public function get Glass():MaterialData{
return (_glass.Copy());
}
public function get Shell():MaterialData{
return (_shell.Copy());
}
public function get Metal():MaterialData{
return (_metal.Copy());
}
public function get Paper():MaterialData{
return (_paper.Copy());
}
public function get Ground():MaterialData{
return (_ground.Copy());
}
public function get ElectricLamp():MaterialData{
return (_electric_lamp.Copy());
}
}
}//package Code.Data
Section 125
//MenuMainData (Code.Data.MenuMainData)
package Code.Data {
import Code.Handler.*;
import flash.display.*;
public class MenuMainData {
public var Handler_GameMain:GameMain;
public var game_mc:MovieClip;
public var Handler_Options:Options;
public var stage_temp;
public var Handler_Output:OutputTrace;
public var Handler_Sounds:Sounds;
}
}//package Code.Data
Section 126
//NewGameData (Code.Data.NewGameData)
package Code.Data {
import Code.Data.Players.*;
public class NewGameData {
public var isSurvival:Boolean;
public var newScore:Boolean;
public var showTips:Boolean;
public var gamePosX:Number;
public var gamePosY:Number;
public var challengeNr:int;
public var lvl:Number;
public var isTutorial:Boolean;
public var isMenuDemo:Boolean;
public var pSetupData:PlayerSetupData;
public var gameScale:Number;
public var gameMode:int;
}
}//package Code.Data
Section 127
//PathBind (Code.Data.PathBind)
package Code.Data {
public class PathBind {
private var _id:String;
private var _targetNode:PathNode;
private var _distance:Number;
private var _sourceNode:PathNode;
private var _movementType:int;
private var _blocked:Boolean;
private var _bindType:int;
public static const ROAD:int = 3;
public static const SPRINTJUMP:int = 5;
public static const LADDER:int = 8;
public static const ROLL:int = 10;
public static const PORTAL:int = 9;
public static const STATIC:int = 0;
public static const DIVE:int = 7;
public static const JUMP:int = 4;
public static const CLOUDDOWN:int = 6;
public static const DYNAMIC:int = 1;
public function PathBind(_arg1:String, _arg2:PathNode, _arg3:PathNode, _arg4:int, _arg5:int){
_id = _arg1;
_sourceNode = _arg2;
_targetNode = _arg3;
_bindType = _arg4;
_movementType = _arg5;
_blocked = false;
CalcDistance();
}
private function CalcDistance():void{
if (_movementType == PORTAL){
_distance = 0;
return;
};
_distance = Math.sqrt((Math.pow((SourceNode.PosY - TargetNode.PosY), 2) + Math.pow((SourceNode.PosX - TargetNode.PosX), 2)));
if (_movementType == LADDER){
_distance = (_distance * 1.5);
};
}
public function get Blocked():Boolean{
return (_blocked);
}
public function get TargetNode():PathNode{
return (_targetNode);
}
public function get Distance():Number{
if (_bindType == DYNAMIC){
CalcDistance();
};
return (_distance);
}
public function set Blocked(_arg1:Boolean):void{
_blocked = _arg1;
}
public function set MovementType(_arg1:int):void{
_movementType = _arg1;
}
public function get ID():String{
return (_id);
}
public function get SourceNode():PathNode{
return (_sourceNode);
}
public function set TargetNode(_arg1:PathNode):void{
_targetNode = _arg1;
CalcDistance();
}
public function set SourceNode(_arg1:PathNode):void{
_sourceNode = _arg1;
CalcDistance();
}
public function get MovementType():int{
return (_movementType);
}
public function set BindType(_arg1:int):void{
_bindType = _arg1;
if (_bindType == STATIC){
CalcDistance();
};
}
public function TargetNodeCloseEnough():Boolean{
var _local1:Boolean;
var _local2:Number;
var _local3:Number;
if (_bindType == STATIC){
return (true);
};
_local1 = true;
_local2 = Math.abs((SourceNode.PosX - (TargetNode.PosX + (TargetNode.SpeedX * 2))));
_local3 = Math.abs((SourceNode.PosY - TargetNode.PosY));
if ((((TargetNode.SpeedY < 0)) && (((TargetNode.PosY + 4) < SourceNode.PosY)))){
_local1 = false;
};
if ((((((SourceNode.SpeedX > 0.1)) && ((TargetNode.PosX < SourceNode.PosX)))) || ((((SourceNode.SpeedX < -0.1)) && ((TargetNode.PosX > SourceNode.PosX)))))){
_local1 = false;
};
switch (_movementType){
case ROAD:
if (!_local1){
return (false);
};
if ((((_local2 < 20)) && ((_local3 < 20)))){
return (true);
};
break;
case JUMP:
if (!_local1){
return (false);
};
if ((((_local2 < 20)) && ((_local3 <= 22)))){
return (true);
};
break;
case SPRINTJUMP:
if (!_local1){
return (false);
};
if ((((_local2 < 60)) && ((_local3 <= 22)))){
return (true);
};
break;
case CLOUDDOWN:
if ((((_local2 < 20)) && ((_local3 < 30)))){
return (true);
};
break;
case DIVE:
if ((((_local2 < 100)) && ((_local3 < 100)))){
return (true);
};
break;
case LADDER:
if ((((_local2 < 20)) && ((_local3 < 20)))){
return (true);
};
break;
case PORTAL:
if ((((_local2 < 20)) && ((_local3 < 20)))){
return (true);
};
break;
case ROLL:
if ((((_local2 < 20)) && ((_local3 < 20)))){
return (true);
};
break;
};
return (false);
}
public function get BindType():int{
return (_bindType);
}
}
}//package Code.Data
Section 128
//PathNode (Code.Data.PathNode)
package Code.Data {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class PathNode {
private var _parentBody:b2Body;
private var _inFire:Boolean;
private var _locked:Boolean;
private var _activatorID:String;
private var _isHazard:Boolean;
private var _id:String;
private var _listIndex:int;// = -1
private var _binds:Array;
private var _parentBodyLocation:b2Vec2;
private var _posX:Number;
private var _posY:Number;
private var _isEndNode:Boolean;
public function PathNode(_arg1:String, _arg2:Number, _arg3:Number, _arg4:String, _arg5:b2Body){
var _local6:b2Vec2;
_listIndex = -1;
super();
_id = _arg1.toUpperCase();
_posX = _arg2;
_posY = _arg3;
_activatorID = _arg4;
_parentBody = _arg5;
_inFire = false;
_isHazard = false;
_locked = false;
_isEndNode = true;
_binds = new Array();
if (_parentBody != null){
_local6 = new b2Vec2((_arg2 / 30), (_arg3 / 30));
_parentBodyLocation = _parentBody.GetLocalPoint(_local6);
};
}
public function RemoveBind(_arg1:PathBind):void{
var _local2:int;
_local2 = (_binds.length - 1);
while (_local2 >= 0) {
if (_binds[_local2] == _arg1){
_binds.splice(_local2, 1);
};
_local2--;
};
}
public function UpdateIsEndNode():void{
var _local1:int;
_isEndNode = false;
_local1 = (_binds.length - 1);
while (_local1 >= 0) {
if (_binds[_local1].MovementType != PathBind.PORTAL){
_isEndNode = true;
return;
};
_local1--;
};
}
public function get ParentBody():b2Body{
return (_parentBody);
}
public function get SpeedX():Number{
if (_parentBody != null){
return (_parentBody.GetLinearVelocity().x);
};
return (0);
}
public function get SpeedY():Number{
if (_parentBody != null){
return (_parentBody.GetLinearVelocity().y);
};
return (0);
}
public function set ParentBody(_arg1:b2Body):void{
_parentBody = _arg1;
}
public function get ID():String{
return (_id);
}
public function set ActivatorID(_arg1:String):void{
_activatorID = _arg1;
}
public function get InFire():Boolean{
return (_inFire);
}
public function get PosX():Number{
return (_posX);
}
public function get PosY():Number{
return (_posY);
}
public function GetDistanceTo(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
var _local4:Number;
_local3 = (_posX - _arg1);
_local4 = (_posY - _arg2);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
public function get Speed():b2Vec2{
if (_parentBody != null){
return (_parentBody.GetLinearVelocity());
};
return (new b2Vec2(0, 0));
}
public function set IsEndNode(_arg1:Boolean):void{
_isEndNode = _arg1;
}
public function set InFire(_arg1:Boolean):void{
_inFire = _arg1;
}
public function get Locked():Boolean{
return (_locked);
}
public function get Binds():Array{
return (_binds);
}
public function get ListIndex():int{
return (_listIndex);
}
public function get ActivatorID():String{
return (_activatorID);
}
public function get IsEndNode():Boolean{
return (_isEndNode);
}
public function set Locked(_arg1:Boolean):void{
_locked = _arg1;
}
public function get Avoid():Boolean{
return (((_isHazard) || (_inFire)));
}
public function CalculateParentLocation():void{
_posX = (_parentBody.GetWorldPoint(_parentBodyLocation).x * 30);
_posY = (_parentBody.GetWorldPoint(_parentBodyLocation).y * 30);
}
public function set Binds(_arg1:Array):void{
_binds = _arg1;
}
public function GetBindTo(_arg1:PathNode):PathBind{
var _local2:int;
_local2 = 0;
while (_local2 < _binds.length) {
if (_binds[_local2].TargetNode == _arg1){
return (_binds[_local2]);
};
_local2++;
};
return (null);
}
public function set ListIndex(_arg1:int):void{
_listIndex = _arg1;
}
public function set IsHazard(_arg1:Boolean):void{
_isHazard = _arg1;
}
public function get IsHazard():Boolean{
return (_isHazard);
}
}
}//package Code.Data
Section 129
//PathResultNode (Code.Data.PathResultNode)
package Code.Data {
public class PathResultNode {
private var _pathNode:PathNode;
private var _nextBind:PathBind;
private var _prevBind:PathBind;
public function PathResultNode(_arg1:PathNode){
_prevBind = null;
_pathNode = _arg1;
_nextBind = null;
}
public function set PrevBind(_arg1:PathBind):void{
_prevBind = _arg1;
}
public function get Node():PathNode{
return (_pathNode);
}
public function get PrevBind():PathBind{
return (_prevBind);
}
public function get NextBind():PathBind{
return (_nextBind);
}
public function set NextBind(_arg1:PathBind):void{
_nextBind = _arg1;
}
}
}//package Code.Data
Section 130
//PathWebNode (Code.Data.PathWebNode)
package Code.Data {
public class PathWebNode {
public var Distance:Number;
public var SourceNode:PathNode;
public function Clear():void{
SourceNode = null;
Distance = 9999;
}
}
}//package Code.Data
Section 131
//PortalData (Code.Data.PortalData)
package Code.Data {
import flash.geom.*;
import Code.Box2D.Common.Math.*;
public class PortalData {
private var _inverseY:Boolean;// = false
private var _portal:Rectangle;
private var _allowPlayers:Boolean;// = true
private var _targetPortal:Rectangle;
private var _triggerVelocity:Point;
private var _inverseX:Boolean;// = false
public function PortalData(_arg1:Rectangle, _arg2:Rectangle, _arg3:Point, _arg4:Boolean, _arg5:Boolean){
_inverseX = false;
_inverseY = false;
_allowPlayers = true;
super();
_portal = _arg1;
_targetPortal = _arg2;
_triggerVelocity = _arg3;
_inverseX = _arg4;
_inverseY = _arg5;
}
public function get InverseX():Boolean{
return (_inverseX);
}
public function get AllowPlayers():Boolean{
return (_allowPlayers);
}
public function GetSideOfPortal(_arg1:int):Number{
if (_arg1 == -1){
return (_portal.x);
};
return ((_portal.x + _portal.width));
}
public function GetTargetPositionFromCurrent(_arg1:Number, _arg2:Number):b2Vec2{
return (new b2Vec2(((_targetPortal.x + (_targetPortal.width / 2)) / 30), (((_targetPortal.y + _arg2) - _portal.y) / 30)));
}
public function get InverseY():Boolean{
return (_inverseY);
}
public function get TriggerVelocity():Point{
return (_triggerVelocity);
}
public function set AllowPlayers(_arg1:Boolean):void{
_allowPlayers = _arg1;
}
public function PointInsidePortal(_arg1:Number, _arg2:Number):Boolean{
if ((((_arg1 > _portal.x)) && ((_arg1 < (_portal.x + _portal.width))))){
if ((((_arg2 > _portal.y)) && ((_arg2 < (_portal.y + _portal.height))))){
return (true);
};
};
return (false);
}
}
}//package Code.Data
Section 132
//ProjectileData (Code.Data.ProjectileData)
package Code.Data {
import Code.Data.Players.*;
import flash.display.*;
public class ProjectileData {
private var _bullet_slomo_trace:Number;// = 5
private var penetratingCloud:Boolean;// = false
private var mc:MovieClip;
private var p_angle_rad:Number;
private var isRocket:Boolean;// = false
private var p_owner:Player;
private var penetrating:Boolean;// = false
private var p_strength:int;
private var normal_effect_mc:MovieClip;
private var p_current_penetration:Number;
private var playerStuck:Player;// = null
private var p_total_penetration:Number;
private var players_avoided:Array;
private var p_angle:Number;
private var effect_length:Number;// = 0
private var explode:Boolean;// = false
private var p_properties:ProjectileProperties;
private var p_directionY:Number;
private var p_directionX:Number;
private var p_posX:Number;
private var p_posY:Number;
private var bullet_mc:MovieClip;
public function ProjectileData(_arg1:ProjectileProperties){
effect_length = 0;
isRocket = false;
playerStuck = null;
explode = false;
penetrating = false;
penetratingCloud = false;
_bullet_slomo_trace = 5;
super();
p_posX = 0;
p_posY = 0;
p_angle = 0;
p_angle_rad = 0;
p_directionX = 1;
p_directionY = 0;
p_owner = null;
p_properties = _arg1;
p_strength = p_properties.Strength;
p_total_penetration = p_properties.TotalPenetrationDepth;
p_current_penetration = p_properties.SinglePenetrationDepth;
switch (p_properties.BulletMC.toUpperCase()){
case "PISTOL_BULLET":
bullet_mc = new bullet_pistol();
break;
case "RIFLE_BULLET":
bullet_mc = new bullet_rifle();
break;
case "UZI_BULLET":
bullet_mc = new bullet_uzi();
break;
case "SHOTGUN_BULLET":
bullet_mc = new bullet_shotgun();
break;
case "SNIPER_BULLET":
bullet_mc = new bullet_sniper();
break;
case "MAGNUM_BULLET":
bullet_mc = new bullet_magnum();
break;
case "BAZOOKA_ROCKET":
isRocket = true;
bullet_mc = new bazooka_rocket();
break;
default:
bullet_mc = new bullet();
break;
};
mc = new MovieClip();
mc.addChild(bullet_mc);
players_avoided = new Array();
if (p_properties.BulletEffect == "BULLET_EFFECT_NORMAL"){
normal_effect_mc = new bullet_effect_normal();
} else {
normal_effect_mc = new MovieClip();
};
normal_effect_mc.scaleX = effect_length;
mc.addChild(normal_effect_mc);
}
public function ClearPenetrationCurrentLeft():void{
p_current_penetration = p_properties.SinglePenetrationDepth;
if (p_current_penetration > p_total_penetration){
p_current_penetration = p_total_penetration;
};
}
public function get Penetrating():Boolean{
return (penetrating);
}
public function UpdateVisuals(_arg1:Number):void{
if (BulletGameSpeed >= 0.8){
bullet_mc.visible = false;
normal_effect_mc.visible = true;
} else {
bullet_mc.visible = true;
normal_effect_mc.visible = false;
};
if (effect_length < 30){
effect_length = (effect_length + _arg1);
if (effect_length > 30){
effect_length = 30;
};
normal_effect_mc.alpha = (0.9 - (effect_length / 100));
normal_effect_mc.scaleX = (effect_length / 10);
};
}
public function get BulletGameSpeed():Number{
return (p_owner.BulletGameSpeed);
}
public function set Penetrating(_arg1:Boolean):void{
penetrating = _arg1;
}
public function PlayerAvoided(_arg1:int):Boolean{
var _local2:int;
_local2 = 0;
while (_local2 < players_avoided.length) {
if (players_avoided[_local2] == _arg1){
return (true);
};
_local2++;
};
return (false);
}
public function get StrengthLeft():int{
return (p_strength);
}
public function get PenetrationTotalLeft():Number{
return (p_total_penetration);
}
public function get PlayerStuck():Player{
return (playerStuck);
}
public function Copy():ProjectileData{
return (new ProjectileData(p_properties));
}
public function Show():void{
mc.visible = true;
}
public function set StrengthLeft(_arg1:int):void{
p_strength = _arg1;
}
public function AddBulletTrace(_arg1:Number):Boolean{
if (isRocket){
if (_bullet_slomo_trace <= 0){
_bullet_slomo_trace = 2;
return (true);
};
_bullet_slomo_trace = (_bullet_slomo_trace - _arg1);
} else {
if (BulletGameSpeed < 0.8){
if (_bullet_slomo_trace <= 0){
_bullet_slomo_trace = 12;
return (true);
};
_bullet_slomo_trace = (_bullet_slomo_trace - _arg1);
};
};
return (false);
}
public function set Owner(_arg1:Player):void{
p_owner = _arg1;
}
public function get Owner():Player{
return (p_owner);
}
public function set PenetrationTotalLeft(_arg1:Number):void{
p_total_penetration = _arg1;
}
public function get MC():MovieClip{
return (mc);
}
public function AddPlayerAvoided(_arg1:int):void{
players_avoided.push(_arg1);
}
public function get PenetratingCloud():Boolean{
return (penetratingCloud);
}
public function set DirectionX(_arg1:Number):void{
p_directionX = _arg1;
p_angle_rad = Math.atan2(DirectionY, DirectionX);
Angle = (p_angle_rad * (180 / Math.PI));
}
public function get DoExplode():Boolean{
return (explode);
}
public function set DirectionY(_arg1:Number):void{
p_directionY = _arg1;
p_angle_rad = Math.atan2(DirectionY, DirectionX);
Angle = (p_angle_rad * (180 / Math.PI));
}
public function set PlayerStuck(_arg1:Player):void{
playerStuck = _arg1;
}
public function get PosX():Number{
return (p_posX);
}
public function get AverageDamage():Number{
return ((Properties.Damage + ((Properties.CriticalChance / 100) * Properties.CriticalDamage)));
}
public function set MC(_arg1:MovieClip):void{
mc = _arg1;
}
public function set PosX(_arg1:Number):void{
p_posX = _arg1;
mc.x = p_posX;
}
public function ResetPlayersAvoided():void{
players_avoided = new Array();
}
public function get Properties():ProjectileProperties{
return (p_properties);
}
public function get AngleRad():Number{
return (p_angle_rad);
}
public function Explode():void{
explode = true;
}
public function get DirectionY():Number{
return (p_directionY);
}
public function get PosY():Number{
return (p_posY);
}
public function set PenetratingCloud(_arg1:Boolean):void{
penetratingCloud = _arg1;
}
public function set PenetrationCurrentLeft(_arg1:Number):void{
p_current_penetration = _arg1;
}
public function get VelocityX():Number{
return ((p_directionX * p_properties.Speed));
}
public function Hide():void{
mc.visible = false;
}
public function get PenetrationCurrentLeft():Number{
return (p_current_penetration);
}
public function set PosY(_arg1:Number):void{
p_posY = _arg1;
mc.y = p_posY;
}
public function get Angle():Number{
return (p_angle);
}
public function get DirectionX():Number{
return (p_directionX);
}
public function get VelocityY():Number{
return ((p_directionY * p_properties.Speed));
}
public function set Angle(_arg1:Number):void{
p_angle = _arg1;
p_angle_rad = (p_angle * (Math.PI / 180));
p_directionX = Math.cos(p_angle_rad);
p_directionY = Math.sin(p_angle_rad);
mc.rotation = p_angle;
}
}
}//package Code.Data
Section 133
//ProjectileProperties (Code.Data.ProjectileProperties)
package Code.Data {
public class ProjectileProperties {
public var SinglePenetrationDepth:Number;
public var CriticalChance:Number;
public var CriticalDamage:Number;
public var BulletSlomoEffect:String;
public var BulletEffect:String;
public var Damage:Number;
public var Strength:int;
public var PushbackPower:Number;
public var Speed:Number;
public var ImpulseForce:Number;
public var TotalPenetrationDepth:Number;
public var BulletMC:String;
}
}//package Code.Data
Section 134
//ProjectilesUpdaterData (Code.Data.ProjectilesUpdaterData)
package Code.Data {
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import flash.display.*;
public class ProjectilesUpdaterData {
public var m_world:b2World;
public var Handler_Effects:Effects;
public var static_mc:MovieClip;
public var Handler_Explosions:Explosions;
public var dynamic_mc:MovieClip;
public var Handler_Sounds:Sounds;
public var Handler_Output:OutputTrace;
public var object_shape_container_mc:MovieClip;
public var Handler_Projectiles:Projectiles;
public var Handler_Camera:Cam;
public var Handler_Players:PlayersKeeper;
}
}//package Code.Data
Section 135
//Rope (Code.Data.Rope)
package Code.Data {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import flash.display.*;
public class Rope {
var _local1:b2Vec2;
var _local2:b2Vec2;
var _removed:Boolean;
var _body1:b2Body;
var _body2:b2Body;
var _mc:MovieClip;
public function Rope(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2){
BuildRope(_arg1, _arg2, _arg3, _arg4);
}
public function Remove():void{
if (!_removed){
_mc.parent.removeChild(_mc);
_removed = true;
};
}
public function get MC():MovieClip{
return (_mc);
}
public function BuildRope(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2){
var _local5:Number;
var _local6:int;
var _local7:rope_segment_01;
_body1 = _arg1;
_body2 = _arg2;
_local1 = _body1.GetLocalPoint(_arg3);
_local2 = _body2.GetLocalPoint(_arg4);
_local5 = Math.sqrt((Math.pow(((_arg3.x * 30) - (_arg4.x * 30)), 2) + Math.pow(((_arg3.y * 30) - (_arg4.y * 30)), 2)));
_mc = new MovieClip();
_local6 = 0;
while (_local6 < _local5) {
_local7 = new rope_segment_01();
_local7.y = -(_local6);
_mc.addChild(_local7);
_local6 = (_local6 + 3);
};
_removed = false;
UpdateMC();
}
public function UpdateMC():void{
var _local1:b2Vec2;
var _local2:b2Vec2;
var _local3:Number;
if (_removed){
return;
};
_local1 = _body1.GetWorldPoint(_local1);
_local2 = _body2.GetWorldPoint(_local2);
_mc.x = (_local1.x * 30);
_mc.y = (_local1.y * 30);
_local3 = Math.atan2((_local1.y - _local2.y), (_local1.x - _local2.x));
_mc.rotation = ((_local3 * (180 / Math.PI)) - 90);
}
}
}//package Code.Data
Section 136
//ScoreboardTeam (Code.Data.ScoreboardTeam)
package Code.Data {
import flash.geom.*;
import Code.Data.Players.*;
import flash.display.*;
import flash.utils.*;
public class ScoreboardTeam {
public var Loss:int;
private var _team:int;
private var _team_graphic:MovieClip;
private var _players:Array;
public var Wins:int;
private var _build_timer:Number;
public function ScoreboardTeam(_arg1:Player){
Wins = 0;
Loss = 0;
_team = _arg1.Team;
_players = new Array();
_players.push(_arg1);
}
public function AddPlayer(_arg1:Player):void{
_players.push(_arg1);
}
public function SetPics():void{
var _local1:int;
clearInterval(_build_timer);
_local1 = 0;
while (_local1 < TotalPlayers) {
MovieClip(_team_graphic.pics.getChildByName(("pic_" + (_local1 + 1)))).gotoAndStop(_players[_local1].State.CharNr);
_local1++;
};
}
public function Build(_arg1:int):void{
var _local2:int;
var _local3:ColorTransform;
_team_graphic = new score_team_plate();
_team_graphic.gotoAndStop(_arg1);
_team_graphic.pics.gotoAndStop(TotalPlayers);
if ((((TotalPlayers <= 4)) && ((_arg1 > 4)))){
_team_graphic.pics.x = (25 * (_arg1 - 4));
};
_local2 = _players[0].Team;
if (_local2 < 0){
_local2 = 5;
};
_team_graphic.pics.team.gotoAndStop(_local2);
_local3 = _team_graphic.pics.team.transform.colorTransform;
if (_players[0].Team < 0){
_local3.redOffset = (PlayerTeamColor.SOLO[0] - 0xFF);
_local3.greenOffset = (PlayerTeamColor.SOLO[1] - 0xFF);
_local3.blueOffset = (PlayerTeamColor.SOLO[2] - 0xFF);
} else {
_local3.redOffset = (PlayerTeamColor.TEAM[(_players[0].Team - 1)][0] - 0xFF);
_local3.greenOffset = (PlayerTeamColor.TEAM[(_players[0].Team - 1)][1] - 0xFF);
_local3.blueOffset = (PlayerTeamColor.TEAM[(_players[0].Team - 1)][2] - 0xFF);
};
_team_graphic.pics.team.transform.colorTransform = _local3;
_build_timer = setInterval(SetPics, 100);
Update();
}
public function get FirstPlayer():Player{
return (_players[0]);
}
public function get MC():MovieClip{
return (_team_graphic);
}
public function Update():void{
SetNumTo(_team_graphic.score.wins, Wins);
SetNumTo(_team_graphic.score.loss, Loss);
}
public function get TotalPlayers():int{
return (_players.length);
}
public function get Team():int{
return (_team);
}
private function SetNumTo(_arg1:MovieClip, _arg2:int):void{
var _local3:int;
var _local4:int;
_local3 = (_arg2 % 10);
_local4 = int(((_arg2 - _local3) / 10));
if (_local3 == 0){
_arg1.dig_1.gotoAndStop(10);
} else {
_arg1.dig_1.gotoAndStop(_local3);
};
if (_local4 == 0){
_arg1.dig_10.gotoAndStop(10);
} else {
_arg1.dig_10.gotoAndStop(_local4);
};
}
}
}//package Code.Data
Section 137
//SlowmoData (Code.Data.SlowmoData)
package Code.Data {
public class SlowmoData {
private var _currentSlowmotion:Number;
private var _timeStay:int;
private var _timeFadeOut:int;
private var _timeTotalDuration:int;
private var _timeFadeIn:int;
private var _elapsedTime:int;
private var _slowmotion:Number;
public function SlowmoData(_arg1:int, _arg2:int, _arg3:int, _arg4:Number){
_timeFadeIn = _arg1;
_timeStay = _arg2;
_timeFadeOut = _arg3;
_timeTotalDuration = ((_arg1 + _arg2) + _arg3);
_slowmotion = _arg4;
_elapsedTime = 0;
}
public function ProgressTime(_arg1:int=1):void{
_elapsedTime = (_elapsedTime + _arg1);
if (_elapsedTime < _timeFadeIn){
_currentSlowmotion = (1 - ((_elapsedTime / _timeFadeIn) * (1 - _slowmotion)));
} else {
if ((_elapsedTime <= (_timeFadeIn + _timeStay))){
_currentSlowmotion = _slowmotion;
} else {
_currentSlowmotion = (_slowmotion + (((_elapsedTime - (_timeFadeIn + _timeStay)) / _timeFadeOut) * (1 - _slowmotion)));
};
};
}
public function get CurrentSlowmotion():Number{
return (_currentSlowmotion);
}
public function get Completed():Boolean{
return ((_elapsedTime >= _timeTotalDuration));
}
}
}//package Code.Data
Section 138
//SmokePackageDataDynamic (Code.Data.SmokePackageDataDynamic)
package Code.Data {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Handler.*;
import Code.Particles.*;
public class SmokePackageDataDynamic {
private var _smokePoint:b2Vec2;
private var _body:b2Body;
private var _smoke_tick:Number;
private var _Handler_Effects:Effects;
private var _speed:Number;
private var _smoke_pack_done:Boolean;// = false
private var xDiff:Number;
private var yDiff:Number;
private var _still_timer:Number;// = 0
private var _smoke_timer:Number;
private var _init_smoke_grade:int;// = 0
private var _lastSmokePoint:b2Vec2;
public function SmokePackageDataDynamic(_arg1:Effects){
_smoke_pack_done = false;
_init_smoke_grade = 0;
_still_timer = 0;
super();
_Handler_Effects = _arg1;
_smoke_timer = (72 + (Math.random() * 5));
_smokePoint = new b2Vec2();
_lastSmokePoint = new b2Vec2();
}
public function SetSmokeElementAt(_arg1:b2Body):void{
_body = _arg1;
_init_smoke_grade = _arg1.GetUserData().objectData.ObjectSmokeGrade;
UpdatePosition();
_smoke_tick = (Math.random() * 2);
}
private function AddEffect():void{
var _local1:Number;
var _local2:Number;
_lastSmokePoint.x = _smokePoint.x;
_lastSmokePoint.y = _smokePoint.y;
_local1 = ((Math.random() * _body.m_userData.objectData.ShapeMC.width) - (_body.m_userData.objectData.ShapeMC.width / 2));
_local2 = ((Math.random() * _body.m_userData.objectData.ShapeMC.height) - (_body.m_userData.objectData.ShapeMC.height / 2));
_Handler_Effects.AddParticle(new particle_data("SMOKE_TRACE_EFFECT", (_smokePoint.x + (_local1 * 0.7)), (_smokePoint.y + (_local2 * 0.7)), _body.GetLinearVelocity(), 0, 1, [_init_smoke_grade]));
}
public function get SmokePackageCompleted():Boolean{
return (_smoke_pack_done);
}
public function Update(_arg1:Number):void{
if (((((!((_init_smoke_grade == _body.GetUserData().objectData.ObjectSmokeGrade))) || (_body.GetUserData().objectData.ObjectOnFire))) || ((_body.GetUserData().destroyed == true)))){
_smoke_pack_done = true;
return;
};
UpdatePosition();
_smoke_tick = (_smoke_tick - _arg1);
if (_smoke_tick <= 0){
AddEffect();
_smoke_tick = 3;
} else {
xDiff = (_lastSmokePoint.x - _smokePoint.x);
yDiff = (_lastSmokePoint.y - _smokePoint.y);
_speed = Math.sqrt(((xDiff * xDiff) + (yDiff * yDiff)));
if (_speed > 5){
AddEffect();
_smoke_tick = 3;
} else {
if (_speed < 0.5){
_still_timer = (_still_timer + _arg1);
if (_still_timer > 3){
_smoke_timer = 0;
};
} else {
_still_timer = 0;
};
};
};
_smoke_timer = (_smoke_timer - _arg1);
if (_smoke_timer <= 0){
_body.GetUserData().objectData.ObjectSmokeGrade = 0;
_smoke_pack_done = true;
};
}
private function UpdatePosition():void{
_smokePoint.x = (_body.GetPosition().x * 30);
_smokePoint.y = (_body.GetPosition().y * 30);
}
}
}//package Code.Data
Section 139
//SurvivalTimePackage (Code.Data.SurvivalTimePackage)
package Code.Data {
public class SurvivalTimePackage {
public var totalMins:int;
public var totalSecs:int;
public var wave:int;
public var totalParts:int;
}
}//package Code.Data
Section 140
//WeaponSpawnData (Code.Data.WeaponSpawnData)
package Code.Data {
import Code.Box2D.Dynamics.*;
public class WeaponSpawnData {
private var blinkTimer:Number;
private var positionY:Number;
private var linkedWeapon:b2Body;
private var positionX:Number;
private var startBlink:int;
private var weaponArray:Array;
private var skipThisOnce:Boolean;
private var weaponDespawnTimer:Number;
private var wpnHidden:Boolean;
public function WeaponSpawnData(_arg1:Number, _arg2:Number, _arg3:Array){
positionX = _arg1;
positionY = _arg2;
weaponArray = _arg3;
weaponDespawnTimer = 0;
blinkTimer = 0;
wpnHidden = false;
startBlink = (8 * 24);
linkedWeapon = null;
skipThisOnce = false;
}
public function get SkipThisOnce():Boolean{
if (skipThisOnce){
skipThisOnce = false;
return (true);
};
return (false);
}
public function Update(_arg1:Number):void{
if (linkedWeapon != null){
if (linkedWeapon.GetUserData().objectData.HP <= 0){
linkedWeapon = null;
weaponDespawnTimer = 0;
skipThisOnce = true;
} else {
if (weaponDespawnTimer > 0){
weaponDespawnTimer = (weaponDespawnTimer - _arg1);
if (weaponDespawnTimer <= 0){
linkedWeapon.GetUserData().objectData.ForceDestruction();
linkedWeapon = null;
} else {
if (weaponDespawnTimer <= startBlink){
blinkTimer = (blinkTimer - 1);
if (blinkTimer <= 0){
if (wpnHidden){
linkedWeapon.GetUserData().objectData.MC.gotoAndStop(1);
} else {
linkedWeapon.GetUserData().objectData.MC.gotoAndStop(2);
};
wpnHidden = !(wpnHidden);
blinkTimer = 8;
};
};
};
};
};
};
}
public function get PositionX():Number{
return (positionX);
}
public function get PositionY():Number{
return (positionY);
}
public function set LinkedWeapon(_arg1:b2Body):void{
linkedWeapon = _arg1;
weaponDespawnTimer = (20 * 24);
}
public function get LinkedWeapon():b2Body{
return (linkedWeapon);
}
public function get WeaponArray():Array{
return (weaponArray);
}
}
}//package Code.Data
Section 141
//BasicOverlays (Code.Handler.BasicOverlays)
package Code.Handler {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import flash.display.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
public class BasicOverlays {
private var _overlayLayer:MovieClip;
private var _list:Array;
public function BasicOverlays(_arg1:MovieClip){
_overlayLayer = _arg1;
_list = new Array();
}
public function AddOverlay(_arg1:b2Body, _arg2:MovieClip):void{
var _local3:Array;
_arg2.x = (_arg1.GetPosition().x * 30);
_arg2.y = (_arg1.GetPosition().y * 30);
_overlayLayer.addChild(_arg2);
_local3 = new Array();
_local3.push(_arg1);
_local3.push(_arg2);
_list.push(_local3);
}
public function Update():void{
var _local1:int;
if (_list.length <= 0){
return;
};
_local1 = (_list.length - 1);
while (_local1 >= 0) {
if (_list[_local1][0].GetUserData().destroyed == true){
_overlayLayer.removeChild(_list[_local1][1]);
_list.splice(_local1, 1);
} else {
_list[_local1][1].x = (_list[_local1][0].GetPosition().x * 30);
_list[_local1][1].y = (_list[_local1][0].GetPosition().y * 30);
};
_local1--;
};
}
}
}//package Code.Handler
Section 142
//Box2DMouse (Code.Handler.Box2DMouse)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Dynamics.*;
import flash.display.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
public class Box2DMouse {
private var m_world:b2World;
private var mousePVec:b2Vec2;
private var m_timeStep:Number;
private var mouseYWorldPhys:Number;
private var mouseYWorld:Number;
private var _Handler_Mouse:InputMouse;
private var m_body:b2Body;
private var m_mouseJoint:b2MouseJoint;
private var mouseXWorldPhys:Number;
private var mouseXWorld:Number;
public function Box2DMouse(_arg1:InputMouse, _arg2:b2World, _arg3:MovieClip){
mousePVec = new b2Vec2();
super();
_Handler_Mouse = _arg1;
m_world = _arg2;
}
public function MouseDrag():void{
var _local1:b2MouseJointDef;
var _local2:b2Vec2;
if (((_Handler_Mouse.MouseIsDown()) && (!(m_mouseJoint)))){
m_body = GetBodyAtMouse();
if (m_body){
_local1 = new b2MouseJointDef();
_local1.body1 = m_world.GetGroundBody();
_local1.body2 = m_body;
_local1.target.Set(mouseXWorldPhys, mouseYWorldPhys);
_local1.maxForce = (300 * m_body.GetMass());
_local1.timeStep = m_timeStep;
m_mouseJoint = (m_world.CreateJoint(_local1) as b2MouseJoint);
m_body.GetUserData().locked = true;
m_body.WakeUp();
};
};
if (!_Handler_Mouse.MouseIsDown()){
if (m_mouseJoint){
m_body.GetUserData().locked = false;
m_world.DestroyJoint(m_mouseJoint);
m_mouseJoint = null;
m_body = null;
};
};
if (m_mouseJoint){
_local2 = new b2Vec2(mouseXWorldPhys, mouseYWorldPhys);
m_mouseJoint.SetTarget(_local2);
};
}
private function GetBodyAtMouse(_arg1:Boolean=false):b2Body{
var _local2:b2AABB;
var _local3:int;
var _local4:Array;
var _local5:int;
var _local6:b2Body;
var _local7:int;
var _local8:b2Shape;
var _local9:Boolean;
mousePVec.Set(mouseXWorldPhys, mouseYWorldPhys);
_local2 = new b2AABB();
_local2.lowerBound.Set((mouseXWorldPhys - 0.001), (mouseYWorldPhys - 0.001));
_local2.upperBound.Set((mouseXWorldPhys + 0.001), (mouseYWorldPhys + 0.001));
_local3 = 10;
_local4 = new Array();
_local5 = m_world.Query(_local2, _local4, _local3);
_local6 = null;
_local7 = 0;
while (_local7 < _local5) {
if ((((_local4[_local7].GetBody().IsStatic() == false)) || (_arg1))){
_local8 = (_local4[_local7] as b2Shape);
_local9 = (_local4[_local7] as b2Shape).TestPoint(_local8.GetBody().GetXForm(), mousePVec);
if (_local9){
_local6 = _local8.GetBody();
break;
};
};
_local7++;
};
return (_local6);
}
public function MouseInteract():void{
var _local1:b2Body;
var _local2:b2Vec2;
var _local3:b2Vec2;
_local1 = GetBodyAtMouse(false);
if (_local1){
_local2 = new b2Vec2();
_local3 = new b2Vec2();
_local2.Set(0, (-6 * _local1.GetMass()));
_local3.x = GetMouseXWorldPhys();
_local3.y = GetMouseYWorldPhys();
_local1.WakeUp();
_local1.ApplyImpulse(_local2, _local3);
};
}
public function GetMouseXWorldPhys():Number{
return (mouseXWorldPhys);
}
public function MouseDestroy(_arg1:Boolean=false):void{
var _local2:b2Body;
if (!_Handler_Mouse.MouseIsDown()){
_local2 = GetBodyAtMouse(false);
if (_local2){
if (_arg1){
if (_local2.m_userData.objectData.DrawHitBox){
_local2.m_userData.objectData.CollisionMC.parent.removeChild(_local2.m_userData.objectData.CollisionMC);
};
_local2.m_userData.parent.removeChild(_local2.m_userData);
m_world.DestroyBody(_local2);
} else {
_local2.GetUserData().objectData.ForceDestruction();
};
return;
};
};
}
public function UpdateMouseWorld(_arg1:Point, _arg2:Number, _arg3:Number):void{
m_timeStep = _arg3;
_Handler_Mouse.UpdateMouse(_arg1, _arg2);
mouseXWorldPhys = (_Handler_Mouse.MouseX() / 30);
mouseYWorldPhys = (_Handler_Mouse.MouseY() / 30);
mouseXWorld = _Handler_Mouse.MouseX();
mouseYWorld = _Handler_Mouse.MouseY();
}
public function GetMouseYWorldPhys():Number{
return (mouseYWorldPhys);
}
}
}//package Code.Handler
Section 143
//Cam (Code.Handler.Cam)
package Code.Handler {
import flash.geom.*;
import flash.display.*;
public class Cam {
private var _gui_holder_mc:MovieClip;
private var _posTarget:Point;
private var _stage;
private var _speedX:Number;// = 0
private var _speedY:Number;// = 0
private var _screenHeight:Number;
private var _showAll:Boolean;// = false
private var _posSpeed:Point;
private var _dynamic_mc:MovieClip;
private var _menu_mc:MovieClip;
private var _scaleTarget:Number;// = 1
private var _fullScreenMode:Boolean;// = false
private var _Handler_Players:PlayersKeeper;
private var _fullScreenDivider:Number;// = 0
private var _scaleSpeed:Number;// = 0
private var __cam_override_done:Boolean;// = true
private var _mapArea:Rectangle;
private var _zoomStepsLeft:Number;// = 0
private var _camArea:Rectangle;
private var _extraScreenToVanish:Number;// = 0
private var _Handler_Keyboard:InputKeyboard;
private var _Handler_Output:OutputTrace;
private var _screenWidth:Number;
public static const sizeIncrease:Number = 40;
public function Cam(_arg1, _arg2:MovieClip, _arg3:MovieClip, _arg4:MovieClip, _arg5:OutputTrace, _arg6:PlayersKeeper){
_speedX = 0;
_speedY = 0;
_scaleTarget = 1;
_posTarget = new Point(0, 0);
_scaleSpeed = 0;
_posSpeed = new Point(0, 0);
_zoomStepsLeft = 0;
_camArea = new Rectangle();
_showAll = false;
_extraScreenToVanish = 0;
_fullScreenMode = false;
_fullScreenDivider = 0;
__cam_override_done = true;
super();
_stage = _arg1;
_dynamic_mc = _arg2;
_gui_holder_mc = _arg3;
_menu_mc = _arg4;
_Handler_Output = _arg5;
_Handler_Players = _arg6;
}
public function set ShowAll(_arg1:Boolean):void{
_showAll = _arg1;
}
public function RecalculateCamArea(_arg1:int=8, _arg2:Boolean=false):void{
var _local3:Rectangle;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
if (!_arg2){
if (!__cam_override_done){
return;
};
} else {
__cam_override_done = false;
};
if (!_showAll){
_local3 = _Handler_Players.GetCamArea();
} else {
_local3 = new Rectangle(_mapArea.x, _mapArea.y, _mapArea.width, _mapArea.height);
};
_local4 = (sizeIncrease * 4);
_local5 = (sizeIncrease * 3);
_local3.x = (_local3.x - (_local4 / 2));
_local3.y = (_local3.y - (_local5 / 2));
_local3.width = (_local3.width + _local4);
_local3.height = (_local3.height + _local5);
if (_local3.width > _mapArea.width){
_local3.width = _mapArea.width;
};
if (_local3.height > _mapArea.height){
_local3.height = _mapArea.height;
};
if (_local3.x < _mapArea.x){
_local3.x = _mapArea.x;
};
if ((_local3.x + _local3.width) > (_mapArea.x + _mapArea.width)){
_local3.x = ((_mapArea.x + _mapArea.width) - _local3.width);
};
if (_local3.y < _mapArea.y){
_local3.y = _mapArea.y;
};
if ((_local3.y + _local3.height) > (_mapArea.y + _mapArea.height)){
_local3.y = ((_mapArea.y + _mapArea.height) - _local3.height);
};
_local6 = (1 / (_local3.height / 600));
if (_fullScreenMode){
_local7 = (_extraScreenToVanish * (1 / _local6));
_local4 = ((_local7 / 3) * 4);
_local5 = _local7;
_local3.x = (_local3.x + (_local4 / 4));
_local3.y = (_local3.y + (_local5 / 4));
_local3.width = (_local3.width - _local4);
_local3.height = (_local3.height - _local5);
_local6 = (1 / (_local3.height / _fullScreenDivider));
};
_scaleTarget = _local6;
_posTarget.x = (-(_local3.x) * _local6);
_posTarget.y = (-(_local3.y) * _local6);
_camArea = _local3;
_zoomStepsLeft = _arg1;
_posSpeed.x = ((_posTarget.x - _dynamic_mc.x) / _zoomStepsLeft);
_posSpeed.y = ((_posTarget.y - _dynamic_mc.y) / _zoomStepsLeft);
_scaleSpeed = ((_scaleTarget - _dynamic_mc.scaleX) / _zoomStepsLeft);
}
public function SetScreenResulotion(_arg1:Number=800, _arg2:Number=600):void{
_screenWidth = _arg1;
_screenHeight = _arg2;
if (_arg2 < 0x0300){
_fullScreenMode = false;
} else {
_fullScreenMode = true;
switch (_arg2){
case 0x0300:
_fullScreenDivider = 500;
break;
case 1050:
_fullScreenDivider = 250;
break;
default:
_fullScreenDivider = (250 + ((1050 - _arg2) * (1 / 1.128)));
break;
};
};
_extraScreenToVanish = (_arg2 - 600);
_gui_holder_mc.scaleX = (_arg1 / 800);
_gui_holder_mc.scaleY = (_arg2 / 600);
_gui_holder_mc.x = (-((_arg1 - 800)) / 2);
_gui_holder_mc.y = (-((_arg2 - 600)) / 2);
_menu_mc.scaleX = (_arg1 / 800);
_menu_mc.scaleY = (_arg2 / 600);
_menu_mc.x = (-((_arg1 - 800)) / 2);
_menu_mc.y = (-((_arg2 - 600)) / 2);
_Handler_Output.Trace(((("Your resulotion: " + _arg1) + "x") + _arg2));
RecalculateCamArea(1);
}
public function Initialize():void{
SetScreenResulotion(_stage.stageWidth, _stage.stageHeight);
}
public function get ShowAll():Boolean{
return (_showAll);
}
public function IsInside(_arg1:Point):Boolean{
return (true);
}
public function SetMapArea(_arg1:Rectangle):void{
_mapArea = _arg1;
_Handler_Players.SetMapArea(_arg1);
RecalculateCamArea();
}
public function get MapArea():Rectangle{
return (_mapArea);
}
public function Update(_arg1:Number):void{
if (_zoomStepsLeft > 0){
_dynamic_mc.x = (_dynamic_mc.x + (_posSpeed.x * _arg1));
_dynamic_mc.y = (_dynamic_mc.y + (_posSpeed.y * _arg1));
_dynamic_mc.scaleX = (_dynamic_mc.scaleX + (_scaleSpeed * _arg1));
_dynamic_mc.scaleY = (_dynamic_mc.scaleY + (_scaleSpeed * _arg1));
_zoomStepsLeft = (_zoomStepsLeft - (1 * _arg1));
if (_zoomStepsLeft <= 0){
__cam_override_done = true;
};
};
}
}
}//package Code.Handler
Section 144
//CommandList (Code.Handler.CommandList)
package Code.Handler {
import Code.Box2D.Common.Math.*;
public class CommandList {
private var _Handler_Box2DMouse:Box2DMouse;
private var _menu:Array;
private var _Handler_Fires:Fires;
private var _Handler_Maps:Maps;
private var _curr_menu:int;// = 0
private var _Handler_Effects:Effects;
private var _debug:Boolean;
private var _Handler_Keyboard:InputKeyboard;
private var _Handler_Weapons:Weapons;
private var _Handler_Explosions:Explosions;
private var _Handler_Output:OutputTrace;
private var _Restart:Function;
private var _Handler_Players:PlayersKeeper;
private var _Handler_Sounds:Sounds;
public function CommandList(_arg1:OutputTrace, _arg2:Boolean){
_curr_menu = 0;
_menu = new Array([["Spawn Object", function (){
_curr_menu = 4;
PrintMenu();
}], ["Spawn Weapon", function (){
_curr_menu = 1;
PrintMenu();
}], ["Trigger Explosion", function (){
_Handler_Sounds.PlaySoundAt_Box2DScale("barrel_explosion", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys());
_Handler_Explosions.TriggerExplosionAt_Box2DScale("", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys());
}], ["Trigger Fire", function (){
_Handler_Sounds.PlaySoundAt_Box2DScale("fireburst", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys());
_Handler_Fires.TriggerFireAt_Box2DScale("", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys());
}], ["Destroy Object", function (){
_Handler_Box2DMouse.MouseDestroy();
}]], [["Prev", function (){
_curr_menu = 3;
PrintMenu();
}], ["Next", function (){
_curr_menu = 2;
PrintMenu();
}], ["Pistol", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_pistol", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Pistol;
}], ["Rifle", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_rifle", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Rifle;
}], ["Shotgun", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_shotgun", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Shotgun;
}], ["Sniper", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_sniper", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Sniper;
}], ["Bazooka", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_bazooka", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Bazooka;
}], ["Flamethrower", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_flamethrower", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Flamethrower;
}]], [["Prev", function (){
_curr_menu = 1;
PrintMenu();
}], ["Next", function (){
_curr_menu = 3;
PrintMenu();
}], ["Grenades", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_grenades", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Grenades;
}], ["Molotovs", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_molotovs", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Molotovs;
}], ["Axe", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_axe", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Axe;
}], ["Machete", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_machete", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Machete;
}], ["Sword", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_sword", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Sword;
}], ["Slowmotion (5)", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_slowmo_05", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Slowmo05;
}], ["Slowmotion (10)", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_slowmo_10", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Slowmo10;
}]], [["Prev", function (){
_curr_menu = 2;
PrintMenu();
}], ["Next", function (){
_curr_menu = 1;
PrintMenu();
}], ["Pills", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_pills", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Pills;
}], ["Medkit", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_medkit", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Medkit;
}], ["Magnum", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_magnum", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Magnum;
}], ["Uzi", function (){
var _local1:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_uzi", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
_local1.GetUserData().weaponData = _Handler_Weapons.Uzi;
}]], [["Prev", function (){
_curr_menu = 5;
PrintMenu();
}], ["Next", function (){
_curr_menu = 5;
PrintMenu();
}], ["Barrel", function (){
_Handler_Maps.Handler_WorldItems.AddObject("barrel", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Barrel Explosive", function (){
_Handler_Maps.Handler_WorldItems.AddObject("barrel_explosive", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Barrel Wreck", function (){
_Handler_Maps.Handler_WorldItems.AddObject("barrel_wreck", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Crate", function (){
_Handler_Maps.Handler_WorldItems.AddObject("crate", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Table", function (){
_Handler_Maps.Handler_WorldItems.AddObject("table", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Comfy Chair", function (){
_Handler_Maps.Handler_WorldItems.AddObject("comfy_chair", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Trashcan", function (){
_Handler_Maps.Handler_WorldItems.AddObject("Trashcan", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}]], [["Prev", function (){
_curr_menu = 4;
PrintMenu();
}], ["Next", function (){
_curr_menu = 4;
PrintMenu();
}], ["Gascan", function (){
_Handler_Maps.Handler_WorldItems.AddObject("gascan", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Filecab", function (){
_Handler_Maps.Handler_WorldItems.AddObject("filecab", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Pool Table", function (){
_Handler_Maps.Handler_WorldItems.AddObject("pool_table", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Beachball", function (){
_Handler_Maps.Handler_WorldItems.AddObject("beachball", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Rolling Pipe", function (){
_Handler_Maps.Handler_WorldItems.AddObject("rolling_pipe", _Handler_Box2DMouse.GetMouseXWorldPhys(), _Handler_Box2DMouse.GetMouseYWorldPhys(), 0, new b2Vec2(), 0);
}], ["Statue Globe", function (){
var _local1:*;
var _local2:*;
_local1 = _Handler_Maps.Handler_WorldItems.AddObject("statue_globe", _Handler_Box2DMouse.GetMouseXWorldPhys(), (_Handler_Box2DMouse.GetMouseYWorldPhys() - (30 / 30)), 0, new b2Vec2(), 0);
_local1.PutToSleep();
_local2 = _Handler_Maps.Handler_WorldItems.AddObject("statue", _Handler_Box2DMouse.GetMouseXWorldPhys(), (_Handler_Box2DMouse.GetMouseYWorldPhys() - (9 / 30)), 0, new b2Vec2(), 0);
_local2.PutToSleep();
}]], [["Holder", function (){
}], ["Holder", function (){
}]], [["Holder", function (){
}], ["Holder", function (){
}]], [["Holder", function (){
}], ["Holder", function (){
}]], [["Holder", function (){
}], ["Holder", function (){
}]]);
super();
_Handler_Output = _arg1;
_debug = _arg2;
}
public function PrintMenu():void{
var _local1:int;
_Handler_Output.Clear();
_local1 = (_menu[_curr_menu].length - 1);
while (_local1 >= 0) {
if (_menu[_curr_menu][_local1][0] != ""){
_Handler_Output.Trace((((_local1 + 1) + " - ") + _menu[_curr_menu][_local1][0]));
};
_local1--;
};
}
private function CallMethod():void{
var _local1:int;
if (_Handler_Keyboard.KeyIsDown(16)){
_local1 = 0;
while (_local1 < _menu[_curr_menu].length) {
if (_Handler_Keyboard.KeyIsDown((49 + _local1))){
var _local2 = _menu[_curr_menu][_local1];
_local2[1]();
};
_local1++;
};
};
}
public function LinkFunctions(_arg1:Function):void{
_Restart = _arg1;
}
private function ShowList():void{
_curr_menu = 0;
_Handler_Output.Show();
PrintMenu();
}
private function HideList():void{
_Handler_Output.Hide();
}
public function LinkHandlers(_arg1:Maps, _arg2:Box2DMouse, _arg3:InputKeyboard, _arg4:Effects, _arg5:Sounds, _arg6:Explosions, _arg7:Fires, _arg8:Weapons, _arg9:PlayersKeeper):void{
var _local10:int;
_Handler_Maps = _arg1;
_Handler_Box2DMouse = _arg2;
_Handler_Keyboard = _arg3;
_Handler_Effects = _arg4;
_Handler_Sounds = _arg5;
_Handler_Explosions = _arg6;
_Handler_Fires = _arg7;
_Handler_Weapons = _arg8;
_Handler_Players = _arg9;
if (_debug){
_Handler_Keyboard.AddHandler(16, ShowList, HideList);
_local10 = 49;
while (_local10 < 58) {
_Handler_Keyboard.AddHandler(_local10, CallMethod);
_local10++;
};
};
}
}
}//package Code.Handler
Section 145
//Deconstructer (Code.Handler.Deconstructer)
package Code.Handler {
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
public class Deconstructer {
private var m_world:b2World;
private var _deconstructListener:Array;
public function Deconstructer(){
_deconstructListener = new Array();
}
public function AddBody(_arg1:b2Body):void{
if (((!((_arg1.GetUserData().destroyed == true))) && (!((_arg1.GetUserData().locked == true))))){
if (((_arg1.m_userData.objectData.DrawHitBox) || (_arg1.m_userData.objectData.DrawCloudBox))){
_arg1.m_userData.objectData.CollisionMC.parent.removeChild(_arg1.m_userData.objectData.CollisionMC);
};
if (_arg1.m_userData.objectData.DrawShapeMC){
_arg1.m_userData.objectData.ShapeMC.parent.removeChild(_arg1.m_userData.objectData.ShapeMC);
};
_arg1.GetUserData().destroyed = true;
m_world.RemoveObjectFromLists(_arg1);
_deconstructListener.push(_arg1);
};
}
public function set Setb2World(_arg1:b2World):void{
m_world = _arg1;
}
public function set DeconstructList(_arg1:Array):void{
_deconstructListener = _arg1;
}
public function Update():void{
var i:int;
if (_deconstructListener.length > 0){
i = 0;
while (i < _deconstructListener.length) {
try {
_deconstructListener[i].m_userData.parent.removeChild(_deconstructListener[i].m_userData);
_deconstructListener[i].m_userData.onDestruction(_deconstructListener[i]);
m_world.DestroyBody(_deconstructListener[i]);
} catch(e:Error) {
};
i = (i + 1);
};
_deconstructListener = new Array();
};
}
public function get DeconstructList():Array{
return (_deconstructListener);
}
}
}//package Code.Handler
Section 146
//Effects (Code.Handler.Effects)
package Code.Handler {
import flash.display.*;
import Code.Particles.*;
public class Effects extends MovieClip {
private var _Handler_Output:OutputTrace;
private var _effect_behind_mc:MovieClip;
private var _Handler_Options:Options;
private var _effect_mc_primary:MovieClip;
private var _game_speed:Number;// = 1
private var _Handler_Maps:Maps;
private var _effect_mc:MovieClip;
private var _effect_mc_secondary:MovieClip;
private var _effect_behind_mc_primary:MovieClip;
private var _effect_behind_mc_secondary:MovieClip;
private static var EFFECT_LAYER_BACK:int = 0;
private static var EFFECT_PRIMARY:int = 0;
private static var EFFECT_SECONDARY:int = 1;
private static var EFFECT_LAYER_FRONT:int = 1;
public function Effects(_arg1:OutputTrace, _arg2:MovieClip, _arg3:MovieClip, _arg4:Options, _arg5:Maps){
_game_speed = 1;
super();
_Handler_Output = _arg1;
_effect_behind_mc = _arg2;
_effect_mc = _arg3;
_Handler_Options = _arg4;
_Handler_Maps = _arg5;
_effect_mc_primary = new MovieClip();
_effect_mc_secondary = new MovieClip();
_effect_behind_mc_primary = new MovieClip();
_effect_behind_mc_secondary = new MovieClip();
_effect_mc.addChild(_effect_mc_primary);
_effect_mc.addChild(_effect_mc_secondary);
_effect_behind_mc.addChild(_effect_behind_mc_primary);
_effect_behind_mc.addChild(_effect_behind_mc_secondary);
}
private function CanAddSecondaryEffect():Boolean{
if (TotalEffects >= _Handler_Options.GetTotalEffects()){
return (RemoveRandomSecondaryEffect());
};
return (true);
}
public function Stop():void{
StopParticlesIn(_effect_mc_primary);
StopParticlesIn(_effect_mc_secondary);
StopParticlesIn(_effect_behind_mc_primary);
StopParticlesIn(_effect_behind_mc_secondary);
}
public function AddParticle_Box2DScale(_arg1:particle_data):void{
_arg1.PosX = Math.round((_arg1.PosX * 30));
_arg1.PosY = Math.round((_arg1.PosY * 30));
AddParticle(_arg1);
}
public function AddParticle(_arg1:particle_data):void{
var _local2:MovieClip;
var _local3:*;
var _local4:*;
var _local5:MovieClip;
var _local6:MovieClip;
var _local7:Number;
var _local8:Number;
var _local9:int;
var _local10:MovieClip;
var _local11:Number;
var _local12:Number;
var _local13:MovieClip;
var _local14:Number;
if (_arg1.Effect != ""){
_local3 = EFFECT_PRIMARY;
_local4 = EFFECT_LAYER_FRONT;
switch (_arg1.Effect){
case "PROJECTILE_LIGHT_TRACE":
_local2 = new simple_effect(new bullet_effect_normal());
break;
case "GIB":
_local2 = new simple_effect(new gib_effect());
break;
case "TRACE_AXE_01":
_local2 = new simple_effect(new trace_axe_01());
break;
case "TRACE_AXE_02":
_local2 = new simple_effect(new trace_axe_02());
break;
case "TRACE_AXE_03":
_local2 = new simple_effect(new trace_axe_03());
break;
case "TRACE_MACHETE_01":
_local2 = new simple_effect(new trace_machete_01());
break;
case "TRACE_MACHETE_02":
_local2 = new simple_effect(new trace_machete_02());
break;
case "TRACE_MACHETE_03":
_local2 = new simple_effect(new trace_machete_03());
break;
case "TRACE_SWORD_01":
_local2 = new simple_effect(new trace_sword_01());
break;
case "TRACE_SWORD_02":
_local2 = new simple_effect(new trace_sword_02());
break;
case "TRACE_SWORD_03":
_local2 = new simple_effect(new trace_sword_03());
break;
case "TRACE_BAZOOKA_ROCKET":
_local2 = new fire_effect_bazooka_rocket(_arg1);
break;
case "BULLET_TRACE_SLOMO":
_local2 = new simple_effect(new bullet_trace_slomo());
break;
case "BUBBLE":
if ((((_Handler_Options.GetEffectLevel() >= 3)) || ((((_Handler_Options.GetEffectLevel() == 2)) && ((Math.random() < 0.5)))))){
_local2 = new simple_effect(new bubble());
_local3 = EFFECT_SECONDARY;
} else {
return;
};
break;
case "DUST":
case "WOOD":
_local2 = new particle_impact_wood(_arg1);
_local3 = EFFECT_SECONDARY;
break;
case "METAL":
_local2 = new particle_impact_metal(_arg1);
_local3 = EFFECT_SECONDARY;
break;
case "SMOKE_TRACE_EFFECT":
_local2 = new smoke_trace_effect(_arg1);
_local3 = EFFECT_SECONDARY;
break;
case "SMOKE_FIRE":
if (_Handler_Options.GetEffectLevel() >= 3){
_local2 = new smoke_fire(_arg1);
_local3 = EFFECT_SECONDARY;
_local4 = EFFECT_LAYER_BACK;
} else {
return;
};
break;
case "EXPLOSION_CIRCLE":
_local5 = new explosion_circle();
_local5.gotoAndPlay(2);
_local2 = new simple_effect(_local5);
break;
case "FILECAB_HIT":
_arg1.Effect = "PAPER_HIT";
AddParticle(_arg1);
_arg1.Effect = "BULLET_HITMETAL";
AddParticle(_arg1);
return;
case "EXPLOSION_CENTRUM":
_local6 = new explosion_circle();
_local6.gotoAndPlay(3);
_local2 = new simple_effect(_local6);
_local9 = 0;
while (_local9 < 360) {
_local11 = (12 + (Math.random() * 7));
_local12 = (((_local9 + (Math.random() * 40)) - 20) * (Math.PI / 180));
_local13 = new explosion_circle();
_local10 = new simple_effect(_local13);
_local10.CurrentFrame = Math.round((0.51 + (Math.random() * 2.98)));
_local10.x = (_arg1.PosX + (Math.cos(_local12) * _local11));
_local10.y = (_arg1.PosY + (Math.sin(_local12) * _local11));
_local10.rotation = _arg1.Rotation;
_local10.alpha = _arg1.Alpha;
_local10.scaleX = (_arg1.ScaleX * _local10.scaleX);
_local10.scaleY = (_arg1.ScaleY * _local10.scaleY);
_effect_mc_primary.addChild(_local10);
_local10.game_speed = _game_speed;
_local9 = (_local9 + 60);
};
break;
case "BULLET_HITMETAL":
_arg1.Alpha = 0.8;
switch (Math.floor((Math.random() * 4.99))){
case 0:
_local2 = new simple_effect(new hit_metal_1_1());
break;
case 1:
_local2 = new simple_effect(new hit_metal_1_2());
break;
case 2:
_local2 = new simple_effect(new hit_metal_2_1());
break;
case 3:
_local2 = new simple_effect(new hit_metal_2_2());
break;
case 4:
_local2 = new simple_effect(new hit_metal_3_1());
break;
};
break;
case "HITDEFAULT_01":
_local2 = new bullet_hitdefault(_arg1);
_local3 = EFFECT_SECONDARY;
break;
case "PLAYER_BURNED":
_arg1.Effect = "HITDEFAULT_01";
_local7 = _arg1.PosX;
_local8 = _arg1.PosY;
AddParticle(_arg1);
_local14 = 0;
while (_local14 < (Math.PI * 2)) {
_arg1.PosX = (_local7 + (Math.cos(_local14) * 6));
_arg1.PosY = (_local8 + (Math.sin(_local14) * 6));
AddParticle(_arg1);
_local14 = (_local14 + (Math.PI / 4));
};
return;
case "ELECTRIC_SPARK":
_arg1.Alpha = 0.8;
switch (Math.floor((Math.random() * 2.99))){
case 0:
_local2 = new simple_effect(new electric_1());
break;
case 1:
_local2 = new simple_effect(new electric_2());
break;
case 2:
_local2 = new simple_effect(new electric_3());
break;
};
break;
case "PLAYER_BURNED_HITDEFAULT":
case "BULLET_HITDEFAULT":
_arg1.Effect = "HITDEFAULT_01";
AddParticle(_arg1);
AddParticle(_arg1);
if (_Handler_Options.GetEffectLevel() >= 2){
AddParticle(_arg1);
};
return;
case "PARTICLE_BLOOD":
if (_arg1.DataArray == null){
_arg1.DataArray = new Array();
if (Math.random() < 0.5){
_arg1.DataArray.push(0);
} else {
_arg1.DataArray.push(1);
};
};
_local2 = new particle_blood(_arg1);
_local3 = EFFECT_SECONDARY;
break;
case "BLOOD":
switch (Math.round((Math.random() * 2))){
case 0:
_local2 = new simple_effect(new blood_1());
break;
case 1:
_local2 = new simple_effect(new blood_2());
break;
case 2:
_local2 = new simple_effect(new blood_3());
break;
};
break;
case "BLOOD_GIB_TRACE":
if (_Handler_Options.GetEffectLevel() >= 2){
_local2 = new blood_gib_trace(_arg1);
_local3 = EFFECT_SECONDARY;
} else {
return;
};
break;
case "FIRE":
_local2 = new fire_effect(_arg1);
break;
case "BODYFALL":
_local2 = new particle_bodyfall(_arg1);
break;
case "FIRE_FLAMETHROWER":
_local2 = new fire_effect_flamethrower(_arg1);
break;
case "FIREGROUND":
if (_Handler_Options.GetEffectLevel() >= 2){
_local2 = new fire_effect_ground(_arg1);
_local3 = EFFECT_SECONDARY;
} else {
return;
};
break;
case "DIVE_IMPACT":
case "KICK_IMPACT":
case "FIST_IMPACT":
case "BULLET_IMPACT":
case "BULLET_WHITE_SQUARE":
_local2 = new simple_effect(new bullet_impact());
break;
case "MUZZLE_WEAPON_SMOKE":
if (_Handler_Options.GetEffectLevel() >= 2){
_local2 = new muzzle_weapon_smoke(_arg1);
_local3 = EFFECT_SECONDARY;
_local4 = EFFECT_LAYER_BACK;
} else {
return;
};
break;
case "MUZZLE_FLASH_PISTOL":
_arg1.Effect = "MUZZLE_WEAPON_SMOKE";
AddParticle(_arg1);
AddParticle(_arg1);
_local2 = new simple_effect(new muzzle_flash_pistol());
break;
case "MUZZLE_FLASH_SNIPER":
_arg1.Effect = "MUZZLE_WEAPON_SMOKE";
AddParticle(_arg1);
AddParticle(_arg1);
AddParticle(_arg1);
_local2 = new simple_effect(new muzzle_flash_sniper());
break;
case "MUZZLE_FLASH_RIFLE":
_arg1.Effect = "MUZZLE_WEAPON_SMOKE";
AddParticle(_arg1);
_local2 = new simple_effect(new muzzle_flash_rifle());
break;
case "MUZZLE_FLASH_BAZOOKA":
_local2 = new simple_effect(new muzzle_flash_bazooka());
break;
case "MUZZLE_FLASH_SHOTGUN":
_arg1.Effect = "MUZZLE_WEAPON_SMOKE";
AddParticle(_arg1);
AddParticle(_arg1);
AddParticle(_arg1);
AddParticle(_arg1);
_local2 = new simple_effect(new muzzle_flash_shotgun());
break;
case "SPARK":
if (_Handler_Options.GetEffectLevel() >= 3){
_Handler_Maps.Handler_WorldItems.AddBox("spark", (_arg1.PosX / 30), (_arg1.PosY / 30), 0, _arg1.ParticleVec, 0);
};
return;
case "EMPTY_SHELL_SMALL":
if (_Handler_Options.GetEffectLevel() >= 3){
_Handler_Maps.Handler_WorldItems.AddBox("EMPTY_SHELL_SMALL", (_arg1.PosX / 30), (_arg1.PosY / 30), _arg1.Rotation, _arg1.ParticleVec, ((Math.random() * 10) - 5));
};
return;
case "EMPTY_SHELL_SHOTGUN":
if (_Handler_Options.GetEffectLevel() >= 3){
_Handler_Maps.Handler_WorldItems.AddBox("EMPTY_SHELL_SHOTGUN", (_arg1.PosX / 30), (_arg1.PosY / 30), _arg1.Rotation, _arg1.ParticleVec, ((Math.random() * 10) - 5));
};
return;
case "EMPTY_SHELL_BIG":
if (_Handler_Options.GetEffectLevel() >= 3){
_Handler_Maps.Handler_WorldItems.AddBox("EMPTY_SHELL_BIG", (_arg1.PosX / 30), (_arg1.PosY / 30), _arg1.Rotation, _arg1.ParticleVec, ((Math.random() * 10) - 5));
};
return;
case "PAPER_HIT":
_local2 = new simple_effect(new hit_paper());
if (Math.random() < 0.5){
_arg1.ScaleX = 1;
} else {
_arg1.ScaleX = -1;
};
break;
case "PICKUP_AXE":
case "PICKUP_BAZOOKA":
case "PICKUP_FLAMETHROWER":
case "PICKUP_SHOTGUN":
case "PICKUP_PISTOL":
case "PICKUP_MAGNUM":
case "PICKUP_RIFLE":
case "PICKUP_SNIPER":
case "PICKUP_MACHETE":
case "PICKUP_SWORD":
case "PICKUP_GRENADE":
case "PICKUP_MOLOTOV":
case "PICKUP_UZI":
case "PICKUP_SLOMO05":
case "PICKUP_SLOMO10":
_arg1.ScaleX = 0.75;
_arg1.ScaleY = 0.75;
_local2 = new pickup_sign(_arg1);
break;
default:
_local2 = new error_mc();
return;
};
if (_local3 == EFFECT_SECONDARY){
if (!CanAddSecondaryEffect()){
_local2.EndParticle();
return;
};
};
_local2.x = _arg1.PosX;
_local2.y = _arg1.PosY;
_local2.rotation = _arg1.Rotation;
_local2.alpha = _arg1.Alpha;
_local2.scaleX = (_arg1.ScaleX * _local2.scaleX);
_local2.scaleY = (_arg1.ScaleY * _local2.scaleY);
if (_local4 == EFFECT_LAYER_FRONT){
if (_local3 == EFFECT_PRIMARY){
_effect_mc_primary.addChild(_local2);
} else {
_effect_mc_secondary.addChild(_local2);
};
} else {
if (_local3 == EFFECT_PRIMARY){
_effect_behind_mc_primary.addChild(_local2);
} else {
_effect_behind_mc_secondary.addChild(_local2);
};
};
_local2.game_speed = _game_speed;
};
}
private function StopParticlesIn(_arg1:MovieClip):void{
var _local2:int;
_local2 = _arg1.numChildren;
while (_local2 > 0) {
_local2--;
MovieClip(_arg1.getChildAt(_local2)).EndParticle();
};
}
public function get TotalEffects():int{
return ((((_effect_mc_primary.numChildren + _effect_mc_secondary.numChildren) + _effect_behind_mc_primary.numChildren) + _effect_behind_mc_secondary.numChildren));
}
public function AddEffectAt(_arg1:String, _arg2:Number, _arg3:Number):void{
AddParticle(new particle_data(_arg1, _arg2, _arg3));
}
public function AddEffectAt_Box2DScale(_arg1:String, _arg2:Number, _arg3:Number):void{
AddEffectAt(_arg1, (_arg2 * 30), (_arg3 * 30));
}
public function get EffectMCFront():MovieClip{
return (_effect_mc);
}
public function get EffectMCBack():MovieClip{
return (_effect_behind_mc);
}
private function RemoveRandomEffectFrom(_arg1:MovieClip):Boolean{
var _local2:*;
if (_arg1.numChildren <= 0){
return (false);
};
_local2 = Math.floor((Math.random() * (_arg1.numChildren - 0.0001)));
if (_local2 < 0){
_local2 = 0;
};
MovieClip(_arg1.getChildAt(_local2)).EndParticle();
return (true);
}
public function RemoveRandomSecondaryEffect():Boolean{
if (_effect_mc_secondary.numChildren <= 0){
return (RemoveRandomEffectFrom(_effect_behind_mc_secondary));
};
if (_effect_behind_mc_secondary.numChildren <= 0){
return (RemoveRandomEffectFrom(_effect_mc_secondary));
};
if (Math.random() < 0.5){
return (RemoveRandomEffectFrom(_effect_behind_mc_secondary));
};
return (RemoveRandomEffectFrom(_effect_mc_secondary));
}
public function SetSlowmotion(_arg1:Number):void{
_game_speed = _arg1;
SetSlowmotionIn(_effect_mc_primary);
SetSlowmotionIn(_effect_mc_secondary);
SetSlowmotionIn(_effect_behind_mc_primary);
SetSlowmotionIn(_effect_behind_mc_secondary);
}
private function SetSlowmotionIn(_arg1:MovieClip):void{
var _local2:int;
_local2 = _arg1.numChildren;
while (_local2 > 0) {
_local2--;
MovieClip(_arg1.getChildAt(_local2)).game_speed = _game_speed;
};
}
}
}//package Code.Handler
Section 147
//Explosions (Code.Handler.Explosions)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import flash.display.*;
import Code.Data.*;
import Code.Particles.*;
public class Explosions {
private var _sp:Array;
private var explosionPowerObjects:Number;// = 5
private var _static_mc:MovieClip;
private var _Handler_Fires:Fires;
private var _Handler_Effects:Effects;
private var _object_mc:MovieClip;
private var _Handler_Camera:Cam;
private var _Handler_Shake:Shake;
private var explosionPowerPlayers:Number;// = 5
private var _dynamic_mc:MovieClip;
private var _Handler_Sounds:Sounds;
private var explosionPosX:Number;
private var explosionPosY:Number;
private var explosionBuffer:Array;
private var _Handler_Players:PlayersKeeper;
private var _static_objects_hitbox_mc:MovieClip;
private var explosionDamagePlayers:Number;// = 20
private var m_world:b2World;
private var _static_world_hitbox_mc:MovieClip;
private var _Handler_Slowmo:Slowmo;
private var _explosion_mc:MovieClip;
private var explosionDamage:Number;// = 25
private var _m:Number;
private var _n:int;// = 36
private var _p:int;
private var _r:Number;// = 0
private var _static_world_cloud_hitbox_mc:MovieClip;
private var _Handler_Output:OutputTrace;
private var _static_objects_cloud_hitbox_mc:MovieClip;
private var _powerForEachPin:Number;
public function Explosions(){
_explosion_mc = new MovieClip();
_n = 36;
_r = 0;
explosionPowerObjects = 5;
explosionPowerPlayers = 5;
explosionDamage = 25;
explosionDamagePlayers = 20;
explosionBuffer = new Array();
super();
}
public function LinkToFire(_arg1:Fires):void{
_Handler_Fires = _arg1;
}
public function Update(_arg1:Number):void{
var _local2:int;
var _local3:b2Body;
if (explosionBuffer.length > 0){
_local2 = 0;
while (_local2 < explosionBuffer.length) {
explosionBuffer[_local2][0] = (explosionBuffer[_local2][0] - 1);
if (explosionBuffer[_local2][0] <= 0){
_local3 = explosionBuffer[_local2][1];
_local3.m_userData.objectData.Damage_Explosion(explosionBuffer[_local2][2]);
explosionBuffer.splice(_local2, 1);
};
_local2++;
};
};
}
public function TriggerExplosionAt_Box2DScale(_arg1:String, _arg2:Number, _arg3:Number):void{
_arg2 = Math.round((_arg2 * 30));
_arg3 = Math.round((_arg3 * 30));
TriggerExplosionAt(_arg1, _arg2, _arg3);
}
public function BuildClass(_arg1:ExplosionData):void{
var _local2:*;
_Handler_Output = _arg1.Handler_Output;
_Handler_Camera = _arg1.Handler_Camera;
_Handler_Shake = _arg1.Handler_Shake;
_Handler_Players = _arg1.Handler_Players;
_Handler_Effects = _arg1.Handler_Effects;
_Handler_Sounds = _arg1.Handler_Sounds;
_Handler_Slowmo = _arg1.Handler_Slowmo;
_static_mc = _arg1.static_mc;
_dynamic_mc = _arg1.dynamic_mc;
m_world = _arg1.m_world;
_static_world_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_HITBOX"));
_static_objects_hitbox_mc = MovieClip(_static_world_hitbox_mc.getChildByName("OBJECTS_HITBOX"));
_static_world_cloud_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_CLOUD_HITBOX"));
_static_objects_cloud_hitbox_mc = MovieClip(_static_world_cloud_hitbox_mc.getChildByName("OBJECTS_CLOUD_HITBOX"));
_static_mc.addChild(_explosion_mc);
_sp = new Array();
_local2 = 0;
while (_local2 < _n) {
_sp.push(new Array(Math.cos(GradToRad((_local2 * (360 / _n)))), Math.sin(GradToRad((_local2 * (360 / _n)))), 2, 3, 0, 0));
_local2++;
};
_Handler_Output.Trace("Explosion Handler Created");
}
private function GradToRad(_arg1:Number):Number{
return (((Math.PI / 180) * _arg1));
}
public function TriggerExplosionAt(_arg1:String, _arg2:Number, _arg3:Number):Boolean{
var _local4:int;
var _local5:b2Body;
var _local6:Number;
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:int;
var _local14:int;
var _local15:b2Body;
var _local16:Boolean;
var _local17:Number;
var _local18:Number;
var _local19:*;
var _local20:int;
var _local21:*;
_Handler_Output.Trace((((("Explosion Triggered At (" + _arg2) + ", ") + _arg3) + ")"));
if (_static_world_hitbox_mc.hitTestPoint(_arg2, _arg3, true)){
if (!_static_objects_hitbox_mc.hitTestPoint(_arg2, _arg3, true)){
_local16 = true;
_local17 = (_arg2 - 5);
while (_local17 <= (_arg2 + 5)) {
_local18 = (_arg3 - 5);
while (_local18 <= (_arg3 + 5)) {
if (((_static_world_hitbox_mc.hitTestPoint(_local17, _local18, true)) && (!(_static_objects_hitbox_mc.hitTestPoint(_local17, _local18, true))))){
} else {
_arg2 = _local17;
_arg3 = _local18;
_local16 = false;
_local17 = (_arg2 + 10);
_local18 = (_arg3 + 10);
_Handler_Output.Trace((((("Explosion Triggered At Updated Position (" + _arg2) + ", ") + _arg3) + ")"));
};
_local18 = (_local18 + 5);
};
_local17 = (_local17 + 5);
};
if (_local16){
_Handler_Output.Trace("Explosion triggered inside a static object. Aborting explosion");
return (false);
};
};
};
explosionPosX = _arg2;
explosionPosY = _arg3;
if (_Handler_Camera.IsInside(new Point(_arg2, _arg3))){
_Handler_Shake.Add(5, 4);
};
_r = 33;
_m = 0;
_p = _n;
_local4 = 3;
_local7 = 0;
while (_local7 < _n) {
_sp[_local7][2] = _arg2;
_sp[_local7][3] = _arg3;
_sp[_local7][4] = 0;
_local19 = 0;
while (_local19 <= _r) {
_sp[_local7][2] = (_sp[_local7][2] + (_sp[_local7][0] * _local4));
_sp[_local7][3] = (_sp[_local7][3] + (_sp[_local7][1] * _local4));
if (((_static_world_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true)) || (_static_world_cloud_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true)))){
if (((!(_static_objects_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true))) && (!(_static_objects_cloud_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true))))){
_sp[_local7][2] = (_sp[_local7][2] + (_sp[_local7][0] * _local4));
_sp[_local7][3] = (_sp[_local7][3] + (_sp[_local7][1] * _local4));
_sp[_local7][4] = 1;
_sp[_local7][5] = _local19;
_m = (_m + (_r - _local19));
_p = (_p - 1);
break;
} else {
_local5 = m_world.GetDynamicBodyAt(_sp[_local7][2], _sp[_local7][3], true);
if (_local5 == null){
_Handler_Output.Trace((("Error 2: Object '" + _local5) + "' doesn't exist"));
} else {
if (_local5.m_userData.objectData.CanBlockExplosions){
_sp[_local7][2] = (_sp[_local7][2] + (_sp[_local7][0] * _local4));
_sp[_local7][3] = (_sp[_local7][3] + (_sp[_local7][1] * _local4));
_sp[_local7][4] = 1;
_sp[_local7][5] = _local19;
_m = (_m + (_r - _local19));
_p = (_p - 1);
if (_local5.m_userData.objectData.AffectedByExplosions){
_local6 = (1 - (_local19 / _r));
_local6 = (_local6 * 4);
if (_local6 > 1){
_local6 = 1;
};
_local6 = (_local6 * (0.01 * _local5.GetMass()));
_local5.ApplyImpulse(new b2Vec2(((_sp[_local7][2] - _arg2) * _local6), (((_sp[_local7][3] - _arg3) - 10) * _local6)), new b2Vec2((_sp[_local7][2] / 30), (_sp[_local7][3] / 30)));
_local5.GetUserData().objectData.Damage_Explosion((explosionDamage * 0.1));
};
break;
};
};
};
};
_local19 = (_local19 + _local4);
};
if (_sp[_local7][4] == 0){
_sp[_local7][5] = _r;
};
_local7++;
};
if (_m > 0){
_powerForEachPin = ((_m / _p) * 0.25);
if (_powerForEachPin > (_r * 0.5)){
_powerForEachPin = (_r * 0.5);
};
_local7 = 0;
while (_local7 < _n) {
if (_sp[_local7][4] == 0){
_local21 = 1;
while (_local21 <= _powerForEachPin) {
_sp[_local7][2] = (_sp[_local7][2] + (_sp[_local7][0] * _local4));
_sp[_local7][3] = (_sp[_local7][3] + (_sp[_local7][1] * _local4));
if (((_static_world_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true)) || (_static_world_cloud_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true)))){
if (((!(_static_objects_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true))) && (!(_static_objects_cloud_hitbox_mc.hitTestPoint(_sp[_local7][2], _sp[_local7][3], true))))){
_sp[_local7][2] = (_sp[_local7][2] + (_sp[_local7][0] * _local4));
_sp[_local7][3] = (_sp[_local7][3] + (_sp[_local7][1] * _local4));
_sp[_local7][4] = 1;
_sp[_local7][5] = (_sp[_local7][5] + _local21);
break;
} else {
_local5 = m_world.GetDynamicBodyAt(_sp[_local7][2], _sp[_local7][3], true);
if (_local5 == null){
_Handler_Output.Trace((("Error 3: Object '" + _local5) + "' doesn't exist"));
} else {
if (_local5.m_userData.objectData.CanBlockExplosions){
_sp[_local7][4] = 1;
_sp[_local7][5] = (_sp[_local7][5] + _local21);
break;
};
};
};
};
_local21 = (_local21 + _local4);
};
if (_sp[_local7][4] == 0){
_sp[_local7][5] = (_sp[_local7][5] + _powerForEachPin);
};
};
_local7++;
};
_r = (_r + _powerForEachPin);
_explosion_mc.graphics.clear();
_explosion_mc.graphics.lineStyle(1, 0xFF0000, 1, false, "none");
_explosion_mc.graphics.beginFill(0xFF0000, 0);
_explosion_mc.graphics.moveTo(_sp[0][2], _sp[0][3]);
_local20 = 1;
while (_local20 < _n) {
_explosion_mc.graphics.lineTo(_sp[_local20][2], _sp[_local20][3]);
_local20++;
};
_explosion_mc.graphics.lineTo(_sp[0][2], _sp[0][3]);
_explosion_mc.graphics.endFill();
} else {
_explosion_mc.graphics.clear();
_explosion_mc.graphics.lineStyle(1, 0xFF0000, 1, false, "none");
_explosion_mc.graphics.beginFill(0xFF0000, 0);
_explosion_mc.graphics.drawCircle(_arg2, _arg3, (_r + 1));
_explosion_mc.graphics.endFill();
};
_local13 = 0;
_local14 = 0;
while (_local14 < _Handler_Players.Players.length) {
if (!_Handler_Players.Players[_local14].State.Gone){
if (_explosion_mc.hitTestPoint(_Handler_Players.Players[_local14].ExplosionX(), _Handler_Players.Players[_local14].ExplosionY(), true)){
_local10 = (_Handler_Players.Players[_local14].ExplosionX() - explosionPosX);
_local11 = (_Handler_Players.Players[_local14].ExplosionY() - explosionPosY);
_local12 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
if (_local12 <= (_r / 2)){
_local9 = 1;
} else {
_local9 = (1 - ((_local12 - (_r / 2)) / (_r / 2)));
if (_local9 < 0){
_local9 = 0;
};
};
if (_local9 > 0){
_local8 = Math.atan2(_local11, _local10);
_Handler_Players.Players[_local14].ExplosionHit(_local8, (explosionPowerPlayers * _local9), (explosionDamagePlayers * _local9));
if (((!(_Handler_Players.Players[_local14].Ignore)) && ((_Handler_Players.Players[_local14].State.HP > 0)))){
_local13 = (_local13 + 1);
};
};
};
};
_local14++;
};
if (_local13 >= 2){
_Handler_Slowmo.AddSlowmotion(new SlowmoData(0, (24 * 1), (24 * 0.5), 0.25));
};
if (_local13 >= 1){
_Handler_Shake.Add(2, 2);
};
_local15 = m_world.m_bodyList;
while (_local15) {
if ((_local15.m_userData is Sprite)){
if (_explosion_mc.hitTestPoint(_local15.m_userData.x, _local15.m_userData.y, true)){
if (_local15.m_userData.objectData.AffectedByExplosions){
_local10 = (_local15.m_userData.x - explosionPosX);
_local11 = ((_local15.m_userData.y - 4) - explosionPosY);
_local12 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11)));
if (_local12 <= (_r / 2)){
_local9 = 1;
} else {
_local9 = (1 - (((_local12 * 2) - _r) / _r));
if (_local9 < 0){
_local9 = 0;
};
};
if (_local9 > 0){
_Handler_Fires.AddSmokeToObject(_local15, 2);
_local8 = Math.atan2(_local11, _local10);
explosionBuffer.push([1, _local15, explosionDamage]);
_local15.ApplyImpulse(new b2Vec2((((Math.cos(_local8) * _local15.GetMass()) * explosionPowerObjects) * _local9), (((Math.sin(_local8) * _local15.GetMass()) * explosionPowerObjects) * _local9)), _local15.GetWorldPoint(new b2Vec2((-(Math.cos(_local8)) * 0.2), (-(Math.sin(_local8)) * 0.1))));
};
};
};
};
_local15 = _local15.m_next;
};
_Handler_Effects.AddParticle(new particle_data("explosion_centrum", _arg2, _arg3));
return (true);
}
}
}//package Code.Handler
Section 148
//Fires (Code.Handler.Fires)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import flash.display.*;
import Code.Data.*;
import flash.utils.*;
public class Fires {
private var _burn_timer:Number;// = 96
private var _in_fire_test_mc:MovieClip;
private var _static_mc:MovieClip;
private var _Handler_Effects:Effects;
private var _fire_nodes:Array;
private var _firePlayerObjectTimer:Number;
private var _fire_mc:MovieClip;
private var _Handler_Camera:Cam;
private var _fireObjectFireDamageTimer:Number;
private var _fireTimer:Number;
private var _dynamic_mc:MovieClip;
private var _update_sequence:int;// = 1
private var game_speed:Number;// = 1
private var _Handler_Players:PlayersKeeper;
private var _Handler_Sounds:Sounds;
private var _static_objects_hitbox_mc:MovieClip;
private var _letFireDrop:Boolean;// = false
private var _static_world_hitbox_mc:MovieClip;
private var m_world:b2World;
private var _smoke_packages:Array;
private var _object_shape_container_mc:MovieClip;
private var _Handler_Output:OutputTrace;
private var _static_objects_cloud_hitbox_mc:MovieClip;
private var _static_world_cloud_hitbox_mc:MovieClip;
public function Fires(_arg1:ExplosionData, _arg2:MovieClip){
_burn_timer = 96;
_update_sequence = 1;
_letFireDrop = false;
game_speed = 1;
super();
_Handler_Output = _arg1.Handler_Output;
_Handler_Camera = _arg1.Handler_Camera;
_Handler_Players = _arg1.Handler_Players;
_Handler_Effects = _arg1.Handler_Effects;
_Handler_Sounds = _arg1.Handler_Sounds;
_static_mc = _arg1.static_mc;
_dynamic_mc = _arg1.dynamic_mc;
m_world = _arg1.m_world;
_object_shape_container_mc = _arg2;
_static_world_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_HITBOX"));
_static_objects_hitbox_mc = MovieClip(_static_world_hitbox_mc.getChildByName("OBJECTS_HITBOX"));
_static_world_cloud_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_CLOUD_HITBOX"));
_static_objects_cloud_hitbox_mc = MovieClip(_static_world_cloud_hitbox_mc.getChildByName("OBJECTS_CLOUD_HITBOX"));
_fire_mc = new MovieClip();
_static_mc.addChild(_fire_mc);
_smoke_packages = new Array();
_fire_nodes = new Array();
_in_fire_test_mc = new MovieClip();
_in_fire_test_mc.graphics.lineStyle(0.5, 0xFF0000, 1);
_in_fire_test_mc.graphics.beginFill(0xFF0000, 0.5);
_in_fire_test_mc.graphics.moveTo(-4, 0);
_in_fire_test_mc.graphics.lineTo(-4, -16);
_in_fire_test_mc.graphics.lineTo(4, -16);
_in_fire_test_mc.graphics.lineTo(4, 0);
_in_fire_test_mc.graphics.lineTo(4, 0);
_in_fire_test_mc.graphics.endFill();
_fireTimer = setInterval(UpdateFires, (1000 / 24));
_firePlayerObjectTimer = setInterval(PlayerObjectOverlap, 42);
_fireObjectFireDamageTimer = setInterval(ObjectFireDamage, 84);
_Handler_Output.Trace("Fire Handler Created");
}
private function CollisionFireBlock(_arg1:Point):Boolean{
var _local2:b2Body;
if (((CollisionStatic(_arg1)) || (CollisionStaticCloud(_arg1)))){
return (true);
};
_local2 = m_world.GetDynamicBodyAt(_arg1.x, _arg1.y, true);
if (_local2 != null){
if (_local2.GetUserData().objectData.CanBlockFire){
return (true);
};
};
return (false);
}
private function PlayerOverlap():void{
var _local1:int;
var _local2:int;
_local1 = 0;
while (_local1 < _Handler_Players.Players.length) {
if (!_Handler_Players.Players[_local1].State.Gone){
if (_fire_mc.hitTestObject(_Handler_Players.Players[_local1].CollisionMC)){
_local2 = (_fire_nodes.length - 1);
while (_local2 >= 0) {
if (_fire_nodes[_local2].Owner != _local1){
if (_fire_nodes[_local2].PlayerNR != _local1){
if (_fire_nodes[_local2].FireArea.hitTestObject(_Handler_Players.Players[_local1].CollisionMC)){
if (_fire_nodes[_local2].IsFlamethrower){
_Handler_Players.Players[_local1].State.BurnState = (_Handler_Players.Players[_local1].State.BurnState + 20);
};
_Handler_Players.Players[_local1].FireContact(true, 3);
_local2 = -1;
};
};
};
_local2--;
};
};
PlayerInFire(_local1);
};
_local1++;
};
}
private function ObjectOverlap():void{
var _local1:b2Body;
var _local2:int;
var _local3:int;
_local2 = 0;
while (_local2 < m_world.BurnObjectList.length) {
_local1 = m_world.BurnObjectList[_local2];
if (!_local1.GetUserData().objectData.ObjectOnFire){
if (_fire_mc.hitTestObject(_local1.GetUserData().objectData.ShapeMC)){
_local3 = (_fire_nodes.length - 1);
while (_local3 >= 0) {
if (_fire_nodes[_local3].FireArea.hitTestObject(_local1.GetUserData().objectData.ShapeMC)){
AddFireToObject(_local1);
_local3 = -1;
};
_local3--;
};
};
};
_local2++;
};
}
private function CollisionStaticCloud(_arg1:Point):Boolean{
if (((_static_world_cloud_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true)) && (!(_static_objects_cloud_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true))))){
return (true);
};
return (false);
}
public function AddFireToObject(_arg1:b2Body):void{
var _local2:FireNodeData;
if (_arg1.GetUserData().objectData.CanBurn){
if (!_arg1.GetUserData().objectData.ObjectOnFire){
_local2 = new FireNodeData(_Handler_Effects, _fire_mc, _burn_timer, 0, 0, 0, 0);
_local2.BurnBody(_arg1);
_fire_nodes.push(_local2);
_arg1.GetUserData().objectData.ObjectOnFire = true;
};
};
}
private function ObjectFireDamage():void{
var _local1:b2Body;
var _local2:int;
var _local3:int;
_local2 = 0;
while (_local2 < m_world.CanTakeFireDamageList.length) {
_local1 = m_world.CanTakeFireDamageList[_local2];
if (_fire_mc.hitTestObject(_local1.GetUserData().objectData.ShapeMC)){
_local3 = (_fire_nodes.length - 1);
while (_local3 >= 0) {
if (_fire_nodes[_local3].FireArea.hitTestObject(_local1.GetUserData().objectData.ShapeMC)){
if (_fire_nodes[_local3].IsFlamethrower){
_local1.GetUserData().objectData.Damage_Fire((game_speed * 6));
} else {
_local1.GetUserData().objectData.Damage_Fire((game_speed * 2));
};
_local3 = -1;
};
_local3--;
};
};
_local2++;
};
}
private function UpdateFires():void{
var _local1:b2Body;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:int;
var _local6:Boolean;
var _local7:Point;
var _local8:int;
var _local9:int;
var _local10:FireNodeData;
if (_smoke_packages.length > 0){
_local3 = 0;
while (_local3 < _smoke_packages.length) {
_smoke_packages[_local3].Update(game_speed);
if (_smoke_packages[_local3].SmokePackageCompleted){
_smoke_packages.splice(_local3, 1);
};
_local3++;
};
};
_local2 = (_fire_nodes.length - 1);
while (_local2 >= 0) {
_fire_nodes[_local2].Update(game_speed);
if (_fire_nodes[_local2].InAir){
if (!_fire_nodes[_local2].IsFlamethrower){
_fire_nodes[_local2].VelX = (_fire_nodes[_local2].VelX * (0.9 + (0.1 * (1 - game_speed))));
} else {
_fire_nodes[_local2].VelX = (_fire_nodes[_local2].VelX * (0.93 + (0.07 * (1 - game_speed))));
};
if (_fire_nodes[_local2].SlowingDown){
if (!_fire_nodes[_local2].IsFlamethrower){
_fire_nodes[_local2].VelY = (_fire_nodes[_local2].VelY * (0.9 + (0.1 * (1 - game_speed))));
} else {
_fire_nodes[_local2].VelY = (_fire_nodes[_local2].VelY * (0.95 + (0.05 * (1 - game_speed))));
};
if (Math.abs(_fire_nodes[_local2].TotalVel) <= 2){
_fire_nodes[_local2].SlowingDown = false;
};
} else {
_fire_nodes[_local2].VelY = (_fire_nodes[_local2].VelY + (0.2 * game_speed));
};
_local4 = 1;
_local4 = Math.round((_fire_nodes[_local2].TotalVel / 4));
if (_local4 < 1){
_local4 = 1;
};
_local5 = 0;
while (_local5 < _local4) {
_fire_nodes[_local2].PosX = (_fire_nodes[_local2].PosX + ((_fire_nodes[_local2].VelX * game_speed) / _local4));
_fire_nodes[_local2].PosY = (_fire_nodes[_local2].PosY + ((_fire_nodes[_local2].VelY * game_speed) / _local4));
_local6 = (_fire_nodes[_local2].VelY < 0);
if (_fire_nodes[_local2].PassCloud){
_local6 = true;
};
_local7 = new Point(_fire_nodes[_local2].PosX, _fire_nodes[_local2].PosY);
if (((CollisionStatic(_local7)) || (((CollisionStaticCloud(_local7)) && (!(_local6)))))){
_local8 = 0;
while (_local8 < 10) {
_fire_nodes[_local2].PosX = (_fire_nodes[_local2].PosX - ((_fire_nodes[_local2].VelX * game_speed) / (_local4 * 4)));
_fire_nodes[_local2].PosY = (_fire_nodes[_local2].PosY - ((_fire_nodes[_local2].VelY * game_speed) / (_local4 * 4)));
_local7 = new Point(_fire_nodes[_local2].PosX, _fire_nodes[_local2].PosY);
if (((!(CollisionStatic(_local7))) && (!(CollisionStaticCloud(_local7))))){
_local8 = 10;
};
_local8++;
};
if (_letFireDrop){
_local7 = new Point(_fire_nodes[_local2].PosX, (_fire_nodes[_local2].PosY + 2));
if (((CollisionStatic(_local7)) || (((CollisionStaticCloud(_local7)) && (!(_local6)))))){
_fire_nodes[_local2].InAir = false;
} else {
_fire_nodes[_local2].VelY = 0;
if (_fire_nodes[_local2].VelX < 0){
_fire_nodes[_local2].VelX = 0.1;
} else {
if (_fire_nodes[_local2].VelX > 0){
_fire_nodes[_local2].VelX = -0.1;
};
};
};
} else {
_fire_nodes[_local2].InAir = false;
};
} else {
if (_object_shape_container_mc.hitTestPoint(_fire_nodes[_local2].PosX, _fire_nodes[_local2].PosY, true)){
_local1 = m_world.GetFireCarrierAt(_fire_nodes[_local2].PosX, _fire_nodes[_local2].PosY);
if (_local1 != null){
_local9 = 0;
while (_local9 < 10) {
_fire_nodes[_local2].PosX = (_fire_nodes[_local2].PosX - ((_fire_nodes[_local2].VelX * game_speed) / (_local4 * 4)));
_fire_nodes[_local2].PosY = (_fire_nodes[_local2].PosY - ((_fire_nodes[_local2].VelY * game_speed) / (_local4 * 4)));
if (!_local1.m_userData.objectData.ShapeMC.hitTestPoint(_fire_nodes[_local2].PosX, _fire_nodes[_local2].PosY, true)){
_local9 = 10;
};
_local9++;
};
if (_letFireDrop){
if (_local1.m_userData.objectData.ShapeMC.hitTestPoint(_fire_nodes[_local2].PosX, (_fire_nodes[_local2].PosY + 2), true)){
_fire_nodes[_local2].InAir = false;
} else {
_fire_nodes[_local2].VelY = 0;
if (_fire_nodes[_local2].VelX < 0){
_fire_nodes[_local2].VelX = 0.1;
} else {
if (_fire_nodes[_local2].VelX > 0){
_fire_nodes[_local2].VelX = -0.1;
};
};
};
} else {
_fire_nodes[_local2].InAir = false;
};
if (!_fire_nodes[_local2].InAir){
_fire_nodes[_local2].FollowBody(_local1, _local1.GetLocalPoint(new b2Vec2((_fire_nodes[_local2].PosX / 30), (_fire_nodes[_local2].PosY / 30))));
};
};
};
};
_local5++;
};
_fire_nodes[_local2].UpdateMC();
if (!_fire_nodes[_local2].InAir){
_local10 = GetNearbyFireNode(_fire_nodes[_local2]);
if (_local10 != null){
if (_fire_nodes[_local2].BurnTimer > _local10.BurnTimer){
_local10.BurnTimer = _fire_nodes[_local2].BurnTimer;
};
_fire_nodes[_local2].End();
};
};
};
if (_fire_nodes[_local2].FireNodeCompleted){
_fire_nodes.splice(_local2, 1);
};
_local2--;
};
}
private function PlayerObjectOverlap():void{
_update_sequence = (_update_sequence + 1);
if (_update_sequence > 2){
_update_sequence = 1;
};
if (_update_sequence == 1){
ObjectOverlap();
} else {
if (_update_sequence == 2){
PlayerOverlap();
};
};
}
private function CollisionStatic(_arg1:Point):Boolean{
if (((_static_world_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true)) && (!(_static_objects_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true))))){
return (true);
};
return (false);
}
public function AddSmokeToObject(_arg1:b2Body, _arg2:Number):void{
var _local3:SmokePackageDataDynamic;
if (_arg1.GetUserData().objectData.CanSmoke){
if (_arg2 > _arg1.GetUserData().objectData.ObjectSmokeGrade){
_arg1.GetUserData().objectData.ObjectSmokeGrade = _arg2;
_local3 = new SmokePackageDataDynamic(_Handler_Effects);
_local3.SetSmokeElementAt(_arg1);
_smoke_packages.push(_local3);
};
};
}
public function Stop():void{
clearInterval(_fireTimer);
clearInterval(_firePlayerObjectTimer);
clearInterval(_fireObjectFireDamageTimer);
}
public function AddFlame(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:int):void{
var _local5:Number;
var _local6:Number;
var _local7:b2Vec2;
_local5 = (_arg3 * (Math.PI / 180));
_local6 = (9 + (Math.random() * 1));
_local7 = new b2Vec2((Math.cos(_local5) * _local6), (Math.sin(_local5) * _local6));
_fire_nodes.push(new FireNodeData(_Handler_Effects, _fire_mc, _burn_timer, _arg1, _arg2, _local7.x, _local7.y, _arg4, 1));
}
public function TriggerFireAt(_arg1:String, _arg2:Number, _arg3:Number):void{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:int;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:int;
var _local18:Boolean;
var _local19:Point;
var _local20:int;
_Handler_Output.Trace((((("Fire Triggered At (" + _arg2) + ", ") + _arg3) + ")"));
if (_static_world_hitbox_mc.hitTestPoint(_arg2, _arg3, true)){
if (!_static_objects_hitbox_mc.hitTestPoint(_arg2, _arg3, true)){
_Handler_Output.Trace("Fire triggered inside a static object. Aborting fire");
return;
};
};
_local8 = 3;
_local9 = 0.5;
_local10 = 22;
_local11 = 20;
switch (_arg1.toUpperCase()){
case "GASCAN":
case "BARREL":
_local11 = 16;
_local8 = 2.2;
_local9 = 0.4;
_local10 = 18;
break;
};
_local12 = 0;
while (_local12 < _local10) {
_local4 = ((Math.PI / (_local10 / 2)) * _local12);
_local7 = (_local8 + (Math.random() * _local9));
_local5 = (Math.cos(_local4) * _local7);
_local6 = ((Math.sin(_local4) * _local7) - (Math.random() * 0.5));
_fire_nodes.push(new FireNodeData(_Handler_Effects, _fire_mc, _burn_timer, (_arg2 + (Math.cos(_local4) * 3)), (_arg3 + (Math.sin(_local4) * 3)), _local5, _local6));
_local12++;
};
_local17 = 0;
while (_local17 < _Handler_Players.Players.length) {
_local13 = _arg2;
_local14 = _arg3;
_local15 = (_Handler_Players.Players[_local17].MidPosX() - _arg2);
_local16 = (_Handler_Players.Players[_local17].MidPosY() - _arg3);
if (Math.sqrt(((_local15 * _local15) + (_local16 * _local16))) <= _local11){
_local5 = (_local15 / _local11);
_local6 = (_local16 / _local11);
_local18 = false;
_local19 = new Point(_arg2, _arg3);
_local20 = 1;
while (_local20 <= _local11) {
_local19.x = (_local19.x + _local5);
_local19.y = (_local19.y + _local6);
if (CollisionFireBlock(_local19)){
_local18 = true;
_local20 = (_local11 + 1);
};
_local20++;
};
if (!_local18){
_Handler_Players.Players[_local17].State.BurnState = 100;
PlayerInFire(_local17);
};
};
_local17++;
};
}
public function TriggerFireAt_Box2DScale(_arg1:String, _arg2:Number, _arg3:Number):void{
_arg2 = Math.round((_arg2 * 30));
_arg3 = Math.round((_arg3 * 30));
TriggerFireAt(_arg1, _arg2, _arg3);
}
private function GradToRad(_arg1:Number):Number{
return (((Math.PI / 180) * _arg1));
}
private function GetNearbyFireNode(_arg1:FireNodeData):FireNodeData{
var _local2:FireNodeData;
var _local3:Number;
var _local4:int;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local2 = null;
_local3 = 3;
_local4 = 0;
while (_local4 < _fire_nodes.length) {
if (_fire_nodes[_local4].CanBeMerged){
if (_fire_nodes[_local4] != _arg1){
_local5 = (_fire_nodes[_local4].PosX - _arg1.PosX);
_local6 = (_fire_nodes[_local4].PosY - _arg1.PosY);
_local7 = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
if (_local7 < _local3){
_local3 = _local7;
_local2 = _fire_nodes[_local4];
};
};
};
_local4++;
};
return (_local2);
}
private function PlayerInFire(_arg1:int):void{
var _local2:FireNodeData;
if (_Handler_Players.Players[_arg1].State.BurnState > 0){
if (((!(_Handler_Players.Players[_arg1].State.FireRank1Attached)) && ((_Handler_Players.Players[_arg1].State.BurnState >= _Handler_Players.Players[_arg1].State.FireRank1Minimum)))){
_local2 = new FireNodeData(_Handler_Effects, _fire_mc, _burn_timer, 0, 0, 0, 0);
_local2.BurnPlayer(_Handler_Players.Players[_arg1], _arg1, 1);
_Handler_Players.Players[_arg1].State.FireRank1Attached = true;
_fire_nodes.push(_local2);
};
if (((!(_Handler_Players.Players[_arg1].State.FireRank2Attached)) && ((_Handler_Players.Players[_arg1].State.BurnState >= _Handler_Players.Players[_arg1].State.FireRank2Minimum)))){
_local2 = new FireNodeData(_Handler_Effects, MovieClip(_dynamic_mc.getChildByName("EFFECTS2")), _burn_timer, 0, 0, 0, 0);
_local2.BurnPlayer(_Handler_Players.Players[_arg1], _arg1, 2);
_Handler_Players.Players[_arg1].State.FireRank2Attached = true;
_fire_nodes.push(_local2);
};
};
}
public function Update(_arg1:Number):void{
game_speed = _arg1;
}
public function PlayerPosInFire(_arg1:Number, _arg2:Number):Boolean{
var _local3:int;
if (_fire_nodes.length <= 0){
return (false);
};
_in_fire_test_mc.x = _arg1;
_in_fire_test_mc.y = _arg2;
if (_fire_mc.hitTestObject(_in_fire_test_mc)){
_local3 = (_fire_nodes.length - 1);
while (_local3 >= 0) {
if (_fire_nodes[_local3].FireArea.hitTestObject(_in_fire_test_mc)){
return (true);
};
_local3--;
};
};
return (false);
}
}
}//package Code.Handler
Section 149
//GameMain (Code.Handler.GameMain)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Dynamics.*;
import flash.events.*;
import Code.Data.Weapons.*;
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Common.*;
import Code.Box2D.Dynamics.Contacts.*;
import Code.Particles.*;
import flash.ui.*;
import flash.net.*;
import flash.filters.*;
public class GameMain {
private var _roundOver:Boolean;
private var _ContactData:ContactData;
private var _Handler_Portals:Portals;
private var _tips:MovieClip;
private var _Handler_Camera:Cam;
var fullcolour:ColorMatrixFilter;
private var _game_window:MovieClip;
private var _victory_text:MovieClip;
private var _last_bgNoiseFrame:int;// = 1
private var _Handler_Options:Options;
private var _round_initialized:int;
private var _box2D_speed:Number;// = 100
private var _Handler_Deconstructer:Deconstructer;
private var _Handler_Mouse:InputMouse;
private var _dynamic_mc:MovieClip;
private var _Handler_Projectiles:Projectiles;
private var _Handler_Sounds:Sounds;
private var _Handler_Box2DMouse:Box2DMouse;
private var _Handler_Players:PlayersKeeper;
private var _static_objects_hitbox_mc:MovieClip;
private var _countdown_mc:MovieClip;
private var _player_speed:Number;// = 1
private var _shake_container:MovieClip;
private var _Handler_WeaponSpawn:WeaponSpawn;
private var _dynamic_gui_mc:MovieClip;
private var _Handler_Slowmo:Slowmo;
public var m_iterations:int;// = 20
private var _Handler_Weapons:Weapons;
private var _static_players_hitbox_mc:MovieClip;
private var _gameModeWinnerShown:Boolean;
private var _object_shape_container_mc:MovieClip;
private var _static_world_cloud_hitbox_mc:MovieClip;
private var _static_objects_cloud_hitbox_mc:MovieClip;
private var _static_ladder_hitbox_mc:MovieClip;
private var _Handler_Fires:Fires;
private var _Handler_Maps:Maps;
private var _camera_speed:Number;// = 1
private var _Handler_Effects:Effects;
private var _static_mc:MovieClip;
private var _Handler_Shake:Shake;
private var _score:Scoreboard;
private var _Handler_Commands:CommandList;
private var _tipsOver:Boolean;
private var _bgNoise:MovieClip;
public var m_world:b2World;
private var _countdownOver:Boolean;
private var _Handler_MenuMain:MenuMain;
private var _countdown:int;// = 0
private var _Handler_ProjectilesUpdater:ProjectilesUpdater;
private var _static_world_hitbox_mc:MovieClip;
private var _game_mc:MovieClip;
var greyscale:ColorMatrixFilter;
var colour:Array;
var nocolour:Array;
private var _press_space_indication:MovieClip;
private var _bodyIndex:int;
public var m_timeStep:Number;// = 0.0333333333333333
private var _Handler_Keyboard:InputKeyboard;
private var _prevGameData:NewGameData;
private var _scoreSurvival:ScoreboardSurvival;
private var _Handler_Explosions:Explosions;
private var _Handler_Output:OutputTrace;
private var _Handler_BasicOverlays:BasicOverlays;
private var _stage;
public static var DEBUG_MODE:Boolean = false;
public function GameMain(_arg1:GameMainData){
_box2D_speed = 100;
_camera_speed = 1;
_player_speed = 1;
_countdown = 0;
_last_bgNoiseFrame = 1;
nocolour = [0.213, 0.715, 0.072, 0, 0, 0.213, 0.715, 0.072, 0, 0, 0.213, 0.715, 0.072, 0, 0, 0, 0, 0, 1, 0];
colour = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
greyscale = new ColorMatrixFilter(nocolour);
fullcolour = new ColorMatrixFilter(colour);
m_iterations = 20;
m_timeStep = (1 / 30);
super();
_game_mc = _arg1.game_mc;
_stage = _arg1.stage_temp;
_Handler_Output = _arg1.Handler_Output;
_Handler_Options = _arg1.Handler_Options;
_Handler_Sounds = _arg1.Handler_Sounds;
_Handler_Sounds.ChangeVolume(1);
_Handler_Weapons = new Weapons(_Handler_Output);
_Handler_Projectiles = new Projectiles(_Handler_Output);
_Handler_Maps = new Maps(_Handler_Output);
_Handler_Mouse = new InputMouse(_stage);
_Handler_Commands = new CommandList(_Handler_Output, DEBUG_MODE);
_tips = new tips();
_tips.gotoAndStop(1);
_press_space_indication = new press_space();
_victory_text = new round_winner();
_Handler_Output.Trace("Main Game Initialized");
}
private function ShowVictoryText():void{
_victory_text.visible = true;
}
private function ShowStatic():void{
_dynamic_mc.alpha = 0.2;
_object_shape_container_mc.visible = true;
_static_mc.visible = true;
}
public function StartNewGame(_arg1:NewGameData):void{
var _static_players_area_mc:MovieClip;
var slomo_rectangle:MovieClip;
var gui_holder_mc:MovieClip;
var level_mc:levels;
var mc_effects_behind:MovieClip;
var mc_objects:MovieClip;
var mc_scrap:MovieClip;
var mc_players:MovieClip;
var mc_weapons:MovieClip;
var mc_effects:MovieClip;
var mc_effects2:MovieClip;
var mc_projectiles:MovieClip;
var mc_lazers:MovieClip;
var level_front_mc:levels_front;
var pData:PlayersKeeperData;
var eData:ExplosionData;
var puData:ProjectilesUpdaterData;
var p:int;
var p2:int;
var gameData = _arg1;
_prevGameData = gameData;
_Handler_Keyboard = new InputKeyboard(_stage);
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("P"), _Handler_Options.ToggleEffectLevel);
_static_mc = new MovieClip();
_static_mc.name = "STATIC";
_static_world_hitbox_mc = new MovieClip();
_static_world_hitbox_mc.name = "WORLD_HITBOX";
_static_world_cloud_hitbox_mc = new MovieClip();
_static_world_cloud_hitbox_mc.name = "WORLD_CLOUD_HITBOX";
_static_objects_cloud_hitbox_mc = new MovieClip();
_static_objects_cloud_hitbox_mc.name = "OBJECTS_CLOUD_HITBOX";
_static_ladder_hitbox_mc = new MovieClip();
_static_ladder_hitbox_mc.name = "LADDER_HITBOX";
_static_objects_hitbox_mc = new MovieClip();
_static_objects_hitbox_mc.name = "OBJECTS_HITBOX";
_static_players_hitbox_mc = new MovieClip();
_static_players_hitbox_mc.name = "PLAYERS_HITBOX";
_static_players_area_mc = new MovieClip();
_static_players_area_mc.name = "PLAYERS_AREA";
_static_mc.addChild(_static_ladder_hitbox_mc);
_static_mc.addChild(_static_players_hitbox_mc);
_static_mc.addChild(_static_players_area_mc);
_static_world_hitbox_mc.addChild(_static_objects_hitbox_mc);
_static_mc.addChild(_static_world_hitbox_mc);
_static_world_cloud_hitbox_mc.addChild(_static_objects_cloud_hitbox_mc);
_static_mc.addChild(_static_world_cloud_hitbox_mc);
_dynamic_mc = new MovieClip();
_dynamic_mc.name = "DYNAMIC";
_object_shape_container_mc = new MovieClip();
_object_shape_container_mc.name = "ALLOBJECTS";
HideStatic();
_game_mc.addChild(_static_mc);
_game_mc.addChild(_object_shape_container_mc);
_shake_container = new MovieClip();
_shake_container.name = "DYNAMICHOLDER";
_shake_container.addChild(_dynamic_mc);
_game_window = new MovieClip();
_game_window.name = "GAME_WINDOW";
_game_window.addChild(_shake_container);
_game_mc.addChild(_game_window);
slomo_rectangle = new MovieClip();
_game_mc.addChild(slomo_rectangle);
gui_holder_mc = new gui_holder();
gui_holder_mc.name = "GUI_HOLDER";
_game_mc.addChild(gui_holder_mc);
if (gameData.pSetupData.totalPlayers > 4){
gui_holder_mc.gotoAndStop(2);
} else {
gui_holder_mc.gotoAndStop(1);
};
_game_mc.addChild(_press_space_indication);
_game_mc.addChild(_victory_text);
HideSpaceIndication();
HideVictoryText();
level_mc = new levels();
level_mc.name = "LEVEL";
level_mc.gotoAndStop(gameData.lvl);
_dynamic_mc.addChild(level_mc);
mc_effects_behind = new MovieClip();
mc_effects_behind.name = "EFFECTSBEHIND";
_dynamic_mc.addChild(mc_effects_behind);
mc_objects = new MovieClip();
mc_objects.name = "OBJECTS";
_dynamic_mc.addChild(mc_objects);
mc_scrap = new MovieClip();
mc_scrap.name = "SCRAP";
_dynamic_mc.addChild(mc_scrap);
mc_players = new MovieClip();
mc_players.name = "PLAYERS";
_dynamic_mc.addChild(mc_players);
mc_weapons = new MovieClip();
mc_weapons.name = "WEAPONS";
_dynamic_mc.addChild(mc_weapons);
mc_effects = new MovieClip();
mc_effects.name = "EFFECTS";
_dynamic_mc.addChild(mc_effects);
mc_effects2 = new MovieClip();
mc_effects2.name = "EFFECTS2";
_dynamic_mc.addChild(mc_effects2);
mc_projectiles = new MovieClip();
mc_projectiles.name = "PROJECTILES";
_dynamic_mc.addChild(mc_projectiles);
mc_lazers = new MovieClip();
mc_lazers.name = "LAZERS";
_dynamic_mc.addChild(mc_lazers);
level_front_mc = new levels_front();
level_front_mc.name = "LEVEL_FRONT";
level_front_mc.gotoAndStop(gameData.lvl);
_dynamic_mc.addChild(level_front_mc);
_dynamic_gui_mc = new MovieClip();
_dynamic_gui_mc.name = "GUI";
_game_window.addChild(_dynamic_gui_mc);
_Handler_BasicOverlays = new BasicOverlays(mc_lazers);
_Handler_Explosions = new Explosions();
_Handler_Deconstructer = new Deconstructer();
_Handler_Effects = new Effects(_Handler_Output, MovieClip(_dynamic_mc.getChildByName("EFFECTSBEHIND")), MovieClip(_dynamic_mc.getChildByName("EFFECTS")), _Handler_Options, _Handler_Maps);
_Handler_Slowmo = new Slowmo(_Handler_Output, _Handler_Effects, _Handler_Sounds, slomo_rectangle, _stage);
_Handler_Shake = new Shake(_Handler_Output, _shake_container);
_Handler_Maps.UpdateMCs(_static_mc, _dynamic_mc, _object_shape_container_mc);
_Handler_Maps.UpdateHandlers(_Handler_Effects, _Handler_Explosions, _Handler_Sounds, _Handler_BasicOverlays);
_ContactData = new ContactData();
_ContactData.Handler_Output = _Handler_Output;
_ContactData.Handler_Effects = _Handler_Effects;
_ContactData.Handler_Sounds = _Handler_Sounds;
_ContactData.Handler_Deconstructer = _Handler_Deconstructer;
_Handler_Maps.ConstructContactListener(_ContactData);
m_world = _Handler_Maps.GetMap(gameData.lvl);
_Handler_WeaponSpawn = new WeaponSpawn(_Handler_Output, _Handler_Maps, _Handler_Weapons);
_Handler_ProjectilesUpdater = new ProjectilesUpdater();
_Handler_Deconstructer.Setb2World = m_world;
_Handler_Box2DMouse = new Box2DMouse(_Handler_Mouse, m_world, _dynamic_mc);
pData = new PlayersKeeperData();
pData.stg = _stage;
pData.game_mc = _game_mc;
pData.Handler_Projectiles = _Handler_ProjectilesUpdater;
pData.Handler_Output = _Handler_Output;
pData.Handler_Keyboard = _Handler_Keyboard;
pData.Handler_Effects = _Handler_Effects;
pData.Handler_Maps = _Handler_Maps;
pData.Handler_Shake = _Handler_Shake;
pData.Handler_Sounds = _Handler_Sounds;
pData.Handler_Slowmo = _Handler_Slowmo;
pData.pathGrid = _Handler_Maps.GetPathGrid(gameData.lvl);
pData.rangedStartWeapon = _Handler_Weapons.Pistol;
pData.throwableStartWeapon = _Handler_Weapons.Grenades;
pData.meleeStartWeapon = null;
pData.defaultMeleeWeapon = _Handler_Weapons.Fists;
pData.m_world = m_world;
pData.pSetupData = gameData.pSetupData;
pData.pSetupData.playerSpawnPositions = _Handler_Maps.GetPlayerSpawnPositions(gameData.lvl);
_Handler_Players = new PlayersKeeper(pData);
_Handler_Maps.LinkPlayers(_Handler_Players);
_Handler_Maps.LinkWeapons(_Handler_Weapons);
_Handler_Camera = new Cam(_stage, _dynamic_mc, gui_holder_mc, _Handler_MenuMain.MenuOverlay, _Handler_Output, _Handler_Players);
_Handler_Camera.SetMapArea(_Handler_Maps.GetMinimumMapArea(gameData.lvl));
_Handler_Options.LinkToCam(_Handler_Camera);
_Handler_Players.LinkToCam(_Handler_Camera);
_Handler_Portals = new Portals(m_world, _Handler_Players, _Handler_Output);
_Handler_Portals.SetMapPortals(_Handler_Maps.GetMapPortals(gameData.lvl));
eData = new ExplosionData();
eData.Handler_Output = _Handler_Output;
eData.Handler_Camera = _Handler_Camera;
eData.Handler_Shake = _Handler_Shake;
eData.Handler_Players = _Handler_Players;
eData.Handler_Effects = _Handler_Effects;
eData.Handler_Sounds = _Handler_Sounds;
eData.Handler_Slowmo = _Handler_Slowmo;
eData.static_mc = _static_mc;
eData.dynamic_mc = _dynamic_mc;
eData.m_world = m_world;
_Handler_Explosions.BuildClass(eData);
_Handler_Fires = new Fires(eData, _object_shape_container_mc);
_Handler_Explosions.LinkToFire(_Handler_Fires);
_Handler_Players.LinkToFire(_Handler_Fires);
_Handler_Maps.Handler_WorldItems.LinkToFire(_Handler_Fires);
puData = new ProjectilesUpdaterData();
puData.Handler_Output = _Handler_Output;
puData.Handler_Projectiles = _Handler_Projectiles;
puData.Handler_Camera = _Handler_Camera;
puData.Handler_Players = _Handler_Players;
puData.Handler_Effects = _Handler_Effects;
puData.Handler_Sounds = _Handler_Sounds;
puData.Handler_Explosions = _Handler_Explosions;
puData.static_mc = _static_mc;
puData.dynamic_mc = _dynamic_mc;
puData.object_shape_container_mc = _object_shape_container_mc;
puData.m_world = m_world;
_Handler_ProjectilesUpdater.BuildClass(puData);
_stage.addEventListener(Event.ENTER_FRAME, Update, false, 0, true);
m_world.DrawDebugData();
m_world.FallAsleepBody = function (_arg1:b2Body):void{
_Handler_Portals.CheckBodyInsidePortal(_arg1);
};
_Handler_Commands.LinkHandlers(_Handler_Maps, _Handler_Box2DMouse, _Handler_Keyboard, _Handler_Effects, _Handler_Sounds, _Handler_Explosions, _Handler_Fires, _Handler_Weapons, _Handler_Players);
_Handler_Commands.LinkFunctions(Restart);
_Handler_Maps.GetPathGrid().UpdateHandlers(_Handler_Fires, m_world);
_countdownOver = true;
_bgNoise = null;
if (gameData.isSurvival){
_countdown_mc = new get_ready_fight();
_countdown_mc.x = 400;
_countdown_mc.y = 300;
_countdown_mc.scaleX = 4;
_countdown_mc.scaleY = 4;
_game_window.addChild(_countdown_mc);
_countdown = (_countdown_mc.totalFrames - 1);
_Handler_Sounds.InMenu = false;
_game_window.visible = false;
_round_initialized = 2;
_countdownOver = false;
_Handler_Keyboard.AddHandler(27, BackToMainMenu);
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("SPACE"), SpacePressed);
_scoreSurvival = new ScoreboardSurvival(_game_mc);
p = 0;
while (p < _Handler_Players.Players.length) {
_scoreSurvival.AddPlayerToScore(_Handler_Players.Players[p]);
p = (p + 1);
};
_scoreSurvival.Build();
gui_holder_mc.addChild(_scoreSurvival.MC);
_scoreSurvival.Hide();
} else {
if (gameData.isTutorial){
_countdown = 0;
_Handler_Sounds.InMenu = false;
_game_window.visible = false;
_round_initialized = 2;
_Handler_Keyboard.AddHandler(27, BackToMainMenu);
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("SPACE"), SpacePressed);
_Handler_Players.ActivatePlayers();
_Handler_Camera.ShowAll = true;
} else {
if (!gameData.isMenuDemo){
_countdown_mc = new get_ready_fight();
_countdown_mc.x = 400;
_countdown_mc.y = 300;
_countdown_mc.scaleX = 4;
_countdown_mc.scaleY = 4;
_game_window.addChild(_countdown_mc);
_countdown = (_countdown_mc.totalFrames - 1);
_Handler_Sounds.InMenu = false;
_game_window.visible = false;
_round_initialized = 2;
_countdownOver = false;
_Handler_Keyboard.AddHandler(27, BackToMainMenu);
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("SPACE"), SpacePressed);
if (_prevGameData.newScore){
_prevGameData.newScore = false;
_score = new Scoreboard(_game_mc, _prevGameData.gameMode);
p2 = 0;
while (p2 < _Handler_Players.Players.length) {
_score.AddPlayerToScore(_Handler_Players.Players[p2]);
p2 = (p2 + 1);
};
_score.Build();
};
gui_holder_mc.addChild(_score.MC);
_score.Hide();
} else {
_countdown = 0;
_game_window.visible = false;
_round_initialized = 2;
_Handler_Sounds.InMenu = true;
_Handler_Players.ActivatePlayers();
_bgNoise = new bg_noise();
_bgNoise.EFFECT_MC.gotoAndPlay(_last_bgNoiseFrame);
_game_window.addChild(_bgNoise);
gui_holder_mc.visible = false;
_game_window.removeChild(_dynamic_gui_mc);
_game_window.addChild(_dynamic_gui_mc);
};
};
};
if (gameData.showTips){
_tipsOver = false;
_game_mc.addChild(_tips);
_tips.gotoAndStop((1 + Math.floor((Math.random() * (_tips.totalFrames - 0.001)))));
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("LEFT"), function (){
ChangeTips(-1);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("RIGHT"), function (){
ChangeTips(1);
});
_countdown_mc.gotoAndStop(1);
_countdown_mc.visible = false;
ShowSpaceIndication();
} else {
_tipsOver = true;
};
_roundOver = false;
_gameModeWinnerShown = false;
_game_window.scaleX = gameData.gameScale;
_game_window.scaleY = gameData.gameScale;
_game_window.x = gameData.gamePosX;
_game_window.y = gameData.gamePosY;
_Handler_Output.Trace("New Game Created");
}
private function ChangeTips(_arg1:int):void{
var _local2:int;
if (!_tipsOver){
_local2 = (_tips.currentFrame + _arg1);
if (_local2 <= 0){
_local2 = _tips.totalFrames;
};
if (_local2 > _tips.totalFrames){
_local2 = 1;
};
_tips.gotoAndStop(_local2);
};
}
public function Stop():void{
_Handler_Output.Trace("");
_Handler_Output.Trace("Stopping Game...");
_stage.removeEventListener(Event.ENTER_FRAME, Update);
_Handler_Keyboard.Deconstruct();
_Handler_Effects.Stop();
_Handler_Maps.Stop();
_Handler_Slowmo.Stop();
_Handler_Fires.Stop();
_Handler_Players.Stop();
ClearMC(_game_mc);
_Handler_Output.Trace("Game Stopped");
}
private function ShowSpaceIndication():void{
_press_space_indication.visible = true;
_press_space_indication.gotoAndPlay(1);
}
private function HideSpaceIndication():void{
_press_space_indication.visible = false;
}
private function SetBlackWhite(_arg1:MovieClip):void{
_arg1.filters = [greyscale];
}
private function SpacePressed():void{
var _local1:ScoreboardTeam;
var _local2:SharedObject;
if (!_tipsOver){
_game_mc.removeChild(_tips);
_tipsOver = true;
_countdown_mc.visible = true;
_countdown_mc.gotoAndPlay(1);
HideSpaceIndication();
return;
};
if (_roundOver){
if (_prevGameData.isSurvival){
if (!_gameModeWinnerShown){
_Handler_Keyboard.RemoveHandler(Keyboard.TAB);
TabPressed();
_gameModeWinnerShown = true;
_Handler_Sounds.PlaySound("GROOVY", 0, 0);
} else {
BackToMainMenu();
};
} else {
if (_prevGameData.isTutorial){
BackToMainMenu();
} else {
if (_score.GameFinished){
if (!_gameModeWinnerShown){
_Handler_Keyboard.RemoveHandler(Keyboard.TAB);
TabPressed();
_local1 = _score.GetTeamWinner();
if (_local1 == null){
_victory_text.gotoAndStop("DRAW");
} else {
if (_local1.Team > 0){
_victory_text.gotoAndStop(_local1.Team);
} else {
if (_local1.FirstPlayer.PlayerNr == 0){
_victory_text.gotoAndStop("PLAYER_1");
} else {
if ((((_local1.FirstPlayer.PlayerNr == 1)) && (!(_local1.FirstPlayer.Bot)))){
_victory_text.gotoAndStop("PLAYER_2");
} else {
_victory_text.gotoAndStop("COM");
};
};
};
};
ShowVictoryText();
_gameModeWinnerShown = true;
_Handler_Sounds.PlaySound("GROOVY", 0, 0);
if (_prevGameData.challengeNr != -1){
if (_local1.Team == 1){
_local2 = SharedObject.getLocal("superfightersData_v1.0");
if (_local2.data.stageLevelsFinished == undefined){
} else {
_local2.data.stageLevelsFinished[_prevGameData.challengeNr] = true;
_local2.flush();
};
};
};
} else {
BackToMainMenu();
};
} else {
HideVictoryText();
Restart();
};
};
};
};
}
private function HideStatic():void{
_dynamic_mc.alpha = 1;
_object_shape_container_mc.visible = false;
_static_mc.visible = false;
}
private function ClearMC(_arg1:MovieClip):void{
var _local2:int;
_local2 = _arg1.numChildren;
while (_local2--) {
_arg1.removeChildAt(_local2);
};
}
private function HideVictoryText():void{
_victory_text.visible = false;
}
public function set Handler_MenuMain(_arg1:MenuMain):void{
_Handler_MenuMain = _arg1;
}
private function BackToMainMenu():void{
_stage.removeEventListener(Event.ENTER_FRAME, Update);
Stop();
_Handler_MenuMain.OpenMenu();
}
private function Unfocus(_arg1:FocusEvent):void{
_stage.focus = null;
}
private function TabReleased():void{
_Handler_Slowmo.GamePaused = false;
if (_prevGameData.isSurvival){
_scoreSurvival.Hide();
} else {
_score.Hide();
};
}
private function Update(_arg1:Event):void{
var _local2:b2Body;
var _local3:int;
if (_round_initialized <= 0){
if ((((_countdown > 0)) && (_tipsOver))){
_countdown = (_countdown - 1);
if (_countdown <= 0){
_countdown_mc.stop();
_game_window.removeChild(_countdown_mc);
} else {
if (_countdown == 15){
_countdownOver = true;
_Handler_Players.ActivatePlayers();
if (!_prevGameData.isMenuDemo){
_Handler_Players.SetStartImmunity();
_Handler_Keyboard.AddHandler(Keyboard.TAB, TabPressed, TabReleased);
};
};
};
};
};
if (DEBUG_MODE){
_Handler_Box2DMouse.UpdateMouseWorld(new Point(((_dynamic_mc.x * _prevGameData.gameScale) + _prevGameData.gamePosX), ((_dynamic_mc.y * _prevGameData.gameScale) + _prevGameData.gamePosY)), (_dynamic_mc.scaleX * _prevGameData.gameScale), m_timeStep);
_Handler_Box2DMouse.MouseDrag();
};
_Handler_Slowmo.Update();
m_timeStep = (1 / (30 / _Handler_Slowmo.Slowmotion));
_ContactData.game_speed = _Handler_Slowmo.Slowmotion;
_Handler_Maps.Handler_WorldItems.Lock();
m_world.Step(m_timeStep, m_iterations);
_Handler_Maps.Handler_WorldItems.Unlock();
_bodyIndex = 0;
while (_bodyIndex < m_world.AllDynamicObjectList.length) {
_local2 = m_world.AllDynamicObjectList[_bodyIndex];
_local2.m_userData.x = (_local2.GetPosition().x * 30);
_local2.m_userData.y = (_local2.GetPosition().y * 30);
_local2.m_userData.rotation = (_local2.GetAngle() * (180 / Math.PI));
if (_local2.m_userData.objectData.DrawShapeMC){
_local2.m_userData.objectData.ShapeMC.x = (_local2.GetPosition().x * 30);
_local2.m_userData.objectData.ShapeMC.y = (_local2.GetPosition().y * 30);
_local2.m_userData.objectData.ShapeMC.rotation = (_local2.GetAngle() * (180 / Math.PI));
};
if (!_local2.m_userData.objectData.InPortal){
if (((_local2.m_userData.objectData.DrawHitBox) || (_local2.m_userData.objectData.DrawCloudBox))){
_local2.m_userData.objectData.CollisionMC.x = _local2.m_userData.objectData.ShapeMC.x;
_local2.m_userData.objectData.CollisionMC.y = _local2.m_userData.objectData.ShapeMC.y;
_local2.m_userData.objectData.CollisionMC.rotation = _local2.m_userData.objectData.ShapeMC.rotation;
};
};
if (_local2.IsFrozen()){
_Handler_Output.Trace((("Object " + _local2.GetUserData().IDNumber) + " out of bounds. Removing object"));
m_world.RemoveObjectFromLists(_local2);
_local2.m_userData.destroyed = true;
_local2.m_userData.objectData.HP = 0;
if (((_local2.m_userData.objectData.DrawHitBox) || (_local2.m_userData.objectData.DrawCloudBox))){
_local2.m_userData.objectData.CollisionMC.parent.removeChild(_local2.m_userData.objectData.CollisionMC);
};
if (_local2.m_userData.objectData.DrawShapeMC){
_local2.m_userData.objectData.ShapeMC.parent.removeChild(_local2.m_userData.objectData.ShapeMC);
};
_local2.m_userData.parent.removeChild(_local2.m_userData);
m_world.DestroyBody(_local2);
} else {
_local2.m_userData.objectData.UpdateFunction(_local2, _Handler_Slowmo.Slowmotion);
};
_bodyIndex = (_bodyIndex + 1);
};
_Handler_Maps.UpdatePathGrid();
_Handler_Shake.Update(_Handler_Slowmo.Slowmotion);
if (_countdownOver){
_Handler_WeaponSpawn.Update(_Handler_Slowmo.Slowmotion);
};
_Handler_Players.Update(_Handler_Slowmo.Slowmotion);
_Handler_ProjectilesUpdater.Update(_Handler_Slowmo.Slowmotion);
_Handler_Fires.Update(_Handler_Slowmo.Slowmotion);
_Handler_Explosions.Update(_Handler_Slowmo.Slowmotion);
_Handler_Deconstructer.Update();
_Handler_Portals.Update();
_Handler_Camera.Update(_camera_speed);
_Handler_Maps.Update(_Handler_Slowmo.Slowmotion);
_Handler_BasicOverlays.Update();
_Handler_Sounds.Update(_Handler_Slowmo.Slowmotion);
_dynamic_gui_mc.x = _dynamic_mc.x;
_dynamic_gui_mc.y = _dynamic_mc.y;
_dynamic_gui_mc.scaleX = _dynamic_mc.scaleX;
_dynamic_gui_mc.scaleY = _dynamic_mc.scaleY;
_dynamic_gui_mc.x = (_dynamic_gui_mc.x + (_shake_container.x * (1 / _dynamic_mc.scaleX)));
_dynamic_gui_mc.y = (_dynamic_gui_mc.y + (_shake_container.y * (1 / _dynamic_mc.scaleY)));
if (_bgNoise != null){
_bgNoise.scaleX = (1 / _game_window.scaleX);
_bgNoise.scaleY = (1 / _game_window.scaleY);
_bgNoise.x = (-(_game_window.x) * _bgNoise.scaleX);
_bgNoise.y = (-(_game_window.y) * _bgNoise.scaleY);
_bgNoise.x = (_bgNoise.x - ((400 * (_Handler_MenuMain.MenuOverlay.scaleX - 1)) * _bgNoise.scaleX));
_bgNoise.y = (_bgNoise.y - ((300 * (_Handler_MenuMain.MenuOverlay.scaleY - 1)) * _bgNoise.scaleY));
_bgNoise.scaleX = (_bgNoise.scaleX * _Handler_MenuMain.MenuOverlay.scaleX);
_bgNoise.scaleY = (_bgNoise.scaleY * _Handler_MenuMain.MenuOverlay.scaleY);
_last_bgNoiseFrame = _bgNoise.EFFECT_MC.currentFrame;
};
if (DEBUG_MODE){
if (_Handler_Keyboard.KeyIsDown(16)){
_Handler_Commands.PrintMenu();
};
};
if (((_Handler_Players.RoundOver) && (!(_roundOver)))){
if (((_prevGameData.isTutorial) || (_prevGameData.isSurvival))){
if (_Handler_Maps.MapOver){
_roundOver = true;
if (_prevGameData.isSurvival){
ShowSpaceIndication();
};
};
return;
};
_roundOver = true;
if (_prevGameData.isMenuDemo){
Stop();
_Handler_MenuMain.StartMenuGame();
} else {
_score.RoundsFinished = (_score.RoundsFinished + 1);
_local3 = _Handler_Players.GetTeamWinner();
switch (_local3){
case -1:
_victory_text.gotoAndStop("DRAW");
break;
case 0:
_score.ScoreTeam(_Handler_Players.GetSoloWinner());
switch (_Handler_Players.GetPlayerNrWinner()){
case 0:
_victory_text.gotoAndStop("PLAYER_1");
break;
case 1:
if (_Handler_Players.Players[_Handler_Players.GetPlayerNrWinner()].Bot){
_victory_text.gotoAndStop("COM");
} else {
_victory_text.gotoAndStop("PLAYER_2");
};
break;
default:
_victory_text.gotoAndStop("COM");
break;
};
break;
default:
_score.ScoreTeam(_Handler_Players.GetTeamWinner());
_victory_text.gotoAndStop(_Handler_Players.GetTeamWinner());
break;
};
ShowVictoryText();
ShowSpaceIndication();
};
};
if (_round_initialized > 0){
_round_initialized = (_round_initialized - 1);
if (_round_initialized <= 0){
_game_window.visible = true;
};
};
}
private function TabPressed():void{
_Handler_Slowmo.GamePaused = true;
if (_prevGameData.isSurvival){
_scoreSurvival.Update(_Handler_Maps.SurvivalTime);
_scoreSurvival.Show();
} else {
_score.Update();
_score.Show();
};
}
private function Restart(_arg1:Boolean=false):void{
Stop();
_Handler_Output.Trace("");
_Handler_Output.Trace("Restarting Game...");
if (_arg1){
_prevGameData.lvl = (_prevGameData.lvl + 1);
if (_prevGameData.lvl > 5){
_prevGameData.lvl = 1;
};
};
_prevGameData.showTips = false;
StartNewGame(_prevGameData);
}
}
}//package Code.Handler
Section 150
//InputKeyboard (Code.Handler.InputKeyboard)
package Code.Handler {
import flash.events.*;
public class InputKeyboard {
private var _keyBuffer:Array;
public var KeyDownFunction:Function;
public var KeyDownFunctionRepeatable:Function;
private var _functionBuffer:Array;
private var _modifierBuffer:Array;
public var KeyUpFunction:Function;
private var _stage;
public function InputKeyboard(_arg1):void{
_keyBuffer = new Array();
_modifierBuffer = new Array();
_functionBuffer = new Array();
super();
_stage = _arg1;
_stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
_stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
}
public function GetCharFromCode(_arg1:int):String{
var _local2:String;
switch (_arg1){
case 32:
return ("SPACE");
case 38:
return ("UP");
case 40:
return ("DOWN");
case 37:
return ("LEFT");
case 39:
return ("RIGHT");
case 16:
return ("SHIFT");
case 17:
return ("CTRL");
case 20:
return ("CAPS");
case 13:
return ("ENTER");
case 8:
return ("BACKSPACE");
case 27:
return ("ESCAPE");
case 188:
return (",");
case 190:
return (".");
};
_local2 = String.fromCharCode(_arg1);
if (_arg1 >= 127){
_local2 = ("C" + _arg1);
};
return (_local2);
}
private function RemoveKeyFromBuffer(_arg1:int):void{
var _local2:*;
_local2 = 0;
while (_local2 < _keyBuffer.length) {
if (_keyBuffer[_local2] == _arg1){
_keyBuffer.splice(_local2, 1);
};
_local2++;
};
}
public function RemoveHandler(_arg1:int, _arg2:int=-1):void{
var _local3:*;
_local3 = 0;
while (_local3 < _functionBuffer.length) {
if ((((_arg1 == _functionBuffer[_local3][0])) && ((_functionBuffer[_local3][3] == _arg2)))){
_functionBuffer.splice(_local3, 1);
};
_local3++;
};
UpdateModifierBuffer();
}
public function AddHandler(_arg1:int, _arg2:Function, _arg3:Function=undefined):void{
if (_arg2 == null){
_arg2 = Blank;
};
if (_arg3 == null){
_arg3 = Blank;
};
_functionBuffer.push([_arg1, _arg2, _arg3, -1]);
}
public function KeyIsDown(_arg1:int):Boolean{
var _local2:*;
_local2 = 0;
while (_local2 < _keyBuffer.length) {
if (_keyBuffer[_local2] == _arg1){
return (true);
};
_local2++;
};
return (false);
}
private function keyUpHandler(_arg1:KeyboardEvent):void{
RemoveKeyFromBuffer(_arg1.keyCode);
CheckKeyFunction(_arg1.keyCode, 2);
if (KeyUpFunction != null){
KeyUpFunction(_arg1);
};
}
public function TraceKeys():void{
var _local1:String;
var _local2:*;
_local1 = "Keys Down: ";
_local2 = 0;
while (_local2 < _keyBuffer.length) {
_local1 = (_local1 + (_keyBuffer[_local2] + ", "));
_local2++;
};
}
public function GetKeyCode(_arg1:String):int{
switch (_arg1.toUpperCase()){
case "SPACEBAR":
case "SPACE":
return (32);
case "UP":
return (38);
case "DOWN":
return (40);
case "LEFT":
return (37);
case "RIGHT":
return (39);
case "SHIFT":
return (16);
case "CTRL":
return (17);
case "CAPS":
case "CAPSLOCK":
return (20);
case "ENTER":
return (13);
case "BACKSPACE":
return (8);
case "ESCAPE":
return (27);
};
return (_arg1.charCodeAt(0));
}
public function RemoveModifier(_arg1:int, _arg2:int):void{
var _local3:*;
_local3 = 0;
while (_local3 < _functionBuffer.length) {
if ((((_arg1 == _functionBuffer[_local3][0])) && ((_functionBuffer[_local3][3] == _arg2)))){
_functionBuffer[_local3][3] = -1;
UpdateModifierBuffer();
};
_local3++;
};
}
private function CheckKeyFunction(_arg1:int, _arg2:int):void{
var _local3:*;
_local3 = 0;
while (_local3 < _functionBuffer.length) {
if (_arg1 == _functionBuffer[_local3][0]){
if ((((((_functionBuffer[_local3][3] == GetModifierPressed())) || (KeyIsDown(_functionBuffer[_local3][3])))) || (!((_arg2 == 1))))){
var _local4 = _functionBuffer[_local3];
_local4[_arg2]();
};
};
_local3++;
};
}
private function UpdateModifierBuffer():void{
var _local1:*;
_modifierBuffer = new Array();
_local1 = 0;
while (_local1 < _functionBuffer.length) {
if (_functionBuffer[_local1][3] != -1){
AddModifierToBuffer(_functionBuffer[_local1][3]);
};
_local1++;
};
}
public function Deconstruct():void{
_stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
_stage.removeEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (KeyDownFunctionRepeatable != null){
KeyDownFunctionRepeatable(_arg1);
};
if (KeyIsDown(_arg1.keyCode) == false){
_keyBuffer.push(_arg1.keyCode);
CheckKeyFunction(_arg1.keyCode, 1);
if (KeyDownFunction != null){
KeyDownFunction(_arg1);
};
};
}
private function Blank():void{
}
private function GetModifierPressed():int{
var _local1:*;
var _local2:*;
_local1 = 0;
while (_local1 < _modifierBuffer.length) {
_local2 = 0;
while (_local2 < _keyBuffer.length) {
if (_modifierBuffer[_local1] == _keyBuffer[_local2]){
return (_modifierBuffer[_local1]);
};
_local2++;
};
_local1++;
};
return (-1);
}
public function AddModifier(_arg1:int=-1):void{
_functionBuffer[(_functionBuffer.length - 1)][3] = _arg1;
UpdateModifierBuffer();
}
private function AddModifierToBuffer(_arg1:int):void{
var _local2:Boolean;
var _local3:*;
_local2 = true;
_local3 = 0;
while (_local3 < _modifierBuffer.length) {
if (_modifierBuffer[_local3] == _arg1){
_local2 = false;
};
_local3++;
};
if (_local2){
_modifierBuffer.push(_arg1);
};
}
}
}//package Code.Handler
Section 151
//InputMouse (Code.Handler.InputMouse)
package Code.Handler {
import flash.geom.*;
import flash.events.*;
public class InputMouse {
private var _mouseDown:Boolean;// = false
private var _mouseX:Number;// = 0
private var _mouseY:Number;// = 0
private var _stage;
public function InputMouse(_arg1):void{
_mouseDown = false;
_mouseX = 0;
_mouseY = 0;
super();
_stage = _arg1;
_stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
public function MouseX():Number{
return (_mouseX);
}
private function mouseDownHandler(_arg1:MouseEvent):void{
_mouseDown = true;
}
private function mouseUpHandler(_arg1:MouseEvent):void{
_mouseDown = false;
}
public function MouseIsDown():Boolean{
return (_mouseDown);
}
public function MouseY():Number{
return (_mouseY);
}
public function UpdateMouse(_arg1:Point, _arg2:Number):void{
var _local3:Number;
_local3 = (1 / _arg2);
_mouseX = (_local3 * (_stage.mouseX - _arg1.x));
_mouseY = (_local3 * (_stage.mouseY - _arg1.y));
}
}
}//package Code.Handler
Section 152
//MapPremadeItems (Code.Handler.MapPremadeItems)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Dynamics.*;
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
import Code.Box2D.Collision.*;
import Code.Box2D.Dynamics.Contacts.*;
import fl.motion.*;
import Code.Particles.*;
public class MapPremadeItems {
private var _material:MaterialsData;
private var _static_mc:MovieClip;
private var _Handler_Fires:Fires;
private var _Handler_Effects:Effects;
private var _queue:Array;
private var _weapon_mc:MovieClip;
private var _scrap_mc:MovieClip;
private var _ground:b2Body;
private var _locked:Boolean;// = false
private var _debrisFadeFunction:Function;
private var _Handler_Deconstructer:Deconstructer;
private var _dynamic_mc:MovieClip;
private var _Handler_Sounds:Sounds;
private var _static_world_hitbox_mc:MovieClip;
private var m_world:b2World;
private var _static_objects_hitbox_mc:MovieClip;
private var _objects_mc:MovieClip;
private var _nullUpdateFunction:Function;
private var _idGiver:int;// = 0
private var _static_ladder_hitbox_mc:MovieClip;
private var _object_shape_container_mc:MovieClip;
private var _static_world_cloud_hitbox_mc:MovieClip;
private var _Handler_Output:OutputTrace;
private var _static_objects_cloud_hitbox_mc:MovieClip;
private var _Handler_Explosions:Explosions;
private var _debrisUpdateFunction:Function;
private var _Handler_BasicOverlays:BasicOverlays;
public function MapPremadeItems(_arg1:OutputTrace):void{
_material = new MaterialsData();
_locked = false;
_queue = new Array();
_idGiver = 0;
_debrisUpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
if (_arg1.GetUserData().objectData.ObjectTimer == 0){
_arg1.GetUserData().objectData.ObjectTimer = 5;
} else {
_arg1.GetUserData().objectData.ObjectTimer = (_arg1.GetUserData().objectData.ObjectTimer - _arg2);
if (_arg1.GetUserData().objectData.ObjectTimer <= 0){
_arg1.GetUserData().objectData.BulletTransparent = false;
m_world.RemoveObjectFromLists(_arg1);
m_world.AddObjectToLists(_arg1);
_arg1.GetUserData().objectData.UpdateFunction = _debrisFadeFunction;
};
};
};
_debrisFadeFunction = function (_arg1:b2Body, _arg2:Number):void{
_arg1.GetUserData().objectData.ObjectTimer = (_arg1.GetUserData().objectData.ObjectTimer + _arg2);
if (_arg1.GetUserData().objectData.ObjectTimer >= 240){
_arg1.GetUserData().alpha = (1 - ((_arg1.GetUserData().objectData.ObjectTimer - 240) / 50));
if (_arg1.GetUserData().objectData.ObjectTimer >= 290){
_arg1.GetUserData().objectData.ForceDestruction();
};
};
};
_nullUpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
};
super();
_Handler_Output = _arg1;
_Handler_Output.Trace("Premade Items Created");
}
public function CreateGroundCircle(_arg1:MaterialData, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Array=null):b2Body{
var _local6:b2Body;
var _local7:b2BodyDef;
var _local8:b2CircleDef;
_arg4 = (_arg4 + (0.5 / 30));
_local7 = new b2BodyDef();
_local7.position.Set(_arg2, _arg3);
_local7.userData = new Object();
_local7.userData.IDNumber = GenerateID();
_local7.userData.material = _arg1;
_local7.userData.tiltValue = 0;
_local7.userData.allowCover = false;
if (_arg5 == null){
_local7.userData.shapeMC = DrawCircleMC((_arg4 * 30), 0xFF00FF);
} else {
if (_arg5[0] == "CLOUD"){
_local7.userData.shapeMC = DrawCircleMC((_arg4 * 30), 0xFF0066);
} else {
if (_arg5[0] == "LADDER"){
_local7.userData.shapeMC = DrawCircleMC((_arg4 * 30), 16737894);
} else {
_local7.userData.shapeMC = DrawCircleMC((_arg4 * 30), 0xFF00FF);
_arg5 = null;
};
};
};
_local7.userData.shapeMC.x = (_arg2 * 30);
_local7.userData.shapeMC.y = (_arg3 * 30);
_local8 = new b2CircleDef();
_local8.radius = _arg4;
_local8.friction = _local7.userData.material.Friction;
_local8.restitution = _local7.userData.material.Restitution;
_local8.density = 0;
if (_arg5 != null){
if (_arg5[0] == "LADDER"){
_local8.filter.categoryBits = 2;
_local8.filter.maskBits = 1;
_local7.userData.isLadder = true;
};
if (_arg5[0] == "CLOUD"){
_local8.filter.isCloud = true;
_local8.userData.isCloud = true;
};
};
_local6 = m_world.CreateBody(_local7);
_local6.CreateShape(_local8);
_local6.SetMassFromShapes();
_local6.SetUserData(_local7.userData);
if (_arg5 == null){
_static_world_hitbox_mc.addChild(_local6.GetUserData().shapeMC);
} else {
if (_arg5[0] == "CLOUD"){
_static_world_cloud_hitbox_mc.addChild(_local6.GetUserData().shapeMC);
} else {
if (_arg5[0] == "LADDER"){
_static_ladder_hitbox_mc.addChild(_local6.GetUserData().shapeMC);
};
};
};
return (_local6);
}
private function IncreaseCorners(_arg1:Array):Array{
var _local2:*;
_local2 = 0;
while (_local2 < _arg1.length) {
if (_arg1[_local2][0] < 0){
_arg1[_local2][0] = (_arg1[_local2][0] - (0.5 / 30));
} else {
if (_arg1[_local2][0] > 0){
_arg1[_local2][0] = (_arg1[_local2][0] + (0.5 / 30));
};
};
if (_arg1[_local2][1] < 0){
_arg1[_local2][1] = (_arg1[_local2][1] - (0.5 / 30));
} else {
if (_arg1[_local2][1] > 0){
_arg1[_local2][1] = (_arg1[_local2][1] + (0.5 / 30));
};
};
_local2++;
};
return (_arg1);
}
public function UpdateHandlers(_arg1:Effects, _arg2:Explosions, _arg3:Sounds, _arg4:BasicOverlays):void{
_Handler_Effects = _arg1;
_Handler_Explosions = _arg2;
_Handler_Sounds = _arg3;
_Handler_BasicOverlays = _arg4;
}
public function LinkToFire(_arg1:Fires):void{
_Handler_Fires = _arg1;
}
public function Unlock():void{
var _local1:int;
_locked = false;
if (_queue.length > 0){
_local1 = 0;
while (_local1 < _queue.length) {
if (_queue[0] == "B"){
AddBox(_queue[1], _queue[2], _queue[3], _queue[4], _queue[5], _queue[6], _queue[7]);
} else {
if (_queue[0] == "C"){
AddCircle(_queue[1], _queue[2], _queue[3], _queue[4], _queue[5], _queue[6], _queue[7]);
} else {
if (_queue[0] == "P"){
AddPolygon(_queue[1], _queue[2], _queue[3], _queue[4], _queue[5], _queue[6], _queue[7]);
};
};
};
_local1++;
};
_queue = new Array();
};
}
public function AddGlass(_arg1:Point, _arg2:Point):b2Body{
var _local3:Point;
var _local4:Number;
var _local5:Number;
var _local6:b2Body;
var _local7:Number;
var _local8:Number;
var _local9:MovieClip;
_local3 = new Point((_arg1.x + ((_arg2.x - _arg1.x) * 0.5)), (_arg1.y + ((_arg2.y - _arg1.y) * 0.5)));
_local4 = Math.sqrt((Math.pow((_arg2.x - _arg1.x), 2) + Math.pow((_arg2.y - _arg1.y), 2)));
_local4 = (_local4 * 30);
_local5 = Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x));
_local6 = AddBox("SOLID_GLASS_01", _local3.x, _local3.y, _local5, new b2Vec2(), 0, [_local4, 3]);
_local7 = (((_local4 / 2) % 6) / 2);
_local8 = (-(_local4) / 2);
while (_local8 < ((_local4 / 2) - 6)) {
_local9 = new window_seg();
_local9.x = (_local8 + _local7);
_local9.rotation = 90;
_local6.GetUserData().addChild(_local9);
_local8 = (_local8 + 6);
};
AddRevoluteJoint(Ground, _local6, new b2Vec2(_arg1.x, _arg1.y));
AddRevoluteJoint(Ground, _local6, new b2Vec2(_arg2.x, _arg2.y));
return (_local6);
}
public function UpdateMCs(_arg1:MovieClip, _arg2:MovieClip, _arg3:MovieClip):void{
_static_mc = _arg1;
_dynamic_mc = _arg2;
_object_shape_container_mc = _arg3;
_objects_mc = MovieClip(_dynamic_mc.getChildByName("OBJECTS"));
_scrap_mc = MovieClip(_dynamic_mc.getChildByName("SCRAP"));
_weapon_mc = MovieClip(_dynamic_mc.getChildByName("WEAPONS"));
_static_ladder_hitbox_mc = MovieClip(_static_mc.getChildByName("LADDER_HITBOX"));
_static_world_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_HITBOX"));
_static_world_cloud_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_CLOUD_HITBOX"));
_static_objects_cloud_hitbox_mc = MovieClip(_static_world_cloud_hitbox_mc.getChildByName("OBJECTS_CLOUD_HITBOX"));
_static_objects_hitbox_mc = MovieClip(_static_world_hitbox_mc.getChildByName("OBJECTS_HITBOX"));
}
public function CreateGroundBox(_arg1:MaterialData, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Array=null):b2Body{
var _local8:b2Body;
var _local9:b2BodyDef;
var _local10:b2PolygonDef;
_arg5 = (_arg5 + (0.5 / 30));
_arg6 = (_arg6 + (0.5 / 30));
_local9 = new b2BodyDef();
_local9.position.Set(_arg2, _arg3);
_local9.angle = _arg4;
_local9.userData = new Object();
_local9.userData.IDNumber = GenerateID();
_local9.userData.material = _arg1;
_local9.userData.tiltValue = 0;
_local9.userData.allowCover = false;
if (_arg7 == null){
_local9.userData.shapeMC = DrawBoxMC((_arg5 * 30), (_arg6 * 30), 0xFF00FF);
} else {
if (_arg7[0] == "CLOUD"){
_local9.userData.shapeMC = DrawBoxMC((_arg5 * 30), (_arg6 * 30), 0xFF0066);
} else {
if (_arg7[0] == "LADDER"){
_local9.userData.shapeMC = DrawBoxMC((_arg5 * 30), (_arg6 * 30), 16737894);
} else {
_local9.userData.shapeMC = DrawBoxMC((_arg5 * 30), (_arg6 * 30), 0xFF00FF);
_arg7 = null;
};
};
};
_local9.userData.shapeMC.x = (_arg2 * 30);
_local9.userData.shapeMC.y = (_arg3 * 30);
_local9.userData.shapeMC.rotation = (_arg4 * (180 / Math.PI));
_local10 = new b2PolygonDef();
_local10.SetAsBox((_arg5 / 2), (_arg6 / 2));
_local10.friction = _local9.userData.material.Friction;
_local10.restitution = _local9.userData.material.Restitution;
_local10.density = 0;
if (_arg7 != null){
if (_arg7[0] == "LADDER"){
_local10.filter.categoryBits = 2;
_local10.filter.maskBits = 1;
_local9.userData.isLadder = true;
};
if (_arg7[0] == "CLOUD"){
_local10.filter.isCloud = true;
_local9.userData.isCloud = true;
};
};
_local8 = m_world.CreateBody(_local9);
_local8.CreateShape(_local10);
_local8.SetMassFromShapes();
_local8.SetUserData(_local9.userData);
if (_arg7 == null){
_static_world_hitbox_mc.addChild(_local8.GetUserData().shapeMC);
} else {
if (_arg7[0] == "CLOUD"){
_static_world_cloud_hitbox_mc.addChild(_local8.GetUserData().shapeMC);
} else {
if (_arg7[0] == "LADDER"){
_static_ladder_hitbox_mc.addChild(_local8.GetUserData().shapeMC);
};
};
};
return (_local8);
}
public function AddPolygon(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:b2Vec2, _arg6:Number, _arg7:Array=null, _arg8:Boolean=false):b2Body{
var addGrenadeIndicator:Boolean;
var tmp_mc:MovieClip;
var body:b2Body;
var bodyDef:b2BodyDef;
var boxDef:b2PolygonDef;
var corners:Array;
var shapeScale:Number;
var i:*;
var isRanged:Boolean;
var isMelee:Boolean;
var isThrowable:Boolean;
var isPowerup:Boolean;
var isHealth:Boolean;
var color:Color;
var type = _arg1;
var PosX = _arg2;
var PosY = _arg3;
var Angle = _arg4;
var Velocity = _arg5;
var AngularVelocity = _arg6;
var optionalValues = _arg7;
var reversed = _arg8;
if (_locked){
_queue.push("P", type, PosX, PosY, Angle, Velocity, AngularVelocity, optionalValues);
return (null);
};
addGrenadeIndicator = false;
boxDef = new b2PolygonDef();
bodyDef = new b2BodyDef();
bodyDef.position.Set(PosX, PosY);
bodyDef.angle = Angle;
shapeScale = 1;
switch (type.toUpperCase()){
case "WPN_SWORD":
case "WPN_AXE":
case "WPN_SLOWMO_05":
case "WPN_SLOWMO_10":
case "WPN_PILLS":
case "WPN_MEDKIT":
case "WPN_MACHETE":
case "WPN_GRENADES":
case "WPN_MOLOTOVS":
case "WPN_SNIPER":
case "WPN_MAGNUM":
case "WPN_SHOTGUN":
case "WPN_RIFLE":
case "WPN_UZI":
case "WPN_BAZOOKA":
case "WPN_FLAMETHROWER":
case "WPN_PISTOL":
isRanged = false;
isMelee = false;
isThrowable = false;
isPowerup = false;
isHealth = false;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
switch (type.toUpperCase()){
case "WPN_PILLS":
bodyDef.userData = new wpn_pills();
bodyDef.userData.gotoAndStop(1);
isHealth = true;
corners = new Array([(-4 / 30), (-4 / 30)], [(4 / 30), (-4 / 30)], [(4 / 30), (4 / 30)], [(-4 / 30), (4 / 30)]);
break;
case "WPN_MEDKIT":
bodyDef.userData = new wpn_medkit();
bodyDef.userData.gotoAndStop(1);
isHealth = true;
corners = new Array([(-5 / 30), (-3 / 30)], [(5 / 30), (-3 / 30)], [(5 / 30), (3 / 30)], [(-5 / 30), (3 / 30)]);
break;
case "WPN_SLOWMO_10":
bodyDef.userData = new wpn_slowmo_10();
bodyDef.userData.gotoAndStop(1);
isPowerup = true;
corners = new Array([(-4 / 30), (-4 / 30)], [(4 / 30), (-4 / 30)], [(4 / 30), (4 / 30)], [(-4 / 30), (4 / 30)]);
break;
case "WPN_SLOWMO_05":
bodyDef.userData = new wpn_slowmo_05();
bodyDef.userData.gotoAndStop(1);
isPowerup = true;
corners = new Array([(-4 / 30), (-4 / 30)], [(4 / 30), (-4 / 30)], [(4 / 30), (4 / 30)], [(-4 / 30), (4 / 30)]);
break;
case "WPN_MACHETE":
bodyDef.userData = new wpn_machete();
bodyDef.userData.gotoAndStop(1);
isMelee = true;
corners = new Array([(-7 / 30), (-1 / 30)], [(7 / 30), (-1 / 30)], [(7 / 30), (1 / 30)], [(-7 / 30), (1 / 30)]);
break;
case "WPN_SWORD":
bodyDef.userData = new wpn_sword();
bodyDef.userData.gotoAndStop(1);
isMelee = true;
corners = new Array([(-10 / 30), (-1 / 30)], [(10 / 30), (-1 / 30)], [(10 / 30), (1 / 30)], [(-10 / 30), (1 / 30)]);
break;
case "WPN_AXE":
bodyDef.userData = new wpn_axe();
bodyDef.userData.gotoAndStop(1);
isMelee = true;
corners = new Array([(-8 / 30), (-2 / 30)], [(8 / 30), (-3 / 30)], [(8 / 30), (3 / 30)], [(5 / 30), (3 / 30)], [(-8 / 30), (-1 / 30)]);
break;
case "WPN_MOLOTOVS":
bodyDef.userData = new wpn_molotovs();
bodyDef.userData.gotoAndStop(1);
isThrowable = true;
corners = new Array([(-5.5 / 30), (-3 / 30)], [(5.5 / 30), (-3 / 30)], [(5.5 / 30), (3 / 30)], [(-5.5 / 30), (3 / 30)]);
break;
case "WPN_GRENADES":
bodyDef.userData = new wpn_grenades();
bodyDef.userData.gotoAndStop(1);
isThrowable = true;
corners = new Array([(-5 / 30), (-2 / 30)], [(5 / 30), (-2 / 30)], [(5 / 30), (2 / 30)], [(-5 / 30), (2 / 30)]);
break;
case "WPN_FLAMETHROWER":
bodyDef.userData = new wpn_flamethrower();
bodyDef.userData.gotoAndStop(1);
isRanged = true;
corners = new Array([(-3 / 30), (-3 / 30)], [(3 / 30), (-3 / 30)], [(3 / 30), (3 / 30)], [(-3 / 30), (3 / 30)]);
break;
case "WPN_MAGNUM":
bodyDef.userData = new wpn_magnum();
isRanged = true;
corners = new Array([(-3 / 30), (-1 / 30)], [(4 / 30), (-1 / 30)], [(4 / 30), (0 / 30)], [(-2 / 30), (2 / 30)], [(-3 / 30), (2 / 30)]);
break;
case "WPN_PISTOL":
bodyDef.userData = new wpn_pistol();
isRanged = true;
corners = new Array([(-2 / 30), (-1 / 30)], [(4 / 30), (-1 / 30)], [(4 / 30), (0 / 30)], [(-1 / 30), (2 / 30)], [(-2 / 30), (2 / 30)]);
break;
case "WPN_RIFLE":
bodyDef.userData = new wpn_rifle();
isRanged = true;
corners = new Array([(-10 / 30), (-1 / 30)], [(-3 / 30), (-2 / 30)], [(2 / 30), (-2 / 30)], [(9 / 30), (-1 / 30)], [(9 / 30), (1 / 30)], [(3 / 30), (3 / 30)], [(1 / 30), (3 / 30)], [(-10 / 30), (1 / 30)]);
break;
case "WPN_UZI":
bodyDef.userData = new wpn_uzi();
isRanged = true;
corners = new Array([(-3 / 30), (-2 / 30)], [(3 / 30), (-2 / 30)], [(4 / 30), (-1 / 30)], [(0 / 30), (4 / 30)], [(-1 / 30), (4 / 30)], [(-3 / 30), (0 / 30)]);
break;
case "WPN_SHOTGUN":
bodyDef.userData = new wpn_shotgun();
isRanged = true;
corners = new Array([(-7 / 30), (0 / 30)], [(-3 / 30), (-1 / 30)], [(9 / 30), (-1 / 30)], [(7 / 30), (1 / 30)], [(-5 / 30), (2 / 30)], [(-7 / 30), (2 / 30)]);
break;
case "WPN_SNIPER":
bodyDef.userData = new wpn_sniper();
isRanged = true;
corners = new Array([(-11 / 30), (-1 / 30)], [(-1 / 30), (-4 / 30)], [(1 / 30), (-4 / 30)], [(12 / 30), (-1 / 30)], [(12 / 30), (0 / 30)], [(1 / 30), (2 / 30)], [(-5 / 30), (2 / 30)], [(-11 / 30), (1 / 30)]);
break;
case "WPN_BAZOOKA":
bodyDef.userData = new wpn_bazooka();
isRanged = true;
corners = new Array([(-11 / 30), (-1 / 30)], [(10 / 30), (-1 / 30)], [(10 / 30), (1 / 30)], [(4 / 30), (3.5 / 30)], [(-11 / 30), (1 / 30)]);
break;
};
bodyDef.userData.indicator.gotoAndStop(1);
color = new Color();
color.brightness = PlayerCharacter.BRIGHTNESS;
bodyDef.userData.transform.colorTransform = color;
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.isWeapon = true;
bodyDef.userData.isRanged = isRanged;
bodyDef.userData.isThrowable = isThrowable;
bodyDef.userData.isMelee = isMelee;
bodyDef.userData.isPowerup = isPowerup;
bodyDef.userData.isHealth = isHealth;
bodyDef.userData.objectData.Kickable = false;
bodyDef.userData.weaponData = null;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
bodyDef.userData.objectData.UserValues = [0];
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
var b = _arg1;
var game_speed = _arg2;
if (b.GetUserData().objectData.UserValues[0] == 0){
b.GetUserData().objectData.MC.indicator.visible = false;
if (b.IsSleeping()){
b.GetUserData().objectData.UserValues[0] = 1;
};
if (b.GetUserData().weaponData.Ammo <= 0){
if (b.GetUserData().objectData.UserValues[1] == undefined){
b.GetUserData().objectData.UserValues[1] = 0;
b.GetUserData().objectData.UserValues[2] = b.GetLinearVelocity().x;
} else {
if (b.GetUserData().objectData.UserValues[1] == 0){
if (b.GetLinearVelocity().x != b.GetUserData().objectData.UserValues[2]){
b.GetUserData().objectData.UserValues[1] = 1;
};
} else {
b.GetUserData().objectData.UserValues[1] = (b.GetUserData().objectData.UserValues[1] + 1);
if (b.GetUserData().objectData.UserValues[1] > 12){
b.GetUserData().objectData.UpdateFunction = _debrisFadeFunction;
b.GetUserData().objectData.ObjectTimer = 240;
};
};
};
};
} else {
if (b.GetUserData().objectData.UserValues[0] == 1){
b.GetUserData().objectData.MC.indicator.visible = true;
b.SetXForm(new b2Vec2(b.GetPosition().x, (b.GetPosition().y - (4 / 30))), 0);
b.PutToSleep();
b.GetUserData().objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
};
if (b.GetUserData().weaponData.Ammo <= 0){
b.GetUserData().objectData.ForceDestruction();
};
};
};
};
tmp_mc = _weapon_mc;
break;
case "GRENADE_THROWN":
addGrenadeIndicator = true;
shapeScale = 0.7;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new wpn_grenade_thrown();
corners = new Array([(-2 / 30), (-1 / 30)], [(-1 / 30), (-2 / 30)], [(1 / 30), (-2 / 30)], [(2 / 30), (-1 / 30)], [(2 / 30), (1 / 30)], [(1 / 30), (2 / 30)], [(-1 / 30), (2 / 30)], [(-1 / 30), (2 / 30)]);
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 10, 10, false);
bodyDef.userData.objectData.IsActiveHazard = true;
bodyDef.userData.objectData.IsBulletHazard = true;
bodyDef.userData.objectData.IsThrowableObject = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 3.5;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.UserValues = optionalValues;
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
_arg1.GetUserData().objectData.UserValues[0] = (_arg1.GetUserData().objectData.UserValues[0] - _arg2);
if (_arg1.GetUserData().objectData.UserValues[0] <= 0){
_arg1.GetUserData().objectData.ForceDestruction();
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
_Handler_Sounds.PlaySoundAt_Box2DScale("barrel_explosion", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Explosions.TriggerExplosionAt_Box2DScale("", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _weapon_mc;
break;
case "MOLOTOV_THROWN":
addGrenadeIndicator = true;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new wpn_molotov_thrown();
corners = new Array([(-2 / 30), (-1 / 30)], [(-1 / 30), (-2 / 30)], [(1 / 30), (-2 / 30)], [(2 / 30), (-1 / 30)], [(2 / 30), (1 / 30)], [(1 / 30), (2 / 30)], [(-1 / 30), (2 / 30)], [(-1 / 30), (2 / 30)]);
bodyDef.userData.material = _material.Metal;
bodyDef.userData.isMolotov = true;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 0, 10, 0, 10, 10, false);
bodyDef.userData.objectData.IsActiveHazard = true;
bodyDef.userData.objectData.IsBulletHazard = true;
bodyDef.userData.objectData.IsThrowableObject = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.UserValues = new Array(optionalValues[1], 0);
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:particle_data;
_arg1.GetUserData().objectData.UserValues[1] = (_arg1.GetUserData().objectData.UserValues[1] - _arg2);
if (_arg1.GetUserData().objectData.UserValues[1] <= 0){
_local3 = new b2Vec2();
_local3.x = 0;
_local3.y = (-5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = new particle_data("FIRE", _local4.x, _local4.y);
_local5.ScaleX = 0.75;
_local5.ScaleY = 0.75;
_Handler_Effects.AddParticle_Box2DScale(_local5);
_arg1.GetUserData().objectData.UserValues[1] = 1;
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
_Handler_Sounds.PlaySoundAt_Box2DScale("bustmolotov", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Sounds.PlaySoundAt_Box2DScale("fireburst", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Fires.TriggerFireAt_Box2DScale("MOLOTOV", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _weapon_mc;
break;
case "STATUE":
boxDef.filter.categoryBits = 2;
bodyDef.userData = new statue();
bodyDef.userData.material = _material.Ground;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = false;
bodyDef.userData.objectData.CanSmoke = false;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.Kickable = false;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-6.5 / 30), (-3 / 30)], [(6 / 30), (-3 / 30)], [(8 / 30), (9 / 30)], [(-6.5 / 30), (9 / 30)]);
tmp_mc = _objects_mc;
break;
case "HANGING_LAMP":
boxDef.filter.categoryBits = 2;
bodyDef.userData = new hanging_lamp();
bodyDef.userData.gotoAndStop(1);
corners = new Array([(-5 / 30), (1 / 30)], [(-3.5 / 30), (-2 / 30)], [(0 / 30), (-3 / 30)], [(3.5 / 30), (-2 / 30)], [(5 / 30), (1 / 30)]);
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 5, 10, 0.05, 10, 10);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "HANGING_LAMP_B":
boxDef.filter.categoryBits = 2;
bodyDef.userData = new hanging_lamp();
bodyDef.userData.gotoAndStop(2);
corners = new Array([(-5 / 30), (1 / 30)], [(-3.5 / 30), (-2 / 30)], [(0 / 30), (-3 / 30)], [(3.5 / 30), (-2 / 30)], [(5 / 30), (1 / 30)]);
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 5, 1, 1, 1, 1, true);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "COMP_SCREEN":
boxDef.filter.categoryBits = 2;
bodyDef.userData = new comp_screen();
corners = new Array([(-4.5 / 30), (-5 / 30)], [(4.5 / 30), (-5 / 30)], [(4.5 / 30), (3 / 30)], [(2.5 / 30), (5 / 30)], [(-2.5 / 30), (5 / 30)], [(-4.5 / 30), (3 / 30)]);
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 10, 0);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.OnlyBurnWhileWake = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.Strength = 1;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
_Handler_Sounds.PlaySoundAt_Box2DScale("COMP_EXPLODE", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Effects.AddEffectAt_Box2DScale("EXPLOSION_CIRCLE", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _objects_mc;
break;
case "CHAIR":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new chair();
corners = new Array([(-2 / 30), (-6 / 30)], [(3.5 / 30), (0 / 30)], [(3.5 / 30), (4 / 30)], [(-3.5 / 30), (4 / 30)], [(-3.5 / 30), (-6 / 30)]);
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerFragile = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.35;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:Number;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Vec2;
var _local6:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustwood", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetUserData().objectData.ObjectSmokeGrade;
if (_local2 < 2){
_local2 = 1;
};
_local3 = _arg1.GetLinearVelocity();
_local4 = new b2Vec2();
_local4.x = (-6 / 30);
_local4.y = (0 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_01", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (-0.5 / 30);
_local4.y = (-3.5 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_02", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (6 / 30);
_local4.y = (0 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_03", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
};
tmp_mc = _objects_mc;
break;
case "TABLE_DEBRIS_01":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new table_debris_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-1 / 30), (-4 / 30)], [(3 / 30), (-4 / 30)], [(0 / 30), (4 / 30)], [(-1 / 30), (4 / 30)]);
tmp_mc = _scrap_mc;
break;
case "TABLE_DEBRIS_02":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new table_debris_02();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-3.5 / 30), (-0.5 / 30)], [(3.5 / 30), (-0.5 / 30)], [(4.5 / 30), (0.5 / 30)], [(-4.5 / 30), (0.5 / 30)]);
tmp_mc = _scrap_mc;
break;
case "TABLE_DEBRIS_03":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new table_debris_03();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-2 / 30), (-4 / 30)], [(1 / 30), (-4 / 30)], [(1 / 30), (4 / 30)], [(0 / 30), (4 / 30)], [(-2 / 30), (-3 / 30)]);
tmp_mc = _scrap_mc;
break;
case "GLASS_SHARD_1":
corners = new Array([(-2 / 30), (2 / 30)], [(0 / 30), (-2 / 30)], [(2 / 30), (2 / 30)]);
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new glass_shard_1();
bodyDef.userData.material = _material.Glass;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 5, 0, 0, 1, 1);
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.1;
bodyDef.userData.objectData.Strength = 1;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
case "TUTORIAL_TARGET_DEBRIS_01":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new tutorial_target_debris_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(0 / 30), (-5 / 30)], [(2 / 30), (-5 / 30)], [(2 / 30), (1 / 30)], [(1 / 30), (2 / 30)], [(-2 / 30), (2 / 30)], [(-2 / 30), (0 / 30)]);
tmp_mc = _scrap_mc;
break;
case "TUTORIAL_TARGET_DEBRIS_02":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new tutorial_target_debris_02();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(0 / 30), (-1 / 30)], [(3 / 30), (-1 / 30)], [(3 / 30), (1 / 30)], [(-3 / 30), (1 / 30)], [(-3 / 30), (0 / 30)]);
tmp_mc = _scrap_mc;
break;
case "TUTORIAL_TARGET_DEBRIS_03":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new tutorial_target_debris_03();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(1 / 30), (-2 / 30)], [(3 / 30), (0 / 30)], [(0 / 30), (2 / 30)], [(-3 / 30), (-2 / 30)]);
tmp_mc = _scrap_mc;
break;
case "CRATE_DEBRIS_01":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new crate_debris_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-4 / 30), (-2 / 30)], [(4 / 30), (-2 / 30)], [(4 / 30), (2 / 30)], [(-2 / 30), (4 / 30)], [(-4 / 30), (4 / 30)]);
tmp_mc = _scrap_mc;
break;
case "CRATE_DEBRIS_02":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new crate_debris_02();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-4 / 30), (-1 / 30)], [(1 / 30), (-1 / 30)], [(4 / 30), (0 / 30)], [(4 / 30), (1 / 30)], [(-3 / 30), (1 / 30)], [(-4 / 30), (0 / 30)]);
tmp_mc = _scrap_mc;
break;
case "CRATE_DEBRIS_03":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new crate_debris_03();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 1, 30, 1);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-5 / 30), (-1 / 30)], [(6 / 30), (-1 / 30)], [(5 / 30), (1 / 30)], [(-6 / 30), (1 / 30)]);
tmp_mc = _scrap_mc;
break;
case "BARREL_DEBRIS_02":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new barrel_debris_02();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 0, 30, 1);
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.OnlyBurnWhileWake = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-2 / 30), (-2 / 30)], [(1 / 30), (-2 / 30)], [(1 / 30), (2 / 30)], [(-1 / 30), (2 / 30)]);
tmp_mc = _scrap_mc;
break;
default:
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new error_mc();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50);
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
corners = new Array([(-5 / 30), (-5 / 30)], [(5 / 30), (-5 / 30)], [(5 / 30), (5 / 30)], [(-5 / 30), (5 / 30)]);
tmp_mc = _scrap_mc;
break;
};
if (reversed){
MovieClip(bodyDef.userData).scaleX = -1;
corners = ReverseCorners(corners);
};
bodyDef.userData.IDNumber = GenerateID();
bodyDef.userData.tiltValue = 0;
corners = IncreaseCorners(corners);
boxDef.vertexCount = corners.length;
i = 0;
while (i < corners.length) {
boxDef.vertices[i] = new b2Vec2(corners[i][0], corners[i][1]);
i = (i + 1);
};
boxDef.friction = bodyDef.userData.material.Friction;
boxDef.density = bodyDef.userData.material.Density;
boxDef.restitution = bodyDef.userData.material.Restitution;
if (bodyDef.userData.objectData.DrawHitBox){
bodyDef.userData.objectData.CollisionMC = DrawPolyMC(corners);
bodyDef.userData.objectData.CollisionMC.x = (PosX * 30);
bodyDef.userData.objectData.CollisionMC.y = (PosY * 30);
_static_objects_hitbox_mc.addChild(bodyDef.userData.objectData.CollisionMC);
};
if (bodyDef.userData.objectData.DrawShapeMC){
bodyDef.userData.objectData.ShapeMC = DrawPolyMC(corners, 0xFF00, 0.4);
bodyDef.userData.objectData.ShapeMC.x = (PosX * 30);
bodyDef.userData.objectData.ShapeMC.y = (PosY * 30);
bodyDef.userData.objectData.ShapeMC.scaleX = shapeScale;
bodyDef.userData.objectData.ShapeMC.scaleY = shapeScale;
_object_shape_container_mc.addChild(bodyDef.userData.objectData.ShapeMC);
};
bodyDef.userData.x = (PosX * 30);
bodyDef.userData.y = (PosY * 30);
tmp_mc.addChild(bodyDef.userData);
body = m_world.CreateBody(bodyDef);
body.CreateShape(boxDef);
body.SetMassFromShapes();
body.SetUserData(bodyDef.userData);
body.SetLinearVelocity(Velocity);
body.SetAngularVelocity(AngularVelocity);
body.GetUserData().objectData.Body = body;
_Handler_Output.Trace((((((type.toUpperCase() + " created at (") + Math.round(bodyDef.userData.x)) + ", ") + Math.round(bodyDef.userData.y)) + ")"));
m_world.AddObjectToLists(body);
if (addGrenadeIndicator){
_Handler_BasicOverlays.AddOverlay(body, new grenade_marker());
};
return (body);
}
public function set SetdbgDraw(_arg1:MovieClip):void{
}
public function AddObject(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:b2Vec2, _arg6:Number, _arg7:Array=null):b2Body{
var _local8:Array;
var _local9:int;
var _local10:Boolean;
var _local11:String;
_local8 = GetData(_arg1);
_local9 = Math.floor((Math.random() * _local8.length));
_local10 = false;
_local11 = _local8[_local9].toUpperCase();
if (_local8[_local9].toUpperCase().substr((_local11.length - 2), 2) == "_R"){
_local11 = _local11.substr(0, (_local11.length - 2));
_local10 = true;
};
switch (_local11){
case "BUTTON_01":
case "SOLID_INVISIBLE_METAL_GIB":
case "SOLID_INVISIBLE_METAL":
case "SPARK":
case "EMPTY_SHELL_SMALL":
case "EMPTY_SHELL_SHOTGUN":
case "EMPTY_SHELL_BIG":
case "ELEVATOR_01":
case "LIFT_01":
case "LIFT_SMALL_01":
case "BARREL_EXPLOSIVE":
case "BARREL_WRECK":
case "BARREL":
case "GASCAN":
case "CHAR_GIB_01":
case "CHAR_GIB_02":
case "CHAR_GIB_03":
case "CHAR_GIB_04":
case "CHAR_GIB_05":
case "FILECAB":
case "POOL_TABLE":
case "CRATE_HANGING":
case "CRATE_HANGING_HOLDER":
case "COMP":
case "DESK":
case "DESK_1":
case "LAMP_1":
case "LAMP_1_B":
case "BARREL_DEBRIS_03":
case "BARREL_DEBRIS_01":
case "BEACHBALL_FLAT":
case "CRATE":
case "PAPER":
case "TABLE":
case "TABLE_SMALL":
return (AddBox(_local11, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _local10));
case "COMFY_CHAIR":
case "ROLLING_PIPE":
case "BEACHBALL":
case "STATUE_GLOBE":
case "TUTORIAL_TARGET":
case "WINDMILL_PROPELLER":
case "PLATFORM_MOTOR":
return (AddCircle(_local11, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _local10));
case "WPN_SWORD":
case "WPN_AXE":
case "WPN_MACHETE":
case "WPN_GRENADES":
case "WPN_MOLOTOVS":
case "WPN_SNIPER":
case "WPN_SHOTGUN":
case "WPN_RIFLE":
case "WPN_UZI":
case "WPN_MAGNUM":
case "WPN_BAZOOKA":
case "WPN_FLAMETHROWER":
case "WPN_PISTOL":
case "WPN_SLOWMO_05":
case "WPN_SLOWMO_10":
case "WPN_PILLS":
case "WPN_MEDKIT":
case "COMP_SCREEN":
case "HANGING_LAMP":
case "HANGING_LAMP_B":
case "CHAIR":
case "STATUE":
case "GRENADE_THROWN":
case "MOLOTOV_THROWN":
case "TABLE_DEBRIS_01":
case "TABLE_DEBRIS_02":
case "TABLE_DEBRIS_03":
case "CRATE_DEBRIS_01":
case "CRATE_DEBRIS_02":
case "CRATE_DEBRIS_03":
case "TUTORIAL_TARGET_DEBRIS_01":
case "TUTORIAL_TARGET_DEBRIS_02":
case "TUTORIAL_TARGET_DEBRIS_03":
case "BARREL_DEBRIS_02":
return (AddPolygon(_local11, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _local10));
};
return (null);
}
private function GetData(_arg1:String):Array{
var _local2:Array;
var _local3:String;
var _local4:int;
if (_arg1.charAt(_arg1.length) != ","){
_arg1 = (_arg1 + ",");
};
_local2 = new Array();
_local3 = "";
_local4 = 0;
while (_local4 < _arg1.length) {
if (_arg1.charAt(_local4) == ","){
_local2.push(_local3);
_local3 = "";
} else {
_local3 = (_local3 + _arg1.charAt(_local4).toString());
};
_local4++;
};
return (_local2);
}
public function get Ground():b2Body{
return (_ground);
}
private function ReverseCorners(_arg1:Array):Array{
var _local2:Array;
var _local3:int;
var _local4:Number;
var _local5:Number;
_local2 = new Array();
_local3 = (_arg1.length - 1);
while (_local3 >= 0) {
_local4 = -(_arg1[_local3][0]);
_local5 = _arg1[_local3][1];
_local2.push([_local4, _local5]);
_local3--;
};
return (_local2);
}
public function AddBox(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:b2Vec2, _arg6:Number, _arg7:Array=null, _arg8:Boolean=false):b2Body{
var tmp_mc:MovieClip;
var size:Point;
var body:b2Body;
var bodyDef:b2BodyDef;
var boxDef:*;
var type = _arg1;
var PosX = _arg2;
var PosY = _arg3;
var Angle = _arg4;
var Velocity = _arg5;
var AngularVelocity = _arg6;
var optionalValues = _arg7;
var reversed = _arg8;
if (_locked){
_queue.push("B", type, PosX, PosY, Angle, Velocity, AngularVelocity, optionalValues);
return (null);
};
size = new Point(0, 0);
boxDef = new b2PolygonDef();
bodyDef = new b2BodyDef();
bodyDef.position.x = PosX;
bodyDef.position.y = PosY;
bodyDef.angle = Angle;
switch (type.toUpperCase()){
case "BUTTON_01":
size.x = 4;
size.y = 4;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new blank_mc();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.isButton = true;
bodyDef.userData.buttonData = new ButtonData();
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "SOLID_GLASS_01":
size.x = optionalValues[0];
size.y = optionalValues[1];
boxDef.filter.categoryBits = 2;
bodyDef.userData = new blank_mc();
bodyDef.userData.material = _material.Glass;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 5, 10, 0.05, 10, 10);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.PlayerFragile = true;
bodyDef.userData.objectData.IsGlass = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.KickPower = 1.4;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.IsThrowableFragile = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.objectData.Strength = 0;
bodyDef.userData.objectData.UserValues = optionalValues;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:Number;
var _local6:int;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustglass", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetLinearVelocity();
_local3 = new b2Vec2();
_local5 = bodyDef.userData.objectData.UserValues[0];
_local6 = (-(_local5) / 2);
while (_local6 < (_local5 / 2)) {
_local3.x = (_local6 / 30);
_local3.y = 0;
_local4 = _arg1.GetWorldPoint(_local3);
AddPolygon("GLASS_SHARD_1", _local4.x, _local4.y, (Math.random() * Math.PI), new b2Vec2(((_local2.x + Math.random()) - 0.5), ((_local2.y + Math.random()) - 0.5)), (Math.random() * Math.PI));
_local6 = (_local6 + 6);
};
};
tmp_mc = _objects_mc;
break;
case "SOLID_INVISIBLE_METAL_GIB":
size.x = optionalValues[0];
size.y = optionalValues[1];
boxDef.filter.categoryBits = 2;
bodyDef.userData = new blank_mc();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanKnockDownPlayer = false;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "SOLID_INVISIBLE_METAL":
size.x = optionalValues[0];
size.y = optionalValues[1];
boxDef.filter.categoryBits = 2;
bodyDef.userData = new blank_mc();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanKnockDownPlayer = false;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "SPARK":
size.x = 1;
size.y = 1;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new spark();
bodyDef.userData.material = _material.Spark;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.ObjectTimer = (18 + (Math.random() * 6));
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
_arg1.GetUserData().objectData.ObjectTimer = (_arg1.GetUserData().objectData.ObjectTimer - _arg2);
if (_arg1.GetUserData().objectData.ObjectTimer <= 0){
_arg1.GetUserData().objectData.ForceDestruction();
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
case "EMPTY_SHELL_SMALL":
case "EMPTY_SHELL_SHOTGUN":
case "EMPTY_SHELL_BIG":
size.y = 1;
size.x = 2;
switch (type.toUpperCase()){
case "EMPTY_SHELL_SMALL":
bodyDef.userData = new empty_shell_small();
break;
case "EMPTY_SHELL_SHOTGUN":
bodyDef.userData = new empty_shell_shotgun();
break;
case "EMPTY_SHELL_BIG":
bodyDef.userData = new empty_shell_big();
size.x = 3;
break;
default:
bodyDef.userData = new error_mc();
break;
};
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData.material = _material.Shell;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.ObjectTimer = 24;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
_arg1.GetUserData().objectData.ObjectTimer = (_arg1.GetUserData().objectData.ObjectTimer - _arg2);
if (_arg1.GetUserData().objectData.ObjectTimer <= 0){
_arg1.GetUserData().objectData.ForceDestruction();
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _Handler_Effects.EffectMCFront;
break;
case "ELEVATOR_01":
size.x = 41;
size.y = 44;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new elevator_01();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "LIFT_SMALL_01":
size.x = 25;
size.y = 6;
boxDef.filter.isElevator = true;
boxDef.filter.isGhost = true;
bodyDef.userData = new lift_small_01();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.IsElevator = true;
bodyDef.userData.objectData.DrawCloudBox = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.PartOfStaticWorld = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.CanKnockDownPlayer = false;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "LIFT_01":
size.x = 35;
size.y = 7;
boxDef.filter.isElevator = true;
boxDef.filter.isGhost = true;
bodyDef.userData = new lift_01();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.IsElevator = true;
bodyDef.userData.objectData.DrawCloudBox = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.PartOfStaticWorld = true;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.CanKnockDownPlayer = false;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "BEACHBALL_FLAT":
size.x = 4;
size.y = 2;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new beachball();
bodyDef.userData.gotoAndStop(2);
bodyDef.fixedRotation = true;
bodyDef.userData.material = _material.Beachball;
bodyDef.userData.material.Restitution = 0.1;
bodyDef.userData.material.Density = 50;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 20, 0, 1, 0, 0);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.2;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.UpdateFunction = _debrisFadeFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "CRATE_HANGING_HOLDER":
size.x = 9;
size.y = 6;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new crate_hanging_holder();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 6, 1, 0, 1, 1, false);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.Strength = 1;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "CRATE_HANGING":
size.x = 27;
size.y = 14;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new crate_hanging();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.BotPreferJump = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "LAMP_1":
size.x = 21;
size.y = 5;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new lamp_1();
bodyDef.userData.material = _material.ElectricLamp;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 1, 10, 10, 10, false);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerFragile = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:int;
var _local5:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustglass", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Sounds.PlaySoundAt_Box2DScale("ELECTRIC_SPARK", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Effects.AddEffectAt_Box2DScale("ELECTRIC_SPARK", _arg1.GetPosition().x, (_arg1.GetPosition().y + (5 / 30)));
_local2 = new b2Vec2();
_local4 = -10;
while (_local4 <= 10) {
_local2.x = (_local4 / 30);
_local2.y = 0;
_local3 = _arg1.GetWorldPoint(_local2);
AddPolygon("GLASS_SHARD_1", _local3.x, _local3.y, (Math.random() * Math.PI), new b2Vec2(((Math.random() * 2) - 1), Math.random()), (Math.random() * Math.PI));
AddBox("SPARK", _local3.x, (_local3.y + 0.1), 0, new b2Vec2(((Math.random() * 10) - 5), Math.random()), (Math.random() * Math.PI));
_local4 = (_local4 + 5);
};
_local5 = AddObject("LAMP_1_B", _arg1.GetPosition().x, _arg1.GetPosition().y, 0, new b2Vec2(), 0);
AddLimitedJoint(Ground, _local5, _local5.GetPosition(), 0, 0);
};
tmp_mc = _objects_mc;
break;
case "LAMP_1_B":
size.x = 21;
size.y = 5;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new lamp_1_b();
bodyDef.userData.material = _material.ElectricLamp;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "GASCAN":
size.x = 7;
size.y = 9;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new gascan();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyDataExplosiveBarrel(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0.7, 100, 100);
bodyDef.userData.objectData.IsBurningHazard = true;
bodyDef.userData.objectData.IsExplosionHazard = true;
bodyDef.userData.objectData.IsBulletHazard = true;
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.FireLifeSpan = 6;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.objectData.Strength = 5;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
_Handler_Sounds.PlaySoundAt_Box2DScale("fireburst", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Fires.TriggerFireAt_Box2DScale("GASCAN", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _objects_mc;
break;
case "BARREL_EXPLOSIVE":
size.x = 9;
size.y = 13;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new barrel_01();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyDataExplosiveBarrel(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0.7, 100, 100);
bodyDef.userData.objectData.IsBurningHazard = true;
bodyDef.userData.objectData.IsExplosionHazard = true;
bodyDef.userData.objectData.IsBulletHazard = true;
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.FireLifeSpan = 6;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.objectData.Strength = 30;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
_Handler_Sounds.PlaySoundAt_Box2DScale("barrel_explosion", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Sounds.PlaySoundAt_Box2DScale("fireburst", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Fires.AddFireToObject(AddBox("barrel_wreck", _arg1.GetPosition().x, _arg1.GetPosition().y, _arg1.GetAngle(), new b2Vec2(((_arg1.GetLinearVelocity().x + (Math.random() * 12)) - 6), (_arg1.GetLinearVelocity().y - 1)), ((_arg1.GetAngularVelocity() + (Math.random() * 4)) - 2)));
_Handler_Fires.TriggerFireAt_Box2DScale("BARREL", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Explosions.TriggerExplosionAt_Box2DScale("", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _objects_mc;
break;
case "BARREL_WRECK":
size.x = 9;
size.y = 13;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new barrel_03();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0, 0, 0);
bodyDef.userData.objectData.IsBurningHazard = true;
bodyDef.userData.objectData.IsExplosionHazard = true;
bodyDef.userData.objectData.IsImpactHazard = true;
bodyDef.userData.objectData.IsBulletHazard = true;
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.objectData.Strength = 30;
bodyDef.userData.objectData.ObjectTimer = 6;
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
if (_arg1.GetUserData().objectData.ObjectTimer > 0){
_arg1.GetUserData().objectData.ObjectTimer = (_arg1.GetUserData().objectData.ObjectTimer - _arg2);
};
if (_arg1.GetUserData().objectData.ObjectTimer <= 0){
if (_arg1.IsSleeping()){
bodyDef.userData.objectData.SetResistance(100, 1, 100, 100);
} else {
bodyDef.userData.objectData.SetResistance(100, 0, 100, 100);
};
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("barrel_explosion", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetLinearVelocity();
_local3 = new b2Vec2();
_local3.x = (-1.5 / 30);
_local3.y = (-1.5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = AddPolygon("barrel_debris_02", _local4.x, _local4.y, _arg1.GetAngle(), new b2Vec2(((_local2.x + (Math.random() * 2)) - 1), (_local2.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local5);
};
_local3.x = (2.5 / 30);
_local3.y = (-2.5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = AddBox("barrel_debris_01", _local4.x, _local4.y, _arg1.GetAngle(), new b2Vec2(((_local2.x + (Math.random() * 2)) - 1), (_local2.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local5);
};
_local3.x = (-0.5 / 30);
_local3.y = (5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = AddBox("barrel_debris_03", _local4.x, _local4.y, _arg1.GetAngle(), new b2Vec2(((_local2.x + (Math.random() * 2)) - 1), (_local2.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local5);
};
_Handler_Explosions.TriggerExplosionAt_Box2DScale("", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _objects_mc;
break;
case "COMP":
size.x = 5;
size.y = 10;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new comp();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 10, 0, false);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.OnlyBurnWhileWake = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.Strength = 1;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
_Handler_Sounds.PlaySoundAt_Box2DScale("COMP_EXPLODE", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Effects.AddEffectAt_Box2DScale("EXPLOSION_CIRCLE", _arg1.GetPosition().x, _arg1.GetPosition().y);
};
tmp_mc = _objects_mc;
break;
case "BARREL":
size.x = 9;
size.y = 13;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new barrel_02();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.objectData.Strength = 30;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "TRASHCAN":
size.x = 9;
size.y = 13;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new trashcan();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.objectData.Strength = 30;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "CHAR_GIB_01":
case "CHAR_GIB_02":
case "CHAR_GIB_03":
case "CHAR_GIB_04":
case "CHAR_GIB_05":
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
switch (type.toUpperCase()){
case "CHAR_GIB_01":
size.x = 5;
size.y = 4;
bodyDef.userData = new char_gib_01();
break;
case "CHAR_GIB_02":
size.x = 5;
size.y = 3;
bodyDef.userData = new char_gib_02();
break;
case "CHAR_GIB_03":
size.x = 3;
size.y = 5;
bodyDef.userData = new char_gib_03();
break;
case "CHAR_GIB_04":
size.x = 4;
size.y = 3;
bodyDef.userData = new char_gib_04();
break;
case "CHAR_GIB_05":
size.x = 4;
size.y = 3;
bodyDef.userData = new char_gib_05();
break;
};
bodyDef.userData.material = _material.Ragdoll;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 0, 1, 0, 0);
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.8;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.Strength = 30;
bodyDef.userData.objectData.UserValues = [40, PosX, PosY];
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
if (_arg1.GetUserData().objectData.UserValues[0] > 0){
_arg1.GetUserData().objectData.UserValues[0] = (_arg1.GetUserData().objectData.UserValues[0] - _arg2);
if (!_arg1.IsSleeping()){
if (!_arg1.GetUserData().objectData.ThroughPortal){
_local3 = (_arg1.GetPosition().x - _arg1.GetUserData().objectData.UserValues[1]);
_local4 = (_arg1.GetPosition().y - _arg1.GetUserData().objectData.UserValues[2]);
_local5 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4)));
if (_local5 >= 0.2){
_local6 = (_local3 / _local5);
_local7 = (_local4 / _local5);
_local8 = 0;
while (_local8 <= _local5) {
_Handler_Effects.AddEffectAt_Box2DScale("BLOOD_GIB_TRACE", (_arg1.GetPosition().x - (_local6 * _local8)), (_arg1.GetPosition().y - (_local7 * _local8)));
_local8 = (_local8 + 0.2);
};
_arg1.GetUserData().objectData.UserValues[1] = _arg1.GetPosition().x;
_arg1.GetUserData().objectData.UserValues[2] = _arg1.GetPosition().y;
};
} else {
_arg1.GetUserData().objectData.UserValues[1] = _arg1.GetPosition().x;
_arg1.GetUserData().objectData.UserValues[2] = _arg1.GetPosition().y;
_arg1.GetUserData().objectData.ThroughPortal = false;
};
};
} else {
_arg1.GetUserData().objectData.UpdateFunction = _debrisFadeFunction;
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
case "FILECAB":
size.x = 11;
size.y = 13;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new filecab_01();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.material.BulletHitEffect = "FILECAB_HIT";
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CrushDamage = 35;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "DESK_1":
size.x = 25;
size.y = 12;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new desk_1();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 100, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = false;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.CrushDamage = 35;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.5;
bodyDef.userData.objectData.BotPreferJump = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "DESK":
size.x = 25;
size.y = 12;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new desk();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 100, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = false;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.CrushDamage = 35;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.5;
bodyDef.userData.objectData.BotPreferJump = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "POOL_TABLE":
size.x = 40;
size.y = 12;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new pool_table_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 100, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = false;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.CrushDamage = 35;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.5;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "PAPER":
size.x = 7;
size.y = 7;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new paper();
bodyDef.userData.material = _material.Paper;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 20, 0, 4, 1, 500);
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 1;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UserValues = [5];
bodyDef.userData.objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
if (_arg1.GetUserData().objectData.ObjectTimer == 0){
_arg1.GetUserData().objectData.ObjectTimer = 6;
} else {
_arg1.GetUserData().objectData.ObjectTimer = (_arg1.GetUserData().objectData.ObjectTimer - _arg2);
if (_arg1.GetUserData().objectData.ObjectTimer <= 0){
_arg1.GetUserData().objectData.BulletTransparent = false;
m_world.RemoveObjectFromLists(_arg1);
m_world.AddObjectToLists(_arg1);
};
};
};
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
var _local3:b2Body;
if ((((_arg1.GetUserData().objectData.UserValues[0] > 0)) && (!((_arg1.GetUserData().objectData.LastDamage == BodyData.DAMAGE_EXPLOSION))))){
_Handler_Effects.AddParticle_Box2DScale(new particle_data("PAPER_HIT", _arg1.GetPosition().x, _arg1.GetPosition().y));
_local2 = _arg1.GetLinearVelocity();
_local2.x = (_local2.x * 0.2);
_local2.y = (_local2.y * 0.2);
_local3 = AddObject("PAPER", _arg1.GetPosition().x, _arg1.GetPosition().y, _arg1.GetAngle(), _local2, _arg1.GetAngularVelocity());
_local3.GetUserData().objectData.UserValues[0] = (_arg1.GetUserData().objectData.UserValues[0] - 1);
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local3);
} else {
_Handler_Fires.AddSmokeToObject(_local3, _arg1.GetUserData().objectData.ObjectSmokeGrade);
};
} else {
_Handler_Effects.AddParticle_Box2DScale(new particle_data("PAPER_HIT", (_arg1.GetPosition().x + (((Math.random() * 8) - 4) / 30)), (_arg1.GetPosition().y - (((Math.random() * 6) - 3) / 30))));
_Handler_Effects.AddParticle_Box2DScale(new particle_data("PAPER_HIT", (_arg1.GetPosition().x - (((Math.random() * 8) - 4) / 30)), (_arg1.GetPosition().y + (((Math.random() * 6) - 3) / 30))));
_Handler_Effects.AddParticle_Box2DScale(new particle_data("PAPER_HIT", (_arg1.GetPosition().x - (((Math.random() * 8) - 4) / 30)), (_arg1.GetPosition().y + (((Math.random() * 6) - 3) / 30))));
};
};
tmp_mc = _scrap_mc;
break;
case "BARREL_DEBRIS_03":
size.x = 2;
size.y = 3;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new barrel_debris_03();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 0, 30, 1);
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.OnlyBurnWhileWake = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
case "BARREL_DEBRIS_01":
size.x = 2;
size.y = 5;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new barrel_debris_01();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 30, 0, 0, 30, 1);
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.OnlyBurnWhileWake = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.Strength = 3;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.objectData.UpdateFunction = _debrisUpdateFunction;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
case "CRATE":
size.x = 14;
size.y = 14;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new crate_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40, 1, 1, 0.8, 2);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerFragile = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.7;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:Number;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Vec2;
var _local6:b2Body;
var _local7:Number;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustwood", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetUserData().objectData.ObjectSmokeGrade;
if (_local2 < 2){
_local2 = 1;
};
_local3 = _arg1.GetLinearVelocity();
_local4 = new b2Vec2();
_local4.x = (-3 / 30);
_local4.y = (-5 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("crate_debris_01", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (4 / 30);
_local4.y = (-1 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("crate_debris_02", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 3))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (-1 / 30);
_local4.y = (5 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("crate_debris_03", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), ((_local3.y - (Math.random() * 3)) + 1)), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
if (Math.random() < 0.2){
_local4.x = 0;
_local4.y = 0;
_local5 = _arg1.GetWorldPoint(_local4);
_local7 = Math.random();
if (_local7 < 0.25){
AddObject("BEACHBALL", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), ((_local3.y - (Math.random() * 3)) + 1)), (((Math.random() * Math.PI) * 2) - Math.PI));
} else {
if (_local7 < 0.5){
AddObject("PAPER", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), ((_local3.y - (Math.random() * 3)) + 1)), (((Math.random() * Math.PI) * 2) - Math.PI));
AddObject("PAPER", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), ((_local3.y - (Math.random() * 3)) + 1)), (((Math.random() * Math.PI) * 2) - Math.PI));
} else {
if (_local7 < 0.75){
AddObject("COMP", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), ((_local3.y - (Math.random() * 3)) + 1)), (((Math.random() * Math.PI) * 2) - Math.PI));
} else {
if (_local7 <= 1){
AddObject("COMP_SCREEN", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), ((_local3.y - (Math.random() * 3)) + 1)), (((Math.random() * Math.PI) * 2) - Math.PI));
};
};
};
};
};
};
tmp_mc = _objects_mc;
break;
case "TABLE":
size.x = 18;
size.y = 10;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new table_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerFragile = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.95;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:Number;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Vec2;
var _local6:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustwood", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetUserData().objectData.ObjectSmokeGrade;
if (_local2 < 2){
_local2 = 1;
};
_local3 = _arg1.GetLinearVelocity();
_local4 = new b2Vec2();
_local4.x = (-6 / 30);
_local4.y = (0 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_01", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (-0.5 / 30);
_local4.y = (-3.5 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_02", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (6 / 30);
_local4.y = (0 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_03", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
};
tmp_mc = _objects_mc;
break;
case "TABLE_SMALL":
size.x = 13;
size.y = 7;
boxDef.filter.categoryBits = 2;
bodyDef.userData = new table_small_01();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 40);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerFragile = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 0.95;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:Number;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Vec2;
var _local6:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustwood", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetUserData().objectData.ObjectSmokeGrade;
if (_local2 < 2){
_local2 = 1;
};
_local3 = _arg1.GetLinearVelocity();
_local4 = new b2Vec2();
_local4.x = (-5 / 30);
_local4.y = (0 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_01", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (-0.5 / 30);
_local4.y = (-3 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_02", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
_local4.x = (5 / 30);
_local4.y = (0 / 30);
_local5 = _arg1.GetWorldPoint(_local4);
_local6 = AddPolygon("table_debris_03", _local5.x, _local5.y, _arg1.GetAngle(), new b2Vec2(((_local3.x + (Math.random() * 4)) - 2), (_local3.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
if (_arg1.GetUserData().objectData.ObjectOnFire){
_Handler_Fires.AddFireToObject(_local6);
} else {
_Handler_Fires.AddSmokeToObject(_local6, _local2);
};
};
tmp_mc = _objects_mc;
break;
default:
size.x = 10;
size.y = 10;
boxDef.filter.categoryBits = 2;
boxDef.filter.maskBits = 1;
bodyDef.userData = new error_mc();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50);
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
};
if (reversed){
bodyDef.userData.scaleX = -1;
};
bodyDef.userData.IDNumber = GenerateID();
bodyDef.userData.tiltValue = 0;
size.x = (size.x + 1);
size.y = (size.y + 1);
boxDef.SetAsBox((size.x / 60), (size.y / 60));
boxDef.density = bodyDef.userData.material.Density;
boxDef.friction = bodyDef.userData.material.Friction;
boxDef.restitution = bodyDef.userData.material.Restitution;
if (((bodyDef.userData.objectData.DrawHitBox) || (bodyDef.userData.objectData.DrawCloudBox))){
if (type.toUpperCase() == "TABLE"){
bodyDef.userData.objectData.CollisionMC = DrawBoxMC(size.x, 5, 0xFF, 1, 0, -2.5);
} else {
if (type.toUpperCase() == "TABLE_SMALL"){
bodyDef.userData.objectData.CollisionMC = DrawBoxMC(size.x, 5, 0xFF, 1, 0, -2);
} else {
bodyDef.userData.objectData.CollisionMC = DrawBoxMC(size.x, size.y);
};
};
bodyDef.userData.objectData.CollisionMC.x = (PosX * 30);
bodyDef.userData.objectData.CollisionMC.y = (PosY * 30);
bodyDef.userData.objectData.CollisionMC.rotation = (Angle * (180 / Math.PI));
if (bodyDef.userData.isLadder == true){
_static_ladder_hitbox_mc.addChild(bodyDef.userData.objectData.CollisionMC);
} else {
if (bodyDef.userData.objectData.DrawHitBox){
_static_objects_hitbox_mc.addChild(bodyDef.userData.objectData.CollisionMC);
} else {
if (bodyDef.userData.objectData.DrawCloudBox){
_static_objects_cloud_hitbox_mc.addChild(bodyDef.userData.objectData.CollisionMC);
};
};
};
};
if (bodyDef.userData.objectData.DrawShapeMC){
if (bodyDef.userData.isLadder == true){
bodyDef.userData.objectData.ShapeMC = DrawBoxMC(size.x, size.y, 16737894, 0.4);
} else {
if (type.toUpperCase() == "TABLE"){
bodyDef.userData.objectData.ShapeMC = DrawBoxMC(size.x, 5, 0xFF, 1, 0, -2.5);
} else {
if (type.toUpperCase() == "TABLE_SMALL"){
bodyDef.userData.objectData.ShapeMC = DrawBoxMC(size.x, 5, 0xFF, 1, 0, -2);
} else {
bodyDef.userData.objectData.ShapeMC = DrawBoxMC(size.x, size.y, 0xFF00, 0.4);
};
};
};
bodyDef.userData.objectData.ShapeMC.x = (PosX * 30);
bodyDef.userData.objectData.ShapeMC.y = (PosY * 30);
bodyDef.userData.objectData.ShapeMC.rotation = (Angle * (180 / Math.PI));
_object_shape_container_mc.addChild(bodyDef.userData.objectData.ShapeMC);
};
bodyDef.userData.x = (PosX * 30);
bodyDef.userData.y = (PosY * 30);
bodyDef.userData.rotation = (Angle * (180 / Math.PI));
tmp_mc.addChild(bodyDef.userData);
body = m_world.CreateBody(bodyDef);
body.CreateShape(boxDef);
body.SetMassFromShapes();
body.SetUserData(bodyDef.userData);
body.SetLinearVelocity(Velocity);
body.SetAngularVelocity(AngularVelocity);
body.GetUserData().objectData.Body = body;
_Handler_Output.Trace((((((type.toUpperCase() + " created at (") + Math.round(bodyDef.userData.x)) + ", ") + Math.round(bodyDef.userData.y)) + ")"));
if (type.toUpperCase() == "SPARK"){
body.SetBullet(true);
if (Velocity.LengthSquared() == 0){
body.SetLinearVelocity(new b2Vec2(((Math.random() * 12) - 6), ((Math.random() * 10) - 8)));
};
};
m_world.AddObjectToLists(body);
return (body);
}
public function DrawCircleMC(_arg1:Number, _arg2:uint=0xFF, _arg3:Number=1):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
_local4.graphics.lineStyle(0.5, 0, 1, false, "none");
_local4.graphics.beginFill(_arg2, _arg3);
_local4.graphics.drawCircle(0, 0, _arg1);
_local4.graphics.endFill();
return (_local4);
}
public function AddCircle(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:b2Vec2, _arg6:Number, _arg7:Array=null, _arg8:Boolean=false):b2Body{
var tmp_mc:MovieClip;
var body:b2Body;
var bodyDef:b2BodyDef;
var circleDef:b2CircleDef;
var radius:Number;
var boxDef:*;
var type = _arg1;
var PosX = _arg2;
var PosY = _arg3;
var Angle = _arg4;
var Velocity = _arg5;
var AngularVelocity = _arg6;
var optionalValues = _arg7;
var reversed = _arg8;
if (_locked){
_queue.push("C", type, PosX, PosY, Angle, Velocity, AngularVelocity, optionalValues);
return (null);
};
circleDef = new b2CircleDef();
radius = 1;
bodyDef = new b2BodyDef();
bodyDef.position.x = PosX;
bodyDef.position.y = PosY;
switch (type.toUpperCase()){
case "ROLLING_PIPE":
radius = 27;
circleDef.filter.categoryBits = 2;
bodyDef.userData = new rolling_pipe();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.material.Density = 9999;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "STATUE_GLOBE":
radius = 17;
circleDef.filter.categoryBits = 2;
bodyDef.userData = new statue_globe();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "WINDMILL_PROPELLER":
radius = 20.5;
circleDef.filter.categoryBits = 2;
bodyDef.userData = new windmill_propeller();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanGibb = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanBlockFire = true;
bodyDef.userData.objectData.CanBlockExplosions = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "TUTORIAL_TARGET":
radius = 5.5;
circleDef.filter.categoryBits = 2;
circleDef.filter.maskBits = 1;
bodyDef.userData = new tutorial_target();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 5, 0, 1, 1, 1, false);
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2Vec2;
var _local5:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustwood", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = _arg1.GetLinearVelocity();
_local3 = new b2Vec2();
_local3.x = (-2.5 / 30);
_local3.y = (-2.5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = AddPolygon("tutorial_target_debris_01", _local4.x, _local4.y, _arg1.GetAngle(), new b2Vec2(((_local2.x + (Math.random() * 4)) - 2), (_local2.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
_local3.x = (3.5 / 30);
_local3.y = (-0.5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = AddPolygon("tutorial_target_debris_02", _local4.x, _local4.y, _arg1.GetAngle(), new b2Vec2(((_local2.x + (Math.random() * 4)) - 2), (_local2.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
_local3.x = (-0.5 / 30);
_local3.y = (4.5 / 30);
_local4 = _arg1.GetWorldPoint(_local3);
_local5 = AddPolygon("tutorial_target_debris_03", _local4.x, _local4.y, _arg1.GetAngle(), new b2Vec2(((_local2.x + (Math.random() * 4)) - 2), (_local2.y - (Math.random() * 2))), (((Math.random() * Math.PI) * 2) - Math.PI));
};
tmp_mc = _objects_mc;
break;
case "BEACHBALL":
radius = 6;
circleDef.filter.categoryBits = 2;
bodyDef.userData = new beachball();
bodyDef.userData.gotoAndStop(1);
bodyDef.userData.material = _material.Beachball;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 20, 0, 1, 20, 50);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.CanGibb = false;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.objectData.KickPower = 1.3;
bodyDef.userData.objectData.KickWeightCalculation = true;
bodyDef.userData.objectData.CanCarryFire = true;
bodyDef.userData.objectData.CanBlockFire = false;
bodyDef.userData.objectData.CanBlockExplosions = false;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.PlayerBounce = false;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
_local2 = new b2Vec2((_arg1.GetLinearVelocity().x * 0.2), (_arg1.GetLinearVelocity().y * 0.2));
AddObject("BEACHBALL_FLAT", _arg1.GetPosition().x, _arg1.GetPosition().y, 0, _local2, 0);
};
tmp_mc = _objects_mc;
break;
case "COMFY_CHAIR":
radius = 6.5;
circleDef.filter.categoryBits = 2;
bodyDef.userData = new comfy_chair();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = true;
bodyDef.userData.objectData.CanBurn = true;
bodyDef.userData.objectData.OnlyBurnWhileWake = true;
bodyDef.userData.objectData.CrushDamage = 25;
bodyDef.userData.objectData.CanSmoke = true;
bodyDef.userData.objectData.AffectedByExplosions = true;
bodyDef.userData.objectData.LaserVisibleOnObject = true;
bodyDef.userData.objectData.Kickable = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
case "PLATFORM_MOTOR":
radius = 30;
circleDef.filter.categoryBits = 8;
circleDef.filter.maskBits = 8;
bodyDef.userData = new blank_mc();
bodyDef.userData.material = _material.Metal;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 10, 0, 0, 0, 0, true);
bodyDef.userData.objectData.DrawHitBox = false;
bodyDef.userData.objectData.DrawShapeMC = false;
bodyDef.userData.objectData.BulletTransparent = true;
bodyDef.userData.objectData.LaserTransparent = true;
bodyDef.userData.objectData.AimTransparent = true;
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _objects_mc;
break;
default:
radius = 5;
circleDef.filter.categoryBits = 2;
circleDef.filter.maskBits = 1;
bodyDef.userData = new error_mc();
bodyDef.userData.material = _material.Wood;
bodyDef.userData.objectData = new BodyData(bodyDef.userData, _Handler_Deconstructer, 50);
bodyDef.userData.onDestruction = function (_arg1:b2Body):void{
};
tmp_mc = _scrap_mc;
break;
};
if (reversed){
bodyDef.userData.scaleX = -1;
};
bodyDef.userData.IDNumber = GenerateID();
bodyDef.userData.tiltValue = 0;
radius = (radius + 0.5);
circleDef.radius = (radius / 30);
circleDef.density = bodyDef.userData.material.Density;
circleDef.friction = bodyDef.userData.material.Friction;
circleDef.restitution = bodyDef.userData.material.Restitution;
if (bodyDef.userData.objectData.DrawHitBox){
bodyDef.userData.objectData.CollisionMC = DrawCircleMC((circleDef.radius * 30));
bodyDef.userData.objectData.CollisionMC.x = (PosX * 30);
bodyDef.userData.objectData.CollisionMC.y = (PosY * 30);
_static_objects_hitbox_mc.addChild(bodyDef.userData.objectData.CollisionMC);
};
if (bodyDef.userData.objectData.DrawShapeMC){
bodyDef.userData.objectData.ShapeMC = DrawCircleMC((circleDef.radius * 30), 0xFF00, 0.4);
bodyDef.userData.objectData.ShapeMC.x = (PosX * 30);
bodyDef.userData.objectData.ShapeMC.y = (PosY * 30);
_object_shape_container_mc.addChild(bodyDef.userData.objectData.ShapeMC);
};
bodyDef.userData.x = (PosX * 30);
bodyDef.userData.y = (PosY * 30);
tmp_mc.addChild(bodyDef.userData);
body = m_world.CreateBody(bodyDef);
body.CreateShape(circleDef);
if (type.toUpperCase() == "COMFY_CHAIR"){
boxDef = new b2PolygonDef();
boxDef.filter.categoryBits = 2;
boxDef.SetAsOrientedBox((14 / 60), (9 / 60), new b2Vec2(0, (3.5 / 30)), 0);
boxDef.density = bodyDef.userData.material.Density;
boxDef.friction = bodyDef.userData.material.Friction;
boxDef.restitution = bodyDef.userData.material.Restitution;
body.CreateShape(boxDef);
};
body.SetMassFromShapes();
body.SetUserData(bodyDef.userData);
body.SetLinearVelocity(Velocity);
body.SetAngularVelocity(AngularVelocity);
body.GetUserData().objectData.Body = body;
_Handler_Output.Trace((((((type.toUpperCase() + " created at (") + Math.round(bodyDef.userData.x)) + ", ") + Math.round(bodyDef.userData.y)) + ")"));
m_world.AddObjectToLists(body);
return (body);
}
public function AddDistanceJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):b2DistanceJoint{
var _local5:b2DistanceJointDef;
_local5 = new b2DistanceJointDef();
_local5.Initialize(_arg1, _arg2, _arg3, _arg4);
return ((m_world.CreateJoint(_local5) as b2DistanceJoint));
}
public function AddGearJoint(_arg1:b2Body, _arg2:b2Body, _arg3, _arg4, _arg5:Number):b2GearJoint{
var _local6:b2GearJointDef;
_local6 = new b2GearJointDef();
_local6.body1 = _arg1;
_local6.body2 = _arg2;
_local6.joint1 = _arg3;
_local6.joint2 = _arg4;
_local6.ratio = _arg5;
return ((m_world.CreateJoint(_local6) as b2GearJoint));
}
public function AddPrismaticJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):b2PrismaticJoint{
var _local5:b2PrismaticJointDef;
_local5 = new b2PrismaticJointDef();
_local5.Initialize(_arg1, _arg2, _arg3, _arg4);
return ((m_world.CreateJoint(_local5) as b2PrismaticJoint));
}
public function DrawBoxMC(_arg1:Number, _arg2:Number, _arg3:uint=0xFF, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0):MovieClip{
var _local7:MovieClip;
_local7 = new MovieClip();
_local7.graphics.lineStyle(0.5, 0, 1, false, "none");
_local7.graphics.beginFill(_arg3, _arg4);
_local7.graphics.moveTo(((-(_arg1) / 2) + _arg5), ((-(_arg2) / 2) + _arg6));
_local7.graphics.lineTo(((_arg1 / 2) + _arg5), ((-(_arg2) / 2) + _arg6));
_local7.graphics.lineTo(((_arg1 / 2) + _arg5), ((_arg2 / 2) + _arg6));
_local7.graphics.lineTo(((-(_arg1) / 2) + _arg5), ((_arg2 / 2) + _arg6));
_local7.graphics.lineTo(((-(_arg1) / 2) + _arg5), ((-(_arg2) / 2) + _arg6));
_local7.graphics.endFill();
return (_local7);
}
public function AddRevoluteJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):b2RevoluteJoint{
var _local4:b2RevoluteJointDef;
_local4 = new b2RevoluteJointDef();
_local4.Initialize(_arg1, _arg2, _arg3);
return ((m_world.CreateJoint(_local4) as b2RevoluteJoint));
}
public function AddLimitedJoint(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:Number, _arg5:Number):b2RevoluteJoint{
var _local6:b2RevoluteJointDef;
_local6 = new b2RevoluteJointDef();
_local6.lowerAngle = (-(_arg4) / (180 / Math.PI));
_local6.upperAngle = (_arg5 / (180 / Math.PI));
_local6.enableLimit = true;
_local6.Initialize(_arg1, _arg2, _arg3);
return ((m_world.CreateJoint(_local6) as b2RevoluteJoint));
}
public function Lock():void{
_locked = true;
}
public function AddRevoluteMotor(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:Number, _arg5:Number):b2RevoluteJoint{
var _local6:b2RevoluteJointDef;
_local6 = new b2RevoluteJointDef();
_local6.motorSpeed = _arg4;
_local6.maxMotorTorque = _arg5;
_local6.enableMotor = true;
_local6.Initialize(_arg1, _arg2, _arg3);
return ((m_world.CreateJoint(_local6) as b2RevoluteJoint));
}
public function get Material():MaterialsData{
return (_material);
}
public function set Setb2World(_arg1:b2World):void{
m_world = _arg1;
_ground = m_world.GetGroundBody();
}
public function set LinkDeconstructer(_arg1:Deconstructer):void{
_Handler_Deconstructer = _arg1;
}
public function DrawPolyMC(_arg1:Array, _arg2:uint=0xFF, _arg3:Number=1):MovieClip{
var _local4:MovieClip;
var _local5:*;
_local4 = new MovieClip();
_local4.graphics.lineStyle(0.5, 0, 1, false, "none");
_local4.graphics.beginFill(_arg2, _arg3);
_local4.graphics.moveTo((_arg1[0][0] * 30), (_arg1[0][1] * 30));
_local5 = 1;
while (_local5 < _arg1.length) {
_local4.graphics.lineTo((_arg1[_local5][0] * 30), (_arg1[_local5][1] * 30));
_local5++;
};
_local4.graphics.lineTo((_arg1[0][0] * 30), (_arg1[0][1] * 30));
_local4.graphics.endFill();
return (_local4);
}
public function AddHangingLamp(_arg1:Point, _arg2:Number):Rope{
var lampPoint:Point;
var lamp:b2Body;
var rope:Rope;
var layer_mc:MovieClip;
var ceilPoint = _arg1;
var lineLength = _arg2;
lampPoint = new Point(ceilPoint.x, (ceilPoint.y + lineLength));
lamp = AddObject("HANGING_LAMP", (lampPoint.x / 30), ((lampPoint.y + 4) / 30), 0, new b2Vec2(0, 0), 0);
AddDistanceJoint(Ground, lamp, new b2Vec2((ceilPoint.x / 30), (ceilPoint.y / 30)), new b2Vec2(lamp.GetPosition().x, (lamp.GetPosition().y - (4 / 30))));
lamp.ApplyForce(new b2Vec2(((Math.random() * 4) - 2), Math.random()), new b2Vec2(lamp.GetPosition().x, lamp.GetPosition().y));
rope = new Rope(Ground, lamp, new b2Vec2((ceilPoint.x / 30), (ceilPoint.y / 30)), new b2Vec2((lampPoint.x / 30), (lampPoint.y / 30)));
layer_mc = MovieClip(_dynamic_mc.getChildByName("OBJECTS"));
layer_mc.addChild(rope.MC);
lamp.GetUserData().onDestruction = function (_arg1:b2Body):void{
var _local2:b2Vec2;
var _local3:b2Vec2;
var _local4:b2Body;
_Handler_Sounds.PlaySoundAt_Box2DScale("bustglass", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Sounds.PlaySoundAt_Box2DScale("ELECTRIC_SPARK", _arg1.GetPosition().x, _arg1.GetPosition().y);
_Handler_Effects.AddEffectAt_Box2DScale("ELECTRIC_SPARK", _arg1.GetPosition().x, _arg1.GetPosition().y);
_local2 = new b2Vec2();
_local2.x = 0;
_local2.y = (4 / 30);
_local3 = _arg1.GetWorldPoint(_local2);
AddBox("SPARK", _local3.x, _local3.y, 0, new b2Vec2(((Math.random() * 10) - 5), Math.random()), (Math.random() * Math.PI));
AddBox("SPARK", (_local3.x - (1 / 30)), _local3.y, 0, new b2Vec2(((Math.random() * 10) - 5), Math.random()), (Math.random() * Math.PI));
AddBox("SPARK", (_local3.x + (1 / 30)), _local3.y, 0, new b2Vec2(((Math.random() * 10) - 5), Math.random()), (Math.random() * Math.PI));
AddBox("SPARK", (_local3.x - (2 / 30)), _local3.y, 0, new b2Vec2(((Math.random() * 10) - 5), Math.random()), (Math.random() * Math.PI));
AddBox("SPARK", (_local3.x + (2 / 30)), _local3.y, 0, new b2Vec2(((Math.random() * 10) - 5), Math.random()), (Math.random() * Math.PI));
rope.Remove();
_local4 = AddObject("HANGING_LAMP_B", _arg1.GetPosition().x, _arg1.GetPosition().y, _arg1.GetAngle(), _arg1.GetLinearVelocity(), _arg1.GetAngularVelocity());
_local2.x = 0;
_local2.y = (-4 / 30);
_local3 = _arg1.GetWorldPoint(_local2);
AddDistanceJoint(Ground, _local4, new b2Vec2((ceilPoint.x / 30), (ceilPoint.y / 30)), new b2Vec2(_local3.x, _local3.y));
rope.BuildRope(Ground, _local4, new b2Vec2((ceilPoint.x / 30), (ceilPoint.y / 30)), new b2Vec2(_local3.x, _local3.y));
layer_mc.addChild(rope.MC);
};
return (rope);
}
private function GenerateID():int{
_idGiver = (_idGiver + 1);
return (_idGiver);
}
public function CreateGroundPolygon(_arg1:MaterialData, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Array, _arg6:Array=null):b2Body{
var _local7:b2Body;
var _local8:b2BodyDef;
var _local9:*;
var _local10:*;
_arg5 = IncreaseCorners(_arg5);
_local9 = new b2PolygonDef();
_local8 = new b2BodyDef();
_local8.position.Set(_arg2, _arg3);
_local8.angle = _arg4;
_local8.userData = new Object();
_local8.userData.IDNumber = GenerateID();
_local8.userData.material = _arg1;
_local8.userData.tiltValue = 0;
_local8.userData.allowCover = false;
if (_arg6 == null){
_local8.userData.shapeMC = DrawPolyMC(_arg5, 0xFF00FF);
} else {
if (_arg6[0] == "CLOUD"){
_local8.userData.shapeMC = DrawPolyMC(_arg5, 0xFF0066);
} else {
if (_arg6[0] == "LADDER"){
_local8.userData.shapeMC = DrawPolyMC(_arg5, 16737894);
} else {
_local8.userData.shapeMC = DrawPolyMC(_arg5, 0xFF00FF);
_arg6 = null;
};
};
};
_local8.userData.shapeMC.x = (_arg2 * 30);
_local8.userData.shapeMC.y = (_arg3 * 30);
_local8.userData.shapeMC.rotation = (_arg4 * (180 / Math.PI));
_local9.vertexCount = _arg5.length;
_local10 = 0;
while (_local10 < _arg5.length) {
_local9.vertices[_local10] = new b2Vec2(_arg5[_local10][0], _arg5[_local10][1]);
_local10++;
};
_local9.friction = _local8.userData.material.Friction;
_local9.restitution = _local8.userData.material.Restitution;
_local9.density = 0;
if (_arg6 != null){
if (_arg6[0] == "LADDER"){
_local9.filter.categoryBits = 2;
_local9.filter.maskBits = 1;
_local8.userData.isLadder = true;
};
if (_arg6[0] == "CLOUD"){
_local9.filter.isCloud = true;
_local8.userData.isCloud = true;
};
};
_local7 = m_world.CreateBody(_local8);
_local7.CreateShape(_local9);
_local7.SetMassFromShapes();
_local7.SetUserData(_local8.userData);
if (_arg6 == null){
_static_world_hitbox_mc.addChild(_local7.GetUserData().shapeMC);
} else {
if (_arg6[0] == "CLOUD"){
_static_world_cloud_hitbox_mc.addChild(_local7.GetUserData().shapeMC);
} else {
if (_arg6[0] == "LADDER"){
_static_ladder_hitbox_mc.addChild(_local7.GetUserData().shapeMC);
};
};
};
return (_local7);
}
}
}//package Code.Handler
Section 153
//Maps (Code.Handler.Maps)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Collision.Shapes.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.Joints.*;
import Code.Box2D.Dynamics.*;
import Code.Data.Weapons.*;
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
import Code.Box2D.Collision.*;
import Code.Particles.*;
public class Maps {
public var MapStart:Function;
private var _static_mc:MovieClip;
private var mapArea:Rectangle;
private var pathGrid:PathGrid;
private var _Handler_Effects:Effects;
private var _mapStartTimer:int;// = 2
private var playerSpawns:Array;
private var portals:Array;
public var Handler_WorldItems:MapPremadeItems;
public var MapUpdate:Function;
private var m_contactListener:b2ContactListener;
private var weaponSpawns:Array;
public var MapOver:Boolean;// = false
private var _dynamic_mc:MovieClip;
private var _Handler_Players:PlayersKeeper;
private var _Handler_Sounds:Sounds;
private var m_world:b2World;
public var SurvivalTime:SurvivalTimePackage;
private var _Handler_Weapons:Weapons;
public var mapGraphic:MapGraphic;
private var _Handler_Output:OutputTrace;
public var MapEnd:Function;
public static var RANDOM_MAP:int = 8;
public static var TOTAL_MAPS:int = 8;
public static var TOTAL_SURVIVAL_MAPS:int = 1;
public function Maps(_arg1:OutputTrace):void{
SurvivalTime = new SurvivalTimePackage();
MapOver = false;
_mapStartTimer = 2;
super();
Handler_WorldItems = new MapPremadeItems(_arg1);
_Handler_Output = _arg1;
_Handler_Output.Trace("Maps Handler Created");
}
private function GenerateMapBackstreets():void{
var stair:b2Body;
var ramp1:b2Body;
var ramp2:b2Body;
var lamp4:b2Body;
var lamp3:b2Body;
var lamp2:b2Body;
var lamp1:b2Body;
var rope1:Rope;
var rope2:Rope;
var rope3:Rope;
var rope4:Rope;
var rope5:Rope;
var rope6:Rope;
var rope7:Rope;
mapArea = new Rectangle(13, -114, 590, 442);
playerSpawns = new Array(new Point(228, 195), new Point(309, 195), new Point(0x0202, 172), new Point(541, 99), new Point(414, 131), new Point(443, 172), new Point(268, 204), new Point(128, 113), new Point(89, 203), new Point(142, 185));
weaponSpawns = new Array(new WeaponSpawnData(126, 116, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(268, 206, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(414, 133, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(541, 102, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(443, 174, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(149, 186, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
portals = new Array(new PortalData(new Rectangle(53, 185, 20, 24), new Rectangle(34, 97, 19, 24), new Point(-1, 0), true, false), new PortalData(new Rectangle(34, 97, 19, 24), new Rectangle(53, 185, 20, 24), new Point(-1, 0), true, false));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (517.5 / 30), (41 / 30), 0, (171 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (117 / 30), (31 / 30), 0, (182 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (30 / 30), (67 / 30), 0, (46 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (20.5 / 30), (109 / 30), 0, (27 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (30 / 30), (165 / 30), 0, (46 / 30), (88 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (130.5 / 30), (127 / 30), 0, (155 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (201.5 / 30), (144 / 30), 0, (13 / 30), (22 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (63 / 30), (159 / 30), 0, (20 / 30), (52 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (53 / 30), (225 / 30), 0, (92 / 30), (32 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (168 / 30), (216 / 30), 0, (80 / 30), (50 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (268 / 30), (226 / 30), 0, (40 / 30), (30 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (374 / 30), (216 / 30), 0, (90 / 30), (50 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (502.5 / 30), (210 / 30), 0, (167 / 30), (62 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (572 / 30), (113 / 30), 0, (28 / 30), (132 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (539.5 / 30), (115.5 / 30), 0, (37 / 30), (17 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (334.5 / 30), (148 / 30), 0, (13 / 30), (20 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (334.5 / 30), (88 / 30), 0, (13 / 30), (22 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (386.5 / 30), (83 / 30), 0, (91 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (438.5 / 30), (68 / 30), 0, (13 / 30), (42 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (357.5 / 30), (139 / 30), 0, (33 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (425.5 / 30), (139 / 30), 0, (77 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (513.5 / 30), (125.5 / 30), 0, (13 / 30), (57 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (380.5 / 30), (145 / 30), 0, (13 / 30), (42 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (201.5 / 30), (61 / 30), 0, (13 / 30), (48 / 30), new Array("NONE"));
stair = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (115 / 30), (223 / 30), 0, new Array([(-16 / 30), (-14 / 30)], [(8 / 30), (-32 / 30)], [(13 / 30), (-32 / 30)], [(13 / 30), (18 / 30)], [(-16 / 30), (18 / 30)]), new Array("NONE"));
stair.GetUserData().tiltValue = -2;
ramp1 = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (228 / 30), (224 / 30), 0, new Array([(-20 / 30), (-33 / 30)], [(20 / 30), (-13 / 30)], [(20 / 30), (17 / 30)], [(-20 / 30), (17 / 30)]), new Array("NONE"));
ramp1.GetUserData().tiltValue = 2;
ramp2 = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (310 / 30), (223 / 30), 0, new Array([(-22 / 30), (-12 / 30)], [(19 / 30), (-32 / 30)], [(19 / 30), (18 / 30)], [(-22 / 30), (18 / 30)]), new Array("NONE"));
ramp2.GetUserData().tiltValue = -2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (16 / 30), (31 / 30), 0, (20 / 30), (12 / 30), new Array("NONE"));
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE", (100 / 30), (114 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,BARREL,CRATE", (115 / 30), (114 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE,NONE", (113 / 30), (99 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE,NONE", (153 / 30), (114 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (168 / 30), (114 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (164 / 30), (99 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (101 / 30), (102.5 / 30), 0, new b2Vec2(), 0);
} else {
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("COMP", (109 / 30), (103 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP_SCREEN", (98 / 30), (103 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("PAPER", (100 / 30), (104.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (111 / 30), (104.5 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("DESK_1", (103 / 30), (115 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("FILECAB,TABLE", (143 / 30), (114.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (145 / 30), (104 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR,CHAIR", (78 / 30), (113 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("FILECAB,TABLE", (179.5 / 30), (114.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (181 / 30), (104 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("CRATE", (441 / 30), (131 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (181 / 30), (184 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,CRATE,NONE", (166 / 30), (184 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("GASCAN,NONE,NONE", (93.5 / 30), (205.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL", (361 / 30), (184 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (346 / 30), (184 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE,TABLE,NONE", (478 / 30), (172.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (551 / 30), (172 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (536 / 30), (172 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE,NONE", (551 / 30), (157 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,CRATE,NONE", (354.5 / 30), (131.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (372 / 30), (70 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (357 / 30), (70 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL", (424 / 30), (70 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (409 / 30), (70 / 30), 0, new b2Vec2(), 0);
lamp4 = Handler_WorldItems.AddObject("LAMP_1", (177.5 / 30), (136.5 / 30), 0, new b2Vec2(), 0);
lamp3 = Handler_WorldItems.AddObject("LAMP_1", (149 / 30), (136.5 / 30), 0, new b2Vec2(), 0);
lamp2 = Handler_WorldItems.AddObject("LAMP_1", (120 / 30), (136.5 / 30), 0, new b2Vec2(), 0);
lamp1 = Handler_WorldItems.AddObject("LAMP_1", (91 / 30), (136.5 / 30), 0, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 541, 103, "", null));
pathGrid.AddNode(new PathNode("", 527, 103, "", null));
pathGrid.AddNode(new PathNode("", 553, 175, "", null));
pathGrid.AddNode(new PathNode("", 0x0202, 175, "", null));
pathGrid.AddNode(new PathNode("", 533, 175, "", null));
pathGrid.AddNode(new PathNode("", 490, 175, "", null));
pathGrid.AddNode(new PathNode("", 464, 175, "", null));
pathGrid.AddNode(new PathNode("", 443, 175, "", null));
pathGrid.AddNode(new PathNode("", 424, 175, "", null));
pathGrid.AddNode(new PathNode("", 403, 187, "", null));
pathGrid.AddNode(new PathNode("", 380, 187, "", null));
pathGrid.AddNode(new PathNode("", 393, 134, "", null));
pathGrid.AddNode(new PathNode("", 414, 134, "", null));
pathGrid.AddNode(new PathNode("", 435, 134, "", null));
pathGrid.AddNode(new PathNode("", 456, 134, "", null));
pathGrid.AddNode(new PathNode("", 368, 134, "", null));
pathGrid.AddNode(new PathNode("", 354, 134, "", null));
pathGrid.AddNode(new PathNode("", 339, 134, "", null));
pathGrid.AddNode(new PathNode("", 358, 187, "", null));
pathGrid.AddNode(new PathNode("", 336, 187, "", null));
pathGrid.AddNode(new PathNode("", 307, 197, "", null));
pathGrid.AddNode(new PathNode("", 284, 207, "", null));
pathGrid.AddNode(new PathNode("", 268, 207, "", null));
pathGrid.AddNode(new PathNode("", 252, 207, "", null));
pathGrid.AddNode(new PathNode("", 229, 197, "", null));
pathGrid.AddNode(new PathNode("", 201, 187, "", null));
pathGrid.AddNode(new PathNode("", 197, 117, "", null));
pathGrid.AddNode(new PathNode("", 172, 117, "", null));
pathGrid.AddNode(new PathNode("", 147, 117, "", null));
pathGrid.AddNode(new PathNode("", 126, 117, "", null));
pathGrid.AddNode(new PathNode("", 100, 117, "", null));
pathGrid.AddNode(new PathNode("", 78, 117, "", null));
pathGrid.AddNode(new PathNode("", 57, 117, "", null));
pathGrid.AddNode(new PathNode("", -3, 117, "", null));
pathGrid.AddNode(new PathNode("", 78, 205, "", null));
pathGrid.AddNode(new PathNode("", -3, 205, "", null));
pathGrid.AddNode(new PathNode("", 94, 205, "", null));
pathGrid.AddNode(new PathNode("", 111, 195, "", null));
pathGrid.AddNode(new PathNode("", 126, 187, "", null));
pathGrid.AddNode(new PathNode("", 149, 187, "", null));
pathGrid.AddNode(new PathNode("", 173, 187, "", null));
pathGrid.AddNode(new PathNode("", 554, 103, "", null));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[1], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[3], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[8], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[6], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[10], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[11], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[5], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[11], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[15], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[10], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[15], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[21], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[23], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[35], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[32], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[33], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[34], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[8], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[8], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[9], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[18], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[18], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[6], PathBind.STATIC, PathBind.CLOUDDOWN));
Handler_WorldItems.AddGlass(new Point((330 / 30), (100 / 30)), new Point((330 / 30), (140 / 30)));
Handler_WorldItems.AddGlass(new Point((205 / 30), (122 / 30)), new Point((205 / 30), (84 / 30)));
rope1 = Handler_WorldItems.AddHangingLamp(new Point(77, 37), 25);
rope2 = Handler_WorldItems.AddHangingLamp(new Point(108, 37), 25);
rope3 = Handler_WorldItems.AddHangingLamp(new Point(140, 37), 25);
rope4 = Handler_WorldItems.AddHangingLamp(new Point(172, 37), 25);
rope5 = Handler_WorldItems.AddHangingLamp(new Point(466, 47), 20);
rope6 = Handler_WorldItems.AddHangingLamp(new Point(498, 47), 20);
rope7 = Handler_WorldItems.AddHangingLamp(new Point(531, 47), 20);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp1, lamp1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp2, lamp2.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp3, lamp3.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp4, lamp4.GetPosition(), 0, 0);
MapStart = function ():void{
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
};
MapUpdate = function (_arg1:Number):void{
rope1.UpdateMC();
rope2.UpdateMC();
rope3.UpdateMC();
rope4.UpdateMC();
rope5.UpdateMC();
rope6.UpdateMC();
rope7.UpdateMC();
};
}
private function GenerateMapTestingFloor():void{
var stairL:b2Body;
var stairR:b2Body;
var hatch_left:b2Body;
var hatch_right:b2Body;
var rope1:Rope;
var rope2:Rope;
var rope3:Rope;
var rope4:Rope;
var rope5:Rope;
var rope6:Rope;
var rope7:Rope;
var layer_mc:MovieClip;
var btn_01:b2Body;
var btn_02:b2Body;
mapArea = new Rectangle(3.5, -62, 660, 494);
playerSpawns = new Array(new Point(297, 204), new Point(345, 205), new Point(298, 158), new Point(344, 159), new Point(213, 221), new Point(426, 221), new Point(544, 244), new Point(94, 243), new Point(83, 177), new Point(554, 179), new Point(469, 135), new Point(169, 136), new Point(501, 178), new Point(138, 178));
weaponSpawns = new Array(new WeaponSpawnData(169, 140, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(320, 163, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(469, 140, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(543, 224, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(94, 224, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (90 / 30), (42.5 / 30), 0, (178 / 30), (83 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (320.5 / 30), (42 / 30), 0, (149 / 30), (82 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (592 / 30), (42 / 30), 0, (260 / 30), (82 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (212 / 30), (-14 / 30), 0, (139 / 30), (38 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (428 / 30), (-13 / 30), 0, (123 / 30), (35 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (663 / 30), (137 / 30), 0, (118 / 30), (108 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (683 / 30), (221 / 30), 0, (78 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (587.5 / 30), (263 / 30), 0, (269 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (0.5 / 30), (137.5 / 30), 0, (71 / 30), (107 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (72.5 / 30), (263 / 30), 0, (232 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (-24 / 30), (221 / 30), 0, (39 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (320 / 30), (243.5 / 30), 0, (150 / 30), (63 / 30), new Array("NONE"));
stairL = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (217 / 30), (254 / 30), 0, new Array([(-29 / 30), (-3 / 30)], [(23 / 30), (-42 / 30)], [(28 / 30), (-42 / 30)], [(28 / 30), (21 / 30)], [(-29 / 30), (21 / 30)]), new Array("NONE"));
stairL.GetUserData().tiltValue = -2;
stairR = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (422 / 30), (252 / 30), 0, new Array([(-22 / 30), (-40 / 30)], [(31 / 30), (-1 / 30)], [(31 / 30), (23 / 30)], [(-27 / 30), (23 / 30)], [(-27 / 30), (-40 / 30)]), new Array("NONE"));
stairR.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (320.5 / 30), (169 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (320.5 / 30), (191 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
hatch_left = Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (212.5 / 30), (75.5 / 30), 0, (67 / 30), (13 / 30), new Array("NONE"));
hatch_right = Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (428.5 / 30), (75.5 / 30), 0, (67 / 30), (13 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (624 / 30), (221 / 30), 0, (40 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (15.5 / 30), (221 / 30), 0, (41 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (137.5 / 30), (148 / 30), 0, (13 / 30), (28 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (500.5 / 30), (148.5 / 30), 0, (13 / 30), (29 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (170 / 30), (146 / 30), 0, (52 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (94.5 / 30), (186 / 30), 0, (117 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (94.5 / 30), (208 / 30), 0, (45 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (94.5 / 30), (230 / 30), 0, (45 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (543.5 / 30), (230 / 30), 0, (45 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (543.5 / 30), (208 / 30), 0, (45 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (545.5 / 30), (186 / 30), 0, (117 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (468 / 30), (146 / 30), 0, (52 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (339 / 30), (300 / 30), 0, (766 / 30), (50 / 30), new Array("NONE"));
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (190 / 30), (62 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (212 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (237 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (229 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (201 / 30), (45 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (410 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (446 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (409 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (445 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (428 / 30), (60 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (61 / 30), (178 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (189 / 30), (137 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (145 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (168 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (78 / 30), (222 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (78 / 30), (200 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (59 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (252 / 30), (205 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (387 / 30), (205 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,NONE", (525 / 30), (221 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL", (581 / 30), (178 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (567 / 30), (178 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE", (482 / 30), (246 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR", (465 / 30), (247 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR_R", (499 / 30), (247 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN,NONE", (154 / 30), (138 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN,NONE", (485 / 30), (138 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (451 / 30), (138 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (519 / 30), (178 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,NONE", (593 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,NONE", (43 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,NONE,CRATE,BARREL", (45 / 30), (178 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,NONE,CRATE", (285 / 30), (183 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,NONE,CRATE", (357 / 30), (183 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (372 / 30), (205 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (267 / 30), (205 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (559 / 30), (200 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (115 / 30), (178 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE_HANGING,NONE,NONE", (215 / 30), (32 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE_HANGING,NONE,NONE", (430 / 30), (41 / 30), 1.5707963267949, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 242, 208, "", null));
pathGrid.AddNode(new PathNode("", 399, 208, "", null));
pathGrid.AddNode(new PathNode("", 379, 208, "", null));
pathGrid.AddNode(new PathNode("", 259, 208, "", null));
pathGrid.AddNode(new PathNode("", 278, 208, "", null));
pathGrid.AddNode(new PathNode("", 361, 208, "", null));
pathGrid.AddNode(new PathNode("", 296, 208, "", null));
pathGrid.AddNode(new PathNode("", 320, 208, "", null));
pathGrid.AddNode(new PathNode("", 343, 208, "", null));
pathGrid.AddNode(new PathNode("", 279, 186, "", null));
pathGrid.AddNode(new PathNode("", 321, 186, "", null));
pathGrid.AddNode(new PathNode("", 362, 186, "", null));
pathGrid.AddNode(new PathNode("", 298, 186, "", null));
pathGrid.AddNode(new PathNode("", 344, 186, "", null));
pathGrid.AddNode(new PathNode("", 280, 164, "", null));
pathGrid.AddNode(new PathNode("", 361, 164, "", null));
pathGrid.AddNode(new PathNode("", 298, 164, "", null));
pathGrid.AddNode(new PathNode("", 320, 164, "", null));
pathGrid.AddNode(new PathNode("", 344, 164, "", null));
pathGrid.AddNode(new PathNode("", 416, 219, "", null));
pathGrid.AddNode(new PathNode("", 455, 247, "", null));
pathGrid.AddNode(new PathNode("", 479, 247, "", null));
pathGrid.AddNode(new PathNode("", 504, 247, "", null));
pathGrid.AddNode(new PathNode("", 526, 247, "", null));
pathGrid.AddNode(new PathNode("", 561, 247, "", null));
pathGrid.AddNode(new PathNode("", 202, 235, "", null));
pathGrid.AddNode(new PathNode("", 184, 247, "", null));
pathGrid.AddNode(new PathNode("", 161, 247, "", null));
pathGrid.AddNode(new PathNode("", 78, 247, "", null));
pathGrid.AddNode(new PathNode("", 111, 247, "", null));
pathGrid.AddNode(new PathNode("", 135.5, 247, "", null));
pathGrid.AddNode(new PathNode("", 58, 247, "", null));
pathGrid.AddNode(new PathNode("", 41, 247, "", null));
pathGrid.AddNode(new PathNode("", 220, 221, "", null));
pathGrid.AddNode(new PathNode("", 436, 233, "", null));
pathGrid.AddNode(new PathNode("", 599, 247, "", null));
pathGrid.AddNode(new PathNode("", 581, 247, "", null));
pathGrid.AddNode(new PathNode("", 544, 247, "", null));
pathGrid.AddNode(new PathNode("", 527, 225, "", null));
pathGrid.AddNode(new PathNode("", 560, 225, "", null));
pathGrid.AddNode(new PathNode("", 543, 225, "", null));
pathGrid.AddNode(new PathNode("", 527, 203, "", null));
pathGrid.AddNode(new PathNode("", 543, 203, "", null));
pathGrid.AddNode(new PathNode("", 560, 203, "", null));
pathGrid.AddNode(new PathNode("", 524, 181, "", null));
pathGrid.AddNode(new PathNode("", 544, 181, "", null));
pathGrid.AddNode(new PathNode("", 562, 181, "", null));
pathGrid.AddNode(new PathNode("", 581, 181, "", null));
pathGrid.AddNode(new PathNode("", 599, 181, "", null));
pathGrid.AddNode(new PathNode("", 501, 181, "", null));
pathGrid.AddNode(new PathNode("", 489, 141, "", null));
pathGrid.AddNode(new PathNode("", 452, 141, "", null));
pathGrid.AddNode(new PathNode("", 469, 141, "", null));
pathGrid.AddNode(new PathNode("", 94, 247, "", null));
pathGrid.AddNode(new PathNode("", 78, 225, "", null));
pathGrid.AddNode(new PathNode("", 94, 225, "", null));
pathGrid.AddNode(new PathNode("", 111, 225, "", null));
pathGrid.AddNode(new PathNode("", 78, 203, "", null));
pathGrid.AddNode(new PathNode("", 94, 203, "", null));
pathGrid.AddNode(new PathNode("", 111, 203, "", null));
pathGrid.AddNode(new PathNode("", 77, 182, "", null));
pathGrid.AddNode(new PathNode("", 94, 182, "", null));
pathGrid.AddNode(new PathNode("", 112, 182, "", null));
pathGrid.AddNode(new PathNode("", 138, 182, "", null));
pathGrid.AddNode(new PathNode("", 58, 182, "", null));
pathGrid.AddNode(new PathNode("", 40, 182, "", null));
pathGrid.AddNode(new PathNode("", 150, 141, "", null));
pathGrid.AddNode(new PathNode("", 190, 141, "", null));
pathGrid.AddNode(new PathNode("", 169, 141, "", null));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[11], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[13], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[10], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[12], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[9], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[5], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[8], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[7], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[6], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[4], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[0], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[1], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[11], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[9], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[13], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[10], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[12], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[9], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[12], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[10], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[13], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[11], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[11], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[13], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[10], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[12], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[9], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[14], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[16], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[17], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[18], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[15], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[14], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[15], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[39], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[40], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[38], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[49], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[48], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[52], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[50], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[52], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[51], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[49], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[50], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[44], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[1], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[44], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[45], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[46], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[43], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[42], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[41], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[45], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[44], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[45], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[46], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[42], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[41], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[42], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[43], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[40], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[39], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[40], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[38], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[43], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[42], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[41], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[38], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[40], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[39], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[24], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[37], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[23], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[34], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[65], pathGrid.Nodes[64], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[64], pathGrid.Nodes[60], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[61], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[62], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[63], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[62], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[61], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[60], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[64], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[64], pathGrid.Nodes[65], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[58], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[59], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[58], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[57], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[55], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[56], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[55], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[54], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[53], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[53], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[54], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[55], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[56], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[59], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[58], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[57], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[60], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[61], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[62], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[59], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[58], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[57], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[54], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[55], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[56], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[29], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[53], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[28], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[39], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[38], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[56], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[54], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[55], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[54], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[55], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[56], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[58], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[57], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[58], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[59], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[61], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[60], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[61], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[62], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[30], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[26], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[67], pathGrid.Nodes[68], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[68], pathGrid.Nodes[66], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[66], pathGrid.Nodes[68], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[68], pathGrid.Nodes[67], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[66], pathGrid.Nodes[62], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[67], pathGrid.Nodes[0], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[66], pathGrid.Nodes[63], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[66], PathBind.STATIC, PathBind.LADDER));
rope1 = Handler_WorldItems.AddHangingLamp(new Point(107, 83), 30);
rope2 = Handler_WorldItems.AddHangingLamp(new Point(171, 83), 30);
rope3 = Handler_WorldItems.AddHangingLamp(new Point(264, 83), 30);
rope4 = Handler_WorldItems.AddHangingLamp(new Point(319, 83), 30);
rope5 = Handler_WorldItems.AddHangingLamp(new Point(375, 83), 30);
rope6 = Handler_WorldItems.AddHangingLamp(new Point(533, 83), 30);
rope7 = Handler_WorldItems.AddHangingLamp(new Point(469, 83), 30);
layer_mc = MovieClip(_dynamic_mc.getChildByName("OBJECTS"));
layer_mc.addChild(rope1.MC);
layer_mc.addChild(rope2.MC);
layer_mc.addChild(rope3.MC);
layer_mc.addChild(rope4.MC);
layer_mc.addChild(rope5.MC);
layer_mc.addChild(rope6.MC);
layer_mc.addChild(rope7.MC);
btn_01 = Handler_WorldItems.AddBox("BUTTON_01", (285 / 30), (155.5 / 30), 0, new b2Vec2(), 0);
btn_01.ForceSleep();
btn_01.GetUserData().buttonData.OnActivationSound = "NOAMMO_LIGHT";
btn_01.GetUserData().buttonData.OnActivation = function ():void{
m_world.DestroyBody(hatch_left);
GetLevelMC("btn_left").gotoAndStop(2);
btn_01.GetUserData().buttonData.Enabled = false;
};
btn_02 = Handler_WorldItems.AddBox("BUTTON_01", (355 / 30), (155.5 / 30), 0, new b2Vec2(), 0);
btn_02.ForceSleep();
btn_02.GetUserData().buttonData.OnActivationSound = "NOAMMO_LIGHT";
btn_02.GetUserData().buttonData.OnActivation = function ():void{
m_world.DestroyBody(hatch_right);
GetLevelMC("btn_right").gotoAndStop(2);
btn_02.GetUserData().buttonData.Enabled = false;
};
MapStart = function ():void{
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
mapGraphic.AddMC(GetLevelMC("fan_4"));
};
MapUpdate = function (_arg1:Number):void{
rope1.UpdateMC();
rope2.UpdateMC();
rope3.UpdateMC();
rope4.UpdateMC();
rope5.UpdateMC();
rope6.UpdateMC();
rope7.UpdateMC();
};
}
public function GetLevelMC(_arg1:String):MovieClip{
var _local2:MovieClip;
_local2 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName(_arg1));
return (_local2);
}
private function GenerateMapTutorial():void{
var instructions:MovieClip;
var t_1_logic:MapLogic;
var t_1_initialized:Boolean;
var t_1_moved_right:Boolean;
var t_1_moved_left:Boolean;
var t_1_p_prev_x:Number;
var t_2_logic:MapLogic;
var t_2_jumped:Boolean;
var t_2_crouched:Boolean;
var t_3_logic:MapLogic;
var t_4_logic:MapLogic;
var t_4_initialized:Boolean;
var t_4_moved_right:Boolean;
var t_4_moved_left:Boolean;
var t_4_p_prev_x:Number;
var t_5_logic:MapLogic;
var wpnPosX:Number;
var tutorial_weapon:b2Body;
var t_6_logic:MapLogic;
var t_8_targets:Array;
var t_7_logic:MapLogic;
var t_8_logic:MapLogic;
var t_10_targets:Array;
var t_9_logic:MapLogic;
var t_10_logic:MapLogic;
var t_12_targets:Array;
var t_11_logic:MapLogic;
var t_12_logic:MapLogic;
var tutorial_crate:b2Body;
var t_13_logic:MapLogic;
var t_14_logic:MapLogic;
var t_15_logic:MapLogic;
mapArea = new Rectangle(1, -25, 347, 260);
playerSpawns = new Array(new Point(169, 198));
weaponSpawns = new Array();
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (-34 / 30), (105 / 30), 0, (110 / 30), (358 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (196 / 30), (-35 / 30), 0, (452 / 30), (104 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (183.5 / 30), (254 / 30), 0, (469 / 30), (92 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (389 / 30), (103 / 30), 0, (122 / 30), (381 / 30), new Array("NONE"));
pathGrid.AddNode(new PathNode("", 26, 204, "", null));
pathGrid.AddNode(new PathNode("", 60, 204, "", null));
pathGrid.AddNode(new PathNode("", 94, 204, "", null));
pathGrid.AddNode(new PathNode("", 129, 204, "", null));
pathGrid.AddNode(new PathNode("", 163, 204, "", null));
pathGrid.AddNode(new PathNode("", 198, 204, "", null));
pathGrid.AddNode(new PathNode("", 231, 204, "", null));
pathGrid.AddNode(new PathNode("", 266, 204, "", null));
pathGrid.AddNode(new PathNode("", 298, 204, "", null));
pathGrid.AddNode(new PathNode("", 323, 204, "", null));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
MapOver = false;
instructions = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("INSTRUCTIONS"));
t_1_logic = new MapLogic();
t_1_logic.RefireInterval = 40;
t_1_initialized = false;
t_1_moved_right = false;
t_1_moved_left = false;
t_1_logic.OnUpdate = function ():void{
if (!t_1_initialized){
_Handler_Players.Players[0].State.CurrentRangeWeapon = null;
_Handler_Players.Players[0].State.CurrentThrowableWeapon.Ammo = 0;
_Handler_Players.Players[0].UpdateGUI();
t_1_initialized = true;
} else {
if ((t_1_p_prev_x - 1) > _Handler_Players.Players[0].MidPosX()){
t_1_moved_left = true;
} else {
if ((t_1_p_prev_x + 1) < _Handler_Players.Players[0].MidPosX()){
t_1_moved_right = true;
};
};
if (((t_1_moved_left) && (t_1_moved_right))){
t_1_logic.Stop();
instructions.gotoAndStop(2);
t_2_logic.Start();
};
};
t_1_p_prev_x = _Handler_Players.Players[0].MidPosX();
};
t_1_logic.Start();
t_2_logic = new MapLogic();
t_2_logic.RefireInterval = 40;
t_2_jumped = false;
t_2_crouched = false;
t_2_logic.OnUpdate = function ():void{
if (_Handler_Players.Players[0].State.Jumping){
t_2_jumped = true;
};
if (_Handler_Players.Players[0].State.Kneeling){
t_2_crouched = true;
};
if (((t_2_jumped) && (t_2_crouched))){
t_2_logic.Stop();
instructions.gotoAndStop(3);
t_3_logic.Start();
};
};
t_3_logic = new MapLogic();
t_3_logic.RefireInterval = 80;
t_3_logic.OnUpdate = function ():void{
if (_Handler_Players.Players[0].State.Rolling){
t_3_logic.Stop();
instructions.gotoAndStop(4);
t_4_logic.Start();
};
};
t_4_logic = new MapLogic();
t_4_logic.RefireInterval = 40;
t_4_initialized = false;
t_4_moved_right = false;
t_4_moved_left = false;
t_4_logic.OnUpdate = function ():void{
if (!t_4_initialized){
t_4_initialized = true;
} else {
if (_Handler_Players.Players[0].State.Sprinting){
if ((t_4_p_prev_x - 0.5) > _Handler_Players.Players[0].MidPosX()){
t_4_moved_left = true;
} else {
if ((t_4_p_prev_x + 0.5) < _Handler_Players.Players[0].MidPosX()){
t_4_moved_right = true;
};
};
if (((t_4_moved_left) && (t_4_moved_right))){
t_4_logic.Stop();
instructions.gotoAndStop(5);
t_5_logic.Start();
};
};
};
t_4_p_prev_x = _Handler_Players.Players[0].MidPosX();
};
t_5_logic = new MapLogic();
t_5_logic.RefireInterval = 80;
t_5_logic.OnUpdate = function ():void{
if (_Handler_Players.Players[0].State.Diving){
t_5_logic.Stop();
instructions.gotoAndStop(6);
if (_Handler_Players.Players[0].MidPosX() < 170){
playerSpawns = new Array(new Point((_Handler_Players.Players[0].MidPosX() + 60), 198));
} else {
playerSpawns = new Array(new Point((_Handler_Players.Players[0].MidPosX() - 60), 198));
};
_Handler_Players.AddBot(3, 0, 1);
_Handler_Players.Players[1].Stop();
t_6_logic.Start();
};
};
t_6_logic = new MapLogic();
t_6_logic.OnUpdate = function ():void{
if (_Handler_Players.Players[1].State.HP <= 0){
t_6_logic.Stop();
if (_Handler_Players.Players[0].MidPosX() < 170){
wpnPosX = (_Handler_Players.Players[0].MidPosX() + 60);
} else {
wpnPosX = (_Handler_Players.Players[0].MidPosX() - 60);
};
tutorial_weapon = Handler_WorldItems.AddPolygon("wpn_pistol", (wpnPosX / 30), (203 / 30), 0, new b2Vec2(), 0);
tutorial_weapon.GetUserData().weaponData = _Handler_Weapons.Pistol;
tutorial_weapon.GetUserData().weaponData.InfiniteAmmo = true;
tutorial_weapon.PutToSleep();
instructions.gotoAndStop(7);
t_7_logic.Start();
};
};
t_8_targets = new Array();
t_7_logic = new MapLogic();
t_7_logic.OnUpdate = function ():void{
var _local1:MovieClip;
if (tutorial_weapon.GetUserData().destroyed == true){
t_7_logic.Stop();
instructions.gotoAndStop(8);
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_1"));
t_8_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_2"));
t_8_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_3"));
t_8_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
t_8_targets[0].PutToSleep();
t_8_targets[1].PutToSleep();
t_8_targets[2].PutToSleep();
t_8_logic.Start();
};
};
t_8_logic = new MapLogic();
t_8_logic.OnUpdate = function ():void{
var _local1:int;
_local1 = 0;
while (_local1 < t_8_targets.length) {
if (t_8_targets[_local1].GetUserData().destroyed != true){
return;
};
_local1++;
};
t_8_logic.Stop();
if (_Handler_Players.Players[0].MidPosX() < 170){
wpnPosX = (_Handler_Players.Players[0].MidPosX() + 60);
} else {
wpnPosX = (_Handler_Players.Players[0].MidPosX() - 60);
};
tutorial_weapon = Handler_WorldItems.AddPolygon("wpn_rifle", (wpnPosX / 30), (203 / 30), 0, new b2Vec2(), 0);
tutorial_weapon.GetUserData().weaponData = _Handler_Weapons.Rifle;
tutorial_weapon.GetUserData().weaponData.InfiniteAmmo = true;
tutorial_weapon.PutToSleep();
instructions.gotoAndStop(9);
t_9_logic.Start();
};
t_10_targets = new Array();
t_9_logic = new MapLogic();
t_9_logic.OnUpdate = function ():void{
var _local1:MovieClip;
if (tutorial_weapon.GetUserData().destroyed == true){
t_9_logic.Stop();
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_1"));
t_10_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_3"));
t_10_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_4"));
t_10_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET_R", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("TARGET_5"));
t_10_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET_R", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
t_10_targets[0].PutToSleep();
t_10_targets[1].PutToSleep();
t_10_targets[2].PutToSleep();
t_10_targets[3].PutToSleep();
instructions.gotoAndStop(10);
t_10_logic.Start();
};
};
t_10_logic = new MapLogic();
t_10_logic.OnUpdate = function ():void{
var _local1:int;
_local1 = 0;
while (_local1 < t_10_targets.length) {
if (t_10_targets[_local1].GetUserData().destroyed != true){
return;
};
_local1++;
};
t_10_logic.Stop();
if (_Handler_Players.Players[0].MidPosX() < 170){
wpnPosX = (170 + 40);
} else {
wpnPosX = (170 - 40);
};
tutorial_weapon = Handler_WorldItems.AddPolygon("wpn_grenades", (wpnPosX / 30), (203 / 30), 0, new b2Vec2(), 0);
tutorial_weapon.GetUserData().weaponData = _Handler_Weapons.Grenades;
tutorial_weapon.GetUserData().weaponData.InfiniteAmmo = true;
tutorial_weapon.PutToSleep();
instructions.gotoAndStop(11);
t_11_logic.Start();
};
t_12_targets = new Array();
t_11_logic = new MapLogic();
t_11_logic.RefireInterval = 40;
t_11_logic.OnUpdate = function ():void{
var _local1:MovieClip;
if (((!((_Handler_Players.Players[0].State.CurrentRangeWeapon == null))) && (!(_Handler_Players.Players[0].State.Aiming)))){
_Handler_Players.Players[0].State.CurrentRangeWeapon = null;
_Handler_Players.Players[0].UpdateGUI();
};
if (tutorial_weapon.GetUserData().destroyed == true){
t_11_logic.Stop();
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("GRENADE_1"));
t_12_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("GRENADE_2"));
t_12_targets.push(Handler_WorldItems.AddObject("TUTORIAL_TARGET_R", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0));
t_12_targets[0].PutToSleep();
t_12_targets[1].PutToSleep();
instructions.gotoAndStop(12);
t_12_logic.Start();
};
};
t_12_logic = new MapLogic();
t_12_logic.OnUpdate = function ():void{
var _local1:int;
var _local2:MovieClip;
_local1 = 0;
while (_local1 < t_12_targets.length) {
if (t_12_targets[_local1].GetUserData().destroyed != true){
return;
};
_local1++;
};
t_12_logic.Stop();
_local2 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("CRATE"));
tutorial_crate = Handler_WorldItems.AddObject("CRATE", (_local2.x / 30), (_local2.y / 30), 0, new b2Vec2(), 0);
instructions.gotoAndStop(13);
t_13_logic.Start();
};
t_13_logic = new MapLogic();
t_13_logic.RefireInterval = 40;
t_13_logic.OnUpdate = function ():void{
var _local1:MovieClip;
if ((((_Handler_Players.Players[0].State.CurrentThrowableWeapon.Ammo > 0)) && (!(_Handler_Players.Players[0].State.Aiming)))){
_Handler_Players.Players[0].State.CurrentThrowableWeapon.InfiniteAmmo = false;
_Handler_Players.Players[0].State.CurrentThrowableWeapon.Ammo = 0;
_Handler_Players.Players[0].UpdateGUI();
};
if (tutorial_crate.GetUserData().destroyed){
_local1 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("CRATE"));
tutorial_crate = Handler_WorldItems.AddObject("CRATE", (_local1.x / 30), (_local1.y / 30), 0, new b2Vec2(), 0);
};
if (_Handler_Players.Players[0].State.TakingCover){
t_13_logic.Stop();
if (_Handler_Players.Players[0].MidPosX() < 170){
wpnPosX = (_Handler_Players.Players[0].MidPosX() + 65);
} else {
wpnPosX = (_Handler_Players.Players[0].MidPosX() - 65);
};
tutorial_weapon = Handler_WorldItems.AddPolygon("wpn_rifle", ((wpnPosX - 15) / 30), (203 / 30), 0, new b2Vec2(), 0);
tutorial_weapon.GetUserData().weaponData = _Handler_Weapons.Rifle;
tutorial_weapon.PutToSleep();
tutorial_weapon = Handler_WorldItems.AddPolygon("WPN_SLOWMO_10", ((wpnPosX + 15) / 30), (203 / 30), 0, new b2Vec2(), 0);
tutorial_weapon.GetUserData().weaponData = _Handler_Weapons.Slowmo10;
tutorial_weapon.PutToSleep();
instructions.gotoAndStop(14);
t_14_logic.Start();
};
};
t_14_logic = new MapLogic();
t_14_logic.OnUpdate = function ():void{
if (tutorial_weapon.GetUserData().destroyed == true){
t_14_logic.Stop();
instructions.gotoAndStop(15);
t_15_logic.Start();
};
};
t_15_logic = new MapLogic();
t_15_logic.OnUpdate = function ():void{
if (_Handler_Players.Players[0].State.CurrentPowerupWeapon == null){
t_15_logic.Stop();
instructions.gotoAndStop(16);
MapOver = true;
};
};
MapUpdate = function (_arg1:Number):void{
var _local2:MovieClip;
if (_Handler_Players.Players[0].State.HP <= 0){
_local2 = MovieClip(MovieClip(_dynamic_mc.getChildByName("LEVEL")).getChildByName("REVIVE"));
_Handler_Players.Players[0].Revive(_local2.x, _local2.y);
};
};
MapEnd = function ():void{
t_1_logic.Stop();
t_2_logic.Stop();
t_3_logic.Stop();
t_4_logic.Stop();
t_5_logic.Stop();
t_6_logic.Stop();
t_7_logic.Stop();
t_8_logic.Stop();
t_9_logic.Stop();
t_10_logic.Stop();
t_11_logic.Stop();
t_12_logic.Stop();
t_13_logic.Stop();
t_14_logic.Stop();
t_15_logic.Stop();
};
}
public function UpdateWorldObjectList():void{
m_world.UpdateObjectLists();
}
public function UpdateMCs(_arg1:MovieClip, _arg2:MovieClip, _arg3:MovieClip):void{
_static_mc = _arg1;
_dynamic_mc = _arg2;
Handler_WorldItems.UpdateMCs(_static_mc, _dynamic_mc, _arg3);
}
public function UpdatePathGrid():void{
pathGrid.UpdatePathGrid();
}
public function Stop():void{
pathGrid.Stop();
MapEnd();
}
private function GenerateMapSurvival01():void{
var stairL:b2Body;
var stairR:b2Body;
var hatch_left:b2Body;
var hatch_right:b2Body;
var rope1:Rope;
var rope2:Rope;
var rope3:Rope;
var rope4:Rope;
var rope5:Rope;
var rope6:Rope;
var rope7:Rope;
var layer_mc:MovieClip;
var btn_01:b2Body;
var btn_02:b2Body;
var timerDelay:int;
var survival_timer_mc:MovieClip;
var secondParts:Number;
var totalSeconds:int;
var nextBot:Number;
var nextBotTime:int;
var botsToSpawn:int;
var botWave:int;
mapArea = new Rectangle(14.5, -54.5, 612, 459);
playerSpawns = new Array(new Point(297, 204), new Point(345, 205));
weaponSpawns = new Array(new WeaponSpawnData(297, 185, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(344, 185, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
portals = new Array(new PortalData(new Rectangle(275, 280, 40, 60), new Rectangle(31, 191, 5, 60), new Point(1, 0), false, false), new PortalData(new Rectangle(324, 280, 40, 60), new Rectangle(604, 191, 5, 60), new Point(-1, 0), false, false));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (90 / 30), (42.5 / 30), 0, (178 / 30), (83 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (320.5 / 30), (42 / 30), 0, (149 / 30), (82 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (592 / 30), (42 / 30), 0, (260 / 30), (82 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (212 / 30), (-14 / 30), 0, (139 / 30), (38 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (428 / 30), (-13 / 30), 0, (123 / 30), (35 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (663 / 30), (137 / 30), 0, (118 / 30), (108 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (683 / 30), (221 / 30), 0, (78 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (587.5 / 30), (263 / 30), 0, (269 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (0.5 / 30), (137.5 / 30), 0, (71 / 30), (107 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (72.5 / 30), (263 / 30), 0, (232 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (-24 / 30), (221 / 30), 0, (39 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (320 / 30), (243.5 / 30), 0, (150 / 30), (63 / 30), new Array("NONE"));
stairL = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (217 / 30), (254 / 30), 0, new Array([(-29 / 30), (-3 / 30)], [(23 / 30), (-42 / 30)], [(28 / 30), (-42 / 30)], [(28 / 30), (21 / 30)], [(-29 / 30), (21 / 30)]), new Array("NONE"));
stairL.GetUserData().tiltValue = -2;
stairR = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (422 / 30), (252 / 30), 0, new Array([(-22 / 30), (-40 / 30)], [(31 / 30), (-1 / 30)], [(31 / 30), (23 / 30)], [(-27 / 30), (23 / 30)], [(-27 / 30), (-40 / 30)]), new Array("NONE"));
stairR.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (320 / 30), (361.5 / 30), 0, (570 / 30), (43 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (319.5 / 30), (307.5 / 30), 0, (9 / 30), (65 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (320.5 / 30), (169 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (320.5 / 30), (191 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
hatch_left = Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (212.5 / 30), (75.5 / 30), 0, (67 / 30), (13 / 30), new Array("NONE"));
hatch_right = Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (428.5 / 30), (75.5 / 30), 0, (67 / 30), (13 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (624 / 30), (221 / 30), 0, (40 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (15.5 / 30), (221 / 30), 0, (41 / 30), (60 / 30), new Array("NONE"));
Handler_WorldItems.AddObject("BARREL", (383 / 30), (205 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL", (258 / 30), (205 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (549 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (534 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (87 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (102 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL", (362 / 30), (183 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL", (279 / 30), (183 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (321 / 30), (161 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (190 / 30), (62 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (212 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (237 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (229 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (201 / 30), (45 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (410 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (446 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (409 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN,BARREL", (445 / 30), (61 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (428 / 30), (60 / 30), 0, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 242, 208, "", null));
pathGrid.AddNode(new PathNode("", 399, 208, "", null));
pathGrid.AddNode(new PathNode("", 379, 208, "", null));
pathGrid.AddNode(new PathNode("", 259, 208, "", null));
pathGrid.AddNode(new PathNode("", 278, 208, "", null));
pathGrid.AddNode(new PathNode("", 361, 208, "", null));
pathGrid.AddNode(new PathNode("", 296, 208, "", null));
pathGrid.AddNode(new PathNode("", 320, 208, "", null));
pathGrid.AddNode(new PathNode("", 343, 208, "", null));
pathGrid.AddNode(new PathNode("", 279, 186, "", null));
pathGrid.AddNode(new PathNode("", 321, 186, "", null));
pathGrid.AddNode(new PathNode("", 362, 186, "", null));
pathGrid.AddNode(new PathNode("", 298, 186, "", null));
pathGrid.AddNode(new PathNode("", 344, 186, "", null));
pathGrid.AddNode(new PathNode("", 280, 164, "", null));
pathGrid.AddNode(new PathNode("", 361, 164, "", null));
pathGrid.AddNode(new PathNode("", 298, 164, "", null));
pathGrid.AddNode(new PathNode("", 320, 164, "", null));
pathGrid.AddNode(new PathNode("", 344, 164, "", null));
pathGrid.AddNode(new PathNode("", 416, 219, "", null));
pathGrid.AddNode(new PathNode("", 455, 247, "", null));
pathGrid.AddNode(new PathNode("", 479, 247, "", null));
pathGrid.AddNode(new PathNode("", 505, 247, "", null));
pathGrid.AddNode(new PathNode("", 530, 247, "", null));
pathGrid.AddNode(new PathNode("", 554, 247, "", null));
pathGrid.AddNode(new PathNode("", 202, 235, "", null));
pathGrid.AddNode(new PathNode("", 184, 247, "", null));
pathGrid.AddNode(new PathNode("", 159, 247, "", null));
pathGrid.AddNode(new PathNode("", 85, 247, "", null));
pathGrid.AddNode(new PathNode("", 108, 247, "", null));
pathGrid.AddNode(new PathNode("", 131.5, 247, "", null));
pathGrid.AddNode(new PathNode("", 63, 247, "", null));
pathGrid.AddNode(new PathNode("", 41, 247, "", null));
pathGrid.AddNode(new PathNode("", 220, 221, "", null));
pathGrid.AddNode(new PathNode("", 436, 233, "", null));
pathGrid.AddNode(new PathNode("", 599, 247, "", null));
pathGrid.AddNode(new PathNode("", 578, 247, "", null));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[11], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[13], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[10], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[12], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[9], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[5], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[8], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[7], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[6], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[4], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[0], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[1], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[11], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[9], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[13], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[10], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[12], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[9], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[12], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[10], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[13], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[11], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[11], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[13], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[10], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[12], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[9], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[14], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[16], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[17], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[18], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[15], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[14], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[15], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
rope1 = Handler_WorldItems.AddHangingLamp(new Point(107, 83), 40);
rope2 = Handler_WorldItems.AddHangingLamp(new Point(171, 83), 40);
rope3 = Handler_WorldItems.AddHangingLamp(new Point(264, 83), 30);
rope4 = Handler_WorldItems.AddHangingLamp(new Point(319, 83), 30);
rope5 = Handler_WorldItems.AddHangingLamp(new Point(375, 83), 30);
rope6 = Handler_WorldItems.AddHangingLamp(new Point(533, 83), 40);
rope7 = Handler_WorldItems.AddHangingLamp(new Point(469, 83), 40);
layer_mc = MovieClip(_dynamic_mc.getChildByName("OBJECTS"));
layer_mc.addChild(rope1.MC);
layer_mc.addChild(rope2.MC);
layer_mc.addChild(rope3.MC);
layer_mc.addChild(rope4.MC);
layer_mc.addChild(rope5.MC);
layer_mc.addChild(rope6.MC);
layer_mc.addChild(rope7.MC);
MapOver = false;
SurvivalTime.wave = 0;
SurvivalTime.totalMins = 0;
SurvivalTime.totalSecs = 0;
SurvivalTime.totalParts = 0;
btn_01 = Handler_WorldItems.AddBox("BUTTON_01", (285 / 30), (155.5 / 30), 0, new b2Vec2(), 0);
btn_01.ForceSleep();
btn_01.GetUserData().buttonData.OnActivationSound = "NOAMMO_LIGHT";
btn_01.GetUserData().buttonData.OnActivation = function ():void{
m_world.DestroyBody(hatch_left);
GetLevelMC("btn_left").gotoAndStop(2);
btn_01.GetUserData().buttonData.Enabled = false;
};
btn_02 = Handler_WorldItems.AddBox("BUTTON_01", (355 / 30), (155.5 / 30), 0, new b2Vec2(), 0);
btn_02.ForceSleep();
btn_02.GetUserData().buttonData.OnActivationSound = "NOAMMO_LIGHT";
btn_02.GetUserData().buttonData.OnActivation = function ():void{
m_world.DestroyBody(hatch_right);
GetLevelMC("btn_right").gotoAndStop(2);
btn_02.GetUserData().buttonData.Enabled = false;
};
timerDelay = 4;
MapEnd = function ():void{
survival_timer_mc.parent.removeChild(survival_timer_mc);
};
MapStart = function ():void{
var _local1:MovieClip;
_local1 = MovieClip(_dynamic_mc.parent);
_local1 = MovieClip(_local1.parent);
survival_timer_mc = new survival_timer();
_local1.addChild(survival_timer_mc);
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
mapGraphic.AddMC(GetLevelMC("fan_4"));
};
secondParts = 0;
totalSeconds = 0;
nextBot = (24 * 2);
nextBotTime = (24 * 20);
botsToSpawn = 0;
botWave = 0;
MapUpdate = function (_arg1:Number):void{
var _local2:Boolean;
var _local3:Boolean;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:String;
var _local10:String;
var _local11:String;
var _local12:Player;
rope1.UpdateMC();
rope2.UpdateMC();
rope3.UpdateMC();
rope4.UpdateMC();
rope5.UpdateMC();
rope6.UpdateMC();
rope7.UpdateMC();
_local2 = false;
_local3 = true;
_local4 = _Handler_Players.Players.length;
if (_local4 > 2){
_local4 = 2;
};
_local5 = 0;
while (_local5 < _local4) {
if (_Handler_Players.Players[_local5].Team == 1){
if (_Handler_Players.Players[_local5].State.HP > 0){
_local2 = true;
} else {
if (!_Handler_Players.Players[_local5].CanDespawn){
_local3 = false;
};
};
};
_local5++;
};
if (!_local2){
if (_local3){
MapOver = true;
};
} else {
secondParts = (secondParts + _arg1);
if (secondParts >= 24){
secondParts = (secondParts - 24);
totalSeconds++;
};
if (timerDelay > 0){
timerDelay--;
} else {
_local6 = Math.floor((totalSeconds / 60));
_local7 = (totalSeconds % 60);
_local8 = ((secondParts / 24) * 100);
_local9 = (_local6 + "");
_local10 = (_local7 + "");
_local11 = (_local8 + "");
if (_local6 < 10){
_local9 = ("0" + _local9);
};
if (_local7 < 10){
_local10 = ("0" + _local10);
};
if (_local8 < 10){
_local11 = ("0" + _local11);
};
SurvivalTime.totalMins = _local6;
SurvivalTime.totalSecs = _local7;
SurvivalTime.totalParts = _local8;
survival_timer_mc.time_txt.text = ((((_local9 + ":") + _local10) + ":") + _local11);
};
nextBot = (nextBot - _arg1);
};
if (nextBot <= 0){
botsToSpawn = 2;
nextBot = nextBotTime;
botWave = (botWave + 1);
SurvivalTime.wave = botWave;
if (botWave < 10){
survival_timer_mc.wave_txt.text = ("0" + botWave);
} else {
survival_timer_mc.wave_txt.text = ("" + botWave);
};
};
if (botsToSpawn > 0){
botsToSpawn = (botsToSpawn - 1);
if (botsToSpawn == 1){
playerSpawns = new Array(new Point(47, 160));
} else {
playerSpawns = new Array(new Point(586, 160));
};
if (botWave < 10){
_local12 = _Handler_Players.AddBot(3, 2, 1);
} else {
if (botWave < 20){
_local12 = _Handler_Players.AddBot(3, 2, 2);
} else {
_local12 = _Handler_Players.AddBot(3, 2, 3);
};
};
switch (botWave){
case 1:
_local12.GiveStartItems(null, _Handler_Weapons.Grenades, null, null);
break;
case 2:
_local12.GiveStartItems(_Handler_Weapons.Pistol, _Handler_Weapons.Grenades, null, null);
break;
case 3:
_local12.GiveStartItems(_Handler_Weapons.Uzi, _Handler_Weapons.Grenades, null, null);
break;
case 4:
_local12.GiveStartItems(_Handler_Weapons.Uzi, _Handler_Weapons.Grenades, null, null);
break;
case 5:
_local12.GiveStartItems(_Handler_Weapons.Rifle, _Handler_Weapons.Grenades, null, null);
break;
case 6:
_local12.GiveStartItems(_Handler_Weapons.Shotgun, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 7:
_local12.GiveStartItems(_Handler_Weapons.Rifle, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 8:
_local12.GiveStartItems(_Handler_Weapons.Shotgun, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 9:
_local12.GiveStartItems(_Handler_Weapons.Flamethrower, _Handler_Weapons.Grenades, _Handler_Weapons.Axe, null);
break;
case 10:
_local12.GiveStartItems(null, _Handler_Weapons.Grenades, null, null);
break;
case 11:
_local12.GiveStartItems(_Handler_Weapons.Pistol, _Handler_Weapons.Grenades, null, null);
break;
case 12:
_local12.GiveStartItems(_Handler_Weapons.Uzi, _Handler_Weapons.Grenades, null, null);
break;
case 13:
_local12.GiveStartItems(_Handler_Weapons.Uzi, _Handler_Weapons.Grenades, null, null);
break;
case 14:
_local12.GiveStartItems(_Handler_Weapons.Rifle, _Handler_Weapons.Grenades, null, null);
break;
case 15:
_local12.GiveStartItems(_Handler_Weapons.Shotgun, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 16:
_local12.GiveStartItems(_Handler_Weapons.Rifle, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 17:
_local12.GiveStartItems(_Handler_Weapons.Shotgun, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 18:
_local12.GiveStartItems(_Handler_Weapons.Flamethrower, _Handler_Weapons.Grenades, _Handler_Weapons.Axe, null);
break;
case 19:
_local12.GiveStartItems(_Handler_Weapons.Flamethrower, _Handler_Weapons.Grenades, _Handler_Weapons.Axe, null);
break;
case 20:
_local12.GiveStartItems(null, _Handler_Weapons.Grenades, null, null);
break;
case 21:
_local12.GiveStartItems(_Handler_Weapons.Pistol, _Handler_Weapons.Grenades, null, null);
break;
case 22:
_local12.GiveStartItems(_Handler_Weapons.Uzi, _Handler_Weapons.Grenades, null, null);
break;
case 23:
_local12.GiveStartItems(_Handler_Weapons.Uzi, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 24:
_local12.GiveStartItems(_Handler_Weapons.Rifle, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 25:
_local12.GiveStartItems(_Handler_Weapons.Shotgun, _Handler_Weapons.Grenades, _Handler_Weapons.Machete, null);
break;
case 26:
_local12.GiveStartItems(_Handler_Weapons.Rifle, _Handler_Weapons.Grenades, _Handler_Weapons.Axe, null);
break;
case 27:
_local12.GiveStartItems(_Handler_Weapons.Shotgun, _Handler_Weapons.Grenades, _Handler_Weapons.Axe, null);
break;
case 28:
_local12.GiveStartItems(_Handler_Weapons.Magnum, _Handler_Weapons.Grenades, _Handler_Weapons.Sword, null);
break;
case 29:
_local12.GiveStartItems(_Handler_Weapons.Sniper, _Handler_Weapons.Grenades, _Handler_Weapons.Sword, null);
break;
default:
_local12.GiveStartItems(_Handler_Weapons.Bazooka, _Handler_Weapons.Grenades, _Handler_Weapons.Sword, null);
break;
};
};
_local5 = 0;
while (_local5 < _Handler_Players.Players.length) {
if (((((_Handler_Players.Players[_local5].Bot) && (_Handler_Players.Players[_local5].CanDespawn))) && (!(_Handler_Players.Players[_local5].Ignore)))){
_Handler_Players.Players[_local5].Remove();
};
_local5++;
};
};
}
private function CreateElevator(_arg1:b2Body, _arg2:Number, _arg3:Number):void{
var _local4:b2Body;
var _local5:b2RevoluteJoint;
var _local6:b2Vec2;
var _local7:b2Vec2;
Handler_WorldItems.AddPrismaticJoint(Handler_WorldItems.Ground, _arg1, _arg1.GetPosition(), new b2Vec2(0, 1));
_local4 = Handler_WorldItems.AddCircle("PLATFORM_MOTOR", _arg1.GetPosition().x, (_arg1.GetPosition().y - ((_arg2 / 30) * 2)), 0, new b2Vec2(), 0);
_local4.GetUserData().visible = false;
_local5 = Handler_WorldItems.AddRevoluteMotor(Handler_WorldItems.Ground, _local4, _local4.GetPosition(), _arg3, 9999);
_local6 = _arg1.GetPosition();
_local7 = new b2Vec2(_local4.GetPosition().x, (_local4.GetPosition().y + ((_arg2 / 30) * 0.5)));
Handler_WorldItems.AddDistanceJoint(_arg1, _local4, _local6, _local7);
}
private function GenerateMapHazardous():void{
var stair:b2Body;
var crate_hanging_2:b2Body;
var crate_hanging_1:b2Body;
var lamp1:b2Body;
var lamp2:b2Body;
var lamp3:b2Body;
var lamp4:b2Body;
var lift_small:b2Body;
var lamp5:b2Body;
var lamp6:b2Body;
var lamp7:b2Body;
var lamp8:b2Body;
var crate_hanging_3:b2Body;
var lift_1:b2Body;
var lift_2:b2Body;
var closness:Number;
var holder1:b2Body;
var holder2:b2Body;
var holder3:b2Body;
var ropeh1:Rope;
var ropeh2:Rope;
var ropeh3:Rope;
var layer_mc:MovieClip;
var rope1:Rope;
var rope2:Rope;
var rope3:Rope;
var rope4:Rope;
var rope5:Rope;
var rope6:Rope;
var rope7:Rope;
var rope8:Rope;
var rope9:Rope;
var rope10:Rope;
var nextBubble:int;
mapArea = new Rectangle(0, -50, 620, 466);
playerSpawns = new Array(new Point(402, 290), new Point(378, 290), new Point(320, 191), new Point(248, 123), new Point(326, 116), new Point(430, 168), new Point(558, 168), new Point(495, 168), new Point(104, 281), new Point(49, 114), new Point(157, 112), new Point(107, 215), new Point(159, 216), new Point(244, 191), new Point(388, 180));
weaponSpawns = new Array(new WeaponSpawnData(0x0101, 125, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(320, 195, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(389, 291, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(502, 169, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(137, 217, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(94, 125, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
portals = new Array(new PortalData(new Rectangle(567, 276, 22, 24), new Rectangle(567, 150, 20, 24), new Point(1, 0), true, false), new PortalData(new Rectangle(567, 150, 20, 24), new Rectangle(567, 276, 22, 24), new Point(1, 0), true, false), new PortalData(new Rectangle(15, 226, 20, 24), new Rectangle(15, 106, 20, 24), new Point(-1, 0), true, false), new PortalData(new Rectangle(15, 106, 20, 24), new Rectangle(15, 226, 20, 24), new Point(-1, 0), true, false));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (389.5 / 30), (305 / 30), 0, (73 / 30), (18 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (566 / 30), (307 / 30), 0, (106 / 30), (14 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (492 / 30), (180 / 30), 0, (150 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (592 / 30), (225 / 30), 0, (50 / 30), (102 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (603 / 30), (288 / 30), 0, (28 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (602 / 30), (162 / 30), 0, (30 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (592 / 30), (123.5 / 30), 0, (50 / 30), (53 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (517 / 30), (49 / 30), 0, (200 / 30), (96 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (423.5 / 30), (117.5 / 30), 0, (13 / 30), (41 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (296 / 30), (17.5 / 30), 0, (242 / 30), (33 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (168.5 / 30), (76.5 / 30), 0, (13 / 30), (35 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (88 / 30), (30 / 30), 0, (174 / 30), (58 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (18 / 30), (82.5 / 30), 0, (34 / 30), (47 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (8 / 30), (118 / 30), 0, (14 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (88 / 30), (136 / 30), 0, (174 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (18 / 30), (184 / 30), 0, (34 / 30), (84 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (8 / 30), (238 / 30), 0, (14 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (22 / 30), (282 / 30), 0, (42 / 30), (64 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (126 / 30), (300 / 30), 0, (58 / 30), (28 / 30), new Array("NONE"));
stair = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (66 / 30), (289 / 30), 0, new Array([(-23 / 30), (-39 / 30)], [(-18 / 30), (-39 / 30)], [(31 / 30), (-3 / 30)], [(31 / 30), (24 / 30)], [(-23 / 30), (24 / 30)]), new Array("NONE"));
stair.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (92.5 / 30), (235.5 / 30), -0.785398163397448, (34 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (137.5 / 30), (224 / 30), 0, (69 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (258 / 30), (132 / 30), 0, (66 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (320 / 30), (202 / 30), 0, (70 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (361.5 / 30), (229 / 30), 0, (13 / 30), (81 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (297.5 / 30), (144.5 / 30), 0, (13 / 30), (59 / 30), new Array("LADDER"));
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (528 / 30), (293 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE", (544 / 30), (293 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,CRATE", (537 / 30), (277 / 30), 1.5707963267949, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("CRATE,BARREL", (533 / 30), (293 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (547 / 30), (293 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN", (487 / 30), (293 / 30), 0, new b2Vec2(), 0);
};
if (33 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (123 / 30), (279 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL", (139 / 30), (279 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("BARREL,BARREL_EXPLOSIVE,CRATE,NONE", (134 / 30), (281 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (120 / 30), (281 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (129 / 30), (266 / 30), 0, new b2Vec2(), 0);
};
if (25 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE", (325 / 30), (289 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (343 / 30), (289 / 30), 0, new b2Vec2(), 0);
};
if (40 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE", (61 / 30), (123 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (79 / 30), (123 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (120 / 30), (123 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,FILECAB,BARREL_EXPLOSIVE,BARREL", (139 / 30), (123 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (71 / 30), (108 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,GASCAN", (131 / 30), (108 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL,NONE,CRATE", (97 / 30), (123 / 30), 0, new b2Vec2(), 0);
} else {
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("TABLE", (124 / 30), (125 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR_R", (139 / 30), (126 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE", (66.5 / 30), (125 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("FILECAB", (82.5 / 30), (123.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (63 / 30), (115.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (129 / 30), (115.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (118 / 30), (115.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (81.5 / 30), (112.5 / 30), 0, new b2Vec2(), 0);
} else {
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("COMP_SCREEN", (119 / 30), (112 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP", (140 / 30), (125 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("PAPER", (129 / 30), (113.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (119.5 / 30), (113.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("FILECAB", (144 / 30), (123 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("DESK_1", (69 / 30), (124 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP_SCREEN", (64 / 30), (112 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP", (84 / 30), (125 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (74 / 30), (113 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("DESK_1", (124 / 30), (124 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("CHAIR", (106 / 30), (126 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR", (49.5 / 30), (126 / 30), 0, new b2Vec2(), 0);
};
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("DESK", (538 / 30), (168 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (444 / 30), (166 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE_SMALL", (459 / 30), (171 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR,FILECAB", (474 / 30), (166 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR,CHAIR", (516 / 30), (166 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE,PAPER", (460 / 30), (164 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP_SCREEN", (533 / 30), (156 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP", (544 / 30), (156 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (451 / 30), (167 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,FILECAB", (469 / 30), (167 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (486 / 30), (167 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,CRATE", (525 / 30), (167 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,CRATE", (542 / 30), (167 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,CRATE,NONE", (477 / 30), (152 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (459 / 30), (152 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN,NONE,CRATE", (533 / 30), (152 / 30), 0, new b2Vec2(), 0);
};
crate_hanging_2 = Handler_WorldItems.AddObject("CRATE_HANGING", (388 / 30), (194 / 30), 0, new b2Vec2(), 0);
crate_hanging_1 = Handler_WorldItems.AddObject("CRATE_HANGING", (326 / 30), (130 / 30), 0, new b2Vec2(), 0);
lamp1 = Handler_WorldItems.AddObject("LAMP_1", (53.5 / 30), (61.5 / 30), 0, new b2Vec2(), 0);
lamp2 = Handler_WorldItems.AddObject("LAMP_1", (84 / 30), (61.5 / 30), 0, new b2Vec2(), 0);
lamp3 = Handler_WorldItems.AddObject("LAMP_1", (114.5 / 30), (61.5 / 30), 0, new b2Vec2(), 0);
lamp4 = Handler_WorldItems.AddObject("LAMP_1", (144.5 / 30), (61.5 / 30), 0, new b2Vec2(), 0);
lift_small = Handler_WorldItems.AddObject("LIFT_SMALL_01", (190.5 / 30), (228 / 30), 0, new b2Vec2(), 0);
lamp5 = Handler_WorldItems.AddObject("LAMP_1", (450 / 30), (99.5 / 30), 0, new b2Vec2(), 0);
lamp6 = Handler_WorldItems.AddObject("LAMP_1", (482 / 30), (99.5 / 30), 0, new b2Vec2(), 0);
lamp7 = Handler_WorldItems.AddObject("LAMP_1", (515 / 30), (99.5 / 30), 0, new b2Vec2(), 0);
lamp8 = Handler_WorldItems.AddObject("LAMP_1", (547.5 / 30), (99.5 / 30), 0, new b2Vec2(), 0);
crate_hanging_3 = Handler_WorldItems.AddObject("CRATE_HANGING", (244 / 30), (206 / 30), 0, new b2Vec2(), 0);
lift_1 = Handler_WorldItems.AddObject("LIFT_01", (334 / 30), (300.5 / 30), 0, new b2Vec2(), 0);
lift_2 = Handler_WorldItems.AddObject("LIFT_01", (494 / 30), (304.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (415 / 30), (289 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE,GASCAN", (362 / 30), (289 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE,BARREL", (341 / 30), (191.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,BARREL_EXPLOSIVE,NONE,NONE", (341 / 30), (176 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (539 / 30), (278 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (124 / 30), (215 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE,NONE", (184 / 30), (217 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (293 / 30), (193 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (282 / 30), (123 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,BARREL,NONE,BARREL", (231.5 / 30), (123.5 / 30), 0, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 361, 292, "", null));
pathGrid.AddNode(new PathNode("", 389, 292, "", null));
pathGrid.AddNode(new PathNode("", 418, 292, "", null));
pathGrid.AddNode(new PathNode("", 491, 296, "", lift_2));
pathGrid.AddNode(new PathNode("", 497, 296, "", lift_2));
pathGrid.AddNode(new PathNode("", 520, 296, "", null));
pathGrid.AddNode(new PathNode("", 563, 296, "", null));
pathGrid.AddNode(new PathNode("", 541, 296, "", null));
pathGrid.AddNode(new PathNode("", 622, 296, "", null));
pathGrid.AddNode(new PathNode("", 563, 170, "", null));
pathGrid.AddNode(new PathNode("", 621, 170, "", null));
pathGrid.AddNode(new PathNode("", 532, 170, "", null));
pathGrid.AddNode(new PathNode("", 502, 170, "", null));
pathGrid.AddNode(new PathNode("", 477, 170, "", null));
pathGrid.AddNode(new PathNode("", 452, 170, "", null));
pathGrid.AddNode(new PathNode("", 424, 170, "", null));
pathGrid.AddNode(new PathNode("CRATE_2", 382, 183, "", crate_hanging_2));
pathGrid.AddNode(new PathNode("CRATE_2", 394, 183, "", crate_hanging_2));
pathGrid.AddNode(new PathNode("", 347, 196, "", null));
pathGrid.AddNode(new PathNode("", 320, 196, "", null));
pathGrid.AddNode(new PathNode("", 297, 196, "", null));
pathGrid.AddNode(new PathNode("CRATE_3", 250, 195, "", crate_hanging_3));
pathGrid.AddNode(new PathNode("CRATE_3", 238, 195, "", crate_hanging_3));
pathGrid.AddNode(new PathNode("", 338, 292, "", lift_1));
pathGrid.AddNode(new PathNode("", 331, 292, "", lift_1));
pathGrid.AddNode(new PathNode("CRATE_1", 320, 119, "", crate_hanging_1));
pathGrid.AddNode(new PathNode("CRATE_1", 332, 119, "", crate_hanging_1));
pathGrid.AddNode(new PathNode("", 283, 126, "", null));
pathGrid.AddNode(new PathNode("", 186, 220, "", lift_small));
pathGrid.AddNode(new PathNode("", 195, 220, "", lift_small));
pathGrid.AddNode(new PathNode("", 165, 218, "", null));
pathGrid.AddNode(new PathNode("", 137, 218, "", null));
pathGrid.AddNode(new PathNode("", 107, 218, "", null));
pathGrid.AddNode(new PathNode("", 92, 229, "", null));
pathGrid.AddNode(new PathNode("", 82, 239, "", null));
pathGrid.AddNode(new PathNode("", 46, 246, "", null));
pathGrid.AddNode(new PathNode("", 67, 259, "", null));
pathGrid.AddNode(new PathNode("", 99, 282, "", null));
pathGrid.AddNode(new PathNode("", 83, 271, "", null));
pathGrid.AddNode(new PathNode("", 123, 282, "", null));
pathGrid.AddNode(new PathNode("", 146, 282, "", null));
pathGrid.AddNode(new PathNode("", 39, 246, "", null));
pathGrid.AddNode(new PathNode("", -19, 246, "", null));
pathGrid.AddNode(new PathNode("", 39, 126, "", null));
pathGrid.AddNode(new PathNode("", -25, 126, "", null));
pathGrid.AddNode(new PathNode("", 66, 126, "", null));
pathGrid.AddNode(new PathNode("", 94, 126, "", null));
pathGrid.AddNode(new PathNode("", 119, 126, "", null));
pathGrid.AddNode(new PathNode("", 145, 126, "", null));
pathGrid.AddNode(new PathNode("", 168, 126, "", null));
pathGrid.AddNode(new PathNode("", 232, 126, "", null));
pathGrid.AddNode(new PathNode("", 0x0101, 126, "", null));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[3], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[2], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[5], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[4], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[8], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[10], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[6], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[9], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[15], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[17], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[16], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[18], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[20], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[21], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[18], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[0], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[0], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[23], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[25], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[27], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[20], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[27], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[22], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[29], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[28], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[30], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[34], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[24], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[40], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[44], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[41], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[42], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[43], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[48], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[49], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[48], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[28], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[49], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[50], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[51], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[51], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[29], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[50], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
closness = (0.5 / 30);
holder1 = Handler_WorldItems.AddObject("CRATE_HANGING_HOLDER", crate_hanging_1.GetPosition().x, (crate_hanging_1.GetPosition().y - ((crate_hanging_1.GetUserData().height / 30) * 0.5)), 0, new b2Vec2(), 0);
holder2 = Handler_WorldItems.AddObject("CRATE_HANGING_HOLDER", crate_hanging_2.GetPosition().x, (crate_hanging_2.GetPosition().y - ((crate_hanging_2.GetUserData().height / 30) * 0.5)), 0, new b2Vec2(), 0);
holder3 = Handler_WorldItems.AddObject("CRATE_HANGING_HOLDER", crate_hanging_3.GetPosition().x, (crate_hanging_3.GetPosition().y - ((crate_hanging_3.GetUserData().height / 30) * 0.5)), 0, new b2Vec2(), 0);
Handler_WorldItems.AddLimitedJoint(crate_hanging_1, holder1, holder1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(crate_hanging_2, holder2, holder2.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(crate_hanging_3, holder3, holder3.GetPosition(), 0, 0);
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder1, new b2Vec2(holder1.GetPosition().x, (34 / 30)), new b2Vec2((holder1.GetPosition().x + closness), (holder1.GetPosition().y - ((holder1.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder1, new b2Vec2(holder1.GetPosition().x, (34 / 30)), new b2Vec2((holder1.GetPosition().x - closness), (holder1.GetPosition().y - ((holder1.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder2, new b2Vec2(holder2.GetPosition().x, (128 / 30)), new b2Vec2((holder2.GetPosition().x + closness), (holder2.GetPosition().y - ((holder2.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder2, new b2Vec2(holder2.GetPosition().x, (128 / 30)), new b2Vec2((holder2.GetPosition().x - closness), (holder2.GetPosition().y - ((holder2.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder3, new b2Vec2(holder3.GetPosition().x, (134 / 30)), new b2Vec2((holder3.GetPosition().x + closness), (holder3.GetPosition().y - ((holder3.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder3, new b2Vec2(holder3.GetPosition().x, (134 / 30)), new b2Vec2((holder3.GetPosition().x - closness), (holder3.GetPosition().y - ((holder3.GetUserData().height / 30) * 0.5))));
crate_hanging_1.ApplyForce(new b2Vec2(((Math.random() * 10) - 5), Math.random()), new b2Vec2(((crate_hanging_1.GetPosition().x + (Math.random() * 2)) - 1), crate_hanging_1.GetPosition().y));
crate_hanging_2.ApplyForce(new b2Vec2(((Math.random() * 10) - 5), Math.random()), new b2Vec2(((crate_hanging_2.GetPosition().x + (Math.random() * 2)) - 1), crate_hanging_2.GetPosition().y));
crate_hanging_3.ApplyForce(new b2Vec2(((Math.random() * 10) - 5), Math.random()), new b2Vec2(((crate_hanging_3.GetPosition().x + (Math.random() * 2)) - 1), crate_hanging_3.GetPosition().y));
ropeh1 = new Rope(Handler_WorldItems.Ground, holder1, new b2Vec2(holder1.GetPosition().x, (34 / 30)), new b2Vec2(holder1.GetPosition().x, (holder1.GetPosition().y - ((holder1.GetUserData().height / 30) * 0.5))));
ropeh2 = new Rope(Handler_WorldItems.Ground, holder2, new b2Vec2(holder2.GetPosition().x, (128 / 30)), new b2Vec2(holder2.GetPosition().x, (holder2.GetPosition().y - ((holder2.GetUserData().height / 30) * 0.5))));
ropeh3 = new Rope(Handler_WorldItems.Ground, holder3, new b2Vec2(holder3.GetPosition().x, (134 / 30)), new b2Vec2(holder3.GetPosition().x, (holder3.GetPosition().y - ((holder3.GetUserData().height / 30) * 0.5))));
layer_mc = MovieClip(_dynamic_mc.getChildByName("OBJECTS"));
layer_mc.addChild(ropeh1.MC);
layer_mc.addChild(ropeh2.MC);
layer_mc.addChild(ropeh3.MC);
holder1.GetUserData().onDestruction = function (_arg1:b2Body):void{
ropeh1.Remove();
pathGrid.RemoveNodes("CRATE_1");
pathGrid.UpdateSpecials();
pathGrid.AnalyzeGrid();
};
holder2.GetUserData().onDestruction = function (_arg1:b2Body):void{
ropeh2.Remove();
pathGrid.RemoveNodes("CRATE_2");
pathGrid.UpdateSpecials();
pathGrid.AnalyzeGrid();
};
holder3.GetUserData().onDestruction = function (_arg1:b2Body):void{
ropeh3.Remove();
pathGrid.RemoveNodes("CRATE_3");
pathGrid.UpdateSpecials();
pathGrid.AnalyzeGrid();
};
CreateElevator(lift_small, 95, 1);
CreateHorizontalElevator(lift_1, 160, 0.8);
CreateHorizontalElevator(lift_2, 49, 2);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp1, lamp1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp2, lamp2.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp3, lamp3.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp4, lamp4.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp5, lamp5.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp6, lamp6.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp7, lamp7.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp8, lamp8.GetPosition(), 0, 0);
rope1 = Handler_WorldItems.AddHangingLamp(new Point(68, 142), 25);
rope2 = Handler_WorldItems.AddHangingLamp(new Point(105, 142), 25);
rope3 = Handler_WorldItems.AddHangingLamp(new Point(140, 142), 25);
rope4 = Handler_WorldItems.AddHangingLamp(new Point(434, 186.5), 30);
rope5 = Handler_WorldItems.AddHangingLamp(new Point(471, 186.5), 30);
rope6 = Handler_WorldItems.AddHangingLamp(new Point(506, 186.5), 30);
rope7 = Handler_WorldItems.AddHangingLamp(new Point(541, 186.5), 30);
rope8 = Handler_WorldItems.AddHangingLamp(new Point(234, 34), 35);
rope9 = Handler_WorldItems.AddHangingLamp(new Point(295, 34), 35);
rope10 = Handler_WorldItems.AddHangingLamp(new Point(356, 34), 35);
Handler_WorldItems.AddGlass(new Point((172 / 30), (132 / 30)), new Point((172 / 30), (92 / 30)));
Handler_WorldItems.AddGlass(new Point((419 / 30), (138 / 30)), new Point((419 / 30), (174 / 30)));
nextBubble = 2;
MapUpdate = function (_arg1:Number):void{
var _local2:int;
var _local3:Number;
rope1.UpdateMC();
rope2.UpdateMC();
rope3.UpdateMC();
rope4.UpdateMC();
rope5.UpdateMC();
rope6.UpdateMC();
rope7.UpdateMC();
rope8.UpdateMC();
rope9.UpdateMC();
rope10.UpdateMC();
ropeh1.UpdateMC();
ropeh2.UpdateMC();
ropeh3.UpdateMC();
nextBubble = (nextBubble - 1);
if (nextBubble <= 0){
_local3 = (Math.random() * 269);
_local3 = (_local3 + 158);
if (_local3 > 349){
_local3 = (_local3 + 81);
};
_Handler_Effects.AddParticle(new particle_data("BUBBLE", _local3, 312, new b2Vec2(0, 0)));
nextBubble = 2;
};
_local2 = 0;
while (_local2 < _Handler_Players.Players.length) {
if (!_Handler_Players.Players[_local2].Ignore){
if (_Handler_Players.Players[_local2].MidPosY() > 325){
_Handler_Players.Players[_local2].IgnorePlayer();
_Handler_Sounds.PlaySoundAt("gib", _Handler_Players.Players[_local2].MidPosX(), _Handler_Players.Players[_local2].MidPosY());
};
};
_local2++;
};
};
MapStart = function ():void{
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
mapGraphic.AddMC(GetLevelMC("fan_4"));
};
}
public function LinkPlayers(_arg1:PlayersKeeper):void{
_Handler_Players = _arg1;
}
private function GenerateMapRooftops():void{
var stair:b2Body;
var lift:b2Body;
var lamp3:b2Body;
var lamp2:b2Body;
var lamp1:b2Body;
var lamp4:b2Body;
var lamp6:b2Body;
var lamp5:b2Body;
var rope1:Rope;
var rope2:Rope;
var rope3:Rope;
mapArea = new Rectangle(-12, -110, 583, 510);
playerSpawns = new Array(new Point(94, 89), new Point(162, 89), new Point(98, 271), new Point(144, 270), new Point(235, 74), new Point(285, 188), new Point(319, 295.5), new Point(392, 291), new Point(449.5, 290), new Point(463, 188), new Point(291, 74), new Point(258, 277));
weaponSpawns = new Array(new WeaponSpawnData(315, 77, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(259, 189, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(392, 297, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(274, 279, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(380, 189, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(159, 274, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(126, 90, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
portals = new Array(new PortalData(new Rectangle(58, 73, 20, 22), new Rectangle(47, 0xFF, 20, 24), new Point(-1, 0), true, false), new PortalData(new Rectangle(47, 0xFF, 20, 24), new Rectangle(58, 73, 20, 22), new Point(-1, 0), true, false), new PortalData(new Rectangle(483, 172, 20, 22), new Rectangle(483, 279, 20, 23), new Point(1, 0), true, false), new PortalData(new Rectangle(483, 279, 20, 23), new Rectangle(483, 172, 20, 22), new Point(1, 0), true, false));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (103.5 / 30), (157 / 30), 0, (167 / 30), (124 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (39 / 30), (74 / 30), 0, (38 / 30), (42 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (68 / 30), (63 / 30), 0, (20 / 30), (20 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (43.5 / 30), (237 / 30), 0, (47 / 30), (36 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (33.5 / 30), (267 / 30), 0, (27 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (103.5 / 30), (319 / 30), 0, (167 / 30), (82 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (265.5 / 30), (323 / 30), 0, (47 / 30), (78 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (429.5 / 30), (332 / 30), 0, (223 / 30), (60 / 30), new Array("NONE"));
stair = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (304 / 30), (311 / 30), 0, new Array([(-15 / 30), (-27 / 30)], [(-10 / 30), (-27 / 30)], [(14 / 30), (-9 / 30)], [(14 / 30), (51 / 30)], [(-15 / 30), (51 / 30)]), new Array("NONE"));
stair.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (180.5 / 30), (231 / 30), 0, (13 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (274.5 / 30), (200.5 / 30), 0, (65 / 30), (13 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (248.5 / 30), (228 / 30), 0, (13 / 30), (42 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (380 / 30), (200.5 / 30), 0, (24 / 30), (13 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (468 / 30), (200.5 / 30), 0, (30 / 30), (13 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (493 / 30), (162 / 30), 0, (20 / 30), (20 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (522 / 30), (173 / 30), 0, (38 / 30), (42 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (0x0200 / 30), (236.5 / 30), 0, (58 / 30), (85 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (522 / 30), (290.5 / 30), 0, (38 / 30), (23 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (200.5 / 30), (221 / 30), 0, (27 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (194 / 30), (143.5 / 30), 0, (14 / 30), (115 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (265.5 / 30), (84 / 30), 0, (119 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (337.5 / 30), (197 / 30), 0, (13 / 30), (6 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (422.5 / 30), (197 / 30), 0, (13 / 30), (6 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (155 / 30), (380 / 30), 0, (64 / 30), (40 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (269 / 30), (381 / 30), 0, (54 / 30), (38 / 30), new Array("NONE"));
lift = Handler_WorldItems.AddObject("LIFT_SMALL_01", (229 / 30), (290 / 30), 0, new b2Vec2(), 0);
if (50 >= (Math.random() * 100)){
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE", (302 / 30), (74 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL", (224 / 30), (278 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE", (269 / 30), (187 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL_EXPLOSIVE,CRATE,NONE", (261 / 30), (73 / 30), 0, new b2Vec2(), 0);
};
} else {
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE", (273 / 30), (187 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,BARREL,CRATE", (253 / 30), (186 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE,GASCAN", (263 / 30), (168 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN", (144 / 30), (88 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("CRATE", (176 / 30), (88 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (178 / 30), (73 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE", (138 / 30), (88 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL_EXPLOSIVE,GASCAN", (179 / 30), (58 / 30), 0, new b2Vec2(), 0);
};
};
if (33 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL,CRATE", (334 / 30), (295 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (352 / 30), (295 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN,NONE,CRATE", (376 / 30), (295 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (344 / 30), (281 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (413 / 30), (295 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (431 / 30), (295 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (423 / 30), (281 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (283 / 30), (277 / 30), 0, new b2Vec2(), 0);
} else {
if (50 >= (Math.random() * 100)){
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("COMP", (374 / 30), (284 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP_SCREEN", (362 / 30), (284 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (416.5 / 30), (285.5 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("COMP", (405.5 / 30), (297 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP_SCREEN", (419 / 30), (284 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (370.5 / 30), (285.5 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("DESK", (367.5 / 30), (296 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (342 / 30), (294.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("DESK", (422.5 / 30), (296 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (460.5 / 30), (294.5 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("COMFY_CHAIR", (342 / 30), (294 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE_SMALL", (358 / 30), (299 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (374 / 30), (294 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (407 / 30), (294 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE_SMALL", (422 / 30), (299 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (438 / 30), (294 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE", (277 / 30), (279 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (273 / 30), (268.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (283 / 30), (269 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (358 / 30), (292 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (422 / 30), (291 / 30), 0, new b2Vec2(), 0);
};
};
lamp3 = Handler_WorldItems.AddObject("LAMP_1", (155 / 30), (221.5 / 30), 0, new b2Vec2(), 0);
lamp2 = Handler_WorldItems.AddObject("LAMP_1", (119.5 / 30), (221.5 / 30), 0, new b2Vec2(), 0);
lamp1 = Handler_WorldItems.AddObject("LAMP_1", (83 / 30), (221.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (531 / 30), (145 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE,GASCAN", (491 / 30), (145 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (511 / 30), (145 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (30 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (49 / 30), (46 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (40 / 30), (32 / 30), 1.5707963267949, new b2Vec2(), 0);
Handler_WorldItems.AddObject("GASCAN,NONE", (68 / 30), (49 / 30), 1.5707963267949, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (113 / 30), (88 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE", (122 / 30), (273 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR", (101 / 30), (274 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR_R", (141 / 30), (273 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,NONE", (82 / 30), (271 / 30), 0, new b2Vec2(), 0);
lamp4 = Handler_WorldItems.AddObject("LAMP_1", (224 / 30), (33 / 30), 0, new b2Vec2(), 0);
lamp6 = Handler_WorldItems.AddObject("LAMP_1", (307 / 30), (33 / 30), 0, new b2Vec2(), 0);
lamp5 = Handler_WorldItems.AddObject("LAMP_1", (266 / 30), (33 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (118 / 30), (263.5 / 30), 0, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 181, 91, "", null));
pathGrid.AddNode(new PathNode("", 144, 91, "", null));
pathGrid.AddNode(new PathNode("", 111, 91, "", null));
pathGrid.AddNode(new PathNode("", 77, 91, "", null));
pathGrid.AddNode(new PathNode("", 24, 49, "", null));
pathGrid.AddNode(new PathNode("", 49, 49, "", null));
pathGrid.AddNode(new PathNode("", 73, 49, "", null));
pathGrid.AddNode(new PathNode("", 27, 91, "", null));
pathGrid.AddNode(new PathNode("", 212, 77, "", null));
pathGrid.AddNode(new PathNode("", 238, 77, "", null));
pathGrid.AddNode(new PathNode("", 266, 77, "", null));
pathGrid.AddNode(new PathNode("", 294, 77, "", null));
pathGrid.AddNode(new PathNode("", 320, 77, "", null));
pathGrid.AddNode(new PathNode("", 159, 91, "", null));
pathGrid.AddNode(new PathNode("", 249, 190, "", null));
pathGrid.AddNode(new PathNode("", 422.5, 189.5, "", null));
pathGrid.AddNode(new PathNode("", 458, 190, "", null));
pathGrid.AddNode(new PathNode("", 388, 190, "", null));
pathGrid.AddNode(new PathNode("", 372, 190, "", null));
pathGrid.AddNode(new PathNode("", 302, 190, "", null));
pathGrid.AddNode(new PathNode("", 337.5, 190, "", null));
pathGrid.AddNode(new PathNode("", 277, 190, "", null));
pathGrid.AddNode(new PathNode("", 207, 215, "", null));
pathGrid.AddNode(new PathNode("", 194, 215, "", null));
pathGrid.AddNode(new PathNode("", 481, 190, "", null));
pathGrid.AddNode(new PathNode("", 534, 190, "", null));
pathGrid.AddNode(new PathNode("", 536, 148, "", null));
pathGrid.AddNode(new PathNode("", 487, 148, "", null));
pathGrid.AddNode(new PathNode("", 0x0200, 148, "", null));
pathGrid.AddNode(new PathNode("", 481, 298, "", null));
pathGrid.AddNode(new PathNode("", 534, 298, "", null));
pathGrid.AddNode(new PathNode("", 68, 274, "", null));
pathGrid.AddNode(new PathNode("", 24, 274, "", null));
pathGrid.AddNode(new PathNode("", 96, 274, "", null));
pathGrid.AddNode(new PathNode("", 123, 274, "", null));
pathGrid.AddNode(new PathNode("", 152, 274, "", null));
pathGrid.AddNode(new PathNode("", 179, 274, "", null));
pathGrid.AddNode(new PathNode("", 248.5, 280, "", null));
pathGrid.AddNode(new PathNode("", 270, 280, "", null));
pathGrid.AddNode(new PathNode("", 292, 280, "", null));
pathGrid.AddNode(new PathNode("", 323, 297, "", null));
pathGrid.AddNode(new PathNode("", 352, 297, "", null));
pathGrid.AddNode(new PathNode("", 383, 297, "", null));
pathGrid.AddNode(new PathNode("", 413.5, 297, "", null));
pathGrid.AddNode(new PathNode("", 449, 297, "", null));
pathGrid.AddNode(new PathNode("", 223, 282, "", lift));
pathGrid.AddNode(new PathNode("", 235, 282, "", lift));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[2], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[7], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[0], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[8], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[14], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[15], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[15], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[15], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[19], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[20], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[20], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[22], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[0], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[23], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[25], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[29], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[30], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[24], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[32], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[3], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[31], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[22], PathBind.DYNAMIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[37], PathBind.DYNAMIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[46], PathBind.DYNAMIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[36], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[45], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[14], PathBind.DYNAMIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[45], PathBind.DYNAMIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[46], PathBind.DYNAMIC, PathBind.ROAD));
CreateElevator(lift, 92, 1);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp1, lamp1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp2, lamp2.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp3, lamp3.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp4, lamp4.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp5, lamp5.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp6, lamp6.GetPosition(), 0, 0);
Handler_WorldItems.AddGlass(new Point((306 / 30), (196 / 30)), new Point((332 / 30), (196 / 30)));
Handler_WorldItems.AddGlass(new Point((343 / 30), (196 / 30)), new Point((369 / 30), (196 / 30)));
Handler_WorldItems.AddGlass(new Point((391 / 30), (196 / 30)), new Point((417 / 30), (196 / 30)));
Handler_WorldItems.AddGlass(new Point((428 / 30), (196 / 30)), new Point((454 / 30), (196 / 30)));
Handler_WorldItems.AddGlass(new Point((245 / 30), (285 / 30)), new Point((245 / 30), (247 / 30)));
Handler_WorldItems.AddGlass(new Point((184 / 30), (241 / 30)), new Point((184 / 30), (280 / 30)));
rope1 = Handler_WorldItems.AddHangingLamp(new Point(280, 206), 25);
rope2 = Handler_WorldItems.AddHangingLamp(new Point(380, 206), 25);
rope3 = Handler_WorldItems.AddHangingLamp(new Point(468, 206), 25);
MapUpdate = function (_arg1:Number):void{
rope1.UpdateMC();
rope2.UpdateMC();
rope3.UpdateMC();
};
MapStart = function ():void{
mapGraphic.AddMC(GetLevelMC("background_clouds"));
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
};
}
private function GetGroundWorld():b2World{
var _local1:b2AABB;
var _local2:b2Vec2;
var _local3:Boolean;
_local1 = new b2AABB();
_local1.lowerBound.Set(-100, -100);
_local1.upperBound.Set(100, 100);
_local2 = new b2Vec2(0, 10);
_local3 = true;
m_world = new b2World(_local1, _local2, _local3);
m_world.SetContactListener(m_contactListener);
Handler_WorldItems.Setb2World = m_world;
Handler_WorldItems.SetdbgDraw = MovieClip(_static_mc.getChildByName("WORLD_HITBOX"));
return (m_world);
}
public function ConstructContactListener(_arg1:ContactData):void{
m_contactListener = new b2ContactListener();
m_contactListener.SetHandler(_arg1);
Handler_WorldItems.LinkDeconstructer = _arg1.Handler_Deconstructer;
}
public function GetPlayerSpawnPositions(_arg1:Number=0):Array{
return (playerSpawns);
}
public function LinkWeapons(_arg1:Weapons):void{
_Handler_Weapons = _arg1;
}
public function GetMap(_arg1:Number):b2World{
var lvl = _arg1;
mapGraphic = new MapGraphic();
pathGrid = new PathGrid();
mapArea = new Rectangle(-3000, -3000, 9000, 9000);
playerSpawns = new Array(new Point(0, 0), new Point(10, 0), new Point(20, 0), new Point(30, 0), new Point(40, 0), new Point(50, 0));
portals = new Array();
weaponSpawns = new Array(new WeaponSpawnData(420, 188, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(235, 188, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
MapUpdate = function (_arg1:Number):void{
};
MapEnd = function ():void{
};
MapStart = function ():void{
};
_mapStartTimer = 2;
m_world = GetGroundWorld();
switch (lvl){
case 1:
GenerateMapTutorial();
break;
case 2:
GenerateMapStorage();
break;
case 3:
GenerateMapRooftops();
break;
case 4:
GenerateMapPoliceStation();
break;
case 5:
GenerateMapHazardous();
break;
case 6:
GenerateMapBackstreets();
break;
case 7:
GenerateMapTestingFloor();
break;
case 10:
GenerateMapSurvival01();
break;
};
_static_mc.addChild(pathGrid.DebugGraphic);
pathGrid.UpdateSpecials();
m_world.UpdateObjectLists();
return (m_world);
}
public function GetPathGrid(_arg1:Number=0):PathGrid{
return (pathGrid);
}
public function GetMapPortals(_arg1:Number=0):Array{
return (portals);
}
public function Update(_arg1:Number):void{
if (_mapStartTimer > 0){
_mapStartTimer = (_mapStartTimer - 1);
if (_mapStartTimer <= 0){
MapStart();
};
};
MapUpdate(_arg1);
mapGraphic.Update(_arg1);
}
private function CreateHorizontalElevator(_arg1:b2Body, _arg2:Number, _arg3:Number):void{
var _local4:b2Body;
var _local5:b2RevoluteJoint;
var _local6:b2Vec2;
var _local7:b2Vec2;
Handler_WorldItems.AddPrismaticJoint(Handler_WorldItems.Ground, _arg1, _arg1.GetPosition(), new b2Vec2(1, 0));
_local4 = Handler_WorldItems.AddCircle("PLATFORM_MOTOR", (_arg1.GetPosition().x - ((_arg2 / 30) * 2)), _arg1.GetPosition().y, 0, new b2Vec2(), 0);
_local4.GetUserData().visible = false;
_local5 = Handler_WorldItems.AddRevoluteMotor(Handler_WorldItems.Ground, _local4, _local4.GetPosition(), _arg3, 9999);
_local6 = _arg1.GetPosition();
_local7 = new b2Vec2((_local4.GetPosition().x + ((_arg2 / 30) * 0.5)), _local4.GetPosition().y);
Handler_WorldItems.AddDistanceJoint(_arg1, _local4, _local6, _local7);
}
private function GenerateMapPoliceStation():void{
var stair:b2Body;
var perm_cover1:b2Body;
var lift:b2Body;
var propeller:b2Body;
var lamp1:b2Body;
var lamp2:b2Body;
var lamp3:b2Body;
var lamp4:b2Body;
var rope1:Rope;
var rope2:Rope;
var rope3:Rope;
var rope4:Rope;
var rope5:Rope;
var ropea:Rope;
var ropeb:Rope;
var ropec:Rope;
var roped:Rope;
mapArea = new Rectangle(105, -81, 800, 600);
playerSpawns = new Array(new Point(184, 369), new Point(272, 370), new Point(368, 370), new Point(443, 370), new Point(502, 356), new Point(571, 357), new Point(690, 358), new Point(750, 376), new Point(821, 375), new Point(828, 250), new Point(675, 251), new Point(738, 249), new Point(588, 250), new Point(600, 159), new Point(672, 160), new Point(782, 158));
weaponSpawns = new Array(new WeaponSpawnData(235, 266, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(193, 373, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(517, 361, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(803, 379, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(643, 253, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(619, 163, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
portals = new Array(new PortalData(new Rectangle(848, 234, 20, 24), new Rectangle(848, 360, 20, 24), new Point(1, 0), true, false), new PortalData(new Rectangle(848, 360, 20, 24), new Rectangle(848, 234, 20, 24), new Point(1, 0), true, false));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (302.5 / 30), (413 / 30), 0, (369 / 30), (70 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (590 / 30), (407 / 30), 0, (230 / 30), (82 / 30), new Array("NONE"));
stair = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (719 / 30), (409 / 30), 0, new Array([(-14 / 30), (-43 / 30)], [(-10 / 30), (-43 / 30)], [(14 / 30), (-25 / 30)], [(14 / 30), (39 / 30)], [(-14 / 30), (39 / 30)]), new Array("NONE"));
stair.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (818.5 / 30), (416 / 30), 0, (171 / 30), (64 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (886 / 30), (372 / 30), 0, (36 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (876 / 30), (309 / 30), 0, (56 / 30), (102 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (876 / 30), (117.5 / 30), 0, (56 / 30), (233 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (886 / 30), (246 / 30), 0, (36 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (822 / 30), (163 / 30), 0, (52 / 30), (34 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (777 / 30), (174 / 30), 0, (38 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (637.5 / 30), (174 / 30), 0, (171 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (716.5 / 30), (200 / 30), 0, (13 / 30), (40 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (558.5 / 30), (201 / 30), 0, (13 / 30), (42 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (733 / 30), (192 / 30), 0, (20 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (749.5 / 30), (215 / 30), 0, (45 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (749.5 / 30), (237 / 30), 0, (45 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (629 / 30), (276 / 30), 0, (154 / 30), (36 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (777 / 30), (282 / 30), 0, (142 / 30), (48 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (558.5 / 30), (312 / 30), 0, (13 / 30), (36 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (712.5 / 30), (321 / 30), 0, (13 / 30), (30 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (125 / 30), (341.5 / 30), 0, (14 / 30), (73 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (248 / 30), (273 / 30), 0, (38 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (299 / 30), (273 / 30), 0, (38 / 30), (4 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (273.5 / 30), (301 / 30), 0, (13 / 30), (118 / 30), new Array("LADDER"));
Handler_WorldItems.CreateGroundCircle(Handler_WorldItems.Material.Metal, (125 / 30), (301 / 30), (7 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (663 / 30), (302.5 / 30), 0, (8 / 30), (17 / 30), new Array("NONE"));
perm_cover1 = Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (662.5 / 30), (359.5 / 30), 0, (15 / 30), (13 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (877 / 30), (-43.5 / 30), 0, (58 / 30), (89 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (238 / 30), (317 / 30), 0, (58 / 30), (4 / 30), new Array("CLOUD"));
lift = Handler_WorldItems.AddObject("LIFT_SMALL_01", (537 / 30), (363 / 30), 0, new b2Vec2(), 0);
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("COMFY_CHAIR", (628 / 30), (358 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("CHAIR,NONE", (648 / 30), (362 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (612.5 / 30), (356.5 / 30), 0, new b2Vec2(), 0);
};
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("FILECAB", (614 / 30), (251.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (603.5 / 30), (254.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (603.5 / 30), (246.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (595.5 / 30), (254.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (617 / 30), (232.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (614.5 / 30), (240.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (627.5 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("FILECAB", (627 / 30), (236.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (625.5 / 30), (225.5 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("CRATE", (610 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (625 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (611 / 30), (236 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (626 / 30), (236 / 30), 0, new b2Vec2(), 0);
};
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (388 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (404 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (397 / 30), (356 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,BARREL_EXPLOSIVE", (429 / 30), (371 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (422 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (403 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,BARREL_EXPLOSIVE,NONE", (390 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (456 / 30), (371 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (308 / 30), (264 / 30), 0, new b2Vec2(), 0);
propeller = Handler_WorldItems.AddObject("WINDMILL_PROPELLER", (274 / 30), (191 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE,CRATE,NONE", (786 / 30), (379 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR_R", (677 / 30), (361.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR,NONE", (597 / 30), (358 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE_SMALL", (613 / 30), (363.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE_SMALL", (583 / 30), (363.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (219 / 30), (308 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,BARREL", (234 / 30), (308 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (228 / 30), (293 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (251 / 30), (264 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (292 / 30), (264 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (660 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,FILECAB", (577 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (577 / 30), (239.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE", (690 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (707 / 30), (251 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,GASCAN", (767 / 30), (229 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,FILECAB,CRATE,NONE", (766.5 / 30), (207 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("TABLE,CRATE,NONE,NONE", (804 / 30), (253 / 30), 0, new b2Vec2(), 0);
lamp1 = Handler_WorldItems.AddObject("LAMP_1", (582 / 30), (297.5 / 30), 0, new b2Vec2(), 0);
lamp2 = Handler_WorldItems.AddObject("LAMP_1", (612 / 30), (297.5 / 30), 0, new b2Vec2(), 0);
lamp3 = Handler_WorldItems.AddObject("LAMP_1", (641 / 30), (297.5 / 30), 0, new b2Vec2(), 0);
lamp4 = Handler_WorldItems.AddObject("LAMP_1", (686 / 30), (297.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (808 / 30), (139 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL_EXPLOSIVE", (832 / 30), (139 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,NONE,BARREL_EXPLOSIVE", (704 / 30), (161 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (688 / 30), (161 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE", (565 / 30), (161 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (581 / 30), (161 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("GASCAN,CRATE,NONE", (637 / 30), (162.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (732 / 30), (207 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL", (499 / 30), (359 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,BARREL", (139 / 30), (371.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL", (154 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE", (142 / 30), (357 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (167 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (155 / 30), (357 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL_EXPLOSIVE", (304 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (331 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (219 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (237 / 30), (371 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,NONE,BARREL", (317.5 / 30), (371.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("GASCAN,NONE,NONE,NONE", (0x0100 / 30), (311 / 30), 0, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 139, 374, "", null));
pathGrid.AddNode(new PathNode("", 165, 374, "", null));
pathGrid.AddNode(new PathNode("", 193, 374, "", null));
pathGrid.AddNode(new PathNode("", 220, 374, "", null));
pathGrid.AddNode(new PathNode("", 246, 374, "", null));
pathGrid.AddNode(new PathNode("", 274, 374, "", null));
pathGrid.AddNode(new PathNode("", 305, 374, "", null));
pathGrid.AddNode(new PathNode("", 336, 374, "", null));
pathGrid.AddNode(new PathNode("", 368, 374, "", null));
pathGrid.AddNode(new PathNode("", 403, 374, "", null));
pathGrid.AddNode(new PathNode("", 438, 374, "", null));
pathGrid.AddNode(new PathNode("", 469, 374, "", null));
pathGrid.AddNode(new PathNode("", 483, 362, "", null));
pathGrid.AddNode(new PathNode("", 517, 362, "", null));
pathGrid.AddNode(new PathNode("", 555, 362, "", null));
pathGrid.AddNode(new PathNode("", 586, 362, "", null));
pathGrid.AddNode(new PathNode("", 617, 362, "", null));
pathGrid.AddNode(new PathNode("", 647, 362, "", null));
pathGrid.AddNode(new PathNode("", 677, 362, "", null));
pathGrid.AddNode(new PathNode("", 710, 362, "", null));
pathGrid.AddNode(new PathNode("", 735, 380, "", null));
pathGrid.AddNode(new PathNode("", 767, 380, "", null));
pathGrid.AddNode(new PathNode("", 803, 380, "", null));
pathGrid.AddNode(new PathNode("", 844, 380, "", null));
pathGrid.AddNode(new PathNode("", 844, 254, "", null));
pathGrid.AddNode(new PathNode("", 810, 254, "", null));
pathGrid.AddNode(new PathNode("", 925, 254, "", null));
pathGrid.AddNode(new PathNode("", 925, 380, "", null));
pathGrid.AddNode(new PathNode("", 788, 254, "", null));
pathGrid.AddNode(new PathNode("", 767, 254, "", null));
pathGrid.AddNode(new PathNode("", 749, 254, "", null));
pathGrid.AddNode(new PathNode("", 731, 254, "", null));
pathGrid.AddNode(new PathNode("", 709, 254, "", null));
pathGrid.AddNode(new PathNode("", 731, 232, "", null));
pathGrid.AddNode(new PathNode("", 749, 232, "", null));
pathGrid.AddNode(new PathNode("", 0x0300, 232, "", null));
pathGrid.AddNode(new PathNode("", 731, 210, "", null));
pathGrid.AddNode(new PathNode("", 750, 210, "", null));
pathGrid.AddNode(new PathNode("", 767, 210, "", null));
pathGrid.AddNode(new PathNode("", 737, 187, "", null));
pathGrid.AddNode(new PathNode("", 717, 164, "", null));
pathGrid.AddNode(new PathNode("", 764, 164, "", null));
pathGrid.AddNode(new PathNode("", 684, 164, "", null));
pathGrid.AddNode(new PathNode("", 651, 164, "", null));
pathGrid.AddNode(new PathNode("", 619, 164, "", null));
pathGrid.AddNode(new PathNode("", 586, 164, "", null));
pathGrid.AddNode(new PathNode("", 559, 164, "", null));
pathGrid.AddNode(new PathNode("", 788, 164, "", null));
pathGrid.AddNode(new PathNode("", 806, 142, "", null));
pathGrid.AddNode(new PathNode("", 841, 142, "", null));
pathGrid.AddNode(new PathNode("", 676, 254, "", null));
pathGrid.AddNode(new PathNode("", 643, 254, "", null));
pathGrid.AddNode(new PathNode("", 613, 254, "", null));
pathGrid.AddNode(new PathNode("", 585, 254, "", null));
pathGrid.AddNode(new PathNode("", 559, 254, "", null));
pathGrid.AddNode(new PathNode("", 260, 267, "", null));
pathGrid.AddNode(new PathNode("", 287, 267, "", null));
pathGrid.AddNode(new PathNode("", 312, 267, "", null));
pathGrid.AddNode(new PathNode("", 235, 267, "", null));
pathGrid.AddNode(new PathNode("", 662, 348, "", null));
pathGrid.AddNode(new PathNode("", 259, 311, "", null));
pathGrid.AddNode(new PathNode("", 216, 311, "", null));
pathGrid.AddNode(new PathNode("", 238, 311, "", null));
pathGrid.AddNode(new PathNode("", 537, 355, "", lift));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[12], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[27], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[24], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[26], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[23], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[35], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[34], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[35], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[33], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[34], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[33], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[34], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[35], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[30], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[29], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[31], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[38], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[37], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[36], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[37], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[36], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[37], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[38], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[33], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[34], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[35], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[25], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[39], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[39], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[36], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[37], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[41], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[40], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[10], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[41], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[40], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[48], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[49], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[48], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[53], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[52], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[51], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[50], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[50], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[51], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[52], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[53], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[54], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[12], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[55], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[58], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[57], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[56], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[5], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[5], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[55], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[56], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[56], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[55], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[1], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[8], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[59], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[59], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[39], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[1], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[62], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[60], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[62], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[61], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[60], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[5], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[6], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[41], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[14], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[13], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[63], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[63], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[54], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[63], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[46], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[63], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[12], PathBind.DYNAMIC, PathBind.DIVE));
CreateElevator(lift, 183, 0.6);
perm_cover1.GetUserData().allowCover = true;
Handler_WorldItems.AddRevoluteJoint(Handler_WorldItems.Ground, propeller, propeller.GetPosition());
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp1, lamp1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp2, lamp2.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp3, lamp3.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp4, lamp4.GetPosition(), 0, 0);
rope1 = Handler_WorldItems.AddHangingLamp(new Point(588, 180), 20);
rope2 = Handler_WorldItems.AddHangingLamp(new Point(635, 180), 20);
rope3 = Handler_WorldItems.AddHangingLamp(new Point(686, 180), 20);
rope4 = Handler_WorldItems.AddHangingLamp(new Point(795, 180), 20);
rope5 = Handler_WorldItems.AddHangingLamp(new Point(823, 180), 20);
ropea = Handler_WorldItems.AddHangingLamp(new Point(739, 306), 20);
ropeb = Handler_WorldItems.AddHangingLamp(new Point(767, 306), 20);
ropec = Handler_WorldItems.AddHangingLamp(new Point(796, 306), 20);
roped = Handler_WorldItems.AddHangingLamp(new Point(825, 306), 20);
Handler_WorldItems.AddGlass(new Point((553.5 / 30), (221 / 30)), new Point((553.5 / 30), (258 / 30)));
Handler_WorldItems.AddGlass(new Point((661 / 30), (310 / 30)), new Point((661 / 30), (341 / 30)));
MapStart = function ():void{
mapGraphic.AddMC(GetLevelMC("background_clouds"));
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
mapGraphic.AddMC(GetLevelMC("fan_4"));
};
MapUpdate = function (_arg1:Number):void{
rope1.UpdateMC();
rope2.UpdateMC();
rope3.UpdateMC();
rope4.UpdateMC();
rope5.UpdateMC();
ropea.UpdateMC();
ropeb.UpdateMC();
ropec.UpdateMC();
roped.UpdateMC();
};
}
public function UpdateHandlers(_arg1:Effects, _arg2:Explosions, _arg3:Sounds, _arg4:BasicOverlays):void{
Handler_WorldItems.UpdateHandlers(_arg1, _arg2, _arg3, _arg4);
_Handler_Sounds = _arg3;
_Handler_Effects = _arg1;
}
private function GenerateMapStorage():void{
var stair02:b2Body;
var stair01:b2Body;
var stair03:b2Body;
var lift:b2Body;
var crate_hanging_1:b2Body;
var crate_hanging_2:b2Body;
var lamp2:b2Body;
var lamp3:b2Body;
var lamp1:b2Body;
var lamp4:b2Body;
var lamp5:b2Body;
var lamp6:b2Body;
var lamp7:b2Body;
var lamp8:b2Body;
var ropeLamp1:Rope;
var ropeLamp2:Rope;
var ropeLamp3:Rope;
var closness:Number;
var holder1:b2Body;
var holder2:b2Body;
var rope1:Rope;
var rope2:Rope;
var layer_mc:MovieClip;
mapArea = new Rectangle(23, -26, 477, 365);
playerSpawns = new Array(new Point(130, 247), new Point(336, 248), new Point(234, 266), new Point(244, 136), new Point(116, 175), new Point(423, 182), new Point(368, 132), new Point(272, 137), new Point(212, 135), new Point(84, 175), new Point(196, 198), new Point(245, 198), new Point(271, 265), new Point(192, 264), new Point(450, 132), new Point(394, 247), new Point(149, 175), new Point(368, 224), new Point(417, 223), new Point(417, 201), new Point(369, 200), new Point(197, 220), new Point(199, 241), new Point(246, 240), new Point(77, 248), new Point(395, 133));
weaponSpawns = new Array(new WeaponSpawnData(197, 161, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(125, 106, new Array(0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(366, 136, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(120, 250, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(385, 184, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), new WeaponSpawnData(246, 224, new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)));
portals = new Array(new PortalData(new Rectangle(467, 117, 17, 24), new Rectangle(467, 165, 17, 24), new Point(1, 0), true, false), new PortalData(new Rectangle(467, 165, 17, 24), new Rectangle(467, 117, 17, 24), new Point(1, 0), true, false));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (176.5 / 30), (26.5 / 30), 0, (351 / 30), (51 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (431 / 30), (41.5 / 30), 0, (184 / 30), (81 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (345 / 30), (94 / 30), 0, (12 / 30), (24 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (495 / 30), (99.5 / 30), 0, (56 / 30), (35 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (411.5 / 30), (147 / 30), 0, (145 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (503.5 / 30), (153 / 30), 0, (39 / 30), (72 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (495 / 30), (259 / 30), 0, (56 / 30), (140 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (475.5 / 30), (159 / 30), 0, (17 / 30), (12 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (27.5 / 30), (190.5 / 30), 0, (53 / 30), (277 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (104.5 / 30), (120 / 30), 0, (73 / 30), (18 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (90.5 / 30), (292 / 30), 0, (73 / 30), (74 / 30), new Array("NONE"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (230.5 / 30), (301 / 30), 0, (147 / 30), (56 / 30), new Array("NONE"));
stair02 = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (143 / 30), (294 / 30), 0, new Array([(-16 / 30), (-39 / 30)], [(-10 / 30), (-39 / 30)], [(14 / 30), (-21 / 30)], [(14 / 30), (35 / 30)], [(-16 / 30), (35 / 30)]), new Array("NONE"));
stair02.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Ground, (400.5 / 30), (292 / 30), 0, (133 / 30), (74 / 30), new Array("NONE"));
stair01 = Handler_WorldItems.CreateGroundPolygon(Handler_WorldItems.Material.Ground, (320 / 30), (292 / 30), 0, new Array([(-16 / 30), (-19 / 30)], [(8 / 30), (-37 / 30)], [(14 / 30), (-37 / 30)], [(14 / 30), (37 / 30)], [(-16 / 30), (37 / 30)]), new Array("NONE"));
stair01.GetUserData().tiltValue = -2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (246 / 30), (145 / 30), 0, (102 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (197 / 30), (167 / 30), 0, (50 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (105 / 30), (184 / 30), 0, (102 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (221.5 / 30), (208 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (221.5 / 30), (230 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (221.5 / 30), (252 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (392.5 / 30), (212 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (392.5 / 30), (234 / 30), 0, (93 / 30), (2 / 30), new Array("CLOUD"));
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (423 / 30), (190 / 30), 0, (88 / 30), (2 / 30), new Array("CLOUD"));
stair03 = Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (167 / 30), (196 / 30), 0.785398163397448, (34 / 30), (3 / 30), new Array("CLOUD"));
stair03.GetUserData().tiltValue = 2;
Handler_WorldItems.CreateGroundBox(Handler_WorldItems.Material.Metal, (60 / 30), (139 / 30), 0, (12 / 30), (83 / 30), new Array("LADDER"));
lift = Handler_WorldItems.AddObject("LIFT_01", (86.5 / 30), (260 / 30), 0, new b2Vec2(), 0);
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("TABLE", (420 / 30), (136 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR", (404 / 30), (137 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CHAIR_R", (436 / 30), (136 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (416 / 30), (126.5 / 30), 0, new b2Vec2(), 0);
} else {
if (50 >= (Math.random() * 100)){
Handler_WorldItems.AddObject("COMP_SCREEN", (426 / 30), (123 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMP", (436 / 30), (123 / 30), 0, new b2Vec2(), 0);
} else {
Handler_WorldItems.AddObject("PAPER", (423.5 / 30), (124.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER", (433.5 / 30), (124.5 / 30), 0, new b2Vec2(), 0);
};
Handler_WorldItems.AddObject("DESK_1", (431 / 30), (135 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("COMFY_CHAIR", (410 / 30), (133 / 30), 0, new b2Vec2(), 0);
};
crate_hanging_1 = Handler_WorldItems.AddObject("CRATE_HANGING", (168 / 30), (131 / 30), 0, new b2Vec2(), 0);
crate_hanging_2 = Handler_WorldItems.AddObject("CRATE_HANGING", (303 / 30), (95 / 30), 0, new b2Vec2(), 0);
lamp2 = Handler_WorldItems.AddObject("LAMP_1", (367 / 30), (156.5 / 30), 0, new b2Vec2(), 0);
lamp3 = Handler_WorldItems.AddObject("LAMP_1", (395 / 30), (84.5 / 30), 0, new b2Vec2(), 0);
lamp1 = Handler_WorldItems.AddObject("LAMP_1", (423 / 30), (156.5 / 30), 0, new b2Vec2(), 0);
lamp4 = Handler_WorldItems.AddObject("LAMP_1", (367 / 30), (84.5 / 30), 0, new b2Vec2(), 0);
lamp5 = Handler_WorldItems.AddObject("LAMP_1", (423 / 30), (84.5 / 30), 0, new b2Vec2(), 0);
lamp6 = Handler_WorldItems.AddObject("LAMP_1", (124 / 30), (131.5 / 30), 0, new b2Vec2(), 0);
lamp7 = Handler_WorldItems.AddObject("LAMP_1", (85 / 30), (131.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE,BARREL,NONE", (281.5 / 30), (136 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL,BARREL_EXPLOSIVE,NONE", (230 / 30), (137 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,CRATE,NONE", (351 / 30), (203 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE", (259 / 30), (137 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,BARREL,CRATE,NONE", (261 / 30), (244 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL_EXPLOSIVE", (213 / 30), (200 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,CRATE", (183 / 30), (243 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (443.5 / 30), (248 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (431 / 30), (247 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,BARREL_EXPLOSIVE,CRATE", (96 / 30), (247 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (109 / 30), (103 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE", (94 / 30), (104 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,GASCAN", (429 / 30), (203 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,GASCAN,NONE,NONE", (404 / 30), (182 / 30), 1.5707963267949, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL,NONE,GASCAN,BARREL_EXPLOSIVE", (260 / 30), (200 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE,BARREL", (132 / 30), (174 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE,BARREL", (101 / 30), (174 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("GASCAN,NONE", (215 / 30), (162 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (221 / 30), (221 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE", (211 / 30), (266 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,NONE,BARREL_EXPLOSIVE", (355 / 30), (247 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,BARREL,NONE,CRATE", (375 / 30), (247 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,GASCAN,NONE", (392 / 30), (226 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("BARREL_EXPLOSIVE,CRATE", (390 / 30), (203 / 30), 0, new b2Vec2(), 0);
lamp8 = Handler_WorldItems.AddObject("LAMP_1", (451 / 30), (84.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("CRATE,BARREL_EXPLOSIVE,NONE", (221 / 30), (243 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("FILECAB", (381.5 / 30), (134.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (382.5 / 30), (123.5 / 30), 0, new b2Vec2(), 0);
Handler_WorldItems.AddObject("PAPER,NONE", (96.5 / 30), (92.5 / 30), 0, new b2Vec2(), 0);
pathGrid.AddNode(new PathNode("", 161, 268, "", null));
pathGrid.AddNode(new PathNode("", 135, 250, "", null));
pathGrid.AddNode(new PathNode("", 180, 247, "", null));
pathGrid.AddNode(new PathNode("", 180, 225, "", null));
pathGrid.AddNode(new PathNode("", 222, 247, "", null));
pathGrid.AddNode(new PathNode("", 222, 225, "", null));
pathGrid.AddNode(new PathNode("", 221, 203, "", null));
pathGrid.AddNode(new PathNode("", 201, 225, "", null));
pathGrid.AddNode(new PathNode("", 201, 247, "", null));
pathGrid.AddNode(new PathNode("", 201, 269, "", null));
pathGrid.AddNode(new PathNode("", 180, 269, "", null));
pathGrid.AddNode(new PathNode("", 222, 269, "", null));
pathGrid.AddNode(new PathNode("", 243, 269, "", null));
pathGrid.AddNode(new PathNode("", 263, 269, "", null));
pathGrid.AddNode(new PathNode("", 262, 247, "", null));
pathGrid.AddNode(new PathNode("", 262, 225, "", null));
pathGrid.AddNode(new PathNode("", 243, 247, "", null));
pathGrid.AddNode(new PathNode("", 243, 225, "", null));
pathGrid.AddNode(new PathNode("", 242, 203, "", null));
pathGrid.AddNode(new PathNode("", 262, 203, "", null));
pathGrid.AddNode(new PathNode("", 201, 203, "", null));
pathGrid.AddNode(new PathNode("", 184, 203, "", null));
pathGrid.AddNode(new PathNode("", 154, 179, "", null));
pathGrid.AddNode(new PathNode("", 181, 162, "", null));
pathGrid.AddNode(new PathNode("diveT", 203, 139, "", null));
pathGrid.AddNode(new PathNode("", 197, 162, "", null));
pathGrid.AddNode(new PathNode("", 217, 162, "", null));
pathGrid.AddNode(new PathNode("", 221, 140, "", null));
pathGrid.AddNode(new PathNode("", 243, 140, "", null));
pathGrid.AddNode(new PathNode("", 268, 140, "", null));
pathGrid.AddNode(new PathNode("", 290, 140, "", null));
pathGrid.AddNode(new PathNode("", 347, 136, "", null));
pathGrid.AddNode(new PathNode("", 283, 269, "", null));
pathGrid.AddNode(new PathNode("", 301, 269, "", null));
pathGrid.AddNode(new PathNode("", 329, 251, "", null));
pathGrid.AddNode(new PathNode("", 350, 251, "", null));
pathGrid.AddNode(new PathNode("", 351, 229, "", null));
pathGrid.AddNode(new PathNode("", 351, 207, "", null));
pathGrid.AddNode(new PathNode("", 392, 207, "", null));
pathGrid.AddNode(new PathNode("", 392, 229, "", null));
pathGrid.AddNode(new PathNode("", 392, 251, "", null));
pathGrid.AddNode(new PathNode("", 434, 251, "", null));
pathGrid.AddNode(new PathNode("", 434, 229, "", null));
pathGrid.AddNode(new PathNode("", 434, 207, "", null));
pathGrid.AddNode(new PathNode("", 414, 251, "", null));
pathGrid.AddNode(new PathNode("", 413, 229, "", null));
pathGrid.AddNode(new PathNode("", 413, 207, "", null));
pathGrid.AddNode(new PathNode("", 371, 251, "", null));
pathGrid.AddNode(new PathNode("", 371, 229, "", null));
pathGrid.AddNode(new PathNode("", 371, 207, "", null));
pathGrid.AddNode(new PathNode("", 459, 251, "", null));
pathGrid.AddNode(new PathNode("", 385, 184, "", null));
pathGrid.AddNode(new PathNode("", 413, 185, "", null));
pathGrid.AddNode(new PathNode("", 434, 185, "", null));
pathGrid.AddNode(new PathNode("", 460, 185, "", null));
pathGrid.AddNode(new PathNode("", 511, 185, "", null));
pathGrid.AddNode(new PathNode("", 511, 137, "", null));
pathGrid.AddNode(new PathNode("", 460, 136, "", null));
pathGrid.AddNode(new PathNode("", 430, 136, "", null));
pathGrid.AddNode(new PathNode("", 399, 136, "", null));
pathGrid.AddNode(new PathNode("", 370, 136, "", null));
pathGrid.AddNode(new PathNode("", 109, 250, "", null));
pathGrid.AddNode(new PathNode("", 86, 250, "", null));
pathGrid.AddNode(new PathNode("", 60, 250, "", null));
pathGrid.AddNode(new PathNode("", 121, 178, "", null));
pathGrid.AddNode(new PathNode("", 87, 178, "", null));
pathGrid.AddNode(new PathNode("", 61, 178, "", null));
pathGrid.AddNode(new PathNode("", 72.5, 106, "", null));
pathGrid.AddNode(new PathNode("", 104, 106, "", null));
pathGrid.AddNode(new PathNode("diveS", 135, 106, "", null));
pathGrid.AddNode(new PathNode("crate", 158, 120, "", crate_hanging_1));
pathGrid.AddNode(new PathNode("crate", 178, 121, "", crate_hanging_1));
pathGrid.AddNode(new PathNode("", 86, 252, "", lift));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[56], pathGrid.Nodes[54], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[55], pathGrid.Nodes[57], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[56], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[55], PathBind.STATIC, PathBind.PORTAL));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[57], pathGrid.Nodes[58], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[59], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[60], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[31], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[60], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[60], pathGrid.Nodes[59], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[59], pathGrid.Nodes[58], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[58], pathGrid.Nodes[57], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[54], pathGrid.Nodes[53], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[52], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[51], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[52], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[53], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[54], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[49], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[43], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[46], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[38], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[49], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[48], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[42], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[45], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[39], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[48], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[36], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[50], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[41], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[44], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[40], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[47], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[35], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[33], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[33], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[13], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[12], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[11], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[9], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[10], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[63], pathGrid.Nodes[62], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[63], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[61], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[1], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[61], pathGrid.Nodes[62], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[61], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[30], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[29], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[29], pathGrid.Nodes[28], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[28], pathGrid.Nodes[27], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[24], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[25], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[26], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[20], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[6], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[18], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[19], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[3], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[14], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[16], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[4], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[8], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[2], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[7], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[5], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[17], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[15], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[21], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[64], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[64], pathGrid.Nodes[65], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[65], pathGrid.Nodes[66], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[66], pathGrid.Nodes[65], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[65], pathGrid.Nodes[64], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[64], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[67], pathGrid.Nodes[68], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[68], pathGrid.Nodes[69], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[69], pathGrid.Nodes[68], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[68], pathGrid.Nodes[67], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[67], pathGrid.Nodes[66], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[66], pathGrid.Nodes[67], PathBind.STATIC, PathBind.LADDER));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[0], pathGrid.Nodes[2], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[32], pathGrid.Nodes[14], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[34], pathGrid.Nodes[36], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[50], pathGrid.Nodes[42], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[51], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[51], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[52], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[53], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[54], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[43], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[46], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[38], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[49], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[37], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[46], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[38], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[49], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[37], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[43], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[46], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[38], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[49], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[42], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[45], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[39], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[48], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[36], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[41], pathGrid.Nodes[45], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[39], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[48], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[36], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[35], pathGrid.Nodes[48], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[40], pathGrid.Nodes[45], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[47], pathGrid.Nodes[39], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[44], pathGrid.Nodes[42], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[33], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[33], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[33], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[27], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[24], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[27], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[24], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[27], pathGrid.Nodes[26], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[25], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[23], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[22], pathGrid.Nodes[23], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[22], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[30], pathGrid.Nodes[31], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[30], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[1], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[53], pathGrid.Nodes[43], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[52], pathGrid.Nodes[46], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[38], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[37], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[51], pathGrid.Nodes[49], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[37], pathGrid.Nodes[36], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[49], pathGrid.Nodes[48], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[38], pathGrid.Nodes[39], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[46], pathGrid.Nodes[45], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[43], pathGrid.Nodes[42], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[41], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[42], pathGrid.Nodes[50], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[45], pathGrid.Nodes[44], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[39], pathGrid.Nodes[40], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[48], pathGrid.Nodes[47], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[35], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[36], pathGrid.Nodes[34], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[32], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[0], PathBind.STATIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[2], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[8], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[4], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[16], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[14], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[15], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[17], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[5], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[7], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[7], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[3], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[21], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[20], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[6], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[18], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[19], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[13], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[4], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[8], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[2], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[10], pathGrid.Nodes[8], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[9], pathGrid.Nodes[4], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[11], pathGrid.Nodes[16], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[12], pathGrid.Nodes[14], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[5], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[3], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[7], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[5], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[17], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[15], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[6], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[20], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[21], PathBind.STATIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[20], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[6], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[18], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[19], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[1], pathGrid.Nodes[2], PathBind.STATIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[19], pathGrid.Nodes[15], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[15], pathGrid.Nodes[14], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[14], pathGrid.Nodes[13], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[21], pathGrid.Nodes[3], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[3], pathGrid.Nodes[2], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[2], pathGrid.Nodes[10], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[20], pathGrid.Nodes[7], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[7], pathGrid.Nodes[8], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[8], pathGrid.Nodes[9], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[6], pathGrid.Nodes[5], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[5], pathGrid.Nodes[4], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[4], pathGrid.Nodes[11], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[18], pathGrid.Nodes[17], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[17], pathGrid.Nodes[16], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[16], pathGrid.Nodes[12], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[26], pathGrid.Nodes[6], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[25], pathGrid.Nodes[20], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[23], pathGrid.Nodes[21], PathBind.STATIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[71], pathGrid.Nodes[24], PathBind.DYNAMIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[24], pathGrid.Nodes[71], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[70], pathGrid.Nodes[71], PathBind.DYNAMIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[71], pathGrid.Nodes[70], PathBind.DYNAMIC, PathBind.ROAD));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[70], pathGrid.Nodes[69], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[69], pathGrid.Nodes[70], PathBind.DYNAMIC, PathBind.SPRINTJUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[72], pathGrid.Nodes[62], PathBind.DYNAMIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[62], pathGrid.Nodes[72], PathBind.DYNAMIC, PathBind.JUMP));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[65], pathGrid.Nodes[72], PathBind.DYNAMIC, PathBind.CLOUDDOWN));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[31], pathGrid.Nodes[19], PathBind.STATIC, PathBind.DIVE));
pathGrid.AddBind(new PathBind("", pathGrid.Nodes[72], pathGrid.Nodes[65], PathBind.DYNAMIC, PathBind.JUMP));
ropeLamp1 = Handler_WorldItems.AddHangingLamp(new Point(139, 52), 20);
ropeLamp2 = Handler_WorldItems.AddHangingLamp(new Point(267, 52), 20);
ropeLamp3 = Handler_WorldItems.AddHangingLamp(new Point(203, 52), 20);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp1, lamp1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp2, lamp2.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp3, lamp3.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp4, lamp4.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp5, lamp5.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp6, lamp6.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp7, lamp7.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(Handler_WorldItems.Ground, lamp8, lamp8.GetPosition(), 0, 0);
closness = (0.5 / 30);
holder1 = Handler_WorldItems.AddObject("CRATE_HANGING_HOLDER", crate_hanging_1.GetPosition().x, (crate_hanging_1.GetPosition().y - ((crate_hanging_1.GetUserData().height / 30) * 0.5)), 0, new b2Vec2(), 0);
holder2 = Handler_WorldItems.AddObject("CRATE_HANGING_HOLDER", crate_hanging_2.GetPosition().x, (crate_hanging_2.GetPosition().y - ((crate_hanging_2.GetUserData().height / 30) * 0.5)), 0, new b2Vec2(), 0);
Handler_WorldItems.AddLimitedJoint(crate_hanging_1, holder1, holder1.GetPosition(), 0, 0);
Handler_WorldItems.AddLimitedJoint(crate_hanging_2, holder2, holder2.GetPosition(), 0, 0);
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder1, new b2Vec2(holder1.GetPosition().x, (51 / 30)), new b2Vec2((holder1.GetPosition().x + closness), (holder1.GetPosition().y - ((holder1.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder1, new b2Vec2(holder1.GetPosition().x, (51 / 30)), new b2Vec2((holder1.GetPosition().x - closness), (holder1.GetPosition().y - ((holder1.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder2, new b2Vec2(holder2.GetPosition().x, (51 / 30)), new b2Vec2((holder2.GetPosition().x + closness), (holder2.GetPosition().y - ((holder2.GetUserData().height / 30) * 0.5))));
Handler_WorldItems.AddDistanceJoint(Handler_WorldItems.Ground, holder2, new b2Vec2(holder2.GetPosition().x, (51 / 30)), new b2Vec2((holder2.GetPosition().x - closness), (holder2.GetPosition().y - ((holder2.GetUserData().height / 30) * 0.5))));
crate_hanging_1.ApplyForce(new b2Vec2(((Math.random() * 10) - 5), Math.random()), new b2Vec2(((crate_hanging_1.GetPosition().x + (Math.random() * 2)) - 1), crate_hanging_1.GetPosition().y));
crate_hanging_2.ApplyForce(new b2Vec2(((Math.random() * 10) - 5), Math.random()), new b2Vec2(((crate_hanging_2.GetPosition().x + (Math.random() * 2)) - 1), crate_hanging_2.GetPosition().y));
Handler_WorldItems.AddGlass(new Point((341 / 30), (105 / 30)), new Point((341 / 30), (142 / 30)));
CreateElevator(lift, 66, 1);
rope1 = new Rope(Handler_WorldItems.Ground, holder1, new b2Vec2(holder1.GetPosition().x, (51 / 30)), new b2Vec2(holder1.GetPosition().x, (holder1.GetPosition().y - ((holder1.GetUserData().height / 30) * 0.5))));
rope2 = new Rope(Handler_WorldItems.Ground, holder2, new b2Vec2(holder2.GetPosition().x, (51 / 30)), new b2Vec2(holder2.GetPosition().x, (holder2.GetPosition().y - ((holder2.GetUserData().height / 30) * 0.5))));
layer_mc = MovieClip(_dynamic_mc.getChildByName("OBJECTS"));
layer_mc.addChild(rope1.MC);
layer_mc.addChild(rope2.MC);
MapUpdate = function (_arg1:Number):void{
rope1.UpdateMC();
rope2.UpdateMC();
ropeLamp1.UpdateMC();
ropeLamp2.UpdateMC();
ropeLamp3.UpdateMC();
};
holder1.GetUserData().onDestruction = function (_arg1:b2Body):void{
rope1.Remove();
pathGrid.RemoveNodes("CRATE");
pathGrid.AddBind(new PathBind("", pathGrid.GetNode("diveS"), pathGrid.GetNode("diveT"), PathBind.STATIC, PathBind.DIVE));
pathGrid.UpdateSpecials();
pathGrid.AnalyzeGrid();
};
holder2.GetUserData().onDestruction = function (_arg1:b2Body):void{
rope2.Remove();
};
MapStart = function ():void{
mapGraphic.AddMC(GetLevelMC("fan_1"));
mapGraphic.AddMC(GetLevelMC("fan_2"));
mapGraphic.AddMC(GetLevelMC("fan_3"));
};
}
public function GetMinimumMapArea(_arg1:Number=0):Rectangle{
return (mapArea);
}
public function GetWeaponSpawns(_arg1:Number=0):Array{
return (weaponSpawns);
}
}
}//package Code.Handler
Section 154
//MenuMain (Code.Handler.MenuMain)
package Code.Handler {
import flash.events.*;
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
import Code.Data.Menu.*;
import flash.net.*;
public class MenuMain {
private var _menu_history:Array;
private var _player_choosen_skins:Array;
private var _Handler_Options:Options;
private var _Handler_Sounds:Sounds;
private var _Handler_GameMain:GameMain;
private var _game_mc:MovieClip;
private var _delay_timer:Number;
private var _curr_menu:submenu_base;
private var _menu_overlay:MovieClip;
private var _Handler_Keyboard:InputKeyboard;
private var _lastChoise:String;// = ""
private var _Handler_Output:OutputTrace;
private var _stage;
public function MenuMain(_arg1:MenuMainData){
_lastChoise = "";
super();
_game_mc = _arg1.game_mc;
_stage = _arg1.stage_temp;
_Handler_Output = _arg1.Handler_Output;
_Handler_GameMain = _arg1.Handler_GameMain;
_Handler_Sounds = _arg1.Handler_Sounds;
_Handler_Options = _arg1.Handler_Options;
_menu_overlay = new main_menu_overlay();
_menu_history = new Array();
_menu_overlay.link_1.addEventListener(MouseEvent.CLICK, Link1);
_menu_overlay.link_2.addEventListener(MouseEvent.CLICK, Link2);
_menu_overlay.link_3.addEventListener(MouseEvent.CLICK, Link3);
_menu_overlay.link_4.addEventListener(MouseEvent.CLICK, Link4);
_player_choosen_skins = new Array();
}
private function GetRndChar():int{
var _local1:int;
var _local2:*;
var _local3:int;
var _local4:int;
_local2 = false;
_local1 = PlayerCharacter.GetRandomCharacter();
_local2 = true;
_local3 = 0;
while (_local3 < _player_choosen_skins.length) {
if (_local1 == _player_choosen_skins[_local3]){
_local2 = false;
};
_local3++;
};
while (!(_local2)) {
_local1 = PlayerCharacter.GetRandomCharacter();
_local2 = true;
_local4 = 0;
while (_local4 < _player_choosen_skins.length) {
if (_local1 == _player_choosen_skins[_local4]){
_local2 = false;
};
_local4++;
};
};
return (_local1);
}
public function StartNewGame():void{
var _local1:PlayerSetupData;
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:NewGameData;
_player_choosen_skins = new Array();
_local1 = new PlayerSetupData();
_local1.ot = _Handler_Output;
_local1.keys = _Handler_Options.GetPlayerKeys();
_local1.totalPlayers = (_menu_history[0].Players + _menu_history[3].NoBots);
_local1.ai = new Array(1, 0, 0, 0, 0, 0, 0, 0);
_local1.characters = new Array(_menu_history[2].PlayerPlateOne.Character, 0, 0, 0, 0, 0, 0, 0);
_local1.teams = new Array(_menu_history[2].PlayerPlateOne.Team, 0, 0, 0, 0, 0, 0, 0);
if (_local1.characters[0] == 0){
_local1.characters[0] = GetRndChar();
};
_player_choosen_skins.push(_local1.characters[0]);
if (_menu_history[0].Players == 2){
_local1.ai[1] = 2;
_local1.characters[1] = _menu_history[2].PlayerPlateTwo.Character;
_local1.teams[1] = _menu_history[2].PlayerPlateTwo.Team;
if (_local1.characters[1] == 0){
_local1.characters[1] = GetRndChar();
};
_player_choosen_skins.push(_local1.characters[1]);
};
_local1.aiDifficulty = new Array(0, 0, 0, 0, 0, 0, 0, 0);
_local2 = 0;
_local3 = _menu_history[0].Players;
while (_local3 < _local1.totalPlayers) {
_local1.characters[_local3] = _menu_history[4].BotPlates[_local2].Character;
_local1.teams[_local3] = _menu_history[4].BotPlates[_local2].Team;
_local1.aiDifficulty[_local3] = _menu_history[4].BotPlates[_local2].Difficulty;
_local2++;
_local3++;
};
_local4 = 0;
while (_local4 < _local1.characters.length) {
if (_local1.characters[_local4] == 0){
_local1.characters[_local4] = GetRndChar();
};
_local4++;
};
_local5 = new NewGameData();
_local5.lvl = _menu_history[(_menu_history.length - 1)].Level;
if (_local5.lvl == Maps.RANDOM_MAP){
_local5.lvl = (2 + Math.floor((Math.random() * (Maps.RANDOM_MAP - 2.001))));
};
_local5.pSetupData = _local1;
_local5.gamePosX = 0;
if (_local1.totalPlayers > 4){
_local5.gameScale = 1;
_local5.gamePosY = 75;
} else {
_local5.gameScale = 1.05;
_local5.gamePosY = (75 / 2);
};
_local5.challengeNr = -1;
_local5.isMenuDemo = false;
_local5.isTutorial = false;
_local5.isSurvival = false;
_local5.showTips = true;
_local5.newScore = true;
_local5.gameMode = _menu_history[(_menu_history.length - 1)].Mode;
_Handler_GameMain.StartNewGame(_local5);
}
private function DeleteProgress():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
_local1.data.stageLevelsFinished = [false, false, false, false, false, false, false, false, false, false, false, false];
_local1.flush();
}
private function Show(_arg1:Array):void{
var _local2:int;
_local2 = 0;
while (_local2 < _arg1.length) {
MovieClip(_arg1[_local2]).visible = true;
_local2++;
};
}
private function StartSurvival():void{
_stage.removeChild(_menu_overlay);
_Handler_Keyboard.Deconstruct();
_Handler_GameMain.Stop();
StartSurvivalGame();
}
private function OpenInstructions():void{
var targetURL:URLRequest;
try {
targetURL = new URLRequest("http://mythologicinteractive.com/?page_id=21#instructions");
navigateToURL(targetURL, "_blank");
} catch(e:Error) {
};
}
private function StartSurvivalGame():void{
var _local1:PlayerSetupData;
var _local2:NewGameData;
_player_choosen_skins = new Array();
_local1 = new PlayerSetupData();
_local1.ot = _Handler_Output;
_local1.keys = _Handler_Options.GetPlayerKeys();
_local1.totalPlayers = _menu_history[0].Players;
_local1.aiDifficulty = new Array(3, 3, 3, 3, 3, 3, 3, 3);
_local1.ai = new Array(1, 0, 0, 0, 0, 0, 0, 0);
_local1.characters = new Array(_menu_history[2].PlayerPlateOne.Character, 0, 0, 0, 0, 0, 0, 0);
_local1.teams = new Array(_menu_history[2].PlayerPlateOne.Team, 0, 0, 0, 0, 0, 0, 0);
if (_local1.characters[0] == 0){
_local1.characters[0] = GetRndChar();
};
_player_choosen_skins.push(_local1.characters[0]);
if (_menu_history[0].Players == 2){
_local1.ai[1] = 2;
_local1.characters[1] = _menu_history[2].PlayerPlateTwo.Character;
_local1.teams[1] = _menu_history[2].PlayerPlateTwo.Team;
if (_local1.characters[1] == 0){
_local1.characters[1] = GetRndChar();
};
_player_choosen_skins.push(_local1.characters[1]);
};
_local2 = new NewGameData();
_local2.lvl = 10;
_local2.pSetupData = _local1;
_local2.gameScale = 1;
_local2.gamePosX = 0;
_local2.gamePosY = 0;
_local2.challengeNr = -1;
_local2.isMenuDemo = false;
_local2.isTutorial = false;
_local2.isSurvival = true;
_local2.showTips = false;
_local2.newScore = true;
_local2.gameMode = 1;
_Handler_GameMain.StartNewGame(_local2);
}
private function CheckPrevMenu():void{
if (_menu_history.length > 0){
if (_curr_menu.CanReturn){
_curr_menu.Hide();
_curr_menu = _menu_history[(_menu_history.length - 1)];
_curr_menu.Show();
_menu_history.splice((_menu_history.length - 1), 1);
if (((!((_lastChoise == "delete_progress"))) && (!((_lastChoise == "not_delete_progress"))))){
if ((((_menu_history.length == 4)) && ((_menu_history[3].NoBots == 0)))){
KeyPressed(MenuKey.KEY_BACKSPACE);
} else {
if (_lastChoise != "reset"){
_Handler_Sounds.PlayMightySound("CANCEL");
};
};
};
if (_menu_history.length == 1){
_menu_history[0].Show();
};
};
};
}
private function StartTutorial():void{
_stage.removeChild(_menu_overlay);
_Handler_Keyboard.Deconstruct();
_Handler_GameMain.Stop();
StartTutorialGame();
}
private function StartChallenge():void{
_stage.removeChild(_menu_overlay);
_Handler_Keyboard.Deconstruct();
_Handler_GameMain.Stop();
StartChallengeGame();
}
public function get MenuOverlay():MovieClip{
return (_menu_overlay);
}
private function StartTutorialGame():void{
var _local1:PlayerSetupData;
var _local2:NewGameData;
_player_choosen_skins = new Array();
_local1 = new PlayerSetupData();
_local1.ot = _Handler_Output;
_local1.keys = _Handler_Options.GetPlayerKeys();
_local1.characters = new Array(1, 2, 3, 3, 3, 3, 3, 3);
_local1.totalPlayers = 1;
_local1.teams = new Array(0, 0, 0, 0, 0, 0, 0, 0);
_local1.ai = new Array(1, 2, 0, 0, 0, 0, 0, 0);
_local1.aiDifficulty = new Array(3, 3, 3, 3, 3, 3, 3, 3);
_local2 = new NewGameData();
_local2.lvl = 1;
_local2.pSetupData = _local1;
_local2.gameScale = 1;
_local2.gamePosX = 0;
_local2.gamePosY = 0;
_local2.challengeNr = -1;
_local2.isMenuDemo = false;
_local2.isTutorial = true;
_local2.isSurvival = false;
_local2.showTips = false;
_local2.newScore = true;
_local2.gameMode = 1;
_Handler_GameMain.StartNewGame(_local2);
}
private function StartChallengeGame():void{
var _local1:int;
var _local2:Array;
var _local3:int;
var _local4:PlayerSetupData;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:NewGameData;
_player_choosen_skins = new Array();
_local1 = (_menu_history[3].SelectedChallenge - 1);
_local2 = Challenges.CHALLENGE[(_menu_history[0].Players - 1)][_local1];
_local3 = (_local2.length - 1);
_local4 = new PlayerSetupData();
_local4.ot = _Handler_Output;
_local4.keys = _Handler_Options.GetPlayerKeys();
_local4.totalPlayers = (_menu_history[0].Players + _local3);
_local4.ai = new Array(1, 0, 0, 0, 0, 0, 0, 0);
_local4.characters = new Array(_menu_history[2].PlayerPlateOne.Character, 0, 0, 0, 0, 0, 0, 0);
_local4.teams = new Array(_menu_history[2].PlayerPlateOne.Team, 0, 0, 0, 0, 0, 0, 0);
if (_local4.characters[0] == 0){
_local4.characters[0] = GetRndChar();
};
_player_choosen_skins.push(_local4.characters[0]);
if (_menu_history[0].Players == 2){
_local4.ai[1] = 2;
_local4.characters[1] = _menu_history[2].PlayerPlateTwo.Character;
_local4.teams[1] = _menu_history[2].PlayerPlateTwo.Team;
if (_local4.characters[1] == 0){
_local4.characters[1] = GetRndChar();
};
_player_choosen_skins.push(_local4.characters[1]);
};
_local4.aiDifficulty = new Array(0, 0, 0, 0, 0, 0, 0, 0);
_local5 = 1;
_local6 = _menu_history[0].Players;
while (_local6 < _local4.totalPlayers) {
_local4.characters[_local6] = 0;
_local4.teams[_local6] = 2;
_local4.aiDifficulty[_local6] = _local2[_local5];
_local5++;
_local6++;
};
if (_local1 == 11){
_local4.characters[_menu_history[0].Players] = PlayerCharacter.FUNNYMAN;
};
_local7 = 0;
while (_local7 < _local4.characters.length) {
if (_local4.characters[_local7] == 0){
_local4.characters[_local7] = GetRndChar();
};
_local7++;
};
_local8 = new NewGameData();
_local8.lvl = _local2[0];
_local8.pSetupData = _local4;
_local8.gamePosX = 0;
if (_local4.totalPlayers > 4){
_local8.gameScale = 1;
_local8.gamePosY = 75;
} else {
_local8.gameScale = 1.05;
_local8.gamePosY = (75 / 2);
};
_local8.challengeNr = _local1;
_local8.isMenuDemo = false;
_local8.isTutorial = false;
_local8.isSurvival = false;
_local8.showTips = true;
_local8.newScore = true;
_local8.gameMode = 8;
_Handler_GameMain.StartNewGame(_local8);
}
private function Link1(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://johanhjarpe.newgrounds.com");
navigateToURL(_local2, "_blank");
}
private function Link2(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://gurt.newgrounds.com/");
navigateToURL(_local2, "_blank");
}
private function Link3(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://hzlancer.newgrounds.com/");
navigateToURL(_local2, "_blank");
}
private function Link4(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://mythologicinteractive.com/");
navigateToURL(_local2, "_blank");
}
public function StartMenuGame():void{
var _local1:PlayerSetupData;
var _local2:int;
var _local3:NewGameData;
_player_choosen_skins = new Array();
_local1 = new PlayerSetupData();
_local1.ot = _Handler_Output;
_local1.characters = new Array(GetRndChar(), GetRndChar(), GetRndChar(), GetRndChar(), GetRndChar(), GetRndChar(), GetRndChar(), GetRndChar());
_local2 = Math.floor((Math.random() * 4.9999));
switch (_local2){
case 0:
_local1.totalPlayers = 3;
_local1.teams = new Array(0, 0, 0, 0, 0, 0, 0, 0);
break;
case 1:
_local1.totalPlayers = 4;
_local1.teams = new Array(1, 1, 2, 2, 0, 0, 0, 0);
break;
case 2:
_local1.totalPlayers = 5;
_local1.teams = new Array(0, 0, 0, 4, 4, 0, 0, 0);
break;
case 3:
_local1.totalPlayers = 6;
_local1.teams = new Array(1, 1, 2, 2, 3, 3, 4, 4);
break;
default:
_local1.characters = new Array(1, 2, 3, 3, 3, 3, 3, 3);
_local1.totalPlayers = 2;
_local1.teams = new Array(0, 0, 0, 0, 0, 0, 0, 0);
break;
};
_local1.ai = new Array(0, 0, 0, 0, 0, 0, 0, 0);
_local1.aiDifficulty = new Array(3, 3, 3, 3, 3, 3, 3, 3);
_local3 = new NewGameData();
_local3.lvl = (2 + Math.floor((Math.random() * 5.999)));
_local3.pSetupData = _local1;
_local3.gameScale = 0.95;
_local3.gamePosX = 80;
_local3.gamePosY = 110;
_local3.challengeNr = -1;
_local3.isMenuDemo = true;
_local3.isTutorial = false;
_local3.isSurvival = false;
_local3.showTips = false;
_local3.newScore = true;
_local3.gameMode = 1;
_Handler_GameMain.StartNewGame(_local3);
}
private function KeyPressed(_arg1:int):void{
_curr_menu.KeyPressed(_arg1);
switch (_arg1){
case MenuKey.KEY_ENTER:
CheckNextMenu();
break;
case MenuKey.KEY_BACKSPACE:
CheckPrevMenu();
break;
};
}
public function UserInpuOver():void{
_stage.removeChild(_menu_overlay);
_Handler_Keyboard.Deconstruct();
_Handler_GameMain.Stop();
StartNewGame();
}
public function OpenMenu():void{
_Handler_Keyboard = new InputKeyboard(_stage);
StartMenuGame();
if (_menu_history.length > 0){
_curr_menu.Show();
} else {
_menu_history = new Array();
Hide([_menu_overlay.vs_1p_setup, _menu_overlay.vs_2p_setup, _menu_overlay.map_selection, _menu_overlay.mode_selection, _menu_overlay.no_bots, _menu_overlay.bot_7_setup, _menu_overlay.bot_6_setup, _menu_overlay.set_up, _menu_overlay.set_up_main, _menu_overlay.challenge_selection, _menu_overlay.confirm_delete]);
_curr_menu = new first_choise(_menu_overlay.first_choise, _Handler_Sounds);
};
_stage.addChild(_menu_overlay);
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("UP"), function ():void{
KeyPressed(MenuKey.KEY_UP);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("DOWN"), function ():void{
KeyPressed(MenuKey.KEY_DOWN);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("LEFT"), function ():void{
KeyPressed(MenuKey.KEY_LEFT);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("RIGHT"), function ():void{
KeyPressed(MenuKey.KEY_RIGHT);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("ENTER"), function ():void{
KeyPressed(MenuKey.KEY_ENTER);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("SPACE"), function ():void{
KeyPressed(MenuKey.KEY_ENTER);
});
_Handler_Keyboard.AddHandler(_Handler_Keyboard.GetKeyCode("BACKSPACE"), function ():void{
KeyPressed(MenuKey.KEY_BACKSPACE);
});
_Handler_Keyboard.AddHandler(27, function ():void{
KeyPressed(MenuKey.KEY_BACKSPACE);
});
}
private function Hide(_arg1:Array):void{
var _local2:int;
_local2 = 0;
while (_local2 < _arg1.length) {
MovieClip(_arg1[_local2]).visible = false;
_local2++;
};
}
private function CheckNextMenu():void{
var _local1:String;
var _local2:int;
var _local3:int;
var _local4:int;
_local1 = _curr_menu.GetChoice();
if (_local1 != ""){
_lastChoise = _local1;
_menu_history.push(_curr_menu);
switch (_local1){
case "mode_selection":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new mode_selection(_menu_overlay.mode_selection, _Handler_Sounds);
_curr_menu.Show();
break;
case "vs_mode":
_menu_history[0].Hide();
_menu_history[1].Hide();
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new vs_player_setup(MovieClip(_menu_overlay.getChildByName((("vs_" + _menu_history[0].Players) + "p_setup"))), _Handler_Sounds, _menu_history[0].Players, 0);
_curr_menu.Show();
break;
case "stage_mode":
_menu_history[0].Hide();
_menu_history[1].Hide();
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new vs_player_setup(MovieClip(_menu_overlay.getChildByName((("vs_" + _menu_history[0].Players) + "p_setup"))), _Handler_Sounds, _menu_history[0].Players, 1);
_curr_menu.Show();
break;
case "survival_mode":
_menu_history[0].Hide();
_menu_history[1].Hide();
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new vs_player_setup(MovieClip(_menu_overlay.getChildByName((("vs_" + _menu_history[0].Players) + "p_setup"))), _Handler_Sounds, _menu_history[0].Players, 2);
_curr_menu.Show();
break;
case "challenge_selection":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new challenge_selection(MovieClip(_menu_overlay.getChildByName("challenge_selection")), _Handler_Sounds, _Handler_Keyboard, _menu_history[0].Players);
_curr_menu.Show();
break;
case "confirm_delete":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new confirm_delete(MovieClip(_menu_overlay.getChildByName("confirm_delete")), _Handler_Sounds);
_curr_menu.Show();
break;
case "delete_progress":
_Handler_Sounds.PlayMightySound("CANCEL");
DeleteProgress();
KeyPressed(MenuKey.KEY_BACKSPACE);
KeyPressed(MenuKey.KEY_BACKSPACE);
_lastChoise = "";
break;
case "not_delete_progress":
_Handler_Sounds.PlayMightySound("CANCEL");
KeyPressed(MenuKey.KEY_BACKSPACE);
KeyPressed(MenuKey.KEY_BACKSPACE);
_lastChoise = "";
break;
case "no_bots":
_Handler_Sounds.PlayMightySound("ACCEPT");
_local2 = 0;
if (_menu_history[0].Players == 1){
_local2 = 1;
} else {
if ((((_menu_history[2].PlayerPlateOne.Team == _menu_history[2].PlayerPlateTwo.Team)) && (!((_menu_history[2].PlayerPlateOne.Team == 0))))){
_local2 = 1;
};
};
_local3 = (8 - _menu_history[0].Players);
_curr_menu = new no_bots(MovieClip(_menu_overlay.getChildByName("no_bots")), _Handler_Sounds, _local2, _local3);
_curr_menu.Show();
break;
case "prepare_bots":
_local4 = 0;
if (_menu_history[0].Players == 1){
_local4 = _menu_history[2].PlayerPlateOne.Team;
} else {
if (_menu_history[2].PlayerPlateOne.Team == _menu_history[2].PlayerPlateTwo.Team){
_local4 = _menu_history[2].PlayerPlateOne.Team;
};
};
if (_menu_history[0].Players == 1){
_curr_menu = new bot_setup(MovieClip(_menu_overlay.getChildByName("bot_7_setup")), _Handler_Sounds, _menu_history[3].NoBots, _local4);
} else {
_curr_menu = new bot_setup(MovieClip(_menu_overlay.getChildByName("bot_6_setup")), _Handler_Sounds, _menu_history[3].NoBots, _local4);
};
_curr_menu.Show();
if (_menu_history[3].NoBots == 0){
KeyPressed(MenuKey.KEY_ENTER);
} else {
_Handler_Sounds.PlayMightySound("ACCEPT");
};
break;
case "map_selection":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new map_selection(MovieClip(_menu_overlay.getChildByName("map_selection")), _Handler_Sounds, 0);
_curr_menu.Show();
break;
case "survival_selection":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new map_selection(MovieClip(_menu_overlay.getChildByName("map_selection")), _Handler_Sounds, 2);
_curr_menu.Show();
break;
case "reset":
while (_menu_history.length > 2) {
KeyPressed(MenuKey.KEY_BACKSPACE);
};
_Handler_Sounds.PlayMightySound("CANCEL");
_lastChoise = "";
break;
case "fight":
UserInpuOver();
_menu_history.splice((_menu_history.length - 1), 1);
break;
case "tutorial":
StartTutorial();
_menu_history.splice((_menu_history.length - 1), 1);
OpenInstructions();
break;
case "start_challenge":
StartChallenge();
_menu_history.splice((_menu_history.length - 1), 1);
break;
case "start_survival":
StartSurvival();
_menu_history.splice((_menu_history.length - 1), 1);
break;
case "set_up":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new set_up(MovieClip(_menu_overlay.getChildByName("set_up")), _Handler_Sounds, _Handler_Keyboard, _Handler_Options);
_curr_menu.Show();
break;
case "set_up_main":
_Handler_Sounds.PlayMightySound("ACCEPT");
_curr_menu = new set_up_main(MovieClip(_menu_overlay.getChildByName("set_up_main")), _Handler_Sounds, _Handler_Keyboard, _Handler_Options);
_curr_menu.Show();
break;
};
};
}
}
}//package Code.Handler
Section 155
//Options (Code.Handler.Options)
package Code.Handler {
import flash.events.*;
import flash.display.*;
import flash.ui.*;
import flash.net.*;
public class Options extends MovieClip {
private var _Handler_Output:OutputTrace;
private var _lastQualityLvl:String;// = ""
private var _Handler_Camera:Cam;
private var _effectLvl:int;// = 3
private var _playerDefaultKeys:Array;
private var _Handler_Keyboard:InputKeyboard;
private var _totalEffects:int;
private var _stage;
public function Options(_arg1, _arg2:OutputTrace){
_effectLvl = 3;
_totalEffects = (10 + (3 * 70));
_lastQualityLvl = "";
super();
_stage = _arg1;
_Handler_Output = _arg2;
_Handler_Keyboard = new InputKeyboard(_stage);
_Handler_Keyboard.AddHandler(116, _Handler_Output.Show);
_Handler_Keyboard.AddHandler(117, _Handler_Output.Hide);
_Handler_Keyboard.AddHandler(123, ToggleFullscreen);
_stage.quality = "HIGH";
_stage.scaleMode = "noScale";
_stage.addEventListener(Event.RESIZE, OnStageResize);
_playerDefaultKeys = new Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
SetDefaultP1Keys();
SetDefaultP2Keys();
LoadData();
_Handler_Output.Trace("Options Created");
}
public function linkClick(_arg1:ContextMenuEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://mythologicinteractive.com/");
navigateToURL(_local2, "_blank");
}
public function set PlayerKeys(_arg1:Array):void{
_playerDefaultKeys = _arg1;
}
public function GetEffectLevel():int{
return (_effectLvl);
}
public function ToggleEffectLevel(_arg1:int=-1):void{
_effectLvl = (_effectLvl + _arg1);
if (_effectLvl < 1){
_effectLvl = 4;
};
if (_effectLvl > 4){
_effectLvl = 1;
};
_totalEffects = (10 + (_effectLvl * 70));
_Handler_Output.Trace(("Effect Level: " + _effectLvl));
}
public function GetPlayerKeys():Array{
return (_playerDefaultKeys);
}
public function LinkToCam(_arg1:Cam):void{
_Handler_Camera = _arg1;
}
public function SetDefaultP2Keys():void{
_playerDefaultKeys[1][0] = _Handler_Keyboard.GetKeyCode("W");
_playerDefaultKeys[1][1] = _Handler_Keyboard.GetKeyCode("S");
_playerDefaultKeys[1][2] = _Handler_Keyboard.GetKeyCode("A");
_playerDefaultKeys[1][3] = _Handler_Keyboard.GetKeyCode("D");
_playerDefaultKeys[1][4] = _Handler_Keyboard.GetKeyCode("1");
_playerDefaultKeys[1][5] = _Handler_Keyboard.GetKeyCode("2");
_playerDefaultKeys[1][6] = _Handler_Keyboard.GetKeyCode("3");
_playerDefaultKeys[1][7] = _Handler_Keyboard.GetKeyCode("4");
_playerDefaultKeys[1][8] = _Handler_Keyboard.GetKeyCode("W");
_playerDefaultKeys[1][9] = _Handler_Keyboard.GetKeyCode("S");
_playerDefaultKeys[1][10] = 0;
}
public function ToggleFullscreen():void{
if (_stage.displayState == StageDisplayState.FULL_SCREEN){
ExitFullscreen();
} else {
EnterFullscreen();
};
}
public function GetStageQuality():String{
return (_stage.quality);
}
public function GetTotalEffects():int{
return (_totalEffects);
}
public function get PlayerKeys():Array{
return (_playerDefaultKeys);
}
public function GetEffectQuality():String{
switch (_effectLvl){
case 1:
return ("LOW");
case 2:
return ("MEDIUM");
case 3:
return ("HIGH");
case 4:
return ("BEST");
};
return ("LOW");
}
public function ExitFullscreen():void{
_Handler_Output.Trace("Normal Mode");
_stage.displayState = StageDisplayState.NORMAL;
}
public function ToggleGraphicQuality(_arg1:int=-1):void{
if (_arg1 < 0){
switch (_stage.quality){
case "HIGH":
_stage.quality = "MEDIUM";
break;
case "MEDIUM":
_stage.quality = "LOW";
break;
case "LOW":
_stage.quality = "HIGH";
break;
};
} else {
switch (_stage.quality){
case "HIGH":
_stage.quality = "LOW";
break;
case "MEDIUM":
_stage.quality = "HIGH";
break;
case "LOW":
_stage.quality = "MEDIUM";
break;
};
};
}
public function CustomizedContextMenu():ContextMenu{
var _local1:ContextMenu;
var _local2:ContextMenuItem;
var _local3:ContextMenuItem;
_local1 = new ContextMenu();
_local1.hideBuiltInItems();
_local1.builtInItems.quality = true;
_local2 = new ContextMenuItem("Superfighters");
_local2.enabled = false;
_local3 = new ContextMenuItem("MythoLogic Interactive", true, true, true);
_local3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, linkClick);
_local1.customItems.push(_local3);
return (_local1);
}
public function EnterFullscreen():void{
_stage.displayState = StageDisplayState.FULL_SCREEN;
if (_stage.displayState != StageDisplayState.FULL_SCREEN){
_Handler_Output.Trace("<b>Error</b>: Can't Enter Fullscreen Mode. To allow full-screen, allowFullScreen must be true in the object/embed tags.");
} else {
_Handler_Output.Trace("Fullscreen Mode");
};
}
private function LoadData():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
if (_local1.data.playerKeys != undefined){
_playerDefaultKeys = _local1.data.playerKeys;
};
if (_local1.data.graphicQuality != undefined){
_stage.quality = _local1.data.graphicQuality;
};
if (_local1.data.effectLevel != undefined){
_effectLvl = _local1.data.effectLevel;
};
}
private function OnStageResize(_arg1:Event):void{
_Handler_Camera.SetScreenResulotion(_stage.stageWidth, _stage.stageHeight);
}
public function SetDefaultP1Keys():void{
_playerDefaultKeys[0][0] = _Handler_Keyboard.GetKeyCode("UP");
_playerDefaultKeys[0][1] = _Handler_Keyboard.GetKeyCode("DOWN");
_playerDefaultKeys[0][2] = _Handler_Keyboard.GetKeyCode("LEFT");
_playerDefaultKeys[0][3] = _Handler_Keyboard.GetKeyCode("RIGHT");
_playerDefaultKeys[0][4] = _Handler_Keyboard.GetKeyCode("N");
_playerDefaultKeys[0][5] = _Handler_Keyboard.GetKeyCode("M");
_playerDefaultKeys[0][6] = 188;
_playerDefaultKeys[0][7] = 190;
_playerDefaultKeys[0][8] = _Handler_Keyboard.GetKeyCode("UP");
_playerDefaultKeys[0][9] = _Handler_Keyboard.GetKeyCode("DOWN");
_playerDefaultKeys[0][10] = 0;
}
public function Update():void{
if (_stage.quality != _lastQualityLvl){
switch (_stage.quality){
case "HIGH":
_effectLvl = 3;
break;
case "MEDIUM":
_effectLvl = 2;
break;
case "LOW":
_effectLvl = 1;
break;
case "BEST":
_effectLvl = 4;
break;
default:
_effectLvl = 0;
break;
};
_lastQualityLvl = _stage.quality;
};
}
public function SaveData():void{
var _local1:SharedObject;
_local1 = SharedObject.getLocal("superfightersData_v1.0");
_local1.data.playerKeys = _playerDefaultKeys;
_local1.data.graphicQuality = _stage.quality;
_local1.data.effectLevel = _effectLvl;
_local1.flush();
}
}
}//package Code.Handler
Section 156
//OutputTrace (Code.Handler.OutputTrace)
package Code.Handler {
import flash.display.*;
import flash.text.*;
public class OutputTrace extends MovieClip {
private var _trace_txt:TextField;
private var _debug:Boolean;
private var _message_string:String;
public function OutputTrace(_arg1, _arg2:Boolean){
_message_string = new String("");
super();
_debug = _arg2;
if (_debug){
_trace_txt = new TextField();
_trace_txt.width = 600;
_trace_txt.height = 600;
_trace_txt.selectable = false;
_trace_txt.multiline = true;
_trace_txt.textColor = 14540219;
_arg1.addChild(_trace_txt);
};
Clear();
Trace("OutputTrace Created");
Hide();
}
public function Trace(_arg1:String):void{
if (_debug){
_message_string = _message_string.substr(0, _message_string.lastIndexOf("<br>"));
_message_string = ((_arg1 + "<br>") + _message_string);
_trace_txt.htmlText = _message_string;
};
}
public function Show():void{
Trace("Showing Output");
if (_debug){
_trace_txt.visible = true;
};
}
public function Clear():void{
var _local1:*;
_message_string = "";
_local1 = 0;
while (_local1 < 39) {
_message_string = (_message_string + "<br>");
_local1++;
};
}
public function Hide():void{
Trace("Hiding Output");
if (_debug){
_trace_txt.visible = false;
};
}
public function Selectable(_arg1:Boolean):void{
Trace(("Output Selectable set to " + _arg1));
if (_debug){
_trace_txt.selectable = _arg1;
};
}
}
}//package Code.Handler
Section 157
//PathGrid (Code.Handler.PathGrid)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Dynamics.*;
import flash.display.*;
import Code.Data.*;
import flash.utils.*;
public class PathGrid {
private var _seekBalance:Number;// = 4
private var _visitedNodes:Array;
private var _Handler_Fires:Fires;
private var _analyzeGridTimer:Number;
private var _ladderBinds:Array;
private var _sprintJumpBinds:Array;
private var _nodes:Array;
private var m_world:b2World;
private var _diveBinds:Array;
private var _jumpBinds:Array;
private var _binds:Array;
private var _parentalNodes:Array;
private var _debug_mc:MovieClip;
private var _players:Array;
public function PathGrid():void{
_seekBalance = 4;
super();
_nodes = new Array();
_binds = new Array();
_debug_mc = new MovieClip();
_visitedNodes = new Array();
_parentalNodes = new Array();
_analyzeGridTimer = setInterval(function (){
clearInterval(_analyzeGridTimer);
_analyzeGridTimer = setInterval(AnalyzeGrid, 500);
}, 230);
}
public function get Nodes():Array{
return (_nodes);
}
public function GenerateGraphic():void{
var _local1:int;
_debug_mc.graphics.clear();
_debug_mc.graphics.lineStyle(2, 0xFFFFFF, 0.2);
_local1 = 0;
while (_local1 < _nodes.length) {
_debug_mc.graphics.drawCircle(_nodes[_local1].PosX, _nodes[_local1].PosY, 4);
_local1++;
};
_local1 = 0;
while (_local1 < _binds.length) {
_debug_mc.graphics.moveTo(_binds[_local1].SourceNode.PosX, _binds[_local1].SourceNode.PosY);
_debug_mc.graphics.lineTo(_binds[_local1].TargetNode.PosX, _binds[_local1].TargetNode.PosY);
_local1++;
};
}
public function UpdatePathGrid():void{
var _local1:int;
_local1 = 0;
while (_local1 < _parentalNodes.length) {
_parentalNodes[_local1].CalculateParentLocation();
_local1++;
};
}
public function Stop():void{
clearInterval(_analyzeGridTimer);
}
public function AddNode(_arg1:PathNode):void{
_nodes.push(_arg1);
_nodes[(_nodes.length - 1)].ListIndex = (_nodes.length - 1);
_visitedNodes.push(new PathWebNode());
}
public function set Nodes(_arg1:Array):void{
_nodes = _arg1;
}
public function GetNodeAt(_arg1:Number, _arg2:Number, _arg3:Number=200):PathNode{
var _local4:Number;
var _local5:int;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:int;
_local4 = _arg3;
_local5 = -1;
_local9 = 0;
while (_local9 < _nodes.length) {
_local7 = (_nodes[_local9].PosY - _arg2);
if (_arg2 < (_nodes[_local9].PosY + 20)){
_local6 = (_nodes[_local9].PosX - _arg1);
_local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7)));
if (_local8 < _local4){
_local5 = _local9;
_local4 = _local8;
};
};
_local9++;
};
if (_local5 == -1){
return (null);
};
return (_nodes[_local5]);
}
public function AnalyzeGrid():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:int;
var _local6:Number;
var _local7:Number;
_local1 = 0;
while (_local1 < _ladderBinds.length) {
_ladderBinds[_local1][0].Blocked = false;
_local2 = 0;
while (_local2 <= 24) {
if (m_world.GetDynamicBodyAt((_ladderBinds[_local1][1].x - 4), (_ladderBinds[_local1][1].y + _local2), false) != null){
_ladderBinds[_local1][0].Blocked = true;
_local2 = 99;
} else {
if (m_world.GetDynamicBodyAt((_ladderBinds[_local1][1].x + 4), (_ladderBinds[_local1][1].y + _local2), false) != null){
_ladderBinds[_local1][0].Blocked = true;
_local2 = 99;
};
};
_local2 = (_local2 + 8);
};
_local3 = 0;
while (_local3 < _players.length) {
if (!_players[_local3].Bot){
if (_players[_local3].State.HP > 0){
if (_players[_local3].PosY() < (_ladderBinds[_local1][1].y + 40)){
_local4 = Math.pow((_ladderBinds[_local1][1].x - _players[_local3].PosX()), 2);
if (_local4 < 4900){
_ladderBinds[_local1][0].Blocked = true;
};
};
};
};
_local3++;
};
_local1++;
};
_local1 = 0;
while (_local1 < _jumpBinds.length) {
_jumpBinds[_local1].Blocked = false;
if (JumpNodeBlocked(_jumpBinds[_local1].SourceNode, _jumpBinds[_local1].TargetNode)){
_jumpBinds[_local1].Blocked = true;
};
_local1++;
};
_local1 = 0;
while (_local1 < _diveBinds.length) {
_diveBinds[_local1].Blocked = false;
if (NodeBlocked(_diveBinds[_local1].SourceNode)){
_diveBinds[_local1].Blocked = true;
};
_local1++;
};
_local1 = 0;
while (_local1 < _sprintJumpBinds.length) {
_sprintJumpBinds[_local1].Blocked = false;
if (JumpNodeBlocked(_sprintJumpBinds[_local1].SourceNode, _sprintJumpBinds[_local1].TargetNode)){
_sprintJumpBinds[_local1].Blocked = true;
} else {
if (NodeBlocked(_sprintJumpBinds[_local1].SourceNode)){
_sprintJumpBinds[_local1].Blocked = true;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < _nodes.length) {
if (_Handler_Fires.PlayerPosInFire(_nodes[_local1].PosX, _nodes[_local1].PosY)){
_nodes[_local1].InFire = true;
} else {
_nodes[_local1].InFire = false;
};
_nodes[_local1].IsHazard = false;
_local1++;
};
_local1 = 0;
while (_local1 < m_world.HazardsList.length) {
if (m_world.HazardsList[_local1].GetUserData().objectData.IsHazard){
_local5 = 0;
while (_local5 < _nodes.length) {
_local6 = ((m_world.HazardsList[_local1].GetPosition().x * 30) - _nodes[_local5].PosX);
if (Math.abs(_local6) <= 40){
_local7 = ((m_world.HazardsList[_local1].GetPosition().y * 30) - _nodes[_local5].PosY);
if (Math.abs(_local7) <= 40){
_nodes[_local5].IsHazard = true;
};
};
_local5++;
};
};
_local1++;
};
}
public function get DebugGraphic():MovieClip{
return (_debug_mc);
}
public function get Binds():Array{
return (_binds);
}
public function LinkPlayers(_arg1:Array):void{
_players = _arg1;
}
private function ShortenPath(_arg1:PathNode, _arg2:Number, _arg3:PathNode=null):void{
var _local4:PathNode;
var _local5:int;
var _local6:PathBind;
var _local7:Number;
if (_arg3 != null){
_visitedNodes[_arg1.ListIndex].SourceNode = _arg3;
};
_visitedNodes[_arg1.ListIndex].Distance = (_visitedNodes[_arg1.ListIndex].Distance - _arg2);
_local4 = _arg1;
_local5 = 0;
while (_local5 < _arg1.Binds.length) {
_local6 = _local4.Binds[_local5];
if (_visitedNodes[_local6.TargetNode.ListIndex].SourceNode == _local6.SourceNode){
ShortenPath(_local6.TargetNode, _arg2);
} else {
if (_visitedNodes[_local6.TargetNode.ListIndex].SourceNode != null){
_local7 = (_visitedNodes[_local4.ListIndex].Distance + _local6.Distance);
if (_local7 < _visitedNodes[_local6.TargetNode.ListIndex].Distance){
ShortenPath(_local6.TargetNode, (_visitedNodes[_local6.TargetNode.ListIndex].Distance - _local7), _local4);
};
};
};
_local5++;
};
}
public function GetNode(_arg1:String):PathNode{
var _local2:int;
_arg1 = _arg1.toUpperCase();
_local2 = (_nodes.length - 1);
while (_local2 > 0) {
if (_nodes[_local2].ID == _arg1){
return (_nodes[_local2]);
};
_local2--;
};
return (null);
}
public function JumpNodeBlocked(_arg1:PathNode, _arg2:PathNode):Boolean{
var _local3:b2Body;
var _local4:int;
var _local5:int;
if (Math.abs((_arg1.PosX - _arg2.PosX)) < 25){
_local4 = -3;
while (_local4 <= 3) {
_local5 = -3;
while (_local5 <= 3) {
_local3 = m_world.GetDynamicBodyAt((_arg2.PosX + _local4), (_arg2.PosY + _local5), false);
if (_local3 != null){
return (true);
};
_local5 = (_local5 + 6);
};
_local4 = (_local4 + 6);
};
} else {
return (NodeBlocked(_arg2));
};
return (false);
}
public function AddBind(_arg1:PathBind):void{
_nodes[_arg1.SourceNode.ListIndex].Binds.push(_arg1);
_binds.push(_arg1);
}
public function UpdateSpecials():void{
var _local1:int;
var _local2:Number;
var _local3:Number;
_parentalNodes = new Array();
_local1 = 0;
while (_local1 < _nodes.length) {
_nodes[_local1].UpdateIsEndNode();
if (_nodes[_local1].ParentBody != null){
_parentalNodes.push(_nodes[_local1]);
};
_local1++;
};
_ladderBinds = new Array();
_jumpBinds = new Array();
_sprintJumpBinds = new Array();
_diveBinds = new Array();
_local1 = 0;
while (_local1 < _binds.length) {
if (_binds[_local1].MovementType == PathBind.LADDER){
if (_binds[_local1].SourceNode.PosY < _binds[_local1].TargetNode.PosY){
_local2 = _binds[_local1].TargetNode.PosX;
_local3 = _binds[_local1].SourceNode.PosY;
} else {
_local2 = _binds[_local1].SourceNode.PosX;
_local3 = _binds[_local1].TargetNode.PosY;
};
_ladderBinds.push([_binds[_local1], new Point(_local2, _local3)]);
} else {
if (_binds[_local1].MovementType == PathBind.SPRINTJUMP){
_sprintJumpBinds.push(_binds[_local1]);
} else {
if (_binds[_local1].MovementType == PathBind.JUMP){
_jumpBinds.push(_binds[_local1]);
} else {
if (_binds[_local1].MovementType == PathBind.DIVE){
_diveBinds.push(_binds[_local1]);
};
};
};
};
_local1++;
};
}
public function NodeBlocked(_arg1:PathNode):Boolean{
var _local2:b2Body;
var _local3:int;
var _local4:int;
_local3 = -3;
while (_local3 <= 3) {
_local4 = -3;
while (_local4 <= 3) {
_local2 = m_world.GetDynamicBodyAt((_arg1.PosX + _local3), (_arg1.PosY + _local4), false);
if (_local2 != null){
if (((!(_local2.GetUserData().objectData.IsGlass)) && (!(_local2.GetUserData().objectData.Kickable)))){
return (true);
};
};
_local4 = (_local4 + 6);
};
_local3 = (_local3 + 6);
};
return (false);
}
public function set Binds(_arg1:Array):void{
_binds = _arg1;
}
public function RemoveNodes(_arg1:String):void{
var _local2:int;
var _local3:int;
_arg1 = _arg1.toUpperCase();
_local2 = (_nodes.length - 1);
while (_local2 > 0) {
if (_nodes[_local2].ID == _arg1){
_local3 = (_binds.length - 1);
while (_local3 > 0) {
if ((((_binds[_local3].SourceNode == _nodes[_local2])) || ((_binds[_local3].TargetNode == _nodes[_local2])))){
_binds[_local3].SourceNode.RemoveBind(_binds[_local3]);
_binds[_local3].TargetNode.RemoveBind(_binds[_local3]);
_binds.splice(_local3, 1);
};
_local3--;
};
_nodes.splice(_local2, 1);
};
_local2--;
};
}
public function UpdateHandlers(_arg1:Fires, _arg2:b2World):void{
_Handler_Fires = _arg1;
m_world = _arg2;
}
public function GetPath(_arg1:PathNode, _arg2:PathNode, _arg3:Boolean=false):Array{
var _local4:Array;
var _local5:int;
var _local6:Boolean;
var _local7:Array;
var _local8:Number;
var _local9:PathNode;
var _local10:int;
var _local11:PathBind;
var _local12:Number;
var _local13:PathNode;
var _local14:int;
_local4 = new Array();
_local5 = 0;
while (_local5 < _visitedNodes.length) {
_visitedNodes[_local5].Clear();
_local5++;
};
if (_arg1 == null){
return (_local4);
};
_local6 = false;
if (((_arg1.Avoid) && (!(_arg3)))){
_local6 = true;
} else {
if (_arg2 == null){
return (_local4);
};
if (_arg1 == _arg2){
return (_local4);
};
};
_local7 = new Array();
_local7.push(_arg1);
_visitedNodes[_arg1.ListIndex].Distance = 0;
_local8 = 0;
while (true) {
_local8 = (_local8 + _seekBalance);
_seekBalance++;
_local5 = (_local7.length - 1);
while (_local5 >= 0) {
_local9 = _local7[_local5];
if (_visitedNodes[_local9.ListIndex].Distance <= _local8){
_seekBalance--;
if (_seekBalance < 1){
_seekBalance = 1;
};
_local10 = 0;
while (_local10 < _local9.Binds.length) {
_local11 = _local9.Binds[_local10];
if (!_local11.Blocked){
_local12 = (_visitedNodes[_local9.ListIndex].Distance + _local11.Distance);
if (_local12 < _visitedNodes[_local11.TargetNode.ListIndex].Distance){
if (_visitedNodes[_local11.TargetNode.ListIndex].SourceNode != null){
ShortenPath(_local11.TargetNode, (_visitedNodes[_local11.TargetNode.ListIndex].Distance - _local12), _local9);
} else {
_visitedNodes[_local11.TargetNode.ListIndex].SourceNode = _local9;
_visitedNodes[_local11.TargetNode.ListIndex].Distance = _local12;
if (((_local11.TargetNode.IsEndNode) && ((((_local11.TargetNode == _arg2)) || (((_local6) && (!(_local11.TargetNode.Avoid)))))))){
_local4.push(new PathResultNode(_local11.TargetNode));
_local13 = _visitedNodes[_local11.TargetNode.ListIndex].SourceNode;
while (_local13 != null) {
_local4.push(new PathResultNode(_local13));
_local13 = _visitedNodes[_local13.ListIndex].SourceNode;
};
_local14 = 0;
while (_local14 < _local4.length) {
if ((_local14 + 1) < _local4.length){
_local4[_local14].PrevBind = _local4[(_local14 + 1)].Node.GetBindTo(_local4[_local14].Node);
};
if (_local14 > 0){
_local4[_local14].NextBind = _local4[_local14].Node.GetBindTo(_local4[(_local14 - 1)].Node);
};
_local14++;
};
return (_local4);
} else {
if (((!(_local11.TargetNode.Avoid)) || (_local6))){
_local7.push(_local11.TargetNode);
};
};
};
};
};
_local10++;
};
_local7.splice(_local5, 1);
if (_local7.length <= 0){
if (_local6){
return (GetPath(_arg1, _arg2, true));
};
return (_local4);
};
};
_local5--;
};
};
return (_local4);
}
public function GetConnectedNodes():Array{
var _local1:Array;
var _local2:int;
_local1 = new Array();
_local2 = 0;
while (_local2 < _visitedNodes.length) {
if (_visitedNodes[_local2].SourceNode != null){
_local1.push(_visitedNodes[_local2].SourceNode);
};
_local2++;
};
return (_local1);
}
}
}//package Code.Handler
Section 158
//PlayersKeeper (Code.Handler.PlayersKeeper)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Dynamics.*;
import Code.Data.Players.*;
import flash.display.*;
public class PlayersKeeper {
private var _roundOverTimer:Number;// = 36
private var _roundOver:Boolean;// = false
private var gui_holder_mc:MovieClip;
private var _Handler_Fires:Fires;
private var _Handler_Maps:Maps;
private var _Handler_Effects:Effects;
private var _characters:Array;
private var _Handler_Shake:Shake;
private var _cameraUpdateTimer:Number;// = 12
private var _Handler_Camera:Cam;
private var _cameraBounds:Array;
private var _playerSetupData:PlayerSetupData;
private var _RecalculateCamArea:Function;
private var _MapArea:Rectangle;
private var _lastCoveredPosition:Point;
private var _Handler_ProjectilesUpdater:ProjectilesUpdater;
private var _Handler_Sounds:Sounds;
private var m_world:b2World;
private var _game_mc:MovieClip;
private var plrData:PlayersKeeperData;
private var _playerSpawnPositions:Array;
private var _players_left:Array;
private var _Handler_Slowmo:Slowmo;
private var _solo_nr_winner:int;// = -1
private var _Handler_Keyboard:InputKeyboard;
private var _team_winner:int;// = -1
private var _pathGrid:PathGrid;
private var _players:Array;
private var _Handler_Output:OutputTrace;
private var _playersInitialized:Boolean;// = false
private var _stage;
public function PlayersKeeper(_arg1:PlayersKeeperData):void{
var _local2:int;
var _local3:int;
var _local4:int;
_cameraUpdateTimer = 12;
_roundOverTimer = (24 * 1.5);
_players = new Array();
_lastCoveredPosition = new Point(0, 0);
_roundOver = false;
_team_winner = -1;
_solo_nr_winner = -1;
_playersInitialized = false;
super();
plrData = _arg1;
_stage = plrData.stg;
m_world = plrData.m_world;
_game_mc = plrData.game_mc;
_playerSetupData = plrData.pSetupData;
_pathGrid = plrData.pathGrid;
_pathGrid.LinkPlayers(_players);
gui_holder_mc = MovieClip(_game_mc.getChildByName("GUI_HOLDER"));
gui_holder_mc.player_1.visible = false;
gui_holder_mc.player_2.visible = false;
gui_holder_mc.com_no_players.visible = false;
gui_holder_mc.com_0.visible = false;
gui_holder_mc.com_1.visible = false;
gui_holder_mc.com_2.visible = false;
gui_holder_mc.com_3.visible = false;
gui_holder_mc.com_4.visible = false;
gui_holder_mc.com_5.visible = false;
gui_holder_mc.com_6.visible = false;
_Handler_Output = plrData.Handler_Output;
_Handler_Keyboard = plrData.Handler_Keyboard;
_Handler_Shake = plrData.Handler_Shake;
_Handler_Effects = plrData.Handler_Effects;
_Handler_ProjectilesUpdater = plrData.Handler_Projectiles;
_Handler_Maps = plrData.Handler_Maps;
_Handler_Sounds = plrData.Handler_Sounds;
_Handler_Slowmo = plrData.Handler_Slowmo;
_playerSpawnPositions = new Array();
_local2 = 0;
while (_local2 < _playerSetupData.playerSpawnPositions.length) {
_playerSpawnPositions.push(_playerSetupData.playerSpawnPositions[_local2]);
_local2++;
};
_local3 = -1;
_local4 = 0;
while (_local4 < _playerSetupData.totalPlayers) {
ConstructPlayer(_local4, _playerSetupData.characters[_local4], _playerSetupData.teams[_local4]);
if (_playerSetupData.ai[_local4] != 0){
_players[_local4].SetControls(_Handler_Keyboard, _playerSetupData.keys[_local4]);
_players[_local4].SetGUI(MovieClip(gui_holder_mc.getChildByName(("player_" + _playerSetupData.ai[_local4]))));
_players[_local4].SetSign(_playerSetupData.ai[_local4]);
_local3++;
} else {
_players[_local4].SetAI(_playerSetupData.aiDifficulty[_local4]);
if (_local3 == -1){
_players[_local4].SetGUI(MovieClip(gui_holder_mc.getChildByName("com_no_players")));
} else {
_players[_local4].SetGUI(MovieClip(gui_holder_mc.getChildByName(("com_" + _local3))));
};
_players[_local4].SetSign(PlayerBars.PLAYER_COM);
_local3++;
};
_players[_local4].GiveStartItems(plrData.rangedStartWeapon.Copy(), plrData.throwableStartWeapon.Copy());
_players[_local4].GiveDefaultMelee(plrData.defaultMeleeWeapon.Copy());
_players[_local4].UpdateGUI();
_local4++;
};
_players_left = new Array(false, false, false, false, false);
}
public function AddBot(_arg1:int, _arg2:int, _arg3:int):Player{
var _local4:Array;
var _local5:int;
var _local6:int;
var _local7:MovieClip;
_local4 = _Handler_Maps.GetPlayerSpawnPositions();
_playerSetupData.playerSpawnPositions = new Array();
_playerSpawnPositions = new Array();
_local5 = 0;
while (_local5 < _local4.length) {
_playerSetupData.playerSpawnPositions.push(_local4[_local5]);
_playerSpawnPositions.push(_local4[_local5]);
_local5++;
};
_local6 = _players.length;
ConstructPlayer(_local6, _arg1, _arg2);
_players[_local6].NoGUI();
_players[_local6].SetAI(_arg3);
_local7 = MovieClip(gui_holder_mc.getChildByName("com_0"));
_players[_local6].SetGUI(_local7);
_local7.visible = false;
_players[_local6].SetSign(PlayerBars.PLAYER_COM);
_players[_local6].GiveStartItems(plrData.rangedStartWeapon.Copy(), plrData.throwableStartWeapon.Copy());
_players[_local6].GiveDefaultMelee(plrData.defaultMeleeWeapon.Copy());
_players[_local6].Initialize(new PlayerAreaData(_MapArea));
_players[_local6].LinkToFire(_Handler_Fires);
_players[_local6].Activate();
RecalculateCamArea();
return (_players[_local6]);
}
public function GetCamArea():Rectangle{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:*;
var _local8:Rectangle;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:*;
var _local13:Number;
var _local14:Number;
_local5 = 15;
_local6 = 30;
if (_players.length > 0){
_local12 = 0;
for (;_local12 < _players.length;_local12++) {
if (!_players[_local12].CameraIgnore){
_lastCoveredPosition.x = _players[_local12].PosX();
_lastCoveredPosition.y = _players[_local12].PosY();
continue;
};
};
};
_local3 = (_lastCoveredPosition.x - _local5);
_local4 = (_lastCoveredPosition.x + _local5);
_local1 = (_lastCoveredPosition.y - _local6);
_local2 = _lastCoveredPosition.y;
_local7 = 0;
while (_local7 < _players.length) {
if (!_players[_local7].CameraIgnore){
if ((_players[_local7].PosX() + _local5) > _local4){
_local4 = (_players[_local7].PosX() + _local5);
};
if ((_players[_local7].PosX() - _local5) < _local3){
_local3 = (_players[_local7].PosX() - _local5);
};
if (_players[_local7].PosY() > _local2){
_local2 = _players[_local7].PosY();
};
if ((_players[_local7].PosY() - _local6) < _local1){
_local1 = (_players[_local7].PosY() - _local6);
};
};
_local7++;
};
_local8 = new Rectangle(_local3, _local1, (_local4 - _local3), (_local2 - _local1));
_local9 = (_local8.width / 4);
_local10 = (_local8.height / 3);
_local11 = 0;
if (_local9 < _local10){
_local11 = (_local10 - _local9);
_local13 = (_local11 * 4);
_local8.x = (_local8.x - (_local13 / 2));
_local8.width = (_local8.width + _local13);
} else {
if (_local9 > _local10){
_local11 = (_local9 - _local10);
_local14 = (_local11 * 3);
_local8.y = (_local8.y - (_local14 / 2));
_local8.height = (_local8.height + _local14);
};
};
return (_local8);
}
public function LinkToFire(_arg1:Fires):void{
var _local2:int;
_Handler_Fires = _arg1;
_local2 = 0;
while (_local2 < _players.length) {
_players[_local2].LinkToFire(_Handler_Fires);
_local2++;
};
}
public function ActivatePlayers():void{
var _local1:int;
_local1 = 0;
while (_local1 < _playerSetupData.totalPlayers) {
_players[_local1].Activate();
_local1++;
};
}
public function Stop():void{
var _local1:int;
_local1 = 0;
while (_local1 < _players.length) {
_players[_local1].Stop();
_local1++;
};
}
private function GetRandomSpawnPosition():Point{
var _local1:Number;
var _local2:Point;
var _local3:int;
if (_playerSpawnPositions.length <= 0){
_local3 = 0;
while (_local3 < _playerSetupData.playerSpawnPositions.length) {
_playerSpawnPositions.push(_playerSetupData.playerSpawnPositions[_local3]);
_local3++;
};
};
_local1 = Math.floor((Math.random() * (_playerSpawnPositions.length * 0.99)));
_local2 = _playerSpawnPositions[_local1];
_playerSpawnPositions.splice(_local1, 1);
return (_local2);
}
public function SetStartImmunity():void{
var _local1:int;
_local1 = 0;
while (_local1 < _players.length) {
_players[_local1].State.ImmunityTimer = 48;
_local1++;
};
}
public function get Players():Array{
return (_players);
}
public function RecalculateCamArea(_arg1:int=8, _arg2:Boolean=false):void{
_Handler_Camera.RecalculateCamArea(_arg1, _arg2);
}
public function GetTeamWinner():int{
return (_team_winner);
}
public function LinkToCam(_arg1:Cam):void{
_Handler_Camera = _arg1;
}
public function SetCamArea(_arg1:Rectangle, _arg2:Rectangle, _arg3:Rectangle, _arg4:Rectangle):void{
_cameraBounds = new Array();
_cameraBounds.push(_arg1);
_cameraBounds.push(_arg2);
_cameraBounds.push(_arg3);
_cameraBounds.push(_arg4);
}
public function get RoundOver():Boolean{
return (((_roundOver) && ((_roundOverTimer <= 0))));
}
public function SetMapArea(_arg1:Rectangle):void{
_MapArea = _arg1;
}
public function Update(_arg1:Number):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
if (!_playersInitialized){
_local7 = 0;
while (_local7 < _playerSetupData.totalPlayers) {
_players[_local7].Initialize(new PlayerAreaData(_MapArea));
_local7++;
};
_Handler_Camera.Initialize();
_playersInitialized = true;
};
_local2 = 0;
while (_local2 < _players_left.length) {
_players_left[_local2] = false;
_local2++;
};
_local3 = 0;
_local4 = -1;
_local5 = -1;
_local6 = 0;
while (_local6 < _players.length) {
_players[_local6].Update(_arg1);
if (_players[_local6].State.HP > 0){
if (_players[_local6].Team < 0){
_players_left[0] = true;
_local3++;
_local5 = 0;
_local4 = _local6;
} else {
_local5 = _players[_local6].Team;
_players_left[_players[_local6].Team] = true;
};
};
_local6++;
};
if (!_roundOver){
if (_local3 <= 1){
_local8 = 0;
_local2 = 0;
while (_local2 < _players_left.length) {
if (_players_left[_local2] == true){
_local8++;
};
_local2++;
};
if (_local8 <= 1){
_roundOver = true;
};
};
} else {
if (_roundOverTimer > 0){
_roundOverTimer = (_roundOverTimer - _arg1);
if (_roundOverTimer <= 0){
_team_winner = _local5;
_solo_nr_winner = _local4;
};
};
};
_cameraUpdateTimer = (_cameraUpdateTimer - 1);
if (_cameraUpdateTimer <= 0){
RecalculateCamArea();
_cameraUpdateTimer = 6;
};
}
public function GetSoloWinner():int{
return (_players[_solo_nr_winner].Team);
}
private function ConstructPlayer(_arg1:int, _arg2:int, _arg3:int):void{
var _local4:Player;
_local4 = new Player(_arg2, _game_mc, m_world, _Handler_Maps, _Handler_Sounds, _Handler_Slowmo, _Handler_Shake, _Handler_Effects, _Handler_ProjectilesUpdater, _Handler_Output, GetRandomSpawnPosition(), _arg3, _arg1, RecalculateCamArea, _players, _pathGrid);
_players.push(_local4);
}
public function GetPlayerNrWinner():int{
return (_solo_nr_winner);
}
}
}//package Code.Handler
Section 159
//Portals (Code.Handler.Portals)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
public class Portals {
private var m_world:b2World;
private var tmpVel:b2Vec2;
private var _portals:Array;
private var _Handler_Output:OutputTrace;
private var _bodyInPortals:Array;
private var _Handler_Players:PlayersKeeper;
public function Portals(_arg1:b2World, _arg2:PlayersKeeper, _arg3:OutputTrace){
m_world = _arg1;
_Handler_Players = _arg2;
_Handler_Output = _arg3;
_portals = new Array();
_bodyInPortals = new Array();
_Handler_Output.Trace("Portals Handler Created");
}
public function Update():void{
var _local1:int;
var _local2:*;
var _local3:Rectangle;
var _local4:*;
var _local5:*;
var _local6:int;
var _local7:b2Body;
var _local8:int;
var _local9:b2Vec2;
_local1 = (_bodyInPortals.length - 1);
while (_local1 >= 0) {
_local7 = _bodyInPortals[_local1];
if (!_local7.IsSleeping()){
_local3 = new Rectangle((_local7.GetUserData().objectData.ShapeMC.x - (_local7.GetUserData().objectData.ShapeMC.width / 2)), (_local7.GetUserData().objectData.ShapeMC.y - (_local7.GetUserData().objectData.ShapeMC.height / 2)), _local7.GetUserData().objectData.ShapeMC.width, _local7.GetUserData().objectData.ShapeMC.height);
_local4 = false;
_local5 = 0;
while (_local5 < _portals.length) {
if (((((((_portals[_local5].PointInsidePortal(_local3.x, _local3.y)) || (_portals[_local5].PointInsidePortal((_local3.x + _local3.width), _local3.y)))) || (_portals[_local5].PointInsidePortal(_local3.x, (_local3.y + _local3.height))))) || (_portals[_local5].PointInsidePortal((_local3.x + _local3.width), (_local3.y + _local3.height))))){
_local4 = true;
_local5 = _portals.length;
};
_local5++;
};
if (!_local4){
_local7.GetUserData().objectData.InPortal = false;
_bodyInPortals.splice(_local1, 1);
};
};
_local1--;
};
_local2 = 0;
while (_local2 < _portals.length) {
_local6 = 0;
while (_local6 < _Handler_Players.Players.length) {
if (_Handler_Players.Players[_local6].PortalSpeedX > 0){
if (_portals[_local2].PointInsidePortal(_Handler_Players.Players[_local6].PosX(), (_Handler_Players.Players[_local6].PosY() - 6))){
if ((((((_Handler_Players.Players[_local6].PortalDirectionX < 0)) && ((_portals[_local2].TriggerVelocity.x < 0)))) || ((((_Handler_Players.Players[_local6].PortalDirectionX > 0)) && ((_portals[_local2].TriggerVelocity.x > 0)))))){
if (((_portals[_local2].AllowPlayers) || (_Handler_Players.Players[_local6].Bot))){
_local9 = _portals[_local2].GetTargetPositionFromCurrent(_Handler_Players.Players[_local6].PosX(), _Handler_Players.Players[_local6].PosY());
_Handler_Players.Players[_local6].SetCoordinates((_local9.x * 30), (_local9.y * 30), _portals[_local2].InverseX, _portals[_local2].AllowPlayers);
_Handler_Players.RecalculateCamArea(3, true);
_Handler_Output.Trace((("Portal " + _local2) + " Activated"));
} else {
_Handler_Players.Players[_local6].SetCoordinates(_portals[_local2].GetSideOfPortal(-(_Handler_Players.Players[_local6].PortalDirectionX)), _Handler_Players.Players[_local6].PosY(), true);
};
};
};
};
_local6++;
};
_local8 = 0;
while (_local8 < m_world.AllDynamicObjectList.length) {
_local7 = m_world.AllDynamicObjectList[_local8];
if (_portals[_local2].PointInsidePortal((_local7.GetPosition().x * 30), (_local7.GetPosition().y * 30))){
if (_local7.GetLinearVelocity().Length() > 1){
if ((((((((((_local7.GetLinearVelocity().x < -0.1)) && ((_portals[_local2].TriggerVelocity.x < 0)))) || ((((_local7.GetLinearVelocity().x > 0.1)) && ((_portals[_local2].TriggerVelocity.x > 0)))))) || ((((_local7.GetLinearVelocity().y < 0)) && ((_portals[_local2].TriggerVelocity.y < 0)))))) || ((((_local7.GetLinearVelocity().y > 0)) && ((_portals[_local2].TriggerVelocity.y > 0)))))){
_local7.GetUserData().objectData.ThroughPortal = true;
_local7.SetXForm(_portals[_local2].GetTargetPositionFromCurrent((_local7.GetPosition().x * 30), (_local7.GetPosition().y * 30)), _local7.GetAngle());
if (_portals[_local2].InverseX){
tmpVel = _local7.GetLinearVelocity();
tmpVel.x = (tmpVel.x * -1);
_local7.SetLinearVelocity(tmpVel);
};
if (_portals[_local2].InverseY){
tmpVel = _local7.GetLinearVelocity();
tmpVel.y = (tmpVel.y * -1);
_local7.SetLinearVelocity(tmpVel);
};
_Handler_Output.Trace((("Portal " + _local2) + " Activated"));
if (_local7.GetUserData().objectData.CanGibb){
if (!_local7.GetUserData().objectData.InPortal){
_Handler_Output.Trace(((("Object " + _local7.GetUserData().IDNumber) + " is overlapping portal ") + _local2));
_local7.GetUserData().objectData.CollisionMC.x = 9999;
_local7.GetUserData().objectData.CollisionMC.y = 9999;
_local7.GetUserData().objectData.InPortal = true;
_bodyInPortals.push(_local7);
};
};
};
};
};
_local8++;
};
_local2++;
};
}
public function SetMapPortals(_arg1:Array):void{
_portals = _arg1;
}
public function CheckBodyInsidePortal(_arg1:b2Body):void{
var _local2:Rectangle;
var _local3:*;
if (_arg1.IsDynamic() == true){
if (((_arg1.GetUserData().objectData.DrawHitBox) || (_arg1.GetUserData().objectData.DrawCloudBox))){
_Handler_Output.Trace((("Checking Object " + _arg1.GetUserData().IDNumber) + " for portal overlapping"));
_local2 = new Rectangle((_arg1.GetUserData().objectData.ShapeMC.x - (_arg1.GetUserData().objectData.ShapeMC.width / 2)), (_arg1.GetUserData().objectData.ShapeMC.y - (_arg1.GetUserData().objectData.ShapeMC.height / 2)), _arg1.GetUserData().objectData.ShapeMC.width, _arg1.GetUserData().objectData.ShapeMC.height);
_local3 = 0;
while (_local3 < _portals.length) {
if (((((((_portals[_local3].PointInsidePortal(_local2.x, _local2.y)) || (_portals[_local3].PointInsidePortal((_local2.x + _local2.width), _local2.y)))) || (_portals[_local3].PointInsidePortal(_local2.x, (_local2.y + _local2.height))))) || (_portals[_local3].PointInsidePortal((_local2.x + _local2.width), (_local2.y + _local2.height))))){
_Handler_Output.Trace(((("Object " + _arg1.GetUserData().IDNumber) + " is overlapping portal ") + _local3));
_arg1.GetUserData().objectData.CollisionMC.x = 9999;
_arg1.GetUserData().objectData.CollisionMC.y = 9999;
_arg1.GetUserData().objectData.InPortal = true;
_bodyInPortals.push(_arg1);
return;
};
_local3++;
};
};
};
}
}
}//package Code.Handler
Section 160
//Projectiles (Code.Handler.Projectiles)
package Code.Handler {
import Code.Data.*;
public class Projectiles {
private var p_sniper_bullet:ProjectileProperties;
private var p_rifle_bullet:ProjectileProperties;
private var p_shotgun_bullet:ProjectileProperties;
private var d_magnum_bullet:ProjectileData;
private var d_rifle_bullet:ProjectileData;
private var d_shotgun_bullet:ProjectileData;
private var p_magnum_bullet:ProjectileProperties;
private var p_uzi_bullet:ProjectileProperties;
private var d_pistol_bullet:ProjectileData;
private var p_bazooka_rocket:ProjectileProperties;
private var _Handler_Output:OutputTrace;
private var d_sniper_bullet:ProjectileData;
private var d_uzi_bullet:ProjectileData;
private var p_pistol_bullet:ProjectileProperties;
private var d_bazooka_rocket:ProjectileData;
public function Projectiles(_arg1:OutputTrace){
p_pistol_bullet = new ProjectileProperties();
p_shotgun_bullet = new ProjectileProperties();
p_rifle_bullet = new ProjectileProperties();
p_uzi_bullet = new ProjectileProperties();
p_sniper_bullet = new ProjectileProperties();
p_magnum_bullet = new ProjectileProperties();
p_bazooka_rocket = new ProjectileProperties();
super();
_Handler_Output = _arg1;
p_bazooka_rocket.Speed = 18;
p_bazooka_rocket.Damage = 100;
p_bazooka_rocket.CriticalChance = 0;
p_bazooka_rocket.CriticalDamage = 0;
p_bazooka_rocket.PushbackPower = 0;
p_bazooka_rocket.TotalPenetrationDepth = 0;
p_bazooka_rocket.SinglePenetrationDepth = 0;
p_bazooka_rocket.BulletMC = "BAZOOKA_ROCKET";
p_bazooka_rocket.BulletEffect = "";
p_bazooka_rocket.BulletSlomoEffect = "";
p_bazooka_rocket.Strength = 1;
p_bazooka_rocket.ImpulseForce = 3;
d_bazooka_rocket = new ProjectileData(p_bazooka_rocket);
p_pistol_bullet.Speed = 30;
p_pistol_bullet.Damage = 10;
p_pistol_bullet.CriticalChance = 5;
p_pistol_bullet.CriticalDamage = 15;
p_pistol_bullet.PushbackPower = 15;
p_pistol_bullet.TotalPenetrationDepth = 12;
p_pistol_bullet.SinglePenetrationDepth = 5;
p_pistol_bullet.BulletMC = "PISTOL_BULLET";
p_pistol_bullet.BulletEffect = "BULLET_EFFECT_NORMAL";
p_pistol_bullet.BulletSlomoEffect = "BULLET_EFFECT_SLOMO";
p_pistol_bullet.Strength = 5;
p_pistol_bullet.ImpulseForce = 0.6;
d_pistol_bullet = new ProjectileData(p_pistol_bullet);
p_shotgun_bullet.Speed = 30;
p_shotgun_bullet.Damage = 6;
p_shotgun_bullet.CriticalChance = 0;
p_shotgun_bullet.CriticalDamage = 6;
p_shotgun_bullet.PushbackPower = 33;
p_shotgun_bullet.TotalPenetrationDepth = 12;
p_shotgun_bullet.SinglePenetrationDepth = 5;
p_shotgun_bullet.BulletMC = "SHOTGUN_BULLET";
p_shotgun_bullet.BulletEffect = "BULLET_EFFECT_NORMAL";
p_shotgun_bullet.BulletSlomoEffect = "BULLET_EFFECT_SLOMO";
p_shotgun_bullet.Strength = 5;
p_shotgun_bullet.ImpulseForce = 0.35;
d_shotgun_bullet = new ProjectileData(p_shotgun_bullet);
p_rifle_bullet.Speed = 35;
p_rifle_bullet.Damage = 8;
p_rifle_bullet.CriticalChance = 6;
p_rifle_bullet.CriticalDamage = 10;
p_rifle_bullet.PushbackPower = 20;
p_rifle_bullet.TotalPenetrationDepth = 12;
p_rifle_bullet.SinglePenetrationDepth = 5;
p_rifle_bullet.BulletMC = "RIFLE_BULLET";
p_rifle_bullet.BulletEffect = "BULLET_EFFECT_NORMAL";
p_rifle_bullet.BulletSlomoEffect = "BULLET_EFFECT_SLOMO";
p_rifle_bullet.Strength = 5;
p_rifle_bullet.ImpulseForce = 0.45;
d_rifle_bullet = new ProjectileData(p_rifle_bullet);
p_uzi_bullet.Speed = 30;
p_uzi_bullet.Damage = 7;
p_uzi_bullet.CriticalChance = 4;
p_uzi_bullet.CriticalDamage = 10;
p_uzi_bullet.PushbackPower = 10;
p_uzi_bullet.TotalPenetrationDepth = 12;
p_uzi_bullet.SinglePenetrationDepth = 5;
p_uzi_bullet.BulletMC = "UZI_BULLET";
p_uzi_bullet.BulletEffect = "BULLET_EFFECT_NORMAL";
p_uzi_bullet.BulletSlomoEffect = "BULLET_EFFECT_SLOMO";
p_uzi_bullet.Strength = 5;
p_uzi_bullet.ImpulseForce = 0.4;
d_uzi_bullet = new ProjectileData(p_uzi_bullet);
p_magnum_bullet.Speed = 40;
p_magnum_bullet.Damage = 25;
p_magnum_bullet.CriticalChance = 40;
p_magnum_bullet.CriticalDamage = 35;
p_magnum_bullet.PushbackPower = 50;
p_magnum_bullet.TotalPenetrationDepth = 12;
p_magnum_bullet.SinglePenetrationDepth = 5;
p_magnum_bullet.BulletMC = "MAGNUM_BULLET";
p_magnum_bullet.BulletEffect = "BULLET_EFFECT_NORMAL";
p_magnum_bullet.BulletSlomoEffect = "BULLET_EFFECT_SLOMO";
p_magnum_bullet.Strength = 15;
p_magnum_bullet.ImpulseForce = 1.05;
d_magnum_bullet = new ProjectileData(p_magnum_bullet);
p_sniper_bullet.Speed = 40;
p_sniper_bullet.Damage = 30;
p_sniper_bullet.CriticalChance = 75;
p_sniper_bullet.CriticalDamage = 60;
p_sniper_bullet.PushbackPower = 50;
p_sniper_bullet.TotalPenetrationDepth = 12;
p_sniper_bullet.SinglePenetrationDepth = 5;
p_sniper_bullet.BulletMC = "SNIPER_BULLET";
p_sniper_bullet.BulletEffect = "BULLET_EFFECT_NORMAL";
p_sniper_bullet.BulletSlomoEffect = "BULLET_EFFECT_SLOMO";
p_sniper_bullet.Strength = 30;
p_sniper_bullet.ImpulseForce = 1.25;
d_sniper_bullet = new ProjectileData(p_sniper_bullet);
_Handler_Output.Trace("Projectiles Created");
}
public function get Uzi_Bullet():ProjectileData{
return (d_uzi_bullet.Copy());
}
public function get Bazooka_Rocket():ProjectileData{
return (d_bazooka_rocket.Copy());
}
public function get Pistol_Bullet():ProjectileData{
return (d_pistol_bullet.Copy());
}
public function get Sniper_Bullet():ProjectileData{
return (d_sniper_bullet.Copy());
}
public function get Rifle_Bullet():ProjectileData{
return (d_rifle_bullet.Copy());
}
public function get Shotgun_Bullet():ProjectileData{
return (d_shotgun_bullet.Copy());
}
public function get Magnum_Bullet():ProjectileData{
return (d_magnum_bullet.Copy());
}
}
}//package Code.Handler
Section 161
//ProjectilesUpdater (Code.Handler.ProjectilesUpdater)
package Code.Handler {
import flash.geom.*;
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
import Code.Particles.*;
public class ProjectilesUpdater {
private var _static_mc:MovieClip;
private var _static_ladder_hitbox_mc:MovieClip;
private var _Handler_Effects:Effects;
private var _Handler_Camera:Cam;
private var _rockets_list:Array;
private var _dynamic_mc:MovieClip;
private var _Handler_Projectiles:Projectiles;
private var _Handler_Sounds:Sounds;
private var _static_world_hitbox_mc:MovieClip;
private var m_world:b2World;
private var _Handler_Players:PlayersKeeper;
private var _static_objects_hitbox_mc:MovieClip;
private var _static_players_hitbox_mc:MovieClip;
private var b:b2Body;
private var _projectiles_mc:MovieClip;
private var _projectiles_list:Array;
private var _Handler_Output:OutputTrace;
private var _static_objects_cloud_hitbox_mc:MovieClip;
private var _Handler_Explosions:Explosions;
private var _object_shape_container_mc:MovieClip;
private var _static_world_cloud_hitbox_mc:MovieClip;
public function NewProjectile(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Player):void{
var _local6:ProjectileData;
var _local7:int;
switch (_arg1.toUpperCase()){
case "PISTOL_BULLET":
_local6 = _Handler_Projectiles.Pistol_Bullet;
break;
case "RIFLE_BULLET":
_local6 = _Handler_Projectiles.Rifle_Bullet;
break;
case "UZI_BULLET":
_local6 = _Handler_Projectiles.Uzi_Bullet;
break;
case "SHOTGUN_BULLET":
_local6 = _Handler_Projectiles.Shotgun_Bullet;
break;
case "MAGNUM_BULLET":
_local6 = _Handler_Projectiles.Magnum_Bullet;
break;
case "SNIPER_BULLET":
_local6 = _Handler_Projectiles.Sniper_Bullet;
break;
default:
return;
};
_projectiles_list.push(_local6);
_local6.Angle = _arg4;
_local6.PosX = _arg2;
_local6.PosY = _arg3;
_local6.Owner = _arg5;
_local6.AddPlayerAvoided(_arg5.PlayerNr);
if (_arg5.Bot){
_local7 = 0;
while (_local7 < _Handler_Players.Players.length) {
if ((((_Handler_Players.Players[_local7].Team == _arg5.Team)) && (!(_Handler_Players.Players[_local7].Bot)))){
_local6.AddPlayerAvoided(_Handler_Players.Players[_local7].PlayerNr);
};
_local7++;
};
};
_projectiles_mc.addChild(_local6.MC);
}
private function ProjectileImpactFrameTime(_arg1:Array, _arg2:Player, _arg3:Number, _arg4:Number):Boolean{
var _local5:ProjectileData;
var _local6:int;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local6 = (_arg1.length - 1);
while (_local6 >= 0) {
_local5 = _arg1[_local6];
if (!_local5.PlayerAvoided(_arg2.PlayerNr)){
_local7 = (_arg2.MidPosX() - _local5.PosX);
_local8 = (_arg2.MidPosY() - _local5.PosY);
_local9 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8)));
_local10 = Math.atan2(_local8, _local7);
_local11 = _local5.AngleRad;
if ((((_local7 < 0)) && ((_local8 < 0)))){
_local10 = (_local10 + (Math.PI * 2));
};
_local12 = Math.atan((10 / _local9));
if ((((_local11 >= (_local10 - _local12))) && ((_local11 <= (_local10 + _local12))))){
_local13 = (_local5.Properties.Speed * _local5.BulletGameSpeed);
_local14 = (_local9 / _local13);
if ((((_local14 >= _arg3)) && ((_local14 <= _arg4)))){
return (true);
};
};
};
_local6--;
};
return (false);
}
private function CollisionPlayer(_arg1:Point):Boolean{
if (_static_players_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true)){
return (true);
};
return (false);
}
private function CollisionAimObject(_arg1:Point):Boolean{
if (_object_shape_container_mc.hitTestPoint(_arg1.x, _arg1.y, true)){
b = m_world.GetAimSolidAt(_arg1.x, _arg1.y);
if (b != null){
return (true);
};
};
return (false);
}
private function CollisionStaticCloud(_arg1:Point):Boolean{
if (((_static_world_cloud_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true)) && (!(_static_objects_cloud_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true))))){
return (true);
};
return (false);
}
public function RocketImpactFrameTime(_arg1:Player, _arg2:Number, _arg3:Number):Boolean{
return (ProjectileImpactFrameTime(_rockets_list, _arg1, _arg2, _arg3));
}
public function DeflectBullets(_arg1:Player):void{
var _local2:ProjectileData;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local3 = (_projectiles_list.length - 1);
while (_local3 >= 0) {
_local2 = _projectiles_list[_local3];
_local4 = Math.abs((_local2.PosY - _arg1.MidPosY()));
if (_local4 < 20){
_local5 = (_local2.PosX - _arg1.MidPosX());
if ((((((_local5 > 0)) && ((_arg1.State.LastDirX == 1)))) || ((((_local5 < 0)) && ((_arg1.State.LastDirX == -1)))))){
if (Math.abs(_local5) <= (_arg1.State.MeleeWeaponRange + ((_local2.BulletGameSpeed * _local2.Properties.Speed) * 0.5))){
_local6 = Math.sqrt((Math.pow(((_arg1.MidPosX() + (_arg1.State.LastDirX * 4)) - _local2.PosX), 2) + Math.pow(_local4, 2)));
if (_local6 <= (_arg1.State.MeleeWeaponRange - 2)){
_Handler_Effects.AddEffectAt("BULLET_WHITE_SQUARE", _local2.PosX, _local2.PosY);
_local2.Angle = ((-90 + (_arg1.State.LastDirX * 90)) + (80 - (Math.random() * 160)));
_local2.ResetPlayersAvoided();
_Handler_Sounds.PlaySound("BULLET_HITMETAL", _arg1.MidPosX(), _arg1.MidPosY());
};
};
};
};
_local3--;
};
}
public function CalculateAimSquare(_arg1:Point, _arg2:Number, _arg3:int, _arg4:int, _arg5:MovieClip):Point{
var _local6:Point;
var _local7:Number;
var _local8:Point;
var _local9:Boolean;
var _local10:Boolean;
var _local11:int;
_local6 = new Point(_arg1.x, _arg1.y);
_local7 = (_arg2 * (Math.PI / 180));
_local8 = new Point((Math.cos(_local7) * 2), (Math.sin(_local7) * 2));
_local9 = false;
if (CollisionAimObject(_local6)){
if (b.GetUserData().IDNumber != _arg3){
return (_local6);
};
} else {
if (((((CollisionPlayer(_local6)) && (!(_arg5.hitTestPoint(_local6.x, _local6.y, true))))) || (OutsideTheWorld(_local6)))){
return (_local6);
};
if (CollisionStatic(_local6)){
b = m_world.GetStaticCoverAt(_local6.x, _local6.y);
if (b != null){
if (_arg3 == b.GetUserData().IDNumber){
_local9 = true;
};
};
if (!_local9){
return (_local6);
};
};
};
_local10 = false;
_local11 = 1;
while (_local11 <= _arg4) {
_local6.x = (_local6.x + _local8.x);
_local6.y = (_local6.y + _local8.y);
_local10 = false;
if (CollisionAimObject(_local6)){
_local10 = true;
};
if (_local10){
if (b.GetUserData().IDNumber != _arg3){
_local8.x = (_local8.x * 0.1);
_local8.y = (_local8.y * 0.1);
while (true) {
_local6.x = (_local6.x - _local8.x);
_local6.y = (_local6.y - _local8.y);
if (CollisionAimObject(_local6)){
if (b.GetUserData().IDNumber == _arg3){
return (_local6);
};
} else {
return (_local6);
};
};
};
} else {
if (((((((CollisionPlayer(_local6)) && (!(_arg5.hitTestPoint(_local6.x, _local6.y, true))))) || (OutsideTheWorld(_local6)))) || (CollisionStatic(_local6)))){
b = m_world.GetStaticCoverAt(_local6.x, _local6.y);
_local9 = false;
if (b != null){
if (_arg3 == b.GetUserData().IDNumber){
_local9 = true;
};
};
if (!_local9){
_local8.x = (_local8.x * 0.1);
_local8.y = (_local8.y * 0.1);
while (true) {
_local6.x = (_local6.x - _local8.x);
_local6.y = (_local6.y - _local8.y);
b = m_world.GetStaticCoverAt(_local6.x, _local6.y);
_local9 = false;
if (b != null){
if (_arg3 == b.GetUserData().IDNumber){
_local9 = true;
};
};
if (((((((!(CollisionPlayer(_local6))) || (_arg5.hitTestPoint(_local6.x, _local6.y, true)))) && (!(OutsideTheWorld(_local6))))) && (((!(CollisionStatic(_local6))) || (_local9))))){
return (_local6);
};
};
};
};
};
_local11++;
};
return (_local6);
}
public function CalculateLazer(_arg1:Point, _arg2:Number, _arg3:int, _arg4:MovieClip):Array{
var _local5:Point;
var _local6:Array;
var _local7:Number;
var _local8:Point;
var _local9:Boolean;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Boolean;
var _local13:Point;
_local5 = new Point(_arg1.x, _arg1.y);
_local6 = new Array();
_local7 = (_arg2 * (Math.PI / 180));
_local8 = new Point((Math.cos(_local7) * 2), (Math.sin(_local7) * 2));
_local9 = false;
if (CollisionLaserObject(_local5)){
if (b.GetUserData().IDNumber != _arg3){
_local6.push(_local5);
return (_local6);
};
} else {
if (((((CollisionPlayer(_local5)) && (!(_arg4.hitTestPoint(_local5.x, _local5.y, true))))) || (OutsideTheWorld(_local5)))){
_local6.push(_local5);
return (_local6);
};
if (CollisionStatic(_local5)){
b = m_world.GetStaticCoverAt(_local5.x, _local5.y);
if (b != null){
if (_arg3 == b.GetUserData().IDNumber){
_local9 = true;
};
};
if (!_local9){
_local6.push(_local5);
return (_local6);
};
};
};
_local10 = false;
_local11 = false;
_local12 = false;
while (true) {
_local5.x = (_local5.x + _local8.x);
_local5.y = (_local5.y + _local8.y);
_local10 = false;
if (!_local11){
if (CollisionStaticCloud(_local5)){
_local13 = new Point(_local5.x, _local5.y);
_local6.push(new Point(_local13.x, _local13.y));
_local11 = true;
};
} else {
if (!CollisionStaticCloud(_local5)){
_local11 = false;
};
};
if (CollisionLaserObject(_local5)){
if (b.GetUserData().objectData.LaserTransparent){
if (!_local12){
_local12 = true;
_local6.push(new Point(_local5.x, _local5.y));
};
} else {
_local10 = true;
_local12 = false;
};
} else {
_local12 = false;
};
if (_local10){
if (b.GetUserData().IDNumber != _arg3){
if (b.GetUserData().objectData.LaserVisibleOnObject){
_local8.x = (_local8.x * 0.1);
_local8.y = (_local8.y * 0.1);
while (true) {
_local5.x = (_local5.x - _local8.x);
_local5.y = (_local5.y - _local8.y);
if (CollisionLaserObject(_local5)){
if (b.GetUserData().IDNumber == _arg3){
_local6.push(new Point(_local5.x, _local5.y));
return (_local6);
};
} else {
_local6.push(new Point(_local5.x, _local5.y));
return (_local6);
};
};
} else {
return (_local6);
};
};
} else {
if (((((((CollisionPlayer(_local5)) && (!(_arg4.hitTestPoint(_local5.x, _local5.y, true))))) || (OutsideTheWorld(_local5)))) || (CollisionStatic(_local5)))){
b = m_world.GetStaticCoverAt(_local5.x, _local5.y);
_local9 = false;
if (b != null){
if (_arg3 == b.GetUserData().IDNumber){
_local9 = true;
};
};
if (!_local9){
_local8.x = (_local8.x * 0.1);
_local8.y = (_local8.y * 0.1);
while (true) {
_local5.x = (_local5.x - _local8.x);
_local5.y = (_local5.y - _local8.y);
b = m_world.GetStaticCoverAt(_local5.x, _local5.y);
_local9 = false;
if (b != null){
if (_arg3 == b.GetUserData().IDNumber){
_local9 = true;
};
};
if (((((((!(CollisionPlayer(_local5))) || (_arg4.hitTestPoint(_local5.x, _local5.y, true)))) && (!(OutsideTheWorld(_local5))))) && (((!(CollisionStatic(_local5))) || (_local9))))){
_local6.push(new Point(_local5.x, _local5.y));
return (_local6);
};
};
};
};
};
};
_local6.push(_local5);
return (_local6);
}
private function CollisionStatic(_arg1:Point):Boolean{
if (((_static_world_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true)) && (!(_static_objects_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true))))){
return (true);
};
return (false);
}
private function CollisionObjectRocket(_arg1:Point):Boolean{
if (_object_shape_container_mc.hitTestPoint(_arg1.x, _arg1.y, true)){
b = m_world.GetDynamicBodyAt(_arg1.x, _arg1.y, false);
if (b != null){
return (true);
};
};
return (false);
}
public function BulletImpactFrameTime(_arg1:Player, _arg2:Number, _arg3:Number):Boolean{
return (ProjectileImpactFrameTime(_projectiles_list, _arg1, _arg2, _arg3));
}
private function OutsideTheWorld(_arg1:Point):Boolean{
if ((((((((_arg1.x < _Handler_Camera.MapArea.x)) || ((_arg1.y < _Handler_Camera.MapArea.y)))) || ((_arg1.x > (_Handler_Camera.MapArea.x + _Handler_Camera.MapArea.width))))) || ((_arg1.y > (_Handler_Camera.MapArea.y + _Handler_Camera.MapArea.height))))){
return (true);
};
return (false);
}
public function BuildClass(_arg1:ProjectilesUpdaterData):void{
_Handler_Output = _arg1.Handler_Output;
_Handler_Camera = _arg1.Handler_Camera;
_Handler_Players = _arg1.Handler_Players;
_Handler_Effects = _arg1.Handler_Effects;
_Handler_Explosions = _arg1.Handler_Explosions;
_Handler_Sounds = _arg1.Handler_Sounds;
_Handler_Projectiles = _arg1.Handler_Projectiles;
_static_mc = _arg1.static_mc;
_object_shape_container_mc = _arg1.object_shape_container_mc;
_dynamic_mc = _arg1.dynamic_mc;
m_world = _arg1.m_world;
_static_world_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_HITBOX"));
_static_objects_hitbox_mc = MovieClip(_static_world_hitbox_mc.getChildByName("OBJECTS_HITBOX"));
_static_world_cloud_hitbox_mc = MovieClip(_static_mc.getChildByName("WORLD_CLOUD_HITBOX"));
_static_objects_cloud_hitbox_mc = MovieClip(_static_world_cloud_hitbox_mc.getChildByName("OBJECTS_CLOUD_HITBOX"));
_static_ladder_hitbox_mc = MovieClip(_static_mc.getChildByName("LADDER_HITBOX"));
_static_players_hitbox_mc = MovieClip(_static_mc.getChildByName("PLAYERS_HITBOX"));
_projectiles_mc = MovieClip(_dynamic_mc.getChildByName("PROJECTILES"));
_projectiles_list = new Array();
_rockets_list = new Array();
_Handler_Output.Trace("Projectiles Handler Created");
}
private function CollisionLadder(_arg1:Point):Boolean{
if (_static_ladder_hitbox_mc.hitTestPoint(_arg1.x, _arg1.y, true)){
return (true);
};
return (false);
}
public function Update(_arg1:Number):void{
var _local2:ProjectileData;
var _local3:Boolean;
var _local4:int;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Point;
var _local9:int;
var _local10:Number;
var _local11:Boolean;
var _local12:Boolean;
var _local13:Boolean;
var _local14:int;
var _local15:int;
var _local16:Array;
var _local17:Array;
var _local18:Boolean;
var _local19:particle_data;
var _local20:Number;
_local3 = false;
_local4 = (_projectiles_list.length - 1);
while (_local4 >= 0) {
_local2 = _projectiles_list[_local4];
_local5 = (_local2.Properties.Speed * _local2.BulletGameSpeed);
_local6 = (((_local2.DirectionX * _local2.Properties.Speed) * _local2.BulletGameSpeed) / Math.ceil(_local5));
_local7 = (((_local2.DirectionY * _local2.Properties.Speed) * _local2.BulletGameSpeed) / Math.ceil(_local5));
_local8 = new Point();
_local9 = 2;
_local10 = (Math.sqrt(((_local6 * _local6) + (_local7 * _local7))) * _local9);
_local2.UpdateVisuals(_local5);
_local11 = false;
_local12 = false;
_local13 = true;
_local14 = 0;
while (_local14 < _local5) {
_local2.PosX = (_local2.PosX + (_local6 * _local9));
_local2.PosY = (_local2.PosY + (_local7 * _local9));
_local8.x = _local2.PosX;
_local8.y = _local2.PosY;
if (_local2.AddBulletTrace(_local10)){
_Handler_Effects.AddParticle(new particle_data("bullet_trace_slomo", _local2.PosX, _local2.PosY, new b2Vec2(), _local2.Angle, 0.7));
};
if (CollisionObject(_local8)){
if (_local2.Owner.State.CoverObjectID != b.GetUserData().IDNumber){
if (b.GetUserData().objectData.PlayerCoverLevel <= 0){
b.ApplyImpulse(new b2Vec2((_local2.DirectionX * _local2.Properties.ImpulseForce), (_local2.DirectionY * _local2.Properties.ImpulseForce)), new b2Vec2((_local2.PosX / 30), (_local2.PosY / 30)));
};
_Handler_Sounds.PlaySoundAt(b.GetUserData().material.BulletHitSound, _local2.PosX, _local2.PosY);
if (((!(b.GetUserData().objectData.Indestructible)) && ((b.GetUserData().objectData.Strength <= _local2.StrengthLeft)))){
_local2.StrengthLeft = (_local2.StrengthLeft - b.GetUserData().objectData.Strength);
b.ApplyImpulse(new b2Vec2((_local2.DirectionX * _local2.Properties.ImpulseForce), (_local2.DirectionY * _local2.Properties.ImpulseForce)), new b2Vec2((_local2.PosX / 30), (_local2.PosY / 30)));
b.GetUserData().objectData.ForceDestruction();
if (_local2.StrengthLeft <= 0){
_local11 = true;
};
} else {
b.GetUserData().objectData.Damage_Bullet(_local2.Properties.Damage);
_Handler_Effects.AddEffectAt(b.GetUserData().material.BulletHitEffect, _local2.PosX, _local2.PosY);
_local11 = true;
};
};
} else {
if (CollisionPlayer(_local8)){
_local12 = true;
_local15 = 0;
while (_local15 < _Handler_Players.Players.length) {
if (_Handler_Players.Players[_local15].CollisionMC.hitTestPoint(_local8.x, _local8.y, true)){
if (!_local2.PlayerAvoided(_local15)){
if (_Handler_Players.Players[_local15].BulletWillHit()){
_Handler_Players.Players[_local15].BulletDamage(_local2);
_Handler_Sounds.PlaySoundAt("BULLET_HITFLESH", _local2.PosX, _local2.PosY);
if (!_Handler_Players.Players[_local15].State.Burned){
_Handler_Effects.AddEffectAt("BLOOD", _local2.PosX, _local2.PosY);
_local16 = new Array();
_local16.push(0);
_local17 = new Array();
_local17.push(1);
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", _local2.PosX, _local2.PosY, new b2Vec2(_local2.DirectionX, _local2.DirectionY), 0, 1, _local16));
if (Math.random() < 0.5){
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", _local2.PosX, _local2.PosY, new b2Vec2(_local2.DirectionX, _local2.DirectionY), 0, 1, _local16));
};
if (Math.random() < 0.5){
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", _local2.PosX, _local2.PosY, new b2Vec2(_local2.DirectionX, _local2.DirectionY), 0, 1, _local17));
};
_Handler_Effects.AddParticle(new particle_data("PARTICLE_BLOOD", _local2.PosX, _local2.PosY, new b2Vec2(_local2.DirectionX, _local2.DirectionY), 0, 1, _local17));
} else {
_Handler_Effects.AddEffectAt("PLAYER_BURNED_HITDEFAULT", _local2.PosX, _local2.PosY);
};
_local11 = true;
} else {
_local2.AddPlayerAvoided(_local15);
};
};
};
_local15++;
};
} else {
if (((CollisionStatic(_local8)) || (CollisionStaticCloud(_local8)))){
b = m_world.GetStaticCoverAt(_local8.x, _local8.y);
_local18 = false;
if (b != null){
if (_local2.Owner.State.CoverObjectID == b.GetUserData().IDNumber){
_local18 = true;
};
};
if (!_local18){
if (CollisionStaticCloud(_local8)){
if (!_local2.PenetratingCloud){
b = m_world.GetStaticBodyAt(_local8.x, _local8.y);
if (b != null){
_Handler_Sounds.PlaySoundAt(b.GetUserData().material.BulletHitSound, _local2.PosX, _local2.PosY);
_Handler_Effects.AddEffectAt(b.GetUserData().material.BulletHitEffect, _local2.PosX, _local2.PosY);
};
_local2.PenetratingCloud = true;
};
};
if (((!(_local2.PenetratingCloud)) && (!(_local2.Penetrating)))){
b = m_world.GetStaticBodyAt(_local8.x, _local8.y);
if (b != null){
_Handler_Sounds.PlaySoundAt(b.GetUserData().material.BulletHitSound, _local2.PosX, _local2.PosY);
_Handler_Effects.AddEffectAt(b.GetUserData().material.BulletHitEffect, _local2.PosX, _local2.PosY);
};
_local11 = true;
};
};
} else {
if (OutsideTheWorld(_local8)){
_local11 = true;
_local13 = false;
} else {
if (_local2.PenetratingCloud){
if (!CollisionStaticCloud(_local8)){
_local2.PenetratingCloud = false;
};
} else {
if (_local2.Penetrating){
if (!CollisionStatic(_local8)){
_local2.Penetrating = false;
};
};
};
};
};
};
};
if (_local11){
if (_arg1 >= 0.8){
_local19 = new particle_data("projectile_light_trace", _local2.PosX, _local2.PosY);
_local19.Rotation = _local2.Angle;
_local19.Alpha = (0.9 - (_local5 / 100));
_local20 = (_local14 / _local5);
_local19.ScaleX = ((_local20 * _local5) / 10);
_Handler_Effects.AddParticle(_local19);
};
if (_local13){
_Handler_Effects.AddEffectAt("BULLET_WHITE_SQUARE", _local2.PosX, _local2.PosY);
};
_local2.MC.parent.removeChild(_local2.MC);
_projectiles_list.splice(_local4, 1);
_local14 = _local5;
_local11 = false;
_local13 = true;
};
_local14 = (_local14 + _local9);
};
if (!_local12){
_local2.ResetPlayersAvoided();
};
_local4--;
};
UpdateRockets(_arg1);
}
public function NewRocket(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Player):void{
var _local6:ProjectileData;
_local6 = _Handler_Projectiles.Bazooka_Rocket;
_rockets_list.push(_local6);
_local6.Angle = _arg4;
_local6.PosX = _arg2;
_local6.PosY = _arg3;
_local6.Owner = _arg5;
_local6.AddPlayerAvoided(_arg5.PlayerNr);
_projectiles_mc.addChild(_local6.MC);
}
private function CollisionObject(_arg1:Point):Boolean{
if (_object_shape_container_mc.hitTestPoint(_arg1.x, _arg1.y, true)){
b = m_world.GetBulletSolidAt(_arg1.x, _arg1.y);
if (b != null){
return (true);
};
};
return (false);
}
private function UpdateRockets(_arg1:Number):void{
var _local2:ProjectileData;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Point;
var _local8:int;
var _local9:Number;
var _local10:Boolean;
var _local11:Boolean;
var _local12:Point;
var _local13:Boolean;
var _local14:int;
var _local15:Boolean;
var _local16:int;
_local3 = (_rockets_list.length - 1);
while (_local3 >= 0) {
_local2 = _rockets_list[_local3];
_local4 = (_local2.Properties.Speed * _local2.BulletGameSpeed);
_local2.Angle = (_local2.Angle + (((Math.random() * 8) - 4) * _arg1));
_local5 = (((_local2.DirectionX * _local2.Properties.Speed) * _local2.BulletGameSpeed) / Math.ceil(_local4));
_local6 = (((_local2.DirectionY * _local2.Properties.Speed) * _local2.BulletGameSpeed) / Math.ceil(_local4));
if (_local2.PlayerStuck != null){
_local5 = (_local5 * 0.5);
_local6 = (_local6 * 0.5);
};
_local7 = new Point();
_local8 = 2;
_local9 = (Math.sqrt(((_local5 * _local5) + (_local6 * _local6))) * _local8);
_local10 = false;
_local11 = false;
_local12 = new Point();
_local14 = 0;
while (_local14 < _local4) {
_local12.x = _local2.PosX;
_local12.y = _local2.PosY;
_local2.PosX = (_local2.PosX + (_local5 * _local8));
_local2.PosY = (_local2.PosY + (_local6 * _local8));
_local7.x = _local2.PosX;
_local7.y = _local2.PosY;
if (_local2.PlayerStuck != null){
_local13 = _local2.AddBulletTrace(_local9);
} else {
_local13 = _local2.AddBulletTrace((_local9 * 2));
};
if (_local13){
_Handler_Effects.AddParticle(new particle_data("TRACE_BAZOOKA_ROCKET", (_local2.PosX - (_local2.DirectionX * 4)), (_local2.PosY - (_local2.DirectionY * 4)), new b2Vec2(_local2.DirectionX, _local2.DirectionY), _local2.Angle, 0.7));
if (Math.random() < 0.3){
_Handler_Effects.AddParticle(new particle_data("SMOKE_FIRE", (_local2.PosX - (_local2.DirectionX * 4)), (_local2.PosY - (_local2.DirectionY * 4)), new b2Vec2(_local2.DirectionX, _local2.DirectionY), 0, 0.7));
};
};
if (CollisionObjectRocket(_local7)){
if (_local2.Owner.State.CoverObjectID != b.GetUserData().IDNumber){
b.ApplyImpulse(new b2Vec2((_local2.DirectionX * _local2.Properties.ImpulseForce), (_local2.DirectionY * _local2.Properties.ImpulseForce)), new b2Vec2((_local2.PosX / 30), (_local2.PosY / 30)));
if (((!(b.GetUserData().objectData.Indestructible)) && ((b.GetUserData().objectData.Strength <= _local2.StrengthLeft)))){
b.ApplyImpulse(new b2Vec2((_local2.DirectionX * _local2.Properties.ImpulseForce), (_local2.DirectionY * _local2.Properties.ImpulseForce)), new b2Vec2((_local2.PosX / 30), (_local2.PosY / 30)));
b.GetUserData().objectData.ForceDestruction();
} else {
b.GetUserData().objectData.Damage_Bullet(_local2.Properties.Damage);
_local10 = true;
_local11 = true;
};
};
} else {
if (CollisionStatic(_local7)){
b = m_world.GetStaticCoverAt(_local7.x, _local7.y);
_local15 = false;
if (b != null){
if (_local2.Owner.State.CoverObjectID == b.GetUserData().IDNumber){
_local15 = true;
};
};
if (!_local15){
_local10 = true;
_local11 = true;
};
} else {
if (CollisionPlayer(_local7)){
_local16 = 0;
while (_local16 < _Handler_Players.Players.length) {
if (_Handler_Players.Players[_local16].CollisionMC.hitTestPoint(_local7.x, _local7.y, true)){
if (!_local2.PlayerAvoided(_local16)){
if (_Handler_Players.Players[_local16].RocketWillHit()){
if (_local2.PlayerStuck != null){
if (!_Handler_Players.Players[_local16].State.StuckToRocket){
_Handler_Players.Players[_local16].GibPlayer();
} else {
_Handler_Players.Players[_local16].State.RocketRideProjectile.Explode();
};
_local10 = true;
_local11 = true;
} else {
_local2.ResetPlayersAvoided();
if (_Handler_Players.Players[_local16].State.HP > 0){
if (_Handler_Players.Players[_local16].State.StuckToRocket){
_Handler_Players.Players[_local16].State.RocketRideProjectile.PlayerStuck = null;
_Handler_Players.Players[_local16].State.RocketRideProjectile.Show();
};
_Handler_Players.Players[_local16].StuckToProjectile(_local2);
_local2.PlayerStuck = _Handler_Players.Players[_local16];
_local2.PosX = _local2.PlayerStuck.MidPosX();
_local2.PosY = _local2.PlayerStuck.MidPosY();
_local2.AddPlayerAvoided(_local16);
_local2.Hide();
} else {
_Handler_Players.Players[_local16].GibPlayer();
_local10 = true;
_local11 = true;
};
};
} else {
_local2.AddPlayerAvoided(_local16);
};
};
};
_local16++;
};
} else {
if (OutsideTheWorld(_local7)){
_local10 = true;
};
};
};
};
if (_local2.PlayerStuck != null){
_local2.PlayerStuck.UpdatePositionToProjectile();
};
if (((_local10) || (_local2.DoExplode))){
if (_local2.PlayerStuck != null){
_local2.PlayerStuck.GibPlayer();
_local2.PlayerStuck = null;
};
if (((_local11) || (_local2.DoExplode))){
_Handler_Sounds.PlaySoundAt("ROCKET_EXPLOSION", _local2.PosX, _local2.PosY);
if (!_Handler_Explosions.TriggerExplosionAt("BAZOOKA_ROCKET", (_local12.x + (_local5 * 2)), (_local12.y + (_local6 * 2)))){
_Handler_Explosions.TriggerExplosionAt("BAZOOKA_ROCKET", (_local12.x - (_local5 * 2)), (_local12.y - (_local6 * 2)));
};
};
_local2.MC.parent.removeChild(_local2.MC);
_rockets_list.splice(_local3, 1);
_local14 = _local4;
_local10 = false;
};
_local14 = (_local14 + _local8);
};
_local3--;
};
}
private function CollisionLaserObject(_arg1:Point):Boolean{
if (_object_shape_container_mc.hitTestPoint(_arg1.x, _arg1.y, true)){
b = m_world.GetLaserSolidAt(_arg1.x, _arg1.y);
if (b != null){
return (true);
};
};
return (false);
}
}
}//package Code.Handler
Section 162
//Scoreboard (Code.Handler.Scoreboard)
package Code.Handler {
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
public class Scoreboard {
private var _gameMode:int;
public var RoundsFinished:int;
private var _score_info:MovieClip;
private var _mostPlayers:int;
private var _teams:Array;
private var _score_graphic:MovieClip;
public function Scoreboard(_arg1:MovieClip, _arg2:int){
_score_graphic = new MovieClip();
_arg1.addChild(_score_graphic);
_teams = new Array();
RoundsFinished = 0;
_gameMode = _arg2;
}
private function FirstToReach(_arg1:int):Boolean{
var _local2:int;
_local2 = 0;
while (_local2 < _teams.length) {
if (_teams[_local2].Wins >= _arg1){
return (true);
};
_local2++;
};
return (false);
}
public function Build():void{
var _local1:int;
var _local2:int;
_score_graphic = new MovieClip();
_mostPlayers = 0;
_local1 = 0;
while (_local1 < _teams.length) {
if (_teams[_local1].TotalPlayers > _mostPlayers){
_mostPlayers = _teams[_local1].TotalPlayers;
};
_local1++;
};
_local2 = 0;
while (_local2 < _teams.length) {
_teams[_local2].Build(_mostPlayers);
_score_graphic.addChild(_teams[_local2].MC);
_local2++;
};
_score_info = new score_info();
_score_graphic.addChild(_score_info);
_score_info.game_mode.gotoAndStop(_gameMode);
_score_info.rounds.text = "0";
}
public function GetTeamWinner():ScoreboardTeam{
var _local1:int;
var _local2:int;
var _local3:int;
_local1 = 0;
_local3 = 1;
while (_local3 < _teams.length) {
if (_teams[_local3].Wins > _teams[_local1].Wins){
_local1 = _local3;
};
_local3++;
};
if (_local1 != 0){
_local2 = 0;
} else {
_local2 = 1;
};
_local3 = 1;
while (_local3 < _teams.length) {
if ((((_teams[_local3].Wins > _teams[_local2].Wins)) && (!((_local3 == _local1))))){
_local2 = _local3;
};
_local3++;
};
if (_teams[_local1].Wins == _teams[_local2].Wins){
return (null);
};
return (_teams[_local1]);
}
public function get MC():MovieClip{
return (_score_graphic);
}
public function Show():void{
_score_graphic.visible = true;
}
public function Hide():void{
_score_graphic.visible = false;
}
public function get GameFinished():Boolean{
var _local1:int;
switch (_gameMode){
case 1:
return (false);
case 2:
return (FirstToReach(3));
case 3:
return (FirstToReach(5));
case 4:
return (FirstToReach(10));
case 5:
return (BestOfReach(3));
case 6:
return (BestOfReach(5));
case 7:
return (BestOfReach(10));
case 8:
return (FirstToReach(1));
};
return (false);
}
public function Update():void{
var _local1:int;
var _local2:Array;
var _local3:Number;
var _local4:int;
_local2 = _teams.sortOn(["Wins", "Loss"], ((Array.NUMERIC | Array.DESCENDING) | Array.RETURNINDEXEDARRAY));
_score_info.rounds.text = RoundsFinished.toString();
_local3 = 45;
_local1 = 0;
while (_local1 < _local2.length) {
_local4 = _local2[_local1];
if (_teams.length <= 4){
_teams[_local4].MC.x = (400 - (GetScoreWidth() / 2));
_teams[_local4].MC.y = (((300 - ((75 * _teams.length) / 2)) + (75 * _local1)) + _local3);
} else {
if (_local1 < 4){
_teams[_local4].MC.x = (400 - GetScoreWidth());
_teams[_local4].MC.y = (((300 - ((75 * 4) / 2)) + (75 * _local1)) + _local3);
} else {
_teams[_local4].MC.x = 400;
_teams[_local4].MC.y = (((300 - ((75 * 4) / 2)) + (75 * (_local1 - 4))) + _local3);
};
};
_local1++;
};
_score_info.x = _teams[_local2[0]].MC.x;
_score_info.y = (_teams[_local2[0]].MC.y - 20);
_local1 = 0;
while (_local1 < _teams.length) {
_teams[_local1].Update();
_local1++;
};
}
private function GetScoreWidth():Number{
switch (_mostPlayers){
case 1:
case 2:
case 3:
case 4:
return (320);
case 5:
return (370);
case 6:
return (420);
case 7:
return (470);
default:
return (470);
};
}
public function ScoreTeam(_arg1:int):void{
var _local2:int;
_local2 = 0;
while (_local2 < _teams.length) {
if (_teams[_local2].Team == _arg1){
_teams[_local2].Wins = (_teams[_local2].Wins + 1);
} else {
_teams[_local2].Loss = (_teams[_local2].Loss + 1);
};
_local2++;
};
}
public function AddPlayerToScore(_arg1:Player):void{
var _local2:int;
_local2 = 0;
while (_local2 < _teams.length) {
if (_teams[_local2].Team == _arg1.Team){
_teams[_local2].AddPlayer(_arg1);
return;
};
_local2++;
};
_teams.push(new ScoreboardTeam(_arg1));
}
private function BestOfReach(_arg1:int):Boolean{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
if (RoundsFinished >= _arg1){
return (true);
};
_local2 = 0;
_local4 = 1;
while (_local4 < _teams.length) {
if (_teams[_local4].Wins > _teams[_local2].Wins){
_local2 = _local4;
};
_local4++;
};
if (_local2 != 0){
_local3 = 0;
} else {
_local3 = 1;
};
_local4 = 1;
while (_local4 < _teams.length) {
if ((((_teams[_local4].Wins > _teams[_local3].Wins)) && (!((_local4 == _local2))))){
_local3 = _local4;
};
_local4++;
};
_local5 = (_teams[_local2].Wins - _teams[_local3].Wins);
_local6 = (_arg1 - RoundsFinished);
if (_local5 > _local6){
return (true);
};
return (false);
}
}
}//package Code.Handler
Section 163
//ScoreboardSurvival (Code.Handler.ScoreboardSurvival)
package Code.Handler {
import Code.Data.Players.*;
import flash.display.*;
import Code.Data.*;
import flash.utils.*;
import flash.net.*;
public class ScoreboardSurvival {
private var _personal_best:SurvivalTimePackage;
private var _score_info:MovieClip;
private var _build_timer:Number;
private var _players:Array;
public function ScoreboardSurvival(_arg1:MovieClip){
_players = new Array();
_score_info = new survival_score();
_score_info.gotoAndStop(1);
_arg1.addChild(_score_info);
}
public function Hide():void{
_score_info.visible = false;
}
private function SetTimer(_arg1:MovieClip, _arg2:SurvivalTimePackage):void{
var _local3:String;
var _local4:String;
var _local5:String;
_local3 = (_arg2.totalMins + "");
_local4 = (_arg2.totalSecs + "");
_local5 = (_arg2.totalParts + "");
if (_arg2.totalMins < 10){
_local3 = ("0" + _local3);
};
if (_arg2.totalSecs < 10){
_local4 = ("0" + _local4);
};
if (_arg2.totalParts < 10){
_local5 = ("0" + _local5);
};
_arg1.time_txt.text = ((((_local3 + ":") + _local4) + ":") + _local5);
if (_arg2.wave < 10){
_arg1.wave_txt.text = ("0" + _arg2.wave);
} else {
_arg1.wave_txt.text = ("" + _arg2.wave);
};
}
public function get MC():MovieClip{
return (_score_info);
}
private function SetPics():void{
var _local1:int;
clearInterval(_build_timer);
_local1 = 0;
while (_local1 < _players.length) {
MovieClip(_score_info.pics.getChildByName(("pic_" + (_local1 + 1)))).gotoAndStop(_players[_local1].State.CharNr);
_local1++;
};
}
public function Build():void{
_score_info.players_txt.text = ("" + _players.length);
_score_info.pics.gotoAndStop(_players.length);
_personal_best = LoadBest();
SetTimer(_score_info.personal_best, _personal_best);
_build_timer = setInterval(SetPics, 100);
}
public function SaveBest(_arg1:SurvivalTimePackage):void{
var _local2:SharedObject;
_local2 = SharedObject.getLocal("superfightersData_v1.0");
if (_players.length == 1){
_local2.data.survivalBestMins = _arg1.totalMins;
_local2.data.survivalBestSecs = _arg1.totalSecs;
_local2.data.survivalBestParts = _arg1.totalParts;
_local2.data.survivalBestWave = _arg1.wave;
} else {
_local2.data.survival2BestMins = _arg1.totalMins;
_local2.data.survival2BestSecs = _arg1.totalSecs;
_local2.data.survival2BestParts = _arg1.totalParts;
_local2.data.survival2BestWave = _arg1.wave;
};
_local2.flush();
}
public function LoadBest():SurvivalTimePackage{
var _local1:SurvivalTimePackage;
var _local2:SharedObject;
_local1 = new SurvivalTimePackage();
_local2 = SharedObject.getLocal("superfightersData_v1.0");
if ((((((((((_players.length == 1)) && (!((_local2.data.survivalBestMins == undefined))))) && (!((_local2.data.survivalBestSecs == undefined))))) && (!((_local2.data.survivalBestParts == undefined))))) && (!((_local2.data.survivalBestWave == undefined))))){
_local1.totalMins = _local2.data.survivalBestMins;
_local1.totalSecs = _local2.data.survivalBestSecs;
_local1.totalParts = _local2.data.survivalBestParts;
_local1.wave = _local2.data.survivalBestWave;
} else {
if ((((((((((_players.length == 2)) && (!((_local2.data.survival2BestMins == undefined))))) && (!((_local2.data.survival2BestSecs == undefined))))) && (!((_local2.data.survival2BestParts == undefined))))) && (!((_local2.data.survival2BestWave == undefined))))){
_local1.totalMins = _local2.data.survival2BestMins;
_local1.totalSecs = _local2.data.survival2BestSecs;
_local1.totalParts = _local2.data.survival2BestParts;
_local1.wave = _local2.data.survival2BestWave;
} else {
_local1.totalMins = 0;
_local1.totalSecs = 0;
_local1.totalParts = 0;
_local1.wave = 0;
};
};
return (_local1);
}
public function BeatPersonal(_arg1:SurvivalTimePackage):Boolean{
if (_personal_best.totalMins > _arg1.totalMins){
return (false);
};
if (_personal_best.totalMins < _arg1.totalMins){
return (true);
};
if (_personal_best.totalSecs > _arg1.totalSecs){
return (false);
};
if (_personal_best.totalSecs < _arg1.totalSecs){
return (true);
};
if (_personal_best.totalParts > _arg1.totalParts){
return (false);
};
if (_personal_best.totalParts < _arg1.totalParts){
return (true);
};
return (true);
}
public function Update(_arg1:SurvivalTimePackage):void{
SetTimer(_score_info.current, _arg1);
if (BeatPersonal(_arg1)){
SaveBest(_arg1);
_score_info.gotoAndStop(2);
};
}
public function AddPlayerToScore(_arg1:Player):void{
_players.push(_arg1);
}
public function Show():void{
_score_info.visible = true;
}
}
}//package Code.Handler
Section 164
//Shake (Code.Handler.Shake)
package Code.Handler {
import flash.display.*;
public class Shake {
private var _speedX:Number;// = 0
private var _speedY:Number;// = 0
private var _tarX:Number;// = 0
private var _lastRnd:Number;// = 0
private var _Handler_Output:OutputTrace;
private var _shakeMangitude:Number;// = 0
private var _tarY:Number;// = 0
private var _shake_mc:MovieClip;
private var _shakeTimer:Number;// = 0
public function Shake(_arg1:OutputTrace, _arg2:MovieClip){
_shakeTimer = 0;
_shakeMangitude = 0;
_lastRnd = 0;
_tarX = 0;
_tarY = 0;
_speedX = 0;
_speedY = 0;
super();
_Handler_Output = _arg1;
_shake_mc = _arg2;
}
public function Add(_arg1:Number, _arg2:Number):void{
_shakeTimer = (_shakeTimer + _arg1);
_shakeMangitude = (_shakeMangitude + _arg2);
if (_shakeMangitude > 30){
_shakeMangitude = 30;
};
if (_shakeTimer > 20){
_shakeTimer = 20;
};
}
public function Update(_arg1:Number):void{
if (_shakeTimer > 0){
if (_lastRnd != Math.floor(_shakeTimer)){
_tarX = ((Math.random() * _shakeMangitude) - (_shakeMangitude / 2));
_tarY = ((Math.random() * _shakeMangitude) - (_shakeMangitude / 2));
_speedX = (_tarX - _shake_mc.x);
_speedY = (_tarY - _shake_mc.y);
_lastRnd = Math.floor(_shakeTimer);
};
_shake_mc.x = (_shake_mc.x + (_speedX * _arg1));
_shake_mc.y = (_shake_mc.y + (_speedY * _arg1));
_shakeTimer = (_shakeTimer - _arg1);
if (_shakeTimer <= 0){
_shakeTimer = 0;
_shake_mc.x = 0;
_shake_mc.y = 0;
_lastRnd = 0;
_shakeTimer = 0;
_shakeMangitude = 0;
};
};
}
}
}//package Code.Handler
Section 165
//Slowmo (Code.Handler.Slowmo)
package Code.Handler {
import flash.events.*;
import flash.display.*;
import Code.Data.*;
import fl.motion.*;
public class Slowmo {
private var _currSlowmoFactor:Number;
private var _heartbeatTimer:int;
private var _slomo_rectangle:MovieClip;
private var _Handler_Effects:Effects;
private var _stage;
private var _gamePaused:Boolean;// = false
private var _slowmotionArray:Array;
private var _curve:Number;// = 0
private var _Handler_Output:OutputTrace;
private var _Handler_Sounds:Sounds;
private var _brightness:Number;// = 0
public function Slowmo(_arg1:OutputTrace, _arg2:Effects, _arg3:Sounds, _arg4:MovieClip, _arg5){
_brightness = 0;
_curve = 0;
_gamePaused = false;
super();
_Handler_Output = _arg1;
_Handler_Effects = _arg2;
_Handler_Sounds = _arg3;
_slomo_rectangle = _arg4;
_stage = _arg5;
_heartbeatTimer = 0;
_stage.addEventListener(Event.RESIZE, OnStageResize);
DrawRectangle(_stage.stageWidth, _stage.stageHeight);
_slowmotionArray = new Array();
_currSlowmoFactor = 1;
}
public function set GamePaused(_arg1:Boolean):void{
_gamePaused = _arg1;
if (_arg1){
_Handler_Effects.SetSlowmotion(0);
} else {
_Handler_Effects.SetSlowmotion(_currSlowmoFactor);
};
}
private function OnStageResize(_arg1:Event):void{
DrawRectangle(_stage.stageWidth, _stage.stageHeight);
}
public function AddSlowmotion(_arg1:SlowmoData, _arg2:Boolean=false, _arg3:int=-1):void{
_slowmotionArray.push([_arg1, _arg2, _arg3]);
if (_arg2){
_brightness = 1;
};
}
public function get Slowmotion():Number{
if (_gamePaused){
return (0);
};
return (_currSlowmoFactor);
}
public function Stop():void{
_stage.removeEventListener(Event.RESIZE, OnStageResize);
}
public function Update():void{
var _local1:Number;
var _local2:int;
var _local3:Boolean;
var _local4:int;
if (_gamePaused){
return;
};
_local1 = _currSlowmoFactor;
_local2 = (_slowmotionArray.length - 1);
while (_local2 >= 0) {
_slowmotionArray[_local2][0].ProgressTime();
if (_slowmotionArray[_local2][0].Completed){
_slowmotionArray.splice(_local2, 1);
};
_local2--;
};
_local3 = false;
_currSlowmoFactor = 1;
_local4 = 0;
while (_local4 < _slowmotionArray.length) {
if (_slowmotionArray[_local4][0].CurrentSlowmotion < _currSlowmoFactor){
_currSlowmoFactor = _slowmotionArray[_local4][0].CurrentSlowmotion;
};
if (_slowmotionArray[_local4][1] == true){
_local3 = true;
};
_local4++;
};
if (_local3){
_heartbeatTimer = (_heartbeatTimer - 1);
if (_heartbeatTimer <= 0){
_heartbeatTimer = 28;
_Handler_Sounds.PlaySound("HEARTBEAT", 0, 0);
};
if (_brightness > 0.18){
_brightness = (_brightness - 0.08);
if (_brightness < 0.18){
_brightness = 0.18;
_curve = (Math.PI / 2);
};
} else {
_curve = (_curve + 0.13);
if (_curve > Math.PI){
_curve = 0;
};
_brightness = (0.12 + (Math.sin(_curve) * 0.06));
};
SetAlpha(_slomo_rectangle, _brightness);
} else {
if (_brightness != 0){
if (_brightness > 0){
_brightness = (_brightness - 0.02);
if (_brightness < 0){
_brightness = 0;
};
} else {
if (_brightness < 0){
_brightness = (_brightness + 0.02);
if (_brightness > 0){
_brightness = 0;
};
};
};
SetAlpha(_slomo_rectangle, _brightness);
};
};
if (_local1 != _currSlowmoFactor){
_Handler_Output.Trace(("Slowmotion: " + (Math.round((_currSlowmoFactor * 100)) / 100)));
_Handler_Effects.SetSlowmotion(_currSlowmoFactor);
};
}
private function DrawRectangle(_arg1:Number, _arg2:Number):void{
_slomo_rectangle.graphics.clear();
_slomo_rectangle.graphics.moveTo(0, 0);
_slomo_rectangle.graphics.beginFill(0xFFFFFF);
_slomo_rectangle.graphics.lineTo((_arg1 + 1), 0);
_slomo_rectangle.graphics.lineTo((_arg1 + 1), (_arg2 + 1));
_slomo_rectangle.graphics.lineTo(0, (_arg2 + 1));
_slomo_rectangle.graphics.lineTo(0, 0);
_slomo_rectangle.graphics.endFill();
SetAlpha(_slomo_rectangle, _brightness);
_slomo_rectangle.x = (-((_arg1 - 800)) * 0.5);
_slomo_rectangle.y = (-((_arg2 - 600)) * 0.5);
}
private function SetBrightness(_arg1:MovieClip, _arg2:Number):void{
var _local3:Color;
_local3 = new Color();
_local3.brightness = _arg2;
_arg1.transform.colorTransform = _local3;
}
public function RemoveSlowmotion(_arg1:int):void{
var _local2:int;
_local2 = (_slowmotionArray.length - 1);
while (_local2 >= 0) {
if (_slowmotionArray[_local2][2] == _arg1){
_slowmotionArray.splice(_local2, 1);
};
_local2--;
};
}
private function SetAlpha(_arg1:MovieClip, _arg2:Number):void{
_arg1.alpha = _arg2;
}
}
}//package Code.Handler
Section 166
//Sounds (Code.Handler.Sounds)
package Code.Handler {
import flash.events.*;
import flash.media.*;
public class Sounds {
private var _inMenu:Boolean;// = false
private var menu_channelTransform:SoundTransform;
private var _sound_effect_volume:Number;// = 0.8
private var ambient_channel:SoundChannel;
private var _mighty_sounds:Array;
private var _sounds:Array;
private var ambient_song:Sound;
private var _Handler_Output:OutputTrace;
private var ambient_channelTransform:SoundTransform;
private var _lastSlowmo:Number;// = 0
private var menu_channel:SoundChannel;
private var menu_song:Sound;
public function Sounds(_arg1:OutputTrace){
_sounds = new Array();
_mighty_sounds = new Array();
_sound_effect_volume = 0.8;
_inMenu = false;
_lastSlowmo = 0;
super();
_Handler_Output = _arg1;
menu_song = new superfighters_theme();
ambient_song = new ambient_loop_1();
playAmbient();
stopAmbient();
_sounds.push(["SHELLBOUNCE", 2, [new shellbounce00(), new shellbounce01()]]);
_sounds.push(["BARREL_EXPLOSION", 1, [new explosion00(), new explosion01(), new explosion02(), new explosion03()]]);
_sounds.push(["MELEE_HIT", 1, [new punch00(), new punch01(), new punch02(), new punch03()]]);
_sounds.push(["MELEE_SWING", 4, [new svisch4(), new svisch6()]]);
_sounds.push(["KICK_SWING", 4, [new svisch4(), new svisch6()]]);
_sounds.push(["KATANA_HIT", 1, [new cut00(), new cut01(), new cut02()]]);
_sounds.push(["KICK", 1, [new punch00(), new punch01(), new punch02(), new punch03()]]);
_sounds.push(["STAIRBOUNCE", 1, [new punch00(), new punch01(), new punch02(), new punch03()]]);
_sounds.push(["OBJECTBOUNCE", 1, [new punch00(), new punch01(), new punch02(), new punch03()]]);
_sounds.push(["JUMP", 0.06, [new jump_00()]]);
_sounds.push(["ROLL", 0.75, [new roll()]]);
_sounds.push(["DIVE_CATCH", 0.7, [new dive_catch()]]);
_sounds.push(["BODYFALL", 1, [new punch00(), new punch01(), new punch02(), new punch03()]]);
_sounds.push(["PISTOL_AIM", 1, [new aim_small()]]);
_sounds.push(["PISTOL_FIRE", 1, [new gun00(), new gun01(), new gun02(), new gun03()]]);
_sounds.push(["RIFLE_AIM", 1, [new rifle_draw()]]);
_sounds.push(["RIFLE_FIRE", 1, [new rifle00(), new rifle01()]]);
_sounds.push(["UZI_AIM", 1, [new aim_small()]]);
_sounds.push(["UZI_FIRE", 1, [new uzi00(), new uzi01()]]);
_sounds.push(["MAGNUM_AIM", 1, [new aim_small()]]);
_sounds.push(["MAGNUM_FIRE", 1, [new magnum()]]);
_sounds.push(["BAZOOKA_AIM", 1, [new bazooka_aim()]]);
_sounds.push(["BAZOOKA_FIRE", 1, [new bazooka()]]);
_sounds.push(["FLAMETHROWER_AIM", 1, [new bazooka_aim()]]);
_sounds.push(["FLAMETHROWER_FIRE", 1, [new fireplosion()]]);
_sounds.push(["SHOTGUN_AIM", 1, [new shotgun_aim()]]);
_sounds.push(["SHOTGUN_FIRE", 1, [new shotgun00(), new shotgun01(), new shotgun02()]]);
_sounds.push(["SHOTGUN_PUMP_P1", 1, [new shotgun_pump_p1()]]);
_sounds.push(["SHOTGUN_PUMP_P2", 1, [new shotgun_pump_p2()]]);
_sounds.push(["SNIPER_AIM", 1, [new rifle_draw()]]);
_sounds.push(["SNIPER_FIRE", 1, [new sniper00(), new sniper01()]]);
_sounds.push(["COMP_EXPLODE", 0.6, [new comp_explode_01(), new comp_explode_02()]]);
_sounds.push(["BULLET_HITWOOD", 1, [new wood_impact00()]]);
_sounds.push(["BULLET_HITDEFAULT", 1, [new ric00()]]);
_sounds.push(["BULLET_HITMETAL", 0.65, [new bullet_hitmetal_01(), new bullet_hitmetal_02(), new bullet_hitmetal_03(), new bullet_hitmetal_04(), new bullet_hitmetal_05()]]);
_sounds.push(["BULLET_HITFLESH", 0.55, [new bullet_hit_1(), new bullet_hit_2(), new bullet_hit_3()]]);
_sounds.push(["NOAMMO_LIGHT", 1, [new outofammo_light()]]);
_sounds.push(["NOAMMO_HEAVY", 1, [new outofammo_heavy()]]);
_sounds.push(["ROCKET_EXPLOSION", 1, [new explosion00(), new explosion01(), new explosion02(), new explosion03()]]);
_sounds.push(["BUSTWOOD", 1, [new bustwood_1(), new bustwood_2()]]);
_sounds.push(["FIREBURST", 1, [new fireplosion()]]);
_sounds.push(["MELEE_GRAB", 1, [new katana_01()]]);
_sounds.push(["GRENADE_SAFE", 1, [new grenade_safe()]]);
_sounds.push(["HEARTBEAT", 1.5, [new heartbeat()]]);
_sounds.push(["GIB", 1, [new gib_00()]]);
_sounds.push(["GET_HEALTH", 0.5, [new getHealth_00()]]);
_sounds.push(["BUSTGLASS", 1, [new glass_1()]]);
_sounds.push(["BUSTMOLOTOV", 1, [new glass_2()]]);
_sounds.push(["ELECTRIC_SPARK", 0.4, [new voltage_02()]]);
_sounds.push(["GROOVY", 0.6, [new groovy00()]]);
_sounds.push(["WILHELM", 1, [new wilhelm()]]);
_mighty_sounds.push(["ACCEPT", 1, [new accept_02()]]);
_mighty_sounds.push(["CANCEL", 1, [new cancel_02()]]);
_Handler_Output.Trace("Sounds Created");
StopAllSounds();
}
public function ChangeEffectVolume(_arg1:Number):void{
_sound_effect_volume = (_sound_effect_volume + _arg1);
if (_sound_effect_volume > 1){
_sound_effect_volume = 1;
};
if (_sound_effect_volume < 0){
_sound_effect_volume = 0;
};
menu_channelTransform = menu_channel.soundTransform;
menu_channelTransform.volume = _sound_effect_volume;
menu_channel.soundTransform = menu_channelTransform;
}
public function set InMenu(_arg1:Boolean):void{
if (_inMenu != _arg1){
_inMenu = _arg1;
if (_arg1){
stopAmbient();
playMusic();
} else {
stopMusic();
playAmbient();
};
};
}
private function stopMusic():void{
menu_channel.stop();
menu_channel.removeEventListener(Event.SOUND_COMPLETE, loopMusic);
}
public function get InMenu():Boolean{
return (_inMenu);
}
private function setAmbientVolume():void{
ambient_channelTransform = ambient_channel.soundTransform;
ambient_channelTransform.volume = ((_sound_effect_volume * _lastSlowmo) * 0.1);
ambient_channel.soundTransform = ambient_channelTransform;
}
private function playMusic():void{
menu_channel = menu_song.play();
menu_channel.addEventListener(Event.SOUND_COMPLETE, loopMusic);
menu_channelTransform = menu_channel.soundTransform;
menu_channelTransform.volume = _sound_effect_volume;
menu_channel.soundTransform = menu_channelTransform;
}
private function playAmbient():void{
ambient_channel = ambient_song.play();
ambient_channel.addEventListener(Event.SOUND_COMPLETE, loopAmbient);
setAmbientVolume();
}
private function loopAmbient(_arg1:Event):void{
stopAmbient();
playAmbient();
}
public function PlaySound(_arg1:String, _arg2:Number, _arg3:Number):void{
var _local4:SoundChannel;
var _local5:String;
var _local6:int;
var _local7:SoundTransform;
if ((((((((_arg1 == "")) || ((_arg1.toUpperCase() == "NONE")))) || ((_sound_effect_volume <= 0)))) || (InMenu))){
return;
};
_local5 = _arg1.toUpperCase();
_local6 = 0;
while (_local6 < _sounds.length) {
if (_sounds[_local6][0] == _local5){
if (_sounds[_local6][2].length > 1){
_local4 = _sounds[_local6][2][Math.round((Math.random() * (_sounds[_local6][2].length - 1)))].play();
} else {
_local4 = _sounds[_local6][2][0].play();
};
_local7 = _local4.soundTransform;
_local7.volume = (_sounds[_local6][1] * _sound_effect_volume);
_local4.soundTransform = _local7;
return;
};
_local6++;
};
_Handler_Output.Trace((("Sound '" + _arg1.toUpperCase()) + "' not found"));
}
private function loopMusic(_arg1:Event):void{
stopMusic();
playMusic();
}
public function StopAllSounds():void{
SoundMixer.stopAll();
}
public function Update(_arg1:Number):void{
if (!_inMenu){
if (_lastSlowmo != _arg1){
_lastSlowmo = _arg1;
setAmbientVolume();
};
};
}
public function ChangeVolume(_arg1:Number):void{
var _local2:SoundTransform;
_local2 = new SoundTransform();
_local2.volume = _arg1;
SoundMixer.soundTransform = _local2;
}
public function PlaySoundAt(_arg1:String, _arg2:Number, _arg3:Number):void{
PlaySound(_arg1, _arg2, _arg3);
}
public function set SoundEffectVolume(_arg1:Number):void{
_sound_effect_volume = _arg1;
}
private function stopAmbient():void{
ambient_channel.stop();
ambient_channel.removeEventListener(Event.SOUND_COMPLETE, loopAmbient);
}
public function PlayMightySound(_arg1:String):void{
var _local2:SoundChannel;
var _local3:String;
var _local4:int;
var _local5:SoundTransform;
_local3 = _arg1.toUpperCase();
_local4 = 0;
while (_local4 < _mighty_sounds.length) {
if (_mighty_sounds[_local4][0] == _local3){
if (_mighty_sounds[_local4][2].length > 1){
_local2 = _mighty_sounds[_local4][2][Math.round((Math.random() * (_mighty_sounds[_local4][2].length - 1)))].play();
} else {
_local2 = _mighty_sounds[_local4][2][0].play();
};
_local5 = _local2.soundTransform;
_local5.volume = (_mighty_sounds[_local4][1] * _sound_effect_volume);
_local2.soundTransform = _local5;
return;
};
_local4++;
};
_Handler_Output.Trace((("MightySound '" + _arg1.toUpperCase()) + "' not found"));
}
public function get SoundEffectVolume():Number{
return (_sound_effect_volume);
}
public function PlaySoundAt_Box2DScale(_arg1:String, _arg2:Number, _arg3:Number):void{
PlaySoundAt(_arg1, (_arg2 * 30), (_arg3 * 30));
}
}
}//package Code.Handler
Section 167
//Weapons (Code.Handler.Weapons)
package Code.Handler {
import Code.Data.Weapons.*;
public class Weapons {
private var w_rifle:WeaponData;
private var p_magnum:WeaponProperties;
private var p_bazooka:WeaponProperties;
private var wt_grenades:WeaponThrowableData;
private var w_bazooka:WeaponData;
private var wm_machete:WeaponMeleeData;
private var p_uzi:WeaponProperties;
private var w_slowmo_05:WeaponPowerupData;
private var w_magnum:WeaponData;
private var w_uzi:WeaponData;
private var p_sniper:WeaponProperties;
private var w_pills:WeaponPowerupData;
private var w_health_p:WeaponPowerupProperties;
private var wm_axe:WeaponMeleeData;
private var p_pistol:WeaponProperties;
private var w_slowmo_10:WeaponPowerupData;
private var w_sniper:WeaponData;
private var p_rifle:WeaponProperties;
private var pm_sword:WeaponMeleeProperties;
private var w_shotgun:WeaponData;
private var wt_molotovs:WeaponThrowableData;
private var pt_grenades:WeaponThrowableProperties;
private var pm_machete:WeaponMeleeProperties;
private var p_shotgun:WeaponProperties;
private var w_flamethrower:WeaponData;
private var pm_fists:WeaponMeleeProperties;
private var w_pistol:WeaponData;
private var w_slowmo_p_05:WeaponPowerupProperties;
private var w_medkit:WeaponPowerupData;
private var pm_axe:WeaponMeleeProperties;
private var wm_sword:WeaponMeleeData;
private var w_slowmo_p_10:WeaponPowerupProperties;
private var wm_fists:WeaponMeleeData;
private var w_projectiles:Projectiles;
private var p_flamethrower:WeaponProperties;
private var _Handler_Output:OutputTrace;
private var pt_molotovs:WeaponThrowableProperties;
public function Weapons(_arg1:OutputTrace){
p_pistol = new WeaponProperties();
p_rifle = new WeaponProperties();
p_uzi = new WeaponProperties();
p_shotgun = new WeaponProperties();
p_sniper = new WeaponProperties();
p_magnum = new WeaponProperties();
p_bazooka = new WeaponProperties();
p_flamethrower = new WeaponProperties();
pt_grenades = new WeaponThrowableProperties();
pt_molotovs = new WeaponThrowableProperties();
pm_machete = new WeaponMeleeProperties();
pm_sword = new WeaponMeleeProperties();
pm_fists = new WeaponMeleeProperties();
pm_axe = new WeaponMeleeProperties();
w_slowmo_p_05 = new WeaponPowerupProperties();
w_slowmo_p_10 = new WeaponPowerupProperties();
w_health_p = new WeaponPowerupProperties();
super();
_Handler_Output = _arg1;
w_projectiles = new Projectiles(_Handler_Output);
pm_axe.WeaponType = "AXE";
pm_axe.PickupSound = "MELEE_GRAB";
pm_axe.PickupRadius = 10;
pm_axe.HitPunchFrameDamage = new Array(11, 12, 13);
pm_axe.Animation = "AXE";
pm_axe.HitSound = "KATANA_HIT";
pm_axe.Range = new Array(18, 18, 20);
pm_axe.HitMaterialSounds = new Array(["WOOD", "BULLET_HITDEFAULT"], ["METAL", "BULLET_HITMETAL"]);
pm_axe.HitMaterialEffects = new Array(["WOOD", "HITDEFAULT_01"]);
pm_axe.SwingComboSounds = new Array("MELEE_SWING", "MELEE_SWING", "MELEE_SWING");
pm_axe.SwingComboEffects = new Array("TRACE_AXE_01", "TRACE_AXE_02", "TRACE_AXE_03");
wm_axe = new WeaponMeleeData(3, pm_axe);
pm_sword.WeaponType = "SWORD";
pm_sword.PickupSound = "MELEE_GRAB";
pm_sword.PickupRadius = 10;
pm_sword.HitPunchFrameDamage = new Array(13, 14, 15);
pm_sword.Animation = "SWORD";
pm_sword.HitSound = "KATANA_HIT";
pm_sword.Range = new Array(18, 18, 23);
pm_sword.HitMaterialSounds = new Array(["WOOD", "BULLET_HITDEFAULT"], ["METAL", "BULLET_HITMETAL"]);
pm_sword.HitMaterialEffects = new Array(["WOOD", "HITDEFAULT_01"]);
pm_sword.SwingComboSounds = new Array("MELEE_SWING", "MELEE_SWING", "MELEE_SWING");
pm_sword.SwingComboEffects = new Array("TRACE_SWORD_01", "TRACE_SWORD_02", "TRACE_SWORD_03");
wm_sword = new WeaponMeleeData(3, pm_sword);
pm_machete.WeaponType = "MACHETE";
pm_machete.PickupSound = "MELEE_GRAB";
pm_machete.PickupRadius = 10;
pm_machete.HitPunchFrameDamage = new Array(8, 9, 10);
pm_machete.Animation = "MACHETE";
pm_machete.HitSound = "KATANA_HIT";
pm_machete.Range = new Array(13, 13, 19);
pm_machete.HitMaterialSounds = new Array(["WOOD", "BULLET_HITDEFAULT"], ["METAL", "BULLET_HITMETAL"]);
pm_machete.HitMaterialEffects = new Array(["WOOD", "HITDEFAULT_01"]);
pm_machete.SwingComboSounds = new Array("MELEE_SWING", "MELEE_SWING", "MELEE_SWING");
pm_machete.SwingComboEffects = new Array("TRACE_MACHETE_01", "TRACE_MACHETE_02", "TRACE_MACHETE_03");
wm_machete = new WeaponMeleeData(3, pm_machete);
pm_fists.WeaponType = "FISTS";
pm_fists.PickupSound = "";
pm_fists.PickupRadius = 0;
pm_fists.HitPunchFrameDamage = new Array(6, 7, 8);
pm_fists.Animation = "PUNCH";
pm_fists.HitSound = "MELEE_HIT";
pm_fists.Range = new Array(10, 11, 13);
pm_fists.HitMaterialSounds = new Array(["WOOD", "BULLET_HITDEFAULT"]);
pm_fists.HitMaterialEffects = new Array(["WOOD", "HITDEFAULT_01"]);
pm_fists.SwingComboSounds = new Array("MELEE_SWING", "MELEE_SWING", "MELEE_SWING");
pm_fists.SwingComboEffects = new Array("", "", "");
wm_fists = new WeaponMeleeData(3, pm_fists);
pt_grenades.WeaponType = "GRENADE";
pt_grenades.AnimType = "GRENADE";
pt_grenades.ThrowType = "GRENADE";
pt_grenades.ThrowTimer = (24 * 3);
pt_grenades.AimSound = "GRENADE_SAFE";
pt_grenades.PickupSound = "GRENADE_SAFE";
pt_grenades.PickupRadius = 10;
wt_grenades = new WeaponThrowableData(3, pt_grenades);
pt_molotovs.WeaponType = "MOLOTOV";
pt_molotovs.AnimType = "MOLOTOV";
pt_molotovs.ThrowType = "MOLOTOV";
pt_molotovs.ThrowTimer = 0;
pt_molotovs.AimSound = "SND_PLACEHOLDER";
pt_molotovs.PickupSound = "GRENADE_SAFE";
pt_molotovs.PickupRadius = 10;
wt_molotovs = new WeaponThrowableData(3, pt_molotovs);
p_pistol.WeaponType = "PISTOL";
p_pistol.AnimType = "PISTOL";
p_pistol.WeaponCooldown = 6;
p_pistol.AccuracyDeflection = 1;
p_pistol.AimSound = "PISTOL_AIM";
p_pistol.EmptySound = "NOAMMO_LIGHT";
p_pistol.PickupSound = "PISTOL_AIM";
p_pistol.BulletType = "PISTOL_BULLET";
p_pistol.PickupRadius = 10;
p_pistol.LaserSight = false;
p_pistol.MuzzleFlashEffect = "MUZZLE_FLASH_PISTOL";
p_pistol.ShellEffect = "EMPTY_SHELL_SMALL";
p_pistol.Projectile = w_projectiles.Pistol_Bullet;
p_pistol.ShootRange = 300;
p_pistol.FireSequence.push(new WeaponSequencePart(1, true, true, "PISTOL_FIRE", 2));
p_pistol.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_pistol = new WeaponData(12, p_pistol);
p_rifle.WeaponType = "RIFLE";
p_rifle.AnimType = "RIFLE";
p_rifle.WeaponCooldown = 6;
p_rifle.AccuracyDeflection = 3;
p_rifle.AimSound = "RIFLE_AIM";
p_rifle.EmptySound = "NOAMMO_HEAVY";
p_rifle.PickupSound = "RIFLE_AIM";
p_rifle.BulletType = "RIFLE_BULLET";
p_rifle.PickupRadius = 16;
p_rifle.LaserSight = false;
p_rifle.MuzzleFlashEffect = "MUZZLE_FLASH_RIFLE";
p_rifle.ShellEffect = "EMPTY_SHELL_SMALL";
p_rifle.Projectile = w_projectiles.Rifle_Bullet;
p_rifle.ShootRange = 300;
p_rifle.FireSequence.push(new WeaponSequencePart(1, true, true, "RIFLE_FIRE", 2));
p_rifle.FireSequence.push(new WeaponSequencePart());
p_rifle.FireSequence.push(new WeaponSequencePart(1, true, true, "RIFLE_FIRE", 2));
p_rifle.FireSequence.push(new WeaponSequencePart());
p_rifle.FireSequence.push(new WeaponSequencePart(1, true, true, "RIFLE_FIRE", 2));
p_rifle.FireSequence.push(new WeaponSequencePart());
p_rifle.FireSequence.push(new WeaponSequencePart(1, true, true, "RIFLE_FIRE", 2));
p_rifle.FireSequence.push(new WeaponSequencePart());
p_rifle.FireSequence.push(new WeaponSequencePart(1, true, true, "RIFLE_FIRE", 2));
p_rifle.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_rifle = new WeaponData((5 * 5), p_rifle);
p_uzi.WeaponType = "UZI";
p_uzi.AnimType = "UZI";
p_uzi.WeaponCooldown = 6;
p_uzi.AccuracyDeflection = 6;
p_uzi.AimSound = "UZI_AIM";
p_uzi.EmptySound = "NOAMMO_LIGHT";
p_uzi.PickupSound = "UZI_AIM";
p_uzi.BulletType = "UZI_BULLET";
p_uzi.PickupRadius = 16;
p_uzi.LaserSight = false;
p_uzi.MuzzleFlashEffect = "MUZZLE_FLASH_PISTOL";
p_uzi.ShellEffect = "EMPTY_SHELL_SMALL";
p_uzi.Projectile = w_projectiles.Uzi_Bullet;
p_uzi.ShootRange = 200;
p_uzi.FireSequence.push(new WeaponSequencePart(1, true, true, "UZI_FIRE", 2));
p_uzi.FireSequence.push(new WeaponSequencePart());
p_uzi.FireSequence.push(new WeaponSequencePart(1, true, true, "UZI_FIRE", 2));
p_uzi.FireSequence.push(new WeaponSequencePart());
p_uzi.FireSequence.push(new WeaponSequencePart(1, true, true, "UZI_FIRE", 2));
p_uzi.FireSequence.push(new WeaponSequencePart());
p_uzi.FireSequence.push(new WeaponSequencePart(1, true, true, "UZI_FIRE", 2));
p_uzi.FireSequence.push(new WeaponSequencePart());
p_uzi.FireSequence.push(new WeaponSequencePart(1, true, true, "UZI_FIRE", 2));
p_uzi.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_uzi = new WeaponData((5 * 5), p_uzi);
p_shotgun.WeaponType = "SHOTGUN";
p_shotgun.AnimType = "SHOTGUN";
p_shotgun.WeaponCooldown = 3;
p_shotgun.AccuracyDeflection = 4.3;
p_shotgun.AimSound = "SHOTGUN_AIM";
p_shotgun.EmptySound = "NOAMMO_HEAVY";
p_shotgun.PickupSound = "SHOTGUN_AIM";
p_shotgun.BulletType = "SHOTGUN_BULLET";
p_shotgun.PickupRadius = 14;
p_shotgun.LaserSight = false;
p_shotgun.MuzzleFlashEffect = "MUZZLE_FLASH_SHOTGUN";
p_shotgun.ShellEffect = "EMPTY_SHELL_SHOTGUN";
p_shotgun.Projectile = w_projectiles.Shotgun_Bullet;
p_shotgun.ShootRange = 200;
p_shotgun.FireSequence.push(new WeaponSequencePart(4, true, false, "SHOTGUN_FIRE", 2));
p_shotgun.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 2));
p_shotgun.FireSequence.push(new WeaponSequencePart());
p_shotgun.FireSequence.push(new WeaponSequencePart());
p_shotgun.FireSequence.push(new WeaponSequencePart());
p_shotgun.FireSequence.push(new WeaponSequencePart(0, false, true, "SHOTGUN_PUMP_P1", 3));
p_shotgun.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 3));
p_shotgun.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 3));
p_shotgun.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 3));
p_shotgun.FireSequence.push(new WeaponSequencePart());
p_shotgun.FireSequence.push(new WeaponSequencePart(0, false, false, "SHOTGUN_PUMP_P2", 1, true));
w_shotgun = new WeaponData((8 * 4), p_shotgun);
p_magnum.WeaponType = "MAGNUM";
p_magnum.AnimType = "MAGNUM";
p_magnum.WeaponCooldown = 8;
p_magnum.AccuracyDeflection = 0.5;
p_magnum.AimSound = "MAGNUM_AIM";
p_magnum.EmptySound = "NOAMMO_HEAVY";
p_magnum.PickupSound = "MAGNUM_AIM";
p_magnum.BulletType = "MAGNUM_BULLET";
p_magnum.PickupRadius = 10;
p_magnum.LaserSight = false;
p_magnum.LaserDeflection = 0.5;
p_magnum.MuzzleFlashEffect = "MUZZLE_FLASH_SHOTGUN";
p_magnum.ShellEffect = "EMPTY_SHELL_SMALL";
p_magnum.Projectile = w_projectiles.Magnum_Bullet;
p_magnum.ShootRange = 300;
p_magnum.FireSequence.push(new WeaponSequencePart(1, true, false, "MAGNUM_FIRE", 2));
p_magnum.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_magnum = new WeaponData(6, p_magnum);
p_sniper.WeaponType = "SNIPER";
p_sniper.AnimType = "SNIPER";
p_sniper.WeaponCooldown = 18;
p_sniper.AccuracyDeflection = 0;
p_sniper.AimSound = "SNIPER_AIM";
p_sniper.EmptySound = "NOAMMO_HEAVY";
p_sniper.PickupSound = "SNIPER_AIM";
p_sniper.BulletType = "SNIPER_BULLET";
p_sniper.PickupRadius = 16;
p_sniper.LaserSight = true;
p_sniper.LaserDeflection = 0.5;
p_sniper.MuzzleFlashEffect = "MUZZLE_FLASH_SNIPER";
p_sniper.ShellEffect = "EMPTY_SHELL_BIG";
p_sniper.Projectile = w_projectiles.Sniper_Bullet;
p_sniper.ShootRange = 900;
p_sniper.FireSequence.push(new WeaponSequencePart(1, true, true, "SNIPER_FIRE", 2));
p_sniper.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 2));
p_sniper.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_sniper = new WeaponData(5, p_sniper);
p_bazooka.WeaponType = "BAZOOKA";
p_bazooka.AnimType = "BAZOOKA";
p_bazooka.WeaponCooldown = 10;
p_bazooka.AccuracyDeflection = 2;
p_bazooka.AimSound = "BAZOOKA_AIM";
p_bazooka.EmptySound = "NOAMMO_HEAVY";
p_bazooka.PickupSound = "BAZOOKA_AIM";
p_bazooka.BulletType = "BAZOOKA_ROCKET";
p_bazooka.PickupRadius = 16;
p_bazooka.LaserSight = false;
p_bazooka.MuzzleFlashEffect = "MUZZLE_FLASH_BAZOOKA";
p_bazooka.ShellEffect = "";
p_bazooka.Projectile = w_projectiles.Bazooka_Rocket;
p_bazooka.ShootRange = 300;
p_bazooka.FireSequence.push(new WeaponSequencePart(1, true, false, "BAZOOKA_FIRE", 2));
p_bazooka.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 2));
p_bazooka.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_bazooka = new WeaponData(3, p_bazooka);
p_flamethrower.WeaponType = "FLAMETHROWER";
p_flamethrower.AnimType = "FLAMETHROWER";
p_flamethrower.WeaponCooldown = 10;
p_flamethrower.AccuracyDeflection = 6;
p_flamethrower.AimSound = "FLAMETHROWER_AIM";
p_flamethrower.EmptySound = "NOAMMO_LIGHT";
p_flamethrower.PickupSound = "FLAMETHROWER_AIM";
p_flamethrower.BulletType = "FLAME";
p_flamethrower.PickupRadius = 16;
p_flamethrower.LaserSight = false;
p_flamethrower.MuzzleFlashEffect = "";
p_flamethrower.ShellEffect = "";
p_flamethrower.Projectile = null;
p_flamethrower.ShootRange = 140;
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "FLAMETHROWER_FIRE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(1, false, false, "NONE", 1));
p_flamethrower.FireSequence.push(new WeaponSequencePart(0, false, false, "NONE", 1, true));
w_flamethrower = new WeaponData(60, p_flamethrower);
w_slowmo_p_05.WeaponType = "SLOMO05";
w_slowmo_p_05.PickupSound = "SND_PLACEHOLDER";
w_slowmo_p_05.PickupRadius = 12;
w_slowmo_p_10.WeaponType = "SLOMO10";
w_slowmo_p_10.PickupSound = "SND_PLACEHOLDER";
w_slowmo_p_10.PickupRadius = 12;
w_slowmo_05 = new WeaponPowerupData(5, w_slowmo_p_05);
w_slowmo_10 = new WeaponPowerupData(10, w_slowmo_p_10);
w_health_p.PickupSound = "GET_HEALTH";
w_health_p.PickupRadius = 12;
w_pills = new WeaponPowerupData(25, w_health_p);
w_medkit = new WeaponPowerupData(50, w_health_p);
_Handler_Output.Trace("Weapons Created");
}
public function get Shotgun():WeaponData{
return (w_shotgun.Copy());
}
public function get Grenades():WeaponThrowableData{
return (wt_grenades.Copy());
}
public function get Fists():WeaponMeleeData{
return (wm_fists.Copy());
}
public function get Sniper():WeaponData{
return (w_sniper.Copy());
}
public function get Flamethrower():WeaponData{
return (w_flamethrower.Copy());
}
public function get Axe():WeaponMeleeData{
return (wm_axe.Copy());
}
public function get Molotovs():WeaponThrowableData{
return (wt_molotovs.Copy());
}
public function get Bazooka():WeaponData{
return (w_bazooka.Copy());
}
public function get Pistol():WeaponData{
return (w_pistol.Copy());
}
public function get Rifle():WeaponData{
return (w_rifle.Copy());
}
public function get Slowmo05():WeaponPowerupData{
return (w_slowmo_05.Copy());
}
public function get Uzi():WeaponData{
return (w_uzi.Copy());
}
public function get Sword():WeaponMeleeData{
return (wm_sword.Copy());
}
public function get Medkit():WeaponPowerupData{
return (w_medkit.Copy());
}
public function get Machete():WeaponMeleeData{
return (wm_machete.Copy());
}
public function get Pills():WeaponPowerupData{
return (w_pills.Copy());
}
public function get Slowmo10():WeaponPowerupData{
return (w_slowmo_10.Copy());
}
public function get Magnum():WeaponData{
return (w_magnum.Copy());
}
}
}//package Code.Handler
Section 168
//WeaponSpawn (Code.Handler.WeaponSpawn)
package Code.Handler {
import Code.Box2D.Common.Math.*;
import Code.Box2D.Dynamics.*;
import Code.Data.*;
public class WeaponSpawn {
private var _Handler_Weapons:Weapons;
private var _spawnTimer:Number;
private var _Handler_Maps:Maps;
private var _spawnInterval:Number;// = 72
private var _WeaponSpawns:Array;
private var _weaponSpawnChance:Array;
private var _Handler_Output:OutputTrace;
public function WeaponSpawn(_arg1:OutputTrace, _arg2:Maps, _arg3:Weapons){
_spawnInterval = 72;
super();
_Handler_Output = _arg1;
_Handler_Maps = _arg2;
_Handler_Weapons = _arg3;
_WeaponSpawns = _Handler_Maps.GetWeaponSpawns();
_spawnTimer = _spawnInterval;
_weaponSpawnChance = new Array();
_weaponSpawnChance.push(11);
_weaponSpawnChance.push(9);
_weaponSpawnChance.push(7);
_weaponSpawnChance.push(2);
_weaponSpawnChance.push(2);
_weaponSpawnChance.push(4);
_weaponSpawnChance.push(6);
_weaponSpawnChance.push(5);
_weaponSpawnChance.push(2);
_weaponSpawnChance.push(3);
_weaponSpawnChance.push(3);
_weaponSpawnChance.push(4);
_weaponSpawnChance.push(3);
_weaponSpawnChance.push(2);
_weaponSpawnChance.push(2);
_weaponSpawnChance.push(2);
_weaponSpawnChance.push(6);
_Handler_Output.Trace("Weapon Spawn Created");
}
public function Update(_arg1:Number):void{
var w:int;
var tmpArr:Array;
var i:int;
var rndIndex:int;
var wpnData:WeaponSpawnData;
var wpnIndexes:Array;
var j:int;
var wpnToSpawn:Array;
var spawnValue:int;
var k:int;
var rndWeapon:int;
var wpn:b2Body;
var l:int;
var game_speed = _arg1;
w = 0;
while (w < _WeaponSpawns.length) {
_WeaponSpawns[w].Update(game_speed);
w = (w + 1);
};
_spawnTimer = (_spawnTimer - game_speed);
if (_spawnTimer <= 0){
_spawnTimer = _spawnInterval;
tmpArr = new Array();
i = 0;
while (i < _WeaponSpawns.length) {
if ((((_WeaponSpawns[i].LinkedWeapon == null)) && (!(_WeaponSpawns[i].SkipThisOnce)))){
tmpArr.push(_WeaponSpawns[i]);
};
i = (i + 1);
};
if (tmpArr.length <= 0){
return;
};
rndIndex = Math.floor((Math.random() * tmpArr.length));
wpnData = tmpArr[rndIndex];
wpnIndexes = new Array();
j = 0;
while (j < wpnData.WeaponArray.length) {
if (wpnData.WeaponArray[j] == 1){
wpnIndexes.push(j);
};
j = (j + 1);
};
if (wpnIndexes.length <= 0){
return;
};
wpnToSpawn = new Array();
spawnValue = 0;
k = 0;
while (k < wpnIndexes.length) {
spawnValue = _weaponSpawnChance[wpnIndexes[k]];
l = 0;
while (l < spawnValue) {
wpnToSpawn.push(wpnIndexes[k]);
l = (l + 1);
};
k = (k + 1);
};
rndWeapon = Math.floor((Math.random() * wpnToSpawn.length));
switch (wpnToSpawn[rndWeapon]){
case 0:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_pistol", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Pistol;
break;
case 1:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_rifle", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Rifle;
break;
case 2:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_shotgun", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Shotgun;
break;
case 3:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_sniper", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Sniper;
break;
case 4:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_bazooka", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Bazooka;
break;
case 5:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_molotovs", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Molotovs;
break;
case 6:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_grenades", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Grenades;
break;
case 7:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_flamethrower", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Flamethrower;
break;
case 8:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_sword", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Sword;
break;
case 9:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_machete", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Machete;
break;
case 10:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_axe", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Axe;
break;
case 11:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_slowmo_05", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Slowmo05;
break;
case 12:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_slowmo_10", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Slowmo10;
break;
case 13:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_pills", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Pills;
break;
case 14:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_medkit", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Medkit;
break;
case 15:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_magnum", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Magnum;
break;
case 16:
wpn = _Handler_Maps.Handler_WorldItems.AddPolygon("wpn_uzi", (wpnData.PositionX / 30), (wpnData.PositionY / 30), 0, new b2Vec2(), 0);
wpn.GetUserData().weaponData = _Handler_Weapons.Uzi;
break;
};
if (wpn != null){
wpn.GetUserData().objectData.UpdateFunction = function (_arg1:b2Body, _arg2:Number):void{
};
wpn.PutToSleep();
wpnData.LinkedWeapon = wpn;
};
};
}
}
}//package Code.Handler
Section 169
//blood_gib_trace (Code.Particles.blood_gib_trace)
package Code.Particles {
public class blood_gib_trace extends particle_base {
private var _s:Number;
private var _a:Number;
public function blood_gib_trace(_arg1:particle_data){
_a = 1;
_s = 1;
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_a = (_a - (game_speed * 0.07));
_s = (_s + (game_speed * 0.04));
this.alpha = _a;
this.scaleX = _s;
this.scaleY = _s;
if (_a <= 0.4){
EndParticle();
};
}
}
}//package Code.Particles
Section 170
//bullet_hitdefault (Code.Particles.bullet_hitdefault)
package Code.Particles {
import flash.display.*;
public class bullet_hitdefault extends particle_base {
private var _speedX:Number;
private var _speedY:Number;
private var _s:Number;
private var _mc:MovieClip;
private var _posX:Number;
private var _posY:Number;
private var _a:Number;
public function bullet_hitdefault(_arg1:particle_data){
_mc = new smoke_trace_light_01();
_a = 0.8;
_mc.alpha = _a;
_posX = 0;
_posY = 0;
_speedX = ((Math.random() * 1.2) - 0.6);
_speedY = ((Math.random() * 1.2) - 0.6);
_s = 1;
this.addChild(_mc);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posX = (_posX + (_speedX * game_speed));
_posY = (_posY + (_speedY * game_speed));
_a = (_a - (game_speed * 0.04));
_s = (_s + (game_speed * 0.01));
if (_a <= 0){
EndParticle();
} else {
_mc.scaleX = _s;
_mc.scaleY = _s;
_mc.alpha = _a;
_mc.x = _posX;
_mc.y = _posY;
};
}
}
}//package Code.Particles
Section 171
//fire_effect (Code.Particles.fire_effect)
package Code.Particles {
import flash.display.*;
public class fire_effect extends particle_base {
private var _mc:MovieClip;
private var _percentage:Number;
private var _posX:Number;
private var _posY:Number;
private var _velX:Number;
private var _a:Number;
public function fire_effect(_arg1:particle_data){
var _local2:Number;
super();
this.scaleX = 1.25;
this.scaleY = 1.25;
_local2 = (Math.round((Math.random() * 2)) + 1);
switch (_local2){
case 1:
_mc = new fire_01();
break;
case 2:
_mc = new fire_02();
break;
case 3:
_mc = new fire_03();
break;
};
this.addChild(_mc);
_a = 1;
_posX = _arg1.PosX;
_posY = _arg1.PosY;
_velX = (Math.random() - 0.5);
_velX = (_velX * 0.7);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posY = (_posY - (game_speed * 1.2));
_posX = (_posX + (game_speed * _velX));
_a = (_a - (game_speed * 0.04));
this.y = _posY;
this.x = _posX;
this.alpha = _a;
if (_a <= 0.4){
EndParticle();
} else {
_percentage = (1 - ((_a - 0.4) / 0.6));
_mc.gotoAndStop(Math.ceil((_mc.totalFrames * _percentage)));
};
}
}
}//package Code.Particles
Section 172
//fire_effect_bazooka_rocket (Code.Particles.fire_effect_bazooka_rocket)
package Code.Particles {
import flash.display.*;
public class fire_effect_bazooka_rocket extends particle_base {
private var _s:Number;
private var _mc:MovieClip;
private var _velY:Number;
private var _percentage:Number;
private var _posX:Number;
private var _posY:Number;
private var _velX:Number;
private var _a:Number;
public function fire_effect_bazooka_rocket(_arg1:particle_data){
_mc = new trace_bazooka_rocket();
this.addChild(_mc);
_a = 1;
_s = 1;
this.scaleX = _s;
this.scaleY = _s;
_posX = _arg1.PosX;
_posY = _arg1.PosY;
_velX = ((_arg1.ParticleVec.x + (Math.random() * 2)) - 1);
_velX = (_velX * 0.4);
_velY = (_arg1.ParticleVec.y - Math.random());
_velY = (_velY * 0.4);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posY = (_posY + (game_speed * _velY));
_posX = (_posX + (game_speed * _velX));
_a = (_a - (game_speed * 0.04));
_velY = (_velY - (game_speed * 0.15));
_s = (_s + (game_speed * 0.03));
this.y = _posY;
this.x = _posX;
this.alpha = _a;
this.scaleX = _s;
this.scaleY = _s;
if (_a <= 0.4){
EndParticle();
} else {
_percentage = (1 - ((_a - 0.4) / 0.6));
_mc.gotoAndStop(Math.ceil((_mc.totalFrames * _percentage)));
};
}
}
}//package Code.Particles
Section 173
//fire_effect_flamethrower (Code.Particles.fire_effect_flamethrower)
package Code.Particles {
import flash.display.*;
public class fire_effect_flamethrower extends particle_base {
private var _mc:MovieClip;
private var _velY:Number;
private var _percentage:Number;
private var _posX:Number;
private var _posY:Number;
private var _velX:Number;
private var _a:Number;
public function fire_effect_flamethrower(_arg1:particle_data){
this.scaleX = 1;
this.scaleY = 1;
_mc = new fire_01_flamethrower();
this.addChild(_mc);
_a = 1;
_posX = _arg1.PosX;
_posY = _arg1.PosY;
_velX = _arg1.ParticleVec.x;
_velX = (_velX * 0.16);
_velY = (_arg1.ParticleVec.y - 0.4);
_velY = (_velY * 0.16);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posY = (_posY + (game_speed * _velY));
_posX = (_posX + (game_speed * _velX));
_a = (_a - (game_speed * 0.07));
_velY = (_velY - (game_speed * 0.2));
this.y = _posY;
this.x = _posX;
this.alpha = _a;
if (_a <= 0.4){
EndParticle();
} else {
_percentage = (1 - ((_a - 0.4) / 0.6));
_mc.gotoAndStop(Math.ceil((_mc.totalFrames * _percentage)));
};
}
}
}//package Code.Particles
Section 174
//fire_effect_ground (Code.Particles.fire_effect_ground)
package Code.Particles {
public class fire_effect_ground extends particle_base {
private var _posX:Number;
private var _posY:Number;
private var _velX:Number;
private var _a:Number;
public function fire_effect_ground(_arg1:particle_data){
this.gotoAndStop((Math.round((Math.random() * (this.totalFrames - 1))) + 1));
this.scaleX = 1.25;
this.scaleY = 1.25;
_a = 1;
_posX = _arg1.PosX;
_posY = (_arg1.PosY - 2);
_velX = (Math.random() - 0.5);
_velX = (_velX * 1.2);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posX = (_posX + (game_speed * _velX));
_a = (_a - (game_speed * 0.04));
_posY = (_posY - (game_speed * 0.01));
this.x = _posX;
this.y = _posY;
this.alpha = _a;
if (_a <= 0.4){
EndParticle();
};
}
}
}//package Code.Particles
Section 175
//muzzle_weapon_smoke (Code.Particles.muzzle_weapon_smoke)
package Code.Particles {
import flash.display.*;
public class muzzle_weapon_smoke extends particle_base {
private var _s:Number;
private var _mc:MovieClip;
private var _velY:Number;
private var _posX:Number;
private var _changeX:Number;
private var _changeY:Number;
private var _posY:Number;
private var _velX:Number;
private var _a:Number;
public function muzzle_weapon_smoke(_arg1:particle_data){
_changeX = (Math.cos((_arg1.Rotation * (Math.PI / 180))) * 0.05);
_changeY = (Math.sin((_arg1.Rotation * (Math.PI / 180))) * 0.07);
_velX = (0.4 + (Math.random() * 0.3));
_velY = ((Math.random() * 0.6) - 0.3);
_posX = 0;
_posY = 0;
_a = 0.7;
_s = 1;
_mc = new smoke_weapon_muzzle();
_mc.alpha = 0.6;
this.addChild(_mc);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_velY = (_velY - (_changeX * game_speed));
_velX = (_velX - (_changeY * game_speed));
_posX = (_posX + (_velX * game_speed));
_posY = (_posY + (_velY * game_speed));
_mc.x = _posX;
_mc.y = _posY;
_a = (_a - (0.05 * game_speed));
_s = (_s + (0.04 * game_speed));
_mc.alpha = _a;
_mc.scaleX = _s;
_mc.scaleY = _s;
if (_a <= 0.1){
EndParticle();
};
}
}
}//package Code.Particles
Section 176
//particle_base (Code.Particles.particle_base)
package Code.Particles {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class particle_base extends MovieClip {
private var updateFunc:Function;
private var _updateTimer:Number;
private var _game_speed:Number;// = 1
private var _curr_frame:Number;// = 1
public function particle_base(){
_game_speed = 1;
_curr_frame = 1;
super();
}
public function EndParticle():void{
if (isNaN(_updateTimer)){
this.removeEventListener(Event.ENTER_FRAME, Update);
} else {
clearInterval(_updateTimer);
};
if (this.parent != null){
this.parent.removeChild(this);
};
}
public function set game_speed(_arg1:Number):void{
_game_speed = _arg1;
}
public function set CurrentFrame(_arg1:int):void{
_curr_frame = _arg1;
}
public function ProgressAnimationFor(_arg1:MovieClip):void{
_curr_frame = (_curr_frame + _game_speed);
_arg1.gotoAndStop(CurrentFrame);
}
public function get CurrentFrame():int{
return (Math.round((_curr_frame + 0.001)));
}
public function SetUpdateEvent(_arg1:Function):void{
updateFunc = _arg1;
this.addEventListener(Event.ENTER_FRAME, Update, false, 0, true);
}
public function get game_speed():Number{
return (_game_speed);
}
public function ProgressAnimation():void{
_curr_frame = (_curr_frame + _game_speed);
this.gotoAndStop(CurrentFrame);
}
private function Update(_arg1:Event):void{
updateFunc();
this.removeEventListener(Event.ENTER_FRAME, Update);
_updateTimer = setInterval(updateFunc, (1000 / 24));
}
}
}//package Code.Particles
Section 177
//particle_blood (Code.Particles.particle_blood)
package Code.Particles {
import flash.display.*;
public class particle_blood extends particle_base {
private var _mc:MovieClip;
private var _velY:Number;
private var _posX:Number;
private var _posY:Number;
private var _velX:Number;
private var _a:Number;
public function particle_blood(_arg1:particle_data){
_velX = (((Math.random() * 1) - 0.5) + _arg1.ParticleVec.x);
_velY = ((Math.random() * 0.8) - 2);
_posX = 0;
_posY = 0;
_a = 1;
switch (_arg1.DataArray[0]){
case 0:
_mc = new blood_particle_big();
break;
case 1:
_mc = new blood_particle_small();
break;
default:
_mc = new blood_particle_small();
break;
};
this.addChild(_mc);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_velY = (_velY + (0.3 * game_speed));
_posX = (_posX + (_velX * game_speed));
_posY = (_posY + (_velY * game_speed));
_mc.x = _posX;
_mc.y = _posY;
_a = (_a - (0.04 * game_speed));
if (_a < 0.5){
_mc.alpha = (1 - ((0.5 - _a) / 0.3));
};
if (_a <= 0.2){
EndParticle();
};
}
}
}//package Code.Particles
Section 178
//particle_bodyfall (Code.Particles.particle_bodyfall)
package Code.Particles {
public class particle_bodyfall extends particle_base {
private var Scale:Number;// = 0
private var speedX:Number;// = 0
private var speedY:Number;// = 0
public function particle_bodyfall(_arg1:particle_data){
Scale = 0;
speedY = 0;
speedX = 0;
super();
speedX = ((Math.random() * 0.4) - 0.2);
speedY = ((Math.random() * 0.6) - 0.4);
Scale = 1;
this.scaleX = Scale;
this.scaleY = Scale;
this.alpha = 0.5;
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
speedY = (speedY + (0.002 * game_speed));
this.y = (this.y + (speedY * game_speed));
this.x = (this.x + (speedX * game_speed));
this.alpha = (this.alpha - (0.04 * game_speed));
Scale = (Scale + (0.04 * game_speed));
this.scaleX = Scale;
this.scaleY = Scale;
if (this.alpha <= 0.1){
EndParticle();
};
}
}
}//package Code.Particles
Section 179
//particle_data (Code.Particles.particle_data)
package Code.Particles {
import Code.Box2D.Common.Math.*;
public class particle_data {
public var Alpha:Number;
public var PosX:Number;
public var PosY:Number;
public var ParticleVec:b2Vec2;
public var Effect:String;
public var ScaleY:Number;
public var ScaleX:Number;
public var DataArray:Array;
public var Rotation:Number;
public function particle_data(_arg1:String="", _arg2:Number=0, _arg3:Number=0, _arg4:b2Vec2=null, _arg5:Number=0, _arg6:Number=1, _arg7:Array=null){
Effect = _arg1.toUpperCase();
PosX = _arg2;
PosY = _arg3;
if (_arg4 != null){
ParticleVec = _arg4;
} else {
ParticleVec = new b2Vec2(0, 0);
};
Alpha = _arg6;
Rotation = _arg5;
DataArray = _arg7;
ScaleX = 1;
ScaleY = 1;
}
}
}//package Code.Particles
Section 180
//particle_impact_metal (Code.Particles.particle_impact_metal)
package Code.Particles {
public class particle_impact_metal extends particle_base {
private var Scale:Number;// = 0
private var speedX:Number;// = 0
private var speedY:Number;// = 0
public function particle_impact_metal(_arg1:particle_data){
var _local2:Number;
Scale = 0;
speedY = 0;
speedX = 0;
super();
speedX = _arg1.ParticleVec.x;
speedY = _arg1.ParticleVec.y;
_local2 = Math.sqrt(((speedX * speedX) + (speedY * speedY)));
if (_local2 > 1){
speedX = (speedX * (1 / _local2));
speedY = (speedY * (1 / _local2));
};
Scale = 0.7;
this.scaleX = Scale;
this.scaleY = Scale;
this.alpha = 0.7;
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
this.y = (this.y + (speedY * game_speed));
this.x = (this.x + (speedX * game_speed));
this.alpha = (this.alpha - (0.1 * game_speed));
if (this.alpha <= 0){
EndParticle();
};
}
}
}//package Code.Particles
Section 181
//particle_impact_wood (Code.Particles.particle_impact_wood)
package Code.Particles {
public class particle_impact_wood extends particle_base {
private var Scale:Number;// = 0
private var speedX:Number;// = 0
private var speedY:Number;// = 0
public function particle_impact_wood(_arg1:particle_data){
Scale = 0;
speedY = 0;
speedX = 0;
super();
speedX = (_arg1.ParticleVec.x * 0.1);
if (Math.sqrt((speedX * speedX)) > 1){
speedX = (speedX / Math.sqrt((speedX * speedX)));
};
speedY = -0.1;
Scale = 0.7;
this.scaleX = Scale;
this.scaleY = Scale;
this.alpha = 0.5;
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
speedY = (speedY + (0.025 * game_speed));
this.y = (this.y + (speedY * game_speed));
this.x = (this.x + (speedX * game_speed));
this.alpha = (this.alpha - (0.03 * game_speed));
this.scaleX = (this.scaleX + (0.03 * game_speed));
this.scaleY = (this.scaleY + (0.03 * game_speed));
if (this.alpha <= 0){
EndParticle();
};
}
}
}//package Code.Particles
Section 182
//pickup_sign (Code.Particles.pickup_sign)
package Code.Particles {
public class pickup_sign extends particle_base {
var a:Number;// = 1
var time:int;// = 0
public function pickup_sign(_arg1:particle_data){
var _local2:String;
time = 0;
a = 1;
super();
_local2 = _arg1.Effect.substr(7, (_arg1.Effect.length - 7));
this.gotoAndStop(_local2);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
this.y = (this.y - 0.5);
a = (a - 0.04);
this.alpha = a;
time++;
if (time >= 24){
EndParticle();
};
}
}
}//package Code.Particles
Section 183
//simple_effect (Code.Particles.simple_effect)
package Code.Particles {
import flash.display.*;
public class simple_effect extends particle_base {
private var _mc:MovieClip;
public function simple_effect(_arg1:MovieClip){
_mc = _arg1;
this.addChild(_mc);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
ProgressAnimationFor(_mc);
if (CurrentFrame >= _mc.totalFrames){
EndParticle();
};
}
}
}//package Code.Particles
Section 184
//smoke_fire (Code.Particles.smoke_fire)
package Code.Particles {
import flash.display.*;
public class smoke_fire extends particle_base {
private var _speedX:Number;
private var _speedY:Number;
private var _s:Number;
private var _mc:MovieClip;
private var _posX:Number;
private var _posY:Number;
private var _a:Number;
public function smoke_fire(_arg1:particle_data){
_mc = new smoke_trace_01();
_a = 0.8;
_mc.alpha = _a;
_posX = 0;
_posY = 0;
_speedX = 0;
_speedY = -2;
_s = 0.8;
this.addChild(_mc);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posX = (_posX + (_speedX * game_speed));
_posY = (_posY + (_speedY * game_speed));
_a = (_a - (game_speed * 0.04));
_s = (_s + (game_speed * 0.01));
if (_a <= 0){
EndParticle();
} else {
_mc.scaleX = _s;
_mc.scaleY = _s;
_mc.alpha = _a;
_mc.x = _posX;
_mc.y = _posY;
};
}
}
}//package Code.Particles
Section 185
//smoke_trace_effect (Code.Particles.smoke_trace_effect)
package Code.Particles {
import flash.display.*;
public class smoke_trace_effect extends particle_base {
private var _speedX:Number;
private var _speedY:Number;
private var _s:Number;
private var _mc:MovieClip;
private var _posX:Number;
private var _posY:Number;
private var _a:Number;
public function smoke_trace_effect(_arg1:particle_data){
if (_arg1.DataArray[0] == 2){
_mc = new smoke_trace_01();
} else {
if (_arg1.DataArray[0] == 1){
_mc = new smoke_trace_light_01();
} else {
_mc = new error_mc();
};
};
_a = 0.6;
_mc.alpha = _a;
_posX = 0;
_posY = 0;
_speedX = (_arg1.ParticleVec.x * 0.1);
_speedY = (_arg1.ParticleVec.y * 0.1);
_s = 0.8;
this.addChild(_mc);
SetUpdateEvent(UpdateParticle);
}
private function UpdateParticle(){
_posX = (_posX + (_speedX * game_speed));
_posY = (_posY + ((_speedY - 0.5) * game_speed));
_a = (_a - (game_speed * 0.05));
_s = (_s + (game_speed * 0.02));
if (_a <= 0.1){
EndParticle();
} else {
_mc.scaleX = _s;
_mc.scaleY = _s;
_mc.alpha = _a;
_mc.x = _posX;
_mc.y = _posY;
};
}
}
}//package Code.Particles
Section 186
//Main (Code.Main)
package Code {
import Code.Handler.*;
import flash.display.*;
import Code.Data.*;
public class Main extends MovieClip {
private var _Handler_Output:OutputTrace;
private var _Handler_Options:Options;
private var _Handler_Sounds:Sounds;
private var _this;
private var _Handler_MenuMain:MenuMain;
private var _Handler_GameMain:GameMain;
private var _game_mc:MovieClip;
private var _stage;
public function Main(_arg1, _arg2){
var _local3:GameMainData;
var _local4:MenuMainData;
var _local5:*;
super();
_stage = _arg1;
_this = _arg2;
_game_mc = new MovieClip();
_this.addChild(_game_mc);
_Handler_Output = new OutputTrace(_stage, GameMain.DEBUG_MODE);
_Handler_Sounds = new Sounds(_Handler_Output);
_Handler_Options = new Options(_stage, _Handler_Output);
_this.contextMenu = _Handler_Options.CustomizedContextMenu();
_local3 = new GameMainData();
_local3.game_mc = _game_mc;
_local3.stage_temp = _stage;
_local3.Handler_Output = _Handler_Output;
_local3.Handler_Options = _Handler_Options;
_local3.Handler_Sounds = _Handler_Sounds;
_Handler_GameMain = new GameMain(_local3);
_local4 = new MenuMainData();
_local4.game_mc = _game_mc;
_local4.stage_temp = _stage;
_local4.Handler_Output = _Handler_Output;
_local4.Handler_GameMain = _Handler_GameMain;
_local4.Handler_Sounds = _Handler_Sounds;
_local4.Handler_Options = _Handler_Options;
_Handler_MenuMain = new MenuMain(_local4);
_Handler_GameMain.Handler_MenuMain = _Handler_MenuMain;
_Handler_MenuMain.OpenMenu();
_local5 = _this.medal_popup;
_local5.parent.removeChild(_local5);
_stage.addChild(_local5);
_Handler_Output.Trace("Game Started Successfully");
_Handler_Output.Trace("");
}
}
}//package Code
Section 187
//MD5 (com.adobe.crypto.MD5)
package com.adobe.crypto {
import flash.utils.*;
import com.adobe.utils.*;
public class MD5 {
public static var digest:ByteArray;
public static function hash(_arg1:String):String{
var _local2:ByteArray = new ByteArray();
_local2.writeUTFBytes(_arg1);
return (hashBinary(_local2));
}
public static function hashBytes(_arg1:ByteArray):String{
return (hashBinary(_arg1));
}
public static function hashBinary(_arg1:ByteArray):String{
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local2 = 1732584193;
var _local3 = -271733879;
var _local4 = -1732584194;
var _local5 = 271733878;
var _local10:Array = createBlocks(_arg1);
var _local11:int = _local10.length;
var _local12:int;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
digest = new ByteArray();
digest.writeInt(_local2);
digest.writeInt(_local3);
digest.writeInt(_local4);
digest.writeInt(_local5);
digest.position = 0;
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private static function f(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private static function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private static function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private static function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function createBlocks(_arg1:ByteArray):Array{
var _local2:Array = new Array();
var _local3:int = (_arg1.length * 8);
var _local4 = 0xFF;
var _local5:int;
while (_local5 < _local3) {
_local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32)));
_local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3;
return (_local2);
}
}
}//package com.adobe.crypto
Section 188
//PNGEncoder (com.adobe.images.PNGEncoder)
package com.adobe.images {
import flash.geom.*;
import flash.display.*;
import flash.utils.*;
public class PNGEncoder {
private static var crcTable:Array;
private static var crcTableComputed:Boolean = false;
public static function encode(_arg1:BitmapData):ByteArray{
var _local6:uint;
var _local7:int;
var _local2:ByteArray = new ByteArray();
_local2.writeUnsignedInt(2303741511);
_local2.writeUnsignedInt(218765834);
var _local3:ByteArray = new ByteArray();
_local3.writeInt(_arg1.width);
_local3.writeInt(_arg1.height);
_local3.writeUnsignedInt(134610944);
_local3.writeByte(0);
writeChunk(_local2, 1229472850, _local3);
var _local4:ByteArray = new ByteArray();
var _local5:int;
while (_local5 < _arg1.height) {
_local4.writeByte(0);
if (!_arg1.transparent){
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | 0xFF)));
_local7++;
};
} else {
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel32(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | (_local6 >>> 24))));
_local7++;
};
};
_local5++;
};
_local4.compress();
writeChunk(_local2, 1229209940, _local4);
writeChunk(_local2, 1229278788, null);
return (_local2);
}
private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{
var _local8:uint;
var _local9:uint;
var _local10:uint;
if (!crcTableComputed){
crcTableComputed = true;
crcTable = [];
_local9 = 0;
while (_local9 < 0x0100) {
_local8 = _local9;
_local10 = 0;
while (_local10 < 8) {
if ((_local8 & 1)){
_local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1))));
} else {
_local8 = uint((_local8 >>> 1));
};
_local10++;
};
crcTable[_local9] = _local8;
_local9++;
};
};
var _local4:uint;
if (_arg3 != null){
_local4 = _arg3.length;
};
_arg1.writeUnsignedInt(_local4);
var _local5:uint = _arg1.position;
_arg1.writeUnsignedInt(_arg2);
if (_arg3 != null){
_arg1.writeBytes(_arg3);
};
var _local6:uint = _arg1.position;
_arg1.position = _local5;
_local8 = 4294967295;
var _local7:int;
while (_local7 < (_local6 - _local5)) {
_local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8))));
_local7++;
};
_local8 = uint((_local8 ^ uint(4294967295)));
_arg1.position = _local6;
_arg1.writeUnsignedInt(_local8);
}
}
}//package com.adobe.images
Section 189
//JSON (com.adobe.serialization.json.JSON)
package com.adobe.serialization.json {
public class JSON {
public static function encode(_arg1:Object):String{
var _local2:JSONEncoder = new JSONEncoder(_arg1);
return (_local2.getString());
}
public static function decode(_arg1:String){
var _local2:JSONDecoder = new JSONDecoder(_arg1);
return (_local2.getValue());
}
}
}//package com.adobe.serialization.json
Section 190
//JSONDecoder (com.adobe.serialization.json.JSONDecoder)
package com.adobe.serialization.json {
public class JSONDecoder {
private var value;
private var tokenizer:JSONTokenizer;
private var token:JSONToken;
public function JSONDecoder(_arg1:String){
this.tokenizer = new JSONTokenizer(_arg1);
this.nextToken();
this.value = this.parseValue();
}
public function getValue(){
return (this.value);
}
private function nextToken():JSONToken{
return ((this.token = this.tokenizer.getNextToken()));
}
private function parseArray():Array{
var _local1:Array = new Array();
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACKET){
return (_local1);
};
while (true) {
_local1.push(this.parseValue());
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACKET){
return (_local1);
};
if (this.token.type == JSONTokenType.COMMA){
this.nextToken();
} else {
this.tokenizer.parseError(("Expecting ] or , but found " + this.token.value));
};
};
return (null);
}
private function parseObject():Object{
var _local2:String;
var _local1:Object = new Object();
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACE){
return (_local1);
};
while (true) {
if (this.token.type == JSONTokenType.STRING){
_local2 = String(this.token.value);
this.nextToken();
if (this.token.type == JSONTokenType.COLON){
this.nextToken();
_local1[_local2] = this.parseValue();
this.nextToken();
if (this.token.type == JSONTokenType.RIGHT_BRACE){
return (_local1);
};
if (this.token.type == JSONTokenType.COMMA){
this.nextToken();
} else {
this.tokenizer.parseError(("Expecting } or , but found " + this.token.value));
};
} else {
this.tokenizer.parseError(("Expecting : but found " + this.token.value));
};
} else {
this.tokenizer.parseError(("Expecting string but found " + this.token.value));
};
};
return (null);
}
private function parseValue():Object{
if (this.token == null){
this.tokenizer.parseError("Unexpected end of input");
};
switch (this.token.type){
case JSONTokenType.LEFT_BRACE:
return (this.parseObject());
case JSONTokenType.LEFT_BRACKET:
return (this.parseArray());
case JSONTokenType.STRING:
case JSONTokenType.NUMBER:
case JSONTokenType.TRUE:
case JSONTokenType.FALSE:
case JSONTokenType.NULL:
return (this.token.value);
default:
this.tokenizer.parseError(("Unexpected " + this.token.value));
};
return (null);
}
}
}//package com.adobe.serialization.json
Section 191
//JSONEncoder (com.adobe.serialization.json.JSONEncoder)
package com.adobe.serialization.json {
import flash.utils.*;
public class JSONEncoder {
private var jsonString:String;
public function JSONEncoder(_arg1){
this.jsonString = this.convertToString(_arg1);
}
public function getString():String{
return (this.jsonString);
}
private function convertToString(_arg1):String{
if ((_arg1 is String)){
return (this.escapeString((_arg1 as String)));
};
if ((_arg1 is Number)){
return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null");
} else {
if ((_arg1 is Boolean)){
return ((_arg1) ? "true" : "false");
} else {
if ((_arg1 is Array)){
return (this.arrayToString((_arg1 as Array)));
};
if ((((_arg1 is Object)) && (!((_arg1 == null))))){
return (this.objectToString(_arg1));
};
};
};
return ("null");
}
private function escapeString(_arg1:String):String{
var _local3:String;
var _local6:String;
var _local7:String;
var _local2 = "";
var _local4:Number = _arg1.length;
var _local5:int;
while (_local5 < _local4) {
_local3 = _arg1.charAt(_local5);
switch (_local3){
case "\"":
_local2 = (_local2 + "\\\"");
break;
case "\\":
_local2 = (_local2 + "\\\\");
break;
case "\b":
_local2 = (_local2 + "\\b");
break;
case "\f":
_local2 = (_local2 + "\\f");
break;
case "\n":
_local2 = (_local2 + "\\n");
break;
case "\r":
_local2 = (_local2 + "\\r");
break;
case "\t":
_local2 = (_local2 + "\\t");
break;
default:
if (_local3 < " "){
_local6 = _local3.charCodeAt(0).toString(16);
_local7 = ((_local6.length == 2)) ? "00" : "000";
_local2 = (_local2 + (("\\u" + _local7) + _local6));
} else {
_local2 = (_local2 + _local3);
};
};
_local5++;
};
return ((("\"" + _local2) + "\""));
}
private function arrayToString(_arg1:Array):String{
var _local2 = "";
var _local3:int;
while (_local3 < _arg1.length) {
if (_local2.length > 0){
_local2 = (_local2 + ",");
};
_local2 = (_local2 + this.convertToString(_arg1[_local3]));
_local3++;
};
return ((("[" + _local2) + "]"));
}
private function objectToString(_arg1:Object):String{
var value:Object;
var key:String;
var v:XML;
var o = _arg1;
var s = "";
var classInfo:XML = describeType(o);
if (classInfo.@name.toString() == "Object"){
for (key in o) {
value = o[key];
if ((value is Function)){
} else {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((this.escapeString(key) + ":") + this.convertToString(value)));
};
};
} else {
for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((this.escapeString(v.@name.toString()) + ":") + this.convertToString(o[v.@name])));
};
};
return ((("{" + s) + "}"));
}
}
}//package com.adobe.serialization.json
Section 192
//JSONParseError (com.adobe.serialization.json.JSONParseError)
package com.adobe.serialization.json {
public class JSONParseError extends Error {
private var _location:int;
private var _text:String;
public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){
super(_arg1);
name = "JSONParseError";
this._location = _arg2;
this._text = _arg3;
}
public function get location():int{
return (this._location);
}
public function get text():String{
return (this._text);
}
}
}//package com.adobe.serialization.json
Section 193
//JSONToken (com.adobe.serialization.json.JSONToken)
package com.adobe.serialization.json {
public class JSONToken {
private var _type:int;
private var _value:Object;
public function JSONToken(_arg1:int=-1, _arg2:Object=null){
this._type = _arg1;
this._value = _arg2;
}
public function get type():int{
return (this._type);
}
public function set type(_arg1:int):void{
this._type = _arg1;
}
public function get value():Object{
return (this._value);
}
public function set value(_arg1:Object):void{
this._value = _arg1;
}
}
}//package com.adobe.serialization.json
Section 194
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer)
package com.adobe.serialization.json {
public class JSONTokenizer {
private var obj:Object;
private var jsonString:String;
private var loc:int;
private var ch:String;
public function JSONTokenizer(_arg1:String){
this.jsonString = _arg1;
this.loc = 0;
this.nextChar();
}
public function getNextToken():JSONToken{
var _local2:String;
var _local3:String;
var _local4:String;
var _local1:JSONToken = new JSONToken();
this.skipIgnored();
switch (this.ch){
case "{":
_local1.type = JSONTokenType.LEFT_BRACE;
_local1.value = "{";
this.nextChar();
break;
case "}":
_local1.type = JSONTokenType.RIGHT_BRACE;
_local1.value = "}";
this.nextChar();
break;
case "[":
_local1.type = JSONTokenType.LEFT_BRACKET;
_local1.value = "[";
this.nextChar();
break;
case "]":
_local1.type = JSONTokenType.RIGHT_BRACKET;
_local1.value = "]";
this.nextChar();
break;
case ",":
_local1.type = JSONTokenType.COMMA;
_local1.value = ",";
this.nextChar();
break;
case ":":
_local1.type = JSONTokenType.COLON;
_local1.value = ":";
this.nextChar();
break;
case "t":
_local2 = ((("t" + this.nextChar()) + this.nextChar()) + this.nextChar());
if (_local2 == "true"){
_local1.type = JSONTokenType.TRUE;
_local1.value = true;
this.nextChar();
} else {
this.parseError(("Expecting 'true' but found " + _local2));
};
break;
case "f":
_local3 = (((("f" + this.nextChar()) + this.nextChar()) + this.nextChar()) + this.nextChar());
if (_local3 == "false"){
_local1.type = JSONTokenType.FALSE;
_local1.value = false;
this.nextChar();
} else {
this.parseError(("Expecting 'false' but found " + _local3));
};
break;
case "n":
_local4 = ((("n" + this.nextChar()) + this.nextChar()) + this.nextChar());
if (_local4 == "null"){
_local1.type = JSONTokenType.NULL;
_local1.value = null;
this.nextChar();
} else {
this.parseError(("Expecting 'null' but found " + _local4));
};
break;
case "\"":
_local1 = this.readString();
break;
default:
if (((this.isDigit(this.ch)) || ((this.ch == "-")))){
_local1 = this.readNumber();
} else {
if (this.ch == ""){
return (null);
};
this.parseError((("Unexpected " + this.ch) + " encountered"));
};
};
return (_local1);
}
private function readString():JSONToken{
var _local3:String;
var _local4:int;
var _local1:JSONToken = new JSONToken();
_local1.type = JSONTokenType.STRING;
var _local2 = "";
this.nextChar();
while (((!((this.ch == "\""))) && (!((this.ch == ""))))) {
if (this.ch == "\\"){
this.nextChar();
switch (this.ch){
case "\"":
_local2 = (_local2 + "\"");
break;
case "/":
_local2 = (_local2 + "/");
break;
case "\\":
_local2 = (_local2 + "\\");
break;
case "b":
_local2 = (_local2 + "\b");
break;
case "f":
_local2 = (_local2 + "\f");
break;
case "n":
_local2 = (_local2 + "\n");
break;
case "r":
_local2 = (_local2 + "\r");
break;
case "t":
_local2 = (_local2 + "\t");
break;
case "u":
_local3 = "";
_local4 = 0;
while (_local4 < 4) {
if (!this.isHexDigit(this.nextChar())){
this.parseError((" Excepted a hex digit, but found: " + this.ch));
};
_local3 = (_local3 + this.ch);
_local4++;
};
_local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16)));
break;
default:
_local2 = (_local2 + ("\\" + this.ch));
};
} else {
_local2 = (_local2 + this.ch);
};
this.nextChar();
};
if (this.ch == ""){
this.parseError("Unterminated string literal");
};
this.nextChar();
_local1.value = _local2;
return (_local1);
}
private function readNumber():JSONToken{
var _local1:JSONToken = new JSONToken();
_local1.type = JSONTokenType.NUMBER;
var _local2 = "";
if (this.ch == "-"){
_local2 = (_local2 + "-");
this.nextChar();
};
if (!this.isDigit(this.ch)){
this.parseError("Expecting a digit");
};
if (this.ch == "0"){
_local2 = (_local2 + this.ch);
this.nextChar();
if (this.isDigit(this.ch)){
this.parseError("A digit cannot immediately follow 0");
};
} else {
while (this.isDigit(this.ch)) {
_local2 = (_local2 + this.ch);
this.nextChar();
};
};
if (this.ch == "."){
_local2 = (_local2 + ".");
this.nextChar();
if (!this.isDigit(this.ch)){
this.parseError("Expecting a digit");
};
while (this.isDigit(this.ch)) {
_local2 = (_local2 + this.ch);
this.nextChar();
};
};
if ((((this.ch == "e")) || ((this.ch == "E")))){
_local2 = (_local2 + "e");
this.nextChar();
if ((((this.ch == "+")) || ((this.ch == "-")))){
_local2 = (_local2 + this.ch);
this.nextChar();
};
if (!this.isDigit(this.ch)){
this.parseError("Scientific notation number needs exponent value");
};
while (this.isDigit(this.ch)) {
_local2 = (_local2 + this.ch);
this.nextChar();
};
};
var _local3:Number = Number(_local2);
if (((isFinite(_local3)) && (!(isNaN(_local3))))){
_local1.value = _local3;
return (_local1);
};
this.parseError((("Number " + _local3) + " is not valid!"));
return (null);
}
private function nextChar():String{
return ((this.ch = this.jsonString.charAt(this.loc++)));
}
private function skipIgnored():void{
var _local1:int;
do {
_local1 = this.loc;
this.skipWhite();
this.skipComments();
} while (_local1 != this.loc);
}
private function skipComments():void{
if (this.ch == "/"){
this.nextChar();
switch (this.ch){
case "/":
do {
this.nextChar();
} while (((!((this.ch == "\n"))) && (!((this.ch == "")))));
this.nextChar();
break;
case "*":
this.nextChar();
while (true) {
if (this.ch == "*"){
this.nextChar();
if (this.ch == "/"){
this.nextChar();
break;
};
} else {
this.nextChar();
};
if (this.ch == ""){
this.parseError("Multi-line comment not closed");
};
};
break;
default:
this.parseError((("Unexpected " + this.ch) + " encountered (expecting '/' or '*' )"));
};
};
}
private function skipWhite():void{
while (this.isWhiteSpace(this.ch)) {
this.nextChar();
};
}
private function isWhiteSpace(_arg1:String):Boolean{
return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r"))));
}
private function isDigit(_arg1:String):Boolean{
return ((((_arg1 >= "0")) && ((_arg1 <= "9"))));
}
private function isHexDigit(_arg1:String):Boolean{
var _local2:String = _arg1.toUpperCase();
return (((this.isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F"))))));
}
public function parseError(_arg1:String):void{
throw (new JSONParseError(_arg1, this.loc, this.jsonString));
}
}
}//package com.adobe.serialization.json
Section 195
//JSONTokenType (com.adobe.serialization.json.JSONTokenType)
package com.adobe.serialization.json {
public class JSONTokenType {
public static const UNKNOWN:int = -1;
public static const COMMA:int = 0;
public static const LEFT_BRACE:int = 1;
public static const RIGHT_BRACE:int = 2;
public static const LEFT_BRACKET:int = 3;
public static const RIGHT_BRACKET:int = 4;
public static const COLON:int = 6;
public static const TRUE:int = 7;
public static const FALSE:int = 8;
public static const NULL:int = 9;
public static const STRING:int = 10;
public static const NUMBER:int = 11;
}
}//package com.adobe.serialization.json
Section 196
//IntUtil (com.adobe.utils.IntUtil)
package com.adobe.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local4:int;
var _local5:int;
var _local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
}
}//package com.adobe.utils
Section 197
//APIConnector (com.newgrounds.components.APIConnector)
package com.newgrounds.components {
import flash.events.*;
import flash.display.*;
import com.newgrounds.*;
import flash.utils.*;
public class APIConnector extends MovieClip {
public var errorDialog:MovieClip;
public var background:MovieClip;
public var viewLatestButton:SimpleButton;
public var closeButton:SimpleButton;
public var viewAuthorizedButton:SimpleButton;
private var _initialized:Boolean;
private var _movieId:String;
private var _encryptionKey:String;
private var _movieVersion:String;
private var _showConnectingPopup:Boolean;// = true
private var _useErrorPopup:Boolean;// = true
private var _medalPopup:MedalPopup;
private var _popDelay:Timer;
public function APIConnector(){
this._popDelay = new Timer(3000, 1);
super();
addFrameScript(0, this.frame1, 6, this.frame7, 7, this.frame8);
if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){
return;
};
this.useErrorPopup = true;
this.useMedalPopup = true;
this._popDelay.addEventListener(TimerEvent.TIMER, this.errorTimerHandler);
addEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
if (stage){
addEventListener(Event.RENDER, this.renderHandler);
stage.invalidate();
} else {
this.clear();
};
}
public function get movieId():String{
return (this._movieId);
}
public function set movieId(_arg1:String):void{
this._movieId = _arg1;
}
public function get encryptionKey():String{
return (this._encryptionKey);
}
public function set encryptionKey(_arg1:String):void{
this._encryptionKey = _arg1;
}
public function get movieVersion():String{
return (this._movieVersion);
}
public function set movieVersion(_arg1:String):void{
this._movieVersion = _arg1;
}
public function get debugMode():Boolean{
return (API.debugMode);
}
public function set debugMode(_arg1:Boolean):void{
API.debugMode = true;
}
public function get useFakeSession():Boolean{
return (API.getFakeSession());
}
public function set useFakeSession(_arg1:Boolean):void{
API.setFakeSession(true);
}
public function get useMedalPopup():Boolean{
return (!((this._medalPopup == null)));
}
public function set useMedalPopup(_arg1:Boolean):void{
if (((_arg1) && (!(this._medalPopup)))){
this._medalPopup = new MedalPopup();
addChild(this._medalPopup);
} else {
if (((!(_arg1)) && (this._medalPopup))){
removeChild(this._medalPopup);
this._medalPopup = null;
};
};
}
public function get useErrorPopup():Boolean{
return (this._useErrorPopup);
}
public function set useErrorPopup(_arg1:Boolean):void{
this._useErrorPopup = _arg1;
API.addEventListener(APIEvent.API_CONNECTED, this.movieConnectedHandler);
if (this._useErrorPopup){
API.addEventListener(APIEvent.NEW_VERSION_AVAILABLE, this.newVersionAvailableHandler);
API.addEventListener(APIEvent.HOST_BLOCKED, this.hostBlockedHandler);
} else {
API.removeEventListener(APIEvent.NEW_VERSION_AVAILABLE, this.newVersionAvailableHandler);
API.removeEventListener(APIEvent.HOST_BLOCKED, this.hostBlockedHandler);
};
}
public function get showConnectingPopup():Boolean{
return (this._showConnectingPopup);
}
public function set showConnectingPopup(_arg1:Boolean):void{
this._showConnectingPopup = _arg1;
if (((!(_arg1)) && ((((currentLabel == "connecting")) || ((currentLabel == "connected")))))){
this.clear();
};
}
public function clear():void{
gotoAndStop("idle");
}
public function connect():void{
API.setVersion(this._movieVersion);
API.connect(root.loaderInfo, this._movieId, this._encryptionKey);
visible = true;
if (this.showConnectingPopup){
gotoAndStop("connecting");
};
}
private function renderHandler(_arg1:Event):void{
removeEventListener(Event.RENDER, this.renderHandler);
this.clear();
this.connect();
}
private function movieConnectedHandler(_arg1:APIEvent):void{
if (_arg1.success){
if (((((((API.isPublishedHost()) && (API.hostIsCompatible()))) && (!(API.hasUserSession())))) && (!(API.debugMode)))){
gotoAndStop("no_login");
this._popDelay.start();
visible = true;
} else {
if (this.showConnectingPopup){
gotoAndStop("connected");
};
};
} else {
gotoAndStop("no_connect");
this._popDelay.start();
visible = true;
};
}
private function newVersionAvailableHandler(_arg1:APIEvent):void{
gotoAndStop("new_version");
visible = true;
this.centerOnStage();
}
private function hostBlockedHandler(_arg1:APIEvent):void{
gotoAndStop("bad_host");
visible = true;
this.centerOnStage();
}
private function closeButtonClickHandler(_arg1:Event):void{
this.clear();
}
private function officialVersionClickHandler(_arg1:Event):void{
API.loadOfficialURL();
}
private function enterFrameHandler(_arg1:Event):void{
this.forceAlwaysOnTop();
}
private function initButtons():void{
if (this.viewLatestButton){
this.viewLatestButton.addEventListener(MouseEvent.CLICK, this.officialVersionClickHandler);
};
if (this.viewAuthorizedButton){
this.viewAuthorizedButton.addEventListener(MouseEvent.CLICK, this.officialVersionClickHandler);
};
if (this.closeButton){
this.closeButton.addEventListener(MouseEvent.CLICK, this.closeButtonClickHandler);
};
}
private function forceAlwaysOnTop():void{
var myIndex:uint;
var topIndex:uint;
if (((parent) && (visible))){
try {
myIndex = parent.getChildIndex(this);
topIndex = (parent.numChildren - 1);
if (myIndex != topIndex){
parent.setChildIndex(this, topIndex);
};
} catch(e:Error) {
};
};
}
private function centerOnStage():void{
if (stage){
x = (stage.stageWidth / 2);
y = (stage.stageHeight / 2);
};
}
private function errorTimerHandler(_arg1:TimerEvent):void{
if (this.errorDialog){
this.errorDialog.gotoAndPlay("closeme");
} else {
this.clear();
};
}
function frame1(){
stop();
}
function frame7(){
this.initButtons();
}
function frame8(){
this.initButtons();
}
}
}//package com.newgrounds.components
Section 198
//FlashAd (com.newgrounds.components.FlashAd)
package com.newgrounds.components {
import flash.events.*;
import flash.display.*;
import com.newgrounds.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class FlashAd extends Sprite {
public var background:MovieClip;
private var _showBackground:Boolean;
private var _adURLLoader:URLLoader;
private var _adRect:Sprite;
private var _mask:Shape;
private var _ad:Loader;
private static const DEBUG_AD_URL:String = "http://www.ngads.com/adtest.php";
private static const REMOVED_FROM_STAGE:String = "removedFromStage";
private static var _adResetTime:uint = 0;
private static var _adURL:URLRequest;
public function FlashAd(_arg1:Boolean=true){
if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){
return;
};
Security.allowDomain("server.cpmstar.com");
this._adRect = new Sprite();
this._adRect.graphics.beginFill(0);
this._adRect.graphics.moveTo(0, 0);
this._adRect.graphics.lineTo(300, 0);
this._adRect.graphics.lineTo(300, 250);
this._adRect.graphics.lineTo(0, 250);
this._adRect.graphics.lineTo(0, 0);
this._adRect.graphics.endFill();
this._mask = new Shape();
this._mask.graphics.beginFill(0);
this._mask.graphics.moveTo(0, 0);
this._mask.graphics.lineTo(300, 0);
this._mask.graphics.lineTo(300, 250);
this._mask.graphics.lineTo(0, 250);
this._mask.graphics.lineTo(0, 0);
this._mask.graphics.endFill();
addChild(this._adRect);
this._adRect.addChild(this._mask);
this._adRect.visible = false;
x = Math.round(x);
y = Math.round(y);
scaleX = 1;
scaleY = 1;
if (this.background){
if (this.background.ngLinkButton){
this.background.ngLinkButton.addEventListener(MouseEvent.CLICK, this.linkClickHandler);
};
if (this.background.loadingClip){
this.background.loadingClip.visible = false;
};
};
if (API.isFlashVersion(9, 0, 28)){
addEventListener(REMOVED_FROM_STAGE, this.onRemovedFromStage);
};
if (API.adsApproved){
this.loadAdFeed(API.adFeedURL);
} else {
API.addEventListener(APIEvent.ADS_APPROVED, this.onAdsApproved, false, 0, true);
};
this.showBackground = _arg1;
}
public function get showBackground():Boolean{
return (this._showBackground);
}
public function set showBackground(_arg1:Boolean):void{
this._showBackground = _arg1;
if (this.background){
this.background.visible = _arg1;
this._adRect.mask = (_arg1) ? this.background.adMask : null;
};
}
public function removeAd():void{
removeEventListener(REMOVED_FROM_STAGE, this.onRemovedFromStage);
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = false;
};
if (this._adURLLoader){
try {
this._adURLLoader.close();
} catch(e:Error) {
};
};
if (this._adRect){
this._adRect.visible = false;
};
if (this._ad){
trace("[NewgroundsAPI] :: Ad removed");
try {
this._ad.close();
} catch(e:Error) {
};
try {
Object(this._ad).unloadAndStop(true);
} catch(e:Error) {
_ad.unload();
};
if (this._ad.parent){
this._ad.parent.removeChild(this._ad);
};
};
this._ad = null;
}
private function onAdsApproved(_arg1:APIEvent):void{
API.removeEventListener(APIEvent.ADS_APPROVED, this.onAdsApproved, false);
if (_arg1.success){
this.loadAdFeed(API.adFeedURL);
} else {
trace("[NewgroundsAPI] :: No ad feed URL supplied to Newgrounds API ad!");
};
}
private function loadAdFeed(_arg1:String):void{
var adFeedURL = _arg1;
this._adURLLoader = new URLLoader();
this._adURLLoader.addEventListener(Event.COMPLETE, this.onAdFeedLoaded);
this._adURLLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onAdError);
this._adURLLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onAdError);
if (!adFeedURL){
trace("[Newgrounds API] :: Invalid feed URL!");
return;
};
if (this.hasAdElapsed){
if (adFeedURL.indexOf("?") > -1){
_adURL = new URLRequest(((adFeedURL + "&random=") + Math.random()));
} else {
_adURL = new URLRequest(((adFeedURL + "?random=") + Math.random()));
};
};
try {
this._adURLLoader.load(_adURL);
} catch(e:Error) {
onAdError(null);
};
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = true;
};
}
private function loadAd(_arg1:String):void{
var url = _arg1;
if (this._ad){
this.removeAd();
};
this._ad = new Loader();
this._ad.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onAdLoaded);
this._ad.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onAdError);
try {
Object(this._ad.contentLoaderInfo).uncaughtErrorEvents.addEventListener("uncaughtError", function (_arg1:Event):void{
});
} catch(error:Error) {
};
this._ad.load(new URLRequest(url), new LoaderContext(false, new ApplicationDomain(null)));
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = true;
};
}
private function onAdFeedLoaded(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
if (((_local2.data) && (!((_local2.data == ""))))){
this.loadAd((_local2.data as String));
} else {
dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad")));
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = false;
};
};
}
private function onAdFeedError(_arg1:Event):void{
trace("[NewgroundsAPI] :: Unable to load ad feed!");
if (((this.background) && (this.background.loadingClip))){
this.background.loadingClip.visible = false;
};
}
private function onAdError(_arg1:Event):void{
dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad")));
this.removeAd();
}
private function onAdLoaded(_arg1:Event):void{
this._adRect.addChild(this._ad);
this._ad.mask = this._mask;
this._adRect.visible = true;
if (this.background){
if (this._showBackground){
this._adRect.mask = this.background.adMask;
};
if (this.background.loadingClip){
this.background.loadingClip.visible = false;
};
};
trace("[NewgroundsAPI] :: Ad loaded!");
dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, true));
}
private function onRemovedFromStage(_arg1:Event):void{
this.removeAd();
}
private function get hasAdElapsed():Boolean{
if (getTimer() >= _adResetTime){
_adResetTime = (getTimer() + ((1000 * 60) * 5));
return (true);
};
return (false);
}
private function linkClickHandler(_arg1:MouseEvent):void{
API.loadNewgrounds();
}
}
}//package com.newgrounds.components
Section 199
//MedalPopup (com.newgrounds.components.MedalPopup)
package com.newgrounds.components {
import flash.events.*;
import flash.display.*;
import com.newgrounds.*;
import flash.utils.*;
import flash.text.*;
public class MedalPopup extends MovieClip {
public var medalNameText:TextField;
public var medalValueText:TextField;
public var medalContainer:Sprite;
private var _initialized:Boolean;
private var _medal:Medal;
private var _medalIcon:Bitmap;
private var _medalQueue:Array;
private var _popDelay:Timer;
public function MedalPopup(){
this._medalQueue = [];
this._popDelay = new Timer(3000, 1);
super();
addFrameScript(0, this.frame1, 9, this.frame10, 18, this.frame19);
if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){
return;
};
visible = false;
addEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
stop();
API.addEventListener(APIEvent.MEDAL_UNLOCKED, this.onMedalUnlocked, false, 0, true);
this._popDelay.addEventListener(TimerEvent.TIMER, this.timerHandler);
}
public function get popupTime():Number{
return ((this._popDelay.delay / 1000));
}
public function set popupTime(_arg1:Number):void{
if (isNaN(_arg1)){
_arg1 = 3;
};
this._popDelay.delay = (_arg1 * 1000);
}
private function enterFrameHandler(_arg1:Event):void{
var myIndex:uint;
var topIndex:uint;
var event = _arg1;
if (((this._medalQueue.length) && (!(visible)))){
this._medal = this._medalQueue.pop();
this._popDelay.start();
gotoAndPlay("medal_show");
visible = true;
};
if (((visible) && (parent))){
try {
myIndex = parent.getChildIndex(this);
topIndex = (parent.numChildren - 1);
if (myIndex != topIndex){
parent.setChildIndex(this, topIndex);
};
} catch(error:Error) {
};
};
}
private function onMedalUnlocked(_arg1:APIEvent):void{
if (((((_arg1.success) && (_arg1.data))) && ((_arg1.data.medal is Medal)))){
this._medalQueue.push(Medal(_arg1.data.medal));
};
}
private function showMedalInfo():void{
if (!this._medal){
return;
};
if (this.medalContainer){
this._medalIcon = this._medal.createIconBitmap();
this.medalContainer.addChild(this._medalIcon);
};
if (this.medalNameText){
this.medalNameText.text = this._medal.name;
};
if (this.medalValueText){
this.medalValueText.text = (this._medal.value.toString() + "pts");
};
this._popDelay.start();
stop();
}
private function timerHandler(_arg1:TimerEvent):void{
if (((this._medalIcon) && (this._medalIcon.parent))){
this._medalIcon.parent.removeChild(this._medalIcon);
this._medalIcon = null;
};
gotoAndPlay("medal_hide");
this._popDelay.stop();
}
function frame1(){
stop();
}
function frame10(){
this.showMedalInfo();
stop();
}
function frame19(){
stop();
visible = false;
}
}
}//package com.newgrounds.components
Section 200
//API (com.newgrounds.API)
package com.newgrounds {
import flash.events.*;
import flash.display.*;
import com.newgrounds.components.*;
import flash.utils.*;
import com.adobe.serialization.json.*;
import flash.net.*;
import com.adobe.images.*;
import com.adobe.crypto.*;
import flash.system.*;
public class API {
public static const VERSION:String = "2.4.18";
private static const GATEWAY_URL:String = "http://www.ngads.com/gateway_v2.php";
private static const AD_TERMS_URL:String = "http://www.newgrounds.com/wiki/flashads/terms/";
private static const COMMANDS_WIKI_URL:String = "http://www.newgrounds.com/wiki/flashapi/commands/";
private static var do_echo:Boolean = false;
private static var _debug:Boolean = true;
private static var _connected:Boolean = false;
private static var _isMetadataLoaded:Boolean = false;
private static var _preloadComplete:Boolean = false;
private static var _adsApproved:Boolean = false;
private static var _saveGroupId:uint;
private static var _saveFileId:uint;
private static var _trackerId:uint;
private static var _movieId:String;
private static var _encryptionKey:String;
private static var _url:String;
private static var _host:String;
private static var connected:Boolean;
private static var version:String;
private static var ad_url:String;
private static var _fakeSession:Boolean = false;
private static var publisher_id:uint;
private static var session_id:String;
private static var user_email:String;
private static var user_name:String;
private static var user_id:uint;
private static var userpage_format:String;
private static var _medals:Array;
private static var timeoutTimer:Timer = new Timer(8000, 1);
private static var _userpageFormat:String;
private static var _scoreboards:Array = new Array();
private static var _bridge:Bridge;
private static var save_file:SaveFile;
private static var _imageFilePath:String;
private static var _saveFilePath:String;
private static var _saveGroups:Array = [];
private static var root:DisplayObject;
private static var _eventDispatcher:EventDispatcher = new EventDispatcher();
private static var score_page_counts:Object = new Object();
private static var compression_radix:String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
private static var compressor:BaseN = new BaseN(compression_radix);
public static var errors:Dictionary = APIError.init_codes();
private static var sharedObjects:Dictionary = new Dictionary();
private static var _preloadAssets:Array = [];
public static var periods:Object = getPeriodAliases();
private static var period_aliases:Object = {t:{name:"Today", alias:"TODAY"}, p:{name:"Yesterday", alias:"YESTERDAY"}, w:{name:"This Week", alias:"THIS_WEEK"}, m:{name:"This Month", alias:"THIS_MONTH"}, y:{name:"This Year", alias:"THIS_YEAR"}, a:{name:"All-Time", alias:"ALL_TIME"}};
private static var secureCommand:String;
public static function get adFeedURL():String{
return (ad_url);
}
public static function get preloadComplete():Boolean{
return (_preloadComplete);
}
private static function assertConnected():Boolean{
if (!_connected){
return (false);
};
return (true);
}
public static function setVersion(_arg1:String):void{
if (((_arg1) && (!((_arg1 == ""))))){
version = _arg1;
};
}
public static function setUserEmail(_arg1:String):void{
user_email = _arg1;
}
public static function setFakeSession(_arg1:Boolean):void{
_fakeSession = _arg1;
}
public static function getFakeSession():Boolean{
return (_fakeSession);
}
public static function get debugMode():Boolean{
return (_debug);
}
public static function set debugMode(_arg1:Boolean):void{
_debug = _arg1;
}
public static function getTrackerID():uint{
return (_trackerId);
}
public static function getUserID():uint{
return (user_id);
}
public static function getUserName():String{
return (user_name);
}
public static function isConnected():Boolean{
return (_connected);
}
public static function getID():uint{
return (_trackerId);
}
public static function getOfficialURL():String{
var _local1:String = ((((((GATEWAY_URL + "?tracker_id=") + _movieId) + "&command_id=") + getCommandID("loadOfficalVersion")) + "&seed=") + Math.random());
if (debugMode){
_local1 = (_local1 + "&debug=1");
};
return (_local1);
}
public static function get adsApproved():Boolean{
return (_adsApproved);
}
public static function hasUserSession():Boolean{
return (((((!((session_id == null))) && (!((session_id == ""))))) && (!((publisher_id == 0)))));
}
public static function isNewgrounds():Boolean{
return ((((publisher_id == 1)) || (((_host) && ((_host.toLowerCase().indexOf("ungrounded.net") > -1))))));
}
public static function hostIsCompatible():Boolean{
return (!((publisher_id == 0)));
}
public static function hasUserEmail():Boolean{
return (((!((user_email == null))) && (!((user_email == "")))));
}
public static function connectionTimeOut(_arg1:Event=null):void{
dispatchEvent(new APIEvent(APIEvent.API_CONNECTED, false, new APIError("CONNECTION_FAILED", "Connection to NewgroundsAPI gateway timed out.")));
}
public static function connect(_arg1:LoaderInfo, _arg2:String, _arg3:String=null):void{
var loaderInfo = _arg1;
var m_id = _arg2;
var encrypt_key = _arg3;
if (!loaderInfo){
fatalError("Null loaderInfo paremeter passed in to connectMovie!", "");
return;
};
try {
if (loaderInfo.loader){
loaderInfo = loaderInfo.loader.loaderInfo;
};
} catch(error:Error) {
};
_url = loaderInfo.url;
_host = _url;
if ((((_host.indexOf("http://") > -1)) || ((_host.indexOf("https://") > -1)))){
_host = _host.split("/")[2].toLowerCase();
} else {
_host = "localhost";
};
var flashVars:Object = loaderInfo.parameters;
if (isPublishedHost()){
debugMode = false;
};
if (((!(debugMode)) && (flashVars))){
if (flashVars.NewgroundsAPI_UserName){
user_name = flashVars.NewgroundsAPI_UserName;
};
if (flashVars.NewgroundsAPI_UserID){
user_id = flashVars.NewgroundsAPI_UserID;
};
if (flashVars.NewgroundsAPI_PublisherID){
publisher_id = flashVars.NewgroundsAPI_PublisherID;
} else {
publisher_id = 0;
};
if (flashVars.NewgroundsAPI_UserpageFormat){
_userpageFormat = flashVars.NewgroundsAPI_UserpageFormat;
};
if (flashVars.NewgroundsAPI_SessionID){
session_id = flashVars.NewgroundsAPI_SessionID;
};
if (flashVars.NewgroundsAPI_SaveGroupID){
_saveGroupId = flashVars.NewgroundsAPI_SaveGroupID;
};
if (flashVars.NewgroundsAPI_SaveFileID){
_saveFileId = flashVars.NewgroundsAPI_SaveFileID;
};
if (flashVars.NewgroundsAPI_SandboxID){
_bridge = new Bridge(flashVars.NewgroundsAPI_SandboxID);
};
} else {
publisher_id = 1;
if (_fakeSession){
session_id = "D3bu64p1U53R";
user_id = 10;
user_name = "API-Debugger";
};
};
if (connected){
fatalError("NewgroundsAPI.connect() - connection already in progress", "connect");
return;
};
timeoutTimer.start();
if (!m_id){
fatalError("NewgroundsAPI.connectMovie() - missing required movieId parameter", "connectMovie");
};
_movieId = String(m_id);
_trackerId = uint(_movieId.substring(0, _movieId.indexOf(":")));
_encryptionKey = encrypt_key;
connected = true;
sendCommand("connectMovie", {host:getHost(), movie_version:version});
}
private static function getHost():String{
return (_host);
}
public static function isPublishedHost():Boolean{
return (((!((getHost() == "localhost"))) && ((getHost().indexOf("file://") == -1))));
}
public static function loadUserPage(_arg1:uint=0, _arg2:String=null):Boolean{
var _local3:String;
if ((((_arg1 == 0)) && ((_arg2 == null)))){
if (hasUserSession()){
_arg1 = user_id;
_arg2 = user_name;
} else {
return (false);
};
};
if (publisher_id == 1){
_local3 = (("http://" + _arg2.toLowerCase()) + ".newgrounds.com");
navigateToURL(new URLRequest(_local3), "_blank");
return (true);
};
if (userpage_format){
_local3 = userpage_format;
_local3 = _local3.split(":user_id:").join(_arg1.toString());
_local3 = _local3.split(":user_name:").join(escape(_arg2));
navigateToURL(new URLRequest(_local3), "_blank");
return (true);
};
return (false);
}
public static function loadNewgrounds():void{
sendCommand("loadNewgrounds", {host:getHost()}, true);
}
public static function loadOfficialURL():void{
navigateToURL(new URLRequest(getOfficialURL()));
}
public static function loadMySite():void{
sendCommand("loadMySite", {host:getHost()}, true);
}
public static function loadCustomLink(_arg1:String):void{
sendCommand("loadCustomLink", {host:getHost(), link:_arg1}, true);
}
public static function logCustomEvent(_arg1:String):void{
sendCommand("logCustomEvent", {host:getHost(), event:_arg1});
}
public static function getScoreBoard(_arg1:String):ScoreBoard{
var _local2:ScoreBoard;
for each (_local2 in _scoreboards) {
if (_local2.name == _arg1){
return (_local2);
};
};
return (null);
}
public static function getScoreBoardById(_arg1:uint):ScoreBoard{
var _local2:ScoreBoard;
for each (_local2 in _scoreboards) {
if (_local2.id == _arg1){
return (_local2);
};
};
return (null);
}
public static function postScore(_arg1:String, _arg2:uint, _arg3:String=""):void{
if (((!(_arg1)) || ((_arg1 == "")))){
sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)"));
return;
};
if (_arg3 == null){
_arg3 = "";
};
sendSecureCommand("postScore", {user_name:user_name, board:_arg1, value:_arg2, publisher_id:publisher_id, tag:_arg3});
}
public static function loadScores(_arg1:String, _arg2:String=null, _arg3:String=null):void{
var _local4 = "loadScores";
var _local5:ScoreBoard = getScoreBoard(_arg1);
if (((!(_local5)) || (!(_local5.id)))){
sendError({command_id:getCommandID(_local4)}, new APIError("MISSING_PARAM", "missing required ScoreBoard instance"));
return;
};
var _local6:Object = {};
_local6.publisher_id = publisher_id;
if (_arg2){
_local6.period = _arg2;
} else {
_local6.period = _local5.period;
};
_local6.board = _local5.id;
_local6.num_results = _local5.num_results;
_local6.page = _local5.page;
if (((!(_arg3)) || ((_arg3 == "")))){
_local6.tag = _local5.tag;
} else {
_local6.tag = _arg3;
};
sendCommand(_local4, _local6);
}
public static function loadScoresInRange(_arg1:String, _arg2:String="All-Time", _arg3:uint=1, _arg4:uint=10):void{
if (((!(_arg1)) || ((_arg1 == "")))){
sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)"));
return;
};
var _local5:ScoreBoard = getScoreBoard(_arg1);
if (_local5){
_local5.loadScoresInRange(_arg2, _arg3, _arg4);
} else {
sendWarning((("loadScoresInRange: Scoreboard " + _arg1) + " could not be found."));
};
}
private static function populateMedals(_arg1:Array):void{
var _local2:uint;
var _local3:Object;
if (_medals === null){
_medals = new Array();
_local2 = 0;
while (_local2 < _arg1.length) {
_local3 = _arg1[_local2];
_medals.push(Medal.createFromObject(_local3));
_local2++;
};
};
sendMessage("Medals loaded!");
}
private static function populateSaveGroups(_arg1:Array):void{
var _local3:SaveGroup;
_saveGroups = [];
var _local2:uint;
while (_local2 < _arg1.length) {
_local3 = SaveGroup.createFromObject(_arg1[_local2]);
_saveGroups.push(_local3);
_local2++;
};
}
private static function populateScoreBoards(_arg1:Array):void{
_scoreboards = [];
var _local2:uint;
while (_local2 < _arg1.length) {
_scoreboards.push(new ScoreBoard(_arg1[_local2].id, _arg1[_local2].name, ""));
_local2++;
};
}
public static function getMedals():Array{
return (_medals);
}
public static function getMedalById(_arg1:uint):Medal{
var _local2:Medal;
for each (_local2 in _medals) {
if (_local2.id == _arg1){
return (_local2);
};
};
return (null);
}
public static function getMedal(_arg1:String):Medal{
var _local2:Medal;
for each (_local2 in _medals) {
if (_local2.name == _arg1){
return (_local2);
};
};
return (null);
}
public static function unlockMedal(_arg1:String):void{
var _local3:Object;
var _local4:Object;
if (((!(_arg1)) || ((_arg1 == "")))){
sendError({command_id:getCommandID("unlockMedal")}, new APIError("MISSING_PARAM", "missing required medal name"));
return;
};
var _local2:Medal = getMedal(_arg1);
if (!_local2){
sendMessage(("No medal with name: " + _arg1));
return;
};
if (((hasUserSession()) || (debugMode))){
sendMessage((("Attempting to unlock '" + _local2.name) + "'"));
if (_local2.unlocked){
sendWarning((("Medal '" + _local2.name) + "' is already unlocked!"));
return;
};
_local3 = new Object();
_local3.medal_id = _local2.id;
sendSecureCommand("unlockMedal", _local3);
} else {
sendMessage(("Locally unlocking " + _local2.name));
if (_local2.unlocked){
sendWarning((("Medal '" + _local2.name) + "' is already unlocked!"));
return;
};
_local2.unlocked = true;
_local4 = loadLocal("medals_unlocked");
if (!_local4){
_local4 = new Object();
};
_local4[_local2.id.toString()] = true;
saveLocal("medals_unlocked", _local4);
callListener(APIEvent.UNLOCK_MEDAL, true, {medal:_local2});
};
}
public static function loadMedals():void{
if (_medals){
dispatchEvent(new APIEvent(APIEvent.MEDALS_LOADED, true, {medals:getMedals()}));
return;
};
var _local1:Object = new Object();
if (hasUserSession()){
_local1.publisher_id = publisher_id;
_local1.user_id = user_id;
};
sendCommand("getMedals", _local1);
}
public static function saveLocal(_arg1:String, _arg2:Object, _arg3:uint=0):void{
var sharedObj:SharedObject;
var save_id = _arg1;
var save_data = _arg2;
var size_allocation = _arg3;
try {
if (!sharedObjects[save_id]){
sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id));
};
sharedObj = sharedObjects[save_id];
sharedObj.data[save_id] = encodeData(save_data);
sharedObj.flush();
} catch(e:Error) {
sendWarning(("saveLocal ERROR: " + e));
};
}
public static function loadLocal(_arg1:String):Object{
var sharedObj:SharedObject;
var save_id = _arg1;
try {
if (!sharedObjects[save_id]){
sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id));
};
sharedObj = sharedObjects[save_id];
if (((((sharedObj) && (sharedObj.data))) && (sharedObj.data[save_id]))){
return (decodeData(sharedObj.data[save_id]));
} else {
return (null);
};
} catch(e:Error) {
sendWarning(("loadLocal ERROR: " + e));
};
return (null);
}
public static function encodeData(_arg1:Object):String{
return (compressHex(RC4.encrypt(JSON.encode(_arg1), _encryptionKey)));
}
public static function decodeData(_arg1:String){
return (JSON.decode(RC4.decrypt(uncompressHex(_arg1), _encryptionKey)));
}
private static function compressHex(_arg1:String):String{
var _local2:uint = (_arg1.length % 6);
var _local3 = "";
var _local4:uint;
while (_local4 < _arg1.length) {
_local3 = (_local3 + compressor.encode(uint(("0x" + _arg1.substr(_local4, 6))), 4));
_local4 = (_local4 + 6);
};
return ((_local2.toString() + _local3));
}
private static function uncompressHex(_arg1:String):String{
var _local4:uint;
var _local6:String;
var _local7:uint;
var _local8:String;
var _local2:uint = uint(_arg1.charAt(0));
var _local3 = "";
var _local5:uint = 1;
while (_local5 < _arg1.length) {
_local6 = _arg1.substr(_local5, 4);
_local7 = uint(compressor.decode(_local6));
_local8 = _local7.toString(16);
if ((_local5 + 4) < _arg1.length){
_local4 = 6;
} else {
_local4 = _local2;
};
while (_local8.length < _local4) {
_local8 = ("0" + _local8);
};
_local3 = (_local3 + _local8);
_local5 = (_local5 + 4);
};
return (_local3);
}
public static function getSaveGroupById(_arg1:uint):SaveGroup{
if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){
sendWarning("No save groups found");
return (null);
};
var _local2:uint;
while (_local2 < _saveGroups.length) {
if (_saveGroups[_local2].id == _arg1){
return (_saveGroups[_local2]);
};
_local2++;
};
return (null);
}
public static function getSaveGroup(_arg1:String):SaveGroup{
if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){
sendWarning("No save groups found");
return (null);
};
var _local2:uint;
while (_local2 < _saveGroups.length) {
if (_saveGroups[_local2].name == _arg1){
return (_saveGroups[_local2]);
};
_local2++;
};
return (null);
}
public static function getCurrentSaveFile(){
return (save_file);
}
public static function setCurrentSaveFile(_arg1:SaveFile){
save_file = _arg1;
}
public static function newSaveQuery(_arg1:String):SaveGroupQuery{
var _local2:SaveGroup = getSaveGroup(_arg1);
if (_local2){
return (_local2.newQuery());
};
return (null);
}
public static function executeSaveQuery(_arg1:SaveGroupQuery):void{
sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.groupId, query:JSON.encode(_arg1.toObject())}, false, null, _arg1);
}
public static function lookupSaveFiles(_arg1:SaveGroup):void{
var _local2:SaveGroupQuery = _arg1.getQuery(false);
sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.id, query:_local2.toObject()}, false, null, _local2);
}
public static function checkFilePrivledges(_arg1:SaveFile):void{
sendCommand("checkFilePrivs", {group:_arg1.groupId, filename:_arg1.name, user_id:(user_id) ? user_id : 0, publisher_id:publisher_id});
}
public static function newSaveFile(_arg1:String):SaveFile{
var _local2:SaveGroup = getSaveGroup(_arg1);
if (_local2){
return (new SaveFile(_local2));
};
sendError({command_id:"newSaveFile"}, new APIError("INVALID_SAVE_GROUP", (("'" + _local2) + "' is not a valid save group.")));
return (null);
}
public static function saveFile(_arg1:SaveFile, _arg2:Boolean=false, _arg3:Boolean=false):void{
var _local4:Object = _arg1.toObject();
_local4.user_name = user_name;
if (_arg1.id){
_local4.save_id = _arg1.id;
};
_local4.overwrite = (_arg2) ? 1 : 0;
if (_arg3){
_local4.draft = 1;
};
var _local5:ByteArray = new ByteArray();
if ((_arg1.contents is ByteArray)){
_local5.writeByte(0);
_local5.writeBytes(_arg1.contents);
} else {
_local5.writeByte(1);
_local5.writeObject(_arg1.contents);
};
_local5.compress();
var _local6:Object = new Object();
_local6.file = _local5;
if (_arg1.thumbnail){
_local6.thumbnail = PNGEncoder.encode(_arg1.thumbnail);
};
save_file = _arg1;
sendSecureCommand("saveFile", _local4, null, _local6, _arg1);
}
public static function rateSaveFile(_arg1:SaveFile, _arg2:SaveRating, _arg3:Number):void{
sendSecureCommand("rateSaveFile", {group:_arg1.groupId, save_id:_arg1.id, rating_id:_arg2.id, vote:_arg3, user_id:user_id}, null, null, _arg1);
}
public static function loadSaveFile(_arg1:Number, _arg2:Boolean=true){
var _local3:Object = {publisher_id:publisher_id, save_id:_arg1, get_contents:_arg2};
save_file = null;
sendCommand("loadSaveFile", _local3);
}
public static function loadFilesByDate(_arg1:String, _arg2:Boolean=true, _arg3:String=null, _arg4=null):void{
var _local7:*;
var _local5:SaveGroup = getSaveGroup(_arg1);
if (!_local5){
_local7 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByDate"}, _local7);
return;
};
var _local6:SaveGroupQuery = _local5.newQuery();
if (_arg3){
_local6.addKeyCondition(_arg3, "=", _arg4);
};
_local6.sortOn(SaveGroupQuery.CREATED_ON, _arg2);
_local6.execute();
}
public static function loadFilesByViews(_arg1:String, _arg2:Boolean=true, _arg3:String=null, _arg4=null):void{
var _local7:*;
var _local5:SaveGroup = getSaveGroup(_arg1);
if (!_local5){
_local7 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByViews"}, _local7);
return;
};
var _local6:SaveGroupQuery = _local5.newQuery();
if (_arg3){
_local6.addKeyCondition(_arg3, "=", _arg4);
};
_local6.sortOn(SaveGroupQuery.TOTAL_VIEWS, _arg2);
_local6.execute();
}
public static function loadFilesByRating(_arg1:String, _arg2:String, _arg3:Boolean=true, _arg4:String=null, _arg5=null):void{
var _local8:*;
var _local6:SaveGroup = getSaveGroup(_arg1);
if (!_local6){
_local8 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name.");
sendError({command_id:"loadFilesByDate"}, _local8);
return;
};
var _local7:SaveGroupQuery = _local6.newQuery();
if (_arg4){
_local7.addKeyCondition(_arg4, "=", _arg5);
};
_local7.sortOnRating(_arg2, _arg3);
_local7.execute();
}
public static function onRemoteAuthentication(_arg1:String){
var _local2:Object = JSON.decode(RC4.decrypt(_arg1, _encryptionKey));
user_id = _local2.NewgroundsAPI_UserID;
user_name = _local2.NewgroundsAPI_UserName;
session_id = _local2.NewgroundsAPI_SessionID;
publisher_id = _local2.NewgroundsAPI_PublisherID;
}
private static function doEvent(_arg1:Object):void{
var _local2:String;
var _local3:Object;
var _local4:String;
var _local5:Boolean;
var _local6:ScoreBoard;
var _local7:Array;
var _local8:*;
var _local9:String;
var _local10:Medal;
var _local11:SaveGroup;
var _local12:Object;
var _local13:Object;
var _local14:Object;
var _local15:SaveFile;
var _local16:uint;
var _local17:Object;
var _local18:uint;
var _local19:APIError;
var _local20:Object;
switch (getCommandName(_arg1.command_id)){
case "connectMovie":
timeoutTimer.stop();
if (_arg1.success){
sendMessage("You have successfully connected to the Newgrounds API Gateway");
sendMessage((("Movie identified as \"" + _arg1.movie_name) + "\""));
callListener(APIEvent.API_CONNECTED, _arg1.success, {title:_arg1.movie_name});
} else {
callListener(APIEvent.API_CONNECTED, _arg1.success, {});
return;
};
_local5 = false;
if (_arg1.ad_status === -1){
_local2 = "This movie was not approved to run Flash Ads.";
sendWarning(_local2);
sendWarning((("visit " + AD_TERMS_URL) + " to view our approval guidelines"));
if (!_arg1.ad_url){
callListener(APIEvent.ADS_APPROVED, false, new APIError("FLASH_ADS_NOT_APPROVED", _local2));
} else {
_local5 = true;
};
} else {
if (_arg1.ad_status === 0){
_local2 = "Flash Ads are currently awaiting approval.";
sendNotice(_local2);
if (!_arg1.ad_url){
callListener(APIEvent.ADS_APPROVED, false, new APIError("FLASH_ADS_NOT_APPROVED", _local2));
} else {
_local5 = true;
};
};
};
if (_arg1.ad_url){
ad_url = unescape(_arg1.ad_url);
if (!_local5){
sendMessage("This movie has been approved to run Flash Ads!");
};
_adsApproved = true;
callListener(APIEvent.ADS_APPROVED, true);
};
if (_arg1.deny_host){
_local2 = (getHost() + " does not have permission to run this movie!");
sendWarning(_local2);
sendWarning(("\tUpdate your API configuration to unblock " + getHost()));
callListener(APIEvent.HOST_BLOCKED, true, {real_url:unescape(_arg1.movie_url), url:getOfficialURL()});
};
if (_arg1.movie_version){
sendWarning("According to your API Configuration, this version is out of date.");
if (version){
sendWarning(("\tThe this movie is version " + version));
};
sendWarning(("\tThe most current version is " + _arg1.movie_version));
callListener(APIEvent.NEW_VERSION_AVAILABLE, true, {version:_arg1.movie_version, real_url:unescape(_arg1.movie_url), url:getOfficialURL()});
};
if (_arg1.request_portal_url){
sendCommand("setPortalID", {portal_url:_url});
};
sendCommand("preloadSettings", {publisher_id:publisher_id, user_id:user_id});
break;
case "preloadSettings":
if (_arg1.medals){
populateMedals(_arg1.medals);
if (((!(hasUserSession())) && (!(debugMode)))){
echo("Checking for SharedObject Medals...");
_local8 = loadLocal("medals_unlocked");
if (_local8){
for (_local9 in _local8) {
if (_local8[_local9]){
_local10 = getMedalById(uint(_local9));
echo(("Now unlocking " + _local10.name));
_local10.unlocked = true;
};
};
};
};
};
if (_arg1.save_groups){
populateSaveGroups(_arg1.save_groups);
};
if (_arg1.save_file_path){
_saveFilePath = (_arg1.save_file_path + "/");
};
if (_arg1.image_file_path){
_imageFilePath = (_arg1.image_file_path + "/");
};
if (_arg1.score_boards){
populateScoreBoards(_arg1.score_boards);
};
sendMessage("Metadata loaded!");
callListener(APIEvent.METADATA_LOADED, _arg1.success);
if (((_saveFileId) && (_saveGroupId))){
_local11 = getSaveGroupById(_saveGroupId);
if (_local11){
callListener(APIEvent.FILE_REQUESTED, true, {save_id:_saveFileId, group:_local11});
};
};
_preloadComplete = true;
break;
case "logCustomEvent":
if (_arg1.success){
sendMessage((("Event '" + _arg1.event) + "' was logged."));
};
callListener(APIEvent.EVENT_LOGGED, _arg1.success, {event:_arg1.event});
break;
case "postScore":
if (_arg1.success){
_local4 = "User";
if (user_email){
_local4 = user_email;
} else {
if (user_name){
_local4 = user_name;
};
};
_local6 = getScoreBoardById(_arg1.board);
if (_local6){
sendMessage((((((_local4 + " posted ") + _arg1.value) + " to '") + _local6.name) + "'"));
};
if (_arg1.best_scores){
_local12 = {today:_arg1.best_scores.D, yesterday:_arg1.best_scores.P, week:_arg1.best_scores.W, year:_arg1.best_scores.Y, all_time:_arg1.best_scores.A};
} else {
_local12 = {};
};
if (_arg1.best_ranks){
_local13 = {today:_arg1.best_ranks.D, yesterday:_arg1.best_ranks.P, week:_arg1.best_ranks.W, year:_arg1.best_ranks.Y, all_time:_arg1.best_ranks.A};
} else {
_local13 = {};
};
if (_arg1.num_scores){
_local14 = {today:_arg1.num_scores.D, yesterday:_arg1.num_scores.P, week:_arg1.num_scores.W, year:_arg1.num_scores.Y, all_time:_arg1.num_scores.A};
} else {
_local14 = {};
};
_local3 = {score:_arg1.score, value:_arg1.value, username:_local4, best_scores:_local12, best_ranks:_local13, num_scores:_local14};
};
callListener(APIEvent.SCORE_POSTED, _arg1.success, _local3);
break;
case "loadScores":
_local3 = new Object();
_local6 = getScoreBoardById(_arg1.board);
if (_local6){
_local6.setScores(_arg1.scores, _arg1.period, _arg1.page, _arg1.num_results, _arg1.num_scores);
};
callListener(APIEvent.SCORES_LOADED, _arg1.success, {board:_local6});
break;
case "unlockMedal":
if (_medals){
_local10 = getMedal(_arg1.medal_name);
if (_local10.unlocked){
return;
};
_local10.unlocked = true;
callListener(APIEvent.MEDAL_UNLOCKED, _arg1.success, {medal_id:_local10.id, medal:_local10});
};
break;
case "getMedals":
if (_arg1.success){
populateMedals(_arg1.medals);
};
callListener(APIEvent.MEDALS_LOADED, _arg1.success, _local3);
break;
case "loadSaveFile":
if (_arg1.success){
_local11 = getSaveGroupById(_arg1.group_id);
_local15 = new SaveFile(_local11);
_local15.id = _arg1.file.save_id;
_local15.name = _arg1.file.filename;
_local15.fileUrl = (_saveFilePath + _arg1.file.file);
_local15.thumbnailUrl = (_imageFilePath + _arg1.file.thumb);
_local15.authorName = _arg1.file.user_name;
_local15.authorId = _arg1.file.user_id;
_local15.setStatus(_arg1.file.status);
_local15.description = _arg1.file.description;
_local15.setFileSize(_arg1.file.file_size);
if (((_arg1.file.keys) && (_arg1.file.keys.length))){
_local16 = 0;
while (_local16 < _arg1.file.keys.length) {
_local15.setKey(_arg1.file.keys[_local16].id, _arg1.file.keys[_local16].value);
_local16++;
};
};
if (((_arg1.file.ratings) && (_arg1.file.ratings.length))){
_local16 = 0;
while (_local16 < _arg1.file.ratings.length) {
_local15.setRating(_arg1.file.ratings[_local16].id, _arg1.file.ratings[_local16].votes, _arg1.file.ratings[_local16].score);
_local16++;
};
};
if (_arg1.get_contents){
_local15.loadContents();
};
};
save_file = _local15;
callListener(APIEvent.FILE_INITIALIZED, _arg1.success, {save_id:_local15.id, file:_local15});
break;
case "lookupSaveFiles":
_local7 = [];
if (((_arg1.success) && (_arg1.files))){
_local16 = 0;
while (_local16 < _arg1.files.length) {
_local17 = _arg1.files[_local16];
_local15 = new SaveFile(getSaveGroupById(_arg1.group_id));
_local15.name = _local17.filename;
_local15.id = _local17.save_id;
_local15.description = _local17.description;
_local15.thumbnailUrl = (_imageFilePath + _local17.thumb);
_local15.fileUrl = (_saveFilePath + _local17.file);
_local15.authorName = _local17.user_name;
_local15.authorId = _local17.user_id;
_local15.setStatus(_local17.status);
_local15.setFileSize(_local17.file_size);
if (((_local17.keys) && (_local17.keys.length))){
_local18 = 0;
while (_local18 < _local17.keys.length) {
_local15.setKey(_local17.keys[_local18].id, _local17.keys[_local18].value);
_local18++;
};
};
if (((_local17.ratings) && (_local17.ratings.length))){
_local18 = 0;
while (_local18 < _local17.ratings.length) {
_local15.setRating(_local17.ratings[_local18].id, _local17.ratings[_local18].votes, _local17.ratings[_local18].score);
_local18++;
};
};
_local7.push(_local15);
_local16++;
};
};
_arg1.owner.setResults(_local7);
_arg1.owner.dispatchEvent(new APIEvent(APIEvent.QUERY_COMPLETE, _arg1.success, {query:_arg1.owner}));
callListener(APIEvent.QUERY_COMPLETE, _arg1.success, {query:_arg1.owner});
break;
case "rateSaveFile":
_local15 = _arg1.owner;
_arg1.success = ((_arg1.success) && (!(_arg1.already_voted)));
if (_arg1.success){
_local15.setRating(_arg1.rating_id, _arg1.votes, _arg1.score);
};
_arg1.file = _local15;
if (_arg1.already_voted){
_local19 = new APIError("PERMISSION_DENIED", "You have already voted on this item today");
_local15.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, {error:_local19, file:_local15, save_id:_local15.id}));
callListener(APIEvent.VOTE_COMPLETE, _arg1.success, _arg1);
} else {
_local20 = _local15.getRating(_arg1.rating_id);
_local15.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, {rating:_local20, file:_local15, save_id:_local15.id}));
API.callListener(APIEvent.VOTE_COMPLETE, _arg1.success, {rating:_local20, file:_local15, save_id:_local15.id});
};
break;
case "saveFile":
_local3 = {};
if (_arg1.success){
_local3 = {save_id:_arg1.save_id, filename:_arg1.filename, file_url:_arg1.file_url, thumbnail:_arg1.thumbnail, icon:_arg1.icon};
SaveFile(_arg1.owner).fileSaved(_local3);
};
_arg1.owner.dispatchEvent(new APIEvent(APIEvent.FILE_SAVED, _arg1.success, {save_id:save_file.id, file:save_file}));
callListener(APIEvent.FILE_SAVED, _arg1.success, {save_id:save_file.id, file:save_file});
save_file = null;
break;
case "checkFilePrivs":
_local3 = {filename:_arg1.filename, folder:_arg1.folder, can_read:_arg1.can_read, can_write:_arg1.can_write};
callListener(APIEvent.FILE_PRIVS_LOADED, _arg1.success, _local3);
break;
};
}
public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:uint=0, _arg5:Boolean=false):void{
_eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public static function hasEventListener(_arg1:String):Boolean{
return (_eventDispatcher.hasEventListener(_arg1));
}
public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
_eventDispatcher.removeEventListener(_arg1, _arg2, _arg3);
}
private static function dispatchEvent(_arg1:Event):void{
_eventDispatcher.dispatchEvent(_arg1);
echo(("Fired Event: " + _arg1.type));
}
static function callListener(_arg1:String, _arg2:Boolean=true, _arg3=undefined):void{
dispatchEvent(new APIEvent(_arg1, _arg2, _arg3));
if (_bridge){
_bridge.sendEvent(_arg1, {success:_arg2, data:_arg3});
};
}
private static function getCommandName(_arg1:String):String{
return (_arg1);
}
private static function getCommandID(_arg1:String):String{
return (_arg1);
}
private static function getPeriodAliases():Object{
var _local2:String;
var _local1:Object = new Object();
for (_local2 in period_aliases) {
_local1[period_aliases[_local2].alias] = _local2;
};
return (_local1);
}
public static function getPeriodName(_arg1:String):String{
var _local2:String;
for (_local2 in period_aliases) {
if (_local2 == _arg1){
return (period_aliases[_local2].name);
};
};
return (null);
}
public static function getPeriodAlias(_arg1:String):String{
var _local2:String;
for (_local2 in period_aliases) {
if (_local2 == _arg1){
return (period_aliases[_local2].alias);
};
};
return (null);
}
private static function sendError(_arg1:Object, _arg2:APIError):void{
var _local3:String = ((((("[NewgroundsAPI ERROR] :: " + getCommandName(_arg1.command_id)) + "() - ") + _arg2.name) + ":\n\t\t\t\t") + _arg2.message);
trace(_local3);
if (_bridge){
_bridge.sendEvent("trace", {data:_local3});
};
}
private static function sendWarning(_arg1:String, _arg2:String=null):void{
if (_arg2){
_arg1 = (_arg1 + ((("\n[NewgroundsAPI WARNING] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
trace(_arg1);
if (_bridge){
_bridge.sendEvent("trace", {data:_arg1});
};
}
private static function sendNotice(_arg1:String, _arg2:String=null):void{
var _local3:String;
if (_arg2){
_arg1 = (_arg1 + ((("\n[NewgroundsAPI NOTICE] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
trace(_arg1);
if (_bridge){
_bridge.sendEvent("trace", {data:_arg1});
};
}
private static function fatalError(_arg1:String, _arg2:String):void{
if (_arg2){
_arg1 = (_arg1 + ((("\n\tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
trace(("***ERROR*** class=API\n\n" + _arg1));
}
public static function openLoginPage(){
if (hasUserSession()){
return;
};
}
public static function sendSecureCommand(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null, _arg5=null):void{
if (((((!(debugMode)) && (!(hasUserSession())))) && (!(hasUserEmail())))){
sendError({command_id:getCommandID(_arg1)}, new APIError("IDENTIFICATION_REQUIRED", (("You must be logged in or provide an e-mail address ( using NewgroundsAPI.setUserEmail(\"name@domain.com\"); ) to use " + _arg1) + "().")));
return;
};
if (!_arg1){
fatalError("Missing command", "sendSecureCommand");
};
if (!_arg2){
fatalError("Missing secure_params", "sendSecureCommand");
};
if (!_arg3){
_arg3 = new Object();
};
var _local6 = "";
var _local7:uint;
while (_local7 < 16) {
_local6 = (_local6 + compression_radix.charAt(Math.floor((Math.random() * compression_radix.length))));
_local7++;
};
if (((debugMode) && (!(session_id)))){
_arg2.session_id = "";
} else {
_arg2.session_id = session_id;
};
_arg2.as_version = 3;
_arg2.user_email = user_email;
_arg2.publisher_id = publisher_id;
_arg2.seed = _local6;
_arg2.command_id = getCommandID(_arg1);
var _local8:String = MD5.hash(_local6);
var _local9:String = RC4.encrypt(JSON.encode(_arg2), _encryptionKey);
var _local10:String = (_local8 + _local9);
_arg3.secure = compressHex(_local10);
secureCommand = _arg1;
sendCommand("securePacket", _arg3, false, _arg4, _arg5);
}
public static function stopPendingCommands():void{
SmartURLLoader.closeAll();
}
private static function onCommandComplete(_arg1:Event):void{
var response:Object;
var error:APIError;
var e = _arg1;
var loader:SmartURLLoader = SmartURLLoader(e.target);
echo((("INPUT: \n" + loader.response) + "\n"));
var i:uint;
while (i < _preloadAssets.length) {
if (_preloadAssets[i] == loader){
_preloadAssets.splice(i, 1);
break;
};
i = (i + 1);
};
try {
response = JSON.decode(loader.response);
} catch(error:Error) {
};
if (!response){
response = {command_id:loader._command, success:false};
};
response.owner = loader.owner;
if (((!(response)) || (!(response.success)))){
if (response.command_id == "connectMovie"){
connected = false;
};
error = new APIError(response.error_code, response.error_msg);
sendError(response, error);
if (response.command_id){
doEvent(response);
};
} else {
doEvent(response);
};
}
private static function onCommandError(_arg1:Event):void{
var _local2:Object = {success:false};
var _local3:SmartURLLoader = SmartURLLoader(_arg1.target);
_local2.owner = _local3.owner;
var _local4:uint;
while (_local4 < _preloadAssets.length) {
if (_preloadAssets[_local4] == _local3){
_preloadAssets.splice(_local4, 1);
break;
};
_local4++;
};
if (_local3._command){
_local2.command_id = _local3._command;
if (_local2.command_id == "connectMovie"){
connected = false;
};
doEvent(_local2);
};
}
private static function sendCommand(_arg1:String, _arg2:Object, _arg3:Boolean=false, _arg4:Object=null, _arg5=null):void{
var _local7:String;
var _local8:String;
var _local9:String;
if (((!(connected)) && (!((_arg1 == "connectMovie"))))){
_local7 = (("NewgroundsAPI." + _arg1) + "() - NewgroundsAPI.connectMovie() must be called before this command can be called\n");
fatalError(_local7, "connectMovie");
};
var _local6:SmartURLLoader = new SmartURLLoader();
_local6.addVariable("command_id", getCommandID(_arg1));
_local6.addVariable("tracker_id", _movieId);
if (debugMode){
_local6.addVariable("debug", 1);
};
if (_arg2){
for (_local8 in _arg2) {
_local6.addVariable(_local8, _arg2[_local8]);
};
};
if (_arg4){
for (_local9 in _arg4) {
_local6.addFile(_local9, _arg4[_local9], _local9);
};
};
if (_arg3){
_local6.method = URLRequestMethod.GET;
} else {
_local6.method = URLRequestMethod.POST;
};
_local6.preventCache = true;
if (_arg3){
_local6.openBrowser = true;
_local6.method = URLRequestMethod.GET;
} else {
_local6.addEventListener(Event.COMPLETE, onCommandComplete);
_local6.addEventListener(IOErrorEvent.IO_ERROR, onCommandError);
_local6.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onCommandError);
_local6.method = URLRequestMethod.POST;
};
if (_arg2.secure){
_local6._command = secureCommand;
} else {
_local6._command = getCommandID(_arg1);
};
_local6.owner = _arg5;
_local6.load(GATEWAY_URL);
}
public static function isFlashVersion(_arg1:uint, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0):Boolean{
var _local6:Array = Capabilities.version.split(" ")[1].split(",");
var _local7:Array = arguments;
var _local8:uint;
while (_local8 < _local7.length) {
_local6[_local8] = uint(_local6[_local8]);
_local8++;
};
_local8 = 0;
while (_local8 < _local7.length) {
if (_local6[_local8] > _local7[_local8]){
return (true);
};
if (_local6[_local8] < _local7[_local8]){
return (false);
};
_local8++;
};
return (true);
}
public static function createAd():FlashAd{
sendMessage("You may see a security sandbox violation. This is normal!");
return (new FlashAd());
}
public static function sendMessage(_arg1:String, _arg2:Boolean=false):void{
var _local3:String = ("[NewgroundsAPI] :: " + _arg1);
trace(_local3);
if (_bridge){
_bridge.sendEvent("trace", {data:_local3});
};
}
private static function echo(_arg1:String):void{
if (do_echo){
trace(_arg1);
};
}
}
}//package com.newgrounds
Section 201
//APIError (com.newgrounds.APIError)
package com.newgrounds {
import flash.utils.*;
public class APIError {
public var code:Number;// = 0
public var message:String;
public var name:String;
public var alias:String;
public static const aliases:Array = new Array("UNKNOWN_ERROR", "INVALID_API_ID", "MISSING_PARAM", "INVALID_STAT_ID", "INVALID_COMMAND_ID", "FLASH_ADS_NOT_APPROVED", "PERMISSION_DENIED", "IDENTIFICATION_REQUIRED", "INVALID_EMAIL_ADDRESS", "BANNED_USER", "SESSION_EXPIRED", "INVALID_SCORE", "INVALID_MEDAL", "INVALID_FOLDER", "FILE_NOT_FOUND", "SITE_ID_REQUIRED", "UPLOAD_IN_PROGRESS", "USER_CANCELLED", "CONFIRM_REQUEST", "CONNECTION_FAILED");
private static const always_caps:Array = new Array("API", "URL", "ID");
public static const error_codes:Object = init_codes();
public static const error_names:Object = init_names();
public function APIError(_arg1, _arg2:String){
if ((_arg1 is String)){
_arg1 = error_codes[_arg1];
} else {
if (!(_arg1 is uint)){
_arg1 = 0;
};
};
this.code = _arg1;
this.message = _arg2;
this.name = error_names[_arg1];
this.alias = aliases[_arg1];
}
public function isError():Boolean{
return (true);
}
public static function init_codes():Dictionary{
var _local1:Dictionary = new Dictionary();
var _local2:uint;
while (_local2 < aliases.length) {
_local1[aliases[_local2]] = _local2;
_local2++;
};
return (_local1);
}
private static function init_names():Array{
var _local3:Array;
var _local4:uint;
var _local5:String;
var _local1:Array = new Array();
var _local2:uint;
while (_local2 < aliases.length) {
_local3 = aliases[_local2].toLowerCase().split("_");
_local4 = 0;
while (_local4 < _local3.length) {
_local3[_local4] = (_local3[_local4].substr(0, 1).toUpperCase() + _local3[_local4].substr(1, _local3[_local4].length));
for each (_local5 in always_caps) {
if (_local3[_local4].toUpperCase() == _local5){
_local3[_local4] = _local3[_local4].toUpperCase();
};
};
_local4++;
};
_local1[_local2] = _local3.join(" ");
_local2++;
};
return (_local1);
}
}
}//package com.newgrounds
Section 202
//APIEvent (com.newgrounds.APIEvent)
package com.newgrounds {
import flash.events.*;
public class APIEvent extends Event {
private var _data;
private var _success:Boolean;
private var _target;
private var _error:APIError;
public static const API_CONNECTED:String = "movieConnected";
public static const ADS_APPROVED:String = "adsApproved";
public static const AD_ATTACHED:String = "adAttached";
public static const HOST_BLOCKED:String = "hostBlocked";
public static const NEW_VERSION_AVAILABLE:String = "newVersionAvailable";
public static const EVENT_LOGGED:String = "eventLogged";
public static const SCORE_POSTED:String = "scorePosted";
public static const SCORES_LOADED:String = "scoresLoaded";
public static const UNLOCK_MEDAL:String = "unlockMedal";
public static const MEDAL_UNLOCKED:String = "medalUnlocked";
public static const MEDALS_LOADED:String = "medalsLoaded";
public static const METADATA_LOADED:String = "metadataLoaded";
public static const FILE_PRIVS_LOADED:String = "filePrivsLoaded";
public static const FILE_SAVED:String = "fileSaved";
public static const FILE_LOADED:String = "fileLoaded";
public static const FILE_INITIALIZED:String = "fileInitialized";
public static const FILE_REQUESTED:String = "fileRequested";
public static const QUERY_COMPLETE:String = "queryComplete";
public static const VOTE_COMPLETE:String = "voteComplete";
public function APIEvent(_arg1:String, _arg2:Boolean=true, _arg3=undefined){
super(_arg1);
this._data = _arg3;
this._success = _arg2;
}
public function get success():Boolean{
return (this._success);
}
public function get data(){
return (this._data);
}
}
}//package com.newgrounds
Section 203
//BaseN (com.newgrounds.BaseN)
package com.newgrounds {
import flash.utils.*;
public class BaseN {
private var _hashIndex:String;
private var _hashVal:Dictionary;
private var _base:Number;
public function BaseN(_arg1:String=null){
if (_arg1){
this._hashIndex = _arg1;
} else {
this._hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/";
};
this._base = this._hashIndex.length;
this._hashVal = new Dictionary();
var _local2:uint;
while (_local2 < this._base) {
this._hashVal[this._hashIndex.charAt(_local2)] = _local2;
_local2++;
};
}
public function encode(_arg1:Number, _arg2:uint=1):String{
var _local3:String = _arg1.toString();
var _local4 = "";
if (_local3.charAt(0) == "-"){
_local4 = "-";
_local3 = _local3.substring(1);
};
var _local5:Array = _local3.split(".", 2);
_local4 = (_local4 + this.baseNEncoder(_local5[0], _arg2));
if (_local5.length > 1){
_local4 = (_local4 + ("." + this.baseNEncoder(_local5[1])));
};
return (_local4);
}
public function decode(_arg1:String):Number{
var _local2 = "";
if (_arg1.charAt(0) == "-"){
_local2 = "-";
_arg1 = _arg1.substring(1);
};
var _local3:Array = _arg1.split(".", 2);
_local2 = (_local2 + this.baseNDecoder(_local3[0]));
if (_local3.length > 1){
_local2 = (_local2 + ".");
_local2 = (_local2 + this.baseNDecoder(_local3[1]));
};
return (Number(_local2));
}
private function baseNEncoder(_arg1:uint, _arg2:uint=1):String{
var _local3 = "";
var _local4:uint = _arg1;
while (_local4 != 0) {
_local3 = (this._hashIndex.charAt((_local4 % this._base)) + _local3);
_local4 = (_local4 / this._base);
};
if (_arg2){
while (_local3.length < _arg2) {
_local3 = (this._hashIndex.charAt(0) + _local3);
};
};
return (_local3);
}
private function baseNDecoder(_arg1:String):uint{
var _local2:uint;
var _local3:uint;
while (_local3 < _arg1.length) {
_local2 = (_local2 * this._base);
_local2 = (_local2 + this._hashVal[_arg1.charAt(_local3)]);
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 204
//Bridge (com.newgrounds.Bridge)
package com.newgrounds {
import flash.events.*;
import flash.net.*;
public class Bridge {
private var _inConnection:LocalConnection;
private var _outConnection:LocalConnection;
private var _widgetId:String;
public function Bridge(_arg1:String){
this._widgetId = _arg1;
this._inConnection = new LocalConnection();
this._outConnection = new LocalConnection();
this._inConnection.client = this;
this._inConnection.connect(("rec_" + this._widgetId));
this._outConnection.addEventListener(StatusEvent.STATUS, this.onStatus);
}
public function sendCommand(_arg1:String, _arg2:Object):void{
if (this._outConnection){
this._outConnection.send(this._widgetId, "sendCommand", _arg1, this.scrubParameters(_arg2));
};
}
public function sendEvent(_arg1:String, _arg2:Object):void{
if (this._outConnection){
this._outConnection.send(this._widgetId, "sendEvent", _arg1, this.scrubParameters(_arg2));
};
}
public function receiveEvent(_arg1:String, _arg2:Object):void{
API.callListener(_arg1, _arg2.success, _arg2.data);
}
public function scrubParameters(_arg1:Object):Object{
var _local3:String;
var _local2:Object = new Object();
for (_local3 in _arg1) {
if ((((((((((_arg1[_local3] is String)) || ((_arg1[_local3] is Number)))) || ((_arg1[_local3] is uint)))) || ((_arg1[_local3] is int)))) || ((_arg1[_local3] is Boolean)))){
_local2[_local3] = _arg1[_local3];
};
};
return (_local2);
}
private function onStatus(_arg1:Event):void{
}
}
}//package com.newgrounds
Section 205
//Medal (com.newgrounds.Medal)
package com.newgrounds {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class Medal {
private var _id:uint;
private var _name:String;
private var _value:uint;
private var _difficultyId:uint;
private var _unlocked:Boolean;// = false
private var _iconUrl:URLRequest;
private var _iconLoader:Loader;
private var _icon:BitmapData;
private static const DEFAULT_ICON:BitmapData = new BitmapData(50, 50, false, 0);
private static const DIFFICULT_NAMES:Array = [null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal"];
public function Medal(_arg1:uint, _arg2:String, _arg3:uint, _arg4:uint, _arg5:Boolean, _arg6:String){
var id = _arg1;
var name = _arg2;
var value = _arg3;
var difficulty = _arg4;
var unlocked = _arg5;
var iconUrl = _arg6;
this._icon = DEFAULT_ICON;
super();
this._id = id;
this._name = name;
this._value = value;
this._difficultyId = difficulty;
this._unlocked = unlocked;
if (iconUrl){
this._iconUrl = new URLRequest(iconUrl);
this._iconLoader = new Loader();
this._iconLoader.contentLoaderInfo.addEventListener(Event.INIT, this.onIconLoaderInit);
this._iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onIconLoaderError);
this._iconLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onIconLoaderError);
this._iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onIconLoaderComplete);
try {
this._iconLoader.load(this._iconUrl, new LoaderContext(true));
} catch(e:Error) {
onIconLoaderError(null);
};
};
}
public function get difficulty():String{
return (DIFFICULT_NAMES[this._difficultyId]);
}
public function get difficultyId():uint{
return (this._difficultyId);
}
public function get icon():BitmapData{
return (this._icon);
}
public function get id():uint{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get unlocked():Boolean{
return (this._unlocked);
}
public function isUnlocked():Boolean{
return (this._unlocked);
}
public function set unlocked(_arg1:Boolean):void{
this._unlocked = _arg1;
}
public function get value():uint{
return (this._value);
}
public function get bytesLoaded():uint{
return ((this._iconLoader) ? this._iconLoader.contentLoaderInfo.bytesLoaded : 0);
}
public function get bytesTotal():uint{
return ((this._iconLoader) ? this._iconLoader.contentLoaderInfo.bytesTotal : 0);
}
public function getID():uint{
return (this._id);
}
public function getName():String{
return (this._name);
}
public function getValue():uint{
return (this._value);
}
public function getDifficulty():String{
return (DIFFICULT_NAMES[this._difficultyId]);
}
private function onIconLoaderInit(_arg1:Event):void{
}
private function onIconLoaderError(_arg1:IOErrorEvent):void{
trace((((("[NewgroundsAPI WARNING] :: Failed to load medal icon for " + this.name) + " (") + this._iconUrl.url.split("/").pop()) + ")"));
this._iconLoader.unload();
this._iconLoader = null;
}
private function onIconLoaderComplete(_arg1:Event):void{
var _local2:Bitmap = (this._iconLoader.content as Bitmap);
this._icon = _local2.bitmapData;
this._iconLoader.unload();
this._iconLoader = null;
}
public function unlock():void{
if (!this._unlocked){
API.unlockMedal(this._name);
};
}
public function createIconBitmap():Bitmap{
return (new Bitmap(this.icon));
}
public function toString():String{
return (this._name);
}
public static function createFromObject(_arg1:Object):Medal{
return (new Medal(_arg1.medal_id, _arg1.medal_name, _arg1.medal_value, _arg1.medal_difficulty, _arg1.medal_unlocked, _arg1.medal_icon));
}
}
}//package com.newgrounds
Section 206
//RC4 (com.newgrounds.RC4)
package com.newgrounds {
public class RC4 {
private static var sbox:Array = new Array(0xFF);
private static var mykey:Array = new Array(0xFF);
public static function encrypt(_arg1:String, _arg2:String):String{
var _local3:Array = strToChars(_arg1);
var _local4:Array = strToChars(_arg2);
var _local5:Array = calculate(_local3, _local4);
return (charsToHex(_local5));
}
public static function encryptbin(_arg1:String, _arg2:String):Array{
var _local3:Array = strToChars(_arg1);
var _local4:Array = strToChars(_arg2);
var _local5:Array = calculate(_local3, _local4);
return (_local5);
}
public static function decrypt(_arg1:String, _arg2:String):String{
var _local3:Array = hexToChars(_arg1);
var _local4:Array = strToChars(_arg2);
var _local5:Array = calculate(_local3, _local4);
return (charsToStr(_local5));
}
private static function initialize(_arg1:Array):void{
var _local3:uint;
var _local2:uint;
var _local4:uint = _arg1.length;
var _local5:uint;
while (_local5 <= 0xFF) {
mykey[_local5] = _arg1[(_local5 % _local4)];
sbox[_local5] = _local5;
_local5++;
};
_local5 = 0;
while (_local5 <= 0xFF) {
_local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100);
_local3 = sbox[_local5];
sbox[_local5] = sbox[_local2];
sbox[_local2] = _local3;
_local5++;
};
}
private static function calculate(_arg1:Array, _arg2:Array):Array{
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local10:uint;
initialize(_arg2);
var _local3:uint;
var _local4:uint;
var _local5:Array = new Array();
var _local9:uint;
while (_local9 < _arg1.length) {
_local3 = ((_local3 + 1) % 0x0100);
_local4 = ((_local4 + sbox[_local3]) % 0x0100);
_local7 = sbox[_local3];
sbox[_local3] = sbox[_local4];
sbox[_local4] = _local7;
_local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100);
_local6 = sbox[_local10];
_local8 = (_arg1[_local9] ^ _local6);
_local5.push(_local8);
_local9++;
};
return (_local5);
}
private static function charsToHex(_arg1:Array):String{
var _local2:String = new String("");
var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
var _local4:uint;
while (_local4 < _arg1.length) {
_local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)]));
_local4++;
};
return (_local2);
}
private static function hexToChars(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:uint = ((_arg1.substr(0, 2))=="0x") ? 2 : 0;
while (_local3 < _arg1.length) {
_local2.push(parseInt(_arg1.substr(_local3, 2), 16));
_local3 = (_local3 + 2);
};
return (_local2);
}
private static function charsToStr(_arg1:Array):String{
var _local2:String = new String("");
var _local3:uint;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(_arg1[_local3]));
_local3++;
};
return (_local2);
}
private static function strToChars(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:uint;
while (_local3 < _arg1.length) {
_local2.push(_arg1.charCodeAt(_local3));
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 207
//SaveFile (com.newgrounds.SaveFile)
package com.newgrounds {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
public class SaveFile extends EventDispatcher {
private var _filename:String;
private var _id:uint;
private var _description:String;
private var _contents;
private var _loader:SmartURLLoader;
private var _group:SaveGroup;
private var _keys:Dictionary;
private var _ratings:Dictionary;
private var _fileUrl:String;
private var _thumbnail:BitmapData;
private var _thumbnailUrl:String;
private var _authorId:uint;
private var _authorName:String;
private var _contentSize:uint;
private var _locked:Boolean;
private var _status:uint;
private var duplicate_id:uint;
private var _draft:Boolean;
public static const STATUS_PRIVATE = 1;
public static const STATUS_SHARED = 2;
public static const STATUS_UNAPPROVED = 3;
public static const STATUS_APPROVED = 4;
public function SaveFile(_arg1:SaveGroup){
this._keys = new Dictionary();
this._ratings = new Dictionary();
this._group = _arg1;
this._description = "";
}
public function get name():String{
return (this._filename);
}
public function set name(_arg1:String):void{
this._filename = _arg1;
}
public function get id():uint{
return (this._id);
}
public function set id(_arg1:uint):void{
this._id = _arg1;
}
public function get description():String{
return (this._description);
}
public function set description(_arg1:String):void{
this._description = _arg1;
}
public function get contents(){
return (this._contents);
}
public function set contents(_arg1):void{
this._contents = _arg1;
this._contentSize = 0;
}
public function get thumbnailUrl():String{
return (this._thumbnailUrl);
}
public function set thumbnailUrl(_arg1:String):void{
this._thumbnailUrl = _arg1;
}
public function get fileUrl():String{
return (this._fileUrl);
}
public function set fileUrl(_arg1:String):void{
this._fileUrl = _arg1;
}
public function get thumbnail():BitmapData{
return (this._thumbnail);
}
public function set thumbnail(_arg1:BitmapData):void{
if (this._thumbnail){
this._thumbnail.dispose();
};
this._thumbnail = _arg1.clone();
}
public function loadThumbnail():Loader{
var _local1:Loader = new Loader();
if (this._thumbnailUrl){
_local1.load(new URLRequest(this._thumbnailUrl));
};
return (_local1);
}
public function get bytesLoaded():uint{
return ((this._loader) ? this._loader.bytesLoaded : this._contentSize);
}
public function get bytesTotal():uint{
return (this._contentSize);
}
public function get status():uint{
return (this._status);
}
function setStatus(_arg1:uint):void{
this._status = _arg1;
}
public function get groupId():uint{
return (this._group.id);
}
public function get groupName():String{
return (this._group.name);
}
public function get groupType():uint{
return (this._group.type);
}
public function get authorName():String{
return (this._authorName);
}
public function set authorName(_arg1:String):void{
this._authorName = _arg1;
}
public function get authorId():uint{
return (this._authorId);
}
public function set authorId(_arg1:uint):void{
this._authorId = _arg1;
}
public function get draft():Boolean{
return (this._draft);
}
public function set draft(_arg1:Boolean):void{
this._draft = _arg1;
}
public function get locked():Boolean{
return (this._locked);
}
public function get shared():Boolean{
return ((this._status == STATUS_SHARED));
}
public function get isPrivate():Boolean{
return ((this._status == STATUS_PRIVATE));
}
public function get isPublic():Boolean{
if (this.isPrivate){
return (false);
};
if (((this._group.isType("SYSTEM")) || (this._group.isType("PRIVATE")))){
return (false);
};
if (this._group.isType("PUBLIC")){
return (true);
};
if (this.approved){
return (true);
};
return (false);
}
public function get approved():Boolean{
return ((this._status > STATUS_UNAPPROVED));
}
public function get keys():Dictionary{
return (this._keys);
}
public function get ratings():Dictionary{
return (this._ratings);
}
function setPermissions(_arg1:uint, _arg2:Boolean){
_arg2 = this._locked;
this._status = _arg1;
}
function setFileSize(_arg1:uint):void{
this._contentSize = _arg1;
}
public function isLocked():Boolean{
return (this._locked);
}
public function getDescription():String{
return (this._description);
}
public function getShared():Boolean{
return (this._draft);
}
public function getDuplicateID():uint{
return (this.duplicate_id);
}
public function getKeys():Dictionary{
return (this._keys);
}
public function getRatings():Dictionary{
return (this._ratings);
}
public function setKey(_arg1, _arg2):void{
var _local3:SaveKey;
if ((_arg1 is String)){
_local3 = this._group.getKeyName(_arg1);
} else {
_local3 = this._group.getKeyID(_arg1);
};
if (_local3){
switch (_local3.type){
case SaveKey.TYPE_BOOLEAN:
this._keys[_local3] = {id:_local3.id, value:Boolean(int(_arg2))};
break;
case SaveKey.TYPE_FLOAT:
this._keys[_local3] = {id:_local3.id, value:Number(_arg2)};
break;
case SaveKey.TYPE_INTEGER:
this._keys[_local3] = {id:_local3.id, value:int(_arg2)};
break;
case SaveKey.TYPE_STRING:
default:
this._keys[_local3] = {id:_local3.id, value:_arg2.toString()};
break;
};
};
}
public function getKey(_arg1){
var _local2:SaveKey;
if ((_arg1 is String)){
_local2 = this._group.getKeyName(_arg1);
} else {
_local2 = this._group.getKeyID(_arg1);
};
if (_local2){
return (this._keys[_local2]);
};
return (null);
}
public function setRating(_arg1, _arg2:Number, _arg3:Number):void{
var _local4:SaveRating;
if ((_arg1 is String)){
_local4 = this._group.getRatingName(_arg1);
} else {
_local4 = this._group.getRatingID(_arg1);
};
if (_local4){
this._ratings[_local4] = {id:_local4.id, name:_local4.name, votes:_arg2, score:_arg3};
};
}
public function getRating(_arg1):Object{
var _local2:SaveRating;
if ((_arg1 is String)){
_local2 = this._group.getRatingName(_arg1);
} else {
_local2 = this._group.getRatingID(_arg1);
};
if (_local2){
return (this._ratings[_local2]);
};
return (null);
}
public function sendRating(_arg1:String, _arg2:Number):void{
var _local3:SaveRating = this._group.getRatingName(_arg1);
if (!_local3){
trace((("[NewgroundsAPISaveFile] " + _arg1) + " is not a recognized save file"));
return;
};
if ((((_arg2 < _local3.minValue)) || ((_arg2 > _local3.maxValue)))){
trace(((("[NewgroundsAPISaveFile] Vote must be between " + _local3.minValue) + " and ") + _local3.maxValue));
return;
};
_local3.voted = true;
API.rateSaveFile(this, _local3, _arg2);
}
override public function toString():String{
var _local2:Object;
var _local3:Object;
var _local1 = (((((("Save File " + this._filename) + " ID: ") + this._id) + "\n ") + this._description) + "\n");
for each (_local2 in this._keys) {
_local1 = (_local1 + ((((" " + this._group.getKeyID(_local2.id).name) + ": ") + _local2.val) + "\n"));
};
for each (_local3 in this._ratings) {
_local1 = (_local1 + ((((((" " + this._group.getRatingID(_local3.id).name) + "\n Score: ") + _local3.score) + " Votes: ") + _local3.votes) + "\n"));
};
return (_local1);
}
public function toObject():Object{
var _local2:Object;
var _local1:Object = {group:this.groupId, filename:this.name, description:this.description, shared:true};
_local1.keys = [];
for each (_local2 in this._keys) {
_local1.keys.push({id:_local2.id, value:_local2.val});
};
return (_local1);
}
public function save(_arg1:Boolean=false, _arg2:Boolean=false):void{
API.saveFile(this, _arg1, _arg2);
}
public function loadContents():void{
if (this._fileUrl){
this._loader = new SmartURLLoader();
this._loader.responseFormat = URLLoaderDataFormat.BINARY;
this._loader.addEventListener(Event.COMPLETE, this.onContentsLoaded);
this._loader.addEventListener(IOErrorEvent.IO_ERROR, this.onContentsError);
this._loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onContentsError);
this._loader.load(this._fileUrl);
};
}
private function onContentsError(_arg1:Event):void{
this._loader = null;
dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, false));
API.callListener(APIEvent.FILE_LOADED, false);
}
private function onContentsLoaded(_arg1:Event):void{
var _local2:ByteArray = _arg1.target.response;
this._contentSize = _local2.length;
_local2.uncompress();
var _local3:uint = _local2.readUnsignedByte();
if (_local3 == 0){
this._contents = new ByteArray();
this._contents.writeBytes(_local2, 1);
} else {
this._contents = _local2.readObject();
};
this._loader = null;
dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, true, {file:this}));
API.callListener(APIEvent.FILE_LOADED, true, {file:this});
}
public function loadAuthorPage(){
API.loadUserPage(this._authorId, this._authorName);
}
function fileSaved(_arg1:Object):void{
this._id = _arg1.save_id;
this._thumbnailUrl = _arg1.thumbnail;
this._fileUrl = _arg1.file_url;
}
}
}//package com.newgrounds
Section 208
//SaveGroup (com.newgrounds.SaveGroup)
package com.newgrounds {
public class SaveGroup {
private var _name:String;
private var _id:uint;
private var _type:uint;
private var _keys:Array;
private var _ratings:Array;
private var _files:Array;
private var _query:SaveGroupQuery;
public static const TYPE_SYSTEM:uint = 0;
public static const TYPE_PRIVATE:uint = 1;
public static const TYPE_PUBLIC:uint = 2;
public static const TYPE_MODERATED:uint = 3;
public static const KEY_TYPES:Array = [null, "float", "integer", "string", "boolean"];
public static const TYPES:Object = {SYSTEM:0, PRIVATE:1, PUBLIC:2, MODERATED:3};
public function SaveGroup(_arg1:uint, _arg2:String, _arg3:uint){
this._name = _arg2;
this._id = _arg1;
this._type = _arg3;
this._ratings = [];
this._keys = [];
this._files = [];
this._query = new SaveGroupQuery(this);
}
public function get name():String{
return (this._name);
}
public function get id():uint{
return (this._id);
}
public function get type():uint{
return (this._type);
}
public function get keys():Array{
return (this._keys);
}
public function get ratings():Array{
return (this._ratings);
}
public function get group_id():uint{
return (this._id);
}
public function get group_name():String{
return (this._name);
}
public function addRating(_arg1:SaveRating):void{
this._ratings.push(_arg1);
}
function getRating(_arg1):SaveRating{
var _local2:uint;
while (_local2 < this._ratings.length) {
if ((((((((_arg1 is uint)) || ((_arg1 is int)))) || ((_arg1 is Number)))) && ((this._ratings[_local2].rating_id == _arg1)))){
return (this._ratings[_local2]);
};
if (this._ratings[_local2].name == _arg1){
return (this._ratings[_local2]);
};
_local2++;
};
return (null);
}
public function getRatingID(_arg1:uint):SaveRating{
var _local2:uint;
while (_local2 < this._ratings.length) {
if (this._ratings[_local2].id == _arg1){
return (this._ratings[_local2]);
};
_local2++;
};
return (null);
}
public function getRatingName(_arg1:String):SaveRating{
var _local2:uint;
while (_local2 < this._ratings.length) {
if (this._ratings[_local2].name == _arg1){
return (this._ratings[_local2]);
};
_local2++;
};
return (null);
}
public function addKey(_arg1:SaveKey):void{
this._keys.push(_arg1);
}
public function getKey(_arg1):SaveKey{
var _local2:uint;
while (_local2 < this._keys.length) {
if ((((((((_arg1 is Number)) || ((_arg1 is uint)))) || ((_arg1 is int)))) && ((this._keys[_local2].key_id == _arg1)))){
return (this._keys[_local2]);
};
if (this._keys[_local2].key_name == _arg1){
return (this._keys[_local2]);
};
_local2++;
};
return (null);
}
public function getKeyID(_arg1:uint):SaveKey{
var _local2:uint;
while (_local2 < this._keys.length) {
if (this._keys[_local2].id == _arg1){
return (this._keys[_local2]);
};
_local2++;
};
return (null);
}
public function getKeyType(_arg1:String, _arg2:Boolean=false){
var _local3:SaveKey = this.getKey(_arg1);
if (_local3){
return ((_arg2) ? KEY_TYPES[_local3.key_type] : _local3.key_type);
};
return (null);
}
public function getKeyName(_arg1:String):SaveKey{
var _local2:uint;
while (_local2 < this._keys.length) {
if (this._keys[_local2].name == _arg1){
return (this._keys[_local2]);
};
_local2++;
};
return (null);
}
public function isType(_arg1:String):Boolean{
return ((TYPES[this._type] == _arg1));
}
public function getID():uint{
return (this._id);
}
public function getName():String{
return (this._name);
}
public function getQuery(_arg1:Boolean=false){
return ((_arg1) ? this._query.toObject() : this._query);
}
public function newQuery():SaveGroupQuery{
return (new SaveGroupQuery(this));
}
public function newFile():SaveFile{
return (new SaveFile(this));
}
public function toString():String{
return ((((((("SaveGroup { name: " + this._name) + ", id: ") + this._id) + ", keys: ") + this._keys) + "}"));
}
public static function createFromObject(_arg1:Object):SaveGroup{
var _local4:Object;
var _local5:Object;
var _local2:SaveGroup = new SaveGroup(_arg1.group_id, _arg1.group_name, _arg1.group_type);
var _local3:uint;
while (_local3 < _arg1.keys.length) {
_local4 = _arg1.keys[_local3];
_local2.addKey(new SaveKey(_local4.id, _local4.name, _local4.type));
_local3++;
};
_local3 = 0;
while (_local3 < _arg1.ratings.length) {
_local5 = _arg1.ratings[_local3];
_local2.addRating(new SaveRating(_local5.id, _local5.name, _local5.float, _local5.min, _local5.max));
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 209
//SaveGroupQuery (com.newgrounds.SaveGroupQuery)
package com.newgrounds {
import flash.events.*;
public class SaveGroupQuery extends EventDispatcher {
private var _group:SaveGroup;
private var _groupBy:Array;
private var _lookupKeys:Array;
private var _lookupRatings:Array;
private var _fileConditions:Array;
private var _keyConditions:Array;
private var _ratingConditions:Array;
private var _sortConditions:Array;
private var _page:uint;
private var _resultsPerPage:uint;
private var _randomizeResults:Boolean;
private var _results:Array;
public static const TABLE_FILES:uint = 1;
public static const TABLE_KEYS:uint = 2;
public static const TABLE_RATINGS:uint = 3;
public static const FILE_ID:uint = 0;
public static const AUTHOR_ID:uint = 1;
public static const AUTHOR_NAME:uint = 2;
public static const FILE_NAME:uint = 3;
public static const CREATED_ON:uint = 4;
public static const UPDATED_ON:uint = 5;
public static const TOTAL_VIEWS:uint = 6;
public static const FILE_STATUS:uint = 7;
public static const SCORE:String = "score";
public static const TOTAL_VOTES:String = "votes";
public function SaveGroupQuery(_arg1:SaveGroup){
this._results = [];
super();
this._group = _arg1;
this.reset();
}
public function clearCache():void{
this._results = [];
}
public function get group():SaveGroup{
return (this._group);
}
public function get groupId():uint{
return (this._group.id);
}
public function get resultsPerPage():uint{
return (this._resultsPerPage);
}
public function set resultsPerPage(_arg1:uint):void{
this._resultsPerPage = _arg1;
}
public function get page():uint{
return (this._page);
}
public function set page(_arg1:uint):void{
this._page = _arg1;
}
public function get randomized():Boolean{
return (this._randomizeResults);
}
public function set randomized(_arg1:Boolean):void{
this._randomizeResults = _arg1;
}
public function get results():Array{
return (this._results);
}
public function reset():void{
this._fileConditions = [];
this._keyConditions = [];
this._ratingConditions = [];
this._sortConditions = [];
this._groupBy = [];
this._lookupKeys = [];
this._lookupRatings = [];
this._randomizeResults = false;
this._resultsPerPage = 20;
this._page = 1;
this.clearCache();
}
function getGroup():SaveGroup{
return (this._group);
}
function getGroupID():uint{
return (this._group.getID());
}
public function includeKey(_arg1:String):void{
var _local2:SaveKey = this._group.getKeyName(_arg1);
if (_local2){
this._lookupKeys.push(_local2.id);
};
}
public function isRandomized():Boolean{
return (this._randomizeResults);
}
public function includeRating(_arg1:String):void{
var _local2:SaveRating = this._group.getRatingName(_arg1);
if (_local2){
this._lookupRatings.push(_local2.id);
};
}
public function excludeKey(_arg1:String):void{
var _local2:SaveKey = this._group.getKeyName(_arg1);
var _local3:uint;
while (_local3 < this._lookupKeys.length) {
if (this._lookupKeys[_local3] == _local2.id){
this._lookupKeys.splice(_local3, 1);
return;
};
_local3++;
};
}
public function excludeRating(_arg1:String):void{
var _local2:SaveRating = this._group.getRatingName(_arg1);
var _local3:uint;
while (_local3 < this._lookupRatings.length) {
if (this._lookupRatings[_local3] == _local2.id){
this._lookupRatings.splice(_local3, 1);
return;
};
_local3++;
};
}
public function groupBy(_arg1:uint):void{
this._groupBy.push({table:TABLE_FILES, field:_arg1});
}
public function groupByRating(_arg1:String):void{
var _local2:SaveRating = this._group.getRatingName(_arg1);
if (!_local2){
return;
};
this._groupBy.push({table:TABLE_RATINGS, field:_local2.id});
}
public function groupByKey(_arg1:String):void{
var _local2:SaveKey = this._group.getKeyName(_arg1);
if (!_local2){
return;
};
this._groupBy.push({table:TABLE_KEYS, field:_local2.id});
}
public function addFileCondition(_arg1:uint, _arg2:String, _arg3):void{
this._fileConditions.push({field:_arg1, operator:_arg2, value:_arg3});
}
public function addKeyCondition(_arg1:String, _arg2:String, _arg3):void{
var _local4:SaveKey = this._group.getKeyName(_arg1);
if (!_local4){
return;
};
if (!this.checkValue(_arg3, _local4.type)){
return;
};
this._keyConditions.push({key_id:_local4.id, operator:_arg2, value:_arg3});
}
public function addRatingCondition(_arg1:String, _arg2:String, _arg3, _arg4:String="score"):void{
var _local5:SaveRating = this._group.getRatingName(_arg1);
if (!_local5){
return;
};
this._ratingConditions.push({rating_id:_local5.id, operator:_arg2, value:_arg3, column:_arg4});
}
private function addSortCondition(_arg1:uint, _arg2:uint, _arg3:Boolean=false, _arg4=null):void{
var _local5:Object = {table:_arg1, field:_arg2, desc:_arg3};
if (_arg4){
_local5.extra = _arg4;
};
this._sortConditions.push(_local5);
}
public function sortOn(_arg1:uint, _arg2:Boolean=false):void{
this.addSortCondition(TABLE_FILES, _arg1, _arg2);
}
public function sortOnKey(_arg1:String, _arg2:Boolean=false):void{
this.addSortCondition(TABLE_KEYS, this._group.getKeyName(_arg1).id, _arg2);
}
public function sortOnRating(_arg1:String, _arg2:Boolean=false, _arg3:String="score"):void{
this.addSortCondition(TABLE_RATINGS, this._group.getRatingName(_arg1).id, _arg2, _arg3);
}
public function sortOnRatingScore(_arg1:String, _arg2:Boolean){
this.sortOnRating(_arg1, _arg2, SCORE);
}
public function sortOnRatingVotes(_arg1:String, _arg2:Boolean){
this.sortOnRating(_arg1, _arg2, TOTAL_VOTES);
}
public function setResultsPerPage(_arg1:uint){
this._resultsPerPage = _arg1;
this.clearCache();
}
public function setPage(_arg1:Number){
this._page = _arg1;
this.clearCache();
}
public function setRandomize(_arg1:Boolean):void{
this._randomizeResults = _arg1;
}
public function execute():void{
API.executeSaveQuery(this);
}
private function checkValue(_arg1, _arg2:uint):Boolean{
return (true);
}
function setResults(_arg1:Array):void{
this._results = _arg1;
}
override public function toString():String{
return ("");
}
public function toObject():Object{
var _local1:Object = {page:this._page, num_results:this._resultsPerPage};
if (this.isRandomized()){
_local1.randomize = 1;
};
if (((this._fileConditions) && ((this._fileConditions.length > 0)))){
_local1.file_conditions = this._fileConditions;
};
if (((this._keyConditions) && ((this._keyConditions.length > 0)))){
_local1.key_conditions = this._keyConditions;
};
if (((this._ratingConditions) && ((this._ratingConditions.length > 0)))){
_local1.rating_conditions = this._ratingConditions;
};
if (((this._sortConditions) && ((this._sortConditions.length > 0)))){
_local1.sort_conditions = this._sortConditions;
};
if (((this._lookupKeys) && ((this._lookupKeys.length > 0)))){
_local1.lookup_keys = this._lookupKeys;
};
if (((this._lookupRatings) && ((this._lookupRatings.length > 0)))){
_local1.lookup_ratings = this._lookupRatings;
};
if (((this._groupBy) && ((this._groupBy.length > 0)))){
_local1.group_by = this._groupBy;
};
return (_local1);
}
}
}//package com.newgrounds
Section 210
//SaveKey (com.newgrounds.SaveKey)
package com.newgrounds {
public class SaveKey {
private var _id:uint;
private var _name:String;
private var _type:uint;
public static const TYPE_FLOAT:uint = 1;
public static const TYPE_INTEGER:uint = 2;
public static const TYPE_STRING:uint = 3;
public static const TYPE_BOOLEAN:uint = 4;
public function SaveKey(_arg1:uint, _arg2:String, _arg3:uint){
this._id = _arg1;
this._name = _arg2;
this._type = _arg3;
}
public function get id():uint{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get type():uint{
return (this._type);
}
public function get key_id():uint{
return (this._id);
}
public function get key_name():String{
return (this._name);
}
public function get key_type():uint{
return (this._type);
}
public function isValueValid(_arg1):Boolean{
if (this._type == TYPE_INTEGER){
return ((((_arg1 is int)) || ((_arg1 is uint))));
};
if (this._type == TYPE_FLOAT){
return ((((((_arg1 is int)) || ((_arg1 is uint)))) || ((_arg1 is Number))));
};
if (this._type == TYPE_STRING){
return ((_arg1 is String));
};
if (this._type == TYPE_BOOLEAN){
return ((((((((_arg1 is Boolean)) || ((_arg1 === 0)))) || ((_arg1 === 1)))) || ((_arg1 == ""))));
};
return (false);
}
public function toString():String{
return (this._name);
}
}
}//package com.newgrounds
Section 211
//SaveRating (com.newgrounds.SaveRating)
package com.newgrounds {
public class SaveRating {
private var _id:uint;
private var _name:String;
private var _minValue:Number;
private var _maxValue:Number;
private var _isFloat:Boolean;
private var _voted:Boolean;
public function SaveRating(_arg1:uint, _arg2:String, _arg3:Boolean, _arg4:Number=-INF, _arg5:Number=INF){
this._id = _arg1;
this._name = _arg2;
this._isFloat = _arg3;
this._minValue = _arg4;
this._maxValue = _arg5;
}
public function get rating_id():uint{
return (this._id);
}
public function get rating_name():String{
return (this._name);
}
public function get id():uint{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get minValue():Number{
return (this._minValue);
}
public function get maxValue():Number{
return (this._maxValue);
}
public function get isFloat():Boolean{
return (this._isFloat);
}
public function get voted():Boolean{
return (this._voted);
}
public function set voted(_arg1:Boolean):void{
this._voted = _arg1;
}
public function toString():String{
return (this._name);
}
}
}//package com.newgrounds
Section 212
//Score (com.newgrounds.Score)
package com.newgrounds {
public class Score {
private var _board:ScoreBoard;
private var _position:uint;
private var _username:String;
private var _value:String;
private var _numeric_value:uint;
private var _tag:String;
public function Score(_arg1:ScoreBoard, _arg2:Number, _arg3:String, _arg4:String, _arg5:uint, _arg6:String){
this._board = _arg1;
this._position = _arg2;
this._username = _arg3;
this._value = _arg4;
this._numeric_value = _arg5;
this._tag = _arg6;
}
public function get board():ScoreBoard{
return (this._board);
}
public function get position():uint{
return (this._position);
}
public function get username():String{
return (this._username);
}
public function get value():String{
return (this._value);
}
public function get numeric_value():uint{
return (this._numeric_value);
}
public function get tag():String{
return (this._tag);
}
}
}//package com.newgrounds
Section 213
//ScoreBoard (com.newgrounds.ScoreBoard)
package com.newgrounds {
import flash.events.*;
public class ScoreBoard extends EventDispatcher {
private var _name:String;
private var _id:uint;
private var _scores:Array;
private var _period:String;// = "Today"
private var _num_results:uint;// = 10
private var _numScores:uint;
private var _desiredNumResults:uint;
private var _startRank:uint;
private var _endRank:uint;
private var _page:uint;// = 1
private var _tag:String;
public function ScoreBoard(_arg1:uint, _arg2:String, _arg3:String){
this._name = _arg2;
this._id = _arg1;
this._scores = [];
this._tag = _arg3;
}
public function exists():Boolean{
return ((this._id > 0));
}
public function get id():Number{
return (this._id);
}
public function get name():String{
return (this._name);
}
public function get period():String{
return (this._period);
}
public function get page():uint{
return (this._page);
}
public function get num_results():uint{
return (this._num_results);
}
public function get scores():Array{
return (this._scores);
}
public function get tag():String{
return (this._tag);
}
public function get num_scores():uint{
return (this._numScores);
}
public function postScore(_arg1:uint, _arg2:String=null):void{
if (_arg2){
this._tag = _arg2;
};
API.postScore(this._name, _arg1);
}
public function loadScores(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{
this._period = _arg1;
if (((!(this._period)) || ((this._period == "")))){
this._period = ScoreBoardPeriod.TODAY;
};
this._page = _arg2;
this._num_results = _arg3;
this._desiredNumResults = 0;
API.loadScores(this.name);
}
public function loadScoresInRange(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{
if (_arg2 == 0){
_arg2 = 1;
};
if (_arg3 < _arg2){
_arg3 = _arg2;
};
this._period = _arg1;
if (((!(this._period)) || ((this._period == "")))){
this._period = ScoreBoardPeriod.TODAY;
};
this._desiredNumResults = ((_arg3 - _arg2) + 1);
this._num_results = this._desiredNumResults;
while (int(((_arg2 - 1) / this._num_results)) != int(((_arg3 - 1) / this._num_results))) {
this._num_results++;
};
this._page = ((_arg2 - 1) / this._num_results);
this._startRank = _arg2;
this._endRank = _arg3;
this._page++;
API.loadScores(this.name);
}
function setScores(_arg1:Array, _arg2:String, _arg3:Number, _arg4:Number, _arg5:uint):void{
var _local7:uint;
this._period = _arg2;
this._page = _arg3;
this._num_results = _arg4;
this._numScores = _arg5;
this._scores = [];
var _local6:uint;
while (_local6 < _arg1.length) {
_local7 = (((this._num_results * (this._page - 1)) + 1) + _local6);
if (((!(this._desiredNumResults)) || ((((_local7 >= this._startRank)) && ((_local7 <= this._endRank)))))){
this._scores.push(new Score(this, _local7, _arg1[_local6].username, _arg1[_local6].value, _arg1[_local6].numeric_value, _arg1[_local6].tag));
};
_local6++;
};
this._num_results = this._scores.length;
}
}
}//package com.newgrounds
Section 214
//ScoreBoardPeriod (com.newgrounds.ScoreBoardPeriod)
package com.newgrounds {
public class ScoreBoardPeriod {
public static const TODAY:String = "Today";
public static const WEEK:String = "This Week";
public static const MONTH:String = "This Month";
public static const YEAR:String = "This Year";
public static const ALL_TIME:String = "All-Time";
}
}//package com.newgrounds
Section 215
//SmartURLLoader (com.newgrounds.SmartURLLoader)
package com.newgrounds {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
public class SmartURLLoader extends EventDispatcher {
private var _variables:Dictionary;
private var _files:Dictionary;
private var _hasVariables:Boolean;
private var _method:String;// = "GET"
private var _urlRequest:URLRequest;
private var _urlLoader:URLLoader;
private var _dataFormat:String;// = "text"
private var _openBrowser:Boolean;// = false
private var _preventCache:Boolean;// = false
var _command:String;
public var owner;
private static const CRLF:String = "
";
private static var _loaders:Dictionary = new Dictionary();
public function SmartURLLoader(){
this._urlRequest = new URLRequest();
this._variables = new Dictionary();
}
public function get responseFormat():String{
return (this._dataFormat);
}
public function set responseFormat(_arg1:String):void{
this._dataFormat = _arg1;
}
public function get response(){
return (this._urlLoader.data);
}
public function get hasFiles():Boolean{
return (Boolean(this._files));
}
public function get method():String{
return (this._method);
}
public function set method(_arg1:String):void{
if (((this.hasFiles) && ((_arg1 == URLRequestMethod.GET)))){
throw (new IllegalOperationError("GET cannot be used to upload files."));
};
this._method = _arg1;
}
public function get openBrowser():Boolean{
return (this._openBrowser);
}
public function set openBrowser(_arg1:Boolean):void{
this._openBrowser = _arg1;
}
public function get preventCache():Boolean{
return (this._preventCache);
}
public function set preventCache(_arg1:Boolean):void{
this._preventCache = _arg1;
}
public function get bytesLoaded():uint{
return ((this._urlLoader) ? this._urlLoader.bytesLoaded : 0);
}
public function get bytesTotal():uint{
return ((this._urlLoader) ? this._urlLoader.bytesTotal : 0);
}
public function addVariable(_arg1:String, _arg2=""):void{
this._variables[_arg1] = _arg2;
if (_arg2){
this._hasVariables = true;
};
}
public function addFile(_arg1:String, _arg2:ByteArray, _arg3:String, _arg4:String="application/octet-stream"):void{
this.method = URLRequestMethod.POST;
if (!this._files){
this._files = new Dictionary();
};
this._files[_arg1] = new File(_arg1, _arg2, _arg3, _arg4);
}
public function clearVariables():void{
this._variables = new Dictionary();
}
public function clearFiles():void{
this._files = null;
}
public function load(_arg1:String):void{
var urlVariables:URLVariables;
var key:String;
var boundary:String;
var i:uint;
var event:SecurityErrorEvent;
var url = _arg1;
this._urlRequest.url = url;
if (this._preventCache){
url = (url + ("?seed=" + Math.random()));
if (this._hasVariables){
url = (url + "&");
};
};
this._urlRequest.method = this._method;
if ((((this._urlRequest.method == URLRequestMethod.GET)) || (!(this.hasFiles)))){
this._urlRequest.contentType = "application/x-www-form-urlencoded";
if (this._hasVariables){
urlVariables = new URLVariables();
for (key in this._variables) {
urlVariables[key] = this._variables[key];
};
this._urlRequest.data = urlVariables;
};
} else {
boundary = "";
i = 0;
while (i < 32) {
boundary = (boundary + String.fromCharCode(uint((97 + (Math.random() * 25)))));
i = (i + 1);
};
this._urlRequest.contentType = (("multipart/form-data; boundary=\"" + boundary) + "\"");
this._urlRequest.data = this.buildMultipartData(boundary);
};
if (this.openBrowser){
navigateToURL(this._urlRequest, "_blank");
} else {
this._urlLoader = new URLLoader();
this._urlLoader.dataFormat = this._dataFormat;
this._urlLoader.addEventListener(Event.COMPLETE, this.onComplete);
this._urlLoader.addEventListener(ProgressEvent.PROGRESS, this.onProgress);
this._urlLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onIOError);
this._urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHTTPStatus);
this._urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError);
_loaders[this._urlLoader] = this;
try {
this._urlLoader.load(this._urlRequest);
} catch(error:Error) {
event = new SecurityErrorEvent(SecurityErrorEvent.SECURITY_ERROR, false, false, error.message);
onSecurityError(event);
};
};
}
public function close():void{
try {
this._urlLoader.close();
} catch(e:Error) {
};
}
public function dispose():void{
this.close();
this._files = null;
this._variables = null;
if (this._urlLoader){
this._urlLoader.removeEventListener(Event.COMPLETE, this.onComplete);
this._urlLoader.removeEventListener(ProgressEvent.PROGRESS, this.onProgress);
this._urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, this.onIOError);
this._urlLoader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHTTPStatus);
this._urlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError);
this._urlLoader = null;
};
this._urlRequest = null;
delete _loaders[this];
}
private function buildMultipartData(_arg1:String):ByteArray{
var _local3:String;
var _local4:File;
var _local2:ByteArray = new ByteArray();
_local2.endian = Endian.BIG_ENDIAN;
_arg1 = ("--" + _arg1);
for (_local3 in this._variables) {
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(((("Content-Disposition: form-data; name=\"" + _local3) + "\"") + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeUTFBytes((this._variables[_local3] + CRLF));
};
if (this.hasFiles){
for each (_local4 in this._files) {
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Filename\"" + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeUTFBytes((_local4.fileName + CRLF));
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(((((("Content-Disposition: form-data; name=\"" + _local4.dataField) + "\"; filename=\"") + _local4.fileName) + "\"") + CRLF));
_local2.writeUTFBytes((("Content-Type: " + _local4.contentType) + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeBytes(_local4.data);
_local2.writeUTFBytes(CRLF);
};
_local2.writeUTFBytes((_arg1 + CRLF));
_local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Upload\"" + CRLF));
_local2.writeUTFBytes(CRLF);
_local2.writeUTFBytes(("Submit Query" + CRLF));
};
_local2.writeUTFBytes((_arg1 + "--"));
_local2.position = 0;
_local2.position = 0;
return (_local2);
}
private function onComplete(_arg1:Event):void{
dispatchEvent(_arg1);
this.dispose();
}
private function onProgress(_arg1:ProgressEvent):void{
dispatchEvent(_arg1);
}
private function onIOError(_arg1:IOErrorEvent):void{
dispatchEvent(_arg1);
this.dispose();
}
private function onSecurityError(_arg1:SecurityErrorEvent):void{
dispatchEvent(_arg1);
this.dispose();
}
private function onHTTPStatus(_arg1:HTTPStatusEvent):void{
dispatchEvent(_arg1);
}
public static function closeAll():void{
var _local1:SmartURLLoader;
for each (_local1 in _loaders) {
if (_local1){
_local1.dispose();
};
};
_loaders = new Dictionary();
}
}
}//package com.newgrounds
import flash.utils.*;
class File {
private var fileName:String;
private var data:ByteArray;
private var dataField:String;
private var contentType:String;
private function File(_arg1:String, _arg2:ByteArray, _arg3:String="Filedata", _arg4:String="application/octet-stream"){
this.fileName = _arg1;
this.data = _arg2;
this.dataField = _arg3;
this.contentType = _arg4;
}
}
Section 216
//Color (fl.motion.Color)
package fl.motion {
import flash.geom.*;
import flash.display.*;
public class Color extends ColorTransform {
private var _tintMultiplier:Number;// = 0
private var _tintColor:Number;// = 0
public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){
_tintColor = 0;
_tintMultiplier = 0;
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function setTint(_arg1:uint, _arg2:Number):void{
var _local3:uint;
var _local4:uint;
var _local5:uint;
this._tintColor = _arg1;
this._tintMultiplier = _arg2;
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2)));
_local3 = ((_arg1 >> 16) & 0xFF);
_local4 = ((_arg1 >> 8) & 0xFF);
_local5 = (_arg1 & 0xFF);
this.redOffset = Math.round((_local3 * _arg2));
this.greenOffset = Math.round((_local4 * _arg2));
this.blueOffset = Math.round((_local5 * _arg2));
}
public function set tintColor(_arg1:uint):void{
this.setTint(_arg1, this.tintMultiplier);
}
public function get brightness():Number{
return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1));
}
private function deriveTintColor():uint{
var _local1:Number;
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
_local1 = (1 / this.tintMultiplier);
_local2 = Math.round((this.redOffset * _local1));
_local3 = Math.round((this.greenOffset * _local1));
_local4 = Math.round((this.blueOffset * _local1));
_local5 = (((_local2 << 16) | (_local3 << 8)) | _local4);
return (_local5);
}
public function get tintMultiplier():Number{
return (this._tintMultiplier);
}
public function get tintColor():uint{
return (this._tintColor);
}
public function set brightness(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < -1){
_arg1 = -1;
};
};
_local2 = (1 - Math.abs(_arg1));
_local3 = 0;
if (_arg1 > 0){
_local3 = (_arg1 * 0xFF);
};
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2));
this.redOffset = (this.greenOffset = (this.blueOffset = _local3));
}
public function set tintMultiplier(_arg1:Number):void{
this.setTint(this.tintColor, _arg1);
}
private function parseXML(_arg1:XML=null):Color{
var _local2:XML;
var _local3:XML;
var _local4:String;
var _local5:uint;
if (!_arg1){
return (this);
};
_local2 = _arg1.elements()[0];
if (!_local2){
return (this);
};
for each (_local3 in _local2.attributes()) {
_local4 = _local3.localName();
if (_local4 == "tintColor"){
_local5 = (Number(_local3.toString()) as uint);
this.tintColor = _local5;
} else {
this[_local4] = Number(_local3.toString());
};
};
return (this);
}
public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:uint;
var _local15:uint;
var _local16:uint;
var _local17:uint;
_local4 = (1 - _arg3);
_local5 = ((_arg1 >> 24) & 0xFF);
_local6 = ((_arg1 >> 16) & 0xFF);
_local7 = ((_arg1 >> 8) & 0xFF);
_local8 = (_arg1 & 0xFF);
_local9 = ((_arg2 >> 24) & 0xFF);
_local10 = ((_arg2 >> 16) & 0xFF);
_local11 = ((_arg2 >> 8) & 0xFF);
_local12 = (_arg2 & 0xFF);
_local13 = ((_local5 * _local4) + (_local9 * _arg3));
_local14 = ((_local6 * _local4) + (_local10 * _arg3));
_local15 = ((_local7 * _local4) + (_local11 * _arg3));
_local16 = ((_local8 * _local4) + (_local12 * _arg3));
_local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16);
return (_local17);
}
public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{
var _local4:Number;
var _local5:ColorTransform;
_local4 = (1 - _arg3);
_local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3)));
return (_local5);
}
public static function fromXML(_arg1:XML):Color{
return (Color(new (Color).parseXML(_arg1)));
}
}
}//package fl.motion
Section 217
//NewgroundsAPIAsset_FlashAd_Container_2 (FlashAd_fla.NewgroundsAPIAsset_FlashAd_Container_2)
package FlashAd_fla {
import flash.events.*;
import flash.display.*;
import com.newgrounds.*;
public dynamic class NewgroundsAPIAsset_FlashAd_Container_2 extends MovieClip {
public var adMask:MovieClip;
public var ngLinkButton:SimpleButton;
public function NewgroundsAPIAsset_FlashAd_Container_2(){
addFrameScript(0, this.frame1, 10, this.frame11);
}
public function onNGLinkClicked(_arg1:MouseEvent):void{
API.loadNewgrounds();
}
function frame1(){
this.ngLinkButton.addEventListener(MouseEvent.CLICK, this.onNGLinkClicked);
}
function frame11(){
gotoAndPlay(1);
}
}
}//package FlashAd_fla
Section 218
//NewgroundsAPIAsset_Load_Indicator_5 (FlashAd_fla.NewgroundsAPIAsset_Load_Indicator_5)
package FlashAd_fla {
import flash.events.*;
import flash.display.*;
public dynamic class NewgroundsAPIAsset_Load_Indicator_5 extends MovieClip {
public function NewgroundsAPIAsset_Load_Indicator_5(){
addFrameScript(0, this.frame1);
}
public function onEnterFrame(_arg1:Event):void{
if (((visible) && (stage))){
rotation = (rotation + 30);
} else {
removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
};
}
function frame1(){
addEventListener(Event.ENTER_FRAME, this.onEnterFrame);
}
}
}//package FlashAd_fla
Section 219
//aim_bazooka_agent_429 (Superfighters_fla.aim_bazooka_agent_429)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_agent_429 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 220
//aim_bazooka_billy_506 (Superfighters_fla.aim_bazooka_billy_506)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_billy_506 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 221
//aim_bazooka_boris_284 (Superfighters_fla.aim_bazooka_boris_284)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_boris_284 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 222
//aim_bazooka_funnyman_635 (Superfighters_fla.aim_bazooka_funnyman_635)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_funnyman_635 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 223
//aim_bazooka_jeff_755 (Superfighters_fla.aim_bazooka_jeff_755)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_jeff_755 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 224
//aim_bazooka_johnny_203 (Superfighters_fla.aim_bazooka_johnny_203)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_johnny_203 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 225
//aim_bazooka_mac_695 (Superfighters_fla.aim_bazooka_mac_695)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_mac_695 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 226
//aim_bazooka_scott_566 (Superfighters_fla.aim_bazooka_scott_566)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_bazooka_scott_566 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 227
//aim_flamethrower_agent_432 (Superfighters_fla.aim_flamethrower_agent_432)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_agent_432 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 228
//aim_flamethrower_billy_509 (Superfighters_fla.aim_flamethrower_billy_509)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_billy_509 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 229
//aim_flamethrower_boris_287 (Superfighters_fla.aim_flamethrower_boris_287)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_boris_287 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 230
//aim_flamethrower_funnyman_638 (Superfighters_fla.aim_flamethrower_funnyman_638)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_funnyman_638 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 231
//aim_flamethrower_jeff_758 (Superfighters_fla.aim_flamethrower_jeff_758)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_jeff_758 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 232
//aim_flamethrower_johnny_206 (Superfighters_fla.aim_flamethrower_johnny_206)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_johnny_206 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 233
//aim_flamethrower_mac_698 (Superfighters_fla.aim_flamethrower_mac_698)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_mac_698 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 234
//aim_flamethrower_scott_569 (Superfighters_fla.aim_flamethrower_scott_569)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_flamethrower_scott_569 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 235
//aim_magnum_agent_419 (Superfighters_fla.aim_magnum_agent_419)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_agent_419 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 236
//aim_magnum_billy_496 (Superfighters_fla.aim_magnum_billy_496)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_billy_496 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 237
//aim_magnum_boris_274 (Superfighters_fla.aim_magnum_boris_274)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_boris_274 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 238
//aim_magnum_funnyman_625 (Superfighters_fla.aim_magnum_funnyman_625)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_funnyman_625 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 239
//aim_magnum_jeff_745 (Superfighters_fla.aim_magnum_jeff_745)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_jeff_745 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 240
//aim_magnum_johnny_193 (Superfighters_fla.aim_magnum_johnny_193)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_johnny_193 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 241
//aim_magnum_mac_685 (Superfighters_fla.aim_magnum_mac_685)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_mac_685 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 242
//aim_magnum_scott_556 (Superfighters_fla.aim_magnum_scott_556)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_magnum_scott_556 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 243
//aim_pistol_agent_417 (Superfighters_fla.aim_pistol_agent_417)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_agent_417 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 244
//aim_pistol_billy_494 (Superfighters_fla.aim_pistol_billy_494)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_billy_494 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 245
//aim_pistol_boris_272 (Superfighters_fla.aim_pistol_boris_272)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_boris_272 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 246
//aim_pistol_funnyman_623 (Superfighters_fla.aim_pistol_funnyman_623)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_funnyman_623 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 247
//aim_pistol_jeff_743 (Superfighters_fla.aim_pistol_jeff_743)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_jeff_743 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 248
//aim_pistol_johnny_190 (Superfighters_fla.aim_pistol_johnny_190)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_johnny_190 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 249
//aim_pistol_mac_683 (Superfighters_fla.aim_pistol_mac_683)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_mac_683 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 250
//aim_pistol_scott_554 (Superfighters_fla.aim_pistol_scott_554)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_pistol_scott_554 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 251
//aim_rifle_agent_421 (Superfighters_fla.aim_rifle_agent_421)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_agent_421 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 252
//aim_rifle_billy_498 (Superfighters_fla.aim_rifle_billy_498)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_billy_498 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 253
//aim_rifle_boris_276 (Superfighters_fla.aim_rifle_boris_276)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_boris_276 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 254
//aim_rifle_funnyman_627 (Superfighters_fla.aim_rifle_funnyman_627)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_funnyman_627 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 255
//aim_rifle_jeff_747 (Superfighters_fla.aim_rifle_jeff_747)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_jeff_747 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 256
//aim_rifle_johnny_195 (Superfighters_fla.aim_rifle_johnny_195)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_johnny_195 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 257
//aim_rifle_mac_687 (Superfighters_fla.aim_rifle_mac_687)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_mac_687 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 258
//aim_rifle_scott_558 (Superfighters_fla.aim_rifle_scott_558)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_rifle_scott_558 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 259
//aim_shotgun_agent_425 (Superfighters_fla.aim_shotgun_agent_425)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_agent_425 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 260
//aim_shotgun_billy_502 (Superfighters_fla.aim_shotgun_billy_502)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_billy_502 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 261
//aim_shotgun_boris_280 (Superfighters_fla.aim_shotgun_boris_280)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_boris_280 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 262
//aim_shotgun_funnyman_631 (Superfighters_fla.aim_shotgun_funnyman_631)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_funnyman_631 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 263
//aim_shotgun_jeff_751 (Superfighters_fla.aim_shotgun_jeff_751)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_jeff_751 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 264
//aim_shotgun_johnny_199 (Superfighters_fla.aim_shotgun_johnny_199)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_johnny_199 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 265
//aim_shotgun_mac_691 (Superfighters_fla.aim_shotgun_mac_691)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_mac_691 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 266
//aim_shotgun_scott_562 (Superfighters_fla.aim_shotgun_scott_562)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_shotgun_scott_562 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 267
//aim_sniper_agent_427 (Superfighters_fla.aim_sniper_agent_427)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_agent_427 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 268
//aim_sniper_billy_504 (Superfighters_fla.aim_sniper_billy_504)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_billy_504 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 269
//aim_sniper_boris_282 (Superfighters_fla.aim_sniper_boris_282)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_boris_282 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 270
//aim_sniper_funnyman_633 (Superfighters_fla.aim_sniper_funnyman_633)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_funnyman_633 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 271
//aim_sniper_jeff_753 (Superfighters_fla.aim_sniper_jeff_753)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_jeff_753 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 272
//aim_sniper_johnny_201 (Superfighters_fla.aim_sniper_johnny_201)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_johnny_201 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 273
//aim_sniper_mac_693 (Superfighters_fla.aim_sniper_mac_693)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_mac_693 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 274
//aim_sniper_scott_564 (Superfighters_fla.aim_sniper_scott_564)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_sniper_scott_564 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var LAZER_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 275
//aim_throw_agent_434 (Superfighters_fla.aim_throw_agent_434)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_agent_434 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 276
//aim_throw_billy_511 (Superfighters_fla.aim_throw_billy_511)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_billy_511 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 277
//aim_throw_boris_289 (Superfighters_fla.aim_throw_boris_289)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_boris_289 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 278
//aim_throw_funnyman_640 (Superfighters_fla.aim_throw_funnyman_640)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_funnyman_640 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 279
//aim_throw_jeff_760 (Superfighters_fla.aim_throw_jeff_760)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_jeff_760 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 280
//aim_throw_johnny_208 (Superfighters_fla.aim_throw_johnny_208)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_johnny_208 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 281
//aim_throw_mac_700 (Superfighters_fla.aim_throw_mac_700)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_mac_700 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 282
//aim_throw_scott_571 (Superfighters_fla.aim_throw_scott_571)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_throw_scott_571 extends MovieClip {
public var AIM_POSITION:blank_mc;
}
}//package Superfighters_fla
Section 283
//aim_uzi_agent_423 (Superfighters_fla.aim_uzi_agent_423)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_agent_423 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 284
//aim_uzi_billy_500 (Superfighters_fla.aim_uzi_billy_500)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_billy_500 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 285
//aim_uzi_boris_278 (Superfighters_fla.aim_uzi_boris_278)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_boris_278 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 286
//aim_uzi_funnyman_629 (Superfighters_fla.aim_uzi_funnyman_629)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_funnyman_629 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 287
//aim_uzi_jeff_749 (Superfighters_fla.aim_uzi_jeff_749)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_jeff_749 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 288
//aim_uzi_johnny_197 (Superfighters_fla.aim_uzi_johnny_197)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_johnny_197 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 289
//aim_uzi_mac_689 (Superfighters_fla.aim_uzi_mac_689)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_mac_689 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 290
//aim_uzi_scott_560 (Superfighters_fla.aim_uzi_scott_560)
package Superfighters_fla {
import flash.display.*;
public dynamic class aim_uzi_scott_560 extends MovieClip {
public var AIM_POSITION:blank_mc;
public var MUZZLE_CENTER:blank_mc;
public var SHELL_CENTER:blank_mc;
public var FIRE_CENTER:blank_mc;
}
}//package Superfighters_fla
Section 291
//billboard_805 (Superfighters_fla.billboard_805)
package Superfighters_fla {
import flash.display.*;
public dynamic class billboard_805 extends MovieClip {
public function billboard_805(){
addFrameScript(0, frame1);
}
function frame1(){
this.gotoAndStop((Math.floor((Math.random() * (this.totalFrames - 0.0001))) + 1));
}
}
}//package Superfighters_fla
Section 292
//challenge_map_809 (Superfighters_fla.challenge_map_809)
package Superfighters_fla {
import flash.display.*;
public dynamic class challenge_map_809 extends MovieClip {
public var map_pic:MovieClip;
public var selection:MovieClip;
}
}//package Superfighters_fla
Section 293
//com_plate_793 (Superfighters_fla.com_plate_793)
package Superfighters_fla {
import flash.display.*;
public dynamic class com_plate_793 extends MovieClip {
public var empty_cover:MovieClip;
public var team:MovieClip;
public var highlight_1:MovieClip;
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_5:MovieClip;
public var marker_3:MovieClip;
public var marker_1:MovieClip;
public var highlight_2:MovieClip;
public var character_pic:MovieClip;
public var highlight_0:MovieClip;
public var marker_4:MovieClip;
public var difficulty:MovieClip;
public var character_name:MovieClip;
}
}//package Superfighters_fla
Section 294
//confirm_delete_814 (Superfighters_fla.confirm_delete_814)
package Superfighters_fla {
import flash.display.*;
public dynamic class confirm_delete_814 extends MovieClip {
public var marker_2:MovieClip;
public var marker_1:MovieClip;
}
}//package Superfighters_fla
Section 295
//Container_4 (Superfighters_fla.Container_4)
package Superfighters_fla {
import flash.display.*;
public dynamic class Container_4 extends MovieClip {
public function Container_4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 296
//dive_agent_401 (Superfighters_fla.dive_agent_401)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_agent_401 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 297
//dive_billy_478 (Superfighters_fla.dive_billy_478)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_billy_478 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 298
//dive_blood_322 (Superfighters_fla.dive_blood_322)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_blood_322 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 299
//dive_boris_256 (Superfighters_fla.dive_boris_256)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_boris_256 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 300
//dive_funnyman_607 (Superfighters_fla.dive_funnyman_607)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_funnyman_607 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 301
//dive_hitclip_86 (Superfighters_fla.dive_hitclip_86)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_hitclip_86 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 302
//dive_jeff_727 (Superfighters_fla.dive_jeff_727)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_jeff_727 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 303
//dive_johnny_174 (Superfighters_fla.dive_johnny_174)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_johnny_174 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 304
//dive_mac_667 (Superfighters_fla.dive_mac_667)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_mac_667 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 305
//dive_scott_538 (Superfighters_fla.dive_scott_538)
package Superfighters_fla {
import flash.display.*;
public dynamic class dive_scott_538 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 306
//fall_b_agent_393 (Superfighters_fla.fall_b_agent_393)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_agent_393 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 307
//fall_b_billy_470 (Superfighters_fla.fall_b_billy_470)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_billy_470 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 308
//fall_b_blood_314 (Superfighters_fla.fall_b_blood_314)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_blood_314 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 309
//fall_b_boris_248 (Superfighters_fla.fall_b_boris_248)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_boris_248 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 310
//fall_b_burnt_451 (Superfighters_fla.fall_b_burnt_451)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_burnt_451 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 311
//fall_b_funnyman_599 (Superfighters_fla.fall_b_funnyman_599)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_funnyman_599 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 312
//fall_b_hitclip_78 (Superfighters_fla.fall_b_hitclip_78)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_hitclip_78 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 313
//fall_b_jeff_719 (Superfighters_fla.fall_b_jeff_719)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_jeff_719 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 314
//fall_b_johnny_166 (Superfighters_fla.fall_b_johnny_166)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_johnny_166 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 315
//fall_b_mac_659 (Superfighters_fla.fall_b_mac_659)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_mac_659 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 316
//fall_b_scott_530 (Superfighters_fla.fall_b_scott_530)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_b_scott_530 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 317
//fall_f_agent_391 (Superfighters_fla.fall_f_agent_391)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_agent_391 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 318
//fall_f_billy_468 (Superfighters_fla.fall_f_billy_468)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_billy_468 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 319
//fall_f_blood_312 (Superfighters_fla.fall_f_blood_312)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_blood_312 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 320
//fall_f_boris_246 (Superfighters_fla.fall_f_boris_246)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_boris_246 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 321
//fall_f_burnt_449 (Superfighters_fla.fall_f_burnt_449)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_burnt_449 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 322
//fall_f_funnyman_597 (Superfighters_fla.fall_f_funnyman_597)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_funnyman_597 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 323
//fall_f_hitclip_76 (Superfighters_fla.fall_f_hitclip_76)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_hitclip_76 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 324
//fall_f_jeff_717 (Superfighters_fla.fall_f_jeff_717)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_jeff_717 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 325
//fall_f_johnny_164 (Superfighters_fla.fall_f_johnny_164)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_johnny_164 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 326
//fall_f_mac_657 (Superfighters_fla.fall_f_mac_657)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_mac_657 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 327
//fall_f_scott_528 (Superfighters_fla.fall_f_scott_528)
package Superfighters_fla {
import flash.display.*;
public dynamic class fall_f_scott_528 extends MovieClip {
public var HELPMC:MovieClip;
}
}//package Superfighters_fla
Section 328
//grabbed_agent_441 (Superfighters_fla.grabbed_agent_441)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_agent_441 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 329
//grabbed_billy_518 (Superfighters_fla.grabbed_billy_518)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_billy_518 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 330
//grabbed_blood_362 (Superfighters_fla.grabbed_blood_362)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_blood_362 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 331
//grabbed_boris_296 (Superfighters_fla.grabbed_boris_296)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_boris_296 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 332
//grabbed_burnt_454 (Superfighters_fla.grabbed_burnt_454)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_burnt_454 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 333
//grabbed_funnyman_647 (Superfighters_fla.grabbed_funnyman_647)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_funnyman_647 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 334
//grabbed_hitclip_117 (Superfighters_fla.grabbed_hitclip_117)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_hitclip_117 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 335
//grabbed_jeff_767 (Superfighters_fla.grabbed_jeff_767)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_jeff_767 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 336
//grabbed_johnny_215 (Superfighters_fla.grabbed_johnny_215)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_johnny_215 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 337
//grabbed_mac_707 (Superfighters_fla.grabbed_mac_707)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_mac_707 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 338
//grabbed_scott_578 (Superfighters_fla.grabbed_scott_578)
package Superfighters_fla {
import flash.display.*;
public dynamic class grabbed_scott_578 extends MovieClip {
public var DOLL:MovieClip;
}
}//package Superfighters_fla
Section 339
//gui_player_819 (Superfighters_fla.gui_player_819)
package Superfighters_fla {
import flash.display.*;
public dynamic class gui_player_819 extends MovieClip {
public var bars_end:MovieClip;
public var throwable_num:MovieClip;
public var bars_start:MovieClip;
public var ranged_num:MovieClip;
public var throwable:MovieClip;
public var melee:MovieClip;
public var powerup:MovieClip;
public var gib_pic:char_gib_05;
public var player_mc:MovieClip;
public var sign:player_sign;
public var ranged:MovieClip;
}
}//package Superfighters_fla
Section 340
//MainTimeline (Superfighters_fla.MainTimeline)
package Superfighters_fla {
import flash.events.*;
import flash.display.*;
import com.newgrounds.components.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import Code.*;
public dynamic class MainTimeline extends MovieClip {
public var __id0_:APIConnector;
public var medal_popup:MedalPopup;
public var canStart:Boolean;
public var myTextField:TextField;
public var playBtn:SimpleButton;
public var minWaitTimer:Number;
public var loadTxt:TextField;
public var mythologic_link:SimpleButton;
public var _game:Main;
public var loadingDone:Boolean;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 4, frame5, 5, frame6);
__setProp___id0__Main_NGAPI_1();
}
function frame3(){
playBtn.addEventListener(MouseEvent.CLICK, playBtnClick);
}
public function LoadingProgress(_arg1:ProgressEvent):void{
myTextField.text = (Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)) + " %");
}
function frame6(){
_game = new Main(stage, this);
stop();
}
function frame5(){
gotoAndStop(4);
}
function __setProp___id0__Main_NGAPI_1(){
try {
__id0_["componentInspectorSetting"] = true;
} catch(e:Error) {
};
__id0_.movieId = "19514:ooXYUlX0";
__id0_.debugMode = false;
__id0_.encryptionKey = "Jp0oTAzeMyODj8FfcbtczVgSyokCAs6W";
__id0_.movieVersion = "";
__id0_.showConnectingPopup = false;
__id0_.useErrorPopup = true;
__id0_.useMedalPopup = true;
__id0_.useFakeSession = true;
try {
__id0_["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function frame2(){
gotoAndStop(1);
}
function frame1(){
stop();
myTextField = loadTxt;
canStart = false;
loadingDone = false;
minWaitTimer = setInterval(WaitTimeOver, 2500);
this.loaderInfo.addEventListener(Event.COMPLETE, LoadingDone);
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, LoadingProgress);
mythologic_link.addEventListener(MouseEvent.CLICK, linkEvent);
}
public function LoadingDone(_arg1:Event):void{
loadingDone = true;
if (canStart){
gotoAndStop(3);
} else {
myTextField.text = "LOADING";
};
}
public function playBtnClick(_arg1:MouseEvent):void{
playBtn.removeEventListener(MouseEvent.CLICK, playBtnClick);
gotoAndStop(6);
}
public function linkEvent(_arg1:MouseEvent):void{
var targetURL:URLRequest;
var e = _arg1;
try {
targetURL = new URLRequest("http://mythologicinteractive.com");
navigateToURL(targetURL, "_blank");
} catch(e:Error) {
};
}
public function WaitTimeOver():void{
clearInterval(minWaitTimer);
canStart = true;
if (loadingDone){
gotoAndStop(3);
};
}
}
}//package Superfighters_fla
Section 341
//menu_bot_6_setup_795 (Superfighters_fla.menu_bot_6_setup_795)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_bot_6_setup_795 extends MovieClip {
public var cp_5:MovieClip;
public var cp_6:MovieClip;
public var cp_2:MovieClip;
public var cp_3:MovieClip;
public var cp_1:MovieClip;
public var cp_4:MovieClip;
}
}//package Superfighters_fla
Section 342
//menu_bot_7_setup_791 (Superfighters_fla.menu_bot_7_setup_791)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_bot_7_setup_791 extends MovieClip {
public var cp_5:MovieClip;
public var cp_6:MovieClip;
public var cp_2:MovieClip;
public var cp_3:MovieClip;
public var cp_7:MovieClip;
public var cp_1:MovieClip;
public var cp_4:MovieClip;
}
}//package Superfighters_fla
Section 343
//menu_first_choise_780 (Superfighters_fla.menu_first_choise_780)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_first_choise_780 extends MovieClip {
public var tutorial_promt:MovieClip;
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_3:MovieClip;
public var marker_1:MovieClip;
}
}//package Superfighters_fla
Section 344
//menu_map_selection_798 (Superfighters_fla.menu_map_selection_798)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_map_selection_798 extends MovieClip {
public var map_pic:MovieClip;
public var map:MovieClip;
public var highlight_1:MovieClip;
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_5:MovieClip;
public var marker_3:MovieClip;
public var marker_4:MovieClip;
public var marker_1:MovieClip;
public var highlight_0:MovieClip;
public var game_mode:MovieClip;
public function menu_map_selection_798(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 345
//menu_mode_selection_783 (Superfighters_fla.menu_mode_selection_783)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_mode_selection_783 extends MovieClip {
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_1:MovieClip;
}
}//package Superfighters_fla
Section 346
//menu_no_bots_796 (Superfighters_fla.menu_no_bots_796)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_no_bots_796 extends MovieClip {
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_5:MovieClip;
public var marker_6:MovieClip;
public var marker_3:MovieClip;
public var marker_4:MovieClip;
public var marker_1:MovieClip;
public var marker_7:MovieClip;
}
}//package Superfighters_fla
Section 347
//menu_set_up_815 (Superfighters_fla.menu_set_up_815)
package Superfighters_fla {
import flash.display.*;
import flash.text.*;
public dynamic class menu_set_up_815 extends MovieClip {
public var effect_text:TextField;
public var graphic_text:TextField;
public var volume_text:TextField;
public var highlight_1:MovieClip;
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_5:MovieClip;
public var marker_6:MovieClip;
public var marker_3:MovieClip;
public var highlight_2:MovieClip;
public var marker_1:MovieClip;
public var highlight_0:MovieClip;
public var marker_4:MovieClip;
}
}//package Superfighters_fla
Section 348
//menu_set_up_816 (Superfighters_fla.menu_set_up_816)
package Superfighters_fla {
import flash.display.*;
import flash.text.*;
public dynamic class menu_set_up_816 extends MovieClip {
public var key_jump:TextField;
public var key_fire:TextField;
public var key_right:TextField;
public var marker_10:MovieClip;
public var marker_11:MovieClip;
public var marker_12:MovieClip;
public var marker_14:MovieClip;
public var marker_15:MovieClip;
public var marker_13:MovieClip;
public var key_up:TextField;
public var key_powerup:TextField;
public var key_down:TextField;
public var key_throw:TextField;
public var highlight_0:MovieClip;
public var highlight_1:MovieClip;
public var highlight_4:MovieClip;
public var highlight_5:MovieClip;
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_3:MovieClip;
public var marker_4:MovieClip;
public var marker_5:MovieClip;
public var marker_6:MovieClip;
public var highlight_6:MovieClip;
public var marker_1:MovieClip;
public var highlight_9:MovieClip;
public var marker_7:MovieClip;
public var marker_8:MovieClip;
public var highlight_7:MovieClip;
public var highlight_8:MovieClip;
public var marker_9:MovieClip;
public var highlight_10:MovieClip;
public var highlight_11:MovieClip;
public var highlight_14:MovieClip;
public var highlight_15:MovieClip;
public var key_melee:TextField;
public var highlight_13:MovieClip;
public var highlight_12:MovieClip;
public var key_kneel:TextField;
public var player_nr:TextField;
public var key_left:TextField;
public var key_sprint:TextField;
public function menu_set_up_816(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 349
//menu_stage_mode_808 (Superfighters_fla.menu_stage_mode_808)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_stage_mode_808 extends MovieClip {
public var c_3:MovieClip;
public var c_7:MovieClip;
public var delete_marker:MovieClip;
public var funnyman_message:MovieClip;
public var c_8:MovieClip;
public var c_6:MovieClip;
public var c_1:MovieClip;
public var c_4:MovieClip;
public var c_5:MovieClip;
public var c_9:MovieClip;
public var c_10:MovieClip;
public var c_11:MovieClip;
public var c_2:MovieClip;
public var c_12:MovieClip;
public var win_message:MovieClip;
}
}//package Superfighters_fla
Section 350
//menu_vs_1p_setup_784 (Superfighters_fla.menu_vs_1p_setup_784)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_vs_1p_setup_784 extends MovieClip {
public var p1_plate:MovieClip;
}
}//package Superfighters_fla
Section 351
//menu_vs_2p_setup_790 (Superfighters_fla.menu_vs_2p_setup_790)
package Superfighters_fla {
import flash.display.*;
public dynamic class menu_vs_2p_setup_790 extends MovieClip {
public var p1_plate:MovieClip;
public var p2_plate:MovieClip;
}
}//package Superfighters_fla
Section 352
//number_00_821 (Superfighters_fla.number_00_821)
package Superfighters_fla {
import flash.display.*;
public dynamic class number_00_821 extends MovieClip {
public var dig_10:MovieClip;
public var dig_1:MovieClip;
}
}//package Superfighters_fla
Section 353
//player_plate_785 (Superfighters_fla.player_plate_785)
package Superfighters_fla {
import flash.display.*;
public dynamic class player_plate_785 extends MovieClip {
public var player_type:MovieClip;
public var team:MovieClip;
public var highlight_1:MovieClip;
public var marker_0:MovieClip;
public var marker_2:MovieClip;
public var marker_3:MovieClip;
public var marker_1:MovieClip;
public var character_pic:MovieClip;
public var highlight_0:MovieClip;
public var character_name:MovieClip;
}
}//package Superfighters_fla
Section 354
//score_team_pics_826 (Superfighters_fla.score_team_pics_826)
package Superfighters_fla {
import flash.display.*;
public dynamic class score_team_pics_826 extends MovieClip {
public var team:MovieClip;
public var pic_2:MovieClip;
public var pic_3:MovieClip;
public var pic_6:MovieClip;
public var pic_7:MovieClip;
public var pic_1:MovieClip;
public var pic_4:MovieClip;
public var pic_5:MovieClip;
}
}//package Superfighters_fla
Section 355
//score_wins_loss_827 (Superfighters_fla.score_wins_loss_827)
package Superfighters_fla {
import flash.display.*;
public dynamic class score_wins_loss_827 extends MovieClip {
public var wins:MovieClip;
public var loss:MovieClip;
}
}//package Superfighters_fla
Section 356
//SoundContainer_834 (Superfighters_fla.SoundContainer_834)
package Superfighters_fla {
import flash.display.*;
public dynamic class SoundContainer_834 extends MovieClip {
public function SoundContainer_834(){
addFrameScript(1, frame2);
}
function frame2(){
stop();
}
}
}//package Superfighters_fla
Section 357
//toggle_character_name_787 (Superfighters_fla.toggle_character_name_787)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_character_name_787 extends MovieClip {
public function toggle_character_name_787(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 358
//toggle_character_pic_788 (Superfighters_fla.toggle_character_pic_788)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_character_pic_788 extends MovieClip {
public function toggle_character_pic_788(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 359
//toggle_difficulty_794 (Superfighters_fla.toggle_difficulty_794)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_difficulty_794 extends MovieClip {
public function toggle_difficulty_794(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 360
//toggle_game_mode_800 (Superfighters_fla.toggle_game_mode_800)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_game_mode_800 extends MovieClip {
public function toggle_game_mode_800(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 361
//toggle_map_name_799 (Superfighters_fla.toggle_map_name_799)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_map_name_799 extends MovieClip {
public function toggle_map_name_799(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 362
//toggle_map_pic_801 (Superfighters_fla.toggle_map_pic_801)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_map_pic_801 extends MovieClip {
public var fan_1:MovieClip;
public var fan_2:MovieClip;
public var fan_4:MovieClip;
public var fan_3:MovieClip;
public var background_clouds:MovieClip;
public var btn_left:button_01;
public var btn_right:button_01;
public var pouring:MovieClip;
public function toggle_map_pic_801(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 363
//toggle_player_type_789 (Superfighters_fla.toggle_player_type_789)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_player_type_789 extends MovieClip {
public function toggle_player_type_789(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 364
//toggle_team_786 (Superfighters_fla.toggle_team_786)
package Superfighters_fla {
import flash.display.*;
public dynamic class toggle_team_786 extends MovieClip {
public function toggle_team_786(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 365
//TutorialInstructions_832 (Superfighters_fla.TutorialInstructions_832)
package Superfighters_fla {
import flash.display.*;
public dynamic class TutorialInstructions_832 extends MovieClip {
public function TutorialInstructions_832(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package Superfighters_fla
Section 366
//wpn_shine_38 (Superfighters_fla.wpn_shine_38)
package Superfighters_fla {
import flash.display.*;
public dynamic class wpn_shine_38 extends MovieClip {
public function wpn_shine_38(){
addFrameScript(0, frame1, 20, frame21);
}
function frame1(){
gotoAndPlay((5 + Math.floor((Math.random() * 12))));
}
function frame21(){
gotoAndPlay(2);
}
}
}//package Superfighters_fla
Section 367
//accept_02 (accept_02)
package {
import flash.media.*;
public dynamic class accept_02 extends Sound {
}
}//package
Section 368
//aim_big (aim_big)
package {
import flash.media.*;
public dynamic class aim_big extends Sound {
}
}//package
Section 369
//aim_small (aim_small)
package {
import flash.media.*;
public dynamic class aim_small extends Sound {
}
}//package
Section 370
//ambient_loop_1 (ambient_loop_1)
package {
import flash.media.*;
public dynamic class ambient_loop_1 extends Sound {
}
}//package
Section 371
//barrel_01 (barrel_01)
package {
import flash.display.*;
public dynamic class barrel_01 extends MovieClip {
}
}//package
Section 372
//barrel_02 (barrel_02)
package {
import flash.display.*;
public dynamic class barrel_02 extends MovieClip {
}
}//package
Section 373
//barrel_03 (barrel_03)
package {
import flash.display.*;
public dynamic class barrel_03 extends MovieClip {
}
}//package
Section 374
//barrel_debris_01 (barrel_debris_01)
package {
import flash.display.*;
public dynamic class barrel_debris_01 extends MovieClip {
}
}//package
Section 375
//barrel_debris_02 (barrel_debris_02)
package {
import flash.display.*;
public dynamic class barrel_debris_02 extends MovieClip {
}
}//package
Section 376
//barrel_debris_03 (barrel_debris_03)
package {
import flash.display.*;
public dynamic class barrel_debris_03 extends MovieClip {
}
}//package
Section 377
//bazooka (bazooka)
package {
import flash.media.*;
public dynamic class bazooka extends Sound {
}
}//package
Section 378
//bazooka_aim (bazooka_aim)
package {
import flash.media.*;
public dynamic class bazooka_aim extends Sound {
}
}//package
Section 379
//bazooka_rocket (bazooka_rocket)
package {
import flash.display.*;
public dynamic class bazooka_rocket extends MovieClip {
}
}//package
Section 380
//beachball (beachball)
package {
import flash.display.*;
public dynamic class beachball extends MovieClip {
}
}//package
Section 381
//beat (beat)
package {
import flash.media.*;
public dynamic class beat extends Sound {
}
}//package
Section 382
//bg_noise (bg_noise)
package {
import flash.display.*;
public dynamic class bg_noise extends MovieClip {
public var EFFECT_MC:MovieClip;
}
}//package
Section 383
//blank_mc (blank_mc)
package {
import flash.display.*;
public dynamic class blank_mc extends MovieClip {
}
}//package
Section 384
//blood_1 (blood_1)
package {
import flash.display.*;
public dynamic class blood_1 extends MovieClip {
}
}//package
Section 385
//blood_2 (blood_2)
package {
import flash.display.*;
public dynamic class blood_2 extends MovieClip {
}
}//package
Section 386
//blood_3 (blood_3)
package {
import flash.display.*;
public dynamic class blood_3 extends MovieClip {
}
}//package
Section 387
//blood_particle_big (blood_particle_big)
package {
import flash.display.*;
public dynamic class blood_particle_big extends MovieClip {
}
}//package
Section 388
//blood_particle_small (blood_particle_small)
package {
import flash.display.*;
public dynamic class blood_particle_small extends MovieClip {
}
}//package
Section 389
//bubble (bubble)
package {
import flash.display.*;
public dynamic class bubble extends MovieClip {
}
}//package
Section 390
//bullet (bullet)
package {
import flash.display.*;
public dynamic class bullet extends MovieClip {
}
}//package
Section 391
//bullet_effect_normal (bullet_effect_normal)
package {
import flash.display.*;
public dynamic class bullet_effect_normal extends MovieClip {
}
}//package
Section 392
//bullet_hit_1 (bullet_hit_1)
package {
import flash.media.*;
public dynamic class bullet_hit_1 extends Sound {
}
}//package
Section 393
//bullet_hit_2 (bullet_hit_2)
package {
import flash.media.*;
public dynamic class bullet_hit_2 extends Sound {
}
}//package
Section 394
//bullet_hit_3 (bullet_hit_3)
package {
import flash.media.*;
public dynamic class bullet_hit_3 extends Sound {
}
}//package
Section 395
//bullet_hitmetal_01 (bullet_hitmetal_01)
package {
import flash.media.*;
public dynamic class bullet_hitmetal_01 extends Sound {
}
}//package
Section 396
//bullet_hitmetal_02 (bullet_hitmetal_02)
package {
import flash.media.*;
public dynamic class bullet_hitmetal_02 extends Sound {
}
}//package
Section 397
//bullet_hitmetal_03 (bullet_hitmetal_03)
package {
import flash.media.*;
public dynamic class bullet_hitmetal_03 extends Sound {
}
}//package
Section 398
//bullet_hitmetal_04 (bullet_hitmetal_04)
package {
import flash.media.*;
public dynamic class bullet_hitmetal_04 extends Sound {
}
}//package
Section 399
//bullet_hitmetal_05 (bullet_hitmetal_05)
package {
import flash.media.*;
public dynamic class bullet_hitmetal_05 extends Sound {
}
}//package
Section 400
//bullet_impact (bullet_impact)
package {
import flash.display.*;
public dynamic class bullet_impact extends MovieClip {
}
}//package
Section 401
//bullet_magnum (bullet_magnum)
package {
import flash.display.*;
public dynamic class bullet_magnum extends MovieClip {
}
}//package
Section 402
//bullet_pistol (bullet_pistol)
package {
import flash.display.*;
public dynamic class bullet_pistol extends MovieClip {
}
}//package
Section 403
//bullet_rifle (bullet_rifle)
package {
import flash.display.*;
public dynamic class bullet_rifle extends MovieClip {
}
}//package
Section 404
//bullet_shotgun (bullet_shotgun)
package {
import flash.display.*;
public dynamic class bullet_shotgun extends MovieClip {
}
}//package
Section 405
//bullet_sniper (bullet_sniper)
package {
import flash.display.*;
public dynamic class bullet_sniper extends MovieClip {
}
}//package
Section 406
//bullet_trace_slomo (bullet_trace_slomo)
package {
import flash.display.*;
public dynamic class bullet_trace_slomo extends MovieClip {
}
}//package
Section 407
//bullet_uzi (bullet_uzi)
package {
import flash.display.*;
public dynamic class bullet_uzi extends MovieClip {
}
}//package
Section 408
//bustwood_1 (bustwood_1)
package {
import flash.media.*;
public dynamic class bustwood_1 extends Sound {
}
}//package
Section 409
//bustwood_2 (bustwood_2)
package {
import flash.media.*;
public dynamic class bustwood_2 extends Sound {
}
}//package
Section 410
//button_01 (button_01)
package {
import flash.display.*;
public dynamic class button_01 extends MovieClip {
public function button_01(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 411
//cancel_02 (cancel_02)
package {
import flash.media.*;
public dynamic class cancel_02 extends Sound {
}
}//package
Section 412
//chair (chair)
package {
import flash.display.*;
public dynamic class chair extends MovieClip {
}
}//package
Section 413
//char_gib_01 (char_gib_01)
package {
import flash.display.*;
public dynamic class char_gib_01 extends MovieClip {
}
}//package
Section 414
//char_gib_02 (char_gib_02)
package {
import flash.display.*;
public dynamic class char_gib_02 extends MovieClip {
}
}//package
Section 415
//char_gib_03 (char_gib_03)
package {
import flash.display.*;
public dynamic class char_gib_03 extends MovieClip {
}
}//package
Section 416
//char_gib_04 (char_gib_04)
package {
import flash.display.*;
public dynamic class char_gib_04 extends MovieClip {
}
}//package
Section 417
//char_gib_05 (char_gib_05)
package {
import flash.display.*;
public dynamic class char_gib_05 extends MovieClip {
}
}//package
Section 418
//comfy_chair (comfy_chair)
package {
import flash.display.*;
public dynamic class comfy_chair extends MovieClip {
}
}//package
Section 419
//comp (comp)
package {
import flash.display.*;
public dynamic class comp extends MovieClip {
}
}//package
Section 420
//comp_explode_01 (comp_explode_01)
package {
import flash.media.*;
public dynamic class comp_explode_01 extends Sound {
}
}//package
Section 421
//comp_explode_02 (comp_explode_02)
package {
import flash.media.*;
public dynamic class comp_explode_02 extends Sound {
}
}//package
Section 422
//comp_screen (comp_screen)
package {
import flash.display.*;
public dynamic class comp_screen extends MovieClip {
}
}//package
Section 423
//crate_01 (crate_01)
package {
import flash.display.*;
public dynamic class crate_01 extends MovieClip {
}
}//package
Section 424
//crate_debris_01 (crate_debris_01)
package {
import flash.display.*;
public dynamic class crate_debris_01 extends MovieClip {
}
}//package
Section 425
//crate_debris_02 (crate_debris_02)
package {
import flash.display.*;
public dynamic class crate_debris_02 extends MovieClip {
}
}//package
Section 426
//crate_debris_03 (crate_debris_03)
package {
import flash.display.*;
public dynamic class crate_debris_03 extends MovieClip {
}
}//package
Section 427
//crate_hanging (crate_hanging)
package {
import flash.display.*;
public dynamic class crate_hanging extends MovieClip {
}
}//package
Section 428
//crate_hanging_holder (crate_hanging_holder)
package {
import flash.display.*;
public dynamic class crate_hanging_holder extends MovieClip {
}
}//package
Section 429
//cut00 (cut00)
package {
import flash.media.*;
public dynamic class cut00 extends Sound {
}
}//package
Section 430
//cut01 (cut01)
package {
import flash.media.*;
public dynamic class cut01 extends Sound {
}
}//package
Section 431
//cut02 (cut02)
package {
import flash.media.*;
public dynamic class cut02 extends Sound {
}
}//package
Section 432
//desk (desk)
package {
import flash.display.*;
public dynamic class desk extends MovieClip {
}
}//package
Section 433
//desk_1 (desk_1)
package {
import flash.display.*;
public dynamic class desk_1 extends MovieClip {
}
}//package
Section 434
//dive_catch (dive_catch)
package {
import flash.media.*;
public dynamic class dive_catch extends Sound {
}
}//package
Section 435
//electric_1 (electric_1)
package {
import flash.display.*;
public dynamic class electric_1 extends MovieClip {
}
}//package
Section 436
//electric_2 (electric_2)
package {
import flash.display.*;
public dynamic class electric_2 extends MovieClip {
}
}//package
Section 437
//electric_3 (electric_3)
package {
import flash.display.*;
public dynamic class electric_3 extends MovieClip {
}
}//package
Section 438
//elevator_01 (elevator_01)
package {
import flash.display.*;
public dynamic class elevator_01 extends MovieClip {
}
}//package
Section 439
//empty_shell_big (empty_shell_big)
package {
import flash.display.*;
public dynamic class empty_shell_big extends MovieClip {
}
}//package
Section 440
//empty_shell_shotgun (empty_shell_shotgun)
package {
import flash.display.*;
public dynamic class empty_shell_shotgun extends MovieClip {
}
}//package
Section 441
//empty_shell_small (empty_shell_small)
package {
import flash.display.*;
public dynamic class empty_shell_small extends MovieClip {
}
}//package
Section 442
//error_mc (error_mc)
package {
import flash.display.*;
public dynamic class error_mc extends MovieClip {
}
}//package
Section 443
//explosion_circle (explosion_circle)
package {
import flash.display.*;
public dynamic class explosion_circle extends MovieClip {
}
}//package
Section 444
//explosion00 (explosion00)
package {
import flash.media.*;
public dynamic class explosion00 extends Sound {
}
}//package
Section 445
//explosion01 (explosion01)
package {
import flash.media.*;
public dynamic class explosion01 extends Sound {
}
}//package
Section 446
//explosion02 (explosion02)
package {
import flash.media.*;
public dynamic class explosion02 extends Sound {
}
}//package
Section 447
//explosion03 (explosion03)
package {
import flash.media.*;
public dynamic class explosion03 extends Sound {
}
}//package
Section 448
//filecab_01 (filecab_01)
package {
import flash.display.*;
public dynamic class filecab_01 extends MovieClip {
}
}//package
Section 449
//fire_01 (fire_01)
package {
import flash.display.*;
public dynamic class fire_01 extends MovieClip {
}
}//package
Section 450
//fire_01_flamethrower (fire_01_flamethrower)
package {
import flash.display.*;
public dynamic class fire_01_flamethrower extends MovieClip {
}
}//package
Section 451
//fire_02 (fire_02)
package {
import flash.display.*;
public dynamic class fire_02 extends MovieClip {
}
}//package
Section 452
//fire_03 (fire_03)
package {
import flash.display.*;
public dynamic class fire_03 extends MovieClip {
}
}//package
Section 453
//fire_big (fire_big)
package {
import flash.display.*;
public dynamic class fire_big extends MovieClip {
}
}//package
Section 454
//fire_circle (fire_circle)
package {
import flash.display.*;
public dynamic class fire_circle extends MovieClip {
}
}//package
Section 455
//fire_effect_air (fire_effect_air)
package {
import flash.display.*;
public dynamic class fire_effect_air extends MovieClip {
}
}//package
Section 456
//fire_effect_flamethrower_air (fire_effect_flamethrower_air)
package {
import flash.display.*;
public dynamic class fire_effect_flamethrower_air extends MovieClip {
}
}//package
Section 457
//fireplosion (fireplosion)
package {
import flash.media.*;
public dynamic class fireplosion extends Sound {
}
}//package
Section 458
//gascan (gascan)
package {
import flash.display.*;
public dynamic class gascan extends MovieClip {
}
}//package
Section 459
//get_ready_fight (get_ready_fight)
package {
import flash.display.*;
public dynamic class get_ready_fight extends MovieClip {
}
}//package
Section 460
//getHealth_00 (getHealth_00)
package {
import flash.media.*;
public dynamic class getHealth_00 extends Sound {
}
}//package
Section 461
//gib_00 (gib_00)
package {
import flash.media.*;
public dynamic class gib_00 extends Sound {
}
}//package
Section 462
//gib_effect (gib_effect)
package {
import flash.display.*;
public dynamic class gib_effect extends MovieClip {
}
}//package
Section 463
//glass_1 (glass_1)
package {
import flash.media.*;
public dynamic class glass_1 extends Sound {
}
}//package
Section 464
//glass_2 (glass_2)
package {
import flash.media.*;
public dynamic class glass_2 extends Sound {
}
}//package
Section 465
//glass_shard_1 (glass_shard_1)
package {
import flash.display.*;
public dynamic class glass_shard_1 extends MovieClip {
}
}//package
Section 466
//grenade_marker (grenade_marker)
package {
import flash.display.*;
public dynamic class grenade_marker extends MovieClip {
public function grenade_marker(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package
Section 467
//grenade_safe (grenade_safe)
package {
import flash.media.*;
public dynamic class grenade_safe extends Sound {
}
}//package
Section 468
//groovy00 (groovy00)
package {
import flash.media.*;
public dynamic class groovy00 extends Sound {
}
}//package
Section 469
//gui_holder (gui_holder)
package {
import flash.display.*;
public dynamic class gui_holder extends MovieClip {
public var com_3:MovieClip;
public var com_1:MovieClip;
public var com_2:MovieClip;
public var com_5:MovieClip;
public var player_2:MovieClip;
public var player_1:MovieClip;
public var com_no_players:MovieClip;
public var com_0:MovieClip;
public var com_4:MovieClip;
public var com_6:MovieClip;
}
}//package
Section 470
//gun00 (gun00)
package {
import flash.media.*;
public dynamic class gun00 extends Sound {
}
}//package
Section 471
//gun01 (gun01)
package {
import flash.media.*;
public dynamic class gun01 extends Sound {
}
}//package
Section 472
//gun02 (gun02)
package {
import flash.media.*;
public dynamic class gun02 extends Sound {
}
}//package
Section 473
//gun03 (gun03)
package {
import flash.media.*;
public dynamic class gun03 extends Sound {
}
}//package
Section 474
//hanging_lamp (hanging_lamp)
package {
import flash.display.*;
public dynamic class hanging_lamp extends MovieClip {
}
}//package
Section 475
//heartbeat (heartbeat)
package {
import flash.media.*;
public dynamic class heartbeat extends Sound {
}
}//package
Section 476
//hit_metal_1_1 (hit_metal_1_1)
package {
import flash.display.*;
public dynamic class hit_metal_1_1 extends MovieClip {
}
}//package
Section 477
//hit_metal_1_2 (hit_metal_1_2)
package {
import flash.display.*;
public dynamic class hit_metal_1_2 extends MovieClip {
}
}//package
Section 478
//hit_metal_2_1 (hit_metal_2_1)
package {
import flash.display.*;
public dynamic class hit_metal_2_1 extends MovieClip {
}
}//package
Section 479
//hit_metal_2_2 (hit_metal_2_2)
package {
import flash.display.*;
public dynamic class hit_metal_2_2 extends MovieClip {
}
}//package
Section 480
//hit_metal_3_1 (hit_metal_3_1)
package {
import flash.display.*;
public dynamic class hit_metal_3_1 extends MovieClip {
}
}//package
Section 481
//hit_paper (hit_paper)
package {
import flash.display.*;
public dynamic class hit_paper extends MovieClip {
}
}//package
Section 482
//jump_00 (jump_00)
package {
import flash.media.*;
public dynamic class jump_00 extends Sound {
}
}//package
Section 483
//katana_01 (katana_01)
package {
import flash.media.*;
public dynamic class katana_01 extends Sound {
}
}//package
Section 484
//lamp_1 (lamp_1)
package {
import flash.display.*;
public dynamic class lamp_1 extends MovieClip {
}
}//package
Section 485
//lamp_1_b (lamp_1_b)
package {
import flash.display.*;
public dynamic class lamp_1_b extends MovieClip {
}
}//package
Section 486
//lazersight (lazersight)
package {
import flash.display.*;
public dynamic class lazersight extends MovieClip {
}
}//package
Section 487
//levels (levels)
package {
import flash.display.*;
public dynamic class levels extends MovieClip {
public var TARGET_2:MovieClip;
public var fan_1:MovieClip;
public var fan_2:MovieClip;
public var fan_4:MovieClip;
public var TARGET_4:MovieClip;
public var fan_3:MovieClip;
public var TARGET_1:MovieClip;
public var TARGET_5:MovieClip;
public var btn_left:button_01;
public var background_clouds:MovieClip;
public var TARGET_3:MovieClip;
public var REVIVE:MovieClip;
public var GRENADE_2:MovieClip;
public var btn_right:button_01;
public var pouring:MovieClip;
public var GRENADE_1:MovieClip;
public var INSTRUCTIONS:MovieClip;
public var CRATE:MovieClip;
}
}//package
Section 488
//levels_front (levels_front)
package {
import flash.display.*;
public dynamic class levels_front extends MovieClip {
}
}//package
Section 489
//lift_01 (lift_01)
package {
import flash.display.*;
public dynamic class lift_01 extends MovieClip {
}
}//package
Section 490
//lift_small_01 (lift_small_01)
package {
import flash.display.*;
public dynamic class lift_small_01 extends MovieClip {
}
}//package
Section 491
//magnum (magnum)
package {
import flash.media.*;
public dynamic class magnum extends Sound {
}
}//package
Section 492
//main_menu_overlay (main_menu_overlay)
package {
import flash.display.*;
public dynamic class main_menu_overlay extends MovieClip {
public var first_choise:MovieClip;
public var link_1:SimpleButton;
public var set_up_main:MovieClip;
public var link_3:SimpleButton;
public var link_4:SimpleButton;
public var link_2:SimpleButton;
public var confirm_delete:MovieClip;
public var map_selection:MovieClip;
public var no_bots:MovieClip;
public var set_up:MovieClip;
public var challenge_selection:MovieClip;
public var vs_2p_setup:MovieClip;
public var bot_6_setup:MovieClip;
public var vs_1p_setup:MovieClip;
public var bot_7_setup:MovieClip;
public var mode_selection:MovieClip;
}
}//package
Section 493
//muzzle_flash_bazooka (muzzle_flash_bazooka)
package {
import flash.display.*;
public dynamic class muzzle_flash_bazooka extends MovieClip {
}
}//package
Section 494
//muzzle_flash_pistol (muzzle_flash_pistol)
package {
import flash.display.*;
public dynamic class muzzle_flash_pistol extends MovieClip {
}
}//package
Section 495
//muzzle_flash_rifle (muzzle_flash_rifle)
package {
import flash.display.*;
public dynamic class muzzle_flash_rifle extends MovieClip {
}
}//package
Section 496
//muzzle_flash_shotgun (muzzle_flash_shotgun)
package {
import flash.display.*;
public dynamic class muzzle_flash_shotgun extends MovieClip {
}
}//package
Section 497
//muzzle_flash_sniper (muzzle_flash_sniper)
package {
import flash.display.*;
public dynamic class muzzle_flash_sniper extends MovieClip {
}
}//package
Section 498
//NewgroundsAPIAsset_big_popup_background (NewgroundsAPIAsset_big_popup_background)
package {
import flash.display.*;
public dynamic class NewgroundsAPIAsset_big_popup_background extends MovieClip {
public var tl:MovieClip;
public var br:MovieClip;
public var tr:MovieClip;
public var l:MovieClip;
public var shadow:MovieClip;
public var r:MovieClip;
public var b:MovieClip;
public var bl:MovieClip;
public var t:MovieClip;
public var c:MovieClip;
}
}//package
Section 499
//outofammo_heavy (outofammo_heavy)
package {
import flash.media.*;
public dynamic class outofammo_heavy extends Sound {
}
}//package
Section 500
//outofammo_light (outofammo_light)
package {
import flash.media.*;
public dynamic class outofammo_light extends Sound {
}
}//package
Section 501
//paper (paper)
package {
import flash.display.*;
public dynamic class paper extends MovieClip {
}
}//package
Section 502
//platform_motor (platform_motor)
package {
import flash.display.*;
public dynamic class platform_motor extends MovieClip {
}
}//package
Section 503
//player_agent (player_agent)
package {
import flash.display.*;
public dynamic class player_agent extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 504
//player_aim (player_aim)
package {
import flash.display.*;
public dynamic class player_aim extends MovieClip {
}
}//package
Section 505
//player_billy (player_billy)
package {
import flash.display.*;
public dynamic class player_billy extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 506
//player_blood (player_blood)
package {
import flash.display.*;
public dynamic class player_blood extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 507
//player_boris (player_boris)
package {
import flash.display.*;
public dynamic class player_boris extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 508
//player_burnt (player_burnt)
package {
import flash.display.*;
public dynamic class player_burnt extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 509
//player_funnyman (player_funnyman)
package {
import flash.display.*;
public dynamic class player_funnyman extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 510
//player_hitarea (player_hitarea)
package {
import flash.display.*;
public dynamic class player_hitarea extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 511
//player_jeff (player_jeff)
package {
import flash.display.*;
public dynamic class player_jeff extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 512
//player_johnny (player_johnny)
package {
import flash.display.*;
public dynamic class player_johnny extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 513
//player_mac (player_mac)
package {
import flash.display.*;
public dynamic class player_mac extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 514
//player_scott (player_scott)
package {
import flash.display.*;
public dynamic class player_scott extends MovieClip {
public var ANIM:MovieClip;
public var ANIM_WPN:MovieClip;
}
}//package
Section 515
//player_sign (player_sign)
package {
import flash.display.*;
public dynamic class player_sign extends MovieClip {
}
}//package
Section 516
//pool_table_01 (pool_table_01)
package {
import flash.display.*;
public dynamic class pool_table_01 extends MovieClip {
}
}//package
Section 517
//press_space (press_space)
package {
import flash.display.*;
public dynamic class press_space extends MovieClip {
}
}//package
Section 518
//punch00 (punch00)
package {
import flash.media.*;
public dynamic class punch00 extends Sound {
}
}//package
Section 519
//punch01 (punch01)
package {
import flash.media.*;
public dynamic class punch01 extends Sound {
}
}//package
Section 520
//punch02 (punch02)
package {
import flash.media.*;
public dynamic class punch02 extends Sound {
}
}//package
Section 521
//punch03 (punch03)
package {
import flash.media.*;
public dynamic class punch03 extends Sound {
}
}//package
Section 522
//ric00 (ric00)
package {
import flash.media.*;
public dynamic class ric00 extends Sound {
}
}//package
Section 523
//rifle_draw (rifle_draw)
package {
import flash.media.*;
public dynamic class rifle_draw extends Sound {
}
}//package
Section 524
//rifle00 (rifle00)
package {
import flash.media.*;
public dynamic class rifle00 extends Sound {
}
}//package
Section 525
//rifle01 (rifle01)
package {
import flash.media.*;
public dynamic class rifle01 extends Sound {
}
}//package
Section 526
//roll (roll)
package {
import flash.media.*;
public dynamic class roll extends Sound {
}
}//package
Section 527
//rolling_pipe (rolling_pipe)
package {
import flash.display.*;
public dynamic class rolling_pipe extends MovieClip {
}
}//package
Section 528
//rope_segment_01 (rope_segment_01)
package {
import flash.display.*;
public dynamic class rope_segment_01 extends MovieClip {
}
}//package
Section 529
//round_winner (round_winner)
package {
import flash.display.*;
public dynamic class round_winner extends MovieClip {
}
}//package
Section 530
//score_info (score_info)
package {
import flash.display.*;
import flash.text.*;
public dynamic class score_info extends MovieClip {
public var rounds:TextField;
public var game_mode:MovieClip;
}
}//package
Section 531
//score_team_plate (score_team_plate)
package {
import flash.display.*;
public dynamic class score_team_plate extends MovieClip {
public var pics:MovieClip;
public var score:MovieClip;
}
}//package
Section 532
//shellbounce00 (shellbounce00)
package {
import flash.media.*;
public dynamic class shellbounce00 extends Sound {
}
}//package
Section 533
//shellbounce01 (shellbounce01)
package {
import flash.media.*;
public dynamic class shellbounce01 extends Sound {
}
}//package
Section 534
//shotgun_aim (shotgun_aim)
package {
import flash.media.*;
public dynamic class shotgun_aim extends Sound {
}
}//package
Section 535
//shotgun_pump_p1 (shotgun_pump_p1)
package {
import flash.media.*;
public dynamic class shotgun_pump_p1 extends Sound {
}
}//package
Section 536
//shotgun_pump_p2 (shotgun_pump_p2)
package {
import flash.media.*;
public dynamic class shotgun_pump_p2 extends Sound {
}
}//package
Section 537
//shotgun00 (shotgun00)
package {
import flash.media.*;
public dynamic class shotgun00 extends Sound {
}
}//package
Section 538
//shotgun01 (shotgun01)
package {
import flash.media.*;
public dynamic class shotgun01 extends Sound {
}
}//package
Section 539
//shotgun02 (shotgun02)
package {
import flash.media.*;
public dynamic class shotgun02 extends Sound {
}
}//package
Section 540
//smoke_trace_01 (smoke_trace_01)
package {
import flash.display.*;
public dynamic class smoke_trace_01 extends MovieClip {
}
}//package
Section 541
//smoke_trace_light_01 (smoke_trace_light_01)
package {
import flash.display.*;
public dynamic class smoke_trace_light_01 extends MovieClip {
}
}//package
Section 542
//smoke_weapon_muzzle (smoke_weapon_muzzle)
package {
import flash.display.*;
public dynamic class smoke_weapon_muzzle extends MovieClip {
}
}//package
Section 543
//sniper00 (sniper00)
package {
import flash.media.*;
public dynamic class sniper00 extends Sound {
}
}//package
Section 544
//sniper01 (sniper01)
package {
import flash.media.*;
public dynamic class sniper01 extends Sound {
}
}//package
Section 545
//spark (spark)
package {
import flash.display.*;
public dynamic class spark extends MovieClip {
}
}//package
Section 546
//statue (statue)
package {
import flash.display.*;
public dynamic class statue extends MovieClip {
}
}//package
Section 547
//statue_globe (statue_globe)
package {
import flash.display.*;
public dynamic class statue_globe extends MovieClip {
}
}//package
Section 548
//superfighters_theme (superfighters_theme)
package {
import flash.media.*;
public dynamic class superfighters_theme extends Sound {
}
}//package
Section 549
//survival_score (survival_score)
package {
import flash.display.*;
import flash.text.*;
public dynamic class survival_score extends MovieClip {
public var pics:MovieClip;
public var players_txt:TextField;
public var personal_best:survival_timer;
public var current:survival_timer;
}
}//package
Section 550
//survival_timer (survival_timer)
package {
import flash.display.*;
import flash.text.*;
public dynamic class survival_timer extends MovieClip {
public var time_txt:TextField;
public var wave_txt:TextField;
}
}//package
Section 551
//svisch4 (svisch4)
package {
import flash.media.*;
public dynamic class svisch4 extends Sound {
}
}//package
Section 552
//svisch6 (svisch6)
package {
import flash.media.*;
public dynamic class svisch6 extends Sound {
}
}//package
Section 553
//table_01 (table_01)
package {
import flash.display.*;
public dynamic class table_01 extends MovieClip {
}
}//package
Section 554
//table_debris_01 (table_debris_01)
package {
import flash.display.*;
public dynamic class table_debris_01 extends MovieClip {
}
}//package
Section 555
//table_debris_02 (table_debris_02)
package {
import flash.display.*;
public dynamic class table_debris_02 extends MovieClip {
}
}//package
Section 556
//table_debris_03 (table_debris_03)
package {
import flash.display.*;
public dynamic class table_debris_03 extends MovieClip {
}
}//package
Section 557
//table_small_01 (table_small_01)
package {
import flash.display.*;
public dynamic class table_small_01 extends MovieClip {
}
}//package
Section 558
//tips (tips)
package {
import flash.display.*;
public dynamic class tips extends MovieClip {
}
}//package
Section 559
//trace_axe_01 (trace_axe_01)
package {
import flash.display.*;
public dynamic class trace_axe_01 extends MovieClip {
}
}//package
Section 560
//trace_axe_02 (trace_axe_02)
package {
import flash.display.*;
public dynamic class trace_axe_02 extends MovieClip {
}
}//package
Section 561
//trace_axe_03 (trace_axe_03)
package {
import flash.display.*;
public dynamic class trace_axe_03 extends MovieClip {
}
}//package
Section 562
//trace_bazooka_rocket (trace_bazooka_rocket)
package {
import flash.display.*;
public dynamic class trace_bazooka_rocket extends MovieClip {
}
}//package
Section 563
//trace_machete_01 (trace_machete_01)
package {
import flash.display.*;
public dynamic class trace_machete_01 extends MovieClip {
}
}//package
Section 564
//trace_machete_02 (trace_machete_02)
package {
import flash.display.*;
public dynamic class trace_machete_02 extends MovieClip {
}
}//package
Section 565
//trace_machete_03 (trace_machete_03)
package {
import flash.display.*;
public dynamic class trace_machete_03 extends MovieClip {
}
}//package
Section 566
//trace_sword_01 (trace_sword_01)
package {
import flash.display.*;
public dynamic class trace_sword_01 extends MovieClip {
}
}//package
Section 567
//trace_sword_02 (trace_sword_02)
package {
import flash.display.*;
public dynamic class trace_sword_02 extends MovieClip {
}
}//package
Section 568
//trace_sword_03 (trace_sword_03)
package {
import flash.display.*;
public dynamic class trace_sword_03 extends MovieClip {
}
}//package
Section 569
//trashcan (trashcan)
package {
import flash.display.*;
public dynamic class trashcan extends MovieClip {
}
}//package
Section 570
//tutorial_target (tutorial_target)
package {
import flash.display.*;
public dynamic class tutorial_target extends MovieClip {
}
}//package
Section 571
//tutorial_target_debris_01 (tutorial_target_debris_01)
package {
import flash.display.*;
public dynamic class tutorial_target_debris_01 extends MovieClip {
}
}//package
Section 572
//tutorial_target_debris_02 (tutorial_target_debris_02)
package {
import flash.display.*;
public dynamic class tutorial_target_debris_02 extends MovieClip {
}
}//package
Section 573
//tutorial_target_debris_03 (tutorial_target_debris_03)
package {
import flash.display.*;
public dynamic class tutorial_target_debris_03 extends MovieClip {
}
}//package
Section 574
//uzi00 (uzi00)
package {
import flash.media.*;
public dynamic class uzi00 extends Sound {
}
}//package
Section 575
//uzi01 (uzi01)
package {
import flash.media.*;
public dynamic class uzi01 extends Sound {
}
}//package
Section 576
//voltage_02 (voltage_02)
package {
import flash.media.*;
public dynamic class voltage_02 extends Sound {
}
}//package
Section 577
//wilhelm (wilhelm)
package {
import flash.media.*;
public dynamic class wilhelm extends Sound {
}
}//package
Section 578
//windmill_propeller (windmill_propeller)
package {
import flash.display.*;
public dynamic class windmill_propeller extends MovieClip {
}
}//package
Section 579
//window_seg (window_seg)
package {
import flash.display.*;
public dynamic class window_seg extends MovieClip {
}
}//package
Section 580
//wood_impact00 (wood_impact00)
package {
import flash.media.*;
public dynamic class wood_impact00 extends Sound {
}
}//package
Section 581
//wpn_axe (wpn_axe)
package {
import flash.display.*;
public dynamic class wpn_axe extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 582
//wpn_bazooka (wpn_bazooka)
package {
import flash.display.*;
public dynamic class wpn_bazooka extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 583
//wpn_flamethrower (wpn_flamethrower)
package {
import flash.display.*;
public dynamic class wpn_flamethrower extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 584
//wpn_grenade_thrown (wpn_grenade_thrown)
package {
import flash.display.*;
public dynamic class wpn_grenade_thrown extends MovieClip {
}
}//package
Section 585
//wpn_grenades (wpn_grenades)
package {
import flash.display.*;
public dynamic class wpn_grenades extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 586
//wpn_machete (wpn_machete)
package {
import flash.display.*;
public dynamic class wpn_machete extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 587
//wpn_magnum (wpn_magnum)
package {
import flash.display.*;
public dynamic class wpn_magnum extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 588
//wpn_medkit (wpn_medkit)
package {
import flash.display.*;
public dynamic class wpn_medkit extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 589
//wpn_molotov_thrown (wpn_molotov_thrown)
package {
import flash.display.*;
public dynamic class wpn_molotov_thrown extends MovieClip {
}
}//package
Section 590
//wpn_molotovs (wpn_molotovs)
package {
import flash.display.*;
public dynamic class wpn_molotovs extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 591
//wpn_pills (wpn_pills)
package {
import flash.display.*;
public dynamic class wpn_pills extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 592
//wpn_pistol (wpn_pistol)
package {
import flash.display.*;
public dynamic class wpn_pistol extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 593
//wpn_rifle (wpn_rifle)
package {
import flash.display.*;
public dynamic class wpn_rifle extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 594
//wpn_shotgun (wpn_shotgun)
package {
import flash.display.*;
public dynamic class wpn_shotgun extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 595
//wpn_slowmo_05 (wpn_slowmo_05)
package {
import flash.display.*;
public dynamic class wpn_slowmo_05 extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 596
//wpn_slowmo_10 (wpn_slowmo_10)
package {
import flash.display.*;
public dynamic class wpn_slowmo_10 extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 597
//wpn_sniper (wpn_sniper)
package {
import flash.display.*;
public dynamic class wpn_sniper extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 598
//wpn_sword (wpn_sword)
package {
import flash.display.*;
public dynamic class wpn_sword extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package
Section 599
//wpn_uzi (wpn_uzi)
package {
import flash.display.*;
public dynamic class wpn_uzi extends MovieClip {
public var indicator:MovieClip;
public var shine:MovieClip;
}
}//package