Queslar Battle Sim
by path411
HTML
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<div class="fluid-container">
<div class="row">
<div class="col">
<input id="apikey" type="text" placeholder="api key" />
<br>
<button id="import">
import
</button>
</div>
<div class="col">
<input id="apikeyo" type="text" placeholder="api key" />
<br>
<button id="importo">
import Opponent
</button>
</div>
</div>
<br><br>
<div class="row">
<div class="col">
<h2>
Your stats
</h2>
Equipment Damage: <input id="basedamage" type="text" placeholder="equipment damage" value="207289" /><br>
Equipment Defense: <input id="basedefense" type="text" placeholder="equipment defense" value="226440" />
<br><br>
Strength: <input id="strength" type="text" placeholder="strength" value="349507"/><br>
Health: <input id="health" type="text" placeholder="health" value="347839" /><br>
Agility: <input id="agility" type="text" placeholder="agility" value="348485"/><br>
Dexterity: <input id="dexterity" type="text" placeholder="dexterity" value="347220"/><br>
<br><br>
Crit Chance %:<input id="critchanceboost" type="text" placeholder="critchance %" value="83"/><br>
Crit Damage %<input id="critdamageboost" type="text" placeholder="critdamage %" value="18"/><br>
Multistrike %<input id="multistrikeboost" type="text" placeholder="multistrike %" value="113"/><br>
Healing %<input id="healingboost" type="text" placeholder="healing %" value="114"/><br>
Defense %<input id="defenseboost" type="text"...
JavaScript
const statNames = [
'basedamage',
'basedefense',
'strength',
'health',
'agility',
'dexterity',
'critchanceboost',
'critdamageboost',
'multistrikeboost',
'healingboost',
'defenseboost'
];
var pstats;
var ostats;
var metastats;
var log;
var settings = {
simType: 'monster',
runsPerSim: 100000,
};
function Import(opponent=false) {
$.ajax({
dataType: "json",
url: "https://queslar.com/api/player/full/"+$('#apikey'+(opponent? 'o':'')).val(),
success: function(data) {
ReadImport(data, opponent);
}
});
}
function ReadImport(data, opponent) {
var playerid = data.player.id;
var stats = {
basedamage: 10,
basedefense: 0,
strength: data.stats.strength,
health: data.stats.health,
agility: data.stats.agility,
dexterity: data.stats.dexterity,
critchanceboost: data.boosts.critChance/10,
critdamageboost: data.boosts.critDamage/10,
multistrikeboost: data.boosts.multistrike/10,
healingboost: data.boosts.healing/10,
defenseboost: data.boosts.defense/10,
};
for(var i=0, iL=data.partners.length; i<iL; i++) {
stats.strength += data.partners[i].strength;
stats.health += data.partners[i].health;
stats.agility += data.partners[i].agility;
stats.dexterity += data.partners[i].dexterity;
}
for(var i=0, iL=data.pets.length; i<iL; i++) {
let pet = data.pets[i];
let petEfficiency = pet.efficiency_tier;
petEfficiency = 0.2 + (0.1 * petEfficiency);
stats.basedamage += pet.level * 200 * petEfficiency; // Patch 1.1.1 pet buff
stats.basedefense += pet.level * 100 * petEfficiency; // Patch 1.1.1 pet buff
stats.strength += data.pets[i].strength * petEfficiency;
stats.health += data.pets[i].health * petEfficiency;
stats.agility += data.pets[i].agility * petEfficiency;
stats.dexterity += data.pets[i].dexterity...