Advertisement
j35182

Polytopia Web JS

May 27th, 2020
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Game Assets
  2. var tribes = [
  3.   {
  4.     name:"Xin-Xi"
  5.   },
  6.   {
  7.     name:"Imperius"
  8.   },
  9.   {
  10.     name:"Bardur"
  11.   },
  12.   {
  13.     name:"Oumaji"
  14.   },
  15.   {
  16.     name:"Kickoo"
  17.   },
  18.   {
  19.     name:"Hoodrick"
  20.   },
  21.   {
  22.     name:"Luxidoor"
  23.   },
  24.   {
  25.     name:"Vengir"
  26.   },
  27.   {
  28.     name:"Zebasi"
  29.   },
  30.   {
  31.     name:"Ai-Mo"
  32.   },
  33.   {
  34.     name:"Quetzali"
  35.   },
  36.   {
  37.     name:"Yadakk"
  38.   },
  39.   {
  40.     name:"Aquarion"
  41.   },
  42.   {
  43.     name:"Elyrion"
  44.   },
  45.   {
  46.     name:"Polaris"
  47.   },
  48. ];
  49.  
  50. //Game Settings
  51. var gamemode = "domination";
  52. var playerNum = 2;
  53. var computerNum = 0;
  54. var scoreToWin = 10000;
  55. var timeLimit = 9999;
  56. var mapWidth = 11;
  57. var mapHeight = 11;
  58. var maxResources = 9999;
  59. var permaVision = true;
  60. var hpMod = 1;
  61. var atkMod = 1;
  62. var defMod = 1;
  63.  
  64. //Game Info
  65. var players = [];
  66.  
  67. function defaultRules() {
  68.   gamemode = document.getElementById("gamemode").value;
  69.   playerNum = document.getElementById("players").value;
  70.   if (gamemode == "domination") {
  71.     document.getElementById("stwContainer").style = "display:none;";
  72.     //computerNum = playerNum - 1;
  73.     timeLimit = 9999;
  74.     maxResources = 9999;
  75.     permaVision = true;
  76.     mapWidth = Math.ceil(Math.sqrt(playerNum*50));
  77.     mapHeight = Math.ceil(Math.sqrt(playerNum*50));
  78.     hpMod = 1;
  79.     atkMod = 1;
  80.     defMod = 1;
  81.   } else if (gamemode == "glory") {
  82.     document.getElementById("stwContainer").style = "";
  83.     //computerNum = playerNum - 1;
  84.     scoreToWin = 10000;
  85.     timeLimit = 9999;
  86.     maxResources = 9999;
  87.     permaVision = true;
  88.     mapWidth = Math.ceil(Math.sqrt(playerNum*50));
  89.     mapHeight = Math.ceil(Math.sqrt(playerNum*50));
  90.     hpMod = 1;
  91.     atkMod = 1;
  92.     defMod = 1;
  93.   } else if (gamemode == "perfection") {
  94.     document.getElementById("stwContainer").style = "display:none;";
  95.     //computerNum = playerNum - 1;
  96.     timeLimit = 30;
  97.     maxResources = 9999;
  98.     permaVision = true;
  99.     mapWidth = Math.ceil(Math.sqrt(playerNum*50));
  100.     mapHeight = Math.ceil(Math.sqrt(playerNum*50));
  101.     hpMod = 1;
  102.     atkMod = 1;
  103.     defMod = 1;
  104.   }
  105.   document.getElementById("timelimit").value = timeLimit;
  106.   document.getElementById("maxresources").value = maxResources;
  107.   document.getElementById("permavision").checked = permaVision;
  108.   document.getElementById("width").value = mapWidth;
  109.   document.getElementById("height").value = mapHeight;
  110.   document.getElementById("hpMod").value = hpMod;
  111.   document.getElementById("atkMod").value = atkMod;
  112.   document.getElementById("defMod").value = defMod;
  113. }
  114.  
  115. function startGame() {
  116.   //Set Game Settings
  117.   gamemode = document.getElementById("gamemode").value;
  118.   playerNum = Math.round(document.getElementById("players").value);
  119.   if (playerNum < 2) {
  120.     playerNum = 2;
  121.   } else if (playerNum > 8) {
  122.     playerNum = 8;
  123.   }
  124.   computerNum = Math.round(document.getElementById("computers").value);
  125.   scoreToWin = Math.round(document.getElementById("scoretowin").value);
  126.   if (scoreToWin < 1) {
  127.     scoreToWin = 1;
  128.   }
  129.   timeLimit = Math.round(document.getElementById("timelimit").value);
  130.   if (timeLimit < 1) {
  131.     timeLimit = 1;
  132.   }
  133.   maxResources = Math.round(document.getElementById("maxresources").value);
  134.   if (maxResources < 1) {
  135.     maxResources = 1;
  136.   }
  137.   permaVision = Math.round(document.getElementById("permavision").checked);
  138.   mapWidth = Math.round(document.getElementById("width").value);
  139.   mapHeight = Math.round(document.getElementById("height").value);
  140.   if (mapWidth < 5) {
  141.     mapWidth = 5;
  142.   } else if (mapWidth > 25) {
  143.     mapWidth = 25;
  144.   }
  145.   if (mapHeight < 5) {
  146.     mapHeight = 5;
  147.   } else if (mapHeight > 25) {
  148.     mapHeight = 25;
  149.   }
  150.   if (mapWidth*mapHeight < playerNum*50) {
  151.     mapWidth = Math.ceil(Math.sqrt(playerNum*50));
  152.     mapHeight = Math.ceil(Math.sqrt(playerNum*50));
  153.   }
  154.   hpMod = document.getElementById("hpMod").value;
  155.   atkMod = document.getElementById("atkMod").value;
  156.   defMod = document.getElementById("defMod").value;
  157.   document.getElementById("startGame").style = "display:none;";
  158.  
  159.   //Tribe Selects
  160.   document.getElementById("tribeSelect").innerHTML = "";
  161.   document.getElementById("tribeSelect").style = "";
  162.   for (var i=0; i<playerNum; i++) {
  163.     document.getElementById("tribeSelect").innerHTML += '<div><h2>Player '+(i+1)+'</h2><input type="text" id="playerName'+(i+1)+'" name="playerName'+(i+1)+'" value="Player '+(i+1)+'" maxlength="20"></div><br>';
  164.     var tribeOptions = '<option value="random">Random</option>';
  165.     for (var k=0; k<tribes.length; k++){
  166.       tribeOptions += '<option value="'+k+'">'+tribes[k].name+'</option>';
  167.     }
  168.     document.getElementById("tribeSelect").innerHTML += '<select name="tribe'+i+'" id="tribe'+i+'">'+tribeOptions+'</select>';
  169.   }
  170.   document.getElementById("tribeSelect").innerHTML += "<br><br><hr><br><button onclick='generateWorld()'>Generate World</button>";
  171. }
  172.  
  173. function generateWorld() {
  174.   document.getElementById("tribeSelect").style = "display:none;";
  175.   document.getElementById("game").style="";
  176.   for (var i=0; i<playerNum; i++) {
  177.     var getTribe;
  178.     if (document.getElementById("tribe"+i).value == "random") {
  179.        getTribe = tribes[randomNum(0,(tribes.length - 1))];
  180.     } else {
  181.       getTribe = tribes[document.getElementById("tribe"+i).value];
  182.     }
  183.     players.push(
  184.       {
  185.         name:document.getElementById("playerName"+(i+1)).value,
  186.         tribe:getTribe,
  187.       }
  188.     );
  189.   }
  190.  
  191.   for (var h=0; h<mapHeight; h++) {
  192.     document.getElementById("board").innerHTML += '<div id="row'+h+'" style="display:inline-block;"></div>';
  193.     for (var w=0; w<mapWidth; w++) {
  194.       document.getElementById("row"+h).innerHTML += '<div id="tile'+w+'_'+h+'" style="background-color:red; height:50px; width:50px;" onclick="tileAction('+w+','+h+')"></div>';
  195.     }
  196.   }
  197. }
  198.  
  199. function tileAction(x_val,y_val) {
  200.   console.log(x_val +" "+ y_val)
  201. }
  202.  
  203. function randomNum(min, max) {
  204.   return Math.floor(Math.random() * (max - min + 1) ) + min;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement