Я развиваю игру. Оружие может быть экипировано вашим персонажем. Различное оружие имеет разное количество урона и кости с критическим ударом. В настоящее время я работаю, чтобы программа загружала необходимое количество кубиков на основе вашего снаряженного оружия.Игра в кости - нужно бросить больше кубиков по обстоятельствам
Однако программа только бросает одну критическую кубик, несмотря на то, что экипированное оружие содержит два критических рулона.
var WepEquipped = { "name": "Broken Sword", "attack_dice": "2", "critical_dice": "1", "min_base_dmg": "2", "max_base_dmg": "12", "max_total_dmg": "24", "weapon_type": "Slash" };
function Attack(rolls) {
var total = 0;
var dice = [];
for (var i = 1; i <= rolls; i++) {
var d6 = Math.floor((Math.random() * 6) + 1);
$("#dice_container").append("<div class='die_roll'><p class='atk-roll'>" + d6 + "</p></div>");
dice.push(d6);
total += d6;
}
// Needs to be able to roll for multiple critical dice
if ($.grep(dice, function (elem) {
return elem === dice[0];
}).length == rolls) {
var d12 = Math.floor((Math.random() * 12) + 1);
total += d12;
$("#dice_container").append("<div class='die_roll'><p id='crit-roll'>" + d12 + "</p></div>");
}
$("#attack").html("<div>You attack for " + total + "</div>");
};
$('#attack_button').off('click').on('click', function(){
$('.die_roll').hide();
Attack(WepEquipped.attack_dice);
// Attack(WepEquipped.attack_dice);
});
Я могу объяснить гораздо больше, но я надеюсь, что этого достаточно, чтобы понять, что я прошу. Что-то здесь должно измениться, но я не могу понять, что:
// Needs to be able to roll for multiple critical dice
if ($.grep(dice, function (elem) {
return elem === dice[0];
}).length == rolls) {
var d12 = Math.floor((Math.random() * 12) + 1);
total += d12;
$("#dice_container").append("<div class='die_roll'><p id='crit-roll'>" + d12 + "</p></div>");
}
$("#attack").html("<div>You attack for " + total + "</div>");
};
Вам не нужно зацикливать число рулонов, одно выражение может вернуть допустимое значение для * n * dices. (Он не отвечает на ваш вопрос.) – usr2564301
Я чувствую, что вы должны делать это по-другому. Я думаю, что часть grep проблематична; Я не уверен в том, как вы это делаете. Почему вы сравниваете с первой смертью только в этом? –
@YannChabot Честно говоря, я не уверен. Это мой первый раз, используя Javascript в таких деталях. У меня была некоторая помощь, чтобы зайти так далеко, и это работает ... У меня не было никаких оснований менять его. Любая помощь приветствуется. – user2766423