'use strict' function Deck () { this.cards = [ new Card_Potion('A', 11, HEART, 'White Mage'), new Card_Potion('2', 2, HEART, 'Small Potion'), new Card_Potion('3', 3, HEART, 'Small Potion'), new Card_Potion('4', 4, HEART, 'Medium Potion'), new Card_Potion('5', 5, HEART, 'Medium Potion'), new Card_Potion('6', 6, HEART, 'Medium Potion'), new Card_Potion('7', 7, HEART, 'Medium Potion'), new Card_Potion('8', 8, HEART, 'Medium Potion'), new Card_Potion('9', 9, HEART, 'Large Potion'), new Card_Potion('10', 10, HEART, 'Large Potion'), new Card_Potion('V', 11, HEART, 'White Mage'), new Card_Potion('Q', 11, HEART, 'White Mage'), new Card_Potion('K', 11, HEART, 'White Mage'), new Card_Shield('A', 11, DIAMOND, 'Red Mage'), new Card_Shield('2', 2, DIAMOND, 'Buckler'), new Card_Shield('3', 3, DIAMOND, 'Buckler'), new Card_Shield('4', 4, DIAMOND, 'Shield'), new Card_Shield('5', 5, DIAMOND, 'Shield'), new Card_Shield('6', 6, DIAMOND, 'Shield'), new Card_Shield('7', 7, DIAMOND, 'Shield'), new Card_Shield('8', 8, DIAMOND, 'Shield'), new Card_Shield('9', 9, DIAMOND, 'Large Shield'), new Card_Shield('10', 10, DIAMOND, 'Large Shield'), new Card_Shield('V', 11, DIAMOND, 'Red Mage'), new Card_Shield('Q', 11, DIAMOND, 'Red Mage'), new Card_Shield('K', 11, DIAMOND, 'Red Mage'), new Card_Monster('A', 17, CLOVE, 'Empress'), new Card_Monster('2', 2, CLOVE, 'Rat'), new Card_Monster('3', 3, CLOVE, 'Bat'), new Card_Monster('4', 4, CLOVE, 'Imp'), new Card_Monster('5', 5, CLOVE, 'Goblin'), new Card_Monster('6', 6, CLOVE, 'Orc'), new Card_Monster('7', 7, CLOVE, 'Ogre'), new Card_Monster('8', 8, CLOVE, 'Beholder'), new Card_Monster('9', 9, CLOVE, 'Medusa'), new Card_Monster('10', 10, CLOVE, 'Demon'), new Card_Monster('V', 11, CLOVE, 'Consort'), new Card_Monster('Q', 13, CLOVE, 'Queen'), new Card_Monster('K', 15, CLOVE, 'Regnant'), new Card_Monster('A', 17, SPADE, 'Empress'), new Card_Monster('2', 2, SPADE, 'Slime'), new Card_Monster('3', 3, SPADE, 'Tunneler'), new Card_Monster('4', 4, SPADE, 'Fiend'), new Card_Monster('5', 5, SPADE, 'Drake'), new Card_Monster('6', 6, SPADE, 'Specter'), new Card_Monster('7', 7, SPADE, 'Ghost'), new Card_Monster('8', 8, SPADE, 'Elemental'), new Card_Monster('9', 9, SPADE, 'Witch'), new Card_Monster('10', 10, SPADE, 'Familiar'), new Card_Monster('V', 11, SPADE, 'Consort'), new Card_Monster('Q', 13, SPADE, 'Queen'), new Card_Monster('K', 15, SPADE, 'Regnant'), new Card_Monster('J', 21, JOKER, 'First Donsol'), new Card_Monster('J', 21, JOKER, 'Second Donsol') ] let draw_pile = [] this.start = function () { draw_pile = this.cards donsol.timeline.add_event(`Entered Donsol, at ${donsol.get_difficulty()} difficulty.`) } this.shuffle = function () { draw_pile = shuffle(this.cards) donsol.timeline.add_event(`Entered Donsol, at ${donsol.get_difficulty()} difficulty.`) } this.draw_card = function (type) { let i = 0 switch (type) { case HEART: i = Math.floor((Math.random() * 10) + 0); break case DIAMOND: i = Math.floor((Math.random() * 10) + 13); break case CLOVE: i = Math.floor((Math.random() * 10) + 25); break case SPADE: i = Math.floor((Math.random() * 10) + 36); break } return draw_pile.splice(i, 1)[0] } this.return_card = function (card) { draw_pile.push(card) draw_pile = shuffle(draw_pile) } function shuffle (array) { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)) const temp = array[i] array[i] = array[j] array[j] = temp } return array } }