{"main":"//Jan 25th, 2019: I like this game, I got from thunderdestroyr \r\n//but I\'d like it more if some of it had comments, and was self documenting.\r\n//Uncommented cool code is a) job protection? b) just showing off? c) lazy? d)Only helps the initiated.\r\n\r\n/***************************************************************************************\r\nangleMode: Converts a radian measurement to its corresponding value in degrees. \r\nRadians and degrees are two ways of measuring the same thing. \r\nThere are 360 degrees in a circle and 2*PI radians in a circle. \r\nFor example, 90° = PI/2 = 1.5707964. \r\n*** All trigonometric functions in Processing require their parameters to be specified in radians. ***\r\nSyntax: degrees(radians)\r\n*****************************************************************************************/\r\n\r\nangleMode = \'degrees\';\r\n\r\nvoid setup() { //*** Once upon loading ***\r\n\t size(600,600,1);\r\n\t noStroke();\r\n\t rectMode(CENTER);\r\n textAlign(CENTER,CENTER);\r\n\t textSize(20);\r\n};\r\n\r\n//**** rotation functions, no idea why this is formated as such ****\r\nvar rotate1=function(a){ rotate(a*(PI/180)); };\r\nvar atan3=function(a,b){ return atan2(a,b)/PI*180; };\r\nvar cos1=function(a){ return Math.cos(a/180*Math.PI); };\r\nvar sin1=function(a){ return Math.sin(a/180*Math.PI); };\r\nvar tan1=function(a){ return Math.tab(a/180*Math.PI); };\r\n\r\n//******************************\r\n\r\n/************************************************************************\r\nCreates colors for storing in variables of the color datatype. \r\nThe parameters are interpreted as RGB or HSB values depending on the current colorMode(). \r\nThe default mode is RGB values from 0 to 255 and, \r\ntherefore, color(255, 204, 0) will return a bright yellow color (see the first example above).\r\n**************************************************************************/\r\n// choose the color of the player; what mischief could we cause here?\r\nvar sightColor = color(0, 0, 0),\r\n sightColor2 = color(255, 255, 255);\r\nvar playerColor = color(255, 255, 255);\r\n\r\nvar HaveSound=false;\r\n\r\n//An object with 4 items( array, value, array, value) ?? used later\r\nvar GSAVE={\r\ngunG:\'0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;\',\r\nwave:50, \r\nupG:[0,0,0,0,0,0],\r\ns:0,\r\n};\r\n\r\n// put save code here /\\\r\n/* lots of cool stuff going on too bad where it starts and how it works is still a mystery */\r\n{ \r\n \r\n var shake=0;\r\n var PowerEquip=3;\r\n var gunbou=0;//guns biy\r\n var waveSpeed=1;\r\n var FIX_SHOP_BUG=false; //set this to true ifshop crashes game\r\n var splat_Spawn=8; //set to 0 to turn of splat (BLOOD)marks\r\n var REMOVELAG=false; //set true to decrease lag\r\n var Max_effects=250; //max number of effect\r\n var itemLife=10000; //how long dropped item last\r\n //*********************************************\r\n // SETTINGS\r\n //*********************************************\r\n var scene=-201; //set to 1 to skip menu\r\n var waveTimer=1000; //time between waves\r\n var damageMULT=1.00; //how much more damage you do (1.00=base)\r\n var damageMULTbase=1;\r\n var HpRegen=0.00; // how fast your HP regens\r\n var Zombie_Dect_timer=9; //how often the game test s the zombies\r\n var Zombie_Spawn_thes=5; //# zombies needed for next wave\r\n var MAP_W=800;\r\n var MAP_H=800;\r\n /**pick class here*/\r\n var player_model_E=0; //what class you choose 0-13\r\n var AREA_MAP=2;\r\n var Game_mode=1;\r\n var Zombie_di_mult=1.2;\r\n var DiedHow=\"none\";\r\n var shooting=false; //is player shooting\r\n var IsReloading=false; // are you reloading\r\n var ReloadTimer=0; //reload timer\r\n var pause=false; // ifgame is paused\r\n var angle=0; //players angle angle\r\n var time=0;\r\n var shotFired=0; // how many rounds you have fired\r\n var wave=0; //what wave your on\r\n var zombiespawnT=0; // zombie spawn timer\r\n var Zkills=0; // number of zombies killed\r\n var Pspeed=4; //player speed\r\n var money=0; //money\r\n var Parmor=0;\r\n var ParmorMax=50;\r\n var Gems=0;\r\n var AnC;\r\n var PowerTimer=0; //Timer for powerUp\r\n var PowerDelay=120;//powerUp delay\r\n var PowerCount=3;//powerup count\r\n //past mouse X and Y\r\n var PmouseX=0,\r\n PmouseY=0;\r\n // player sprintmax player sprint\r\n var PS=100,\r\n PSmax=100;\r\n // player health points and max player health points\r\n var Php=100,\r\n PhpMax=100;\r\n //player X and Y cord\r\n var PX=300,\r\n PY=100;\r\n //cam X and Y\r\n var CamX=0,\r\n CamY=0;\r\n var GunSGOT=0;\r\n var GunSGOTE=0;\r\n var Time=0;\r\n var Pnoise=100; //player noise\r\n var stor=[]; //stores effects\r\n var gameTime=0; //\r\n var FPStimer=millis(); //\r\n var FPSCount=0; //\r\n var FPSCountT=0; //\r\n var handColor=color(255,255,255);\r\n var RTx=0;\r\n var RTy=0;\r\n\r\n var BAcc=0,// gun acc\r\n BAccM=0,\r\n BAccAdd=0,\r\n BAccR=0;\r\n var BperS=0; // bullets per shot\r\n var BSpeed=0; // bullet speed\r\n var BDelay=0; // shot delay\r\n var Bdam=0; // bullet damage\r\n var ammo=0; // gun ammo\r\n var ammoMax=0; // gun ammo max\r\n //var ammoR=GUN[GUNE].ammoBank; // ammo res\r\n var Reload=0; // how fast is the reload\r\n var gunT=0; // the type\r\n var BhpL=0; // the bullets live\r\n\r\n var ClassE=0; {\r\n //*********************************************\r\n // Classes\r\n //*********************************************\r\n var Classes=[\r\n\t\t\t\t{\r\n E1: 5,\r\n E2: 5,\r\n name: \"normal\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },{\r\n E1: 13,\r\n E2: 6,\r\n name: \"Dooms day preper\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(179,149,0);\r\n rect(0,0+12,20,12,6);\r\n fill(71,58,0);\r\n rect(0-5,0+12,3,12,6);\r\n rect(0+5,0+12,3,12,6);\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },{\r\n E1: 21,\r\n E2: 6,\r\n name: \"Bandit\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(230,39,71);\r\n triangle(8,-6,0,-12,-8,-6);\r\n fill(playerColor);\r\n ellipse(0,-6,10,3);\r\n fill(0,0,0);\r\n rect(-3,-5,2,4);\r\n rect(3,-5,2,4);\r\n }\r\n },{\r\n E1: 9,\r\n E2: 6,\r\n name: \"marksman\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(107,107,107);\r\n rect(0,2,20,3);\r\n fill(61,61,61);\r\n rect(10,2,5,8,3);\r\n rect(-10,2,5,8,3);\r\n }\r\n },{\r\n E1: 22,\r\n E2: 8,\r\n name: \"cop\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(94,115,199);\r\n rect(0,4,12,10,3);\r\n fill(20,39,110);\r\n ellipse(0,8,20,10);\r\n fill(199,167,40);\r\n ellipse(0,8,3,3);\r\n }\r\n },{\r\n E1: 10,\r\n E2: 8,\r\n name: \"Park ranger\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(71,163,41);\r\n ellipse(0,6,18,15);\r\n fill(66,66,66);\r\n ellipse(0,8,12,13);\r\n fill(102,204,47);\r\n ellipse(0,8,10,12);\r\n fill(76,153,29);\r\n ellipse(0,8,4,10);\r\n }\r\n },{\r\n E1: 23,\r\n E2: 5,\r\n name: \"CDC agent\",\r\n HC: color(255,175,15),\r\n show: function(x,y,a){\r\n fill(255,175,15);\r\n ellipse(0,0,20,20);\r\n fill(54,53,54);\r\n arc(0,0,20,20,180*(PI/180),360*(PI/180));\r\n fill(138,135,138);\r\n rect(0,0+5,3,10);\r\n fill(114,224,215);\r\n rect(0,0-6,8,3);\r\n pushMatrix();\r\n resetMatrix();\r\n if(x===0.01){\r\n translate(600,600);\r\n translate(-300-(PmouseX-0-width/2)/ 2,-300 -\r\n (PmouseY-0-height/2)/ 2);\r\n }\r\n else {\r\n translate(x,y);\r\n }\r\n rotate1(a+40);\r\n fill(82,82,82);\r\n rect(0,0-14,7,5);\r\n rect(0,0-12,3,5);\r\n popMatrix();\r\n }\r\n },{\r\n E1: 18,\r\n E2: 15,\r\n name: \"SWAT\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(60,64,143);\r\n ellipse(0,7,19,14);\r\n rect(9,3,5,8,4);\r\n rect(-9.5,3,5,8,4);\r\n }\r\n },{\r\n E1: 2,\r\n E2: 19,\r\n name: \"army\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(38,135,0);\r\n rect(0,0+12,20,8,6);\r\n fill(82,204,0);\r\n rect(0-5,0+12,3,8,6);\r\n rect(0+5,0+12,3,8,6);\r\n fill(43,102,0);\r\n rect(0,0+16,10,3,6);\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(30,87,15);\r\n ellipse(0,4,20,15);\r\n }\r\n },{\r\n E1: 11,\r\n E2: 7,\r\n name: \"Sniper\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(116,130,116);\r\n rect(0,2,20,3);\r\n rect(-10,2,5,8,4);\r\n rect(10,2,5,8,4);\r\n fill(43,92,13);\r\n rect(0,6,15,13,6);\r\n }\r\n },{\r\n E1: 20,\r\n E2: 16,\r\n name: \"Spec Ops\",\r\n HC: color(138,138,138),\r\n show: function(x,y,a){\r\n fill(97,96,97);\r\n ellipse(0,0,20,20);\r\n fill(48,48,48);\r\n arc(0,0,20,20,180*(PI/180),360*(PI/180));\r\n fill(56,52,56);\r\n rect(0,0+5,3,10);\r\n fill(26,25,26);\r\n rect(0-5,0-8,5,6);\r\n fill(26,25,26);\r\n rect(0+5,0-8,5,6);\r\n fill(94,255,0);\r\n ellipse(0+5,0-9.5,5,3);\r\n ellipse(0-5,0-9.5,5,3);\r\n ellipse(0,0-5.5,5,3);\r\n }\r\n },{\r\n E1: 3,\r\n E2: 15,\r\n name: \"Heavy wep spec\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(97,97,97);\r\n rect(0,12,20,12,6);\r\n fill(36,36,36);\r\n rect(-5,12,3,12,6);\r\n rect(5,12,3,12,6);\r\n fill(36,36,36);\r\n rect(-10,11,4,9,4);\r\n rect(10,11,4,9,4);\r\n rect(0,19,10,4,4);\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n fill(122,122,122);\r\n rect(0,0,20,3);\r\n fill(59,59,59);\r\n rect(-11,0,5,8);\r\n rect(11,0,5,8);\r\n fill(59,59,59);\r\n rect(10,-4,2,12);\r\n }\r\n },{\r\n E1: 12,\r\n E2: 24,\r\n name: \"spec ops sniper\",\r\n HC: color(playerColor),\r\n show: function(x,y,a){\r\n fill(115,114,110);\r\n rect(0,0+12,20,8,6);\r\n fill(0,0,0);\r\n rect(0-5,0+12,3,8,6);\r\n rect(0+5,0+12,3,8,6);\r\n fill(playerColor);\r\n ellipse(0,0,20,20);\r\n fill(54,53,54);\r\n arc(0,0,20,20,180*(PI/180),360*(PI/180));\r\n fill(138,135,138);\r\n rect(0,0+5,3,10);\r\n fill(107,107,107);\r\n ellipse(0-3,0-5,4,4);\r\n ellipse(0+3,0-5,4,4);\r\n fill(114,224,215);\r\n ellipse(0-3,0-5,2,5);\r\n ellipse(0+3,0-5,2,5);\r\n pushMatrix();\r\n resetMatrix();\r\n if(x===0.01){\r\n translate(600,600);\r\n translate(-300-(PmouseX-0-width/2)/ 2,-300 -\r\n (PmouseY-0-height/2)/ 2);\r\n }\r\n else {\r\n translate(x,y);\r\n }\r\n rotate1(a+40);\r\n fill(82,82,82);\r\n rect(0,0-14,7,5);\r\n rect(0,0-12,3,5);\r\n popMatrix();\r\n pushMatrix();\r\n resetMatrix();\r\n if(x===0.01){\r\n translate(600,600);\r\n translate(-300-(PmouseX-0-width/2)/ 2,-300 -\r\n (PmouseY-0-height/2)/ 2);\r\n }\r\n else {\r\n translate(x,y);\r\n }\r\n rotate1(a-40);\r\n fill(82,82,82);\r\n rect(0,0-14,7,5);\r\n rect(0,0-12,3,5);\r\n popMatrix();\r\n }\r\n },{\r\n E1: 28,\r\n E2: 29,\r\n name: \"unit BR-90 Elite\",\r\n HC: color(138,138,138),\r\n show: function(x,y,a){\r\n fill(97,97,97);\r\n rect(0,10,20,12,3);\r\n fill(36,36,36);\r\n rect(-5,10,3,12,2);\r\n rect(5,10,3,12,6);\r\n fill(36,36,36);\r\n rect(0,17,10,4,4);\r\n fill(138,138,138);\r\n ellipse(0,0,20,20);\r\n fill(28,28,28);\r\n arc(0,0,20,20,180*(PI/180),360*(PI/180));\r\n fill(56,54,56);\r\n rect(0,0+5,3,10);\r\n fill(33,255,33);\r\n ellipse(0-4,0-6,5,3);\r\n ellipse(0+4,0-6,5,3);\r\n ellipse(0,-3,5,2);\r\n pushMatrix();\r\n resetMatrix();\r\n if(x===0.01){\r\n translate(600,600);\r\n translate(-300-(PmouseX-0-width/2)/ 2,-300 -\r\n (PmouseY-0-height/2)/ 2);\r\n }\r\n else {\r\n translate(x,y);\r\n }\r\n rotate1(a+40);\r\n fill(82,82,82);\r\n rect(0,0-14,7,5);\r\n rect(0,0-12,3,5);\r\n popMatrix();\r\n pushMatrix();\r\n resetMatrix();\r\n if(x===0.01){\r\n translate(600,600);\r\n translate(-300-(PmouseX-0-width/2)/ 2,-300 -\r\n (PmouseY-0-height/2)/ 2);\r\n }\r\n else {\r\n translate(x,y);\r\n }\r\n rotate1(a-40);\r\n fill(82,82,82);\r\n rect(0,0-14,7,5);\r\n rect(0,0-12,3,5);\r\n popMatrix();\r\n }\r\n },];\r\n var GUNUU=[\r\n Classes[player_model_E].E1,\r\n Classes[player_model_E].E2,\r\n 27\r\n ]; //what items you use\r\nvar GUNE;\r\n var GUN=[{\r\n acc: 1,// the base accuracy of gun 1 good-5 bad\r\n AccA: 0.1,// gun recoil\r\n AccS: 0.05,// how fast you recover for recoil\r\n BPS: 1,//bullets per shot\r\n speed: 40,//speed of the bullet\r\n delay: 5,//delay between shots\r\n damage: 1000,//damage\r\n ammo: 1000,//guns ammo\r\n ammoMax: 1000,// the guns ammo max\r\n ammoBank: 1000,//how much ammo you have for the gun\r\n reload: 1,//how fast it reloads\r\n Type: 4,//does not matter yet\r\n Blife: 0.1,//how meny zombies it go though(0.1 per zomb\r\n name: \"DEVGUN\",//the name\r\n FireMode:\"auto\",AT: 1,//what ammo it uses\r\n BType: 1,//ifthe bullets are normal-0 or high velocity-1\r\n Weight: 0,//how much the gun slows you down\r\n noise: 10,\r\n show: function(){\r\n fill(176,91,0);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 6,//shot delay\r\n damage: 18,//damage\r\n ammo: 100,\r\n ammoMax: 100,\r\n ammoBank: 200,//ammo-ammomax-ammo bank\r\n reload: 200,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"Fang\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 0,\r\n Weight: 3,\r\n noise: 50,\r\n show: function(){\r\n fill(11,92,11);\r\n rect(-8,-20,10,8);\r\n fill(71,71,71);\r\n rect(-6,-20,3,24);\r\n fill(176,91,0);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.25,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 7,//shot delay\r\n damage: 25,//damage\r\n ammo: 100,\r\n ammoMax: 100,\r\n ammoBank: 200,//ammo-ammomax-ammo bank\r\n reload: 200,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"P23-lion\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 0,\r\n Weight: 3,\r\n noise: 50,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-8,-20,12,6);\r\n fill(46,46,46);\r\n rect(-6,-20,3,24);\r\n fill(99,98,99);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 6,\r\n AccA: -0.1,\r\n AccS: 0.05,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 3,//shot delay\r\n damage: 19,//damage\r\n ammo: 250,\r\n ammoMax: 250,\r\n ammoBank: 500,//ammo-ammomax-ammo bank\r\n reload: 250,//reload speed\r\n Type: 6,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"chain gun\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 0,\r\n Weight: 3,\r\n noise: 50,\r\n show: function(){\r\n if(!pause){BAcc+=0.01;}\r\n fill(71,71,71);\r\n rect(-6,-28,2,14);\r\n rect(-9,-28,2,14);\r\n fill(18,18,18);\r\n rect(-8,-20,10,8);\r\n rect(-8,-34,7,4);\r\n fill(18,18,18);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 6,\r\n AccA: -0.1,\r\n AccS: 0.05,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 2,//shot delay\r\n damage: 18,//damage\r\n ammo: 500,\r\n ammoMax: 500,\r\n ammoBank: 500,//ammo-ammomax-ammo bank\r\n reload: 250,//reload speed\r\n Type: 6,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"The hydra\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 0,\r\n Weight: 3.5,\r\n noise: 40,\r\n show: function(){\r\n if(!pause){BAcc+=0.01;}\r\n fill(97,97,97);\r\n rect(-6,-28,2,12);\r\n rect(-9,-28,2,14);\r\n fill(61,61,61);\r\n rect(-8,-20,10,8);\r\n rect(-8,-34,7,4);\r\n fill(18,18,18);\r\n rect(-6,-20,5,18);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.8,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 20,//shot delay\r\n damage: 20,//damage\r\n ammo: 7,\r\n ammoMax: 7,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 20,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"colt\",//the name\r\n FireMode:\"simi\",AT: 1,\r\n BType: 1,\r\n Weight: 0.7,\r\n noise: 60,\r\n show: function(){\r\n fill(87,86,87);\r\n rect(0,-20,3,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 20,//shot delay\r\n damage: 25,//damage\r\n ammo: 10,\r\n ammoMax: 10,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 20,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"defender\",//the name\r\n FireMode:\"auto\",AT: 1,\r\n BType: 1,\r\n Weight: 0.6,\r\n noise: 60,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(0,-20,3,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 2.9,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 50,//shot delay\r\n damage: 100,//damage\r\n ammo: 3,\r\n ammoMax: 3,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 160,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"Hand cannon\",//the name\r\n FireMode:\"auto\",AT: 1,\r\n BType: 1,\r\n Weight: 1.8,\r\n noise: 200,\r\n show: function(){\r\n fill(77,77,77);\r\n rect(0,-23,4,15);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccA: 0.6,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 15,//shot delay\r\n damage: 15,//damage\r\n ammo: 20,\r\n ammoMax: 20,\r\n ammoBank: 200,//ammo-ammomax-ammo bank\r\n reload: 20,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"The Basilisk\",//the name\r\n FireMode:\"auto\",AT: 1,\r\n BType: 1,\r\n Weight: 0,\r\n noise: 60,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(0,-20,3,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 2,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 35,//bullet speed\r\n delay: 60,//shot delay\r\n damage: 150,//damage\r\n ammo: 3,\r\n ammoMax: 3,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"hunting rifle\",//the name\r\n FireMode:\"simi\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(77,76,77);\r\n rect(-6,-20,3,34);\r\n fill(122,65,15);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 35,//bullet speed\r\n delay: 50,//shot delay\r\n damage: 150,//damage\r\n ammo: 5,\r\n ammoMax: 5,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 150,//reload speed\r\n Type: 3,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"Falcon\",//the name\r\n FireMode:\"simi\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(64,63,64);\r\n rect(-6,-20,3,34);\r\n fill(87,86,87);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 35,//bullet speed\r\n delay: 50,//shot delay\r\n damage: 165,//damage\r\n ammo: 7,\r\n ammoMax: 7,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"ranger\",//the name\r\n FireMode:\"simi\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-6,-20,3,34);\r\n fill(128,128,128);\r\n rect(-6,-20,5,10);\r\n rect(-6,-38,5,3);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 1.5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 40,//shot delay\r\n damage: 90,//damage\r\n ammo: 20,\r\n ammoMax: 20,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"The Dragon\",//the name\r\n FireMode:\"auto\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 30,\r\n show: function(){\r\n fill(38,38,38);\r\n rect(-6,-20,3,34);\r\n fill(168,108,5);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.9,\r\n AccS: 0.03,\r\n BPS: 5,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 40,//shot delay\r\n damage: 15,//damage\r\n ammo: 5,\r\n ammoMax: 5,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 4,//gun typ\r\n Blife: 0.1,//bullets life\r\n name: \"Pump shotgun\",//the name\r\n FireMode:\"simi\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,3,24);\r\n //rect(-2,-20,3,24);\r\n fill(176,91,0);\r\n rect(-4,-18,6,10);\r\n fill(handColor);\r\n ellipse(-0,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.9,\r\n AccS: 0.03,\r\n BPS: 6,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 50,//shot delay\r\n damage: 25,//damage\r\n ammo: 2,\r\n ammoMax: 2,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 80,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"DoB shotgun\",//the name\r\n FireMode:\"simi\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,3,24);\r\n rect(-2,-20,3,24);\r\n fill(176,91,0);\r\n rect(-4,-18,6,10);\r\n fill(handColor);\r\n ellipse(-0,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.9,\r\n AccS: 0.03,\r\n BPS: 6,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 30,//shot delay\r\n damage: 15,//damage\r\n ammo: 10,\r\n ammoMax: 10,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 80,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"R90-rhino\",//the name\r\n FireMode:\"auto\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,3,24);\r\n //rect(-2,-20,3,24);\r\n fill(82,82,82);\r\n rect(-4,-18,6,10);\r\n fill(handColor);\r\n ellipse(-0,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.9,\r\n AccS: 0.03,\r\n BPS: 5,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 50,//shot delay\r\n damage: 20,//damage\r\n ammo: 8,\r\n ammoMax: 8,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 120,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"The Suger\",//the name\r\n FireMode:\"simi\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,3,24);\r\n fill(0,0,0);\r\n rect(-4,-18,6,10);\r\n fill(handColor);\r\n ellipse(-0,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 10,//shot delay\r\n damage: 10,//damage\r\n ammo: 30,\r\n ammoMax: 30,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"Rifle\",//the name\r\n FireMode:\"auto\",AT: 4,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 50,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(176,91,0);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 5,//shot delay\r\n damage: 15,//damage\r\n ammo: 35,\r\n ammoMax: 35,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"Tactical Rifle\",//the name\r\n FireMode:\"auto\",AT: 4,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 50,\r\n show: function(){\r\n fill(41,41,41);\r\n rect(-6,-20,2,24);\r\n fill(36,36,36);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 2,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 8,//shot delay\r\n damage: 15,//damage\r\n ammo: 40,\r\n ammoMax: 40,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"T8-Wolf\",//the name\r\n FireMode:\"auto\",AT: 4,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 80,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(97,96,96);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 5,//shot delay\r\n damage: 15,//damage\r\n ammo: 30,\r\n ammoMax: 30,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"The Chimera\",//the name\r\n FireMode:\"auto\",AT: 4,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 10,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(31,30,31);\r\n rect(-6,-35,3,10);\r\n fill(23,23,23);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccM: 4,\r\n AccA: 0.4,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 5,//shot delay\r\n damage: 7,//damage\r\n ammo: 50,\r\n ammoMax: 50,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 40,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"Piranha\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 30,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-15,2,24);\r\n fill(122,122,122);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccM: 4,\r\n AccA: 0.3,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 4,//shot delay\r\n damage: 9,//damage\r\n ammo: 60,\r\n ammoMax: 30,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 40,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"Barracuda\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 30,\r\n show: function(){\r\n fill(31,31,31);\r\n rect(-6,-15,2,24);\r\n fill(0,0,0);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccM: 4,\r\n AccA: 0.5,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 6,//shot delay\r\n damage: 17,//damage\r\n ammo: 25,\r\n ammoMax: 25,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 40,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"viper-30\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 30,\r\n show: function(){\r\n fill(13,13,13);\r\n rect(-6,-15,2,24);\r\n fill(122,122,122);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 5,\r\n AccM: 4,\r\n AccA: 0.4,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 5,//shot delay\r\n damage: 15,//damage\r\n ammo: 50,\r\n ammoMax: 50,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 50,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"The Griffin\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 10,\r\n show: function(){\r\n fill(82,82,80);\r\n rect(-6,-15,2,24);\r\n fill(173,159,33);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.6,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 30,//shot delay\r\n damage: 30,//damage\r\n ammo: 6,\r\n ammoMax: 6,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"Silenced pistol\",//the name\r\n BType: 1,\r\n Weight: 2,\r\n noise: 20,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(0,-20,3,10);\r\n fill(94,94,94);\r\n rect(0+0.7,-31,2,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 40,//shot delay\r\n damage: 35,//damage\r\n ammo: 20,\r\n ammoMax: 20,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"Silenced rifle\",//the name\r\n BType: 0,\r\n Weight: 3,\r\n noise: 30,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(31,30,31);\r\n rect(-6,-35,3,10);\r\n fill(112,112,112);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: -0.1,\r\n AccM: 4,\r\n AccA: 0.4,\r\n AccS: 0.06,\r\n BPS: 0,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 0,//shot delay\r\n damage: 0,//damage\r\n ammo: 0,\r\n ammoMax: 0,\r\n ammoBank: 0,//ammo-ammomax-ammo bank\r\n reload: 0,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"NONE\",//the name\r\n BType: 0,\r\n Weight: 0,\r\n show: function(){\r\n fill(handColor);\r\n fill(handColor);\r\n //ellipse(7,-13,5,5);\r\n //ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 0.2,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 15,//shot delay\r\n damage: 55,//damage\r\n ammo: 30,\r\n ammoMax: 30,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"the prototype\",//the name\r\n FireMode:\"auto\",AT: 2,\r\n BType: 2,\r\n Weight: 1,\r\n noise: 30,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-6,-20,6,10);\r\n fill(255,0,0);\r\n rect(-6,-20,2,24);\r\n fill(255,0,0,100);\r\n rect(-6,-20,4,26,2);\r\n fill(255,0,0,50);\r\n rect(-6,-20,4,33,5);\r\n fill(133,116,116);\r\n rect(-6,-25,5,3,5);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 0.2,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 3,//bullet speed\r\n delay: 105,//shot delay\r\n damage: 8,//damage\r\n ammo: 3,\r\n ammoMax: 3,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"the ZAPPER\",//the name\r\n FireMode:\"auto\",AT: 3,\r\n BType: 3,\r\n Weight: 1,\r\n noise: 300,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-6,-20,6,10);\r\n fill(0,255,255);\r\n rect(-6,-20,2,24);\r\n fill(0,255,255,100);\r\n rect(-6,-20,4,26,2);\r\n fill(0,238,255,50);\r\n rect(-6,-20,4,33,5);\r\n fill(133,116,116);\r\n rect(-6,-25,5,3,5);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 0,\r\n AccA: 0,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 45,//bullet speed\r\n delay: 60,//shot delay\r\n damage: 200,//damage\r\n ammo: 2,\r\n ammoMax: 2,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"light carbine\",//the name\r\n FireMode:\"auto\",AT: 2,\r\n BType: 4,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-6,-20,5,10);\r\n fill(201,201,201);\r\n rect(-6,-20,3,34);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 2.9,\r\n AccS: 0.03,\r\n BPS: 3,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 20,//shot delay\r\n damage: 100,//damage\r\n ammo: 5,\r\n ammoMax: 5,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 80,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.3,//bullets life\r\n name: \"THE SKLURG\",//the name\r\n FireMode:\"simi\",AT: 1,\r\n BType: 1,\r\n Weight: 1,\r\n noise: 100,\r\n show: function(){\r\n fill(217,13,50);\r\n rect(0,-23,4,15);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccM: 4,\r\n AccA: 0.5,\r\n AccS: 0.06,\r\n BPS: 3,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 8,//shot delay\r\n damage: 25,//damage\r\n ammo: 25,\r\n ammoMax: 25,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 40,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"Ghost rider\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 3,\r\n Weight: 1,\r\n noise: 30,\r\n show: function(){\r\n fill(13,13,13);\r\n rect(-6,-15,2,24);\r\n fill(5,247,231);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: -0.03,\r\n AccS: 0.05,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 150,//shot delay\r\n damage: 10,//damage\r\n ammo: 500,\r\n ammoMax: 500,\r\n ammoBank: 500,//ammo-ammomax-ammo bank\r\n reload: 250,//reload speed\r\n Type: 6,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"DOOMBRINGER\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 2,\r\n Weight: 3,\r\n noise: 50,\r\n show: function(){\r\n if(!pause){BAcc+=0.01;}\r\n if(!pause&&GUNE===33){ammo=constrain(ammo,0,ammoMax);BDelay=constrain(BDelay,0,20);BDelay+=0.03;}\r\n if(!pause&&GUNE===33&&shooting){BDelay-=0.9;}\r\n fill(227,25,55);\r\n rect(-6,-28,2,14);\r\n rect(-9,-28,2,14);\r\n fill(18,18,18);\r\n rect(-8,-20,10,8);\r\n rect(-8,-34,7,4);\r\n fill(18,18,18);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccM: 4,\r\n AccA: 0.5,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 3,//shot delay\r\n damage: 6,//damage\r\n ammo: 100,\r\n ammoMax: 100,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 30,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"TOM-9\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 30,\r\n show: function(){\r\n fill(89,87,83);\r\n rect(-6,-18,9,3);\r\n fill(77,75,77);\r\n rect(-6,-15,2,24);\r\n fill(212,123,21);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },//smg\r\n {\r\n acc: 2,\r\n AccM: 4,\r\n AccA: 0.65,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 7,//shot delay\r\n damage: 10,//damage\r\n ammo: 20,\r\n ammoMax: 20,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 50,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.3,//bullets life\r\n name: \"R16- ocelot\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 30,\r\n show: function(){\r\n fill(110,100,110);\r\n rect(-6,-15,2,24);\r\n fill(175,227,143);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 4,\r\n AccM: 4,\r\n AccA: 0.5,\r\n AccS: 0.06,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 6,//shot delay\r\n damage: 15,//damage\r\n ammo: 25,\r\n ammoMax: 25,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 40,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"SMGplace2\",//the name\r\n FireMode:\"auto\",AT: 5,\r\n BType: 0,\r\n Weight: 1.5,\r\n noise: 30,\r\n show: function(){\r\n fill(13,13,13);\r\n rect(-6,-15,2,24);\r\n fill(122,122,122);\r\n rect(-6,-20,4,8);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: -0.25,\r\n AccS: 0.03,\r\n BPS: 5,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 0,//shot delay\r\n damage: 25,//damage\r\n ammo: 100,\r\n ammoMax: 100,\r\n ammoBank: 200,//ammo-ammomax-ammo bank\r\n reload: 200,//reload speed\r\n Type: 6,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"6̶̡̠͍͔̩̞̦̐̀̈̾̋̈́͘7̶̡̢̧͚̻͈͇̋̂̇̃̓̕̚\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 2,\r\n Weight: 3.5,\r\n noise: 50,\r\n show: function(){\r\n if(!pause){\r\n BAcc+=0.01;\r\n Php-=0.01;\r\n DiedHow=\"c̵͇̥̖͍̜̘̟͋̾̈́͂̌̍͘ǫ̴̡͇̖̬̺̮̓̊̄̅̉̀̍ǹ̶̯̤̞̝̠͍͕̈́̂̐̎̾͝s̵̝͓̩͖̙̀̇̅͑̚͘͜͝ͅu̸̧̱͎̻͕̰̲͌̒̂̄͋̀͝m̴̨͉̰̯̱̱̯̎͆̈́̿̓͛͝e̶̡͈̜̜̯̩̬͂̇͆̇̐̚͝ḑ̷̤̣̞͕͙̱͋͐̓̏̈́́͘\";\r\n }\r\n fill(0,0,0);\r\n rect(-8,-20,12,10);\r\n fill(46,46,46);\r\n rect(-6,-20,7,44);\r\n fill(204, 198, 204);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },//mec\r\n {\r\n acc: 8,\r\n AccA: 0.25,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 7,//shot delay\r\n damage: 25,//damage\r\n ammo: 100,\r\n ammoMax: 100,\r\n ammoBank: 200,//ammo-ammomax-ammo bank\r\n reload: 200,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"mec2\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 0,\r\n Weight: 3.5,\r\n noise: 50,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-8,-20,12,6);\r\n fill(46,46,46);\r\n rect(-6,-20,3,24);\r\n fill(99,98,99);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.25,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 7,//shot delay\r\n damage: 25,//damage\r\n ammo: 100,\r\n ammoMax: 100,\r\n ammoBank: 200,//ammo-ammomax-ammo bank\r\n reload: 200,//reload speed\r\n Type: 5,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"mec3\",//the name\r\n FireMode:\"auto\",AT: 0,\r\n BType: 0,\r\n Weight: 3.5,\r\n noise: 50,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(-8,-20,12,6);\r\n fill(46,46,46);\r\n rect(-6,-20,3,24);\r\n fill(99,98,99);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 20,//shot delay\r\n damage: 35,//damage\r\n ammo: 7,\r\n ammoMax: 7,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 20,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"JB007\",//the name\r\n FireMode:\"auto\",AT: 1,\r\n BType: 1,\r\n Weight: 0.6,\r\n noise: 60,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(0,-20,3,10);\r\n fill(105,101,105);\r\n rect(0,-30,3,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },//p\r\n {\r\n acc: 3,\r\n AccA: 0.8,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 0,//shot delay\r\n damage: 40,//damage\r\n ammo: 7,\r\n ammoMax: 7,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 50,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"OWL\",//the name\r\n FireMode:\"simi\",AT: 1,\r\n BType: 1,\r\n Weight: 0.8,\r\n noise: 200,\r\n show: function(){\r\n fill(125,124,125);\r\n rect(0,-20,4,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 3,\r\n AccA: 0.5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 20,//shot delay\r\n damage: 25,//damage\r\n ammo: 10,\r\n ammoMax: 10,\r\n ammoBank: 60,//ammo-ammomax-ammo bank\r\n reload: 20,//reload speed\r\n Type: 1,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"p1\",//the name\r\n FireMode:\"auto\",AT: 1,\r\n BType: 1,\r\n Weight: 0.6,\r\n noise: 60,\r\n show: function(){\r\n fill(0,0,0);\r\n rect(0,-20,3,10);\r\n fill(handColor);\r\n ellipse(0,-15,5,5);\r\n ellipse(3,-15,5,5);\r\n }\r\n },{\r\n acc: 2,\r\n AccA: 1.5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 40,//bullet speed\r\n delay: 30,//shot delay\r\n damage: 50,//damage\r\n ammo: 5,\r\n ammoMax: 5,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 0.3,//bullets life\r\n name: \"mosK10\",//the name\r\n FireMode:\"auto\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(64,63,64);\r\n rect(-6,-20,2,34);\r\n fill(191,85,10);\r\n rect(-6,-20,3,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },//snp\r\n {\r\n acc: 2,\r\n AccA: 3,\r\n AccS: 0.08,\r\n BPS: 1,//bullets per shot\r\n speed: 40,//bullet speed\r\n delay: 60,//shot delay\r\n damage: 60,//damage\r\n ammo: 7,\r\n ammoMax: 7,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 0.3,//bullets life\r\n name: \"Lever action\",//the name\r\n FireMode:\"simi\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(64,63,64);\r\n rect(-6,-20,4,24);\r\n fill(87,86,87);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 1,\r\n AccA: 5,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 40,//bullet speed\r\n delay: 50,//shot delay\r\n damage: 100,//damage\r\n ammo: 5,\r\n ammoMax: 5,\r\n ammoBank: 50,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 3,//gun type\r\n Blife: 1.1,//bullets life\r\n name: \"snp3\",//the name\r\n FireMode:\"auto\",AT: 2,\r\n BType: 1,\r\n Weight: 3,\r\n noise: 100,\r\n show: function(){\r\n fill(64,63,64);\r\n rect(-6,-20,3,34);\r\n fill(87,86,87);\r\n rect(-6,-20,5,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 5,\r\n AccA: 0.9,\r\n AccS: 0.03,\r\n BPS: 10,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 40,//shot delay\r\n damage: 16,//damage\r\n ammo: 1,\r\n ammoMax: 1,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 40,//reload speed\r\n Type: 4,//gun typ\r\n Blife: 0.1,//bullets life\r\n name: \"The beagle\",//the name\r\n FireMode:\"simi\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n //rect(-2,-20,3,24);\r\n fill(176,91,0);\r\n rect(-7,-18,4,10);\r\n fill(handColor);\r\n ellipse(-3,-22,5,5);\r\n ellipse(-5,-13,5,5);\r\n }\r\n },//sg\r\n {\r\n acc: 12,\r\n AccA: 1.1,\r\n AccS: 0.03,\r\n BPS: 8,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 20,//shot delay\r\n damage: 25,//damage\r\n ammo: 2,\r\n ammoMax: 2,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 80,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.1,//bullets life\r\n name: \"SawOff\",//the name\r\n FireMode:\"simi\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,3,16);\r\n rect(-2,-20,3,16);\r\n fill(176,91,0);\r\n rect(-4,-18,6,10);\r\n fill(handColor);\r\n ellipse(-0,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 8,\r\n AccA: 0.9,\r\n AccS: 0.03,\r\n BPS: 5,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 40,//shot delay\r\n damage: 15,//damage\r\n ammo: 5,\r\n ammoMax: 5,\r\n ammoBank: 20,//ammo-ammomax-ammo bank\r\n reload: 100,//reload speed\r\n Type: 4,//gun typ\r\n Blife: 0.1,//bullets life\r\n name: \"SG3\",//the name\r\n FireMode:\"auto\",AT: 3,\r\n BType: 0,\r\n Weight: 2,\r\n noise: 100,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,3,24);\r\n //rect(-2,-20,3,24);\r\n fill(176,91,0);\r\n rect(-4,-18,6,10);\r\n fill(handColor);\r\n ellipse(-0,-22,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 2,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 5,//shot delay\r\n damage: 15,//damage\r\n ammo: 30,\r\n ammoMax: 30,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"US-15\",//the name\r\n FireMode:\"simi\",AT: 4,\r\n BType: 0,\r\n Weight: 3,\r\n noise: 80,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(79, 63, 63);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },//r\r\n {\r\n acc: 2,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 8,//shot delay\r\n damage: 15,//damage\r\n ammo: 40,\r\n ammoMax: 40,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"R2\",//the name\r\n FireMode:\"auto\",AT: 4,\r\n BType: 0,\r\n Weight: 3,\r\n noise: 80,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(97,96,96);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },{\r\n acc: 2,\r\n AccA: 0.3,\r\n AccS: 0.03,\r\n BPS: 1,//bullets per shot\r\n speed: 30,//bullet speed\r\n delay: 8,//shot delay\r\n damage: 15,//damage\r\n ammo: 40,\r\n ammoMax: 40,\r\n ammoBank: 120,//ammo-ammomax-ammo bank\r\n reload: 60,//reload speed\r\n Type: 4,//gun type\r\n Blife: 0.2,//bullets life\r\n name: \"R3\",//the name\r\n FireMode:\"auto\",AT: 4,\r\n BType: 0,\r\n Weight: 3,\r\n noise: 80,\r\n show: function(){\r\n fill(71,71,71);\r\n rect(-6,-20,2,24);\r\n fill(97,96,96);\r\n rect(-6,-20,4,10);\r\n fill(handColor);\r\n ellipse(-3,-18,5,5);\r\n ellipse(-7,-13,5,5);\r\n }\r\n },\r\n ];\r\n var AmmoBANK=[\r\n 10000,//500 mec gun\r\n 10000,//480 pistol\r\n 10000,//100 sniper\r\n 10000,//120 shot gun\r\n 10000,//700 rifle\r\n 10000,//800 smg\r\n ];\r\n var Bhp=[];\r\n var BhpM=0.1;\r\n var Bpow=[];\r\n var BOldX=[];\r\n var BOldY=[];\r\n var BNewX=[];\r\n var BNewY=[];\r\n var BHeading=[]; //bullet heading\r\n var BRot=[]; // bullet rotation\r\n var bulletDisplay=[\r\n function(){\r\n fill(238,255,0);\r\n rect(0,0,5,30,5);\r\n },\r\n function(){\r\n fill(255,255,0);\r\n rect(0,0-35,5,10);\r\n fill(255,255,255,80);\r\n rect(0,0-30,5,30);\r\n },\r\n function(){\r\n fill(255,0,0,150);\r\n rect(0,0,5,30);\r\n fill(255,0,0,100);\r\n rect(0,0,5,35,4);\r\n fill(255,0,0,50);\r\n rect(0,0,10,35,4);\r\n fill(255,0,0,10);\r\n rect(0,0,10,35,4);\r\n },\r\n function(){\r\n fill(0,255,255,150);\r\n ellipse(0,0,10,10);\r\n fill(0,238,255,100);\r\n ellipse(0,0,15,15);\r\n fill(0,255,242,50);\r\n ellipse(0,0,20,20);\r\n fill(0,238,255,10);\r\n ellipse(0,0,25,25);\r\n },\r\n function(){\r\n fill(255,255,255,150);\r\n rect(0,0,5,200);\r\n fill(255,255,255,100);\r\n rect(0,0,8,205,4);\r\n fill(255,255,255,50);\r\n rect(0,0,10,205,4);\r\n fill(255,255,255,10);\r\n rect(0,0,10,205,4);\r\n }\r\n ];\r\n var showHint=0;\r\n var hints=[\"You have a knife press ‘v’ to use it\",\r\n \"Try to destroy the crates,\\n they have useful things inside\",\r\n \"Don’t forget to reload (press ‘r’)\",\r\n \"Keep moving\\n ifyou stop you might get hit\",\r\n \"Don\'t forget to buy upgrades (press ‘q’)\",\r\n \"Don\'t forget to buy upgrades (press ‘q’)\",\r\n \"Having trouble in mission mode? \\n try training in endless\",\r\n \"Being swarmed \\n used the boom barrels to destroy them\",\r\n \"Don\'t forget to save (press ‘o’)\",\r\n \"Don\'t forget to save (press ‘o’)\",\"There is a boss on wave 25\",\r\n \"Don’t get contaminated\",\"Armor is like health but 2x tougher\",\r\n \"Remember to pick up money\",\r\n \"Get past wave 30 \\nto unlock something amazing\",\r\n \"Stay away from the purple zombies\",\r\n \"Some zombies spit ,don’t get hit\",\r\n \"Some zombies spit ,don’t get hit\"\r\n ];\r\n \r\n var meleeE = 0;\r\nvar meleeWep = [\r\n {\r\n delay:100,\r\n damage:20,\r\n speed:6,\r\n range:25,\r\n display:function(L){\r\n \r\n rotate1(angle-L);\r\n fill(179,179,179);\r\n rect(-7,-12+L/10,3,10);\r\n fill(255,255,255);\r\n ellipse(-7,-9+L/10,5,5);\r\n }\r\n },\r\n {\r\n delay:200,\r\n damage:10,\r\n speed:4,\r\n range:35,\r\n display:function(L){\r\n rotate1(angle+40);\r\n fill(179,179,179);\r\n rect(-12,-8+L/10,20,5);\r\n fill(222, 115, 27);\r\n rect(-7,-8+L/10,10,5);\r\n fill(255,255,255);\r\n ellipse(-7,-9+L/10,5,5);\r\n \r\n ellipse(-5,-7+L/10,5,5);\r\n }\r\n }\r\n\r\n];\r\n\r\n \r\n }\r\n//**********************************************************\r\n// zombie assests\r\n//**********************************************************\r\n var Zombies=[{\r\n hp: 20*Zombie_di_mult,\r\n speed: 0.6,\r\n Dect: 20,\r\n moneyD: 1,\r\n show: function(){\r\n fill(58,112,49);\r\n ellipse(0,0,20,20);\r\n ellipse(7,-13,5,5);\r\n ellipse(-7,-13,5,5);\r\n fill(255,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },{\r\n hp: 45*Zombie_di_mult,\r\n speed: 0.6,\r\n Dect: 25,\r\n moneyD: 3,\r\n show: function(){\r\n fill(49,255,13);\r\n ellipse(0,0,25,25);\r\n ellipse(9,-14,6,6);\r\n ellipse(-9,-14,6,6);\r\n fill(255,0,0);\r\n rect(-4,-6,2,7);\r\n rect(4,-6,2,7);\r\n }\r\n },{\r\n hp: 200*Zombie_di_mult,\r\n speed: 0.3,\r\n Dect: 30,\r\n moneyD: 12,\r\n show: function(){\r\n fill(41,56,36);\r\n ellipse(0,0,30,30);\r\n ellipse(12,-18,6,6);\r\n ellipse(-12,-18,6,6);\r\n fill(255,0,0);\r\n rect(-5,-6,2,7);\r\n rect(5,-6,2,7);\r\n }\r\n },{\r\n hp: 20,\r\n speed: 1.0,\r\n Dect: 15,\r\n moneyD: 0,\r\n show: function(){\r\n fill(101,209,65);\r\n ellipse(0,0,15,15);\r\n ellipse(8,-14,6,6);\r\n ellipse(-8,-14,6,6);\r\n fill(255,0,0);\r\n rect(-3,-3,2,4);\r\n rect(3,-3,2,4);\r\n }\r\n },{\r\n hp: 50*Zombie_di_mult,\r\n speed: 0.8,\r\n Dect: 20,\r\n moneyD: 1,\r\n show: function(){\r\n fill(153,79,22);\r\n ellipse(0,0,20,20);\r\n ellipse(7,-13,5,5);\r\n ellipse(-7,-13,5,5);\r\n fill(255,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },{\r\n hp: 40*Zombie_di_mult,\r\n speed: 0.9,\r\n Dect: 20,\r\n moneyD: 1,\r\n show: function(){\r\n fill(153,23,81);\r\n ellipse(0,0,20,20);\r\n ellipse(7,-13,5,5);\r\n ellipse(-7,-13,5,5);\r\n fill(255,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },{\r\n hp: 1500*Zombie_di_mult,\r\n speed: 0.5,\r\n Dect: 50,\r\n moneyD: 20,\r\n show: function(){\r\n fill(38,255,157);\r\n ellipse(0,0,50,50);\r\n ellipse(15,-34,10,10);\r\n ellipse(-15,-34,10,10);\r\n fill(255,0,0);\r\n rect(-6,-10,5,15);\r\n rect(6,-10,5,15);\r\n }\r\n },{\r\n hp: 30*Zombie_di_mult,\r\n speed: 0.8,\r\n Dect: 20,\r\n moneyD: 2,\r\n show: function(){\r\n fill(0,153,48);\r\n ellipse(0,0,20,20);\r\n ellipse(7,-13,5,5);\r\n ellipse(-7,-13,5,5);\r\n fill(255,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },{\r\n hp: 60*Zombie_di_mult,\r\n speed: 0.7,\r\n Dect: 30,\r\n moneyD: 10,\r\n show: function(){\r\n fill(102,232,102);\r\n ellipse(0,0,30,30);\r\n ellipse(12,-18,6,6);\r\n ellipse(-12,-18,6,6);\r\n fill(255,0,0);\r\n rect(-5,-6,2,7);\r\n rect(5,-6,2,7);\r\n }\r\n },{\r\n hp: 95*Zombie_di_mult,\r\n speed: 0.4,\r\n Dect: 30,\r\n moneyD: 10,\r\n show: function(){\r\n fill(16,77,4);\r\n ellipse(0,0,20,20);\r\n ellipse(7,-13,5,5);\r\n ellipse(-7,-13,5,5);\r\n fill(255,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n }\r\n },];\r\n var ZOldX=[],\r\n ZOldY=[]; // zombies old X and Y\r\n var ZNewX=[],\r\n ZNewY=[]; // zombies new X and Y\r\n var Zhp=[]; // zombie hp\r\n var ZHeading=[]; // where the zombies heading\r\n var ZHeadingTemp=[]; // where zombies is pushed\r\n var ZRot=[]; // it rot\r\n var ZSpeed=[]; // zombies speed\r\n var ZSpeedMAX=[]; // zombies speed Max\r\n var ZSpeedAtktimer=[]; // zombie attack timer\r\n var ZT=[]; // zombies type\r\n var ZTi=[]; // zombie dect timer\r\n var GUNU=GUNUU; //what items you use\r\n GUNE=GUNU[0];\r\n var itemE=0;\r\n}\r\n//finds key input\r\nvar img=0;\r\nvar keys=[];\r\nvar forcePause=false;\r\nvoid mouseOut(){\r\nkeys=[];\r\nif(!pause){\r\n//forcePause=true;\r\n}\r\n};\r\n\r\nvoid keyPressed(){\r\n keys[keyCode]=true;\r\n};\r\nvoid keyReleased(){\r\n keys[keyCode]=false;\r\n};\r\nvar CLICKED=false;\r\nvoid mouseReleased(){\r\n CLICKED=true;\r\n};\r\nnoStroke();\r\nvar stor2=[];\r\nvar Nlogo = function(){\r\npushMatrix();\r\ntranslate(-80,460);\r\nstroke(255, 255, 255,150);\r\nscale(0.6,0.6);\r\nrectMode(CENTER);\r\nstrokeWeight(3);\r\nnoFill();\r\nrect(200,172,71,78,3);\r\npushMatrix();\r\ntranslate(170,200);\r\nscale(0.05,-0.05);\r\nnoStroke();\r\nfill(255,255,255,150);\r\nbeginShape();\r\nvertex(-67,1158);\r\nvertex(-64,985);\r\nvertex(14,933);\r\nbezierVertex(58,904,102,880,113,880);\r\nbezierVertex(138,880,168,951,180,1042);\r\nbezierVertex(188,1096,213,1260,220,1298);\r\nbezierVertex(220,1299,230,1294,243,1286);\r\nbezierVertex(255,1279,277,1270,291,1266);\r\nbezierVertex(318,1260,340,1241,414,1162);\r\nbezierVertex(459,1114,495,1109,505,1149);\r\nbezierVertex(510,1168,513,1171,520,1160);\r\nbezierVertex(525,1152,532,1149,536,1153);\r\nbezierVertex(540,1157,551,1153,561,1144);\r\nbezierVertex(577,1130,581,1129,594,1142);\r\nbezierVertex(605,1153,620,1155,655,1150);\r\nbezierVertex(680,1146,703,1147,706,1152);\r\nbezierVertex(709,1157,717,1157,723,1152);\r\nbezierVertex(730,1147,743,1144,752,1145);\r\nbezierVertex(761,1147,778,1139,789,1129);\r\nbezierVertex(800,1118,812,1110,815,1110);\r\nbezierVertex(836,1111,840,1108,840,1095);\r\nbezierVertex(840,1076,847,1076,867,1095);\r\nbezierVertex(879,1108,885,1108,898,1098);\r\nbezierVertex(910,1087,914,1087,918,1098);\r\nbezierVertex(921,1108,925,1107,935,1094);\r\nbezierVertex(947,1077,949,1077,973,1093);\r\nbezierVertex(1007,1115,1017,1115,998,1093);\r\nbezierVertex(972,1062,969,1042,991,1047);\r\nbezierVertex(1002,1050,1013,1056,1016,1061);\r\nbezierVertex(1025,1077,1040,1070,1033,1053);\r\nbezierVertex(1029,1042,1030,1039,1038,1044);\r\nbezierVertex(1045,1048,1050,1058,1050,1066);\r\nbezierVertex(1050,1076,1056,1079,1068,1076);\r\nbezierVertex(1077,1073,1096,1080,1109,1091);\r\nbezierVertex(1128,1107,1133,1120,1133,1165);\r\nbezierVertex(1132,1211,1137,1227,1161,1256);\r\nbezierVertex(1183,1284,1187,1296,1180,1311);\r\nbezierVertex(1170,1329,1143,1329,550,1330);\r\nvertex(-69,1330);\r\nvertex(-67,1158);\r\nendShape();\r\nbeginShape();\r\nvertex(1219,1052);\r\nbezierVertex(1210,1048,1183,1027,1159,1006);\r\nbezierVertex(1135,985,1121,971,1129,975);\r\nbezierVertex(1138,980,1141,979,1136,972);\r\nbezierVertex(1132,966,1123,963,1115,966);\r\nbezierVertex(1107,969,1091,965,1078,956);\r\nbezierVertex(1066,947,1060,940,1065,939);\r\nbezierVertex(1094,937,1135,928,1140,924);\r\nbezierVertex(1143,921,1138,913,1128,906);\r\nbezierVertex(1109,892,1104,872,1115,847);\r\nbezierVertex(1119,838,1120,821,1117,810);\r\nbezierVertex(1114,797,1119,785,1133,775);\r\nbezierVertex(1150,763,1151,758,1140,745);\r\nbezierVertex(1121,722,1134,727,1175,760);\r\nbezierVertex(1195,776,1216,788,1220,785);\r\nbezierVertex(1230,779,1254,855,1246,868);\r\nbezierVertex(1243,874,1244,881,1249,884);\r\nbezierVertex(1258,890,1258,896,1263,985);\r\nbezierVertex(1264,1023,1262,1035,1250,1035);\r\nbezierVertex(1242,1036,1236,1041,1238,1048);\r\nbezierVertex(1239,1055,1239,1060,1238,1059);\r\nbezierVertex(1236,1059,1228,1056,1219,1052);\r\nendShape();\r\nbeginShape();\r\nvertex(-69,440);\r\nvertex(-69,-70);\r\nvertex(22,-70);\r\nvertex(115,-70);\r\nvertex(88,-45);\r\nbezierVertex(70,-28,61,-12,64,3);\r\nbezierVertex(66,15,63,31,57,38);\r\nbezierVertex(51,46,45,59,44,68);\r\nbezierVertex(43,78,37,112,31,144);\r\nbezierVertex(25,176,23,206,25,211);\r\nbezierVertex(28,215,24,220,18,223);\r\nbezierVertex(8,226,10,232,23,247);\r\nbezierVertex(33,258,40,271,39,276);\r\nbezierVertex(38,281,39,288,40,293);\r\nbezierVertex(41,297,43,303,44,308);\r\nbezierVertex(51,337,63,360,71,360);\r\nbezierVertex(85,360,82,387,67,393);\r\nbezierVertex(60,396,55,415,56,441);\r\nbezierVertex(57,465,53,490,48,497);\r\nbezierVertex(42,504,43,511,51,515);\r\nbezierVertex(59,521,58,525,49,531);\r\nbezierVertex(37,539,38,542,50,550);\r\nbezierVertex(59,556,61,563,55,568);\r\nbezierVertex(50,572,45,584,45,595);\r\nbezierVertex(45,606,39,621,30,628);\r\nbezierVertex(17,640,17,641,33,636);\r\nbezierVertex(61,627,53,655,23,670);\r\nbezierVertex(-3,683,-3,684,18,688);\r\nbezierVertex(31,690,40,698,40,710);\r\nbezierVertex(40,720,45,732,50,735);\r\nbezierVertex(55,738,60,750,60,760);\r\nbezierVertex(60,770,64,780,69,782);\r\nbezierVertex(74,784,80,792,82,800);\r\nbezierVertex(84,808,89,818,94,821);\r\nbezierVertex(106,830,68,864,-6,911);\r\nvertex(-69,950);\r\nvertex(-69,440);\r\nendShape();\r\nbeginShape();\r\nvertex(590,917);\r\nbezierVertex(565,904,562,884,575,824);\r\nbezierVertex(585,778,677,765,714,805);\r\nbezierVertex(727,819,748,830,763,830);\r\nvertex(789,830);\r\nvertex(769,864);\r\nbezierVertex(735,922,649,947,590,917);\r\nendShape();\r\nbeginShape();\r\nvertex(465,830);\r\nbezierVertex(462,825,446,820,431,820);\r\nbezierVertex(416,820,389,809,370,795);\r\nbezierVertex(347,778,342,770,353,770);\r\nbezierVertex(364,770,370,762,370,749);\r\nbezierVertex(370,695,420,669,485,690);\r\nbezierVertex(518,701,520,704,520,746);\r\nbezierVertex(520,770,524,790,530,790);\r\nbezierVertex(547,790,529,817,504,829);\r\nbezierVertex(474,842,473,842,465,830);\r\nendShape();\r\nbeginShape();\r\nvertex(762,770);\r\nbezierVertex(758,767,753,752,752,736);\r\nbezierVertex(751,720,745,701,739,694);\r\nbezierVertex(731,684,735,673,758,651);\r\nbezierVertex(808,600,880,597,902,645);\r\nbezierVertex(911,665,918,668,943,663);\r\nbezierVertex(970,657,972,658,961,679);\r\nbezierVertex(954,690,945,700,939,700);\r\nbezierVertex(933,700,932,705,935,710);\r\nbezierVertex(938,716,932,720,921,720);\r\nbezierVertex(909,720,900,725,900,730);\r\nbezierVertex(900,736,894,740,887,740);\r\nbezierVertex(880,740,867,749,857,760);\r\nbezierVertex(845,775,830,780,805,778);\r\nbezierVertex(785,777,766,773,762,770);\r\nendShape();\r\nbeginShape();\r\nvertex(547,622);\r\nbezierVertex(530,619,531,616,550,585);\r\nvertex(571,551);\r\nvertex(525,544);\r\nbezierVertex(495,540,476,531,469,518);\r\nbezierVertex(463,508,453,501,447,503);\r\nbezierVertex(440,505,427,503,418,498);\r\nbezierVertex(407,493,400,493,400,499);\r\nbezierVertex(400,504,406,511,413,514);\r\nbezierVertex(419,518,411,518,394,516);\r\nbezierVertex(377,513,359,515,354,520);\r\nbezierVertex(349,525,325,530,300,533);\r\nbezierVertex(262,536,265,537,320,539);\r\nbezierVertex(356,540,379,544,372,547);\r\nbezierVertex(355,554,367,570,389,570);\r\nbezierVertex(416,570,437,597,421,613);\r\nbezierVertex(413,621,407,621,402,615);\r\nbezierVertex(395,606,333,580,316,580);\r\nbezierVertex(312,580,312,585,315,590);\r\nbezierVertex(319,597,301,600,263,599);\r\nbezierVertex(221,598,200,592,187,579);\r\nbezierVertex(177,568,174,560,180,560);\r\nbezierVertex(200,560,190,543,163,531);\r\nvertex(135,518);\r\nvertex(157,503);\r\nbezierVertex(170,494,180,482,180,474);\r\nbezierVertex(180,459,145,446,130,455);\r\nbezierVertex(124,458,123,455,126,446);\r\nbezierVertex(129,438,141,428,153,424);\r\nbezierVertex(173,418,173,417,155,404);\r\nbezierVertex(140,393,139,386,147,367);\r\nbezierVertex(153,354,156,313,154,275);\r\nbezierVertex(150,220,153,203,167,188);\r\nbezierVertex(184,169,184,168,165,154);\r\nbezierVertex(149,142,149,140,162,140);\r\nbezierVertex(171,140,182,135,186,128);\r\nbezierVertex(190,121,189,120,182,124);\r\nbezierVertex(175,128,170,126,170,121);\r\nbezierVertex(170,115,177,110,185,110);\r\nbezierVertex(206,110,204,83,183,71);\r\nbezierVertex(173,66,165,51,165,38);\r\nbezierVertex(165,22,158,14,143,12);\r\nbezierVertex(120,9,112,-14,130,-25);\r\nbezierVertex(137,-29,137,-38,130,-51);\r\nbezierVertex(119,-64,127,-70,584,-70);\r\nbezierVertex(1013,-70,1050,-69,1059,-53);\r\nbezierVertex(1066,-40,1063,-31,1048,-18);\r\nbezierVertex(1036,-8,1021,0,1013,0);\r\nbezierVertex(1006,0,1000,5,1000,10);\r\nbezierVertex(1000,22,1043,40,1068,40);\r\nbezierVertex(1084,39,1084,38,1068,26);\r\nbezierVertex(1044,8,1045,0,1071,5);\r\nbezierVertex(1101,11,1129,38,1127,61);\r\nbezierVertex(1126,83,1110,86,1092,68);\r\nbezierVertex(1078,54,1076,68,1089,88);\r\nbezierVertex(1094,96,1108,99,1126,96);\r\nvertex(1155,90);\r\nvertex(1128,101);\r\nbezierVertex(1097,113,1091,130,1116,130);\r\nbezierVertex(1126,130,1130,136,1126,145);\r\nbezierVertex(1120,161,1129,164,1154,154);\r\nbezierVertex(1163,151,1167,143,1163,136);\r\nbezierVertex(1159,130,1164,131,1173,139);\r\nbezierVertex(1196,157,1194,173,1170,165);\r\nbezierVertex(1148,158,1147,160,1156,184);\r\nbezierVertex(1159,193,1169,200,1177,200);\r\nbezierVertex(1187,200,1189,206,1185,220);\r\nbezierVertex(1182,231,1182,245,1187,252);\r\nbezierVertex(1198,270,1200,290,1190,290);\r\nbezierVertex(1185,290,1174,293,1164,297);\r\nbezierVertex(1153,301,1149,299,1153,293);\r\nbezierVertex(1157,287,1146,283,1127,282);\r\nbezierVertex(1098,282,1097,283,1118,291);\r\nbezierVertex(1131,296,1138,304,1135,310);\r\nbezierVertex(1132,315,1134,320,1139,320);\r\nbezierVertex(1145,320,1150,325,1150,331);\r\nbezierVertex(1150,336,1146,339,1141,335);\r\nbezierVertex(1135,332,1132,338,1133,349);\r\nbezierVertex(1134,363,1138,366,1146,359);\r\nbezierVertex(1154,352,1156,357,1152,375);\r\nbezierVertex(1149,392,1152,400,1161,400);\r\nbezierVertex(1169,401,1162,407,1145,414);\r\nbezierVertex(1113,428,1086,424,1097,407);\r\nbezierVertex(1101,400,1097,399,1086,403);\r\nbezierVertex(1076,407,1066,410,1064,410);\r\nbezierVertex(1062,410,1060,417,1060,426);\r\nbezierVertex(1060,448,1022,480,1004,473);\r\nbezierVertex(996,470,990,472,990,477);\r\nbezierVertex(990,488,875,514,862,506);\r\nbezierVertex(856,503,839,507,824,515);\r\nbezierVertex(808,523,786,530,775,530);\r\nbezierVertex(758,530,758,528,780,513);\r\nbezierVertex(828,480,834,470,808,469);\r\nbezierVertex(795,468,775,466,763,465);\r\nbezierVertex(750,464,740,467,740,471);\r\nbezierVertex(740,476,735,480,729,480);\r\nbezierVertex(723,480,705,491,689,504);\r\nbezierVertex(674,517,655,530,648,533);\r\nbezierVertex(639,536,645,546,665,563);\r\nbezierVertex(695,588,695,589,675,604);\r\nbezierVertex(664,612,646,620,635,620);\r\nbezierVertex(624,621,604,622,590,623);\r\nbezierVertex(576,625,557,624,547,622);\r\nendShape();\r\npopMatrix();\r\ntextAlign(CENTER,CENTER);\r\nfill(255, 255, 255,150);\r\nrect(201,210,74,15,3);\r\nfill(0, 0, 0,150);\r\ntextSize(15);textFont(createFont(\"Arial Bold\"));\r\ntext(\"TAZAL\",203,211);\r\npopMatrix();\r\n};\r\n//**********************************************************\r\n// Item assests\r\n//**********************************************************\r\nvar ITEMS=[{\r\n //food\r\n onPickupText: \"+15 HP\",\r\n SHOW: function(){\r\n noStroke();\r\n fill(255,0,0);\r\n rect(0,0,8,8);\r\n fill(255,255,255);\r\n rect(0,0,4,2);\r\n rect(0,0,2,4);\r\n },\r\n onPickUp: function(){\r\n Php+=15;\r\n }\r\n},{\r\n onPickupText: \"\",\r\n SHOW: function(){\r\n noStroke();\r\n fill(26,153,20);\r\n rect(0,0,5,8);\r\n fill(161,255,156);\r\n rect(0,0,5,4);\r\n },\r\n onPickUp: function(){\r\n money+=1;\r\n \r\n }\r\n},{\r\n onPickupText: \"+100 mec gun ammo\",\r\n SHOW: function(){\r\n fill(255,166,0);\r\n rect(0,0,8,8);\r\n fill(153,143,8);\r\n rect(0,0-2,4,1);\r\n rect(0,0+2,4,1);\r\n rect(0,0,4,1);\r\n },\r\n onPickUp: function(){\r\n AmmoBANK[0]+=100;\r\n }\r\n},{\r\n onPickupText: \"+12 pistol ammo\",\r\n SHOW: function(){\r\n fill(255,255,255);\r\n rect(0,0,8,8);\r\n fill(255,245,61);\r\n rect(0,0-2,4,1);\r\n rect(0,0+2,4,1);\r\n rect(0,0,4,1);\r\n },\r\n onPickUp: function(){\r\n AmmoBANK[1]+=12;\r\n }\r\n},{\r\n onPickupText: \"+5 sniper ammo\",\r\n SHOW: function(){\r\n fill(173,129,75);\r\n rect(0,0,8,8);\r\n fill(255,245,61);\r\n rect(0,0-2,4,1);\r\n rect(0,0+2,4,1);\r\n rect(0,0,4,1);\r\n },\r\n onPickUp: function(){\r\n AmmoBANK[2]+=5;\r\n }\r\n},{\r\n onPickupText: \"+4 shot gun ammo\",\r\n SHOW: function(){\r\n fill(255,255,255);\r\n rect(0,0,8,8);\r\n fill(255,61,61);\r\n rect(0,0-2,4,1);\r\n rect(0,0+2,4,1);\r\n rect(0,0,4,1);\r\n },\r\n onPickUp: function(){\r\n AmmoBANK[3]+=4;\r\n }\r\n},{\r\n onPickupText: \"+30 rifle ammo\",\r\n SHOW: function(){\r\n fill(15,130,9);\r\n rect(0,0,8,8);\r\n fill(217,201,26);\r\n rect(0,0-2,4,1);\r\n rect(0,0+2,4,1);\r\n rect(0,0,4,1);\r\n },\r\n onPickUp: function(){\r\n AmmoBANK[4]+=30;\r\n }\r\n},{\r\n onPickupText: \"+50 smg ammo\",\r\n SHOW: function(){\r\n fill(0,0,0);\r\n rect(0,0,8,8);\r\n fill(217,201,26);\r\n rect(0,0-2,4,1);\r\n rect(0,0+2,4,1);\r\n rect(0,0,4,1);\r\n },\r\n onPickUp: function(){\r\n AmmoBANK[5]+=50;\r\n }\r\n},{\r\n onPickupText: \"+15 armor\",\r\n SHOW: function(){\r\n fill(0,0,0);\r\n beginShape();\r\n vertex(-7,4);\r\n vertex(-7,-7);\r\n vertex(7,-7);\r\n vertex(7,4);\r\n vertex(0,9);\r\n endShape();\r\n fill(69,69,69);\r\n beginShape();\r\n vertex(-5,2);\r\n vertex(-5,-5);\r\n vertex(5,-5);\r\n vertex(5,2);\r\n vertex(0,6);\r\n endShape();\r\n \r\n },\r\n onPickUp: function(){\r\n Parmor+=15;\r\n if(HaveSound){playSound(getSound(\"rpg/step-heavy\"));}\r\n }\r\n},{\r\n onPickupText: \"+1 GEM\",\r\n SHOW: function(){\r\n fill(54, 135, 130);\r\n beginShape();\r\n vertex(-8,0);\r\n vertex(-3,-4);\r\n vertex(3,-4);\r\n vertex(8,0);\r\n vertex(0,8);\r\n endShape();\r\n fill(16, 227, 213);\r\n beginShape();\r\n vertex(-6,0);\r\n vertex(-2,-3);\r\n vertex(2,-3);\r\n vertex(6,0);\r\n vertex(0,6);\r\n endShape();\r\n },\r\n onPickUp: function(){\r\n Gems+=1;\r\n}\r\n},{\r\n onPickupText: \"+20 sprint\",\r\n SHOW: function(){\r\n fill(129, 255, 110);\r\n rect(0,0,8,8);\r\n fill(255,255,255);\r\n rect(0,0,4,2);\r\n rect(0,0,2,4);\r\n\r\n },\r\n onPickUp: function(){\r\n PS+=20;\r\n}\r\n },{\r\n onPickupText: \"+1 grenade\",\r\n SHOW: function(){\r\n fill(9, 38, 4);\r\n rect(0,-7,5,7);\r\n fill(15, 69, 20);\r\n ellipse(0,0,12,12);\r\n },\r\n onPickUp: function(){\r\n PowerCount+=1;\r\n }\r\n},];\r\n//**********************************************************\r\n// fade effects for the menu\r\n//**********************************************************\r\nvar FADE=function(position,t){\r\n \r\n \r\n this.LiveT=250.0;\r\n\r\n FADE.prototype.run=function(){\r\n noStroke();\r\n if(scene===1){\r\n this.LiveT-=1;\r\n }\r\n else {\r\n this.LiveT-=5;\r\n }\r\n fill(255,255,255,this.LiveT);\r\n rect(width/2,height/2,width,height);\r\n \r\n if(scene===1){\r\n this.LiveT=0;\r\n }\r\n };\r\n FADE.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// draw key\r\n//**********************************************************\r\nvar keyDraw=function(x,y,K){\r\n noFill();\r\n stroke(8,8,8);\r\n strokeWeight(3);\r\n rect(x,y,50,50,10);\r\n fill(3,3,3);\r\n textSize(31);\r\n text(K,x,y+3);\r\n fill(255,255,255);\r\n textSize(30);\r\n text(K,x,y);\r\n};\r\n//**********************************************************\r\n// menu buttons function\r\n//**********************************************************\r\nvar button=function(x,y,w,h,txt,txtS,goto){\r\n fill(219,219,219,50);\r\n strokeWeight(5);\r\n stroke(0,0,0);\r\n if(mouseX>x-(w/2)&& mouseX<x+(w/2)&& mouseY>y-(h/2)&&\r\n mouseY<y+(h/2)){\r\n fill(173,173,173,200);\r\n cursor(\"pointer\");\r\n if(CLICKED){\r\n // if(mouseClicked){\r\n stor2.push(new FADE(0,0,3));\r\n scene=goto;\r\n if(HaveSound){playSound(getSound(\"rpg/metal-clink\"));}\r\n //println(goto);\r\n // }\r\n } //}\r\n }\r\n rect(x,y,w,h);\r\n strokeWeight(2);\r\n stroke(140,140,140);\r\n noFill();\r\n rect(x,y,w-5,h-5);\r\n fill(0,0,0);\r\n textSize(txtS);\r\n if(mouseX>x-(w/2)&& mouseX<x+(w/2)&& mouseY>y-(h/2)&&\r\n mouseY<y+(h/2)){\r\n noFill();\r\n fill(0,0,0);\r\n text(txt,x,(y+txtS/8)+ (h/25));\r\n fill(255,255,255);\r\n textSize(txtS);\r\n text(txt,x,y+(h/25));\r\n }\r\n else {\r\n fill(0,0,0);\r\n text(txt,x,y+txtS/8);\r\n fill(255,255,255);\r\n textSize(txtS);\r\n text(txt,x,y);\r\n }\r\n noStroke();\r\n};\r\n\r\n//**********************************************************\r\n// sdsd\r\n//**********************************************************\r\nvar Zshot2=function(position,pos2x,pos2y,rot){\r\n this.acceleration=new PVector(0.00,0.00);\r\n this.position=position.get();\r\n this.LiveT=255.0;\r\n this.OldX=this.position.x+random(-10,10);\r\n this.OldY=this.position.y+random(-10,10);\r\n this.NewX=0;\r\n this.NewY=0;\r\n this.Heading=rot;\r\n if(splat_Spawn===1){this.LiveT=-1;}\r\n Zshot2.prototype.run=function(){\r\n this.NewX=this.OldX+(1.5*cos1(this.Heading)); //\r\n this.NewY=this.OldY+(1.5*sin1(this.Heading));\r\n this.OldX=this.NewX;\r\n this.OldY=this.NewY;\r\n pushMatrix();\r\n translate(300-CamX,300-CamY);\r\n \r\n translate(this.OldX,this.OldY);\r\n noStroke();\r\n fill(74,204,51,this.LiveT);\r\n ellipse(0,0,5,5);\r\n this.LiveT-=8;\r\n popMatrix();\r\n };\r\n Zshot2.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// splat marks\r\n//**********************************************************\r\nvar spt=function(position){\r\n this.position=position.get();\r\n this.LiveT=355.0;\r\n this.size=random(5,10);\r\n if(REMOVELAG){\r\n this.LiveT=155.0;\r\n }\r\n if(FIX_SHOP_BUG){this.LiveT=100;}\r\n if(stor.length>Max_effects){\r\n this.LiveT=50;\r\n }\r\n};\r\n spt.prototype.run=function(){\r\n this.LiveT-=1;\r\n //pushMatrix();\r\n\r\n fill(103,355,0,this.LiveT);\r\n //translate(this.position.x,this.position.y);\r\n ellipse(this.position.x,this.position.y,this.size,this.size);\r\n //popMatrix();\r\n };\r\n spt.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n\r\n//**********************************************************\r\n// expolsion particle\r\n//**********************************************************\r\nvar BOOM=function(position){\r\n this.position=position.get();\r\n this.LiveT=250;\r\n this.starCenterX=0; //this.position.x+(300-CamX);\r\n this.starCenterY=0; //this.position.y+(300-CamY);\r\n this.starRad=150;\r\n this.pointX=0;\r\n this.pointY=0;\r\n this.angle=random(0,180);\r\n noStroke();\r\n BOOM.prototype.run=function(){\r\n this.LiveT-=20;\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n beginShape();\r\n fill(255,234,0,this.LiveT);\r\n for (var count=0; count<7; count++){\r\n this.pointX=this.starCenterX+this.starRad*sin1(this.angle);\r\n this.pointY=this.starCenterY+this.starRad*cos1(this.angle);\r\n vertex(this.pointX,this.pointY);\r\n this.angle+=360/7*4;\r\n }\r\n endShape(CLOSE);\r\n fill(355-this.LiveT,0,21,this.LiveT);\r\n beginShape();\r\n for (var count=0; count<7; count++){\r\n this.pointX=this.starCenterX+60*sin1(this.angle);\r\n this.pointY=this.starCenterY+60*cos1(this.angle);\r\n vertex(this.pointX,this.pointY);\r\n this.angle+=360/7*4;\r\n }\r\n endShape(CLOSE);\r\n if(dist(this.position.x,this.position.y,PX,PY)< 100){\r\n if(Parmor <=0){\r\n DiedHow=\"blown up\";\r\n Php-=2;\r\n }\r\n else {\r\n DiedHow=\"blown up\";\r\n Parmor-=1;\r\n }\r\n }\r\n popMatrix();\r\n };\r\n BOOM.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\nvar Gnad = function(position) {\r\n this.LiveT = 255.0;\r\n this.TX = mouseX-(300-CamX);\r\n this.TY = mouseY-(300-CamY);\r\n this.X = position.x;\r\n this.Y = position.y;\r\n this.Rot=random(0,360);\r\nGnad.prototype.run = function() {\r\n this.X += (this.TX - this.X) * 0.03;\r\n this.Y += (this.TY - this.Y) * 0.03;\r\n\r\npushMatrix();\r\ntranslate(this.X,this.Y);\r\nrotate1(this.Rot);\r\n fill(9, 38, 4);\r\n rect(0,-7,5,7);\r\n fill(15, 69, 20);\r\n ellipse(0,0,12,12);\r\nthis.LiveT-=5;\r\npopMatrix();\r\n\r\n};\r\nGnad.prototype.isDead = function() {\r\nif (this.LiveT < 0) {\r\n Pnoise+=300;\r\n if(HaveSound){playSound(getSound(\"retro/rumble\"));}\r\n for (var j=0; j<ZOldX.length; j++){\r\n if(dist(ZOldX[j],ZOldY[j],this.X,this.Y)<\r\n 100){\r\n Zhp[j]-=150-dist(ZOldX[j],ZOldY[j],this.X,\r\n this.Y);\r\n for (var w=0; w <=splat_Spawn*4; w++){\r\n stor.push(new spt(new PVector(ZOldX[j]+random(-20,20),\r\n ZOldY[j]+random(-20,20))));\r\n }\r\n }\r\n }\r\n stor.push(new BOOM(new PVector(this.X,this.Y)));return true;} else {return false;}\r\n};};\r\nvar AirStk = function(position) {\r\n this.LiveT = 300.0;\r\n this.TX = mouseX-(300-CamX);\r\n this.TY = mouseY-(300-CamY);\r\n this.X = position.x;\r\n this.Y = position.y;\r\n this.RX=0;\r\n this.RY=0;\r\n this.Rot=random(0,360);\r\nAirStk.prototype.run = function() {\r\n this.X = this.TX;\r\n this.Y = this.TY;\r\n\r\npushMatrix();\r\ntranslate(this.X,this.Y);\r\nrotate1(this.Rot);\r\n fill(217, 44, 35,150);\r\n ellipse(0,0,20,20);\r\nthis.LiveT-=1;\r\npopMatrix();\r\nif(this.LiveT<=100){\r\nif(this.LiveT%10===0){\r\n this.RX=this.X+random(-150,150);\r\n this.RY=this.Y+random(-150,150);\r\n for (var j=0; j<ZOldX.length; j++){\r\n if(dist(ZOldX[j],ZOldY[j],this.RX,this.RY)<100){\r\n Zhp[j]-=150;\r\n \r\n for (var w=0; w <=splat_Spawn*4; w++){\r\n stor.push(new spt(new PVector(ZOldX[j]+random(-20,20),\r\n ZOldY[j]+random(-20,20))));\r\n }\r\n }\r\n }\r\n stor.push(new BOOM(new PVector(this.RX,this.RY)));\r\n}}\r\n};\r\nAirStk.prototype.isDead = function() {\r\nif (this.LiveT < 0) {\r\n Pnoise+=300;\r\n\r\n return true;} else {return false;}\r\n};};\r\n\r\nvar Adrine=function(){\r\n // this.position=position.get();\r\n this.LiveT=255.0;\r\n Adrine.prototype.run=function(){\r\n this.LiveT-=0.5;\r\n Php+=Php/100;\r\n PS+=PS/100;\r\n damageMULTbase=3;\r\n fill(117, 9, 9,this.LiveT);\r\n rect(300,300,700,700);\r\n \r\n };\r\n Adrine.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n damageMULTbase=1;\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n\r\n//**********************************************************\r\n// Splat marks that cover the screen\r\n//**********************************************************\r\nvar BigSplat=function(position){\r\n this.position=position.get();\r\n this.LiveT=555.0;\r\n this.A=0;\r\n this.size=random(50,150);\r\n BigSplat.prototype.run=function(){\r\n if(scene===1){this.LiveT-=0.5;}\r\n this.A+=0.2;\r\n noStroke();\r\n fill(0,255,0,this.LiveT);\r\n ellipse(this.position.x,this.position.y+this.A,this.size,this.size +\r\n this.A);\r\n if(scene===0){this.LiveT=0;}\r\n };\r\n BigSplat.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n\r\n//**********************************************************\r\n// spitter zombies spit\r\n//**********************************************************\r\nvar Zshot=function(position,rot){\r\n this.acceleration=new PVector(0.00,0.00);\r\n this.position=position.get();\r\n this.LiveT=255.0;\r\n this.OldX=this.position.x;\r\n this.OldY=this.position.y;\r\n this.NewX=0;\r\n this.NewY=0;\r\n // println(rot);\r\n this.Heading=rot; //atan3(PY-this.OldY,PX-this.OldX);\r\n};\r\n Zshot.prototype.run=function(){\r\n this.NewX=this.OldX+(4*cos1(this.Heading)); //\r\n this.NewY=this.OldY+(4*sin1(this.Heading));\r\n this.OldX=this.NewX;\r\n this.OldY=this.NewY;\r\n pushMatrix();\r\n translate(this.OldX,this.OldY);\r\n noStroke();\r\n fill(51,237,19,200);\r\n ellipse(0,0,12,12);\r\n fill(38,179,16,200);\r\n ellipse(0,0,10,10);\r\n if(dist(this.OldX,this.OldY,PX,PY)< 20){\r\n if(Parmor <=0){\r\n DiedHow=\"hit by\\n a goo ball\";\r\n Php-=20+Zombie_di_mult;\r\n }\r\n else {\r\n DiedHow=\"hit by\\n a goo ball\";\r\n Parmor-=20+Zombie_di_mult;\r\n }\r\n this.LiveT=-1;\r\n for (var w=0; w <=splat_Spawn*4; w++){\r\n stor.push(new spt(new PVector(PX+random(-20,20),\r\n PY+random(-20,20))));\r\n }\r\n for (var t=0; t<2; t++){\r\n stor2.push(new BigSplat(new PVector(random(0,width),random(\r\n 0,width))));\r\n }\r\n\r\n }\r\n \r\n this.LiveT-=1;\r\n popMatrix();\r\n //if(frameCount%2=e==1){stor2.push(new Zshot2(new PVector(this.OldX,this.OldY),0,0,this.Heading));}\r\n };\r\n Zshot.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n\r\n//**********************************************************\r\n// gun change function\r\n//**********************************************************\r\nvar gunchange=function(){\r\n BAcc=GUN[GUNE].acc; // gun acc\r\n BAccM=GUN[GUNE].acc;\r\n BAccAdd=GUN[GUNE].AccA;\r\n BAccR=GUN[GUNE].AccS;\r\n BperS=GUN[GUNE].BPS; // bullets per shot\r\n BSpeed=GUN[GUNE].speed; // bullet speed\r\n BDelay=GUN[GUNE].delay; // shot delay\r\n Bdam=GUN[GUNE].damage; // bullet damage\r\n ammo=GUN[GUNE].ammo; // gun ammo\r\n ammoMax=GUN[GUNE].ammoMax; // gun ammo max\r\n //ammoR=GUN[GUNE].ammoBank; // ammo res\r\n Reload=GUN[GUNE].reload; // how fast is the reload\r\n gunT=GUN[GUNE].Type; // the type\r\n BhpL=GUN[GUNE].Blife; // the bullets live\r\n};\r\n//**********************************************************\r\n// Big text particles\r\n//**********************************************************\r\nvar ParticleTxt2=function(position,AMT){\r\n this.acceleration=new PVector(0.00,0.00);\r\n this.velocity=new PVector(random(-0,0),random(0,-0));\r\n this.position=position.get();\r\n this.LiveT=250.0;\r\n this.txt=AMT;\r\n ParticleTxt2.prototype.run=function(){\r\n this.velocity.add(this.acceleration);\r\n this.position.add(this.velocity);\r\n this.LiveT-=1;\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n noStroke();\r\n fill(255,255,255,this.LiveT);\r\n textSize(65);\r\n text(this.txt,0,0);\r\n textSize(12);\r\n popMatrix();\r\n };\r\n ParticleTxt2.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// text particles\r\n//**********************************************************\r\nvar ParticleTxt=function(position,AMT){\r\n this.acceleration=new PVector(0.00,-0.01);\r\n this.velocity=new PVector(random(-0,0),random(0,-0));\r\n this.position=position.get();\r\n this.LiveT=250.0;\r\n this.txt=AMT;\r\n ParticleTxt.prototype.run=function(){\r\n this.velocity.add(this.acceleration);\r\n this.position.add(this.velocity);\r\n this.LiveT-=3;\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n noStroke();\r\n fill(255,255,255,this.LiveT);\r\n textSize(20);\r\n text(this.txt,0,0);\r\n textSize(12);\r\n popMatrix();\r\n };\r\n ParticleTxt.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// ITEM DROP\r\n//**********************************************************\r\nvar ITEM=function(position,t){\r\n this.position=position.get();\r\n this.LiveT=5555.0;\r\n this.Rot=random(0,360);\r\n this.T=t;\r\n ITEM.prototype.run=function(){\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n rotate1(this.Rot);\r\n this.LiveT-=6;\r\n ITEMS[this.T].SHOW();\r\n popMatrix();\r\n if(dist(this.position.x,this.position.y,PX,PY)<=30){\r\n this.LiveT=-1;\r\n }\r\n };\r\n ITEM.prototype.isDead=function(){\r\n if(this.LiveT <=0){\r\n stor2.push(new ParticleTxt(new PVector(300,500),ITEMS[this.T].onPickupText));\r\n ITEMS[this.T].onPickUp();\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// gun shells particles\r\n//**********************************************************\r\nvar shell=function(position){\r\n this.position=position.get();\r\n this.LiveT=555.0;\r\n this.R=angle;\r\n this.B=0;\r\n this.A=0;\r\n this.BA=random(1.4,1.8);\r\n if(FIX_SHOP_BUG){this.LiveT=0;}\r\n shell.prototype.run=function(){\r\n this.LiveT-=6;\r\n pushMatrix();\r\n noStroke();\r\n fill(180,180,0,this.LiveT);\r\n translate(this.position.x,this.position.y);\r\n rotate1(this.R);\r\n this.R+=random(-this.BA,this.BA);\r\n rect(this.B,-20+(this.A/3),3,8);\r\n this.B+=this.BA;\r\n this.A+=random(-this.BA,this.BA);\r\n this.BA-=0.05;\r\n popMatrix();\r\n this.BA=constrain(this.BA,0,1.8);\r\n \r\n };\r\n shell.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n\r\n//**********************************************************\r\n// Crate wood marks\r\n//**********************************************************\r\nvar Cratespt=function(position){\r\n this.position=position.get();\r\n this.LiveT=255.0;\r\n this.rot=random(0,360);\r\n this.size=random(8,20);\r\n \r\n if(FIX_SHOP_BUG){this.LiveT=0;}\r\n Cratespt.prototype.run=function(){\r\n if(REMOVELAG){\r\n this.LiveT=-1;\r\n }\r\n this.LiveT-=1;\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n rotate1(this.rot);\r\n fill(176,106,0,this.LiveT);\r\n rect(0,0,this.size,5);\r\n popMatrix();\r\n };\r\n Cratespt.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// drop items\r\n//**********************************************************\r\nvar Additem=function(X,Y){\r\n var randomDropitem=floor(random(0,20));\r\n if(randomDropitem>15){\r\n // stor.push(new ITEM(new PVector(X,Y),round(random(2,7))));\r\n }\r\n if(randomDropitem===15&&Php<50){\r\n stor.push(new ITEM(new PVector(X,Y),0));\r\n }\r\n if(randomDropitem===1){\r\n stor.push(new ITEM(new PVector(X,Y),8));\r\n }\r\n if(randomDropitem===10&&wave >=10){\r\n stor.push(new ITEM(new PVector(X,Y),9));\r\n }\r\n if(randomDropitem===18&&PS!==PSmax){\r\n stor.push(new ITEM(new PVector(X,Y),10));\r\n }\r\n};\r\n//**********************************************************\r\n// kills the bullet\r\n//**********************************************************\r\nvar Bkill=function(X){\r\n BOldX.splice(X,1);\r\n BOldY.splice(X,1);\r\n BNewX.splice(X,1);\r\n BNewY.splice(X,1);\r\n BRot.splice(X,1);\r\n BHeading.splice(X,1);\r\n Bhp.splice(X,1);\r\n Bpow.splice(X,1);\r\n};\r\n//**********************************************************\r\n// add zombie\r\n//**********************************************************\r\nvar AddZombie=function(T,num,x,y){\r\n for (var V=0; V<num; V++){\r\n ZT.push(T);\r\n if(x !==0){\r\n ZOldX.push(x+random(-10,10));\r\n ZOldY.push(y+random(-10,10));\r\n }\r\n else {\r\n ZOldX.push(random(-400,MAP_W+400)+ random(-10,10));\r\n ZOldY.push(random(-400,MAP_W+400)+ random(-10,10));\r\n }\r\n ZNewX.push(0);\r\n ZNewY.push(0);\r\n ZRot.push(random(0,360));\r\n Zhp.push(Zombies[T].hp*Zombie_di_mult);\r\n ZHeading.push(random(0,360));\r\n ZHeadingTemp.push(0);\r\n ZSpeed.push(Zombies[T].speed);\r\n ZSpeedMAX.push(Zombies[T].speed);\r\n ZSpeedAtktimer.push(1000);\r\n ZTi.push(Zombie_Dect_timer);\r\n }\r\n};\r\n//**********************************************************\r\n// kills the Zombie\r\n//**********************************************************\r\nvar Zkill=function(X){\r\n shake+=0.3;\r\n Zkills+=1;\r\n ZT.splice(X,1);\r\n ZTi.splice(X,1);\r\n ZNewX.splice(X,1);\r\n ZNewY.splice(X,1);\r\n ZOldX.splice(X,1);\r\n ZOldY.splice(X,1);\r\n ZRot.splice(X,1);\r\n ZHeading.splice(X,1);\r\n Zhp.splice(X,1);\r\n ZHeadingTemp.splice(X,1);\r\n ZSpeed.splice(X,1);\r\n ZSpeedMAX.splice(X,1);\r\n ZSpeedAtktimer.splice(X,1);\r\n};\r\n//**********************************************************\r\n// akting\r\n//**********************************************************\r\nvar AtkTimer=0;\r\nvar ArotX=0;\r\nvar ArotY=0;\r\nvar PrivE=0;\r\nvar AtkM=0;\r\nvar Atking=false;\r\n\r\nvar AktingShow=function(){\r\n this.LiveT=80.0;\r\n this.rot=random(0,360);\r\n this.lastGun=GUNE;\r\n this.lastE=itemE;\r\n AktingShow.prototype.run=function(){\r\n this.LiveT-=meleeWep[meleeE].speed;\r\n pushMatrix();\r\n translate(-300+CamX,-300+CamY);\r\n translate(600,600);\r\n translate(-303-(PmouseX-width/2)/2,-300-(PmouseY-\r\n height/2)/2);\r\n //shows the gun\r\n meleeWep[meleeE].display(this.LiveT);\r\n AtkTimer=meleeWep[meleeE].delay;\r\n \r\n popMatrix();\r\n for (var ii=0; ii <=ZOldX.length; ii++){\r\n if(dist(ZOldX[ii],ZOldY[ii],PX+ArotX,PY+ArotY)<=meleeWep[meleeE].range){\r\n ZHeading[ii]=atan3(PY-ZOldY[ii],PX-ZOldX[ii]);\r\n Zhp[ii]-=meleeWep[meleeE].damage*(1+(AtkM/100));\r\n ZSpeed[ii]=ZSpeedMAX[ii];\r\n //makes splat marks\r\n for (var i=0; i <=splat_Spawn; i++){\r\n stor2.push(new spt(new PVector(ZOldX[ii]+random(-20,20),\r\n ZOldY[ii]+random(-20,20))));\r\n }\r\n }\r\n }\r\n };\r\n AktingShow.prototype.isDead=function(){\r\n if(this.LiveT<-70){\r\n Atking=false;\r\n GUNE=this.lastGun;\r\n gunchange();\r\n itemE=this.lastE;\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\nvar popText = function(pos) {\r\n this.pos = pos.get();\r\n this.value=0;\r\n this.Ovalue=0;\r\n this.Evalue=0;\r\n this.chTimer=0;\r\n this.LiveT=1;\r\npopText.prototype.run = function() {\r\n this.LiveT-=10;\r\n if(this.value!==this.Ovalue){\r\n this.Ovalue=this.value;\r\n this.chTimer+=100;\r\n this.LiveT+=255;\r\n \r\n }\r\n noStroke();\r\n textAlign(CENTER,CENTER);\r\n fill(255, 255, 255,this.LiveT);\r\n pushMatrix();\r\n translate(this.pos.x,this.pos.y);\r\n rotate1(this.chTimer/3);\r\n if(this.value-this.Evalue>=3){textSize(30+this.chTimer/5);\r\n text(this.value-this.Evalue,0,0);\r\n }\r\n popMatrix();\r\n this.value=Zkills;\r\n this.chTimer-=10;\r\n this.chTimer=constrain(this.chTimer,0,200);\r\n \r\n this.LiveT=constrain(this.LiveT,0,600);\r\n if(this.LiveT<=0){\r\n this.Evalue=Zkills-1;\r\n this.LiveT=1;\r\n }\r\n\r\n};\r\npopText.prototype.isDead = function() {\r\n//if(this.LiveT<=0){return true;}\r\n};\r\n};\r\n\r\n//**********************************************************\r\n// m atk\r\n//**********************************************************\r\n\r\nvar MAtk=function(){\r\n if(AtkTimer <=0){\r\n var ArotX=sin1(angle-12)* 300/11.5;\r\n var ArotY=-cos1(angle-12)* 300/11.5;\r\n Atking=true;\r\n AtkTimer=meleeWep[meleeE].delay;\r\n stor.push(new AktingShow());\r\n for (var ii=0; ii <=ZOldX.length; ii++){\r\n if(dist(ZOldX[ii],ZOldY[ii],PX+ArotX,PY+ArotY)<=meleeWep[meleeE].range){\r\n ZHeading[ii]=atan3(PY-ZOldY[ii],PX-ZOldX[ii]);\r\n Zhp[ii]-=meleeWep[meleeE].damage*(1+(AtkM/100));\r\n ZSpeed[ii]=ZSpeedMAX[ii];\r\n //makes splat marks\r\n for (var i=0; i <=splat_Spawn; i++){\r\n stor.push(new spt(new PVector(ZOldX[ii]+random(-20,20),\r\n ZOldY[ii]+random(-20,20))));\r\n }\r\n }\r\n }\r\n // GUNE=GUNU[1];gunchange();itemE=1;\r\n }\r\n};\r\n//**********************************************************\r\n// reload and fireing\r\n//**********************************************************\r\nvar FireModeCheck = false;\r\nvar GunMATH=function(){\r\n time++;\r\n shooting=false;\r\n if(time>BDelay&&ammo>0&&IsReloading===false){\r\n if((keys[32] || mousePressed)){\r\n \r\n if(!FireModeCheck){\r\n for (var i=0; i<BperS; i++){\r\n shotFired+=1;\r\n var rotX=sin1(angle-12)* 300/11.5;\r\n var rotY=-cos1(angle-12)* 300/11.5;\r\n shooting=true;\r\n Bhp.push(BhpL);\r\n BOldX.push(PX+rotX);\r\n BOldY.push(PY+rotY);\r\n BRot.push(angle);\r\n BHeading.push(angle-90-random(BAcc*-1,BAcc));\r\n Bpow.push(Bdam);\r\n \r\n \r\n }\r\n stor.push(new shell(new PVector(PX,PY)));\r\n Pnoise+=GUN[GUNE].noise;\r\n if(HaveSound){playSound(getSound(\"retro/hit2\"));}\r\n // playSound(getSound(\"retro/hit1\"));\r\n BAcc+=BAccAdd;\r\n BAcc=constrain(BAcc,0,9);\r\n time=0;\r\n ammo-=1;\r\n if(GUN[GUNE].FireMode===\"simi\"){\r\n FireModeCheck=true;\r\n }\r\n }\r\n }else{\r\n FireModeCheck=false;\r\n }\r\n }\r\n else {\r\n shooting=false;\r\n }\r\n if(shooting===false&&BAcc>GUN[GUNE].acc){\r\n BAcc-=GUN[GUNE].AccS;\r\n }\r\n if(IsReloading===false&&ammo <=0&&shooting===true){\r\n stor2.push(new ParticleTxt(new PVector(300,500),\"out of ammo\"));\r\n }\r\n if(IsReloading===true&&AmmoBANK[GUN[GUNE].AT]>0){\r\n ReloadTimer++;\r\n if(ReloadTimer >=Reload){\r\n IsReloading=false;\r\n if(AmmoBANK[GUN[GUNE].AT]<ammoMax){\r\n ammo=AmmoBANK[GUN[GUNE].AT];\r\n //ammoR-=ammoMax-ammo;\r\n AmmoBANK[GUN[GUNE].AT]-=ammoMax-ammo;\r\n AmmoBANK[GUN[GUNE].AT]=constrain(AmmoBANK[GUN[GUNE].AT],0,\r\n 100000);\r\n }\r\n else {\r\n //ammoR-=ammoMax-ammo;\r\n AmmoBANK[GUN[GUNE].AT]-=ammoMax-ammo;\r\n ammo=ammoMax;\r\n AmmoBANK[GUN[GUNE].AT]=constrain(AmmoBANK[GUN[GUNE].AT],0,\r\n 100000);\r\n }\r\n ReloadTimer=0;\r\n BAcc=BAccM;\r\n }\r\n }\r\n GUN[GUNE].ammoBank=AmmoBANK[GUN[GUNE].AT];\r\n GUN[GUNE].ammo=ammo;\r\n};\r\n//**********************************************************\r\n// Bullet Math\r\n//**********************************************************\r\nvar BulletMATH=function(){\r\n fill(255,255,0);\r\n for (var i=0; i<BOldX.length; i++){\r\n pushMatrix();\r\n rectMode(CENTER);\r\n translate(BOldX[i],BOldY[i]);\r\n rotate1(BHeading[i]+90);\r\n bulletDisplay[GUN[GUNE].BType]();\r\n popMatrix();\r\n BNewX[i]=BOldX[i]+(BSpeed*cos1(BHeading[i])); //\r\n BNewY[i]=BOldY[i]+(BSpeed*sin1(BHeading[i]));\r\n BOldX[i]=BNewX[i];\r\n BOldY[i]=BNewY[i];\r\n //kills bullet ifits hp is 0<\r\n if(Bhp[i] <=0){\r\n Bkill(i);\r\n }\r\n for (var ii=0; ii <=ZOldX.length; ii++){\r\n if(dist(ZOldX[ii],ZOldY[ii],BOldX[i],BOldY[i])<=15){\r\n ZHeading[ii]=atan3(PY-ZOldY[ii],PX-ZOldX[ii]);\r\n Zhp[ii]-=Bdam*damageMULT;\r\n if(HaveSound){playSound(getSound(\"rpg/hit-splat\"));}\r\n if(Game_mode===3){\r\n Zhp[ii]-=Bdam*damageMULT;\r\n }\r\n ZSpeed[ii]=ZSpeedMAX[ii];\r\n ZHeadingTemp[ii]=atan3(ZOldY[ii]-PY,ZOldX[ii]-PX);\r\n for (var h=0; h <=10; h++){\r\n ZNewX[ii]=ZOldX[ii]+(ZSpeed[ii]*cos1(ZHeadingTemp[ii])); //\r\n ZNewY[ii]=ZOldY[ii]+(ZSpeed[ii]*sin1(ZHeadingTemp[ii]));\r\n ZOldX[ii]=ZNewX[ii];\r\n ZOldY[ii]=ZNewY[ii];\r\n }\r\n Bhp[i]-=0.1;\r\n for (var h=0; h <=splat_Spawn; h++){\r\n stor2.push(new Zshot2(new PVector(ZOldX[ii],ZOldY[ii]),\r\n BOldX[i],BOldY[i],BHeading[i]));\r\n //makes splat marks\r\n }\r\n for (var w=0; w <=splat_Spawn; w++){\r\n stor.push(new spt(new PVector(ZOldX[ii]+random(-20,20),\r\n ZOldY[ii]+random(-20,20))));\r\n }\r\n }\r\n }\r\n //kills bullet ifit is more then 600 away from player\r\n if(dist(BOldX[i],BOldY[i],PX,PY)> 600){\r\n Bkill(i);\r\n }\r\n }\r\n};\r\n//**********************************************************\r\n// zombie Math and AI\r\n//**********************************************************\r\nvar ZombieMATH=function(){\r\n for (var i=0; i<ZOldX.length; i++){\r\n pushMatrix();\r\n rectMode(CENTER);\r\n translate(ZOldX[i],ZOldY[i]);\r\n if(ZOldX[i]===0&&ZOldY[i]===0){\r\n Zkill(i);\r\n }\r\n rotate1(ZHeading[i]+90);\r\n Zombies[ZT[i]].show();\r\n popMatrix();\r\n ZSpeedAtktimer[i]-=5;\r\n if(ZSpeedAtktimer[i]<0){\r\n if(dist(ZOldX[i],ZOldY[i],PX,PY)<=15){\r\n if(Parmor <=0){\r\n DiedHow=\"contaminated\";\r\n Php-=1*Zombie_di_mult;\r\n }\r\n else {\r\n DiedHow=\"contaminated\";\r\n Parmor-=0.5*Zombie_di_mult;\r\n }\r\n ZSpeedAtktimer[i]=20;\r\n }\r\n //---------------------------------------\r\n if(ZT[i]===1&&dist(ZOldX[i],ZOldY[i],PX,PY)<=Pnoise){\r\n stor.push(new Zshot(new PVector(ZOldX[i],ZOldY[i]),atan3(PY -\r\n ZOldY[i],PX-ZOldX[i])));\r\n ZSpeedAtktimer[i]=1000;\r\n }\r\n //---------------------------------------\r\n if(ZT[i]===2&&dist(ZOldX[i],ZOldY[i],PX,PY)<=Pnoise&&ZT\r\n .length<60){\r\n AddZombie(3,1,ZOldX[i]+random(-20,20),ZOldY[i]+random(-\r\n 20,20));\r\n ZSpeedAtktimer[i]=500;\r\n }\r\n //---------------------------------------\r\n if(ZT[i]===4&&dist(ZOldX[i],ZOldY[i],PX,PY)<=100&&ZT.length <\r\n 30){\r\n for (var j=0; j <=splat_Spawn; j++){\r\n stor.push(new spt(new PVector(ZOldX[i]+random(-20,20),\r\n ZOldY[i]+random(-20,20))));\r\n }\r\n AddZombie(3,5,ZOldX[i]+random(-40,40),ZOldY[i]+random(-\r\n 40,40));\r\n ZSpeedAtktimer[i]=500;\r\n Zkill(i);\r\n }\r\n //---------------------------------------\r\n if(ZT[i]===8&&dist(ZOldX[i],ZOldY[i],PX,PY)<=Pnoise){\r\n stor.push(new Zshot(new PVector(ZOldX[i],ZOldY[i]),random(0,\r\n 360)));\r\n ZSpeedAtktimer[i]=100;\r\n }\r\n if(ZT[i]===6&&dist(ZOldX[i],ZOldY[i],PX,PY)<=Pnoise){\r\n ZSpeedAtktimer[i]=5000;\r\n AddZombie(4,2,ZOldX[i]+random(-20,20),ZOldY[i]+random(-\r\n 20,20));\r\n AddZombie(1,4,ZOldX[i]+random(-20,20),ZOldY[i]+random(-\r\n 20,20));\r\n stor.push(new Zshot(new PVector(ZOldX[i],ZOldY[i]),300));\r\n }\r\n //---------------------------------------\r\n if(1===1&&ZT[i]===5&&dist(ZOldX[i],ZOldY[i],PX,PY)<=50&&ZT.length<30){\r\n if(Parmor <=0){\r\n DiedHow=\"coverd in goo\";\r\n Php-=30*Zombie_di_mult;\r\n }\r\n else {\r\n DiedHow=\"coverd in goo\";\r\n Parmor-=15*Zombie_di_mult;\r\n }\r\n Zhp[i]-=100;\r\n for (var j=0; j <=splat_Spawn*4; j++){\r\n stor.push(new spt(new PVector(ZOldX[i]+random(-40,40),\r\n ZOldY[i]+random(-40,40))));\r\n }\r\n for (var t=0; t<splat_Spawn*4; t++){\r\n stor2.push(new BigSplat(new PVector(random(0,width),random(\r\n 0,width))));\r\n }\r\n ZSpeedAtktimer[i]=10000;\r\n }\r\n //---------------------------------------\r\n }\r\n if(dist(ZOldX[i],ZOldY[i],PX,PY)<=Pnoise){\r\n ZHeading[i]=atan3(PY-ZOldY[i],PX-ZOldX[i]);\r\n ZSpeed[i]=ZSpeedMAX[i];\r\n }\r\n else {\r\n ZSpeed[i]-=0.001;\r\n }\r\n if(ZOldX[i] >=-30&&ZOldX[i] <=MAP_W+30&&ZOldY[i] >=-30 &&\r\n ZOldY[i] <=MAP_W+30){}\r\n else if(ZTi[i] <=0){\r\n ZSpeed[i]+=0.01;\r\n ZHeading[i]=atan3(random(0,MAP_H)- ZOldY[i],random(0,MAP_W)-\r\n ZOldX[i]);\r\n ZNewX[i]=ZOldX[i]+(ZSpeed[i]*cos1(ZHeading[i])); //\r\n ZNewY[i]=ZOldY[i]+(ZSpeed[i]*sin1(ZHeading[i]));\r\n ZOldX[i]=ZNewX[i];\r\n ZOldY[i]=ZNewY[i];\r\n }\r\n if(ZTi[i] <=0){\r\n for (var j=0; j <=ZOldX.length; j++){\r\n if(j !==i&&dist(ZOldX[i],ZOldY[i],ZOldX[j],ZOldY[j])<=Zombies[ZT[i]].Dect){\r\n ZHeadingTemp[i]=atan3(ZOldY[i]-ZOldY[j],ZOldX[i]-ZOldX[\r\n j]);\r\n ZNewX[i]=ZOldX[i]+(ZSpeed[i]*cos1(ZHeadingTemp[i])); //\r\n ZNewY[i]=ZOldY[i]+(ZSpeed[i]*sin1(ZHeadingTemp[i]));\r\n ZOldX[i]=ZNewX[i];\r\n ZOldY[i]=ZNewY[i];\r\n }\r\n }\r\n ZTi[i]=Zombie_Dect_timer;\r\n }\r\n ZNewX[i]=ZOldX[i]+(ZSpeed[i]*cos1(ZHeading[i])); //\r\n ZNewY[i]=ZOldY[i]+(ZSpeed[i]*sin1(ZHeading[i]));\r\n ZOldX[i]=ZNewX[i];\r\n ZOldY[i]=ZNewY[i];\r\n if(Zhp[i] <=0){\r\n for (var j=0; j<Zombies[ZT[i]].moneyD; j++){\r\n stor.push(new ITEM(new PVector(ZOldX[i]+random(-20,20),ZOldY[\r\n i]+random(-20,20)),1));\r\n }\r\n Additem(ZOldX[i]+random(-20,20),ZOldY[i]+random(-20,20));\r\n Zkill(i);\r\n }\r\n ZSpeed[i]=constrain(ZSpeed[i],0,ZSpeedMAX[i]);\r\n ZTi[i]-=1;\r\n }\r\n};\r\n//**********************************************************\r\n// player model\r\n//**********************************************************\r\nvar playerModel=function(t,a,x,y,s){\r\n noStroke();\r\n pushMatrix();\r\n if(x===0.01){\r\n translate(600,600);\r\n translate(-300-(PmouseX-0-width/2)/ 2,-300-(PmouseY-0 -\r\n height/2)/ 2);\r\n }\r\n else {\r\n translate(x,y);\r\n }\r\n rotate1(a);\r\n scale(s);\r\n handColor=Classes[t].HC;\r\n Classes[t].show(x,y,a);\r\n \r\n \r\n popMatrix();\r\n};\r\n//**********************************************************\r\n// gun upgra\r\n//**********************************************************\r\nvar GunGOT=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\r\n];\r\nvar random124=0;\r\nvar gungetX=0;\r\nvar gungetY=0;\r\nvar gungetT=0;\r\nvar gungetG=0;\r\nvar Gungetshow=function(x,y,g){\r\n fill(189,185,185,200);\r\n stroke(0,0,0);\r\n strokeWeight(3);\r\n rect(x-50,y,60,45);\r\n noStroke();\r\n \r\n pushMatrix();\r\n translate(x-65,y+5);\r\n rotate1(90);\r\n scale(1.2);\r\n GUN[g].show();\r\n \r\n popMatrix();\r\n playerModel(player_model_E,90,x-65,y+5,1.2);\r\n \r\n textAlign(LEFT);\r\n textSize(10);\r\n random124=GUN[g].reload/60;\r\n //.substring(0,5)\r\n fill(140, 140, 140,200);\r\n stroke(0,0,0);\r\n rect(x,y+98,160,148);\r\n fill(0,0,0);\r\n //440 ,492//String(random124).substring(0,3)\r\n text(\"[ \"+GUN[g].name+\" ]\\nMag-Size: \"+GUN[g].ammoMax +\r\n \"\\nReload speed: \"+String(GUN[g].reload/60).substring(0,3)+\r\n \" sec\"+\"\\nDamage: \"+round(GUN[g].damage*damageMULT)+ \"x\" +\r\n GUN[g].BPS+\"\\nAccuracy: \"+(10-GUN[g].acc)+ \"0%\" +\r\n \"\\nPircing: \"+round(GUN[g].Blife/0.1)+\"x\\nRecoil: \"+GUN[g].AccA+\"0%\"+\"\\nFire Rate: \"+round(1000 /\r\n GUN[g].delay)+ \" RPM\"+\"\\nMovement: -\"+(GUN[g].Weight/4)*\r\n 100+\"%\"+\"\\nnoise: \"+GUN[g].noise+\"\\nFiremode:\"+GUN[g].FireMode+\"\\nID#:\"+g,x-68,y+41);\r\n fill(255,255,255);\r\n text(\"[ \"+GUN[g].name+\" ]\\nMag-Size: \"+GUN[g].ammoMax +\r\n \"\\nReload speed: \"+String(random124).substring(0,3)+ \" sec\" +\r\n \"\\nDamage: \"+round(GUN[g].damage*damageMULT)+ \"x\"+GUN[g].BPS +\r\n \"\\nAccuracy: \"+(10-GUN[g].acc)+ \"0%\"+\"\\nPircing: \"+round(GUN[g].Blife/0.1)+\"x\\nRecoil: \"+GUN[g].AccA +\r\n \"0%\"+\"\\nFire Rate: \"+round(1000/GUN[g].delay)+ \" RPM\" +\r\n \"\\nMovement: -\"+(GUN[g].Weight/4)* 100+\"%\"+\"\\nnoise: \" +\r\n GUN[g].noise+\"\\nFiremode:\"+GUN[g].FireMode+\"\\nID#:\"+g,x-68,y+39);\r\n textAlign(CENTER,CENTER);\r\n};\r\nvar GUNgetUpg=function(g,x,y,cost,costType){\r\n fill(130,128,128,50);\r\n if(mouseX>x-20&&mouseX<x+20&&mouseY>y-23&&mouseY<y +\r\n 23){\r\n // fill(237,237,237,80);\r\n \r\n \r\n }\r\n stroke(8,8,8);\r\n strokeWeight(3);\r\n rect(x,y,40,46);\r\n fill(196,196,196);\r\n fill(0,0,0);\r\n noStroke();\r\n textSize(11);\r\n noStroke();\r\n fill(0,0,0);\r\n if(GunGOT[g]===1){\r\n if(mouseX>x-25&&mouseX<x+25&&mouseY>y-20&&mouseY <\r\n y+20){\r\n fill(255, 252, 252);\r\n text(\"equip\",x,y+12);\r\n }\r\n else {\r\n text(\"---\",x,y+12);\r\n fill(255, 252, 252);\r\n }\r\n }\r\n else {\r\n if(costType===0){\r\n fill(0,0,0);\r\n text(cost+\"$\",x,y+16);\r\n fill(250,245,250);\r\n text(cost+\"$\",x,y+14);\r\n }\r\n else\r\n if(costType===1){\r\n fill(0,0,0);\r\n text(cost+\"G\",x,y+16);\r\n fill(8,243,255);\r\n text(cost+\"G\",x,y+14);\r\n }\r\n }\r\n if(g===GUNE){\r\n stroke(8,8,8);\r\n strokeWeight(2);\r\n stroke(255, 255, 255);\r\n noFill();\r\n rect(x,y,37,43);\r\n noStroke();\r\n }\r\n pushMatrix();\r\n translate(x-8,y-5);\r\n rotate1(100);\r\n scale(0.7);\r\n GUN[g].show();\r\n popMatrix();\r\n \r\n playerModel(player_model_E,100,x-8,y-5,0.8);\r\n if(mouseX>x-25&&mouseX<x+25&&mouseY>y-20&&mouseY<y +\r\n 20){\r\n //if(keys[69]){\r\n if(CLICKED){\r\n if(costType===0){\r\n if(money >=cost&&GunGOT[g] !==1){\r\n money-=cost;\r\n GUNU[itemE]=g;\r\n GUNE=GUNU[itemE];\r\n gunchange();\r\n GunGOT[g]=1;\r\n GunSGOT+=1;\r\n if(HaveSound){playSound(getSound(\"rpg/coin-jingle\"));}\r\n }\r\n else if(GunGOT[g]===1){\r\n GUNU[itemE]=g;\r\n GUNE=GUNU[itemE];\r\n gunchange();\r\n }\r\n }\r\n if(costType===1){\r\n if(Gems >=cost){\r\n Gems-=cost;\r\n GUNU[itemE]=g;\r\n GUNE=GUNU[itemE];\r\n gunchange();\r\n GunGOT[g]=1;\r\n GunSGOT+=1;\r\n }\r\n else if(GunGOT[g]===1){\r\n GUNU[itemE]=g;\r\n GUNE=GUNU[itemE];\r\n gunchange();\r\n }\r\n }\r\n }\r\n }\r\n if(mouseX>x-30&&mouseX<x+30&&mouseY>y-20&&mouseY<y +\r\n 20){\r\n cursor(\"pointer\");\r\n fill(255,255,255);\r\n textSize(12);\r\n gungetX=x;\r\n gungetY=y;\r\n gungetG=g;\r\n gungetT+=1;\r\n }\r\n else {}\r\n};\r\n//**********************************************************\r\n// item drop\r\n//**********************************************************\r\nvar GungetT=0;\r\nvar randomItemGun=[floor(random(1,25)),floor(random(15,25))];\r\nvar GUNget=function(g,x,y,cost){\r\n textSize(12);\r\n fill(130,128,128);\r\n rect(x,y,60,40);\r\n fill(196,196,196);\r\n rect(x,y-22,60-(60*(GungetT/2000)),5);\r\n fill(0,0,0);\r\n GungetT+=0.5;\r\n if(GungetT>2000){\r\n randomItemGun=[floor(random(1,25)),floor(random(15,250))];\r\n GungetT=0;\r\n }\r\n text(cost+\"$\",x,y+15);\r\n pushMatrix();\r\n translate(x-10,y-5);\r\n rotate1(90);\r\n GUN[g].show();\r\n popMatrix();\r\n playerModel(player_model_E,90,x-10,y-5);\r\n \r\n if(PX>x-30&&PX<x+30&&PY>y-20&&PY<y+20){\r\n if(key.toString()===\'q\'){\r\n if(money >=5){\r\n randomItemGun=[floor(random(1,25)),floor(random(15,25))];\r\n money-=5;\r\n }\r\n }\r\n if(keys[69]){\r\n if(money >=cost){\r\n money-=cost;\r\n GUNU[itemE]=g;\r\n GUNE=GUNU[itemE];\r\n gunchange();\r\n }\r\n }\r\n }\r\n if(PX>x-30&&PX<x+30&&PY>y-20&&PY<y+20){\r\n textSize(15);\r\n fill(3,3,3);\r\n text(\"press [E] to buy\",300,300-21);\r\n text(\"press [E] to buy\",300,300-19);\r\n textSize(15);\r\n fill(255,255,255);\r\n text(\"press [E] to buy\",300,300-20);\r\n fill(0,0,0);\r\n textSize(15);\r\n text(\"\"+GUN[g].name+\"\\n\"+\"Mag-Size:\"+GUN[g].ammoMax+\"\\n\" +\r\n \"damage:\"+GUN[g].damage+\"\\n\"+\"noise:\"+GUN[g].noise +\r\n \"\\n\"+\"Recoil:\"+GUN[g].AccA+\"\\n\"+\"Accuracy:\"+(10-GUN[\r\n g].acc)+ \"0 %\",500,410);\r\n }\r\n};\r\n//**********************************************************\r\n// Clss pick function\r\n//**********************************************************\r\nvar classpick=function(x,y,t){\r\n fill(181,181,181,150);\r\n stroke(0,0,0);\r\n strokeWeight(5);\r\n if(dist(mouseX,mouseY,x,y)<=50){\r\n fill(255,255,255);\r\n textSize(10);\r\n text(Classes[t].name+\"\\n\"+GUN[Classes[t].E1].name+\"\\n\"+GUN[\r\n Classes[t].E2].name,x,y-50);\r\n fill(204,204,204,250);\r\n if(mousePressed){\r\n player_model_E=t;\r\n scene=-2;\r\n stor2.push(new FADE(0,0,3));\r\n }\r\n }\r\n rect(x,y,60,60,5);\r\n playerModel(t,90,x,y);\r\n //resetMatrix();\r\n noStroke();\r\n};\r\n//**********************************************************\r\n// player display\r\n//**********************************************************\r\nvar PlayerShow=function(){\r\n // translate(300+CamX,300+CamY);\r\n //rotate1(angle);\r\n //shows the gun\r\n \r\n pushMatrix();\r\n translate(600,600);\r\n if(shooting===true){\r\n translate(-303-(PmouseX-width/2)/2,-300-(PmouseY-\r\n height/2)/2);\r\n }\r\n else {\r\n translate(-300-(PmouseX-width/2)/2,-300-(PmouseY-\r\n height/2)/2);\r\n }\r\n if(IsReloading===true){\r\n rotate1(angle+12);\r\n translate(0,5);\r\n }\r\n else {\r\n rotate1(angle);\r\n }\r\n GUN[GUNE].show();\r\n strokeWeight(8);\r\n if(Game_mode===3){\r\nnoFill();\r\nfor(var i=0;i<6;i++){\r\nstroke(0,0,0,i*55);\r\narc(0,0,100+i*15,100+i*15,0*(PI/180),180*(PI/180));\r\nline(50+i*7.5,-5,150+i*7.5,-800);\r\nline(-50-i*7.5,-5,-150-i*7.5,-800);\r\n}\r\nstrokeWeight(500);\r\nstroke(0, 0, 0);\r\nline(-340,0,-420,-800);\r\nline(340,0,420,-800);\r\narc(0,0,680,680,0*(PI/180),180*(PI/180));\r\n}\r\n //resetMatrix();\r\n \r\n popMatrix();\r\n pushMatrix();\r\n \r\n\r\n playerModel(player_model_E,angle,0.01,01);\r\n popMatrix();\r\n \r\n \r\n pushMatrix();\r\n translate(mouseX,mouseY);\r\n rotate1(angle);\r\n //MAP BORDER CODE\r\n if(PX>MAP_W){\r\n PX=MAP_W;\r\n }\r\n if(PX<0){\r\n PX=0;\r\n }\r\n if(PY>MAP_H){\r\n PY=MAP_H;\r\n }\r\n if(PY<0){\r\n PY=0;\r\n }\r\n fill(255,250,250);\r\n stroke(sightColor2);\r\n strokeWeight(3);\r\n line(1.5+BAcc*6+8,0,1.5+BAcc*6,0);\r\n line(-1.5-BAcc*6-8,0,-1.5-BAcc*6,0);\r\n line(0,+1.5+BAcc*6,0,+1.5+BAcc*6+8);\r\n fill(143,29,29);\r\n stroke(sightColor);\r\n strokeWeight(2);\r\n line(1.5+BAcc*6+8,0,1.5+BAcc*6,0);\r\n line(-1.5-BAcc*6-8,0,-1.5-BAcc*6,0);\r\n line(0,+1.5+BAcc*6,0,+1.5+BAcc*6+8);\r\n //line(0,0,0,6);\r\n noFill();\r\n strokeWeight(3);\r\n stroke(sightColor2);\r\n ellipse(0,0,6,6);\r\n strokeWeight(2);\r\n stroke(sightColor);\r\n ellipse(0,0,6,6);\r\n noStroke();\r\n popMatrix();\r\n noFill();\r\n if(Php<30){\r\n strokeWeight(30);\r\n //for (var i=0; i<6; i++){\r\n // stroke(255,0,0,5+i*35);\r\n // ellipse(300,300,560+i*60,560+i*60);\r\n //}\r\n fill(255, 0, 0,20+ 1* (frameCount/2 % 20));\r\n rect(300,300,600,600);\r\n noStroke();\r\n }\r\n};\r\n//**********************************************************\r\n// HUD displaye\r\n//**********************************************************\r\nvar HUDShow=function(){\r\n if(DiedHow!==\"\"){\r\n fill(255, 0, 0,20+ 1* (frameCount/2 % 20));\r\n rect(300,300,600,600);\r\n \r\n }\r\n rectMode(CENTER);\r\n textSize(10);\r\n fill(148,148,148,200);\r\n rect(490,20,200,15,0);\r\n rect(490,45,200,15,0);\r\n rect(490,65,200,6,0);\r\n rect(280,20,200,20,0);\r\n rect(280,45,200,15,0);\r\n rect(280,65,200,6,0);\r\n fill(148,148,148);\r\n if(itemE===0){\r\n fill(186,186,186);\r\n }\r\n else {\r\n fill(148,148,148,200);\r\n }\r\n rect(35,40,50,60);\r\n if(itemE===1){\r\n fill(186,186,186);\r\n }\r\n else {\r\n fill(148,148,148,200);\r\n }\r\n rect(90,40,50,60);\r\n \r\n fill(148,148,148,200);\r\n rect(145,40,50,60);\r\n \r\n rectMode(CORNER);\r\n fill(207, 199, 207,200);\r\n rect(120,10,50,(PowerTimer/PowerDelay)*60);\r\n rectMode(CENTER);\r\n textSize(20);\r\n fill(0,0,0);\r\n text(PowerCount,145,40);\r\n textSize(10);\r\n \r\n fill(0,0,0);\r\n text(\"1\",55,20);\r\n text(\"2\",110,20);\r\n pushMatrix();\r\n translate(35,50);\r\n GUN[GUNU[0]].show();\r\n popMatrix();\r\n \r\n playerModel(player_model_E,0,35,50);\r\n pushMatrix();\r\n translate(90,50);\r\n GUN[GUNU[1]].show();\r\n popMatrix();\r\n \r\n playerModel(player_model_E,0,90,50);\r\n //rect(280,45,200,40);\r\n textSize(10);\r\n rectMode(LEFT);\r\n fill(255,0,0,200);\r\n rect(390,35,(Php/PhpMax)* 200,20,0);\r\n //180\r\n fill(66,66,66,100);\r\n rect(390,35,(Parmor/ParmorMax)* 200,20,0);\r\n fill(0,0,0);\r\n fill(43,255,0,200);\r\n rect(390,10,(PS/PSmax)* 200,20,0);\r\n fill(0,247,255,200);\r\n rect(390,60,(floor(Pnoise-45)/ 3)* 1.095,10,0);\r\n fill(255,204,0,200);\r\n rect(180,35,((ammo/ammoMax)* 200),20,0);\r\n fill(179,179,179);\r\n rect(180,60,round((ReloadTimer/Reload)* 100)* 2,10,0);\r\n fill(0,0,0);\r\n textAlign(LEFT,CENTER);\r\n //text(\" \"+GUN[GUNE].name+\" - \"+AmmoBANK[GUN[GUNE].AT] +\r\n // \"\",165,20);\r\n textSize(14);\r\n text(\"\"+GUN[GUNE].name+\"\",185,22);\r\n fill(232, 229, 232);\r\n text(\"\"+GUN[GUNE].name+\"\",185,20);\r\n fill(0,0,0);\r\n \r\n textAlign(RIGHT,CENTER);\r\n fill(0,0,0);\r\n\r\n text(money+\" $\",375,22);\r\n \r\n fill(232, 229, 232);\r\n\r\n text(money+\" $\",375,20);\r\n\r\n\r\n textAlign(CENTER,CENTER);\r\n fill(0,0,0);\r\n \r\n textSize(10);\r\n \r\n text(round(Php)+ \"/\"+round(PhpMax),490,46);\r\n textSize(9);\r\n text(round(Parmor)+ \"/\"+round(ParmorMax),550,51);\r\n textSize(10);\r\n text(round(PS)+ \"/\"+round(PSmax),490,21);\r\n noFill();\r\n stroke(0,0,0,40);\r\n strokeWeight(1);\r\n var AMX=(200/ammoMax);\r\n for (var i=0; i <=ammoMax; i++){\r\n line(180+(AMX* i),35,180+(AMX* i),54);\r\n }\r\n if(ammo <=0){\r\n fill(0,0,0);\r\n text(\"PRESS R TO RELOAD\",280,46);\r\n fill(255,10,10);\r\n text(\"PRESS R TO RELOAD\",280,45);\r\n }\r\n noStroke();\r\n rectMode(CENTER);\r\n fill(5, 5, 5);\r\n textSize(15);\r\n text(\"press \'q\' to open shop\",300,552);\r\n fill(255, 255, 255);\r\n \r\n text(\"press \'q\' to open shop\",300,550);\r\n \r\n text(\"wave - \"+wave,300,570);\r\n textSize(10);\r\n text(\"FPS-\"+FPSCountT+\" | \"+\"zombies-\"+ZOldX.length+\" | \" +\r\n \"bullets-\"+BOldX.length+\" | \"+\"Effects-\"+stor.length +\r\n \" | \"+\"\"+\" spawn timer-\"+zombiespawnT,300,590);\r\n \r\n \r\n \r\n};\r\n//**********************************************************\r\n// controls\r\n//**********************************************************\r\nvar Controls=function(){\r\n if(keys[16]&&PS >=0.5){\r\n Pspeed=5.45;\r\n PS-=0.8;\r\n Pnoise+=2.1;\r\n }\r\n else {\r\n if(PS <=1.5){\r\n Pspeed=4;\r\n PS+=0.005;\r\n }\r\n else {\r\n Pspeed=4;\r\n PS+=PSmax/250;\r\n }\r\n }\r\n PS=constrain(PS,0,PSmax);\r\n if(keys[87]||keys[UP]){\r\n PY-=Pspeed-GUN[GUNE].Weight;\r\n Pnoise+=1.005;\r\n }\r\n if(keys[83]||keys[DOWN]){\r\n PY+=Pspeed-GUN[GUNE].Weight;\r\n Pnoise+=1.005;\r\n }\r\n if(keys[65]||keys[LEFT]){\r\n PX-=Pspeed-GUN[GUNE].Weight;\r\n Pnoise+=1.005;\r\n }\r\n if(keys[68]||keys[RIGHT]){\r\n PX+=Pspeed-GUN[GUNE].Weight;\r\n Pnoise+=1.005;\r\n }\r\n AtkTimer-=1;\r\n if(keys[82]){\r\n IsReloading=true;\r\n }\r\n if(mouseButton===RIGHT&&mousePressed){\r\n IsReloading=true;\r\n }\r\n if(keys[49]){\r\n if(HaveSound){playSound(getSound(\"rpg/battle-swing\"));}\r\n GUNE=GUNU[0];\r\n gunchange();\r\n itemE=0;\r\n }\r\n if(keys[50]){\r\n if(HaveSound){playSound(getSound(\"rpg/battle-swing\"));}\r\n GUNE=GUNU[1];\r\n gunchange();\r\n itemE=1;\r\n }\r\n if(keys[86]&&AtkTimer <=0){\r\n if(HaveSound){playSound(getSound(\"rpg/battle-swing\"));}\r\n\r\n MAtk();\r\n GUNE=GUNU[2];\r\n gunchange();\r\n itemE=2;\r\n }\r\n if(keyTyped&&keys[70]){\r\n if(PowerTimer>=PowerDelay){\r\n //Grenade 1\r\n if(PowerEquip===0&&PowerCount>0){\r\n GUNE=GUNU[2];\r\n gunchange();\r\n itemE=2;\r\n MAtk();\r\n stor.push(new Gnad(new PVector(PX,PY)));\r\n PowerCount-=1;\r\n PowerTimer=0;\r\n }\r\n //Adrine 1\r\n if(PowerEquip===1&&PowerCount>0){\r\n stor2.push(new Adrine());\r\n PowerCount-=1;\r\n PowerTimer=0;\r\n }\r\n if(PowerEquip===2&&PowerCount>0){\r\n GUNE=GUNU[2];\r\n gunchange();\r\n itemE=2;\r\n MAtk();\r\n stor.push(new AirStk(new PVector(PX,PY)));\r\n PowerCount-=1;\r\n PowerTimer=0;\r\n\r\n }\r\n \r\n\r\n }\r\n }\r\n\r\n PowerTimer++;\r\n PowerTimer=constrain(PowerTimer,0,PowerDelay);\r\n};\r\n//**********************************************************\r\n// crates\r\n//**********************************************************\r\nvar BOXitem=function(position){\r\n this.position=position.get();\r\n this.LiveT=1.0;\r\n this.rot=random(0,360);\r\n BOXitem.prototype.run=function(){\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n rotate1(this.rot);\r\n \r\n fill(204,173,47);\r\n rect(0,0,20,20);\r\n fill(214, 188, 83);\r\n rect(0,0,14,14);\r\n \r\n fill(191, 172, 97);\r\n rect(-3,0,2,14);\r\n rect(2,0,2,14);\r\n \r\n popMatrix();\r\n if(dist(this.position.x,this.position.y,PX+ArotX,PY+ArotY)<=45&&Atking===true){\r\n this.LiveT=-1;\r\n }\r\n for (var i=0; i<BOldX.length; i++){\r\n if(dist(BOldX[i],BOldY[i],this.position.x,this.position.y)<\r\n 25){\r\n Bkill(i);\r\n this.LiveT=-1;\r\n if(HaveSound){playSound(getSound(\"rpg/hit-thud\"));}\r\n }\r\n }\r\n };\r\n BOXitem.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n for (var j=0; j <=5; j++){\r\n stor.push(new Cratespt(new PVector(this.position.x+random(-\r\n 20,20),this.position.y+random(-20,20))));\r\n Additem(this.position.x+random(-20,20),this.position.y +\r\n random(-20,20));\r\n stor.push(new ITEM(new PVector(this.position.x+random(-20,\r\n 20),this.position.y+random(-20,20)),1));\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// gas tank\r\n//**********************************************************\r\nvar boomBOX=function(position){\r\n this.position=position.get();\r\n this.LiveT=1.0;\r\n this.rot=random(0,360);\r\n boomBOX.prototype.run=function(){\r\n pushMatrix();\r\n translate(this.position.x,this.position.y);\r\n rotate1(this.rot);\r\n \r\n fill(184,11,11);\r\n rect(0,0,20,30);\r\n fill(122, 46, 46);\r\n rect(0,-9,22,3);\r\n rect(0,9,22,3);\r\n fill(230, 114, 25);\r\n triangle(-6,6,6,6,0,-8);\r\n fill(255, 239, 8);\r\n\r\n triangle(-3,3,3,3,0,-3);\r\n\r\n popMatrix();\r\n for (var i=0; i<BOldX.length; i++){\r\n if(dist(BOldX[i],BOldY[i],this.position.x,this.position.y)<\r\n 20){\r\n Bkill(i);\r\n this.LiveT=-1;\r\n stor.push(new BOOM(new PVector(this.position.x,this.position\r\n .y)));\r\n if(HaveSound){ playSound(getSound(\"retro/rumble\"));}\r\n Pnoise+=150;\r\n shake+=2;\r\n i+=1000;\r\n }\r\n }\r\n };\r\n boomBOX.prototype.isDead=function(){\r\n if(this.LiveT<0){\r\n for (var j=0; j<ZOldX.length; j++){\r\n if(dist(ZOldX[j],ZOldY[j],this.position.x,this.position.y)<\r\n 100){\r\n Zhp[j]-=150-dist(ZOldX[j],ZOldY[j],this.position.x,\r\n this.position.y);\r\n for (var w=0; w <=splat_Spawn*4; w++){\r\n stor.push(new spt(new PVector(ZOldX[j]+random(-20,20),\r\n ZOldY[j]+random(-20,20))));\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n};\r\n//**********************************************************\r\n// barrier\r\n//**********************************************************\r\nvar barrier=function(x,y,w,h,color1,color2,color3){\r\n fill(color1,color2,color3);\r\n pushMatrix();\r\n translate(w/2-10,h/2-10);\r\n rect(x,y,w,h);\r\n popMatrix();\r\n if(PX+20>x&&PX<x+w&&PY+20>y&&PY<y+h){\r\n if(PY+20>y&&PY+20<y+5){\r\n PY=y-20;\r\n }\r\n if(PY<y+h&&PY>y+h-5){\r\n PY=y+h;\r\n }\r\n if(PY+18>y&&PY<y+(h/20)* 18){\r\n if(PX+20>x&&PX+20<x+5){\r\n PX=x-20;\r\n }\r\n if(PX<x+w&&PX>x+w-5){\r\n PX=x+w;\r\n }\r\n }\r\n }\r\n};\r\nvar barbwire=function(x,y){\r\n fill(255,255,255,0);\r\n stroke(200);\r\n strokeWeight(3);\r\n ellipse(x,y,20,20);\r\n line(x,y-10,x,y-13);\r\n line(x+10,y,x+13,y);\r\n line(x,y+10,x,y+13);\r\n line(x-10,y,x-13,y);\r\n line(x-8,y-8,x-10,y-10);\r\n line(x+8,y+8,x+10,y+10);\r\n line(x-8,y+8,x-10,y+10);\r\n line(x+8,y-8,x+10,y-10);\r\n};\r\n//**********************************************************\r\n// load game\r\n//**********************************************************\r\nvar loadgame=function(){\r\n background(189,189,189);\r\n stor=[];\r\n wave=0;\r\n GUNUU=[\r\n Classes[player_model_E].E1,\r\n Classes[player_model_E].E2,\r\n 27\r\n ];\r\n ammo=GUN[GUNE].ammoMax; // gun ammo\r\n GUNE=Classes[player_model_E].E1;\r\n gunchange();\r\n AmmoBANK=[\r\n 50000,//500 mec gun\r\n 10000,//480 pistol\r\n 10000,//100 sniper\r\n 12000,//120 shot gun\r\n 12000,//1200 rifle\r\n 10000,//2000 smg\r\n ];\r\n PX=MAP_W/2;\r\n PY=MAP_H/2;\r\n pause=false;\r\n GUNU=GUNUU;\r\n PowerCount=0;\r\n money=parseInt(\"a\", 34)-10;\r\n Php=PhpMax;\r\n Parmor=0;\r\n gameTime=0;\r\n Zkills=0;\r\n shotFired=0;\r\n shake=0;\r\n zombiespawnT=0;\r\n ZT=[];\r\n ZNewX=[];\r\n ZNewY=[];\r\n ZOldX=[];\r\n ZOldY=[];\r\n ZRot=[];\r\n ZHeading=[];\r\n Zhp=[];\r\n ZHeadingTemp=[];\r\n ZSpeed=[];\r\n ZSpeedMAX=[];\r\n ZSpeedAtktimer=[];\r\n damageMULTbase=1;\r\n stor2.push(new popText(new PVector(550, 550)));\r\n\r\n stor.push(new BOXitem(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n stor.push(new BOXitem(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n stor.push(new BOXitem(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n stor.push(new BOXitem(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n frameRate(60);\r\n};\r\n//**********************************************************\r\n// wave MEC\r\n//**********************************************************\r\nvar randomZombieSpawn=0;\r\nvar waveMEC=function(){\r\n if(zombiespawnT >=waveTimer&&ZT.length <=Zombie_Spawn_thes){\r\n \r\n zombiespawnT=0;\r\n wave+=1;\r\n stor2.push(new ParticleTxt2(new PVector(300,500),\"WAVE-\"+wave));\r\n randomZombieSpawn=floor(random(0,6));\r\n AddZombie(7,4,0,0);\r\n if(randomZombieSpawn===1){\r\n AddZombie(7,3,0,0);\r\n }\r\n if(randomZombieSpawn <=3){\r\n AddZombie(0,6,0,0);\r\n }\r\n if(randomZombieSpawn===3&&wave>10){\r\n AddZombie(9,3,0,0);\r\n }\r\n if(randomZombieSpawn >=4&&wave>16){\r\n AddZombie(0,3,0,0);\r\n AddZombie(2,2,0,0);\r\n AddZombie(1,1,0,0);\r\n }\r\n if(randomZombieSpawn===3&&wave>10){\r\n AddZombie(1,3,0,0);\r\n }\r\n if(randomZombieSpawn===2&&wave>5){\r\n AddZombie(5,3,0,0);\r\n }\r\n if(randomZombieSpawn===4){\r\n AddZombie(1,3,0,0);\r\n // AddZombie(8,3,0,0);\r\n }\r\n if(randomZombieSpawn===4&&wave>8){\r\n AddZombie(8,2,0,0);\r\n }\r\n if(randomZombieSpawn===5&&wave>5){\r\n AddZombie(4,3,0,0);\r\n }\r\n if(wave===15){\r\n AddZombie(2,4,0,0);\r\n zombiespawnT=-2000;\r\n }\r\n if(wave===30){\r\n AddZombie(6,1,0,0);\r\n AddZombie(0,6,0,0);\r\n zombiespawnT=-5000;\r\n }\r\n stor.push(new BOXitem(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n stor.push(new BOXitem(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n stor.push(new boomBOX(new PVector(random(20,MAP_W-20),random(20,\r\n MAP_H-20))));\r\n }\r\n zombiespawnT+=waveSpeed;\r\n};\r\n//**********************************************************\r\n// background display\r\n//**********************************************************\r\nvar LOGOROT=0;\r\nvar Logo=function(){\r\n this.LOGOTIMER=0;\r\n this.LOGOx=0;\r\n this.LOGOt=0;\r\n this.LOGOs=0;\r\n};\r\nLogo.prototype.draw=function(){\r\n //background(255,255,255);\r\n // pushMatrix();\r\n if(this.LOGOTIMER <=400){\r\n this.LOGOx+=3.7;\r\n }\r\n if(this.LOGOTIMER>400&&this.LOGOTIMER <=500){\r\n this.LOGOx-=3.7;\r\n this.LOGOt+=1.5;\r\n }\r\n if(this.LOGOTIMER >=800&&this.LOGOTIMER <=900){\r\n this.LOGOt-=1.5;\r\n this.LOGOx+=3.7;\r\n }\r\n if(this.LOGOTIMER >=965&&this.LOGOTIMER <=1265){\r\n this.LOGOs+=9;\r\n }\r\n if(this.LOGOTIMER>1385&&this.LOGOTIMER<1395){\r\n scene=8;\r\n }\r\n if(this.LOGOTIMER>1385){\r\n this.LOGOs-=10;\r\n }\r\n //textFont(createFont(\"Arial Bold\"));\r\n fill(0,0,0);\r\n ellipse(-200+this.LOGOx,300,20+this.LOGOs,20+this.LOGOs);\r\n ellipse(800-this.LOGOx,300,20+this.LOGOs,20+this.LOGOs);\r\n textSize(this.LOGOt);\r\n textAlign(CENTER,CENTER);\r\n text(\"TAZAL\",300,300);\r\n this.LOGOTIMER+=3;\r\n};\r\nvar logo=new Logo();\r\nvar BASEBCOLOR=color(66, 34, 5); //255,89,0\r\nvar BackG2=function(){\r\n background(30,59,50);\r\n noStroke();\r\n for (var i=0; i<18; i++){\r\n fill(55,120,102,i*30);\r\n rect(300,340-i*20,600,20);\r\n }\r\n rectMode(CENTER);\r\n fill(89,57,37);\r\n ellipse(300,350,200,50);\r\n fill(89,57,37);\r\n fill(77,41,18);\r\n ellipse(210,350,200,50);\r\n ellipse(90,350,200,50);\r\n ellipse(570,350,200,50);\r\n fill(99,44,8);\r\n rect(300,500,600,300);\r\n for (var i=0; i<13; i++){\r\n rect(300,360+i*20,600,20);\r\n }\r\n fill(133,129,129);\r\n ellipse(50,500,80,50);\r\n noStroke();\r\n //translate(-100,-100);\r\n pushMatrix();\r\n translate(100,400);\r\n rotate1(20);\r\n scale(0.4,0);\r\n strokeWeight(15);\r\n stroke(0,0,0);\r\n line(0,0,30,350);\r\n strokeWeight(10);\r\n fill(255,89,0);\r\n stroke(0,0,0);\r\n triangle(0,-170,-160,80,160,80);\r\n noStroke();\r\n fill(0,0,0);\r\n ellipse(200-200,155-200,100,100);\r\n ellipse(160-200,220-200,100,100);\r\n ellipse(240-200,220-200,100,100);\r\n fill(255,89,0);\r\n ellipse(200-200,136-200,75,75);\r\n ellipse(145-200,230-200,75,75);\r\n ellipse(255-200,230-200,75,75);\r\n ellipse(200-200,200-200,20,20);\r\n stroke(0,0,0);\r\n strokeWeight(10);\r\n noFill();\r\n ellipse(200-200,200-200,95,95);\r\n stroke(255,89,0);\r\n strokeWeight(6);\r\n ellipse(200-200,140-200,70,70);\r\n ellipse(145-200,230-200,70,70);\r\n ellipse(255-200,230-200,70,70);\r\n line(200-200,200-200,200-200,170-200);\r\n line(200-200,200-200,180-200,210-200);\r\n line(200-200,200-200,220-200,210-200);\r\n popMatrix();\r\n noStroke();\r\n fill(145,143,143);\r\n ellipse(80,510,80,40);\r\n fill(163,157,157);\r\n ellipse(60,530,80,40);\r\n fill(36,36,36);\r\n quad(100,600,500,600,470,350,400,350);\r\n stroke(143,137,24);\r\n line(270,600,430,355);\r\n line(290,600,433,355);\r\n};\r\nvar BackG=function(X,Y){\r\n //(255,89,0);\r\n background(BASEBCOLOR);\r\n noStroke();\r\n if(scene===-1){\r\n fill(0,0,0);\r\n rect(300,10,610,200);\r\n textSize(50);\r\n //text(\"BIOLOGICAL HAZARD\",300,500);\r\n textSize(25);\r\n //text(\"HAZMAT SUITS REQUIRED.\",300,540);\r\n fill(BASEBCOLOR);\r\n textFont(createFont(\"Arial Bold\"),20);\r\n textSize(100);\r\n text(\"CONTAMINATION\\nBREACH-4.0\",300,55);\r\n Nlogo();\r\n }\r\n else {\r\n LOGOROT=30;\r\n }\r\n pushMatrix();\r\n textSize(40);\r\n translate(X,Y);\r\n rotate1(LOGOROT);\r\n if(scene===-1){\r\n scale(1.8,0);\r\n }\r\n if(scene !==-1){\r\n scale(3,0);\r\n }\r\n fill(97, 70, 21);\r\n ellipse(200-200,155-200,100,100);\r\n ellipse(160-200,220-200,100,100);\r\n ellipse(240-200,220-200,100,100);\r\n fill(BASEBCOLOR);\r\n ellipse(200-200,136-200,75,75);\r\n ellipse(145-200,230-200,75,75);\r\n ellipse(255-200,230-200,75,75);\r\n ellipse(200-200,200-200,20,20);\r\n stroke(97, 70, 21);\r\n strokeWeight(10);\r\n noFill();\r\n ellipse(200-200,200-200,95,95);\r\n stroke(BASEBCOLOR);\r\n strokeWeight(6);\r\n ellipse(200-200,140-200,70,70);\r\n ellipse(145-200,230-200,70,70);\r\n ellipse(255-200,230-200,70,70);\r\n line(200-200,200-200,200-200,170-200);\r\n line(200-200,200-200,180-200,210-200);\r\n line(200-200,200-200,220-200,210-200);\r\n popMatrix();\r\n};\r\n//**********************************************************\r\n// display\r\n//**********************************************************\r\nvar img;\r\nGems = parseInt(GSAVE.s, 34);\r\nvar upgradeNUM = GSAVE.upG;\r\nvar TUnlock = parseInt(GSAVE.wave,8);\r\nvar Cintsback = [];\r\nvar Cnum =GSAVE.gunG;\r\nvar Chexarr = Cnum.split(\";\");\r\nfor(var i = 0; i < Chexarr.length-1; i++) {\r\n Cintsback.push(parseInt(Chexarr[i], 33));\r\n}\r\nvar Cendstr = [];\r\nfor(var i=0;i<Cintsback.length;i++){\r\n Cendstr[i]=Cintsback[i]%10;\r\n Cendstr[i]=round(Cendstr[i]/(Cendstr[i]+1));\r\n}\r\n\r\nvar GunGOT= Cendstr;\r\n//var upgradeNUM=[SAVE[0],SAVE[1],SAVE[2],SAVE[3],SAVE[4],SAVE[5]];\r\n//var TUnlock=SAVE[6];\r\nvar ParmorMax=50+GSAVE.upG[5]*15;\r\n//for (var i=0; i<GunGOT.length; i++){\r\n// GunGOT[i]=SAVE[i+8];\r\n// if(SAVE[i+8]===1){\r\n// GunSGOTE+=1;\r\n// }\r\n//}\r\n//GunSGOT=GunSGOTE;\r\n//if(SAVE[33]*SAVE[7] !==GunSGOTE){\r\n //scene=-111;\r\n//}\r\n\r\nvar shopscene=0;\r\ndraw=function(){\r\n if(keys[79]){\r\nvar Cints = [];\r\nvar CAstr = GunGOT;\r\nfor(var i=0;i<CAstr.length;i++){\r\n if(CAstr[i]===0){Cints[i]=round(random(2,8))*10;}\r\n if(CAstr[i]===1){Cints[i]=1+round(random(1,8))*11;}\r\n}\r\nvar Chexstr = \"\";\r\nvar Chexstr2= \"\";\r\nfor(var i=0; i < Cints.length; i++) {\r\n Chexstr += Cints[i].toString(33) + \";\";\r\n}\r\nfor(var i=0; i < upgradeNUM.length; i++) {\r\n Chexstr2 += upgradeNUM[i].toString(33) + \";\";\r\n}\r\n\r\nprintln(\"gunG:\'\"+Chexstr+\"\',\\nwave:\"+TUnlock.toString(8)+\",\\nupG:[\"+upgradeNUM+\"],\\ns:\'\"+Gems.toString(34)+\"\'\");\r\n\r\n }\r\n textAlign(CENTER,CENTER);\r\n rectMode(CENTER);\r\n textFont(createFont(\"Arial Bold\"),20);\r\n cursor();\r\n //**********************************************************\r\n // menu and scene display and code\r\n //**********************************************************\r\n if(scene===-111){\r\n background(255,0,0);\r\n fill(242,225,225);\r\n textSize(55);\r\n text(\"SAVE CODE ENTERED\\nCLICK RESTART\",300,300);\r\n }\r\n if(scene===-201){\r\n background(255,255,255);\r\n //logo.draw();\r\n scene=8;\r\n }\r\n if(scene===-11){\r\n AREA_MAP=4;\r\n scene=-3;\r\n }\r\n if(scene===-10){\r\n AREA_MAP=3;\r\n scene=-3;\r\n }\r\n \r\n if(scene===-5.2){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,-6);\r\n textSize(60);\r\n fill(0, 0, 0);\r\n text(\"CHOOSE MAP SIZE\\n\",300,164);\r\n fill(242,225,225);\r\n text(\"CHOOSE MAP SIZE\\n\",300,160);\r\n textSize(15);\r\n fill(0, 0, 0);\r\n // text(\"CHOOSE MAP SIZE\\n\",300,164);\r\n fill(242,225,225);\r\n text(\"NOTE: normal mode is\\n highly recommended\",300,180);\r\n \r\n button(300,400,500,50,\"TINY\",35,-5.3);\r\n button(300,450,500,50,\"SMALL\",35,-5.4);\r\n button(300,300,500,150,\"NORMAL\",55,-5.5);\r\n button(300,500,500,50,\"BIG\",35,-5.6);\r\n button(300,550,500,50,\"MASSIVE\",35,-5.7);\r\n\r\n }\r\n if(scene===-5.3){MAP_W=400;MAP_H=400;scene=-5;}\r\n if(scene===-5.4){MAP_W=600;MAP_H=600;scene=-5;}\r\n if(scene===-5.5){MAP_W=800;MAP_H=800;scene=-5;}\r\n if(scene===-5.6){MAP_W=1000;MAP_H=1000;scene=-5;}\r\n if(scene===-5.7){MAP_W=1400;MAP_H=1400;scene=-5;}\r\n if(scene===-5){\r\n Zombie_di_mult=1.2;\r\n Zombie_Spawn_thes=5;\r\n waveSpeed=1;\r\n Game_mode=1;\r\n scene=-2;\r\n AREA_MAP=0;\r\n player_model_E=0;\r\n }\r\n if(scene===-4){\r\n Zombie_di_mult=1.2;\r\n Zombie_Spawn_thes=5;\r\n waveSpeed=1;\r\n Game_mode=2;\r\n scene=-7;\r\n }\r\n if(scene===-8){\r\n AREA_MAP=1;\r\n scene=-3;\r\n }\r\n if(scene===-9){\r\n AREA_MAP=2;\r\n scene=-3;\r\n }\r\n if(scene===10){\r\n Zombie_di_mult=5;\r\n Zombie_Spawn_thes=10;\r\n waveSpeed=5;\r\n scene=-2;\r\n AREA_MAP=2;\r\n player_model_E=0;\r\n Game_mode=3;\r\n }\r\n if(scene===-27){\r\n FIX_SHOP_BUG=false;\r\n splat_Spawn=10;\r\n Max_effects=600;\r\n itemLife=13000;\r\n scene=-1;\r\n }\r\n if(scene===-26){\r\n FIX_SHOP_BUG=true;\r\n splat_Spawn=1;\r\n Max_effects=150;\r\n itemLife=7000;\r\n scene=-1;\r\n }\r\n if(scene===-25){\r\n splat_Spawn=0;\r\n Max_effects=0;\r\n scene=-1;\r\n }\r\n if(scene===8.1){}\r\n if(scene===8){\r\n \r\n background(112,110,112);\r\n textSize(75);\r\n fill(255,255,255);\r\n text(\"LAUNCH GAME\\n\",300,100);\r\n button(300,165,500,60,\r\n \"NONVIOLENT MODE\\nless violent (no splat marks)\",25,-25);\r\n button(300,265,500,60,\"LAG FREE MODE\\nless lag\",25,-26);\r\n button(300,355,500,60,\"GRAPHICS\\nthe best looking version\",25,-\r\n 27);\r\n button(300,455,500,100,\"NORMAL\",40,-1);\r\n if(width!==600||height!==600){\r\n background(255, 255, 255);\r\n fill(5, 5, 5);\r\n text(\"wrong size canvas\\nset to 600x600 to play\",width/2,height/2);\r\n }\r\n \r\n }\r\n if(scene===-7){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,0);\r\n button(440,555,250,40,\"Mission: Road\",25,-8);\r\n button(155,555,250,40,\"Mission: E-vac\",25,-9);\r\n button(440,505,250,40,\"Mission: House *\",25,-10);\r\n button(155,505,250,40,\"Mission: River *\",25,-11);\r\n fill(242,225,225);\r\n textSize(25);\r\n //text(\"Mission mode is a WIP\\n but it is still playable\",300,100);\r\n textSize(15);\r\n text(\"missions with* were made by aidan01pay\",300,470);\r\n fill(0,0,0);\r\n textSize(85);\r\n text(\"CHOOSE\\nMISSION\\n\",300,304);\r\n fill(242,225,225);\r\n textSize(85);\r\n text(\"CHOOSE\\nMISSION\\n\",300,300);\r\n }\r\n if(scene===-6){\r\n BackG2();\r\n button(300,175,500,150,\"MISSION MODE\\nmore maps & class unlockes\",\r\n 35,-4);\r\n button(300,325,500,150,\"NORMAL MODE\\nthe basic game\",35,-5.2);\r\n button(300,475,500,150,\r\n \"NIGHTMARE MODE\\nfast waves & harder zombies\",35,10);\r\n button(60,40,100,50,\"BACK\",25,0);\r\n textSize(20);\r\n //showHint\r\n text(\"HINT: \\n\"+hints[showHint],300,50);\r\n // text(\"SAVING ADDED\\n press \'o\' to get save codes\",300,555);\r\n //if(TUnlock>=25){\r\n //button(540,40,100,50,\"NIGHTMARE\\nMODE\",15,10);\r\n //}\r\n }\r\n if(scene===-3){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,0);\r\n pushMatrix();\r\n classpick(200,100,1);\r\n classpick(300,100,2);\r\n classpick(400,100,3);\r\n if(TUnlock >=10){\r\n classpick(200,200,4);\r\n classpick(300,200,5);\r\n classpick(400,200,6);\r\n }\r\n else {\r\n stroke(0,0,0);\r\n strokeWeight(5);\r\n fill(110,110,110,150);\r\n rect(300,200,250,50,5);\r\n fill(255,252,255);\r\n textSize(15);\r\n text(\"get past wave 10 to unlock\\ntier 2 classes\",300,200);\r\n }\r\n if(TUnlock >=15){\r\n classpick(200,300,7);\r\n classpick(300,300,8);\r\n classpick(400,300,9);\r\n }\r\n else {\r\n fill(110,110,110,150);\r\n rect(300,300,250,50);\r\n fill(255,252,255);\r\n textSize(15);\r\n text(\"get past wave 15 to unlock\\ntier 3 classes\",300,300);\r\n }\r\n if(TUnlock >=25){\r\n classpick(200,400,10);\r\n classpick(300,400,11);\r\n classpick(400,400,12);\r\n }\r\n else {\r\n fill(110,110,110,150);\r\n rect(300,400,250,50);\r\n fill(255,252,255);\r\n textSize(15);\r\n text(\"get past wave 25 to unlock\\ntier 4 classes\",300,400);\r\n }\r\n if(TUnlock >=30){\r\n classpick(50,150,13);\r\n }\r\n popMatrix();\r\n fill(0,0,0);\r\n textSize(45);\r\n text(\"CHOOSE YOUR CLASS\\n highest wave-\"+TUnlock,300,505);\r\n fill(242,225,225);\r\n textSize(45);\r\n text(\"CHOOSE YOUR CLASS\\n highest wave-\"+TUnlock,300,500);\r\n }\r\n if(scene===-2){\r\n \r\n forcePause=false;\r\n loadgame();\r\n scene=1;\r\n }\r\n else if(scene===-1){\r\n BackG2();\r\n button(300,575,250,40,\"START-GAME\",25,0);\r\n fill(3,3,3);\r\n fill(3,3,3);\r\n textSize(70);\r\n text(\"CONTAMINATION\\nBREACH IV\\n \",300,205);\r\n fill(242,225,225);\r\n textSize(70);\r\n text(\"CONTAMINATION\\nBREACH IV\\n\",300,200);\r\n fill(3,3,3);\r\n Nlogo();\r\n }\r\n else if(scene===0){\r\n BackG2();\r\n fill(3,3,3);\r\n textSize(60);\r\n text(\"CONTAMINATION \\nBREACH IV\",300,105);\r\n fill(242,225,225);\r\n textSize(60);\r\n text(\"CONTAMINATION \\nBREACH IV\",300,100);\r\n button(300,440,250,50,\"PLAY-GAME\",35,-6);\r\n button(300,260,250,50,\"HOW-TO\",35,2);\r\n button(300,320,250,50,\"WEAPONS\",35,3);\r\n button(235,380,120,50,\"credits\",25,4);\r\n button(365,380,120,50,\"updates\",25,5);\r\n fill(242,225,225);\r\n textSize(20);\r\n // text(\"CONTAMINATION \\nBREACH BUILD 3.0\",300,580);\r\n showHint=floor(random(0,hints.length));\r\n Nlogo();\r\n }else\r\n if(scene===2){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,0);\r\n button(200,200,200,50,\"Movement\",25,2.1);\r\n button(400,200,200,50,\"Using Weapons\",25,2.2);\r\n button(200,250,200,50,\"Weapon Types\",25,2.3);\r\n button(400,250,200,50,\"Weapons abilities \",22,2.4);\r\n button(200,300,200,50,\"Zombies\",25,2.5);\r\n button(400,300,200,50,\"melee/powerup\",25,2.6);\r\n button(200,350,200,50,\"Health Sprint etc\",25,2.7);\r\n button(400,350,200,50,\"Money and Gems\",22,2.8);\r\n button(200,400,200,50,\"Upgrades\",25,2.9);\r\n button(400,400,200,50,\"Waves\",25,2.91);\r\n\r\n textAlign(CENTER,CENTER);\r\n fill(255,255,255);\r\n textSize(20);\r\n textAlign(CENTER,CENTER);\r\n }\r\n if(scene===2.1){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"WASD to move \\n[SHIFT] + WASD to sprint \",300,300);\r\n }\r\n if(scene===2.2){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"Use your mouse to aim\\nLeft click or [SPACE] to fire\\nRight click or [R] to reload\\nPress [1] or [2] to swap weapons \",300,300);\r\n }\r\n if(scene===2.3){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n \r\n textSize(15);\r\n text(\"SMGS : Lightweight, with high ammo capacity and fast rate of fire, but low damage \\nMEC GUN : Heavy, huge ammo capacity, super fast rate of fire, tons of damage\\nPISTOLS : Super lightweight with low ammo capacity, rate of fire, and damage \\nSHOTGUNS : Medium weight, low ammo capacity\\n and rate of fire, but shoots multiple bullets\\nSNIPERS : Heavy, tiny ammo capacity, super low rate of fire, tons of damage\\nRIFLES : Medium weight, medium ammo capacity, high rate of fire ,good damage\",300,300);\r\n }\r\n if(scene===2.4){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n textSize(20);\r\n text(\"Mag-Size : how much ammo the gun can hold\\nReload Speed : how fast you can reload the gun\\nDamage : how much damage the gun deals to zombies\\nAccuracy : chance of bullet being on target \\nFire Rate : how fast the gun fires\\nFire mode : SIMI - click to fire , AUTO hold to fire\\nWeight : how much your player is slowed\",300,300);\r\n }\r\n if(scene===2.5){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"\",300,300);\r\n }\r\n if(scene===2.6){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"Press [V] to use your melee attack\\nMelee attacks are a short range attack \\nPress [F] to use your power up\\nPower ups first need to be bought in the shop\",300,300);\r\n }\r\n if(scene===2.7){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"\",300,300);\r\n\r\n }\r\n if(scene===2.8){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n textSize(15);\r\n text(\"Money is obtained by killing zombies or destroying crates.\\nMoney can be used to buy upgrades or new weapons\\nIf you die you will lose your money but not your upgrades\\n\\nGems are like money but rarer \\nGems can be used to buy super power weapons and power ups\\nYou will not lose gems when you die\",300,300);\r\n }\r\n if(scene===2.9){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"Upgrades can be used to\\n improve your players stats, health, damage, etc\\nDon’t worry you won’t lose your upgrades\\n when you die\",300,300);\r\n }\r\n if(scene===2.91){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,2);\r\n text(\"\",300,300);\r\n }\r\n \r\n if(scene===3){\r\n BackG2();\r\n fill(217,217,217,100);\r\n rect(300,300,610,610);\r\n button(60,40,100,50,\"BACK\",25,0);\r\n fill(255,255,255);\r\n for (var g=1; g <=24; g++){\r\n if(mouseX>50&&mouseX<200&&mouseY>(100+g*20)- 10 &&\r\n mouseY<(100+g*20)+ 10){\r\n textSize(30);\r\n textAlign(LEFT);\r\n fill(255,255,255);\r\n text(GUN[g].name,210,130);\r\n text(\"Mag-Size: \"+GUN[g].ammoMax,210,160);\r\n text(\"Damage: \"+GUN[g].damage+\"x\"+GUN[g].BPS,210,190);\r\n text(\"Accuracy:\"+(10-GUN[g].acc)+ \"0%\",210,220);\r\n text(\"Recoil: \"+GUN[g].AccA+\"0%\",210,250);\r\n text(\"Fire Rate: \"+round(1000/GUN[g].delay)+ \" RPM\",210,\r\n 280);\r\n text(\"Movement: -\"+(GUN[g].Weight/4)* 100+\"%\",210,310);\r\n text(\"noise: \"+GUN[g].noise,210,340);\r\n text(\"Reload speed: \"+String(GUN[g].reload/60).substring(0,\r\n 3)+ \"sec\",210,370);\r\n pushMatrix();\r\n translate(350,430);\r\n scale(3.7,3.7);\r\n rotate1(90);\r\n GUN[g].show();\r\n fill(255,255,255);\r\n ellipse(0,0,20,20);\r\n fill(0,0,0);\r\n rect(-3,-5,2,6);\r\n rect(3,-5,2,6);\r\n // playerModel(player_model_E,90,350,400);\r\n popMatrix();\r\n fill(245,242,245,200);\r\n rect(100,100+g*20,200,20);\r\n textAlign(CENTER,CENTER);\r\n }\r\n else {\r\n // fill(217,217,217,100);\r\n noFill();\r\n }\r\n textSize(20);\r\n stroke(77,77,77);\r\n strokeWeight(2);\r\n noStroke();\r\n fill(255,252,255);\r\n text(GUN[g].name,100,100+g*20);\r\n noStroke();\r\n }\r\n }\r\n else if(scene===4){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,0);\r\n textAlign(CENTER,CENTER);\r\n fill(0,0,0);\r\n text(\r\n\"game by Tazal\\n\\naidan01pay - missions river and house\\n\\npanther programming - delagging function\\n\\n codehunterX - bug testing and suggestions \",\r\n\r\n 300,303);\r\n fill(255,255,255);\r\n text(\r\n \"game by Tazal\\n\\naidan01pay - missions river and house\\n\\npanther programming - delagging function\\n\\n codehunterX - bug testing and suggestions \",\r\n 300,300);\r\n Nlogo();\r\n textAlign(CENTER,CENTER);\r\n } //credits\r\n if(scene===5){\r\n BackG2();\r\n button(60,40,100,50,\"BACK\",25,0);\r\n textSize(12);\r\n textAlign(LEFT);\r\n text(\r\n \"\\nv2.02-add shot guns and gas tanks \\nv2.03-Lag and bug fixes \\nv2.04-add more zombie types\\nv2.05-cleaned up some of the code+bug fixes\\nv2.06-more lag fixes\\nv2.07-fixed menu bug\\nv2.08-HUGE LAG FIX\\nv2.09-change play damage mult\\nv2.10-added shop and menu basics\\nv2.11-finish shop\\nv2.12-changed wave mec\\nv2.13-added player classes\\nv2.14-bug fixes\\nv2.15-added backgrounds for the world\\nv2.16-add game modes v2.17-2x ammo bank size\\nv2.18-bug fixes \\nv2.19-add new missions by aidan01pay\\nv2.2 -bug fixes \\nv2.21-more bug fixes\\nv2.21-Cleaned the code\\nv2.22-working on saving\\nv2.23-add launch settings\\nv2.24-ADDED SAVING \\nv2.25-fixed saving \\nv2.26-made it harder to cheat\\nv2.27-fixed saving \\nv2.28-bug fixesv2.29-bug fixes\\nv2.3 -added new zombies,right click to reload\\nv2.4 -nurfs some guns fixs some bugs\\nv2.5 -bug fixs\\nv2.5+-taking a break for a few months \\nv2.6 -a Ton of bug fixes and Optmzaion \\nv2.7 -more Optmzaion\\nv2.8 -text fixes\\nv2.9 -random fixes \\nv3.0 -four new guns,armor gems ,scores hints ,more zombies better \\ncode way too meny bug fixes better saving this is my finle build for this game\",\r\n 50,100);\r\n textAlign(CENTER,CENTER);\r\n }\r\n//**********************************************************\r\n// MAIN GAME DISPLAY\r\n//**********************************************************\r\n for (var i=stor2.length-1; i >=0; i--){\r\n var p=stor2[i];\r\n p.run();\r\n if(p.isDead()){\r\n stor2.splice(i,1);\r\n }\r\n }\r\n if(scene===1){\r\n cursor(\"none\");\r\n background(0,0,0);\r\n fill(255,255,255);\r\n PmouseX+=(mouseX-PmouseX)/ 10;\r\n PmouseY+=(mouseY-PmouseY)/ 10;\r\n if(pause===false){\r\n pushMatrix();\r\n //frameRate(60-shake*5);\r\n RTx=random(-1,1)*BAccAdd*3;\r\n RTy=random(-1,1)*BAccAdd*3;\r\n angle=atan3(mouseY-300,mouseX-300)+90;\r\n // println(angle);\r\n CamX=PX+(PmouseX-width/2)/ 2;\r\n CamY=PY+(PmouseY-height/2)/ 2;\r\n gameTime=millis();\r\n if(shooting){\r\n translate((300+RTx)-CamX,(300+RTy)-CamY);\r\n }else{\r\n translate(300-CamX,300-CamY);\r\n }\r\n translate(random(-shake,shake),random(-shake,shake));\r\n//**********************************************************\r\n// MAPS\r\n//**********************************************************\r\n // MAIN MAP\r\n if(AREA_MAP===0){\r\n BackG(MAP_W/2,MAP_H/2);\r\n }\r\n noStroke();\r\n if(AREA_MAP===4){\r\n MAP_W=600;\r\n MAP_H=600;\r\n fill(62,133,17);\r\n rect(300,300,620,620);\r\n fill(102,78,7);\r\n rect(290,300,200,120);\r\n for (var i=210; i<380; i+=20){\r\n fill(0,0,0,50);\r\n rect(i,300,2,120);\r\n fill(0,0,0,50);\r\n rect(290,243,200,5);\r\n rect(290,358,200,5);\r\n }\r\n fill(0,0,255);\r\n rect(290,110,200,61);\r\n fill(120);\r\n ellipse(300,110,20,20);\r\n ellipse(280,98,16,16);\r\n ellipse(240,129,21,21);\r\n ellipse(256,113,14,14);\r\n ellipse(207,105,25,25);\r\n ellipse(324,104,17,17);\r\n ellipse(356,115,13,13);\r\n ellipse(378,127,16,16);\r\n fill(0,0,255);\r\n rect(290,550,200,61);\r\n fill(120);\r\n ellipse(300,550,20,20);\r\n ellipse(280,98+440,16,16);\r\n ellipse(240,129+440,21,21);\r\n ellipse(256,113+440,14,14);\r\n ellipse(207,105+440,25,25);\r\n ellipse(324,104+440,17,17);\r\n ellipse(356,115+440,13,13);\r\n ellipse(378,127+440,16,16);\r\n fill(6,117,21);\r\n ellipse(520,70,75,75);\r\n ellipse(500,80,75,75);\r\n ellipse(525,90,75,75);\r\n ellipse(540,65,75,75);\r\n ellipse(520-440,70+440,75,75);\r\n ellipse(500-440,80+440,75,75);\r\n ellipse(525-440,90+440,75,75);\r\n ellipse(540-440,65+440,75,75);\r\n noStroke();\r\n barrier(200,-80,200,180,0,0,255);\r\n barrier(200,150,200,100,0,0,255);\r\n barrier(200,590,200,310,0,0,255);\r\n barrier(200,370,200,170,0,0,255);\r\n }\r\n if(AREA_MAP===3){\r\n MAP_W=600;\r\n MAP_H=600;\r\n fill(62,133,17);\r\n rect(300,300,620,620);\r\n barrier(200,200,200,200,100,100,100);\r\n fill(97,60,5);\r\n rect(290,385,50,10);\r\n fill(0,255,213);\r\n rect(225,385,40,10);\r\n rect(355,385,40,10);\r\n rect(195,280,10,40);\r\n rect(385,280,10,40);\r\n rect(290,195,40,10);\r\n noStroke();\r\n fill(6,117,21);\r\n ellipse(70,70,75,75);\r\n ellipse(520,70,75,75);\r\n ellipse(520,520,75,75);\r\n ellipse(70,520,75,75);\r\n }\r\n if(AREA_MAP===1){\r\n MAP_W=600;\r\n MAP_H=600;\r\n fill(222,211,222);\r\n rect(300,300,620,900);\r\n fill(173,173,173);\r\n rect(300,300,580,900);\r\n fill(54,52,54);\r\n rect(300,300,420,900);\r\n fill(125,125,125);\r\n rect(300,300,20,900);\r\n fill(237,225,0);\r\n rect(180,300,5,900);\r\n rect(190,300,5,900);\r\n rect(420,300,5,900);\r\n rect(430,300,5,900);\r\n fill(199,175,18);\r\n stroke(107,90,5);\r\n strokeWeight(3);\r\n }\r\n if(AREA_MAP===2){\r\n MAP_W=600;\r\n MAP_H=600;\r\n fill(194,194,194);\r\n rect(300,300,410,410);\r\n rect(300,600,100,500);\r\n fill(135,135,135);\r\n rect(300,300,390,390);\r\n rect(300,600,80,500);\r\n fill(241,255,48);\r\n rect(300,300,190,190);\r\n fill(31,31,31);\r\n rect(300,300,170,170);\r\n fill(241,255,48);\r\n rect(330,300,20,120);\r\n rect(270,300,20,120);\r\n rect(300,300,60,20);\r\n fill(153,153,153);\r\n rect(150,150,60,60);\r\n }\r\n noStroke();\r\n \r\n // resetMatrix();\r\n // run the effects\r\n for (var U=stor.length-1; U >=0; U--){\r\n var ZP=stor[U];\r\n ZP.run();\r\n if(ZP.isDead()){\r\n stor.splice(U,1);\r\n }\r\n }\r\n Controls();\r\n BulletMATH();\r\n ZombieMATH();\r\n //translate(300-CamX,300-CamY);\r\n noFill();\r\n strokeWeight(11);\r\n for (var i=0; i <=40; i++){\r\n stroke(0,0,0,i*50);\r\n rect(MAP_W/2,MAP_H/2,(MAP_W)+ i*20,(MAP_H)+\r\n i*20);\r\n }\r\n noStroke();\r\n //gun math\r\n GunMATH();\r\n //display player\r\n popMatrix();\r\n PlayerShow();\r\n \r\n for (var U=stor2.length-1; U >=0; U--){\r\n var p=stor2[U];\r\n p.run();\r\n if(p.isDead()){\r\n stor2.splice(U,1);\r\n }\r\n }\r\n resetMatrix();\r\n \r\n \r\n //player noise mec\r\n Pnoise-=0.6;\r\n Pnoise=constrain(Pnoise,50,600);\r\n FPSCount+=1;\r\n if(millis()- FPStimer >=1000){\r\n DiedHow=\"\";\r\n FPStimer=millis();\r\n FPSCountT=FPSCount;\r\n FPSCount=0;\r\n }\r\n shake-=0.01;\r\n shake=constrain(shake,0,3);\r\n waveMEC();\r\n Php+=HpRegen;\r\n Php=constrain(Php,-1,PhpMax);\r\n Parmor=constrain(Parmor,0,ParmorMax);\r\n }\r\n if(Php<0&&pause===false){\r\n img=get(0,0,600,600);\r\n pause=true;\r\n }\r\n if((pause===true&&Php<0)){\r\n background(128,128,128);\r\n BackG();\r\n if(!FIX_SHOP_BUG){\r\n image(img,0,0,600,600);\r\n }\r\n fill(0,0,0);\r\n cursor();\r\n textSize(70);\r\n //contaminated\r\n text(\"You were\\n\"+DiedHow,300,154);\r\n textSize(45);\r\n //text(\"you lasted \"+round((gameTime/1000)/60)+\" min\",300,370);\r\n textSize(35);\r\n text(\"\\nYou shot \"+shotFired+\" rounds\\nand killed \"+Zkills +\r\n \" Zombies\",300,443);\r\n fill(255,252,252);\r\n textSize(70);\r\n text(\"You were\\n\"+DiedHow,300,150);\r\n textSize(45);\r\n //text(\"you lasted \"+round((gameTime/1000)/60)+\" min\",300,370);\r\n textSize(35);\r\n text(\"\\nYou shot \"+shotFired+\" rounds\\nand killed \"+Zkills +\r\n \" Zombies\",300,440);\r\n if(Game_mode===1){\r\n button(200,555,160,50,\"RETRY\",25,-5);\r\n }\r\n else if(Game_mode===2){\r\n button(200,555,160,50,\"RETRY\",25,-3);\r\n }else if(Game_mode===3){\r\n button(200,555,160,50,\"RETRY\",25,10);\r\n }\r\n button(385,555,160,50,\"MAIN MENU\",25,0);\r\n textSize(15);\r\n }\r\n else if(pause){\r\n cursor();\r\n fill(148,148,148);\r\n rect(300,300,600,600);\r\n fill(219,219,219,50);\r\n if(!FIX_SHOP_BUG){\r\n image(img,0,0,600,600);\r\n }\r\n fill(201,201,201,50);\r\n rect(300,300,610,610);\r\n strokeWeight(5);\r\n stroke(0,0,0);\r\n if(keys[UP]&&Game_mode !==2){\r\n shopscene=1;\r\n }\r\n if(keys[DOWN]){\r\n shopscene=0;\r\n }\r\n if(shopscene===0){\r\n rectMode(CENTER);\r\n button(100,300,50,50,\"<\",25,-22.2);\r\n button(500,300,50,50,\">\",25,-22.3);\r\n fill(201,201,201,50);\r\n \r\n strokeWeight(5);\r\n stroke(0,0,0);\r\n if(dist(mouseX,mouseY,380,160)<=50){\r\n cursor(\"pointer\");\r\n fill(173,173,173,200);\r\n if(CLICKED&&money>=15+(upgradeNUM[0]*5)){\r\n money-=15+(upgradeNUM[0]*5);\r\n upgradeNUM[0]+=1;\r\n }\r\n }\r\n ellipse(380,160,100,100);\r\n stroke(0,255,9);\r\n arc(380,160,105,105,0*(PI/180),upgradeNUM[0]*5*(PI/180));\r\n stroke(3,3,3);\r\n textSize(15);\r\n fill(15,15,15);\r\n text(\"Damage \\n \"+(15+(upgradeNUM[0]*5))+ \" $\\n +\"+(5 +\r\n upgradeNUM[0]*5)+ \"%\",380,162);\r\n fill(255,255,255);\r\n text(\"Damage \\n \"+(15+(upgradeNUM[0]*5))+ \" $\\n +\"+(5 +\r\n upgradeNUM[0]*5)+ \"%\",380,160);\r\n fill(219,219,219,50);\r\n if(dist(mouseX,mouseY,380,280)<=50){\r\n fill(173,173,173,200);\r\n cursor(\"pointer\");\r\n if(CLICKED&&money >=15+(upgradeNUM[1]*5)){\r\n money-=15+(upgradeNUM[1]*5);\r\n upgradeNUM[1]+=1;\r\n PhpMax+=10;\r\n }\r\n }\r\n ellipse(380,280,100,100);\r\n stroke(0,255,9);\r\n arc(380,280,105,105,0*(PI/180),upgradeNUM[1]*5*(PI/180));\r\n stroke(3,3,3);\r\n fill(15,15,15);\r\n text(\"health\\n \"+(15+(upgradeNUM[1]*5))+ \" $\\n +\"+(5 +\r\n upgradeNUM[1]*5)+ \"%\",380,282);\r\n fill(255,252,255);\r\n text(\"health\\n \"+(15+(upgradeNUM[1]*5))+ \" $\\n +\"+(5 +\r\n upgradeNUM[1]*5)+ \"%\",380,280);\r\n fill(219,219,219,50);\r\n if(dist(mouseX,mouseY,380,400)<=50){\r\n fill(173,173,173,200);\r\n cursor(\"pointer\");\r\n if(CLICKED&&money >=25+(upgradeNUM[2]*25)){\r\n money-=25+(upgradeNUM[2]*25);\r\n upgradeNUM[2]+=1;\r\n HpRegen+=0.01;\r\n }\r\n }\r\n ellipse(380,400,100,100);\r\n stroke(0,255,9);\r\n arc(380,400,105,105,0*(PI/180),upgradeNUM[2]*5*(PI/180));\r\n stroke(3,3,3);\r\n fill(15,15,15);\r\n text(\"health regen\\n \"+(25+(upgradeNUM[2]*25))+ \" $\\n +\" +\r\n (0.5+upgradeNUM[2]*0.5)+ \"/sec\",380,402);\r\n fill(252,247,252);\r\n text(\"health regen\\n \"+(25+(upgradeNUM[2]*25))+ \" $\\n +\" +\r\n (0.5+upgradeNUM[2]*0.5)+ \"/sec\",380,400);\r\n fill(219,219,219,50);\r\n if(dist(mouseX,mouseY,230,160)<=50){\r\n fill(173,173,173,200);\r\n cursor(\"pointer\");\r\n if(CLICKED&&money >=15+(upgradeNUM[3]*3)){\r\n money-=15+(upgradeNUM[3]*3);\r\n upgradeNUM[3]+=1;\r\n PSmax+=15;\r\n }\r\n }\r\n ellipse(230,160,100,100);\r\n stroke(0,255,9);\r\n arc(230,160,105,105,0*(PI/180),upgradeNUM[3]*3*(PI/180));\r\n stroke(3,3,3);\r\n fill(15,15,15);\r\n text(\"sprint \\n \"+(15+(upgradeNUM[3]*3))+ \" $\\n +\"+(15 +\r\n upgradeNUM[3]*15)+ \"%\",230,162);\r\n fill(255,255,255);\r\n text(\"sprint \\n \"+(15+(upgradeNUM[3]*3))+ \" $\\n +\"+(15 +\r\n upgradeNUM[3]*15)+ \"%\",230,160);\r\n //strokeWeight(3);\r\n //stroke(32,148,3);\r\n fill(219,219,219,50);\r\n if(dist(mouseX,mouseY,230,280)<=50){\r\n cursor(\"pointer\");\r\n fill(173,173,173,200);\r\n if(CLICKED&&money >=6+(upgradeNUM[4]*3)){\r\n money-=6+(upgradeNUM[4]*3);\r\n upgradeNUM[4]+=1;\r\n AtkM+=5;\r\n }\r\n }\r\n ellipse(230,280,100,100);\r\n stroke(0,255,9);\r\n arc(230,280,105,105,0*(PI/180),upgradeNUM[4]*3*(PI/180));\r\n stroke(3,3,3);\r\n fill(15,15,15);\r\n text(\"Melee \\n \"+(6+(upgradeNUM[4]*3))+ \" $\\n +\"+(5 +\r\n upgradeNUM[4]*5)+ \"%\",230,282);\r\n fill(255,255,255);\r\n text(\"Melee \\n \"+(6+(upgradeNUM[4]*3))+ \" $\\n +\"+(5 +\r\n upgradeNUM[4]*5)+ \"%\",230,280);\r\n fill(219,219,219,50);\r\n if(dist(mouseX,mouseY,230,400)<=50){\r\n cursor(\"pointer\");\r\n fill(173,173,173,200);\r\n if(CLICKED&&money >=25+(upgradeNUM[5]*15)){\r\n money-=25+(upgradeNUM[5]*15);\r\n upgradeNUM[5]+=1;\r\n ParmorMax+=15;\r\n }\r\n }\r\n ellipse(230,400,100,100);\r\n stroke(0,255,9);\r\n arc(230,400,105,105,0*(PI/180),upgradeNUM[5]*3*(PI/180));\r\n stroke(3,3,3);\r\n fill(15,15,15);\r\n textSize(15);\r\n text(\"Armor \\n \"+(25+(upgradeNUM[5]*15))+ \" $\\n +\"+(15+upgradeNUM[5]*15)+ \"pts\",230,402);\r\n fill(247,242,247);\r\n textSize(15);\r\n text(\"Armor \\n \"+(25+(upgradeNUM[5]*15))+ \" $\\n +\"+(15+upgradeNUM[5]*15)+ \"pts\",230,400);\r\n if(Game_mode===1){}\r\n /*\r\n textSize(15);\r\n //showHint\r\n fill(138,136,136,50);\r\n rect(450,300,280,100);\r\n fill(3,3,3);\r\n text(\"HINT: \\n\"+hints[showHint],450,307);\r\n fill(255,250,250);\r\n text(\"HINT: \\n\"+hints[showHint],450,305);\r\n \r\n*/ }\r\n strokeWeight(3);\r\n stroke(32,148,3);\r\n noStroke();\r\n ///AtkM\r\n fill(145,145,145,100);\r\n stroke(0,0,0);\r\n rect(300,35,250,60);\r\n strokeWeight(3);\r\n stroke(32,148,3);\r\n noStroke();\r\n ///AtkM\r\n fill(145,145,145,100);\r\n stroke(0,0,0);\r\n rect(300,520,250,80);\r\n fill(255,255,255);\r\n if(shopscene===1){\r\n // sds\r\n \r\n button(100,300,50,50,\"<\",25,-22.3);\r\n button(500,300,50,50,\">\",25,-22.1);\r\n if(Game_mode===1 || Game_mode===3){\r\n textSize(15);\r\n fill(255,255,255);\r\n gungetT=0;\r\n text(\"SUB MEC GUNS\",300,80);\r\n GUNgetUpg(21,160,115,50,0);\r\n GUNgetUpg(22,200,115,100,0);\r\n GUNgetUpg(23,240,115,200,0);\r\n GUNgetUpg(24,320,115,300,0);\r\n GUNgetUpg(34,280,115,200,0);\r\n GUNgetUpg(35,360,115,300,0);\r\n GUNgetUpg(32,400,115,100,1);\r\n //GUNgetUpg(36,440,115,0,0);\r\n textSize(15);\r\n fill(255,255,255);\r\n text(\"MEC GUNS\",300,150);\r\n GUNgetUpg(1,160,180,100,0);\r\n GUNgetUpg(2,200,180,200,0);\r\n GUNgetUpg(3,240,180,300,0);\r\n GUNgetUpg(4,280,180,400,0);\r\n GUNgetUpg(33,320,180,100,1);\r\n GUNgetUpg(37,360,180,999,1);\r\n //GUNgetUpg(38,400,180,0,0);\r\n //GUNgetUpg(39,440,180,0,0);\r\n textSize(15);\r\n fill(255,255,255);\r\n text(\"PISTOLS\",300,215);\r\n GUNgetUpg(5,160,245,20,0);\r\n GUNgetUpg(6,200,245,60,0);\r\n GUNgetUpg(7,240,245,100,0);\r\n GUNgetUpg(40,280,245,100,0);\r\n GUNgetUpg(41,320,245,100,0);\r\n GUNgetUpg(8,360,245,200,0);\r\n GUNgetUpg(31,400,245,100,1);\r\n //GUNgetUpg(42,440,245,0,0);\r\n textSize(15);\r\n fill(255,255,255);\r\n text(\"SNIPERS\",300,280);\r\n GUNgetUpg(9,160,310,100,0);\r\n GUNgetUpg(10,200,310,200,0);\r\n GUNgetUpg(11,240,310,300,0);\r\n GUNgetUpg(12,360,310,400,0);\r\n GUNgetUpg(30,400,310,100,1);\r\n GUNgetUpg(43,280,310,300,0);\r\n GUNgetUpg(44,320,310,300,0);\r\n //GUNgetUpg(45,440,310,0,0);\r\n textSize(15);\r\n fill(255,255,255);\r\n text(\"SHOTGUNS\",300,345);\r\n GUNgetUpg(13,160,375,50,0);\r\n GUNgetUpg(14,200,375,100,0);\r\n GUNgetUpg(15,240,375,200,0);\r\n GUNgetUpg(16,360,375,300,0);\r\n GUNgetUpg(29,400,375,100,1);\r\n GUNgetUpg(46,280,375,200,0);\r\n GUNgetUpg(47,320,375,200,0);\r\n //GUNgetUpg(48,440,375,0,0);\r\n textSize(15);\r\n fill(255,255,255);\r\n text(\"RIFLES\",300,410);\r\n GUNgetUpg(17,160,440,50,0);\r\n GUNgetUpg(18,200,440,100,0);\r\n GUNgetUpg(19,240,440,200,0);\r\n GUNgetUpg(20,320,440,300,0);\r\n GUNgetUpg(28,360,440,100,1);\r\n GUNgetUpg(49,280,440,200,0);\r\n //GUNgetUpg(50,400,440,0,0);\r\n //GUNgetUpg(51,440,440,0,0);\r\n textSize(10);\r\n fill(255,255,255);\r\n \r\n \r\n \r\n }else{\r\n textSize(30);\r\n fill(0, 0, 0);\r\n text(\"Weapon upgrades\\nonly in normal \\nand nightmare modes\",300,302);\r\n\r\n fill(255,255,255);\r\n text(\"Weapon upgrades\\nonly in normal \\nand nightmare modes\",300,300);\r\n }\r\n }\r\n else {}\r\n if(shopscene===2){\r\n if(PowerEquip!==1){\r\n button(300,200,180,50,\"adrine shot\\n[heal health and sprint]\\n 10-gems\",12,-22.4);\r\n }\r\n if(PowerEquip!==0){\r\nbutton(300,400,180,50,\"grenade\\n[trowable bomb]\\n 10-gems\",12,-22.5);}\r\n \r\n button(100,300,50,50,\"<\",25,-22.1);\r\n button(500,300,50,50,\">\",25,-22.2);\r\n textSize(15);\r\n //showHint\r\n \r\n strokeWeight(3);\r\n stroke(5, 5, 5);\r\n fill(138,136,136,50);\r\n rect(300,300,280,100);\r\n fill(3,3,3);\r\n text(\"HINT: \\n\"+hints[showHint],300,307);\r\n fill(255,250,250);\r\n text(\"HINT: \\n\"+hints[showHint],300,305);\r\n\r\n }\r\n textSize(20);\r\n fill(26,26,26);\r\n if(Gems>0){\r\n text(money+\"$ - \"+Gems+\"G\",300,502);\r\n text(\"press \'e\' to close menu\",300,532);\r\n fill(245,245,245);\r\n text(money+\"$ - \"+Gems+\"G\",300,500);\r\n text(\"press \'e\' to close menu\",300,530);\r\n }else{\r\n text(money+\"$\",300,502);\r\n text(\"press \'e\' to close menu\",300,532);\r\n fill(245,245,245);\r\n text(money+\"$\",300,500);\r\n text(\"press \'e\' to close menu\",300,530);\r\n \r\n }\r\n textSize(50);\r\n fill(26,26,26);\r\n text(\"SHOP\",300,39);\r\n fill(245,245,245);\r\n text(\"SHOP\",300,35);\r\n \r\n \r\n \r\n button(500,40,100,50,\"EXIT GAME\",15,0);\r\n // button(100,520,130,50,\"BUY AMMO x\"+ammoMax*2+\" \\n\" +\r\n // round(AmmoBANK[GUN[GUNE].AT]/3)+ \"$\",15,-10);\r\n button(100,520,130,50,\"RETURN TO\\n GAME\",15,-102);\r\n button(500,520,130,50,\"RETURN TO\\n GAME\",15,-102);\r\n button(100,40,100,50,\"SAVE GAME\",15,-103);\r\n textSize(10);\r\n // text(\"cost is based on how much\\nammo you have\",100,560);\r\n textSize(12);\r\n if(gungetT>0&&shopscene===1){\r\n Gungetshow(gungetX,gungetY,gungetG);\r\n }\r\n }\r\n if(scene===-10){\r\n if(money >=round(AmmoBANK[GUN[GUNE].AT]/3)){\r\n money-=round(AmmoBANK[GUN[GUNE].AT]/3);\r\n AmmoBANK[GUN[GUNE].AT]+=ammoMax*2;\r\n }\r\n scene=1;\r\n }\r\n if(scene===-103){\r\n scene=1;\r\n var Cints = [];\r\nvar CAstr = GunGOT;\r\nfor(var i=0;i<CAstr.length;i++){\r\n if(CAstr[i]===0){Cints[i]=round(random(2,8))*10;}\r\n if(CAstr[i]===1){Cints[i]=1+round(random(1,8))*11;}\r\n}\r\nvar Chexstr = \"\";\r\nvar Chexstr2= \"\";\r\nfor(var i=0; i < Cints.length; i++) {\r\n Chexstr += Cints[i].toString(33) + \";\";\r\n}\r\nfor(var i=0; i < upgradeNUM.length; i++) {\r\n Chexstr2 += upgradeNUM[i].toString(33) + \";\";\r\n}\r\n\r\nprintln(\"gunG:\'\"+Chexstr+\"\',\\nwave:\"+TUnlock.toString(8)+\",\\nupG:[\"+upgradeNUM+\"],\\ns:\'\"+Gems.toString(34)+\"\'\");\r\n\r\n\r\n }\r\n if(scene===-102){\r\n scene=1;\r\n pause=false;\r\n forcePause=false;\r\n }\r\n if(scene===-22.1){\r\n shopscene=0;\r\n scene=1;\r\n \r\n forcePause=false;\r\n }\r\n if(scene===-22.2){\r\n shopscene=1;\r\n scene=1;\r\n }\r\n if(scene===-22.3){\r\n shopscene=2;\r\n scene=1;\r\n }\r\n if(scene===-22.4){\r\n if(Gems>=10){\r\n PowerEquip=1;\r\n Gems-=10;\r\n PowerCount=6;\r\n }\r\n scene=1;\r\n }\r\n if(scene===-22.5){\r\n if(Gems>=10){\r\n PowerEquip=0;\r\n Gems-=10;\r\n PowerCount=10;\r\n }\r\n scene=1;\r\n }\r\n //HpRegen\r\n damageMULT=damageMULTbase+((upgradeNUM[0]*5)/100);\r\n AtkM=((upgradeNUM[4]*5));\r\n PSmax=100+((upgradeNUM[3]*15));\r\n HpRegen=((upgradeNUM[2]*0.01));\r\n PhpMax=100+((upgradeNUM[1]*10));\r\n if(wave>25){\r\n Zombie_di_mult=0.2*wave;\r\n }\r\n else {\r\n //Zombie_di_mult=1;\r\n }\r\n if(wave>TUnlock){\r\n TUnlock=wave;\r\n }\r\n if((keys[81]&&pause===false)||forcePause){\r\n forcePause=false;\r\n showHint=floor(random(0,hints.length));\r\n pause=true;\r\n if(!FIX_SHOP_BUG){\r\n img=get(0,0,600,600);\r\n }\r\n }\r\n else if(keys[69]&&pause===true){\r\n pause=false;\r\n forcePause=false;\r\n }\r\n if(pause===false){\r\n HUDShow();\r\n \r\n \r\n }\r\n \r\n }\r\n \r\n CLICKED=false;\r\n//FPSgraph(50,5);\r\n};"}