backend: frontend: added calculation for save values

This commit is contained in:
Patryk Hegenberg 2023-12-14 20:00:10 +01:00
parent a0d6ff1cff
commit aba6e13663
3 changed files with 96 additions and 83 deletions

View file

@ -45,6 +45,7 @@ func SkillCalculationHandler(content embed.FS) http.HandlerFunc {
int := parseFieldValue(r.FormValue("int"))
cha := parseFieldValue(r.FormValue("cha"))
wis := parseFieldValue(r.FormValue("wis"))
con := parseFieldValue(r.FormValue("con"))
cr := parseFieldValue(r.FormValue("cr"))
crBonus := calcBonus(cr)
@ -67,6 +68,12 @@ func SkillCalculationHandler(content embed.FS) http.HandlerFunc {
"sleightOfHand": strconv.Itoa(calcAbilityScore(dex) + crBonus),
"stealth": strconv.Itoa(calcAbilityScore(dex) + crBonus),
"survival": strconv.Itoa(calcAbilityScore(wis) + crBonus),
"saveStr": strconv.Itoa(calcAbilityScore(str)),
"saveWis": strconv.Itoa(calcAbilityScore(wis)),
"saveCon": strconv.Itoa(calcAbilityScore(con)),
"saveInt": strconv.Itoa(calcAbilityScore(int)),
"saveCha": strconv.Itoa(calcAbilityScore(cha)),
"saveDex": strconv.Itoa(calcAbilityScore(dex)),
}
// Execute template with skill values.

View file

@ -219,70 +219,7 @@
</div>
</div>
</div>
<div class="card tile is-ancestor is-vertical">
<header class="card-header">
<p class="card-header-title">
Save
</p>
</header>
<div class="card-content">
<div class="content">
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveDex">Dex:</label>
<div class="control">
<input type="text" name="saveDex" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveCon">Con:</label>
<div class="control">
<input type="text" name="saveCon" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveWis">Wis:</label>
<div class="control">
<input type="text" name="saveWis" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveCha">Cha:</label>
<div class="control">
<input type="text" name="saveCha" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveInt">Int:</label>
<div class="control">
<input type="text" name="saveInt" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveStr">Str:</label>
<div class="control">
<input type="text" name="saveStr" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="skills" class="card tile is-ancestor is-vertical">
<div id="skills" class="tile is-ancestor is-vertical">
{{ template "skills" }}
</div>
<div class="tile is-ancestor">

View file

@ -1,4 +1,71 @@
{{ define "skills" }}
<div class="tile is-parent">
<div class="card tile is-child is-ancestor is-vertical">
<header class="card-header">
<p class="card-header-title">
Save
</p>
</header>
<div class="card-content">
<div class="content">
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveDex">Dex:</label>
<div class="control">
<input type="text" name="saveDex" required class="input input-bordered w-full max-w-xs" value="{{.saveDex}}">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveCon">Con:</label>
<div class="control">
<input type="text" name="saveCon" required class="input input-bordered w-full max-w-xs" value="{{.saveCon}}">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveWis">Wis:</label>
<div class="control">
<input type="text" name="saveWis" required class="input input-bordered w-full max-w-xs" value="{{.saveWis}}">
</div>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveCha">Cha:</label>
<div class="control">
<input type="text" name="saveCha" required class="input input-bordered w-full max-w-xs" value="{{.saveCha}}">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveInt">Int:</label>
<div class="control">
<input type="text" name="saveInt" required class="input input-bordered w-full max-w-xs" value="{{.saveInt}}">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="saveStr">Str:</label>
<div class="control">
<input type="text" name="saveStr" required class="input input-bordered w-full max-w-xs" value="{{.saveStr}}">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="card tile is-child is-ancestor is-vertical">
<header class="card-header">
<p class="card-header-title">
Skill
@ -9,7 +76,7 @@
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="acrobatics">Acrobatics:</label>
<label class="checkbox" for="acrobatics"><input type="checkbox">Acrobatics:</label>
<div class="control">
<input type="text" name="acrobatics" required class="input input-bordered w-full max-w-xs" value="{{
.acrobatics }}" readonly>
@ -18,7 +85,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="animalHandling">Animal Handling:</label>
<label for="animalHandling" class="checkbox"><input type="checkbox">Animal Handling:</label>
<div class="control">
<input type="text" name="animalHandling" required class="input input-bordered w-full max-w-xs"
value="{{ .animalHandling }}" readonly>
@ -27,7 +94,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="arcana">Arcana:</label>
<label for="arcana" class="ceckbox"><input type="checkbox">Arcana:</label>
<div class="control">
<input type="text" name="arcana" required class="input input-bordered w-full max-w-xs" value="{{ .arcana }}"
readonly>
@ -38,7 +105,7 @@
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="athletics">Athletics:</label>
<label for="athletics" class="checkbox"><input type="checkbox">Athletics:</label>
<div class="control">
<input type="text" name="athletics" required class="input input-bordered w-full max-w-xs"
value="{{ .athletics }}" readonly>
@ -47,7 +114,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="deception">Deception:</label>
<label for="deception" class="checkbox"><input type="checkbox">Deception:</label>
<div class="control">
<input type="text" name="deception" required class="input input-bordered w-full max-w-xs"
value="{{ .deception }}" readonly>
@ -56,7 +123,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="history">History:</label>
<label for="history" class="checkbox"><input type="checkbox">History:</label>
<div class="control">
<input type="text" name="history" required class="input input-bordered w-full max-w-xs"
value="{{ .history }}" readonly>
@ -67,7 +134,7 @@
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="insight">Insight:</label>
<label for="insight" class="checkbox"><input type="checkbox">Insight:</label>
<div class="control">
<input type="text" name="insight" required class="input input-bordered w-full max-w-xs"
value="{{ .insight }}" readonly>
@ -76,7 +143,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="intimidation">Intimidation:</label>
<label for="intimidation" class="checkbox"><input type="checkbox">Intimidation:</label>
<div class="control">
<input type="text" name="intimidation" required class="input input-bordered w-full max-w-xs"
value="{{ .intimidation }}" readonly>
@ -85,7 +152,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="investigation">Investigation:</label>
<label for="investigation" class="checkbox"><input type="checkbox">Investigation:</label>
<div class="control">
<input type="text" name="investigation" required class="input input-bordered w-full max-w-xs"
value="{{ .investigation }}" readonly>
@ -96,7 +163,7 @@
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="medicine">Medicine:</label>
<label for="medicine" class="checkbox"><input type="checkbox">Medicine:</label>
<div class="control">
<input type="text" name="medicine" required class="input input-bordered w-full max-w-xs"
value="{{ .medicine }}" readonly>
@ -105,7 +172,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="nature">Nature:</label>
<label for="nature" class="checkbox"><input type="checkbox">Nature:</label>
<div class="control">
<input type="text" name="nature" required class="input input-bordered w-full max-w-xs" value="{{ .nature }}"
readonly>
@ -114,7 +181,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="performance">Performance:</label>
<label for="performance" class="checkbox"><input type="checkbox">Performance:</label>
<div class="control">
<input type="text" name="performance" required class="input input-bordered w-full max-w-xs"
value="{{ .performance }}" readonly>
@ -125,7 +192,7 @@
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="perception">Perception:</label>
<label for="perception" class="checkbox"><input type="checkbox">Perception:</label>
<div class="control">
<input type="text" name="perception" required class="input input-bordered w-full max-w-xs"
value="{{ .perception }}" readonly>
@ -134,7 +201,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="stealth">Stealth:</label>
<label for="stealth" class="checkbox"><input type="checkbox">Stealth:</label>
<div class="control">
<input type="text" name="stealth" required class="input input-bordered w-full max-w-xs"
value="{{ .stealth }}" readonly>
@ -143,7 +210,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="persuasion">Persuasion:</label>
<label for="persuasion" class="checkbox"><input type="checkbox">Persuasion:</label>
<div class="control">
<input type="text" name="persuasion" required class="input input-bordered w-full max-w-xs"
value="{{ .persuasion }}" readonly>
@ -154,7 +221,7 @@
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="sleightOfHand">Sleight of Hand:</label>
<label for="sleightOfHand" class="checkbox"><input type="checkbox">Sleight of Hand:</label>
<div class="control">
<input type="text" name="sleightOfHand" required class="input input-bordered w-full max-w-xs"
value="{{.sleightOfHand }}" readonly>
@ -163,7 +230,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="religion">Religion:</label>
<label for="religion" class="checkbox"><input type="checkbox">Religion:</label>
<div class="control">
<input type="text" name="religion" required class="input input-bordered w-full max-w-xs"
value="{{ .religion }}" readonly>
@ -172,7 +239,7 @@
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="survival">Survival:</label>
<label for="survival" class="checkbox"><input type="checkbox">Survival:</label>
<div class="control">
<input type="text" name="survival" required class="input input-bordered w-full max-w-xs"
value="{{ .survival }}" readonly>
@ -182,4 +249,6 @@
</div>
</div>
</div>
{{ end }}
</div>
</div>
{{ end }}