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
{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