Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.    let buttons = document.getElementsByTagName('button');
  3.  
  4.    let rebuildButton = buttons[0];
  5.    let joinButton = buttons[1];
  6.    let attackButton = buttons[2];
  7.  
  8.    let map = document.getElementById("map");
  9.  
  10.    rebuildButton.addEventListener('click', (e) => {
  11.       let kingdom = e.target.parentElement.querySelectorAll('input')[0];
  12.       let king = e.target.parentElement.querySelectorAll('input')[1];
  13.  
  14.       let currentKingdom = map.querySelector(`div[id=${kingdom.value.toLowerCase()}]`);
  15.  
  16.       if (currentKingdom && currentKingdom.style.display === 'none' && king.value.length >= 2) {
  17.  
  18.          currentKingdom.innerHTML = `<h1>${kingdom.value.toUpperCase()}</h1>` +
  19.             '<div class="castle"></div>' +
  20.             `<h2>${king.value.toUpperCase()}</h2>` +
  21.             '<fieldset>' +
  22.             '<legend>Army</legend>' +
  23.             '<p>TANKS - 0</p>' +
  24.             '<p>FIGHTERS - 0</p>' +
  25.             '<p>MAGES - 0</p>' +
  26.             '<div class="armyOutput"></div>' +
  27.             '</fieldset>' +
  28.             '</div>';
  29.  
  30.          currentKingdom.style.display = 'inline-block';
  31.       }
  32.       else {
  33.          king.value = '';
  34.          kingdom.value = '';
  35.       }
  36.    });
  37.  
  38.    joinButton.addEventListener('click', (e) => {
  39.       let characters = document.querySelectorAll('input[type="radio"]');
  40.       let chType = Array.from(characters).filter(ch => ch.checked === true)[0];
  41.  
  42.       if (chType) {
  43.          let inputs = chType.parentElement.parentElement.querySelectorAll('input[type="text"]');
  44.          let chName = inputs[0].value;
  45.          let chKingdom = inputs[1].value.toLowerCase();
  46.  
  47.          let currentKingdom = document.querySelector(`div[id="${chKingdom}"]`);
  48.  
  49.          if (chName.length >= 2 && currentKingdom && currentKingdom.style.display === 'inline-block') {
  50.             let fieldsetInfo = currentKingdom.querySelector('fieldset').children;
  51.  
  52.             switch (chType.value) {
  53.                case 'fighter': fieldsetInfo[2].textContent = `FIGHTERS - ${Number(fieldsetInfo[2].textContent.split(' ')[2]) + 1}`;
  54.                   break;
  55.                case 'mage': fieldsetInfo[3].textContent = `MAGES - ${Number(fieldsetInfo[3].textContent.split(' ')[2]) + 1}`;
  56.                   break;
  57.                case 'tank': fieldsetInfo[1].textContent = `TANKS - ${Number(fieldsetInfo[1].textContent.split(' ')[2]) + 1}`;
  58.                   break;
  59.             }
  60.  
  61.             fieldsetInfo[4].textContent += `${chName} `;
  62.          }
  63.          else {
  64.             inputs[0].value = '';
  65.             inputs[1].value = '';
  66.          }
  67.       }
  68.    });
  69.  
  70.    attackButton.addEventListener('click', (e) => {
  71.       let attacker = e.target.parentElement.children[1].value.toLowerCase();
  72.       let defender = e.target.parentElement.children[2].value.toLowerCase();
  73.  
  74.       let attackKingdom = document.querySelector(`div[id="${attacker}"]`);
  75.       let defenseKingdom = document.querySelector(`div[id="${defender}"]`);
  76.  
  77.       if (attackKingdom && attackKingdom.style.display === 'inline-block' && defenseKingdom && defenseKingdom.style.display === 'inline-block') {
  78.          let attackKingdomPoints = getKingdomPoints(attackKingdom, 'attack');
  79.          let defenseKingdomPoints = getKingdomPoints(defenseKingdom, 'defense');
  80.  
  81.          if (attackKingdomPoints > defenseKingdomPoints) {
  82.             defenseKingdom.children[2].textContent = attackKingdom.children[2].textContent;
  83.          }
  84.       }
  85.       else {
  86.          e.target.parentElement.children[1].value = '';
  87.          e.target.parentElement.children[2].value = '';
  88.       }
  89.    });
  90.  
  91.    function getKingdomPoints(kingdom, type) {
  92.       let fieldSet = kingdom.children[3];
  93.  
  94.       let tanks = Number(fieldSet.children[1].textContent.split(' ')[2]);
  95.       let fighters = Number(fieldSet.children[2].textContent.split(' ')[2]);
  96.       let mages = Number(fieldSet.children[3].textContent.split(' ')[2]);
  97.  
  98.       if (type === 'attack') {
  99.          return tanks * 20 + fighters * 50 + mages * 70;
  100.       }
  101.       else if (type === 'defense') {
  102.          return tanks * 80 + fighters * 50 + mages * 30;
  103.       }
  104.    }
  105. }
  106.  
  107. solve();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement