Brandon Cornejo
4 years ago
3 changed files with 149 additions and 0 deletions
@ -0,0 +1,145 @@ |
|||
{% extends "base.html" %} |
|||
{% set active_page = "shares_calc" %} |
|||
|
|||
{% block title %}Spoil Shares Calculator{% endblock %} |
|||
{% block content %} |
|||
<div class="uk-flex uk-flex-center uk-margin-bottom uk-margin-top"> |
|||
<h1 class="uk-text-center"><strong>Adventurer Conqueror King</strong>Spoil Shares Calculator</h1> |
|||
</div> |
|||
|
|||
<div class="uk-grid-divider" uk-grid> |
|||
<div class="uk-width-1-3"> |
|||
<h3>Session Info</h3> |
|||
<form class="uk-form-horizontal uk-margin-large"> |
|||
<div class="uk-margin"> |
|||
<label class="uk-form-label" for="player_count">Number of players</label> |
|||
<div class="uk-form-controls"> |
|||
<select name="player_count" id="player_count" class="uk-select"> |
|||
<option value="1">1</option> |
|||
<option value="2">2</option> |
|||
<option value="3">3</option> |
|||
<option value="4">4</option> |
|||
<option value="5">5</option> |
|||
<option value="6">6</option> |
|||
<option value="7">7</option> |
|||
<option value="8">8</option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="uk-margin"> |
|||
<label class="uk-form-label" for="hench_count">Number of henchmen</label> |
|||
<div class="uk-form-controls"> |
|||
<input class="uk-input" id="hench_count" name="hench_count" type="number" value="0"> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="uk-margin"> |
|||
<label class="uk-form-label" for="gp_recovered">GP value recovered</label> |
|||
<div class="uk-form-controls"> |
|||
<input class="uk-input" id="gp_recovered" name="gp_recovered" type="number" value="0"> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="uk-margin"> |
|||
<label class="uk-form-label" for="xp_earned">XP earned from monsters</label> |
|||
<div class="uk-form-controls"> |
|||
<input class="uk-input" id="xp_earned" name="xp_earned" type="number" value="0"> |
|||
</div> |
|||
</div> |
|||
<button type="button" id="share_calc_button" class="uk-button uk-button-primary">Calculate</button> |
|||
</form> |
|||
</div> |
|||
<div class="uk-width-1-3"> |
|||
<h4>Henchmen GP Shares</h4> |
|||
<table id="hench_shares" class="uk-table"> |
|||
<thead> |
|||
<tr> |
|||
<th>Bonus XP Rate</th> |
|||
<th>Share Per-Henchman</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody></tbody> |
|||
</table> |
|||
</div> |
|||
<div class="uk-width-1-3"> |
|||
<h4>Player XP Shares</h4> |
|||
<table id="player_shares" class="uk-table"> |
|||
<thead> |
|||
<tr> |
|||
<th>Bonus XP Rate</th> |
|||
<th>Share Per-Player</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody></tbody> |
|||
</table> |
|||
|
|||
<h4>Player GP Share</h4> |
|||
<span id="pc_gp_share"></span> |
|||
</div> |
|||
</div> |
|||
{% endblock %} |
|||
|
|||
{% block head %} |
|||
<style> |
|||
</style> |
|||
{% endblock %} |
|||
|
|||
{% block scripts %} |
|||
<script type="text/javascript"> |
|||
window.addEventListener('DOMContentLoaded', () => { |
|||
var calc = document.querySelector('button#share_calc_button'); |
|||
calc.addEventListener("click", calculateShares); |
|||
}); |
|||
|
|||
function calculateShares() { |
|||
var player_shares = document.querySelector('table#player_shares > tbody'); |
|||
var hench_shares = document.querySelector('table#hench_shares > tbody'); |
|||
|
|||
player_shares.innerHTML = ''; |
|||
hench_shares.innerHTML = ''; |
|||
|
|||
var player_count = parseInt(document.querySelector('select#player_count').value); |
|||
var hench_count = parseInt(document.querySelector('input#hench_count').value); |
|||
|
|||
var gp = parseInt(document.querySelector('input#gp_recovered').value); |
|||
var xp = parseInt(document.querySelector('input#xp_earned').value); |
|||
|
|||
let total_xp = gp + xp; |
|||
let pc_base_xp_share = total_xp / (player_count + hench_count / 2.0); |
|||
|
|||
let response = ''; |
|||
for(let i = 0; i < 5; i ++) { |
|||
// Build player rows |
|||
const row = document.createElement("tr"); |
|||
const c1 = document.createElement("td"); |
|||
const c2 = document.createElement("td"); |
|||
|
|||
c1.appendChild(document.createTextNode(`@ ${5 * i}%`)); |
|||
c2.appendChild(document.createTextNode(`${Math.floor(pc_base_xp_share * (1 + 0.05 * i))} xp`)); |
|||
|
|||
row.appendChild(c1); |
|||
row.appendChild(c2); |
|||
|
|||
player_shares.appendChild(row); |
|||
|
|||
// Build hench rows |
|||
const hrow = document.createElement("tr"); |
|||
const hc1 = document.createElement("td"); |
|||
const hc2 = document.createElement("td"); |
|||
|
|||
hc1.appendChild(document.createTextNode(`@ ${5 * i}%`)); |
|||
hc2.appendChild(document.createTextNode(`${Math.floor(pc_base_xp_share * (1 + 0.05 * i) / 2.0)} xp`)); |
|||
|
|||
hrow.appendChild(hc1); |
|||
hrow.appendChild(hc2); |
|||
|
|||
hench_shares.appendChild(hrow); |
|||
} |
|||
|
|||
var pc_gp_share = document.querySelector('span#pc_gp_share'); |
|||
let gpshare = Math.floor(gp / (player_count + hench_count / 6.0)) |
|||
pc_gp_share.appendChild(document.createTextNode(`${gpshare} gold per player.`)); |
|||
} |
|||
</script> |
|||
{% endblock %} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue