home *** CD-ROM | disk | FTP | other *** search
/ One Click 21 (Special) / OC021.iso / Juegos / miniscrapercaper / miniscrapercaper.swf / scripts / frame_3 / DoAction_6.as < prev    next >
Encoding:
Text File  |  2006-02-02  |  9.7 KB  |  341 lines

  1. function fPickText(what, where)
  2. {
  3.    var _loc2_ = where;
  4.    trace("fPickText " + what + " | " + _loc2_.x + "," + _loc2_.y);
  5.    var _loc1_ = levelMc.inTextOL.attachMovie("mcGameText","inGameText" + pTextCount,pTextCount,{display:what});
  6.    pTextCount++;
  7.    _loc1_._x = _loc2_.x;
  8.    _loc1_._y = _loc2_.y;
  9. }
  10. CPlayer = function()
  11. {
  12.    var _loc1_ = this;
  13.    _loc1_.isPlayer = true;
  14.    _loc1_.vMax = Math.vector(8,0);
  15.    _loc1_.f = Math.vector(0.86,0.99);
  16.    _loc1_.a = Math.vector(2.8,33);
  17.    _loc1_.gravity = 3;
  18.    _loc1_.shotV = 5;
  19.    _loc1_.keys = new Object();
  20.    _loc1_.keys.right = 39;
  21.    _loc1_.keys.left = 37;
  22.    _loc1_.keys.jump = 38;
  23.    _loc1_.keys.shoot = 32;
  24.    _loc1_.keys.duck = 40;
  25.    _loc1_.ducked = 0;
  26.    _loc1_.duckOffY = 19;
  27.    _loc1_.init();
  28. };
  29. CPlayer.prototype.init = function(mc)
  30. {
  31.    var _loc1_ = this;
  32.    _loc1_.mc = mc;
  33.    _loc1_.size = {x:_loc1_.mc._width,y:_loc1_.mc._height};
  34.    _loc1_.origin = MovieClip.getPos(_loc1_.mc);
  35.    _loc1_.reset();
  36. };
  37. CPlayer.prototype.reset = function()
  38. {
  39.    var _loc1_ = this;
  40.    _loc1_.pos = Math.vectorCopy(_loc1_.origin);
  41.    _loc1_.v = Math.vector(0,0);
  42.    _loc1_.mc._x = _loc1_.pos.x;
  43.    _loc1_.mc._y = _loc1_.pos.y;
  44.    _loc1_.shotReload = 0;
  45.    _loc1_.lookDir = 1;
  46.    _loc1_.keys.jumpTokens = 1;
  47.    _loc1_.keys.shootTokens = 1;
  48.    _loc1_.floor = {type:0,obj:0,moving:0};
  49.    _loc1_.unduck();
  50.    _loc1_.dead = 0;
  51.    _loc1_.eat = 0;
  52.    _loc1_.redraw();
  53.    _root.osd.update();
  54. };
  55. CPlayer.prototype.unduck = function()
  56. {
  57.    var _loc1_ = this;
  58.    if(_loc1_.ducked == 1)
  59.    {
  60.       _loc1_.ducked = 0;
  61.       _loc1_.size.y += _loc1_.duckOffY;
  62.       _loc1_.pos.y -= _loc1_.duckOffY;
  63.    }
  64. };
  65. CPlayer.prototype.sitandeat = function()
  66. {
  67.    trace("EATING");
  68.    this.eat = 1;
  69. };
  70. CPlayer.prototype.die = function()
  71. {
  72.    var _loc1_ = _root;
  73.    var _loc2_ = this;
  74.    _loc1_.snd.playEvent("sFall.wav",1);
  75.    _loc1_.actShots = _loc1_.totalShots;
  76.    _loc1_.actLifes = _loc1_.actLifes - 1;
  77.    _loc1_.osd.update();
  78.    if(_loc1_.actLifes == 0)
  79.    {
  80.       _loc1_.startPhase(_loc1_.stepGameOver);
  81.    }
  82.    _loc2_.dead = 1;
  83.    _loc2_.v.y = -15;
  84.    _loc2_.v.x = (Math.random() * 5 + 5) * (Math.random() <= 0.5 ? -1 : 1);
  85.    _loc2_.v.r = 0;
  86. };
  87. CPlayer.prototype.dieMover = function()
  88. {
  89.    var _loc1_ = this;
  90.    _loc1_.mc.gfx.gfx._rotation += _loc1_.v.r;
  91.    _loc1_.v.y += 3;
  92.    _loc1_.pos.x += _loc1_.v.x;
  93.    _loc1_.pos.y += _loc1_.v.y;
  94.    _loc1_.redraw();
  95.    if(_loc1_.pos.y > _loc1_.origin.y + 200)
  96.    {
  97.       _loc1_.reset();
  98.    }
  99. };
  100. CPlayer.prototype.move = function()
  101. {
  102.    var _loc1_ = this;
  103.    var _loc3_ = _root;
  104.    if(_loc1_.dead)
  105.    {
  106.       _loc1_.dieMover();
  107.    }
  108.    else
  109.    {
  110.       _loc1_.v.y = _loc1_.v.y * _loc1_.f.y + _loc1_.gravity;
  111.       _loc1_.showAnimWalking = _loc1_.showAnimWalking - 1;
  112.       if(_loc1_.floor.type == 1 && _loc1_.floor.obj.ice)
  113.       {
  114.          if(Key.isDown(_loc1_.keys.right))
  115.          {
  116.             _loc1_.v.x = Math.min(Math.max(_loc1_.vMax.x * -1,_loc1_.v.x) + _loc1_.a.x * 0.5,_loc1_.vMax.x);
  117.             _loc1_.lookDir = 1;
  118.             _loc1_.showAnimWalking = 1;
  119.          }
  120.          else if(Key.isDown(_loc1_.keys.left))
  121.          {
  122.             _loc1_.v.x = Math.min(Math.max(_loc1_.vMax.x * -1,_loc1_.v.x) - _loc1_.a.x * 0.5,_loc1_.vMax.x);
  123.             _loc1_.lookDir = -1;
  124.             _loc1_.showAnimWalking = 1;
  125.          }
  126.          else
  127.          {
  128.             _loc1_.v.x *= 0.9;
  129.             if(Math.abs(_loc1_.v.x) < 0.1)
  130.             {
  131.                _loc1_.v.x = 0;
  132.             }
  133.          }
  134.       }
  135.       else if(Key.isDown(_loc1_.keys.right))
  136.       {
  137.          _loc1_.v.x = Math.min(Math.max(0,_loc1_.v.x) + _loc1_.a.x,_loc1_.vMax.x);
  138.          _loc1_.lookDir = 1;
  139.          _loc1_.showAnimWalking = 1;
  140.       }
  141.       else if(Key.isDown(_loc1_.keys.left))
  142.       {
  143.          _loc1_.v.x = Math.max(Math.min(0,_loc1_.v.x) - _loc1_.a.x,_loc1_.vMax.x * -1);
  144.          _loc1_.lookDir = -1;
  145.          _loc1_.showAnimWalking = 1;
  146.       }
  147.       else
  148.       {
  149.          _loc1_.v.x *= 0.4;
  150.          if(Math.abs(_loc1_.v.x) < 1)
  151.          {
  152.             _loc1_.v.x = 0;
  153.          }
  154.       }
  155.       if(Key.isDown(_loc1_.keys.jump))
  156.       {
  157.          if(_loc1_.keys.jumpTokens > 0)
  158.          {
  159.             _loc1_.keys.jumpTokens = 0;
  160.             _loc1_.keys.jumpTrigger = 1;
  161.          }
  162.          else
  163.          {
  164.             _loc1_.keys.jumpTrigger = 0;
  165.          }
  166.       }
  167.       else
  168.       {
  169.          if(_loc1_.v.y < 0)
  170.          {
  171.             _loc1_.v.y *= 0.7;
  172.          }
  173.          _loc1_.keys.jumpTrigger = 0;
  174.          _loc1_.keys.jumpTokens = 1;
  175.       }
  176.       if(_loc1_.floor.moving != 0)
  177.       {
  178.          _loc1_.pos.x = _loc1_.floor.moving.x + _loc1_.floor.relPos.x;
  179.          _loc1_.pos.y = _loc1_.floor.moving.y + _loc1_.floor.relPos.y;
  180.       }
  181.       if(Key.isDown(_loc1_.keys.duck) && _loc1_.keys.jumpTrigger == 0)
  182.       {
  183.          if(_loc1_.ducked == 0)
  184.          {
  185.             _loc1_.pos.y += _loc1_.duckOffY;
  186.             _loc1_.size.y -= _loc1_.duckOffY;
  187.             _loc1_.ducked = 1;
  188.          }
  189.       }
  190.       else if(_loc1_.ducked == 1)
  191.       {
  192.          _loc1_.ducked = 0;
  193.          _loc1_.size.y += _loc1_.duckOffY;
  194.          _loc1_.pos.y -= _loc1_.duckOffY;
  195.       }
  196.       if(_loc1_.ducked && _loc1_.floor.type == 1)
  197.       {
  198.          _loc1_.v.x = 0;
  199.       }
  200.       _loc1_.pos.x = Math.max(_loc1_.pos.x,_loc3_.level.minX);
  201.       _loc1_.pos.x = Math.min(_loc1_.pos.x,_loc3_.level.maxX - _loc1_.size.x);
  202.       _loc1_.t = Math.vectorAdded(_loc1_.pos,_loc1_.v);
  203.       var _loc2_ = _loc3_.level.spriteCollision(_loc1_);
  204.       if(_loc2_.type > 0)
  205.       {
  206.          _loc1_.t.x = _loc1_.pos.x + _loc1_.v.x * _loc2_.scale;
  207.          _loc1_.t.y = _loc1_.pos.y + _loc1_.v.y * _loc2_.scale;
  208.          if(_loc2_.type != 1)
  209.          {
  210.             _loc1_.floor.type = 0;
  211.          }
  212.          var _loc0_ = null;
  213.          if((_loc0_ = _loc2_.type) !== 1)
  214.          {
  215.             _loc1_.floor.moving = 0;
  216.             _loc1_.floor.obj = 0;
  217.             trace("unknown collision type in CPlayer: " + _loc2_.type);
  218.          }
  219.          else
  220.          {
  221.             _loc2_.obj.onStep();
  222.             _loc1_.v.y = 0;
  223.             _loc1_.t.y = _loc2_.obj.y - _loc1_.size.y;
  224.             if(_loc1_.floor.type == 1)
  225.             {
  226.                _loc1_.t.x = _loc1_.pos.x + _loc1_.v.x;
  227.             }
  228.             if(_loc1_.keys.jumpTrigger)
  229.             {
  230.                _loc3_.snd.playEvent("sJump.wav",0.7);
  231.                _loc1_.v.y = -1 * _loc1_.a.y;
  232.                _loc1_.t.y + Math.max(0,_loc1_.floor.obj.v.y);
  233.                _loc1_.floor.type = 0;
  234.             }
  235.             if(_loc2_.obj.mover ne "")
  236.             {
  237.                _loc1_.floor.relPos = Math.vectorFromTo(_loc2_.obj,_loc1_.t);
  238.                _loc1_.floor.moving = _loc2_.obj;
  239.             }
  240.             _loc1_.floor.type = 1;
  241.             if(_loc1_.floor.obj != _loc2_.obj)
  242.             {
  243.                _loc1_.v.x += _loc1_.lookDir;
  244.             }
  245.             _loc1_.floor.obj = _loc2_.obj;
  246.          }
  247.       }
  248.       else
  249.       {
  250.          _loc1_.floor.moving = 0;
  251.          _loc1_.floor.obj = 0;
  252.          if(_loc1_.floor.type == 1)
  253.          {
  254.             _loc1_.v.y += 4;
  255.          }
  256.          _loc1_.floor.type = 0;
  257.       }
  258.       _loc1_.t.x = Math.max(_loc1_.t.x,_loc3_.level.minX);
  259.       _loc1_.t.x = Math.min(_loc1_.t.x,_loc3_.level.maxX - _loc1_.size.x);
  260.       _loc1_.boundingRectFrom = Math.vector(Math.min(_loc1_.pos.x,_loc1_.t.x),Math.min(_loc1_.pos.y,_loc1_.t.y));
  261.       _loc1_.boundingRectTo = Math.vector(Math.max(_loc1_.pos.x,_loc1_.t.x) + _loc1_.size.x,Math.max(_loc1_.pos.y,_loc1_.t.y) + _loc1_.size.y);
  262.       _loc3_.level.xtrasCollision(_loc1_.boundingRectFrom,_loc1_.boundingRectTo,_loc1_);
  263.       _loc3_.level.monstersCollision2(_loc1_.mc.gfx.hotspot,_loc1_);
  264.       _loc3_.level.shotsCollision(_loc1_.boundingRectFrom,_loc1_.boundingRectTo,_loc1_);
  265.       Math.vectorCopyTo(_loc1_.t,_loc1_.pos);
  266.       _loc1_.redraw();
  267.       _loc1_.shotReload = _loc1_.shotReload - 1;
  268.       if(Key.isDown(_loc1_.keys.shoot))
  269.       {
  270.          if(_loc1_.shotReload <= 0 && _loc1_.keys.shootTokens > 0)
  271.          {
  272.             if(_loc3_.actShots > 0)
  273.             {
  274.                _loc3_.actShots = _loc3_.actShots - 1;
  275.                _loc3_.osd.update();
  276.                var shotPos = Math.vector(_loc1_.pos.x + 0.5 * _loc1_.size.x + _loc1_.lookDir * 30,_loc1_.pos.y + 33);
  277.                new _loc3_.CShot(shotPos,Math.vector(10 * _loc1_.lookDir,0),"pl0Shot",true);
  278.                _loc1_.shotReload = 10;
  279.                _loc1_.mc.gfx.gfx.gun.gotoAndPlay("fire");
  280.             }
  281.             else
  282.             {
  283.                _loc3_.snd.playEvent("sNoburp.wav",1);
  284.             }
  285.             _loc1_.keys.shootTokens = 0;
  286.          }
  287.       }
  288.       else
  289.       {
  290.          _loc1_.keys.shootTokens = 1;
  291.       }
  292.    }
  293. };
  294. CPlayer.prototype.redraw = function()
  295. {
  296.    var _loc1_ = this;
  297.    _loc1_.mc._x = _loc1_.pos.x;
  298.    _loc1_.mc._y = _loc1_.pos.y;
  299.    _loc1_.mc.gfx._xscale = Math.abs(_loc1_.mc.gfx._xscale) * _loc1_.lookDir;
  300.    if(_loc1_.eat)
  301.    {
  302.       _loc1_.pos.x = 5000;
  303.       _loc1_.mc._x = _loc1_.pos.x;
  304.    }
  305.    else if(_loc1_.dead)
  306.    {
  307.       if(_loc1_.eat)
  308.       {
  309.          _loc1_.mc.gfx.gotoAndStop("eat");
  310.       }
  311.       else
  312.       {
  313.          _loc1_.mc.gfx.gotoAndStop("die");
  314.       }
  315.    }
  316.    else if(_loc1_.ducked)
  317.    {
  318.       _loc1_.mc.gfx.gotoAndStop("duck");
  319.    }
  320.    else if(_loc1_.floor.type == 1)
  321.    {
  322.       if(_loc1_.showAnimWalking > 0)
  323.       {
  324.          _loc1_.mc.gfx.gotoAndStop("walk");
  325.       }
  326.       else
  327.       {
  328.          _loc1_.mc.gfx.gotoAndStop("stay");
  329.       }
  330.    }
  331.    else if(_loc1_.v.y > 0)
  332.    {
  333.       _loc1_.mc.gfx.gotoAndStop("flyDown");
  334.    }
  335.    else
  336.    {
  337.       _loc1_.mc.gfx.gotoAndStop("flyUp");
  338.    }
  339. };
  340. pTextCount = 1;
  341.