Advertisement
Guest User

Untitled

a guest
Dec 27th, 2016
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.21 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5. <!-- Latest compiled and minified CSS -->
  6. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  7. <style>
  8.  
  9. #changelog{
  10. cursor:pointer;
  11. color:skyblue;
  12. background-color:#4286f4;
  13. }
  14.  
  15. img{
  16. display:none;
  17. }
  18.  
  19. canvas{
  20. background:url("https://s29.postimg.org/x9f8txiuf/diepio.png");
  21.  
  22. }
  23.  
  24. #chat{
  25. position:absolute;
  26. display:inline-block;
  27. margin-top:-160px;
  28. width:500px;
  29. opacity:0.8;
  30. z-index:100000;
  31. }
  32.  
  33. #chat-input{
  34. height:35px;
  35. margin-top:-15;
  36. }
  37.  
  38.  
  39. .form-control{
  40.  
  41. -ms-transform: scale(1.5);
  42. -webkit-transform: scale(1.5);
  43. transform: scale(1.5);
  44. }
  45.  
  46.  
  47. #scoreboard-content{
  48. background-color:rgba(210,210,210,0.7);
  49. position:absolute;
  50. display:inline;
  51. color:white;
  52.  
  53.  
  54.  
  55. }
  56.  
  57. #actual-leaders{
  58. font-size:20px;
  59. }
  60.  
  61.  
  62. h1{
  63. margin-top:5%;
  64. font-size:47px;
  65.  
  66. }
  67.  
  68. </style>
  69.  
  70.  
  71.  
  72. <img id="bullet" width="220" height="277" src="https://s27.postimg.org/xu36qtqf7/Bullet_burned.png">
  73. <center>
  74. <div id="signDiv">
  75. <h1>Enter your name</h1>
  76. <input id="signDiv-username" type="text" maxlength="16"></input><br/><br/><br/>
  77.  
  78. <h2>Choose your class</h2>
  79. <select id="choose-tank">
  80. <option value="Sniper">Sniper (more bullet range)</option>
  81. <option value="Unsniper">Unsniper (less bullet range)</option>
  82. <option value="MachineGun">Machine Gun (higher reload rate, less damage)</option>
  83. <option value="Destroyer">Destroyer (strong bullets, slower reload)</option>
  84. <option value="Speed">Speed (faster movement speed)</option>
  85. <option value="Weighted">Weighted (more health)</option>
  86. <option value="Borderless">Borderless (ignores borders)</option>
  87. <option value="Streamliner">Streamliner (super high reload rate)</option>
  88. <option value="Overlord">Overlord (IN DEVELOPMENT)</option>
  89. <option value="Invis">Invis</option>
  90. </select><br/><br/><br/>
  91. <button class="btn-lg btn-default" id="play">Play</button><br><br>
  92. <iframe src="https://discordapp.com/widget?id=261614766227718146&theme=dark" width="350" height="500" allowtransparency="true" frameborder="0"></iframe>
  93. <hr>
  94. <div style='font:monospaced;'><h3>Changelog</h3><br>December 26, 2016:<br>* Added classes!<br> * Speed class with higher speed<br> * Machine Gun class with higher reload<br> * Sniper class with longer lasting bullets<br> * Unsniper class with shorter lasting bullets<br>* Dev name color<br> * The devs now have a different color<br>* Added \/u\/haykam821<br> * Is Dev-type and Normal-type<br> * 100% IVs</div>
  95. <hr>
  96. </center>
  97. </div>
  98.  
  99. <div id="gameDiv" style="display:none;">
  100.  
  101. <div id="changelog">Changelog</div>
  102. <div id="scoreboard-content" style="width:200px;height:400px;border:1px solid black;text-align:center;"><h2>Leaderboard:</h2><div id="actual-leaders"></div></div>
  103. <canvas id="ctx" width="500" height="500" style="border:1px solid #000000;"></canvas>
  104. <div id="chat">
  105.  
  106. <div id="chat-text" style="width:500px;height:100px;overflow-y:scroll;border:1px solid black;background-color:lightgray;">
  107. <div>This is the beginning of the chat!</div>
  108. </div><br>
  109. <form id="chat-form">
  110. <input id="chat-input" placeholder="Chat here..." type="text" style="width:500px;margin:0px auto;" maxlength="200"></input>
  111. </form>
  112. </div>
  113. </div>
  114.  
  115.  
  116.  
  117.  
  118.  
  119. <script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
  120. <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
  121. <script src='https://cdn.rawgit.com/showdownjs/showdown/1.5.4/dist/showdown.min.js'></script>
  122. <script>
  123.  
  124. function calculateBarrelX(angle){
  125. var x_location = Math.cos(angle/180*Math.PI) * 15;
  126. return x_location;
  127. }
  128.  
  129. function calculateBarrelY(angle){
  130. var y_location = Math.sin(angle/180*Math.PI) * 15;
  131. return y_location;
  132. }
  133.  
  134.  
  135. var width = window.innerWidth;
  136. var height = window.innerHeight;
  137. var socket = io();
  138.  
  139. //sigin
  140.  
  141.  
  142. var chooseTank = document.getElementById('choose-tank');
  143. var gameDiv = document.getElementById('gameDiv');
  144. var signDiv = document.getElementById('signDiv');
  145. var signDivUsername = document.getElementById('signDiv-username');
  146. var play = document.getElementById('play');
  147.  
  148.  
  149. play.onclick = function(){
  150. var tank_choice = chooseTank.options[chooseTank.selectedIndex].value;
  151. if(signDivUsername.value != ''){
  152. $.getJSON('//api.ipify.org?format=jsonp&callback=?', function(data) {
  153. var ip = JSON.stringify(data.ip, null, 2);
  154. socket.emit('signIn',{name:signDivUsername.value,address:ip,tank:tank_choice});
  155. });
  156. /*global localStorage*/
  157. localStorage.username = localStorage.username == undefined ? "" : document.getElementById("signDiv-username").value;
  158. } else{
  159. alert('Please enter a name.');
  160. }
  161. }
  162.  
  163. window.onload=function(){
  164. document.getElementById("signDiv-username").value = document.getElementById("signDiv-username").value == undefined ? "" : localStorage.username;
  165. }
  166.  
  167.  
  168.  
  169. socket.on('signInResponse',function(data){
  170. if(data.success){
  171.  
  172. signDiv.style.display = 'none';
  173. gameDiv.style.display = 'inline-block';
  174. } else
  175. alert("Unable to join. Please try again later.");
  176.  
  177.  
  178. });
  179.  
  180. socket.on('signUpResponse',function(data){
  181. if(data.success){
  182. alert("Sign up successful!");
  183. } else
  184. alert("Sign up unsuccessful!");
  185.  
  186. });
  187.  
  188.  
  189. socket.on('')
  190.  
  191. //chat
  192.  
  193.  
  194. var chatText = document.getElementById('chat-text');
  195. var chatInput = document.getElementById('chat-input');
  196. var chatForm = document.getElementById('chat-form');
  197. socket.on('addToChat',function(data){
  198. console.log('TEXT RECEIVED');
  199. if (data.dev){
  200. chatText.innerHTML += '<div style="color:#EF5058;">' + data.text + '</div>';
  201. }else{
  202. chatText.innerHTML += '<div>' + data.text + '</div>';
  203. }
  204. chatText.scrollTop = chatText.scrollHeight;
  205.  
  206. });
  207.  
  208. var converter = new showdown.Converter();
  209. chatForm.onsubmit = function(e){
  210. e.preventDefault();
  211. socket.emit('sendMsgToServer',{
  212.  
  213. words:chatInput.value,
  214. name:signDivUsername.value,
  215.  
  216. }
  217. );
  218. chatInput.value = '';
  219.  
  220. }
  221.  
  222.  
  223.  
  224.  
  225. //game
  226.  
  227. var scoreboard_content = document.getElementById('scoreboard-content');
  228. scoreboard_content.style.left = width-200;
  229. var actual_leaders = document.getElementById('actual-leaders');
  230. var sorted = [];
  231. var changed_indexes = [];
  232. var original_indexes = [];
  233. var points = [];
  234. var nicknames = [];
  235. var scoreboard_list = {};
  236. var selfId = null;
  237.  
  238. var Img = {};
  239. Img.bullet = new Image();
  240. Img.bullet.src = "https://s27.postimg.org/xu36qtqf7/Bullet_burned.png";
  241. Img.player = new Image();
  242. Img.player.src = "https://s24.postimg.org/rqvuzulzp/Smasher_Perfect.png";
  243.  
  244. var ctx = document.getElementById('ctx').getContext("2d");
  245. var canvas = document.getElementById('ctx');
  246. canvas.width = width;
  247. canvas.height = height;
  248.  
  249.  
  250.  
  251.  
  252. //init
  253.  
  254.  
  255. function radToDeg(deg){
  256. return deg * (Math.PI/180);
  257. }
  258. var Player = function(initPack){
  259. var self = {};
  260. self.id = initPack.id;
  261. self.number = initPack.number;
  262. self.x = initPack.x;
  263. self.y = initPack.y;
  264. self.xm = initPack.xm;
  265. self.ym = initPack.ym;
  266. self.hp = initPack.hp,
  267. self.hpMax = initPack.hpMax,
  268. self.score = initPack.score,
  269. self.name = initPack.name,
  270. self.mouseAngle = initPack.mouseAngle;
  271. self.invisible = initPack.invisible;
  272. self.draw = function(){
  273. //console.log('mouse loc: ' + self.mouseAngle);
  274. //var x_loc = calculateBarrelX(self.mouseAngle);
  275. //var y_loc = calculateBarrelY(self.mouseAngle);
  276. //console.log(x_loc);
  277. //console.log(y_loc);
  278. ctx.fillStyle = 'black';
  279. var hpWidth = 30 * self.hp/self.hpMax;
  280. ctx.font = '30px Ubuntu';
  281. //ctx.save();
  282. //ctx.rotate(self.mouseAngle);
  283. if (!self.invisible){
  284. //ctx.drawImage(Img.player,self.x,self.y,55,55);
  285. var basicTankBarrelSetup = [{barrelType:0,width:20,length:48,angle:0,offsetX:0}];
  286. drawTank(self.x,self.y,0,"#00b2e1",basicTankBarrelSetup,0);
  287.  
  288.  
  289. function drawTank(x,y,angle,radius,color,barrels,bodyType) {
  290. ctx.save();
  291. ctx.translate(x,y);
  292. ctx.rotate(radToDeg(angle));
  293. ctx.scale(radius/48,radius/48);
  294. ctx.lineJoin = "round";
  295. ctx.strokeStyle = "#555555";
  296. ctx.fillStyle = "#999999";
  297. ctx.lineWidth = 4/(radius/48);
  298. for (i = 0; i < barrels.length; i++) {
  299. if (barrels[i].barrelType == 0) {
  300. ctx.save();
  301. ctx.rotate(radToDeg(barrels[i].angle));
  302. ctx.fillRect(0,(48-barrels[i].width)-48+barrels[i].offsetX,barrels[i].length*2,barrels[i].width*2);
  303. ctx.strokeRect(0,(48-barrels[i].width)-48+barrels[i].offsetX,barrels[i].length*2,barrels[i].width*2);
  304. ctx.restore();
  305. };
  306.  
  307. if (barrels[i].barrelType == 1) {
  308. ctx.save();
  309. ctx.rotate(radToDeg(barrels[i].angle));
  310. ctx.beginPath();
  311. ctx.moveTo(0,((-1*barrels[i].width)/2)+barrels[i].offsetX);
  312. ctx.lineTo(barrels[i].length*2,((-1*barrels[i].width*2)/2)+barrels[i].offsetX);
  313. ctx.lineTo(barrels[i].length*2,((barrels[i].width*2)/2)+barrels[i].offsetX);
  314. ctx.lineTo(0,((barrels[i].width)/2)+barrels[i].offsetX);
  315. ctx.lineTo(0,((-1*barrels[i].width)/2)+barrels[i].offsetX);
  316. ctx.fill();
  317. ctx.stroke();
  318. ctx.closePath();
  319. ctx.restore();
  320. };
  321. };
  322. ctx.rotate(0);
  323. ctx.lineWidth = 4/(radius/48);
  324.  
  325. if (bodyType == 0) {
  326. ctx.beginPath();
  327. ctx.arc(48-48,48-48,48,0,2*Math.PI);
  328. ctx.fillStyle = color;
  329. ctx.fill();
  330. ctx.stroke();
  331. ctx.closePath();
  332. ctx.fillStyle = "#000000";
  333. };
  334. if (bodyType == 1) {
  335. ctx.fillStyle = color;
  336.  
  337. ctx.fillRect(-1*radius*2,-1*radius*2,radius*4,radius*4);
  338. ctx.strokeRect(-1*radius*2,-1*radius*2,radius*4,radius*4);
  339. };
  340.  
  341. ctx.restore();
  342. };
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356. //ctx.restore();
  357. //ctx.fillStyle = 'gray';
  358. // ctx.fillRect(self.x+x_loc+27.5/2,self.y+y_loc+27.5,30,4);
  359. ctx.fillStyle = 'red';
  360. ctx.fillRect(self.x+12.5,self.y+58,30,4);
  361. ctx.fillStyle = 'green';
  362. ctx.fillRect(self.x+12.5,self.y+58,hpWidth,4);
  363. ctx.font = '20px Ubuntu';
  364. ctx.fillStyle='darkgray'
  365. ctx.fillText(self.name,self.x+(self.name.length*1.1),self.y-10);
  366. ctx.font = '30px Ubuntu';
  367. };
  368.  
  369. }
  370.  
  371. Player.list[self.id] = self;
  372. return self;
  373. }
  374. var angle = 0;
  375. $(document).mousemove(function(e){
  376. if(!selfId)
  377. return;
  378.  
  379.  
  380.  
  381. var boxCenter= [Player.list[selfId].x+30/2, Player.list[selfId].y+30/2];
  382.  
  383. angle = Math.atan2(e.pageX- boxCenter[0],- (e.pageY- boxCenter[1]) )*(180/Math.PI);
  384. angle = angle - 90;
  385. socket.emit('keyPress',{inputId:'mouseAngle',state:angle});
  386.  
  387. });
  388.  
  389. Player.list = {};
  390.  
  391.  
  392. var Bullet = function(initPack){
  393. var self = {};
  394. self.id = initPack.id;
  395. self.x = initPack.x;
  396. self.y = initPack.y;
  397. self.parent_tank = initPack.parent_tank;
  398. console.log(self.parent_tank);
  399. self.draw = function(){
  400. if(self.parent_tank == 'Destroyer'){
  401. ctx.drawImage(Img.bullet,self.x-5,self.y-5,40,40);
  402. } else if (self.parent_tank == 'Streamliner') {
  403. ctx.drawImage(Img.bullet,self.x-5,self.y-5,15,15);
  404.  
  405. }else {
  406. ctx.drawImage(Img.bullet,self.x-5,self.y-5,20,20);
  407. }
  408. }
  409. Bullet.list[self.id] = self;
  410. return self;
  411. }
  412.  
  413. Bullet.list = {};
  414.  
  415.  
  416.  
  417. socket.on('init', function(data){
  418. if(data.selfId){
  419. selfId = data.selfId;
  420. }
  421.  
  422.  
  423. for (var i = 0; i < data.player.length; i++){
  424. new Player(data.player[i]);
  425. }
  426.  
  427. for (var i = 0; i < data.bullet.length; i++){
  428. new Bullet(data.bullet[i]);
  429. }
  430.  
  431.  
  432.  
  433. });
  434.  
  435. //kill notifs.
  436.  
  437. socket.on('test',function(data){
  438. if (data.killed.id == data.id){
  439. alert(`You killed ${data.killed.name}!`);
  440. };
  441. //ctx.fillStyle = 'white';
  442. //ctx.fillText('You killed ' + data.killed.name,document.getElementById('ctx').width/2,30);
  443. });
  444.  
  445. //update
  446. socket.on('update',function(data){
  447. points = [];
  448. nicknames = [];
  449. for (var i = 0; i < data.player.length; i++){
  450. var player_id = data.player[i].id;
  451. player_id = Number(String(player_id).replace('0.',''));
  452. points.push(data.player[i].score + '.' + player_id);
  453. scoreboard_list[player_id] = data.player[i].name;
  454.  
  455.  
  456. var pack = data.player[i];
  457. var p = Player.list[pack.id]
  458. if(p){
  459. // if (pack.mouseAngle !== undefined)
  460. // p.mouseAngle = pack.mouseAngle;
  461. if (pack.x !== undefined)
  462. p.x = pack.x;
  463. if (pack.y !== undefined)
  464. p.y = pack.y;
  465. if (pack.hp !== undefined)
  466. p.hp = pack.hp;
  467. if (pack.score !== undefined)
  468. p.score = pack.score;
  469. }
  470. }
  471. for (var i = 0; i < data.bullet.length; i++){
  472. var pack = data.bullet[i];
  473. var b = Bullet.list[data.bullet[i].id];
  474. if(b){
  475. if (pack.x !== undefined)
  476. b.x = pack.x;
  477. if (pack.y !== undefined)
  478. b.y = pack.y;
  479. }
  480. }
  481.  
  482. var to_show;
  483. if(sorted.length>3){
  484. to_show = 3;
  485. } else{
  486. to_show = sorted.length;
  487. }
  488.  
  489. sorted = points.sort(function(a,b){return b-a});
  490. var to_add_to_scoreboard = '';
  491. for (var i = 0; i<to_show; i++){
  492. var current_score = sorted[i];
  493. var current_score_string = String(current_score);
  494. var split = current_score_string.split('.');
  495. var score_current = split[0];
  496. var name_current = scoreboard_list[Number(split[1])];
  497. to_add_to_scoreboard += name_current + ' - ' + score_current + '<br/><br/><br/><br/>';
  498.  
  499.  
  500. }
  501.  
  502.  
  503. actual_leaders.innerHTML = to_add_to_scoreboard;
  504.  
  505.  
  506. });
  507.  
  508. //remove
  509.  
  510. socket.on('remove',function(data){
  511. for (var i=0;i<data.player.length;i++){
  512. delete Player.list[data.player[i]];
  513. }
  514.  
  515. for (var i=0;i<data.bullet.length;i++){
  516. delete Bullet.list[data.bullet[i]];
  517. }
  518.  
  519. });
  520.  
  521. //drawing
  522.  
  523. setInterval(function(){
  524. if(!selfId)
  525. return;
  526. ctx.clearRect(0,0,width,height);
  527. drawScore();
  528. for (var i in Player.list){
  529. Player.list[i].draw();
  530. }
  531. for (var i in Bullet.list){
  532. Bullet.list[i].draw();
  533. }
  534. },5);
  535.  
  536.  
  537.  
  538. var drawScore = function(){
  539. if (Player.list[selfId].score > 0){
  540. ctx.fillStyle = 'white';
  541. ctx.fillText('Kills: ' + Player.list[selfId].score,0,30);
  542.  
  543. }
  544. }
  545.  
  546. var drawScoreboard = function(){
  547. ctx.fillStyle = 'white';
  548. ctx.fillText('Scoreboard:',width-200,50);
  549. }
  550.  
  551.  
  552. document.onkeydown = function(event){
  553.  
  554. if(event.keyCode == 68) //d
  555. socket.emit('keyPress',{inputId:'right',state:true});
  556. else if(event.keyCode == 83) //s
  557. socket.emit('keyPress',{inputId:'down',state:true});
  558. else if(event.keyCode == 65) //a
  559. socket.emit('keyPress',{inputId:'left',state:true});
  560. else if(event.keyCode == 87) //w
  561. socket.emit('keyPress',{inputId:'up',state:true});
  562. }
  563.  
  564. document.onkeyup = function(event){
  565.  
  566. if(event.keyCode == 68) //d
  567. socket.emit('keyPress',{inputId:'right',state:false});
  568. else if(event.keyCode == 83) //s
  569. socket.emit('keyPress',{inputId:'down',state:false});
  570. else if(event.keyCode == 65) //a
  571. socket.emit('keyPress',{inputId:'left',state:false});
  572. else if(event.keyCode == 87) //w
  573. socket.emit('keyPress',{inputId:'up',state:false});
  574. }
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583. document.onmousedown = function(event){
  584. socket.emit('keyPress',{inputId:'attack', state:true});
  585. }
  586.  
  587.  
  588. document.onmouseup = function(event){
  589. socket.emit('keyPress',{inputId:'attack', state:false});
  590. }
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597. </script>
  598.  
  599. <script
  600. src="https://code.jquery.com/jquery-3.1.1.js"
  601. integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA="
  602. crossorigin="anonymous"></script>
  603.  
  604. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  605.  
  606.  
  607. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615. <script>/**
  616. * bootbox.js v4.4.0
  617. *
  618. * http://bootboxjs.com/license.txt
  619. */
  620. !function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d.call(c,a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"<div class='bootbox modal' tabindex='-1' role='dialog'><div class='modal-dialog'><div class='modal-content'><div class='modal-body'><div class='bootbox-body'></div></div></div></div></div>",header:"<div class='modal-header'><h4 class='modal-title'></h4></div>",footer:"<div class='modal-footer'></div>",closeButton:"<button type='button' class='bootbox-close-button close' data-dismiss='modal' aria-hidden='true'>&times;</button>",form:"<form class='bootbox-form'></form>",inputs:{text:"<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />",textarea:"<textarea class='bootbox-input bootbox-input-textarea form-control'></textarea>",email:"<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />",select:"<select class='bootbox-input bootbox-input-select form-control'></select>",checkbox:"<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>",date:"<input class='bootbox-input bootbox-input-date form-control' autocomplete=off type='date' />",time:"<input class='bootbox-input bootbox-input-time form-control' autocomplete=off type='time' />",number:"<input class='bootbox-input bootbox-input-number form-control' autocomplete=off type='number' />",password:"<input class='bootbox-input bootbox-input-password form-control' autocomplete='off' type='password' />"}},o={locale:"en",backdrop:"static",animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback.call(this):!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,!1)},a.buttons.confirm.callback=function(){return a.callback.call(this,!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback.call(this,c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!b.isArray(k))throw new Error("Please pass an array of input options");if(!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("<optgroup/>").attr("label",d.group)),e=o[d.group]),e.append("<option value='"+d.value+"'>"+d.text+"</option>")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("<div/>"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),a.maxlength&&h.attr("maxlength",a.maxlength),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var d=b(n.dialog),f=d.find(".modal-dialog"),i=d.find(".modal-body"),j=a.buttons,k="",l={onEscape:a.onEscape};if(b.fn.modal===c)throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");if(g(j,function(a,b){k+="<button data-bb-handler='"+a+"' type='button' class='btn "+b.className+"'>"+b.label+"</button>",l[a]=b.callback}),i.find(".bootbox-body").html(a.message),a.animate===!0&&d.addClass("fade"),a.className&&d.addClass(a.className),"large"===a.size?f.addClass("modal-lg"):"small"===a.size&&f.addClass("modal-sm"),a.title&&i.before(n.header),a.closeButton){var m=b(n.closeButton);a.title?d.find(".modal-header").prepend(m):m.css("margin-top","-10px").prependTo(i)}return a.title&&d.find(".modal-title").html(a.title),k.length&&(i.after(n.footer),d.find(".modal-footer").html(k)),d.on("hidden.bs.modal",function(a){a.target===this&&d.remove()}),d.on("shown.bs.modal",function(){d.find(".btn-primary:first").focus()}),"static"!==a.backdrop&&d.on("click.dismiss.bs.modal",function(a){d.children(".modal-backdrop").length&&(a.currentTarget=d.children(".modal-backdrop").get(0)),a.target===a.currentTarget&&d.trigger("escape.close.bb")}),d.on("escape.close.bb",function(a){l.onEscape&&e(a,d,l.onEscape)}),d.on("click",".modal-footer button",function(a){var c=b(this).data("bb-handler");e(a,d,l[c])}),d.on("click",".bootbox-close-button",function(a){e(a,d,l.onEscape)}),d.on("keyup",function(a){27===a.which&&d.trigger("escape.close.bb")}),b(a.container).append(d),d.modal({backdrop:a.backdrop?"static":!1,keyboard:!1,show:!1}),a.show&&d.modal("show"),d},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={bg_BG:{OK:"Ок",CANCEL:"Отказ",CONFIRM:"Потвърждавам"},br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fa:{OK:"قبول",CANCEL:"لغو",CONFIRM:"تایید"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},hu:{OK:"OK",CANCEL:"Mégsem",CONFIRM:"Megerősít"},hr:{OK:"OK",CANCEL:"Odustani",CONFIRM:"Potvrdi"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sq:{OK:"OK",CANCEL:"Anulo",CONFIRM:"Prano"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},th:{OK:"ตกลง",CANCEL:"ยกเลิก",CONFIRM:"ยืนยัน"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.addLocale=function(a,c){return b.each(["OK","CANCEL","CONFIRM"],function(a,b){if(!c[b])throw new Error("Please supply a translation for '"+b+"'")}),q[a]={OK:c.OK,CANCEL:c.CANCEL,CONFIRM:c.CONFIRM},p},p.removeLocale=function(a){return delete q[a],p},p.setLocale=function(a){return p.setDefaults("locale",a)},p.init=function(c){return a(c||b)},p});
  621. </script>
  622.  
  623. <script>
  624.  
  625. $('#changelog').click(function(){
  626.  
  627. bootbox.alert({
  628. message:"<center><b>Changelog</b></center><ul style='font-family:monospaced;white-space:initial;'> <li>December 26, 2016: <ul> <li>Added classes!</li> <ul> <li>Speed class with higher speed</li> <li>Machine Gun class with higher reload</li> <li>Sniper class with longer lasting bullets</li> <li>Unsniper class with shorter lasting bullets</li> </ul> <li>Dev name color</li> <ul> <li>The devs now have a different color (red)</li> </ul> <li>Added \/u\/haykam821</li> <ul> <li>Is Dev-type and Normal-type</li> <li>100% IVs</li> </ul> </ul></ul>",
  629. backdrop:true
  630. });
  631. });
  632.  
  633.  
  634. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement