mirror of
https://github.com/chaoticbackup/chaoticbackup.github.io.git
synced 2026-03-21 17:24:14 -05:00
#11 update creature portal to match other types layout
This commit is contained in:
parent
fbea66e0ce
commit
f50d0c7995
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -15,11 +15,11 @@ export function LocationIcon(props) {
|
|||
}
|
||||
|
||||
export function Rarity(props) {
|
||||
const { set, rarity } = props;
|
||||
const { set, rarity, iconOnly=false } = props;
|
||||
return (
|
||||
<span>
|
||||
{set !== 'PE1' && <img className={props.size || "icon16"} style={{ verticalAlign: 'middle' }} src={("/public/img/icons/set/" + set + "/" + rarity + ".png").toLowerCase()} />}
|
||||
{!props.notext && <>{API.sets[props.set]} | {props.rarity}</>}
|
||||
{!iconOnly && <>{API.sets[props.set]} | {props.rarity}</>}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
export const Tribes = ['Danian', 'Mipedian', "M'arrillian", 'OverWorld', 'UnderWorld', 'Frozen'] as const;
|
||||
export const CreatureTribes = ['Danian', 'Mipedian', "M'arrillian", 'OverWorld', 'UnderWorld', 'Frozen', 'Tribeless'] as const;
|
||||
export const MugicTribes = ['Danian', 'Mipedian', "M'arrillian", 'OverWorld', 'UnderWorld', 'Frozen', 'Generic'] as const;
|
||||
export const Tribes = ['Danian', 'Mipedian', "M'arrillian", 'OverWorld', 'UnderWorld'] as const;
|
||||
export const CreatureTribes = ['Danian', 'Mipedian', "M'arrillian", 'OverWorld', 'UnderWorld', 'Tribeless'] as const;
|
||||
export const MugicTribes = ['Danian', 'Mipedian', "M'arrillian", 'OverWorld', 'UnderWorld', 'Generic'] as const;
|
||||
|
||||
export type Tribe = typeof Tribes[number];
|
||||
export type CreatureTribe = typeof CreatureTribes[number];
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import loki from 'lokijs';
|
|||
import { observable } from 'mobx';
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import React from 'react';
|
||||
import { Route } from 'react-router-dom';
|
||||
import { Route, Link } from 'react-router-dom';
|
||||
|
||||
import { Loading } from '../../Snippets';
|
||||
import API from '../../SpreadsheetData';
|
||||
|
|
@ -70,7 +70,7 @@ export default class Tribes extends React.Component {
|
|||
|
||||
if (base_path) {
|
||||
return (<div className="entry tribe base_path">
|
||||
<div className="cat_title">{path[2]}</div>
|
||||
<div className="cat_title">{tribe}</div>
|
||||
<div className="entry_nav">{bottom_nav}</div>
|
||||
</div>);
|
||||
}
|
||||
|
|
@ -80,7 +80,7 @@ export default class Tribes extends React.Component {
|
|||
<Route path={`${this.props.match.url}/Creatures/:card`} component={Creature} />
|
||||
<Route path={`${this.props.match.url}/Mugic/:card`} component={Mugic} />
|
||||
</div>
|
||||
<div className="cat_title">{path[2]}</div>
|
||||
<div className="cat_title"><Link to={`/portal/${tribe}`}>{tribe}</Link></div>
|
||||
<div className="entry_nav">{bottom_nav}</div>
|
||||
</div>);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import React from 'react';
|
||||
import { Route } from 'react-router-dom';
|
||||
import { Link, Route } from 'react-router-dom';
|
||||
import { observable } from 'mobx';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ export default class Category extends React.Component {
|
|||
return (
|
||||
<div className={`entry ${this.type}`}>
|
||||
<div className="entry_content">{top_content}</div>
|
||||
<div className="cat_title">{cat_title}</div>
|
||||
<div className="cat_title"><Link to={`/portal/${this.props.type}`}>{cat_title}</Link></div>
|
||||
<div className="entry_nav">{bottom_nav}</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@ import { Card } from "../../common/definitions";
|
|||
import API from '../../SpreadsheetData';
|
||||
|
||||
export function cleanCardName (card: Card) {
|
||||
return card.gsx$name.split(",")[0].replace(/\(Unused\)/, "");
|
||||
return card.gsx$name.split(",")[0].replace(/\(Unused\)[ ]/, "");
|
||||
}
|
||||
|
||||
export function sortCardName (a: Card, b: Card) {
|
||||
return (a.gsx$name.toLowerCase().replace(/\(unused\)/, "") > b.gsx$name.toLowerCase().replace(/\(unused\)/, "") ? 1 : -1);
|
||||
return (a.gsx$name.toLowerCase().replace(/\(unused\)[ ]/, "") > b.gsx$name.toLowerCase().replace(/\(unused\)[ ]/, "") ? 1 : -1);
|
||||
}
|
||||
|
||||
export function text_link (card: Card, i: number) {
|
||||
|
|
@ -31,7 +31,6 @@ export function text_link (card: Card, i: number) {
|
|||
|
||||
export function thumb_link (portalCard: Card, i: number, url?: string) {
|
||||
let collectionCard: Card | null = null;
|
||||
console.log(portalCard, i, url);
|
||||
if (["Attacks", "Battlegear", "Creatures", "Locations", "Mugic"].includes(portalCard.gsx$type)) {
|
||||
if (!url) url = `/portal/${portalCard.gsx$type}/${portalCard.gsx$name}`;
|
||||
collectionCard = API.cards[portalCard.gsx$type.toLowerCase()].findOne({ 'gsx$name': portalCard.gsx$name });
|
||||
|
|
|
|||
|
|
@ -146,10 +146,9 @@ class DBSearch extends React.Component {
|
|||
API.cards.battlegear.chain()
|
||||
.find({ 'gsx$name': { '$regex': new RegExp(string, 'i') }})
|
||||
.where((obj) => {return (obj.gsx$splash != ('') )}).data(),
|
||||
// TODO after rewriting Single Creature
|
||||
// API.cards.creatures.chain()
|
||||
// .find({'gsx$name': {'$regex': new RegExp(string, 'i')}})
|
||||
// .where((obj) => {return (obj.gsx$splash != ('') )}).data(),
|
||||
API.cards.creatures.chain()
|
||||
.find({ 'gsx$name': { '$regex': new RegExp(string, 'i') }})
|
||||
.where((obj) => {return (obj.gsx$splash != ('') )}).data(),
|
||||
API.cards.locations.chain()
|
||||
.find({ 'gsx$name': { '$regex': new RegExp(string, 'i') }})
|
||||
.where((obj) => {return (obj.gsx$splash != ('') )}).data(),
|
||||
|
|
@ -158,6 +157,8 @@ class DBSearch extends React.Component {
|
|||
.where((obj) => {return (obj.gsx$splash != ('') )}).data()
|
||||
)
|
||||
.sort(sortCardName)
|
||||
// dedupe fullart results
|
||||
.filter((val, i, arr) => (i == 0 || val.gsx$name != arr[i - 1].gsx$name))
|
||||
.map((val, i) => thumb_link(val, i));
|
||||
|
||||
// Check Artists
|
||||
|
|
|
|||
|
|
@ -24,24 +24,30 @@ export default class SingleAttack extends React.Component {
|
|||
const card_data = API.cards.attacks.findOne({ 'gsx$name': name });
|
||||
|
||||
if (attack) {
|
||||
const sections = [];
|
||||
if (attack.gsx$attributes) {
|
||||
sections.push(["Attributes", attack.gsx$attributes]);
|
||||
}
|
||||
if (attack.gsx$background) {
|
||||
sections.push(["Background", attack.gsx$background]);
|
||||
}
|
||||
if (attack.gsx$details) {
|
||||
sections.push(["Details", attack.gsx$details]);
|
||||
}
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col2={<>
|
||||
<div>
|
||||
<strong>Attributes:</strong><br />
|
||||
{attack.gsx$attributes}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Background:</strong><br />
|
||||
{attack.gsx$background}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Details:</strong><br />
|
||||
{attack.gsx$details}
|
||||
</div>
|
||||
</>}
|
||||
col2={
|
||||
sections.map((val, i) => {
|
||||
return (<React.Fragment key={i} >
|
||||
<div>
|
||||
<strong>{val[0]}:</strong><br />
|
||||
{val[1]}
|
||||
</div>
|
||||
{i !== sections.length - 1 && <hr />}
|
||||
</React.Fragment>);
|
||||
})
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,24 +24,30 @@ export default class SingleBattlegear extends React.Component {
|
|||
const card_data = API.cards.battlegear.findOne({ 'gsx$name': name });
|
||||
|
||||
if (battlegear) {
|
||||
const sections = [];
|
||||
if (battlegear.gsx$attributes) {
|
||||
sections.push(["Attributes", battlegear.gsx$attributes]);
|
||||
}
|
||||
if (battlegear.gsx$background) {
|
||||
sections.push(["Background", battlegear.gsx$background]);
|
||||
}
|
||||
if (battlegear.gsx$details) {
|
||||
sections.push(["Details", battlegear.gsx$details]);
|
||||
}
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col2={<>
|
||||
<div>
|
||||
<strong>Attributes:</strong><br />
|
||||
{battlegear.gsx$attributes}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Background:</strong><br />
|
||||
{battlegear.gsx$background}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Details:</strong><br />
|
||||
{battlegear.gsx$details}
|
||||
</div>
|
||||
</>}
|
||||
col2={
|
||||
sections.map((val, i) => {
|
||||
return (<React.Fragment key={i} >
|
||||
<div>
|
||||
<strong>{val[0]}:</strong><br />
|
||||
{val[1]}
|
||||
</div>
|
||||
{i !== sections.length - 1 && <hr />}
|
||||
</React.Fragment>);
|
||||
})
|
||||
}
|
||||
/>);
|
||||
}
|
||||
else if (card_data) {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import API from '../../SpreadsheetData';
|
|||
import s from '../../../styles/app.style';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
import Single from './_base';
|
||||
import { PageNotFound, Element, Mugic, Discipline, Ability, Tribe } from '../../Snippets';
|
||||
import { PageNotFound, Element, Mugic, Discipline, Tribe } from '../../Snippets';
|
||||
|
||||
function Artist(props) {
|
||||
const artists = [];
|
||||
|
|
@ -33,157 +33,150 @@ export default class SingleCreature extends React.Component {
|
|||
})();
|
||||
|
||||
const creature = API.portal.creatures.findOne({ 'gsx$name': name });
|
||||
|
||||
if (!creature) {
|
||||
return (<PageNotFound location={this.props.location}/>);
|
||||
}
|
||||
|
||||
const tribe = creature.gsx$tribe;
|
||||
|
||||
const card_data = API.cards.creatures.findOne({ 'gsx$name': name });
|
||||
|
||||
const locations = creature.gsx$location.split(/[;]+\s*/).map((item, i) => {
|
||||
return <p key={i}><Interactive as={Link} {...s.link} to={"/portal/Locations/"+item}><span>{item}</span></Interactive></p>;
|
||||
});
|
||||
if (creature) {
|
||||
const tribe = creature.gsx$tribe;
|
||||
|
||||
const battlegear = creature.gsx$battlegear.split(/[;]+\s*/).map((item, i) => {
|
||||
return <p key={i}><Interactive as={Link} {...s.link} to={"/portal/Battlegear/"+item}><span>{item}</span></Interactive></p>;
|
||||
});
|
||||
const mugic = [];
|
||||
for (let i = 0; i < parseInt(card_data.gsx$mugicability || 0); i++) {
|
||||
mugic.push(<Mugic key={i} tribe={tribe} />);
|
||||
}
|
||||
|
||||
const mugic = [];
|
||||
for (let i = 0; i < card_data.gsx$mugicability; i++) {
|
||||
mugic.push(<Mugic key={i} tribe={tribe} />);
|
||||
}
|
||||
const col2 = [];
|
||||
if (creature.gsx$attributes) {
|
||||
col2.push(["Appearance", creature.gsx$attributes]);
|
||||
}
|
||||
if (creature.gsx$background) {
|
||||
col2.push(["Background", creature.gsx$background]);
|
||||
}
|
||||
if (creature.gsx$details) {
|
||||
col2.push(["Details", creature.gsx$details]);
|
||||
}
|
||||
if (creature.gsx$battlegear) {
|
||||
col2.push(["Favorite Battlegear(s)", creature.gsx$battlegear.split(/[;]+\s*/).map((item, i) =>
|
||||
<p key={i}><Interactive as={Link} {...s.link} to={"/portal/Battlegear/"+item}><span>{item}</span></Interactive></p>
|
||||
)]);
|
||||
}
|
||||
if (creature.gsx$location) {
|
||||
col2.push(["Favorite Location(s)", creature.gsx$location.split(/[;]+\s*/).map((item, i) =>
|
||||
<p key={i}><Interactive as={Link} {...s.link} to={"/portal/Locations/"+item}><span>{item}</span></Interactive></p>
|
||||
)]);
|
||||
}
|
||||
if (creature.gsx$height) {
|
||||
col2.push(["Height (ft)", creature.gsx$height]);
|
||||
}
|
||||
if (creature.gsx$specialabilities) {
|
||||
col2.push(["Special Abilities", creature.gsx$specialabilities]);
|
||||
}
|
||||
if (creature.gsx$weight) {
|
||||
col2.push(["Weight (lb)", creature.gsx$weight]);
|
||||
}
|
||||
|
||||
// TODO readd creature to Portal Search after rewrite
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
text={<>
|
||||
<hr />
|
||||
{creature.gsx$appearance && <>
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col0={<>
|
||||
<div>
|
||||
<strong>Appearance:</strong><br />
|
||||
{creature.gsx$appearance}
|
||||
<strong>Tribe: </strong>
|
||||
<Tribe tribe={tribe} />
|
||||
{tribe}
|
||||
</div>
|
||||
<hr />
|
||||
</>}
|
||||
<div>
|
||||
<strong>Background:</strong><br />
|
||||
{creature.gsx$background}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Details:</strong><br />
|
||||
{creature.gsx$details}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Favorite Battlegear(s):</strong><br />
|
||||
{battlegear}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Favorite Location(s):</strong><br />
|
||||
{locations}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Height (ft):</strong><br />
|
||||
{creature.gsx$height}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Special Abilities:</strong><br />
|
||||
{creature.gsx$specialabilities}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Weight (lb):</strong><br />
|
||||
{creature.gsx$weight}
|
||||
</div>
|
||||
<hr />
|
||||
{card_data.gsx$artist && <>
|
||||
<div>
|
||||
<strong>Artist(s):</strong>
|
||||
<Artist artist={card_data.gsx$artist} />
|
||||
<strong>Disciplines: </strong>
|
||||
{card_data.gsx$courage}
|
||||
<Discipline discipline="courage" />
|
||||
{card_data.gsx$power}
|
||||
<Discipline discipline="power" />
|
||||
{card_data.gsx$speed}
|
||||
<Discipline discipline="speed" />
|
||||
{card_data.gsx$wisdom}
|
||||
<Discipline discipline="wisdom" />
|
||||
</div>
|
||||
<hr />
|
||||
</>}
|
||||
<div>
|
||||
<strong>Card ID: </strong>
|
||||
{card_data.gsx$id}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Set: </strong>
|
||||
{card_data.gsx$set}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Rarity: </strong>
|
||||
{card_data.gsx$rarity}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Tribe: </strong>
|
||||
<Tribe tribe={tribe} />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Ability:</strong><br />
|
||||
<Ability ability={card_data.gsx$ability} tribe={card_data.gsx$tribe} />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Courage: </strong>
|
||||
{card_data.gsx$courage}
|
||||
<Discipline discipline="courage" />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Power: </strong>
|
||||
{card_data.gsx$power}
|
||||
<Discipline discipline="power" />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Speed: </strong>
|
||||
{card_data.gsx$speed}
|
||||
<Discipline discipline="speed" />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Wisdom: </strong>
|
||||
{card_data.gsx$wisdom}
|
||||
<Discipline discipline="wisdom" />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Energy: </strong>
|
||||
{card_data.gsx$energy}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Elements: </strong>
|
||||
<div>
|
||||
<strong>Energy: </strong>
|
||||
{card_data.gsx$energy}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Elements: </strong>
|
||||
<Element element="fire" value={card_data.gsx$elements.toLowerCase().indexOf("fire") >=0} />
|
||||
<Element element="air" value={card_data.gsx$elements.toLowerCase().indexOf("air") >=0} />
|
||||
<Element element="earth" value={card_data.gsx$elements.toLowerCase().indexOf("earth") >=0} />
|
||||
<Element element="water" value={card_data.gsx$elements.toLowerCase().indexOf("water") >=0} />
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Flavortext:</strong><br />
|
||||
{card_data.gsx$flavortext}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Mugic Ability: </strong>
|
||||
{mugic}
|
||||
</div>
|
||||
</>}
|
||||
/>);
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Mugic Ability: </strong>
|
||||
{mugic}
|
||||
</div>
|
||||
</>}
|
||||
col2={
|
||||
col2.map((val, i) => {
|
||||
return (<React.Fragment key={i} >
|
||||
<div>
|
||||
<strong>{val[0]}:</strong><br />
|
||||
{val[1]}
|
||||
</div>
|
||||
{i !== col2.length - 1 && <hr />}
|
||||
</React.Fragment>);
|
||||
})
|
||||
}
|
||||
/>);
|
||||
}
|
||||
else if (card_data) {
|
||||
if (card_data.gsx$splash) {
|
||||
const tribe = card_data.gsx$tribe;
|
||||
|
||||
const mugic = [];
|
||||
for (let i = 0; i < parseInt(card_data.gsx$mugicability || 0); i++) {
|
||||
mugic.push(<Mugic key={i} tribe={tribe} />);
|
||||
}
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col0={<>
|
||||
<div>
|
||||
<strong>Tribe: </strong>
|
||||
<Tribe tribe={tribe} />
|
||||
{tribe}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Disciplines: </strong>
|
||||
{card_data.gsx$courage}
|
||||
<Discipline discipline="courage" />
|
||||
{card_data.gsx$power}
|
||||
<Discipline discipline="power" />
|
||||
{card_data.gsx$speed}
|
||||
<Discipline discipline="speed" />
|
||||
{card_data.gsx$wisdom}
|
||||
<Discipline discipline="wisdom" />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Energy: </strong>
|
||||
{card_data.gsx$energy}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Elements: </strong>
|
||||
<Element element="fire" value={card_data.gsx$elements.toLowerCase().indexOf("fire") >=0} />
|
||||
<Element element="air" value={card_data.gsx$elements.toLowerCase().indexOf("air") >=0} />
|
||||
<Element element="earth" value={card_data.gsx$elements.toLowerCase().indexOf("earth") >=0} />
|
||||
<Element element="water" value={card_data.gsx$elements.toLowerCase().indexOf("water") >=0} />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Mugic Ability: </strong>
|
||||
{mugic}
|
||||
</div>
|
||||
</>}
|
||||
/>);
|
||||
}
|
||||
}
|
||||
|
||||
return (<PageNotFound location={this.props.location}/>);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,30 +23,38 @@ export default class SingleLocation extends React.Component {
|
|||
const card_data = API.cards.locations.findOne({ 'gsx$name': name });
|
||||
|
||||
if (location) {
|
||||
const sections = [];
|
||||
if (location.gsx$localfeatures) {
|
||||
sections.push(["Local Features", location.gsx$localfeatures]);
|
||||
}
|
||||
if (location.gsx$background) {
|
||||
sections.push(["Background", location.gsx$background]);
|
||||
}
|
||||
if (location.gsx$details) {
|
||||
sections.push(["Details", location.gsx$details]);
|
||||
}
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col0={<>
|
||||
<div>
|
||||
<strong>Initiative: </strong>
|
||||
<Initiative initiative={card_data.gsx$initiative} notitle="true"/>
|
||||
</div>
|
||||
</>}
|
||||
col2={<>
|
||||
<div>
|
||||
<strong>Local Features:</strong><br />
|
||||
{location.gsx$localfeatures}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Background:</strong><br />
|
||||
{location.gsx$background}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Details:</strong><br />
|
||||
{location.gsx$details}
|
||||
</div>
|
||||
{card_data.gsx$initiative && (
|
||||
<div>
|
||||
<strong>Initiative: </strong>
|
||||
<Initiative initiative={card_data.gsx$initiative} notitle="true"/>
|
||||
</div>
|
||||
)}
|
||||
</>}
|
||||
col2={
|
||||
sections.map((val, i) => {
|
||||
return (<React.Fragment key={i} >
|
||||
<div>
|
||||
<strong>{val[0]}:</strong><br />
|
||||
{val[1]}
|
||||
</div>
|
||||
{i !== sections.length - 1 && <hr />}
|
||||
</React.Fragment>);
|
||||
})
|
||||
}
|
||||
/>);
|
||||
}
|
||||
else if (card_data) {
|
||||
|
|
@ -54,10 +62,12 @@ export default class SingleLocation extends React.Component {
|
|||
return (<Single
|
||||
card={card_data}
|
||||
col0={<>
|
||||
<div>
|
||||
<strong>Initiative: </strong>
|
||||
<Initiative initiative={card_data.gsx$initiative} notitle="true"/>
|
||||
</div>
|
||||
{card_data.gsx$initiative && (
|
||||
<div>
|
||||
<strong>Initiative: </strong>
|
||||
<Initiative initiative={card_data.gsx$initiative} notitle="true"/>
|
||||
</div>
|
||||
)}
|
||||
</>}
|
||||
/>);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export default class SingleMugic extends React.Component {
|
|||
const mugic = API.portal.mugic.findOne({ 'gsx$name': name });
|
||||
const card_data = API.cards.mugic.findOne({ 'gsx$name': name });
|
||||
|
||||
const cost = () => {
|
||||
const cost = (tribe) => {
|
||||
const cost = [];
|
||||
if (card_data.gsx$cost == 0) {
|
||||
cost.push(<span key={0}>0</span>);
|
||||
|
|
@ -34,54 +34,68 @@ export default class SingleMugic extends React.Component {
|
|||
cost.push(<span key={0}>X</span>);
|
||||
}
|
||||
else {
|
||||
for (let i = 0; i < card_data.gsx$cost; i++) {
|
||||
cost.push(<Mugic tribe={card_data.gsx$tribe} key={i} />);
|
||||
for (let i = 0; i < parseInt(card_data.gsx$cost); i++) {
|
||||
cost.push(<Mugic tribe={tribe} key={i} />);
|
||||
}
|
||||
}
|
||||
return cost;
|
||||
};
|
||||
|
||||
if (mugic) {
|
||||
const tribe = mugic.gsx$tribe;
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col0={<>
|
||||
<div>
|
||||
<strong>Tribe: </strong>
|
||||
<Tribe tribe={mugic.gsx$tribe} />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Cost: </strong>
|
||||
{cost()}
|
||||
<Tribe tribe={tribe} />
|
||||
{tribe}
|
||||
</div>
|
||||
{card_data.gsx$cost !== "" && (<>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Cost: </strong>
|
||||
{cost(tribe)}
|
||||
</div>
|
||||
</>)}
|
||||
</>}
|
||||
col2={<>
|
||||
<div>
|
||||
<strong>Background:</strong><br />
|
||||
{mugic.gsx$background}
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Details:</strong><br />
|
||||
{mugic.gsx$details}
|
||||
</div>
|
||||
{mugic.gsx$background && (
|
||||
<div>
|
||||
<strong>Background:</strong><br />
|
||||
{mugic.gsx$background}
|
||||
</div>
|
||||
)}
|
||||
{(mugic.gsx$background && mugic.gsx$details) && <hr />}
|
||||
{mugic.gsx$details && (
|
||||
<div>
|
||||
<strong>Details:</strong><br />
|
||||
{mugic.gsx$details}
|
||||
</div>
|
||||
)}
|
||||
</>}
|
||||
/>);
|
||||
}
|
||||
else if (card_data) {
|
||||
if (card_data.gsx$splash) {
|
||||
const tribe = card_data.gsx$tribe;
|
||||
|
||||
return (<Single
|
||||
card={card_data}
|
||||
col0={<>
|
||||
<div>
|
||||
<strong>Tribe: </strong>
|
||||
<Tribe tribe={card_data.gsx$tribe} />
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Cost: </strong>
|
||||
{cost()}
|
||||
<Tribe tribe={tribe} />
|
||||
{tribe}
|
||||
</div>
|
||||
{card_data.gsx$cost !== "" && (<>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Cost: </strong>
|
||||
{cost(tribe)}
|
||||
</div>
|
||||
</>)}
|
||||
</>}
|
||||
/>);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,68 +58,61 @@ export default class Single extends React.Component {
|
|||
<Name name={card.gsx$name} />
|
||||
<hr />
|
||||
</div>
|
||||
{this.props.text && (
|
||||
<div className="nocolumn">{this.props.text}</div>
|
||||
)}
|
||||
{!this.props.text &&
|
||||
<div className="column">
|
||||
{card.gsx$artist && (<>
|
||||
<div>
|
||||
<strong>Artist(s):</strong>
|
||||
<Artist artist={card.gsx$artist} />
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{card.gsx$set && (<>
|
||||
<div>
|
||||
<strong>Set: </strong>
|
||||
{`${API.sets[card.gsx$set]} (${card.gsx$set})`}
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{card.gsx$rarity && (<>
|
||||
<div>
|
||||
<strong>Rarity: </strong>
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} notext="true" />
|
||||
{card.gsx$rarity}
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{card.gsx$id && (<>
|
||||
<div>
|
||||
<strong>Card ID: </strong>
|
||||
{card.gsx$id}
|
||||
</div>
|
||||
</>)}
|
||||
{this.props.col0 && (<>
|
||||
<hr />
|
||||
{this.props.col0}
|
||||
</>)}
|
||||
{card.gsx$ability && (<>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Ability:</strong>
|
||||
<Ability ability={card.gsx$ability} />
|
||||
</div>
|
||||
</>)}
|
||||
{card.gsx$flavortext && (<>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Card Flavor:</strong><br />
|
||||
{card.gsx$flavortext}
|
||||
</div>
|
||||
</>)}
|
||||
{this.props.col1 && (<>
|
||||
<hr />
|
||||
this.props.col1
|
||||
</>)}
|
||||
</div>
|
||||
}
|
||||
{!this.props.text &&
|
||||
<div className="column">
|
||||
{this.props.col2}
|
||||
</div>
|
||||
}
|
||||
<div className="column">
|
||||
{card.gsx$artist && (<>
|
||||
<div>
|
||||
<strong>Artist(s):</strong>
|
||||
<Artist artist={card.gsx$artist} />
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{card.gsx$set && (<>
|
||||
<div>
|
||||
<strong>Set: </strong>
|
||||
{`${API.sets[card.gsx$set]} (${card.gsx$set})`}
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{card.gsx$rarity && (<>
|
||||
<div>
|
||||
<strong>Rarity: </strong>
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} iconOnly />
|
||||
{card.gsx$rarity}
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{card.gsx$id && (<>
|
||||
<div>
|
||||
<strong>Card ID: </strong>
|
||||
{card.gsx$id}
|
||||
</div>
|
||||
<hr />
|
||||
</>)}
|
||||
{this.props.col0 && (<>
|
||||
{this.props.col0}
|
||||
</>)}
|
||||
{card.gsx$ability && (<>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Ability:</strong>
|
||||
<Ability ability={card.gsx$ability} />
|
||||
</div>
|
||||
</>)}
|
||||
{card.gsx$flavortext && (<>
|
||||
<hr />
|
||||
<div>
|
||||
<strong>Card Flavor:</strong><br />
|
||||
{card.gsx$flavortext}
|
||||
</div>
|
||||
</>)}
|
||||
{this.props.col1 && (<>
|
||||
<hr />
|
||||
this.props.col1
|
||||
</>)}
|
||||
</div>
|
||||
<div className="column">
|
||||
{this.props.col2}
|
||||
</div>
|
||||
</div>
|
||||
</>);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -242,7 +242,8 @@
|
|||
background-color: #1a1a1a;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
padding-top: 1px;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,18 +37,4 @@ s.title = {
|
|||
marginBottom: '0.5vh',
|
||||
};
|
||||
|
||||
s.repoLink = {
|
||||
fontSize: '14px',
|
||||
};
|
||||
|
||||
s.mapMenu = {
|
||||
margin: '3vh 0',
|
||||
};
|
||||
|
||||
s.creditLine = {
|
||||
color: '#A0A0A0',
|
||||
fontSize: '14px',
|
||||
marginTop: '50px',
|
||||
};
|
||||
|
||||
export default s;
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
import style from './style';
|
||||
|
||||
const s = Object.create(style);
|
||||
|
||||
s.pageLinkContainer = {
|
||||
margin: '1vh 0',
|
||||
};
|
||||
|
||||
export default s;
|
||||
|
|
@ -2,16 +2,16 @@ import React from 'react';
|
|||
|
||||
const link = {
|
||||
normal: {
|
||||
borderBottom: '1px dotted rgb(0, 168, 0)',
|
||||
borderBottom: '1px dotted rgb(66, 140, 195)',
|
||||
},
|
||||
hover: {
|
||||
borderBottom: '1px solid rgb(0, 168, 0)',
|
||||
color: 'black',
|
||||
borderBottom: '1px solid rgb(66, 140, 195)',
|
||||
color: 'rgb(66, 140, 195)',
|
||||
},
|
||||
active: 'hover',
|
||||
touchActive: {
|
||||
borderBottom: '1px dashed rgb(0, 168, 0)',
|
||||
color: 'black',
|
||||
borderBottom: '1px dashed rgb(66, 140, 195)',
|
||||
color: 'rgb(66, 140, 195)',
|
||||
},
|
||||
focusFromTab: {
|
||||
outline: '2px solid rgb(0, 152, 0)',
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user