diff --git a/src/components/SpreadsheetData.js b/src/components/SpreadsheetData.js index f5c6c9b..d1de664 100644 --- a/src/components/SpreadsheetData.js +++ b/src/components/SpreadsheetData.js @@ -85,6 +85,7 @@ class API { "AU": "Alliance Unraveled", "FAS": "Fire and Stone", "SAS": "Storm and Sea", + "EE": "Elemental Emperors", "BR": "Beyond Rare", "LR": "League Rewards", "OP1": "Organized Play 1" diff --git a/src/components/entercode/PackSimulator.js b/src/components/entercode/PackSimulator.js index 0d556be..0aef2d6 100644 --- a/src/components/entercode/PackSimulator.js +++ b/src/components/entercode/PackSimulator.js @@ -12,6 +12,7 @@ export default class PackSimulator extends React.Component { @observable loaded = false @observable cards = [] @observable set = "" + @observable packs = 1 constructor(props) { super(props); @@ -40,8 +41,10 @@ export default class PackSimulator extends React.Component { } let setsInput = []; - for (const key in API.sets) { - setsInput.push(); + let i = 1; + for (const set in API.sets) { + setsInput.push(); + if (i>9) break; } return (
@@ -50,12 +53,12 @@ export default class PackSimulator extends React.Component { to={`/EnterTheCode/`}>Enter The Code

- {setsInput}

- +


{this.cards}
@@ -63,63 +66,74 @@ export default class PackSimulator extends React.Component { } handleChange(event) { - this.set = event.target.value; + const target = event.target; + const value = target.type === 'checkbox' ? target.checked : target.value; + const name = target.name; + + this[name] = value; } handleSubmit(event) { event.preventDefault(); event.stopPropagation(); - let cards = []; - const rarity = (() => { - var randomNumber = Math.floor(Math.random() * 24) + 1; - if (randomNumber == 24) return "Ultra Rare"; - else if (randomNumber % 3 == 0) return "Super Rare"; - else return "Rare"; - })(); - - let key = 0; - const card = (results) => { - var id = Math.floor(Math.random() * results.length); - let card = results[id]; - - return (
) - } + let cards = []; // Returned list of card divs + let card_names = []; // Prevent duplicates in pack + let key = 0; // React key iterator uniqueness let pview = this.filter.addDynamicView('set'); - let i, results; + const randomRare = () => { + let randomNumber = Math.floor(Math.random() * 24) + 1; + if (randomNumber == 24) return "Ultra Rare"; + else if (randomNumber % 3 == 0) return "Super Rare"; + else return "Rare"; + }; - // 4 Common - pview.applyFind({'gsx$set': this.set}) - .applyFind({'gsx$rarity': 'Common'}); - results = pview.data(); - for (i=0;i<4;i++) { - cards.push(card(results)); + const gencard = (results) => { + let id = Math.floor(Math.random() * results.length); + let card = results[id]; + + if (!card) { + cards.push(
); + return; + } + + if (card_names.indexOf(card.gsx$name) > -1) { + return gencard(results); + } + card_names.push(card.gsx$name); + + cards.push(
); } - pview.removeFilters(); - // 3 Uncommon - pview.applyFind({'gsx$set': this.set}) - .applyFind({'gsx$rarity': 'Uncommon'}); - results = pview.data(); - for (i=0;i<3;i++) { - cards.push(card(results)); + const genrarity = (rarity, num) => { + pview.applyFind({'gsx$set': this.set}) + .applyFind({'gsx$rarity': rarity}); + let results = pview.data(); + for (let i=0; i