home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Aventura / lightsprites.swf / scripts / __Packages / TargetObject.as < prev   
Encoding:
Text File  |  2007-09-27  |  16.1 KB  |  563 lines

  1. class TargetObject extends MovieClip
  2. {
  3.    var arrTargets;
  4.    var arrPeople;
  5.    var arrFinish;
  6.    var arrDeaths;
  7.    var blnMoving;
  8.    var blnGotOne;
  9.    var blnMissed;
  10.    var numTargets;
  11.    function TargetObject()
  12.    {
  13.       super();
  14.       this.arrTargets = new Array();
  15.       this.arrPeople = new Array("person1");
  16.       this.arrFinish = new Array();
  17.       this.arrDeaths = new Array();
  18.       this.blnMoving = false;
  19.    }
  20.    function CheckHits(orbName, orbType)
  21.    {
  22.       var multiHit = false;
  23.       var insideString = "inside";
  24.       var insideRef = eval("this." + insideString);
  25.       var returnValue = new HitData();
  26.       returnValue._hit = false;
  27.       returnValue._allCorrect = false;
  28.       var tempPoint = new Object();
  29.       tempPoint.x = _root[orbName]._x;
  30.       tempPoint.y = _root[orbName]._y;
  31.       if(this.blnMoving == false)
  32.       {
  33.          this.globalToLocal(tempPoint);
  34.       }
  35.       else
  36.       {
  37.          insideRef.globalToLocal(tempPoint);
  38.       }
  39.       var thisRef;
  40.       var i = 0;
  41.       while(i < this.arrTargets.length)
  42.       {
  43.          if(this.blnMoving == false)
  44.          {
  45.             thisRef = eval("this." + this.arrTargets[i].name);
  46.          }
  47.          else
  48.          {
  49.             thisRef = eval("this.inside." + this.arrTargets[i].name);
  50.          }
  51.          var distancex = tempPoint.x - thisRef._x;
  52.          var distancey = tempPoint.y - thisRef._y;
  53.          var distance = Math.sqrt(distancex * distancex + distancey * distancey);
  54.          if(distance <= _root[orbName]._width)
  55.          {
  56.             if(this.arrTargets[i].type == orbType || orbType == 7)
  57.             {
  58.                returnValue._hit = true;
  59.                returnValue._correctColor = true;
  60.                this.blnGotOne = true;
  61.                var myPerson = Math.round(Math.random() * (this.arrPeople.length - 1));
  62.                thisRef.gotoAndPlay(this.arrPeople[myPerson]);
  63.                var tempPoint2 = new Object();
  64.                tempPoint2.x = thisRef._x;
  65.                tempPoint2.y = thisRef._y;
  66.                if(this.blnMoving == false)
  67.                {
  68.                   this.localToGlobal(tempPoint2);
  69.                }
  70.                else
  71.                {
  72.                   insideRef.localToGlobal(tempPoint2);
  73.                }
  74.                returnValue._x = tempPoint2.x;
  75.                returnValue._y = tempPoint2.y;
  76.                if(orbType == 7)
  77.                {
  78.                   multiHit = true;
  79.                }
  80.             }
  81.             else
  82.             {
  83.                returnValue._hit = true;
  84.                returnValue._correctColor = false;
  85.                this.blnMissed = true;
  86.                var myDeath = Math.round(Math.random() * (this.arrDeaths.length - 1));
  87.                thisRef.gotoAndPlay(this.arrDeaths[myDeath]);
  88.                var tempPoint2 = new Object();
  89.                tempPoint2.x = thisRef._x;
  90.                tempPoint2.y = thisRef._y;
  91.                if(this.blnMoving == false)
  92.                {
  93.                   this.localToGlobal(tempPoint2);
  94.                }
  95.                else
  96.                {
  97.                   insideRef.localToGlobal(tempPoint2);
  98.                }
  99.                returnValue._x = tempPoint2.x;
  100.                returnValue._y = tempPoint2.y;
  101.             }
  102.             this.arrTargets.splice(i,1);
  103.             if(this.arrTargets.length == 0)
  104.             {
  105.                returnValue._filled = true;
  106.                if(this.blnMissed == false)
  107.                {
  108.                   returnValue._allCorrect = true;
  109.                   returnValue._numTargets = this.numTargets;
  110.                }
  111.                if(this.arrFinish.length != 0)
  112.                {
  113.                   var myFinish = Math.round(Math.random() * (this.arrFinish.length - 1));
  114.                   var finishRef = eval("_root." + this._name + "." + this.arrFinish[myFinish]);
  115.                   trace("Finish Anim 2: " + this.arrFinish.length + " - " + myFinish);
  116.                   finishRef.gotoAndPlay(1);
  117.                }
  118.             }
  119.             break;
  120.          }
  121.          i++;
  122.       }
  123.       if(multiHit == true)
  124.       {
  125.          if(this.arrTargets.length != 0)
  126.          {
  127.             returnValue._filled = true;
  128.             if(this.arrFinish.length != 0)
  129.             {
  130.                var myFinish = Math.round(Math.random() * (this.arrFinish.length - 1));
  131.                trace("Finish Anim 1: " + this.arrFinish.length + " - " + myFinish);
  132.                var finishRef = eval("_root." + this._name + "." + this.arrFinish[myFinish]);
  133.                finishRef.gotoAndPlay(1);
  134.             }
  135.             var i = 0;
  136.             while(i < this.arrTargets.length)
  137.             {
  138.                if(this.blnMoving == false)
  139.                {
  140.                   thisRef = eval("this." + this.arrTargets[i].name);
  141.                }
  142.                else
  143.                {
  144.                   thisRef = eval("this.inside." + this.arrTargets[i].name);
  145.                }
  146.                var myPerson = Math.round(Math.random() * (this.arrPeople.length - 1));
  147.                thisRef.gotoAndPlay(this.arrPeople[myPerson]);
  148.                i++;
  149.             }
  150.             if(this.blnMissed == false)
  151.             {
  152.                returnValue._allCorrect = true;
  153.                returnValue._numTargets = this.numTargets;
  154.             }
  155.          }
  156.          delete this.arrTargets;
  157.          this.arrTargets = new Array();
  158.       }
  159.       return returnValue;
  160.    }
  161.    function AdjustTargets()
  162.    {
  163.       this.blnMissed = false;
  164.       var queueRemoval = new Array();
  165.       var thisRef;
  166.       var tempPoint = new Object();
  167.       var layout = 1;
  168.       var randNum = 0;
  169.       var color1;
  170.       var color2;
  171.       switch(_global.difficulty)
  172.       {
  173.          case 2:
  174.             randNum = Math.round(Math.random() * 100);
  175.             if(randNum >= 0)
  176.             {
  177.                layout = 2;
  178.             }
  179.             break;
  180.          case 3:
  181.             randNum = Math.round(Math.random() * 100);
  182.             if(randNum >= 50)
  183.             {
  184.                layout = 2;
  185.             }
  186.             else
  187.             {
  188.                layout = 1;
  189.             }
  190.             break;
  191.          case 5:
  192.             randNum = Math.round(Math.random() * 100);
  193.             if(randNum >= 0)
  194.             {
  195.                layout = 3;
  196.             }
  197.             break;
  198.          case 6:
  199.             randNum = Math.round(Math.random() * 100);
  200.             if(randNum >= 50)
  201.             {
  202.                layout = 3;
  203.             }
  204.             else
  205.             {
  206.                layout = 1;
  207.             }
  208.             break;
  209.          case 7:
  210.             randNum = Math.round(Math.random() * 100);
  211.             if(randNum <= 33)
  212.             {
  213.                layout = 3;
  214.             }
  215.             else if(randNum >= 34 && randNum < 66)
  216.             {
  217.                layout = 2;
  218.             }
  219.             else if(randNum >= 66 && randNum < 101)
  220.             {
  221.                layout = 1;
  222.             }
  223.             break;
  224.          case 8:
  225.             randNum = Math.round(Math.random() * 100);
  226.             if(randNum >= 0)
  227.             {
  228.                layout = 4;
  229.             }
  230.             break;
  231.          case 9:
  232.             randNum = Math.round(Math.random() * 100);
  233.             if(randNum >= 50)
  234.             {
  235.                layout = 2;
  236.             }
  237.             else
  238.             {
  239.                layout = 4;
  240.             }
  241.             break;
  242.          case 10:
  243.             randNum = Math.round(Math.random() * 100);
  244.             if(randNum <= 25)
  245.             {
  246.                layout = 3;
  247.             }
  248.             else if(randNum >= 26 && randNum < 50)
  249.             {
  250.                layout = 2;
  251.             }
  252.             else if(randNum >= 50 && randNum < 75)
  253.             {
  254.                layout = 1;
  255.             }
  256.             else if(randNum >= 75 && randNum < 101)
  257.             {
  258.                layout = 4;
  259.             }
  260.             break;
  261.          case 11:
  262.             randNum = Math.round(Math.random() * 100);
  263.             if(randNum <= 25)
  264.             {
  265.                layout = 4;
  266.             }
  267.             else if(randNum >= 26 && randNum < 50)
  268.             {
  269.                layout = 2;
  270.             }
  271.             else if(randNum >= 50 && randNum < 75)
  272.             {
  273.                layout = 1;
  274.             }
  275.             else if(randNum >= 75 && randNum < 101)
  276.             {
  277.                layout = 8;
  278.                color1 = Math.round(Math.random() * 3) + 1;
  279.                color2 = Math.round(Math.random() * 3) + 1;
  280.             }
  281.             break;
  282.          case 13:
  283.             randNum = Math.round(Math.random() * 100);
  284.             if(randNum >= 0)
  285.             {
  286.                layout = 5;
  287.             }
  288.             break;
  289.          case 14:
  290.             randNum = Math.round(Math.random() * 100);
  291.             if(randNum >= 50)
  292.             {
  293.                layout = 3;
  294.             }
  295.             else
  296.             {
  297.                layout = 5;
  298.             }
  299.             break;
  300.          case 15:
  301.             randNum = Math.round(Math.random() * 100);
  302.             if(randNum < 20)
  303.             {
  304.                layout = 3;
  305.             }
  306.             else if(randNum >= 20 && randNum < 40)
  307.             {
  308.                layout = 2;
  309.             }
  310.             else if(randNum >= 40 && randNum < 60)
  311.             {
  312.                layout = 1;
  313.             }
  314.             else if(randNum >= 60 && randNum < 80)
  315.             {
  316.                layout = 4;
  317.             }
  318.             else if(randNum >= 80 && randNum < 101)
  319.             {
  320.                layout = 5;
  321.             }
  322.             break;
  323.          case 16:
  324.             randNum = Math.round(Math.random() * 100);
  325.             if(randNum <= 20)
  326.             {
  327.                layout = 4;
  328.             }
  329.             else if(randNum >= 21 && randNum < 40)
  330.             {
  331.                layout = 2;
  332.             }
  333.             else if(randNum >= 40 && randNum < 55)
  334.             {
  335.                layout = 1;
  336.             }
  337.             else if(randNum >= 55 && randNum < 75)
  338.             {
  339.                layout = 1;
  340.             }
  341.             else if(randNum >= 75 && randNum < 101)
  342.             {
  343.                layout = 8;
  344.                color1 = Math.round(Math.random() * 4) + 1;
  345.                color2 = Math.round(Math.random() * 4) + 1;
  346.             }
  347.             break;
  348.          case 17:
  349.             randNum = Math.round(Math.random() * 100);
  350.             if(randNum >= 0)
  351.             {
  352.                layout = 6;
  353.             }
  354.             break;
  355.          case 18:
  356.             randNum = Math.round(Math.random() * 100);
  357.             if(randNum >= 50)
  358.             {
  359.                layout = 6;
  360.             }
  361.             else
  362.             {
  363.                layout = 4;
  364.             }
  365.             break;
  366.          case 19:
  367.             randNum = Math.round(Math.random() * 120);
  368.             if(randNum < 20)
  369.             {
  370.                layout = 1;
  371.             }
  372.             else if(randNum >= 20 && randNum < 40)
  373.             {
  374.                layout = 2;
  375.             }
  376.             else if(randNum >= 40 && randNum < 60)
  377.             {
  378.                layout = 3;
  379.             }
  380.             else if(randNum >= 60 && randNum < 80)
  381.             {
  382.                layout = 4;
  383.             }
  384.             else if(randNum >= 80 && randNum < 100)
  385.             {
  386.                layout = 5;
  387.             }
  388.             else if(randNum >= 100 && randNum < 121)
  389.             {
  390.                layout = 6;
  391.             }
  392.             break;
  393.          case 20:
  394.             randNum = Math.round(Math.random() * 160);
  395.             if(randNum < 20)
  396.             {
  397.                layout = 1;
  398.             }
  399.             else if(randNum >= 20 && randNum < 40)
  400.             {
  401.                layout = 2;
  402.             }
  403.             else if(randNum >= 40 && randNum < 60)
  404.             {
  405.                layout = 3;
  406.             }
  407.             else if(randNum >= 60 && randNum < 80)
  408.             {
  409.                layout = 4;
  410.             }
  411.             else if(randNum >= 80 && randNum < 100)
  412.             {
  413.                layout = 5;
  414.             }
  415.             else if(randNum >= 100 && randNum < 120)
  416.             {
  417.                layout = 6;
  418.             }
  419.             else if(randNum >= 120 && randNum < 161)
  420.             {
  421.                layout = 8;
  422.                color1 = Math.round(Math.random() * 5) + 1;
  423.                color2 = Math.round(Math.random() * 5) + 1;
  424.             }
  425.             break;
  426.          case 21:
  427.             layout = 8;
  428.             color1 = Math.round(Math.random() * 5) + 1;
  429.             color2 = Math.round(Math.random() * 5) + 1;
  430.             break;
  431.          case 22:
  432.             layout = 9;
  433.             break;
  434.          case 23:
  435.             layout = 9;
  436.             break;
  437.          case 24:
  438.             layout = 9;
  439.       }
  440.       var i = 0;
  441.       while(i < this.arrTargets.length)
  442.       {
  443.          if(this.blnMoving == false)
  444.          {
  445.             thisRef = eval("this." + this.arrTargets[i].name);
  446.          }
  447.          else
  448.          {
  449.             thisRef = eval("this.inside." + this.arrTargets[i].name);
  450.          }
  451.          tempPoint.x = thisRef._x;
  452.          tempPoint.y = thisRef._y;
  453.          this.localToGlobal(tempPoint);
  454.          if(this.blnMoving == false)
  455.          {
  456.             if(tempPoint.x - thisRef._width / 2 < 0)
  457.             {
  458.                queueRemoval.push(this.arrTargets[i].name);
  459.             }
  460.             else if(tempPoint.x + thisRef._width / 2 > Stage.width)
  461.             {
  462.                queueRemoval.push(this.arrTargets[i].name);
  463.             }
  464.          }
  465.          switch(layout)
  466.          {
  467.             case 2:
  468.                thisRef.gotoAndStop("purple");
  469.                this.arrTargets[i].type = 2;
  470.                break;
  471.             case 3:
  472.                thisRef.gotoAndStop("blue");
  473.                this.arrTargets[i].type = 3;
  474.                break;
  475.             case 4:
  476.                thisRef.gotoAndStop("green");
  477.                this.arrTargets[i].type = 4;
  478.                break;
  479.             case 5:
  480.                thisRef.gotoAndStop("yellow");
  481.                this.arrTargets[i].type = 5;
  482.                break;
  483.             case 6:
  484.                thisRef.gotoAndStop("orange");
  485.                this.arrTargets[i].type = 6;
  486.                break;
  487.             case 8:
  488.                if(i == 1 || i == 3 || i == 5)
  489.                {
  490.                   thisRef.gotoAndStop(this.GetColor(color1));
  491.                   this.arrTargets[i].type = color1;
  492.                }
  493.                else
  494.                {
  495.                   thisRef.gotoAndStop(this.GetColor(color2));
  496.                   this.arrTargets[i].type = color2;
  497.                }
  498.                break;
  499.             case 9:
  500.                var myColor = Math.round(Math.random() * 5) + 1;
  501.                thisRef.gotoAndStop(this.GetColor(myColor));
  502.                this.arrTargets[i].type = myColor;
  503.          }
  504.          i++;
  505.       }
  506.       var i = 0;
  507.       while(i < queueRemoval.length)
  508.       {
  509.          this.RemoveTargets(queueRemoval[i]);
  510.          i++;
  511.       }
  512.       this.numTargets = this.arrTargets.length;
  513.       return this.arrTargets.length;
  514.    }
  515.    function GetColor(numType)
  516.    {
  517.       switch(numType)
  518.       {
  519.          case 1:
  520.             return "red";
  521.          case 2:
  522.             return "purple";
  523.          case 3:
  524.             return "blue";
  525.          case 4:
  526.             return "green";
  527.          case 5:
  528.             return "yellow";
  529.          case 6:
  530.             return "orange";
  531.          default:
  532.       }
  533.    }
  534.    function RemoveTargets(strName)
  535.    {
  536.       var thisRef;
  537.       var i = 0;
  538.       while(i < this.arrTargets.length)
  539.       {
  540.          if(strName == this.arrTargets[i].name)
  541.          {
  542.             if(this.blnMoving == false)
  543.             {
  544.                thisRef = eval("this." + this.arrTargets[i].name);
  545.             }
  546.             else
  547.             {
  548.                thisRef = eval("this.inside." + this.arrTargets[i].name);
  549.             }
  550.             thisRef.swapDepths(1);
  551.             thisRef.removeMovieClip();
  552.             this.arrTargets.splice(i,1);
  553.             break;
  554.          }
  555.          i++;
  556.       }
  557.    }
  558.    function GetTargetsLeft()
  559.    {
  560.       return this.arrTargets.length;
  561.    }
  562. }
  563.