home *** CD-ROM | disk | FTP | other *** search
- function setVelocity(xdelta, ydelta)
- {
- vx = xdelta;
- vy = ydelta;
- }
- function step()
- {
- m_flightTime++;
- vy += _parent._parent.g_grav;
- _Y = _Y + vy;
- _X = _X + vx;
- radians = Math.atan(vy / vx);
- if(vx > 0)
- {
- _rotation = radians * 180 / 3.14159;
- }
- else
- {
- _rotation = radians * 180 / 3.14159 + 180;
- }
- if(vx < 0.00001 && vx > -0.00001)
- {
- _rotation = _rotation + 180;
- }
- if(boundaryTimer-- < 0)
- {
- boundaryTimer = 25;
- if(_X < xmin || _X > xmax || _Y > ymax)
- {
- this.unloadMovie();
- }
- }
- if(flameDebrisTimer-- < 0)
- {
- flameDebrisTimer = 0;
- var _loc3_ = _parent._parent.addObj("ice_spark",_parent._parent.debris_layer,_parent._parent.getNextDebrisLevel());
- _loc3_._x = _X;
- _loc3_._y = _Y;
- _loc3_._rotation = random(360);
- _loc3_._xscale = _loc3_._yscale = 30 + rank * 20;
- _loc3_.decayRate = 6;
- }
- testHitEnemies();
- }
- function testHitEnemies()
- {
- var _loc4_ = undefined;
- var _loc5_ = false;
- var _loc3_ = 0;
- while(_loc3_ < _parent._parent.enemies.length && !_loc5_)
- {
- _loc4_ = _parent._parent.enemies[_loc3_];
- if(_loc4_.hitBox.hitTest(_X,_Y,0))
- {
- _loc5_ = true;
- break;
- }
- _loc3_ = _loc3_ + 1;
- }
- if(_loc5_)
- {
- if(_loc4_.etype == "air_ship")
- {
- _parent._parent.woodExplosion(_X,_Y,Math.ceil(rank / 2));
- _loc4_.testHitTroops(this);
- }
- var _loc11_ = 0;
- var _loc8_ = 0;
- var _loc7_ = 0;
- var _loc13_ = true;
- var _loc9_ = "ching2";
- if(_loc4_.etype == "ice")
- {
- _loc8_ = 0;
- _loc11_ = 20;
- _loc7_ = 0;
- _loc9_ = "ching2.wav";
- _loc13_ = false;
- }
- else if(_loc4_.etype == "fire")
- {
- _loc8_ = rank * 4;
- _loc11_ = rank * 30;
- _loc7_ = getFlightBonus(20) + 10;
- _loc9_ = "shoot_rocket.wav";
- }
- else if(_loc4_.etype == "meteor")
- {
- _loc8_ = rank * 2;
- _loc11_ = rank * 10;
- _loc7_ = getFlightBonus(5) + 5;
- _loc9_ = "shoot_rocket.wav";
- }
- else
- {
- _loc8_ = rank * 4;
- _loc11_ = rank * 20;
- _loc7_ = getFlightBonus(10) + 5;
- _loc9_ = "ice_shatter.wav";
- _parent._parent.addSticky("sticky_ice",_loc4_,_X,_Y,20 + rank * 20);
- }
- _parent._parent.playSound(_loc9_);
- _loc4_.takeDamage(_loc8_,_X,_Y);
- var _loc10_ = _parent._parent.addObj("explosion_pow_ice",_parent._parent.debris_layer,_parent._parent.getNextDebrisLevel());
- _loc10_._x = _X;
- _loc10_._y = _Y;
- _loc10_._rotation = random(360);
- _loc10_._xscale = _loc10_._yscale = _loc11_;
- _parent._parent.updateRankIce(_loc7_);
- if(!_loc13_)
- {
- var _loc6_ = _parent._parent.addObj("deflect_ice",_parent._parent.debris_layer,_parent._parent.getNextDebrisLevel());
- _loc6_._x = _X;
- _loc6_._y = _Y;
- var _loc12_ = Math.sqrt(vx * vx + vy * vy) * 0.75;
- var _loc14_ = random(360);
- _loc6_.vx = Math.cos(0.017453292519943295 * _loc14_) * _loc12_;
- _loc6_.vy = Math.sin(0.017453292519943295 * _loc14_) * _loc12_;
- _loc6_._xscale = _loc6_._yscale = _xscale;
- _loc6_.rank = rank;
- }
- this.unloadMovie();
- }
- }
- function getFlightBonus(amt)
- {
- var _loc1_ = m_flightTime / 10;
- if(_loc1_ > 4)
- {
- _loc1_ = 4;
- }
- return Math.ceil(_loc1_ * amt);
- }
- xmax = _parent._parent.g_width + 10;
- ymax = _parent._parent.g_ground + 10;
- flameDebrisTimer = 0;
- _rotation = random(360);
- xmax = _parent._parent.g_width + 50;
- xmin = -50;
- ymin = -50;
- ymax = _parent._parent.g_ground + 50;
- boundaryTimer = 50;
- var m_flightTime = 0;
-