home *** CD-ROM | disk | FTP | other *** search
- package asCode
- {
- import flash.display.*;
- import flash.events.*;
- import flash.filters.*;
- import flash.geom.*;
-
- public class playerBubbleCodeClass
- {
- private static var BUBBLE_TYPE_PLAYER:int = 0;
-
- private static var BUBBLE_TYPE_ACORN:int = 5;
-
- private static var BUBBLE_TYPE_HEALTH_POWERUP:int = 10;
-
- private static var BUBBLE_TYPE_INVINCIBLE:int = 15;
-
- private static var BUBBLE_TYPE_SHRINK:int = 20;
-
- private static var BUBBLE_TYPE_REVERSE:int = 25;
-
- private var _gameClassRef:gameClipClass;
-
- private var dropShadow:GlowFilter;
-
- private var filtersArray:Array;
-
- private var playerScale:Number;
-
- private var bubbleSize:Number;
-
- private var bubble:MovieClip;
-
- private var scaleFactor:Number;
-
- private var currentDistort:Number = 0;
-
- private var level:int;
-
- private var bubbleColour:Number;
-
- private var powerUpActive:int;
-
- private var drawNodes:Boolean;
-
- private var i:int;
-
- private var centerPoint:Point;
-
- private var _point:Point;
-
- private var _point2:Point;
-
- private var firstPoint:Boolean;
-
- private var bubbleShape:Shape;
-
- private var bubbleShape2:Shape;
-
- private var bubbleRadius:Number = 60;
-
- private var bubbleSteps:Number = 12;
-
- private var bubbleStepRotationNumber:Number;
-
- private var radians:Number;
-
- private var n:int;
-
- private var bubbleType:int;
-
- private var nodeArray:Array;
-
- private var _bubbleNodeRef:bubbleNode;
-
- private var _destination:Point;
-
- private var xVelocity:Number;
-
- private var yVelocity:Number;
-
- private var dx:Number;
-
- private var dy:Number;
-
- private var dist:Number;
-
- private var _pointb:Point;
-
- private var bRad:Number;
-
- private var bubbleCycle:Number = 0;
-
- private var bubbleCycleCount:Number = 0;
-
- public function playerBubbleCodeClass(param1:MovieClip, param2:Number, param3:int, param4:Boolean, param5:gameClipClass)
- {
- var _loc7_:Number = NaN;
- centerPoint = new Point(160,120);
- _point = new Point();
- _point2 = new Point();
- super();
- _gameClassRef = param5;
- bubbleType = param3;
- _pointb = new Point();
- _point = new Point();
- _point2 = new Point();
- bubbleRadius = param2;
- bubbleShape = new Shape();
- bubble = param1;
- bubbleShape2 = new Shape();
- bubble.addChild(bubbleShape);
- bubbleColour = _gameClassRef.playerBubbleRenderColour;
- dropShadow = new GlowFilter(bubbleColour,0.25,20,20,2,1,true,true);
- filtersArray = [dropShadow];
- bubbleStepRotationNumber = 360 / bubbleSteps;
- nodeArray = new Array();
- var _loc6_:int = 0;
- while(_loc6_ < bubbleSteps + 1)
- {
- _loc7_ = _loc6_ * bubbleStepRotationNumber;
- radians = _loc7_ / 180 * Math.PI;
- _point.x = Math.cos(radians) * bubbleRadius;
- _point.y = Math.sin(radians) * bubbleRadius;
- _bubbleNodeRef = new bubbleNode(_point);
- nodeArray[_loc6_] = _bubbleNodeRef;
- _loc6_++;
- }
- xVelocity = 0;
- yVelocity = 0;
- drawNodes = param4;
- _destination = new Point();
- bubbleCycle = Math.random() * 360;
- param1.bubbleSheen.width = param1.bubbleSheen.height = param2 * 0.7;
- }
-
- public function getBubbleRadius() : Number
- {
- return bubbleRadius;
- }
-
- public function getClip() : MovieClip
- {
- return bubble;
- }
-
- private function findDist(param1:Point, param2:Point) : Number
- {
- dx = param1.x - param2.x;
- dy = param1.y - param2.y;
- dist = Math.floor(Math.sqrt(dx * dx + dy * dy));
- return dist;
- }
-
- private function findAngle(param1:Point, param2:Point) : Number
- {
- dx = param1.x - param2.x;
- dy = param1.y - param2.y;
- radians = Math.atan2(dy,dx);
- return radians;
- }
-
- public function setLoc(param1:Point) : void
- {
- centerPoint.x = param1.x;
- centerPoint.y = param1.y;
- }
-
- public function getLoc() : Point
- {
- return centerPoint;
- }
-
- public function drawBubble(param1:Point) : *
- {
- var _loc10_:Number = NaN;
- var _loc11_:Number = NaN;
- var _loc12_:Number = NaN;
- var _loc13_:Number = NaN;
- var _loc14_:* = undefined;
- var _loc15_:* = undefined;
- level = _gameClassRef.level;
- playerScale = _gameClassRef.playerScale;
- bubbleCycleCount += 5;
- if(bubbleCycleCount > 360)
- {
- bubbleCycleCount -= 360;
- }
- bRad = bubbleCycleCount / 180 * Math.PI;
- _destination.x = param1.x;
- _destination.y = param1.y;
- var _loc2_:Number = findAngle(_destination,centerPoint);
- var _loc3_:Number = Math.cos(_loc2_) * bubbleRadius;
- var _loc4_:Number = Math.sin(_loc2_) * bubbleRadius;
- _point = new Point(param1.x,param1.y);
- dist = findDist(_point,centerPoint);
- dist *= 0.4 * (1 / playerScale);
- xVelocity = Math.cos(_loc2_) * dist;
- yVelocity = Math.sin(_loc2_) * dist;
- firstPoint = true;
- centerPoint.x += xVelocity;
- centerPoint.y += yVelocity;
- bubble.x = centerPoint.x + Math.cos(bRad) * 5;
- bubble.y = centerPoint.y + Math.sin(bRad) * 5;
- var _loc5_:Array = [];
- var _loc6_:Array = [];
- currentDistort += 0.05;
- var _loc7_:Number = currentDistort / bubbleSteps * 360;
- var _loc8_:Number = _loc7_ / 180 * Math.PI;
- var _loc9_:int = 0;
- while(_loc9_ < bubbleSteps)
- {
- _bubbleNodeRef = nodeArray[_loc9_];
- _point = _bubbleNodeRef.getLoc();
- _pointb = new Point(_destination.x - centerPoint.x,_destination.y - centerPoint.y);
- _loc10_ = findDist(_point,_pointb);
- _bubbleNodeRef = nodeArray[_loc9_ + 1];
- _point2 = _bubbleNodeRef.getLoc();
- _loc11_ = (_loc9_ + currentDistort) / (bubbleSteps * 2) * 360 / 180 * Math.PI;
- _loc12_ = Math.cos(_loc8_) * 3;
- _loc13_ = Math.sin(_loc8_) * 3;
- xVelocity = Math.cos(_loc2_) * _loc10_ + _loc12_;
- yVelocity = Math.sin(_loc2_) * _loc10_ + _loc13_;
- _point.x -= xVelocity - _loc3_;
- _point2.x -= xVelocity - _loc3_;
- _point.y -= yVelocity - _loc4_;
- _point2.y -= yVelocity - _loc4_;
- _loc14_ = (_point.x + _point2.x) / 2;
- _loc15_ = (_point.y + _point2.y) / 2;
- _loc5_.push(_point);
- _loc6_.push(new Point(_loc14_,_loc15_));
- _loc9_++;
- }
- bubbleShape.graphics.clear();
- bubbleShape.graphics.lineStyle(2,0,0.5);
- bubbleShape.graphics.beginFill(0,1);
- bubbleColour = _gameClassRef.playerBubbleRenderColour;
- powerUpActive = _gameClassRef.powerUpActive;
- if(powerUpActive == BUBBLE_TYPE_INVINCIBLE || powerUpActive == BUBBLE_TYPE_REVERSE || powerUpActive == BUBBLE_TYPE_SHRINK)
- {
- dropShadow = new GlowFilter(bubbleColour,0.5,30,30,2,1,true,true);
- }
- else
- {
- dropShadow = new GlowFilter(bubbleColour,0.5,20,20,2,1,true,true);
- }
- filtersArray = [dropShadow];
- bubbleShape.graphics.beginFill(0,1);
- _point = _loc6_[0];
- bubbleShape.graphics.moveTo(_point.x,_point.y);
- _loc9_ = 1;
- while(_loc9_ < bubbleSteps)
- {
- _point = _loc5_[_loc9_];
- _point2 = _loc6_[_loc9_];
- bubbleShape.graphics.curveTo(_point.x,_point.y,_point2.x,_point2.y);
- if(drawNodes)
- {
- drawNode(_point,_point2);
- }
- _loc9_++;
- }
- _point = _loc5_[0];
- _point2 = _loc6_[0];
- bubbleShape.graphics.curveTo(_point.x,_point.y,_point2.x,_point2.y);
- bubbleShape.graphics.endFill();
- if(drawNodes)
- {
- drawNode(_point,_point2);
- }
- bubbleShape.filters = filtersArray;
- }
-
- private function drawNode(param1:Point, param2:Point) : void
- {
- bubbleShape2.graphics.beginFill(16776960,0.5);
- bubbleShape2.graphics.drawCircle(param1.x,param1.y,5);
- bubbleShape2.graphics.beginFill(16711680,0.5);
- bubbleShape2.graphics.drawCircle(param2.x,param2.y,2);
- }
-
- public function get getBubbleType() : int
- {
- return bubbleType;
- }
- }
- }
-
-