見る:
*問題を再現する方法:
すべてのボーナス ポイントを 1 以外の統計に入れ、次に他の統計で CTRL-クリックすると、ボーナス値は*0 で停止するはずのときにマイナスになります。
コントロール:
- 左クリック = 1 ポイントを割り当てる
- CTRL 左クリック = 5 ポイントを割り当てる
- 右クリック = 1 ポイントを取り戻す
- CTRL 右クリック = 5 ポイントを取り戻す
JavaScript:
var Alexander =
{
Magic: "MagicVal",
Attack: "AttackVal",
Bonus: "BonusVal",
Limits: {
Magic: {
max: 100,
min: 80
},
Attack: {
max: 100,
min: 80
}
}
};
function table(e)
{
e.preventDefault();
}
function add(character, stat) //Allocates "1" with left-click//
{
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) + 1;
if(newNumber > character.Limits[stat].max) return;
var BonusVal = document.getElementById(character.Bonus);
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 1;
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
function subtract(character, stat) //Takes back "1" with right-click//
{
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) - 1;
if(newNumber < character.Limits[stat].min) return;
var BonusVal = document.getElementById(character.Bonus);
var newBonus = parseInt(BonusVal.value) + 1;
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
function dump(e, character, stat) //Allocates "5" with CTRL+left-click//
{
if (e.ctrlKey == 1 && e.which == 1) {
console.log('met');
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) + 4;
if(newNumber > character.Limits[stat].max) return;
var BonusVal = document.getElementById(character.Bonus);
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 4;
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
}
function reclaim(e, character, stat) //Takes back "5" with CTRL+right-click//
{
if (e.ctrlKey == 1 && e.which == 3) {
console.log('met');
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) - 4;
if(newNumber < character.Limits[stat].min) return;
var BonusVal = document.getElementById(character.Bonus);
var newBonus = parseInt(BonusVal.value) + 4;
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
}