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;
}
}