123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Dead Cells calculator</title>
- <link rel="stylesheet" href="style.css">
- <script>
- let diff_tier = [
- 0, // 0 cells
- 2, // 1 cell
- 5, // 2 cells
- 8, // 3 cells
- 11 // 4 cells
- ];
- let level_tier = [
- [1, 0], // PrisonStart
- [3, 0], // PrisonCourtyard
- [7, 2], // PrisonDepths
- [3, 2], // SewerShort
- [6, 2], // PrisonRoof
- [8, 2], // Ossuary
- [7, 3], // SewerDepths
- [11, 0], // Bridge
- [11, 0], // Beholder
- // [9, 0], // PrisonCorrupt
- [11, 2], // StiltVillage
- [12, 2], // AncientTemple
- [12, 2], // Cemetery
- [15, 2], // Crypt
- [16, 2], // ClockTower
- // [13, 0], // Cavern
- [21, 0], // TopClockTower
- // [16, 0], // Giant
- [22, 2], // Castle
- [26, 0] // Throne
- ];
- let mob_hp = [
- 120 // Zombie
- ];
- let stats = [1, 1, 1];
- let diff = 0;
- let mob = -1;
- let level = -1;
- let counter = 0;
- function recalc(force) {
- if(mob == -1 || level == -1 || stats.includes(0)) {
- if(force) {
- if(counter == 7) {
- alert('f̴̈̃͑̽̓͋ͧͨ͆͏̢̙̲͈̩̺̣̖̱̙̪̺̼̦͇͕͈͞ù̬̝̬̻͇̗̟̝̥̰ͭ̆̄͂̃͟c͕͚̠͍̬̋͗ͪ̍ͭͯͯ̑͡k̸̹̦̩̠ͦͩͣ̾͊̂̀͟ì̷̛̪̠̳̩̟͎̯̜̪̠̯͕̝̯̝͓ͨ̑̈́ͯͤ̏ͦ̋̀͋́͜͠͝n̸̺̰̻̼̬̯̗̩͉̆ͪ̑͑ͨ͒ͩ̉ͨ̂̃͋̇̔̚ͅg̶̡̛̛̱͎̙̺̬͒ͥ̊͒ͮ̂̂ͧ̂ͩͦͫͦ̓ͩͫ͢ ̆͌̄͊́ͩ̄̇ͬ̾̊ͫ͊̑̒͊͏̯͇̟̩̬ͅd̛̽̒̈ͫ̈͌̑͋ͬ͡͏̗̲̞̬̟̠̳̝̙͚̪͕ā̸̡̨̻͇̭̘̬̤̳̟̲̩̩̭͕̫͙̙̘̒̃ͫͣͩͥ́ͅt̡̖̥̲̰̺͉̼͌̊ͮͤ̽̐̈́̀̕͜͟ȧ̷̢̫̯̳͕̗̟̻̦͙͇̻̻̹͇͈̊̋̾̅̋͒̈̌͋̋̅͞m̵̵̷̷̨͓̳̟̙̠̘̘̤̭͓̠̉́ͯ̉̎͗̅ͭͮ̔̇̒ͪm̛̦̤̳͈͍͖̹̖͊̓͑̽̽̀̒̚͘m̡̼͎̘̻͇͔̻͖̩̩̞̠̳̜͍͕ͭ͋ͪ̑ͨ̒ͬ͐̈̽ͩ̾͛̀ͦͣ͘͢͡m̸̴̶̧͍̟̭̯̟͙̦̼̰̝͚̘̲̻̩̣̩̬̬̾̈́̓ͪ́ͥ̾̽̎̈́͊͂͑͢m̞͖̗͓̯͔̰͍̖̫͖̙͍̮ͨ̎͗͌ͨͤ̀͝m̒̾ͣ̂ͦ̒̚҉͝͏͇̺̞̩͕͔̝m̶̷̛̤͉̥̯̟̄ͬ̾̎͐͆ͦ̈̔ͭͬ̀͘m̨͈͙̤̺̺̲̦̮͇̭̫̥̞̮̌̔͋͊͛̔̆̍̑ͩ̽͋̇̋͑̂ͤ̚͜m͓̟̳̦̻̻̼̠͇͔̰̽̉ͪ͗̓̐̐͆̋̓̓̽́̕͘ͅm̵̷̔̓̔ͬ̒̆͆̽̌҉̘̱̪͙̹͍̤̫̼̗͚̟̟̙̤͠ͅm̷̶̲̣̯̭͚̤͍̤̐ͥͣ͗̇ͨͩ͛̀m̸̨̰̥͖̠̥͎̼̝̹͔̯̺ͤ̔̓̎͡ͅm̶̷̢̡̻͇̺̝̥̤͉̑ͣ̄ͭ͌ͧͦͦͩm̱̖̪͈͔̭̤̝̹͇̳̠͎̬͎͙͉ͫͬ̆̃ͨ̀͠ͅḿ̷̷̧̹̩̹̗͖̺̤͇͙̔̌͘͠m̵ͨ͋̓͌̽̉ͬ͛̎͒̅ͯͥ̿ͧ̔͏̗̬̭̠̜̝͍͙̫̲͉͙̯̘ͅṃ̷̣̩̖͔̬͓̖͇̠͕̜͖͆ͫ̒̐̽̾̔̎ͨ͌ͥ̚̚̚͢͠ṃ̢̭̹̖̳ͩ̈͆ͧͪ̒̌̆͑ͤͪ͊ͦͤm̧͂̈́̇͌ͬ̇̓ͮͨ̏͋̓̔͝͡͏̪̱̝̠̬̮͕̠̟̥m̛̞͉͓̮͚̥̭͔̼̰͑̆ͬ̊̔̿ͦͬ̇̑̋̑m̵̷̢̼̝̫̞̤͎ͩ̉͒ͧͭ̐͐ͨ̈́̽͌͐͐̎̓͛̒̅͞m͂͌̅̎҉̺͓̟̤̺̫̖̮̖̰̺̯̭̼͢m͐̎ͣͧ̅͆̚͏̷̙̬̗̱͙̥͢͟͞m͂͌͋͊ͦ͂̏̍҉̨̩̜͖̟̞̠̫̱̖̭̰̮̺̗̭̕͜ͅm̷͆ͭ͊ͪ̉̌̆͛̚͘҉͉̰̣͚̭̫͞ṃ̵̷̖̪̹͓ͣ͂̎̑͐ͭ͂́͊̍̆̌̑͊͛͟ͅͅm̶̴̡͊̆̀̈͗҉̴̗͓̟̱̭̤͔͇ͅͅm̡͓͈̞͓̪̮̰̖̝̱̻͓̝͉̳ͫ̑͂̓̋mͬͣ̇ͤ̋͋̊ͪ̆̅ͪ̊̌̉́ͩ̚̕͜͠͏̛͖̥͖̗͙̤̣̘̯̤̞̼͕͎̗̮̜̯͖m̛̰͔̲̜̜ͭ͊̀͊͌̉͞m̨̼̰̗͙̯̱ͦͫ̇ͨͬ̄̆͒̑̅̔ͪͮ́͘͜͝');
- }
- else {
- alert('You must specify all the values.');
- }
- ++counter;
- }
- return;
- }
- let result = 0;
- let result1 = 0;
- let result2 = 0;
- let allstats = Number(stats[0]) + Number(stats[1]) + Number(stats[2]) - 3;
- let current_diff = diff_tier[diff];
- let current_mob_hp = mob_hp[mob];
- let current_level_mintier = Number(current_diff) + Number(level_tier[level][0]);
- let current_level_maxtier = Number(current_diff + level_tier[level][0]) + Number(level_tier[level][1]);
- // alert(current_mob_hp + ' ' + current_level_mintier + ' ' + current_level_maxtier + ' ' + allstats);
- result1 = Math.round(current_mob_hp * (1 + current_level_mintier * .12) * Math.pow(1.08, allstats));
- result2 = Math.round(current_mob_hp * (1 + current_level_maxtier * .12) * Math.pow(1.08, allstats));
- if(result1 === result2) {
- result = result1;
- }
- else {
- result = result1 + "-" + result2;
- }
- document.getElementById('result').innerHTML = result;
- }
- function update_stat(type, val) {
- stats[type] = val;
- recalc(false);
- }
- function update_diff(val) {
- diff = val;
- recalc(false);
- }
- function update_mob(val) {
- mob = val;
- recalc(false);
- }
- function update_level(val) {
- level = val;
- recalc(false);
- }
- function init() {
- stats[0] = document.getElementById('brut').value;
- stats[1] = document.getElementById('tact').value;
- stats[2] = document.getElementById('surv').value;
- }
- </script>
- </head>
- <body onload="document.getElementById('frm').reset();">
- <div class="navbar">
- <a href="https://docs.google.com/spreadsheets/d/1TxHlmb7zKaXEcbKbqoPMMUzOEdp_LLM-RMcdqH7-mpM">Stat spreadsheet</a>
- </div>
- <h1>Dead Cells HP calculator</h1>
- <datalist id="browsers">
- <option value="Internet Explorer">
- <option value="Firefox">
- <option value="Google Chrome">
- <option value="Opera">
- <option value="Safari">
- </datalist>
- <form id="frm">
- Brutality: <input value="1" min="1" step="1" type="number" onchange="update_stat(0, this.value)" id="brut" /><br />
- Tactics: <input value="1" min="1" step="1" type="number" onchange="update_stat(1, this.value)" id="tact" /><br />
- Survival: <input value="1" min="1" step="1" type="number" onchange="update_stat(2, this.value)" id="surv" /><br />
- Difficulty: <input value="0" min="0" max="4" step="1" type="number" onchange="update_diff(this.value)" id="diff" /><br />
- Level:
- <select id="level" onchange="update_level(this.value)">
- <option value="-1"><choose></option>
- <option value="0">Prisoners' Quarters</option>
- <option value="1">PrisonCourtyard</option>
- <option value="2">PrisonDepths</option>
- <option value="3">SewerShort</option>
- <option value="4">PrisonRoof</option>
- <option value="5">Ossuary</option>
- <option value="6">SewerDepths</option>
- <option value="7">Bridge</option>
- <option value="8">Beholder</option>
- <option value="9">StiltVillage</option>
- <option value="10">AncientTemple</option>
- <option value="11">Cemetery</option>
- <option value="12">Crypt</option>
- <option value="13">ClockTower</option>
- <option value="14">TopClockTower</option>
- <option value="15">Castle</option>
- <option value="16">Throne</option>
- </select><br />
- Mob:
- <select id="mob" onchange="update_mob(this.value)">
- <option value="-1"><choose></option>
- <option value="0">Zombie</option>
- <option value="1">Running Zombie</option>
- <option value="2">Purulent Zombie (Graveyard)</option>
- <option value="3">Buzzcutter</option>
- <option value="4">Purulent Zombie (Sewers)</option>
- <option value="5"></option>
- <option value="6"></option>
- <option value="7"></option>
- <option value="8"></option>
- <option value="9"></option>
- <option value="10"></option>
- <option value="11"></option>
- <option value="12"></option>
- <option value="13"></option>
- <option value="14"></option>
- <option value="15"></option>
- <option value="16"></option>
- <option value="17"></option>
- <option value="18"></option>
- <option value="19"></option>
- <option value="20"></option>
- <option value="21"></option>
- <option value="22"></option>
- <option value="23"></option>
- <option value="24"></option>
- <option value="25"></option>
- <option value="26"></option>
- <option value="27"></option>
- <option value="28"></option>
- <option value="29"></option>
- <option value="30"></option>
- <option value="31"></option>
- <option value="32"></option>
- <option value="33"></option>
- <option value="34"></option>
- <option value="35"></option>
- </select>
- </form>
- <button onclick="recalc(true)">Update</button>
- <button onclick="document.getElementById('frm').reset();">Reset</button>
- <div class="yay">HP: <span id="result">-</span></div>
- </body>
- </html>
|