home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Acao / bubble_tanks_2.swf / scripts / __Packages / UpgradeTree.as < prev    next >
Encoding:
Text File  |  2008-09-02  |  34.3 KB  |  523 lines

  1. class UpgradeTree
  2. {
  3.    var arrNodes;
  4.    var startNode;
  5.    var currentNode;
  6.    var arrPointReqs;
  7.    function UpgradeTree()
  8.    {
  9.       this.arrNodes = new Array(27);
  10.       var _loc2_ = 0;
  11.       while(_loc2_ < this.arrNodes.length)
  12.       {
  13.          this.arrNodes[_loc2_] = new MapNode();
  14.          this.arrNodes[_loc2_].SetLabel("State " + _loc2_);
  15.          _loc2_ = _loc2_ + 1;
  16.       }
  17.       this.startNode = this.arrNodes[1];
  18.       this.currentNode = this.arrNodes[1];
  19.       this.AttachNodes();
  20.       this.arrPointReqs = new Array();
  21.       this.arrPointReqs.push({min:0,max:75});
  22.       this.arrPointReqs.push({min:75,max:200});
  23.       this.arrPointReqs.push({min:200,max:400});
  24.       this.arrPointReqs.push({min:400,max:800});
  25.       this.arrPointReqs.push({min:800,max:1300});
  26.       this.arrPointReqs.push({min:1300,max:999999});
  27.       this.SetNodeStates();
  28.    }
  29.    function RemoveFirstNode()
  30.    {
  31.       this.arrNodes.shift();
  32.    }
  33.    function GetNodeWithID(intID)
  34.    {
  35.       var _loc3_ = undefined;
  36.       var _loc2_ = 0;
  37.       while(_loc2_ < this.arrNodes.length)
  38.       {
  39.          if(intID == this.arrNodes[_loc2_].nodeData._id)
  40.          {
  41.             _loc3_ = this.arrNodes[_loc2_];
  42.             break;
  43.          }
  44.          _loc2_ = _loc2_ + 1;
  45.       }
  46.       return _loc3_;
  47.    }
  48.    function SetNodeWithID(intID)
  49.    {
  50.       var _loc3_ = undefined;
  51.       var _loc2_ = 0;
  52.       while(_loc2_ < this.arrNodes.length)
  53.       {
  54.          if(intID == this.arrNodes[_loc2_].nodeData._id)
  55.          {
  56.             _loc3_ = this.arrNodes[_loc2_];
  57.             break;
  58.          }
  59.          _loc2_ = _loc2_ + 1;
  60.       }
  61.       this.currentNode = _loc3_;
  62.    }
  63.    function Upgrade(moveTo)
  64.    {
  65.       var _loc2_ = undefined;
  66.       this.currentNode.Reset();
  67.       if(moveTo == "second_mc")
  68.       {
  69.          this.currentNode.NextChild();
  70.       }
  71.       else if(moveTo == "third_mc")
  72.       {
  73.          this.currentNode.NextChild();
  74.          this.currentNode.NextChild();
  75.       }
  76.       _loc2_ = this.currentNode.GetChild();
  77.       _loc2_.SetParent(this.currentNode);
  78.       this.currentNode = _loc2_;
  79.    }
  80.    function UpgradeAlreadySelected()
  81.    {
  82.       var _loc2_ = undefined;
  83.       this.currentNode.Reset();
  84.       _loc2_ = this.currentNode.GetChild();
  85.       if(_loc2_.nodeData._selected == true)
  86.       {
  87.          this.currentNode = _loc2_;
  88.          return true;
  89.       }
  90.       while(this.currentNode.NextChild())
  91.       {
  92.          _loc2_ = this.currentNode.GetChild();
  93.          if(_loc2_.nodeData._selected == true)
  94.          {
  95.             this.currentNode = _loc2_;
  96.             return true;
  97.          }
  98.       }
  99.       return false;
  100.    }
  101.    function DownGrade(moveTo)
  102.    {
  103.       this.currentNode = this.currentNode.GetParent();
  104.    }
  105.    function AttachNodes()
  106.    {
  107.       this.arrNodes[1].PointToNode(this.arrNodes[2]);
  108.       this.arrNodes[1].PointToNode(this.arrNodes[3]);
  109.       this.arrNodes[1].PointToNode(this.arrNodes[4]);
  110.       this.arrNodes[2].PointToNode(this.arrNodes[5]);
  111.       this.arrNodes[2].PointToNode(this.arrNodes[6]);
  112.       this.arrNodes[3].PointToNode(this.arrNodes[6]);
  113.       this.arrNodes[3].PointToNode(this.arrNodes[7]);
  114.       this.arrNodes[4].PointToNode(this.arrNodes[7]);
  115.       this.arrNodes[4].PointToNode(this.arrNodes[8]);
  116.       this.arrNodes[5].PointToNode(this.arrNodes[9]);
  117.       this.arrNodes[5].PointToNode(this.arrNodes[10]);
  118.       this.arrNodes[5].PointToNode(this.arrNodes[11]);
  119.       this.arrNodes[6].PointToNode(this.arrNodes[10]);
  120.       this.arrNodes[6].PointToNode(this.arrNodes[11]);
  121.       this.arrNodes[6].PointToNode(this.arrNodes[12]);
  122.       this.arrNodes[7].PointToNode(this.arrNodes[11]);
  123.       this.arrNodes[7].PointToNode(this.arrNodes[12]);
  124.       this.arrNodes[7].PointToNode(this.arrNodes[13]);
  125.       this.arrNodes[8].PointToNode(this.arrNodes[12]);
  126.       this.arrNodes[8].PointToNode(this.arrNodes[13]);
  127.       this.arrNodes[8].PointToNode(this.arrNodes[14]);
  128.       this.arrNodes[9].PointToNode(this.arrNodes[15]);
  129.       this.arrNodes[9].PointToNode(this.arrNodes[16]);
  130.       this.arrNodes[10].PointToNode(this.arrNodes[15]);
  131.       this.arrNodes[10].PointToNode(this.arrNodes[16]);
  132.       this.arrNodes[10].PointToNode(this.arrNodes[17]);
  133.       this.arrNodes[11].PointToNode(this.arrNodes[16]);
  134.       this.arrNodes[11].PointToNode(this.arrNodes[17]);
  135.       this.arrNodes[11].PointToNode(this.arrNodes[18]);
  136.       this.arrNodes[12].PointToNode(this.arrNodes[17]);
  137.       this.arrNodes[12].PointToNode(this.arrNodes[18]);
  138.       this.arrNodes[12].PointToNode(this.arrNodes[19]);
  139.       this.arrNodes[13].PointToNode(this.arrNodes[18]);
  140.       this.arrNodes[13].PointToNode(this.arrNodes[19]);
  141.       this.arrNodes[13].PointToNode(this.arrNodes[20]);
  142.       this.arrNodes[14].PointToNode(this.arrNodes[19]);
  143.       this.arrNodes[14].PointToNode(this.arrNodes[20]);
  144.       this.arrNodes[15].PointToNode(this.arrNodes[21]);
  145.       this.arrNodes[15].PointToNode(this.arrNodes[22]);
  146.       this.arrNodes[16].PointToNode(this.arrNodes[21]);
  147.       this.arrNodes[16].PointToNode(this.arrNodes[22]);
  148.       this.arrNodes[16].PointToNode(this.arrNodes[23]);
  149.       this.arrNodes[17].PointToNode(this.arrNodes[22]);
  150.       this.arrNodes[17].PointToNode(this.arrNodes[23]);
  151.       this.arrNodes[17].PointToNode(this.arrNodes[24]);
  152.       this.arrNodes[18].PointToNode(this.arrNodes[23]);
  153.       this.arrNodes[18].PointToNode(this.arrNodes[24]);
  154.       this.arrNodes[18].PointToNode(this.arrNodes[25]);
  155.       this.arrNodes[19].PointToNode(this.arrNodes[24]);
  156.       this.arrNodes[19].PointToNode(this.arrNodes[25]);
  157.       this.arrNodes[19].PointToNode(this.arrNodes[26]);
  158.       this.arrNodes[20].PointToNode(this.arrNodes[25]);
  159.       this.arrNodes[20].PointToNode(this.arrNodes[26]);
  160.    }
  161.    function SetNodeStates()
  162.    {
  163.       this.arrNodes[1].nodeData._name = "Basic Tank";
  164.       this.arrNodes[1].nodeData._id = 1;
  165.       this.arrNodes[1].nodeData._arrPrimaryWeapons.push({type:1,name:"gun_1",delay:15});
  166.       this.arrNodes[1].nodeData._minPoints = this.arrPointReqs[0].min;
  167.       this.arrNodes[1].nodeData._maxPoints = this.arrPointReqs[0].max;
  168.       this.arrNodes[1].nodeData._description = "This is your starting tank.";
  169.       this.arrNodes[1].nodeData._primary = "Basic Cannon";
  170.       this.arrNodes[1].nodeData._secondary = "None";
  171.       this.arrNodes[1].nodeData._primaryDescription = "Fires single bubble rounds.";
  172.       this.arrNodes[1].nodeData._secondaryDescription = "-";
  173.       this.arrNodes[2].nodeData._name = "Fighter #1";
  174.       this.arrNodes[2].nodeData._id = 2;
  175.       this.arrNodes[2].nodeData._speed = 1.1;
  176.       this.arrNodes[2].nodeData._arrPrimaryWeapons.push({type:1,name:"gun_1",delay:4});
  177.       this.arrNodes[2].nodeData._minPoints = this.arrPointReqs[1].min;
  178.       this.arrNodes[2].nodeData._maxPoints = this.arrPointReqs[1].max;
  179.       this.arrNodes[2].nodeData._description = "A small, fast, and agile tank with fast fire rate.";
  180.       this.arrNodes[2].nodeData._primary = "Machine Gun";
  181.       this.arrNodes[2].nodeData._secondary = "None";
  182.       this.arrNodes[2].nodeData._primaryDescription = "Fires single bubble rounds in rapid succession.";
  183.       this.arrNodes[2].nodeData._secondaryDescription = "-";
  184.       this.arrNodes[3].nodeData._name = "Balanced #1";
  185.       this.arrNodes[3].nodeData._id = 3;
  186.       this.arrNodes[3].nodeData._arrPrimaryWeapons.push({type:2,name:"gun_1",delay:8});
  187.       this.arrNodes[3].nodeData._minPoints = this.arrPointReqs[1].min;
  188.       this.arrNodes[3].nodeData._maxPoints = this.arrPointReqs[1].max;
  189.       this.arrNodes[3].nodeData._description = "A balance between speed and strength.";
  190.       this.arrNodes[3].nodeData._primary = "2 Shot Parallel";
  191.       this.arrNodes[3].nodeData._secondary = "None";
  192.       this.arrNodes[3].nodeData._primaryDescription = "Fires 2 rounds in side by side fashion.";
  193.       this.arrNodes[3].nodeData._secondaryDescription = "-";
  194.       this.arrNodes[4].nodeData._name = "Heavy #1";
  195.       this.arrNodes[4].nodeData._id = 4;
  196.       this.arrNodes[4].nodeData._speed = 0.85;
  197.       this.arrNodes[4].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_1",delay:16});
  198.       this.arrNodes[4].nodeData._minPoints = this.arrPointReqs[1].min;
  199.       this.arrNodes[4].nodeData._maxPoints = this.arrPointReqs[1].max;
  200.       this.arrNodes[4].nodeData._description = "Slightly slower and less agile, but packs a bigger punch.";
  201.       this.arrNodes[4].nodeData._primary = "Heavy Cannon";
  202.       this.arrNodes[4].nodeData._secondary = "None";
  203.       this.arrNodes[4].nodeData._primaryDescription = "Fires a single, heavy bubble round that does substantial damage.";
  204.       this.arrNodes[4].nodeData._secondaryDescription = "-";
  205.       this.arrNodes[5].nodeData._name = "Fighter #2";
  206.       this.arrNodes[5].nodeData._id = 5;
  207.       this.arrNodes[5].nodeData._speed = 1.2;
  208.       this.arrNodes[5].nodeData._arrPrimaryWeapons.push({type:4,name:"gun_1",delay:6});
  209.       this.arrNodes[5].nodeData._arrSecondaryWeapons.push({type:8,name:"---",delay:60});
  210.       this.arrNodes[5].nodeData._minPoints = this.arrPointReqs[2].min;
  211.       this.arrNodes[5].nodeData._maxPoints = this.arrPointReqs[2].max;
  212.       this.arrNodes[5].nodeData._description = "An even better version of the fighter, speed and agility are its trademarks.";
  213.       this.arrNodes[5].nodeData._primary = "3 Bullet Spread";
  214.       this.arrNodes[5].nodeData._secondary = "Shield";
  215.       this.arrNodes[5].nodeData._primaryDescription = "Fires 3 bullets spread out.";
  216.       this.arrNodes[5].nodeData._secondaryDescription = "The shield can be summoned in rapid bursts to protect you from all incoming damage.";
  217.       this.arrNodes[6].nodeData._name = "Balanced Fighter #1";
  218.       this.arrNodes[6].nodeData._id = 6;
  219.       this.arrNodes[6].nodeData._arrPrimaryWeapons.push({type:5,name:"gun_1",delay:8});
  220.       this.arrNodes[6].nodeData._arrSecondaryWeapons.push({type:8,name:"---",delay:60});
  221.       this.arrNodes[6].nodeData._minPoints = this.arrPointReqs[2].min;
  222.       this.arrNodes[6].nodeData._maxPoints = this.arrPointReqs[2].max;
  223.       this.arrNodes[6].nodeData._description = "A balanced tank slightly in favor of speed and agility.";
  224.       this.arrNodes[6].nodeData._primary = "3 Shot Parallel";
  225.       this.arrNodes[6].nodeData._secondary = "Shield";
  226.       this.arrNodes[6].nodeData._primaryDescription = "Fires 3 bullets in side by side fashion.";
  227.       this.arrNodes[6].nodeData._secondaryDescription = "The shield can be summoned in rapid bursts to protect you from all incoming damage.";
  228.       this.arrNodes[7].nodeData._name = "Balanced Heavy #1";
  229.       this.arrNodes[7].nodeData._id = 7;
  230.       this.arrNodes[7].nodeData._speed = 0.9;
  231.       this.arrNodes[7].nodeData._arrPrimaryWeapons.push({type:5,name:"gun_1",delay:8});
  232.       this.arrNodes[7].nodeData._arrSecondaryWeapons.push({type:6,name:"gun_2",delay:40});
  233.       this.arrNodes[7].nodeData._minPoints = this.arrPointReqs[2].min;
  234.       this.arrNodes[7].nodeData._maxPoints = this.arrPointReqs[2].max;
  235.       this.arrNodes[7].nodeData._description = "A balanced tank slightly in favor of heavy weaponry, but lighter than the Heavy Tank.";
  236.       this.arrNodes[7].nodeData._primary = "3 Shot Parallel";
  237.       this.arrNodes[7].nodeData._secondary = "Mines";
  238.       this.arrNodes[7].nodeData._primaryDescription = "Fires 3 bullets in side by side fashion.";
  239.       this.arrNodes[7].nodeData._secondaryDescription = "Mines can be laid and will dish out heavy damage when an enemy wanders over them.";
  240.       this.arrNodes[8].nodeData._name = "Heavy #2";
  241.       this.arrNodes[8].nodeData._id = 8;
  242.       this.arrNodes[8].nodeData._speed = 0.7;
  243.       this.arrNodes[8].nodeData._arrPrimaryWeapons.push({type:7,name:"gun_1",delay:8});
  244.       this.arrNodes[8].nodeData._arrSecondaryWeapons.push({type:6,name:"gun_2",delay:40});
  245.       this.arrNodes[8].nodeData._minPoints = this.arrPointReqs[2].min;
  246.       this.arrNodes[8].nodeData._maxPoints = this.arrPointReqs[2].max;
  247.       this.arrNodes[8].nodeData._description = "A large and slow tank, but heavily armed.";
  248.       this.arrNodes[8].nodeData._primary = "5 Shot Parallel";
  249.       this.arrNodes[8].nodeData._secondary = "Mines";
  250.       this.arrNodes[8].nodeData._primaryDescription = "Fires 5 bullets in side by side fashion.";
  251.       this.arrNodes[8].nodeData._secondaryDescription = "Mines can be laid and will dish out heavy damage when an enemy wanders over them.";
  252.       this.arrNodes[9].nodeData._name = "Sniper #1";
  253.       this.arrNodes[9].nodeData._id = 9;
  254.       this.arrNodes[9].nodeData._speed = 1.2;
  255.       this.arrNodes[9].nodeData._arrPrimaryWeapons.push({type:9,name:"gun_1",delay:20});
  256.       this.arrNodes[9].nodeData._arrSecondaryWeapons.push({type:10,name:"---",delay:80});
  257.       this.arrNodes[9].nodeData._minPoints = this.arrPointReqs[3].min;
  258.       this.arrNodes[9].nodeData._maxPoints = this.arrPointReqs[3].max;
  259.       this.arrNodes[9].nodeData._description = "A nimble fighter that fires single, powerful rounds.";
  260.       this.arrNodes[9].nodeData._primary = "Pierce Shot";
  261.       this.arrNodes[9].nodeData._secondary = "Teleport";
  262.       this.arrNodes[9].nodeData._primaryDescription = "The pierce shot has a long recharge rate, but deals a lot of damage and can pass through multiple enemies.";
  263.       this.arrNodes[9].nodeData._secondaryDescription = "Pressing the secondary fire button will instantly transport you to wherever your mouse cursor is located.";
  264.       this.arrNodes[9].nodeData._locked = true;
  265.       this.arrNodes[10].nodeData._name = "Fighter #3";
  266.       this.arrNodes[10].nodeData._id = 10;
  267.       this.arrNodes[10].nodeData._speed = 1.2;
  268.       this.arrNodes[10].nodeData._arrPrimaryWeapons.push({type:11,name:"gun_1",delay:4});
  269.       this.arrNodes[10].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_2",delay:100});
  270.       this.arrNodes[10].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_3",delay:100});
  271.       this.arrNodes[10].nodeData._minPoints = this.arrPointReqs[3].min;
  272.       this.arrNodes[10].nodeData._maxPoints = this.arrPointReqs[3].max;
  273.       this.arrNodes[10].nodeData._description = "3rd generation fighter. Focus is on speed and agility.";
  274.       this.arrNodes[10].nodeData._primary = "Upgraded Machine Gun";
  275.       this.arrNodes[10].nodeData._secondary = "Seekers";
  276.       this.arrNodes[10].nodeData._primaryDescription = "The upgraded machine gun has a very fast fire rate with increased damage over the standard machine gun.";
  277.       this.arrNodes[10].nodeData._secondaryDescription = "Launch 2 bubble missiles that will seek out and follow your enemies.";
  278.       this.arrNodes[11].nodeData._name = "Bal. Fighter #2";
  279.       this.arrNodes[11].nodeData._id = 11;
  280.       this.arrNodes[11].nodeData._speed = 1;
  281.       this.arrNodes[11].nodeData._arrPrimaryWeapons.push({type:13,name:"gun_1",delay:9});
  282.       this.arrNodes[11].nodeData._arrSecondaryWeapons.push({type:14,name:"gun_2",delay:120});
  283.       this.arrNodes[11].nodeData._minPoints = this.arrPointReqs[3].min;
  284.       this.arrNodes[11].nodeData._maxPoints = this.arrPointReqs[3].max;
  285.       this.arrNodes[11].nodeData._description = "Balanced tank slightly in favor of speed and agility.";
  286.       this.arrNodes[11].nodeData._primary = "5 Bullet Spread";
  287.       this.arrNodes[11].nodeData._secondary = "Short Stun Burst";
  288.       this.arrNodes[11].nodeData._primaryDescription = "Fires 5 bullets spread out.";
  289.       this.arrNodes[11].nodeData._secondaryDescription = "A pulse is issued out from the tank that stuns surrounding enemies for a short period of time.";
  290.       this.arrNodes[12].nodeData._name = "Bal. Heavy #2";
  291.       this.arrNodes[12].nodeData._id = 12;
  292.       this.arrNodes[12].nodeData._speed = 0.95;
  293.       this.arrNodes[12].nodeData._arrPrimaryWeapons.push({type:13,name:"gun_1",delay:9});
  294.       this.arrNodes[12].nodeData._arrSecondaryWeapons.push({type:15,name:"gun_2",delay:100});
  295.       this.arrNodes[12].nodeData._minPoints = this.arrPointReqs[3].min;
  296.       this.arrNodes[12].nodeData._maxPoints = this.arrPointReqs[3].max;
  297.       this.arrNodes[12].nodeData._description = "A balanced tank slightly in favor of heavy weaponry, but lighter than the Heavy Tank.";
  298.       this.arrNodes[12].nodeData._primary = "5 Bullet Spread";
  299.       this.arrNodes[12].nodeData._secondary = "Area Burst";
  300.       this.arrNodes[12].nodeData._primaryDescription = "Fires 5 bullets spread out.";
  301.       this.arrNodes[12].nodeData._secondaryDescription = "A burst is emitted from the tank that damages all nearby enemies.";
  302.       this.arrNodes[13].nodeData._name = "Heavy #3";
  303.       this.arrNodes[13].nodeData._id = 13;
  304.       this.arrNodes[13].nodeData._speed = 0.4;
  305.       this.arrNodes[13].nodeData._turnMode = 2;
  306.       this.arrNodes[13].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_1",delay:16});
  307.       this.arrNodes[13].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_2",delay:16});
  308.       this.arrNodes[13].nodeData._arrSecondaryWeapons.push({type:16,name:"gun_3",delay:20});
  309.       this.arrNodes[13].nodeData._minPoints = this.arrPointReqs[3].min;
  310.       this.arrNodes[13].nodeData._maxPoints = this.arrPointReqs[3].max;
  311.       this.arrNodes[13].nodeData._description = "Large and slow tank that boasts heavy weaponry and brute force.";
  312.       this.arrNodes[13].nodeData._primary = "2 Large Cannons";
  313.       this.arrNodes[13].nodeData._secondary = "Sticky Cannon";
  314.       this.arrNodes[13].nodeData._primaryDescription = "Fires 2 large bullets simultaneously.";
  315.       this.arrNodes[13].nodeData._secondaryDescription = "Secondary fire button launches sticky bullets that render the target immobile.";
  316.       this.arrNodes[14].nodeData._name = "BFT #1";
  317.       this.arrNodes[14].nodeData._id = 14;
  318.       this.arrNodes[14].nodeData._speed = 0.35;
  319.       this.arrNodes[14].nodeData._turnMode = 2;
  320.       this.arrNodes[14].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_1",delay:13});
  321.       this.arrNodes[14].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_2",delay:13,target:""});
  322.       this.arrNodes[14].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_3",delay:13,target:""});
  323.       this.arrNodes[14].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_4",delay:100});
  324.       this.arrNodes[14].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_5",delay:100});
  325.       this.arrNodes[14].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_6",delay:100});
  326.       this.arrNodes[14].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_7",delay:100});
  327.       this.arrNodes[14].nodeData._hasAutoGuns = true;
  328.       this.arrNodes[14].nodeData._minPoints = this.arrPointReqs[3].min;
  329.       this.arrNodes[14].nodeData._maxPoints = this.arrPointReqs[3].max;
  330.       this.arrNodes[14].nodeData._description = "Very large and slow tank that seeks enemies to destroy.";
  331.       this.arrNodes[14].nodeData._primary = "1 B. Shot, 2 Sm. Auto";
  332.       this.arrNodes[14].nodeData._secondary = "Seekers";
  333.       this.arrNodes[14].nodeData._primaryDescription = "You have control of a large cannon while 2 smaller cannons will seek out enemy targets and fire automatically.";
  334.       this.arrNodes[14].nodeData._secondaryDescription = "Pressing the secondary fire button will launch 4 seeking bubble missiles at the nearest enemy.";
  335.       this.arrNodes[14].nodeData._locked = true;
  336.       this.arrNodes[15].nodeData._name = "Sniper #2";
  337.       this.arrNodes[15].nodeData._id = 15;
  338.       this.arrNodes[15].nodeData._speed = 1.35;
  339.       this.arrNodes[15].nodeData._arrPrimaryWeapons.push({type:18,name:"gun_1",delay:25});
  340.       this.arrNodes[15].nodeData._arrSecondaryWeapons.push({type:10,name:"---",delay:15});
  341.       this.arrNodes[15].nodeData._minPoints = this.arrPointReqs[4].min;
  342.       this.arrNodes[15].nodeData._maxPoints = this.arrPointReqs[4].max;
  343.       this.arrNodes[15].nodeData._description = "A nimble fighter that fires single, powerful rounds.";
  344.       this.arrNodes[15].nodeData._primary = "Strong Pierce";
  345.       this.arrNodes[15].nodeData._secondary = "Upgraded Teleport";
  346.       this.arrNodes[15].nodeData._primaryDescription = "The pierce shot has a long recharge rate, but deals a lot of damage and can pass through multiple enemies.";
  347.       this.arrNodes[15].nodeData._secondaryDescription = "Pressing the secondary fire button will instantly transport you to wherever your mouse cursor is located.";
  348.       this.arrNodes[15].nodeData._locked = true;
  349.       this.arrNodes[16].nodeData._name = "Fighter #4";
  350.       this.arrNodes[16].nodeData._id = 16;
  351.       this.arrNodes[16].nodeData._speed = 1.3;
  352.       this.arrNodes[16].nodeData._arrPrimaryWeapons.push({type:2,name:"gun_1",delay:3});
  353.       this.arrNodes[16].nodeData._arrSecondaryWeapons.push({type:19,name:"gun_2",delay:150});
  354.       this.arrNodes[16].nodeData._minPoints = this.arrPointReqs[4].min;
  355.       this.arrNodes[16].nodeData._maxPoints = this.arrPointReqs[4].max;
  356.       this.arrNodes[16].nodeData._description = "A small and agile tank that can dish out rapid fire.";
  357.       this.arrNodes[16].nodeData._primary = "2 Shot MG";
  358.       this.arrNodes[16].nodeData._secondary = "Star Burst Cannon";
  359.       this.arrNodes[16].nodeData._primaryDescription = "2 small bullets are fired side by side in rapid succession.";
  360.       this.arrNodes[16].nodeData._secondaryDescription = "The Star Burst Cannon fires a bullet that explodes after a short timer, emitting 360 degrees of pierce shots.";
  361.       this.arrNodes[17].nodeData._name = "Bal. Fighter #3";
  362.       this.arrNodes[17].nodeData._id = 17;
  363.       this.arrNodes[17].nodeData._speed = 1;
  364.       this.arrNodes[17].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_1",delay:11});
  365.       this.arrNodes[17].nodeData._arrPrimaryWeapons.push({type:1,name:"gun_2",delay:11});
  366.       this.arrNodes[17].nodeData._arrPrimaryWeapons.push({type:1,name:"gun_3",delay:11});
  367.       this.arrNodes[17].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_4",delay:100});
  368.       this.arrNodes[17].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_5",delay:100});
  369.       this.arrNodes[17].nodeData._arrSecondaryWeapons.push({type:12,name:"gun_6",delay:100});
  370.       this.arrNodes[17].nodeData._minPoints = this.arrPointReqs[4].min;
  371.       this.arrNodes[17].nodeData._maxPoints = this.arrPointReqs[4].max;
  372.       this.arrNodes[17].nodeData._description = "A medium sized tank that\'s fast yet powerful.";
  373.       this.arrNodes[17].nodeData._primary = "2 Sm., 1 B. Gun";
  374.       this.arrNodes[17].nodeData._secondary = "Seekers";
  375.       this.arrNodes[17].nodeData._primaryDescription = "Fire 2 small guns and 1 large cannon simultaneously.";
  376.       this.arrNodes[17].nodeData._secondaryDescription = "Launch 3 bubble missiles that will seek out and follow your enemies.";
  377.       this.arrNodes[18].nodeData._name = "Bal. Heavy #3";
  378.       this.arrNodes[18].nodeData._id = 18;
  379.       this.arrNodes[18].nodeData._speed = 0.85;
  380.       this.arrNodes[18].nodeData._arrPrimaryWeapons.push({type:20,name:"gun_1",delay:6});
  381.       this.arrNodes[18].nodeData._arrSecondaryWeapons.push({type:21,name:"gun_2",delay:100});
  382.       this.arrNodes[18].nodeData._minPoints = this.arrPointReqs[4].min;
  383.       this.arrNodes[18].nodeData._maxPoints = this.arrPointReqs[4].max;
  384.       this.arrNodes[18].nodeData._description = "A balanced tank slightly in favor of heavy weaponry, but faster than the Heavy Tank.";
  385.       this.arrNodes[18].nodeData._primary = "2 Large Shell MG";
  386.       this.arrNodes[18].nodeData._secondary = "Area Burst Cannon";
  387.       this.arrNodes[18].nodeData._primaryDescription = "Fires 2 large cannons in side by side fashion at a rapid speed.";
  388.       this.arrNodes[18].nodeData._secondaryDescription = "A large shell is fired that eplodes upon contact with the enemy, damaging others nearby.";
  389.       this.arrNodes[19].nodeData._name = "Heavy #4";
  390.       this.arrNodes[19].nodeData._id = 19;
  391.       this.arrNodes[19].nodeData._speed = 0.4;
  392.       this.arrNodes[19].nodeData._turnMode = 2;
  393.       this.arrNodes[19].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_1",delay:16});
  394.       this.arrNodes[19].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_2",delay:16});
  395.       this.arrNodes[19].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_3",delay:10,target:""});
  396.       this.arrNodes[19].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_4",delay:10,target:""});
  397.       this.arrNodes[19].nodeData._arrSecondaryWeapons.push({type:22,name:"gun_5",delay:100});
  398.       this.arrNodes[19].nodeData._hasAutoGuns = true;
  399.       this.arrNodes[19].nodeData._minPoints = this.arrPointReqs[4].min;
  400.       this.arrNodes[19].nodeData._maxPoints = this.arrPointReqs[4].max;
  401.       this.arrNodes[19].nodeData._description = "Large and slow tank that boasts heavy weaponry and brute force.";
  402.       this.arrNodes[19].nodeData._primary = "2 B. Shot, 2 Sm. Auto";
  403.       this.arrNodes[19].nodeData._secondary = "Sticky Burst";
  404.       this.arrNodes[19].nodeData._primaryDescription = "You have control of 2 large cannons while 2 smaller cannons will seek out enemy targets and fire automatically.";
  405.       this.arrNodes[19].nodeData._secondaryDescription = "Many sticky bullets are launched from the tank in all directions making enemies immobile.";
  406.       this.arrNodes[20].nodeData._name = "BFT #2";
  407.       this.arrNodes[20].nodeData._id = 20;
  408.       this.arrNodes[20].nodeData._speed = 0.35;
  409.       this.arrNodes[20].nodeData._turnMode = 2;
  410.       this.arrNodes[20].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_1",delay:16});
  411.       this.arrNodes[20].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_2",delay:16});
  412.       this.arrNodes[20].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_3",delay:15,target:""});
  413.       this.arrNodes[20].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_4",delay:15,target:""});
  414.       this.arrNodes[20].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_5",delay:15,target:""});
  415.       this.arrNodes[20].nodeData._arrSecondaryWeapons.push({type:23,name:"gun_6",delay:125});
  416.       this.arrNodes[20].nodeData._hasAutoGuns = true;
  417.       this.arrNodes[20].nodeData._minPoints = this.arrPointReqs[4].min;
  418.       this.arrNodes[20].nodeData._maxPoints = this.arrPointReqs[4].max;
  419.       this.arrNodes[20].nodeData._description = "Very large and slow tank that stuns and kills.";
  420.       this.arrNodes[20].nodeData._primary = "2 B. Shot, 3 Sm. Auto";
  421.       this.arrNodes[20].nodeData._secondary = "Large Stun Burst";
  422.       this.arrNodes[20].nodeData._primaryDescription = "You have control 2 large cannons while 3 smaller cannons will seek out enemy targets and fire automatically.";
  423.       this.arrNodes[20].nodeData._secondaryDescription = "A large pulse is issued out from the tank that stuns surrounding enemies for a short period of time.";
  424.       this.arrNodes[20].nodeData._locked = true;
  425.       this.arrNodes[21].nodeData._name = "Ghost Sniper";
  426.       this.arrNodes[21].nodeData._id = 21;
  427.       this.arrNodes[21].nodeData._speed = 1.4;
  428.       this.arrNodes[21].nodeData._arrPrimaryWeapons.push({type:25,name:"gun_1",delay:35});
  429.       this.arrNodes[21].nodeData._arrSecondaryWeapons.push({type:24,name:"---",delay:1});
  430.       this.arrNodes[21].nodeData._minPoints = this.arrPointReqs[5].min;
  431.       this.arrNodes[21].nodeData._maxPoints = this.arrPointReqs[5].max;
  432.       this.arrNodes[21].nodeData._description = "Very fast and agile tank that can come apart and reform at will.";
  433.       this.arrNodes[21].nodeData._primary = "Explosive Pierce Shot";
  434.       this.arrNodes[21].nodeData._secondary = "Disassemble";
  435.       this.arrNodes[21].nodeData._primaryDescription = "Long recharge rate, but deals a lot of damage, explodes on impact, and can pass through multiple enemies.";
  436.       this.arrNodes[21].nodeData._secondaryDescription = "Hold secondary fire to cause the tank to break apart, making it invincible but incapable of firing. Release to reform.";
  437.       this.arrNodes[21].nodeData._locked = true;
  438.       this.arrNodes[22].nodeData._name = "Super Fighter";
  439.       this.arrNodes[22].nodeData._id = 22;
  440.       this.arrNodes[22].nodeData._speed = 1.35;
  441.       this.arrNodes[22].nodeData._arrPrimaryWeapons.push({type:5,name:"gun_1",delay:4});
  442.       this.arrNodes[22].nodeData._arrSecondaryWeapons.push({type:26,name:"gun_2",delay:12});
  443.       this.arrNodes[22].nodeData._minPoints = this.arrPointReqs[5].min;
  444.       this.arrNodes[22].nodeData._maxPoints = this.arrPointReqs[5].max;
  445.       this.arrNodes[22].nodeData._description = "A small and agile tank that can dish out rapid fire and seekers.";
  446.       this.arrNodes[22].nodeData._primary = "3 Shot MG";
  447.       this.arrNodes[22].nodeData._secondary = "Orbital Seekers";
  448.       this.arrNodes[22].nodeData._primaryDescription = "Fires 3 shots side by side in rapid succession.";
  449.       this.arrNodes[22].nodeData._secondaryDescription = "Drones will automatically spawn and surround you. They will leave you and damage enemies that get too close.";
  450.       this.arrNodes[23].nodeData._name = "Leecher Tank";
  451.       this.arrNodes[23].nodeData._id = 23;
  452.       this.arrNodes[23].nodeData._speed = 1.1;
  453.       this.arrNodes[23].nodeData._arrPrimaryWeapons.push({type:29,name:"gun_1",delay:10});
  454.       this.arrNodes[23].nodeData._arrSecondaryWeapons.push({type:30,name:"gun_2",delay:200});
  455.       this.arrNodes[23].nodeData._minPoints = this.arrPointReqs[5].min;
  456.       this.arrNodes[23].nodeData._maxPoints = this.arrPointReqs[5].max;
  457.       this.arrNodes[23].nodeData._description = "This tank sucks life from enemies and can infect them with virus bubbles.";
  458.       this.arrNodes[23].nodeData._primary = "Leeching Bullets";
  459.       this.arrNodes[23].nodeData._secondary = "Doomsday Infect";
  460.       this.arrNodes[23].nodeData._primaryDescription = "Whenever these bullets hit, they send the life taken from the enemy back to you.";
  461.       this.arrNodes[23].nodeData._secondaryDescription = "Pressing the secondary fire button will launch a virus drone.  It will attack, infect, then explode the enemy to spawn.";
  462.       this.arrNodes[24].nodeData._name = "Drone Tank";
  463.       this.arrNodes[24].nodeData._id = 24;
  464.       this.arrNodes[24].nodeData._speed = 0.9;
  465.       this.arrNodes[24].nodeData._arrPrimaryWeapons.push({type:31,name:"gun_1",delay:80});
  466.       this.arrNodes[24].nodeData._arrSecondaryWeapons.push({type:32,name:"gun_2",delay:100});
  467.       this.arrNodes[24].nodeData._minPoints = this.arrPointReqs[5].min;
  468.       this.arrNodes[24].nodeData._maxPoints = this.arrPointReqs[5].max;
  469.       this.arrNodes[24].nodeData._description = "This tanks is the master of seeker drones.";
  470.       this.arrNodes[24].nodeData._primary = "Mitosis Seekers";
  471.       this.arrNodes[24].nodeData._secondary = "Drone Conversion";
  472.       this.arrNodes[24].nodeData._primaryDescription = "Mitosis seekers split to form many more seeker drones.";
  473.       this.arrNodes[24].nodeData._secondaryDescription = "A pulse is emitted from your tank that converts all enemy drones into seekers that turn on your enemies";
  474.       this.arrNodes[25].nodeData._name = "Super Heavy";
  475.       this.arrNodes[25].nodeData._id = 25;
  476.       this.arrNodes[25].nodeData._speed = 0.3;
  477.       this.arrNodes[25].nodeData._turnMode = 2;
  478.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_7",delay:16});
  479.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_8",delay:16});
  480.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:28,name:"gun_9",delay:16});
  481.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_1",delay:10,target:""});
  482.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_2",delay:10,target:""});
  483.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_3",delay:10,target:""});
  484.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_4",delay:10,target:""});
  485.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_5",delay:10,target:""});
  486.       this.arrNodes[25].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_6",delay:10,target:""});
  487.       this.arrNodes[25].nodeData._arrSecondaryWeapons.push({type:27,name:"gun_10",delay:100});
  488.       this.arrNodes[25].nodeData._hasAutoGuns = true;
  489.       this.arrNodes[25].nodeData._minPoints = this.arrPointReqs[5].min;
  490.       this.arrNodes[25].nodeData._maxPoints = this.arrPointReqs[5].max;
  491.       this.arrNodes[25].nodeData._description = "A massive behemoth of a bubble tank.";
  492.       this.arrNodes[25].nodeData._primary = "2 B. S, 6 Sm. A, 1 BB";
  493.       this.arrNodes[25].nodeData._secondary = "Massive Cannon";
  494.       this.arrNodes[25].nodeData._primaryDescription = "6 small cannons fire automatically while you control the 2 large cannons and \'bullet buster\' which blocks bullets.";
  495.       this.arrNodes[25].nodeData._secondaryDescription = "Pressing the secondary fire button will fire the biggest bubble cannon in the game!";
  496.       this.arrNodes[26].nodeData._name = "BFT Carrier";
  497.       this.arrNodes[26].nodeData._id = 26;
  498.       this.arrNodes[26].nodeData._speed = 0.3;
  499.       this.arrNodes[26].nodeData._turnMode = 2;
  500.       this.arrNodes[26].nodeData._arrPrimaryWeapons.push({type:3,name:"gun_5",delay:12});
  501.       this.arrNodes[26].nodeData._arrPrimaryWeapons.push({type:28,name:"gun_6",delay:12});
  502.       this.arrNodes[26].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_1",delay:10,target:""});
  503.       this.arrNodes[26].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_2",delay:10,target:""});
  504.       this.arrNodes[26].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_3",delay:10,target:""});
  505.       this.arrNodes[26].nodeData._arrPrimaryWeapons.push({type:17,name:"gun_4",delay:10,target:""});
  506.       this.arrNodes[26].nodeData._arrSecondaryWeapons.push({type:33,name:"gun_7",delay:200});
  507.       this.arrNodes[26].nodeData._arrSecondaryWeapons.push({type:33,name:"gun_8",delay:200});
  508.       this.arrNodes[26].nodeData._arrSecondaryWeapons.push({type:33,name:"gun_9",delay:200});
  509.       this.arrNodes[26].nodeData._arrSecondaryWeapons.push({type:33,name:"gun_10",delay:200});
  510.       this.arrNodes[26].nodeData._arrSecondaryWeapons.push({type:33,name:"gun_11",delay:200});
  511.       this.arrNodes[26].nodeData._arrSecondaryWeapons.push({type:33,name:"gun_12",delay:200});
  512.       this.arrNodes[26].nodeData._hasAutoGuns = true;
  513.       this.arrNodes[26].nodeData._minPoints = this.arrPointReqs[5].min;
  514.       this.arrNodes[26].nodeData._maxPoints = this.arrPointReqs[5].max;
  515.       this.arrNodes[26].nodeData._description = "Giant tank that sends out swarms of fighters.";
  516.       this.arrNodes[26].nodeData._primary = "1 B. S, 4 Sm. A, 1 BB";
  517.       this.arrNodes[26].nodeData._secondary = "Ally Swarm";
  518.       this.arrNodes[26].nodeData._primaryDescription = "4 small cannons fire automatically while you control the one large cannon and \'bullet buster\' which blocks bullets.";
  519.       this.arrNodes[26].nodeData._secondaryDescription = "Launch ally fighter tanks which will swarm around your mouse pointer and destroy nearby enemies.";
  520.       this.arrNodes[26].nodeData._locked = true;
  521.    }
  522. }
  523.