Hi, I’m trying to create a combat system for my game and I’m finding it difficult to get it work.
<form id="troopForm">
<label for="militia">Milicianos:</label>
<input type="number" id="militia" name="militia" min="0" max="<<print $playerArmy.militia>>" value="0"> <br>
<label for="infantry">Infantería:</label>
<input type="number" id="infantry" name="infantry" min="0" max="<<print $playerArmy.infantry>>" value="0"> <br>
<label for="archer">Arqueros:</label>
<input type="number" id="archer" name="archer" min="0" max="<<print $playerArmy.archer>>" value="0"> <br>
<label for="knight">Caballeros:</label>
<input type="number" id="knight" name="knight" min="0" max="<<print $playerArmy.knight>>" value="0"> <br>
<button type="button" onclick="assignTroops()">Asignar al Flanco Izquierdo</button>
</form>
<script>
function assignTroops() {
// Obtener valores de los inputs
const militia = parseInt(document.getElementById('militia').value) || 0;
const infantry = parseInt(document.getElementById('infantry').value) || 0;
const archer = parseInt(document.getElementById('archer').value) || 0;
const knight = parseInt(document.getElementById('knight').value) || 0;
// Actualizar el estado de las tropas
State.variables.playerArmy.left.units.militia = militia;
State.variables.playerArmy.left.units.infantry = infantry;
State.variables.playerArmy.left.units.archer = archer;
State.variables.playerArmy.left.units.knight = knight;
// Reducir las tropas disponibles
State.variables.playerArmy.militia -= militia;
State.variables.playerArmy.infantry -= infantry;
State.variables.playerArmy.archer -= archer;
State.variables.playerArmy.knight -= knight;
// Recalcular la fuerza
State.variables.playerArmy.left.strength = calculateSectionStrength(State.variables.playerArmy.left);
// Navegar al siguiente pasaje usando SugarCube
Engine.play("AsignarCentro");
}
</script>
I’ve also tried with twinescript:
<<textbox "$selectedTroops.militia" "0" 5>> Milicianos<br>
<<textbox "$selectedTroops.infantry" "0" 5>> Infantería<br>
<<textbox "$selectedTroops.archer" "0" 5>> Arqueros<br>
<<textbox "$selectedTroops.knight" "0" 5>> Caballeros<br>
<<button "Asignar al Flanco Izquierdo">>
<<set $validationError = validateInputs()>>
<<if $validationError>>
<<print $validationError>>
<<else>>
<<set State.variables.playerArmy.left.units.militia = $selectedTroops.militia>>
<<set State.variables.playerArmy.left.units.infantry = $selectedTroops.infantry>>
<<set State.variables.playerArmy.left.units.archer = $selectedTroops.archer>>
<<set State.variables.playerArmy.left.units.knight = $selectedTroops.knight>>
<<set State.variables.playerArmy.militia -= $selectedTroops.militia>>
<<set State.variables.playerArmy.infantry -= $selectedTroops.infantry>>
<<set State.variables.playerArmy.archer -= $selectedTroops.archer>>
<<set State.variables.playerArmy.knight -= $selectedTroops.knight>>
<<set State.variables.playerArmy.left.strength = calculateSectionStrength(State.variables.playerArmy.left)>>
[[Ir al centro|AsignarCentro]]
<</if>>
<</button>>
But every time I click on the button that assigns the number selected by the player it just doesn’t work (there’s no way to go to the next passage neither). I would love to hear what mistake I’m making here. Thanks in advance.