import React from 'react'; import {observable, observe} from "mobx"; import {observer, inject} from 'mobx-react'; import {Link} from 'react-router-dom'; import loki from 'lokijs'; import Interactive from 'react-interactive'; import API from '../SpreadsheetData'; import {Loading} from '../Snippets'; import s from '../../styles/style'; import './packs.scss'; @inject((stores, props, context) => props) @observer export default class PackSimulator extends React.Component { @observable loaded = false @observable cards = [] @observable set = "" @observable packs = 1 constructor(props) { super(props); this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); for(let i = 0; i < 9; i++) { this.cards.push(
); } } render() { if (this.loaded == false) { API.LoadDB([{'cards': 'attacks'}, {'cards': 'battlegear'}, {'cards': 'creatures'}, {'cards': 'locations'}, {'cards': 'mugic'}]) .then(() => { this.setupDB(); this.loaded = true; }); return (); } let setsInput = []; let i = 1; for (const set in API.sets) { setsInput.push(); if (i>9) break; } return (
Enter The Code





{this.cards}
); } handleChange(event) { 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 = []; // 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'); 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"; }; const gendisp = (avg) => { let min = parseInt(avg) - 10; if (min < 0) min = 0; return (Math.floor(Math.random() * 5)) * 5 + min; } const geneng = (avg) => { let min = parseInt(avg) - 5; if (min < 0) min = 0; return (Math.floor(Math.random() * 3)) * 5 + min; } const gencard = (results, i) => { 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 && card.gsx$exclusive.includes("Starter")) { return gencard(results, i); } card_names.push(card.gsx$name); if (card.gsx$type != "Creatures") { cards.push(
); } else { const courage = gendisp(card.gsx$courage); const power = gendisp(card.gsx$power); const wisdom = gendisp(card.gsx$wisdom); const speed = gendisp(card.gsx$speed); const energy = geneng(card.gsx$energy); cards.push(
{courage} {power} {wisdom} {speed} {energy}
); } } const genrarity = (rarity, num) => { pview.applyFind({'gsx$set': this.set}) .applyFind({'gsx$rarity': rarity}); let results = pview.data(); for (let i=0; i delete v.$loki); filter.insert(temp); temp = API.cards.battlegear.find(); temp.forEach((v) => delete v.$loki); filter.insert(temp); temp = API.cards.creatures.find(); temp.forEach((v) => delete v.$loki); filter.insert(temp); temp = API.cards.locations.find(); temp.forEach((v) => delete v.$loki); filter.insert(temp); temp = API.cards.mugic.find(); temp.forEach((v) => delete v.$loki); filter.insert(temp); this.filter = filter; } }