123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- 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
- 90, // FastZombie
- 140, // FlyZombie
- 45, // S_Fly
- 140,
- 30,
- 50,
- 100,
- 100, // Scorpio
- 390,
- 100,
- 110,
- 60,
- 140,
- 160,
- 230, // LeapingDuelyst
- 100,
- 125,
- 150,
- 1,
- 1,
- 40,
- 150, // Shielder
- 215,
- 220,
- 200,
- 1000,
- 35,
- 250,
- 200, // PirateChief
- 195,
- 90,
- 100,
- 200,
- 400,
- 190,
- 300,
- 150,
- 4096,
- 4096,
- 250,
- 2500,
- 5900
- ];
- let stats = [1, 1, 1];
- let diff = 0;
- let mob = -1;
- let level = -1;
- function separator_gen(val) {
- return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
- }
- function recalc() {
- if(mob == -1 || level == -1) {
- 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));
- let hardcap = null;
- let result_hardcap = 0;
- switch(Number(mob)) {
- case 38: hardcap = .05; break;
- case 39: hardcap = .05; break;
- case 40: hardcap = .25; break;
- case 41: hardcap = 0.03; break;
- case 42: hardcap = .05; break;
- default: hardcap = .0;
- }
- if(result1 === result2) {
- result = separator_gen(result1);
- result_hardcap = Math.round(hardcap * result1);
- }
- else {
- result = separator_gen(result1) + "-" + separator_gen(result2);
- result_hardcap = separator_gen(Math.round(hardcap * result1)) + "-" + separator_gen(Math.round(hardcap * result2));
- }
- result_hardcap += ' (' + (hardcap * 100) + '%)';
- let capdiv = document.getElementById('capdiv');
- if(hardcap > .0) {
- capdiv.style.display = "block";
- }
- else {
- capdiv.style.display = "none";
- }
- document.getElementById('result').innerHTML = result;
- document.getElementById('hardcap').innerHTML = result_hardcap;
- }
- function update_stat(type, val) {
- stats[type] = val;
- recalc(false);
- }
- function update_diff(val) {
- diff = val;
- recalc();
- }
- function update_mob(val) {
- mob = val;
- recalc();
- }
- function update_level(val) {
- level = val;
- recalc();
- }
- function init() {
- reset();
- stats[0] = document.getElementById('brut').value;
- stats[1] = document.getElementById('tact').value;
- stats[2] = document.getElementById('surv').value;
- }
- function reset() {
- document.getElementById('frm').reset();
- document.getElementById('result').innerHTML = '—';
- document.getElementById('capdiv').style.display = "none";
- stats = [1, 1, 1];
- diff = 0;
- mob = -1;
- level = -1;
- }
|