mirror of
https://github.com/chaoticbackup/chaoticbackup.github.io.git
synced 2026-03-21 17:24:14 -05:00
added notes to the collection, updated css
This commit is contained in:
parent
5c5932feac
commit
d18604ded5
|
|
@ -1 +0,0 @@
|
|||
@media only screen and (min-width:975px){.pack{max-width:90%}}.packsim input[type=number]::-webkit-inner-spin-button,.packsim input[type=number]::-webkit-outer-spin-button{opacity:1}.pack{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin:auto}.pack .card{width:150px;height:210px;background-size:cover;box-sizing:content-box;margin:5px;-webkit-transition:-webkit-transform 1s,opacity 1s,background 1s,width 1s,height 1s,font-size 1s,top 1s,left 1s;-webkit-border-radius:5px;-o-transition-property:width,height,-o-transform,background,font-size,opacity,top,left;-o-transition-duration:1s,1s,1s,1s,1s,1s,1s,1s;-moz-transition-property:width,height,-o-transform,background,font-size,opacity,top,left;-moz-transition-duration:1s,1s,1s,1s,1s,1s,1s,1s;transition-property:width,height,transform,background,font-size,opacity,top,left;transition-duration:1s,1s,1s,1s,1s,1s,1s,1s}.pack .card:hover{width:250px;height:350px}.pack .stats{height:100%;width:100%;text-align:left}.pack .stats span{position:relative;color:#000;display:block;left:10px;font-size:12px}.pack .stats span:first-of-type{top:130px}.pack .stats span:nth-of-type(2){top:128px}.pack .stats span:nth-of-type(3){top:126px}.pack .stats span:nth-of-type(4){top:124px}.pack .stats span:nth-of-type(5){text-align:right;top:125px;left:-11px;font-size:14px}.pack .card:hover .stats span{left:20px;font-size:14px;font-weight:700}.pack .card:hover .stats span:first-of-type{top:220px}.pack .card:hover .stats span:nth-of-type(2){top:229px}.pack .card:hover .stats span:nth-of-type(3){top:237px}.pack .card:hover .stats span:nth-of-type(4){top:245px}.pack .card:hover .stats span:nth-of-type(5){text-align:right;top:258px;left:-21px;font-size:20px}
|
||||
File diff suppressed because one or more lines are too long
1
build/159.js
Normal file
1
build/159.js
Normal file
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
File diff suppressed because one or more lines are too long
1
build/510.css
Normal file
1
build/510.css
Normal file
File diff suppressed because one or more lines are too long
1
build/510.js
Normal file
1
build/510.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
build/631.js
Normal file
1
build/631.js
Normal file
File diff suppressed because one or more lines are too long
1
build/640.js
Normal file
1
build/640.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
(self.webpackChunkchaoticbackup=self.webpackChunkchaoticbackup||[]).push([[640],{8640:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(2122),a=n(6610),l=n(5991),o=n(379),c=n(6089),i=n(7608),s=n(7294),u=n(3727),f=n(2195);n(2188);function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=(0,i.Z)(e);if(t){var a=(0,i.Z)(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return(0,c.Z)(this,n)}}var h=function(){return s.createElement("a",{href:"https://github.com/chaoticbackup",className:"name",rel:"noreferrer noopener",target:"_blank"},"Chaotic Backup Project")},d=function(e){var t=e.block,n=e.text,r=e.sets;return s.createElement("div",{className:"lore"},s.createElement("div",{className:"block"},t),n.map((function(e,t){return s.createElement("div",{key:t,dangerouslySetInnerHTML:{__html:e}})})),r.map((function(e,t){if(e.text&&e.text.length>0)return s.createElement("div",{className:"set",key:t},s.createElement("div",{className:"title"},e.title),e.text.map((function(e,t){return s.createElement("div",{key:t},e)})))})))},p=function(e){(0,o.Z)(n,e);var t=m(n);function n(){var e;(0,a.Z)(this,n);for(var r=arguments.length,l=new Array(r),o=0;o<r;o++)l[o]=arguments[o];return(e=t.call.apply(t,[this].concat(l))).state={lore:[]},e}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){var e=this;fetch("/public/json/starter_lore.json").then((function(e){return e.json()})).then((function(t){e.setState({lore:t})})).catch((function(){e.setState({lore:[{block:"Unable to load lore...",text:[]}]})}))}},{key:"render",value:function(){return s.createElement("div",null,s.createElement("br",null),s.createElement("div",{className:"with-love"},s.createElement("div",null,"Welcome to the ",s.createElement(h,null),"."),s.createElement("span",null,"Built by fans for fans."),s.createElement("br",null),s.createElement("br",null),s.createElement("div",null,"Made with ",s.createElement("span",{className:"heart"},"♥")," by",s.createElement("br",null),"Danude Sandstorm (Project Lead)",s.createElement("br",null),"Chiodosin1 (Database Contributions)",s.createElement("br",null),"Afjak and Blitser (Art and Knowledge)"),s.createElement("div",null,"Do you like the site? You can donate to support it!"),s.createElement("div",{className:"donate"},s.createElement(f.U9,null)),s.createElement("div",{className:"lore"},"We were unsatisfied with the options on how to search for cards. I took the design of the old Chaotic website and added my own modernizations. With an extensive lists of search options in the ",s.createElement(u.rU,{to:"/collection"},"collection"),", you'll find deck building mores streamlined than ever before. Chaotic is full of rich lore, but unfortunately the best database of official lore disapeared when the ",s.createElement(u.rU,{to:"/portal"},"Portal to Perim")," disapeared along with the official site. You can again explore the official lore and information!"),s.createElement("br",null),this.state.lore.length>0?this.state.lore.map((function(e,t){return s.createElement(d,(0,r.Z)({key:t},e))})):"Loading lore entries..."))}}]),n}(s.Component)}}]);
|
||||
|
|
@ -1 +0,0 @@
|
|||
(self.webpackChunkchaoticbackup=self.webpackChunkchaoticbackup||[]).push([[767],{8640:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return g}});var r=n(7154),a=n.n(r),l=n(4575),o=n.n(l),c=n(3913),i=n.n(c),u=n(2205),s=n.n(u),f=n(8585),m=n.n(f),h=n(9754),d=n.n(h),p=n(7294),b=n(3727),v=n(2195);n(2188);function E(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var a=d()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return m()(this,n)}}var k=function(){return p.createElement("a",{href:"https://github.com/chaoticbackup",className:"name",rel:"noreferrer noopener",target:"_blank"},"Chaotic Backup Project")},y=function(e){var t=e.block,n=e.text,r=e.sets;return p.createElement("div",{className:"lore"},p.createElement("div",{className:"block"},t),n.map((function(e,t){return p.createElement("div",{key:t,dangerouslySetInnerHTML:{__html:e}})})),r.map((function(e,t){if(e.text&&e.text.length>0)return p.createElement("div",{className:"set",key:t},p.createElement("div",{className:"title"},e.title),e.text.map((function(e,t){return p.createElement("div",{key:t},e)})))})))},g=function(e){s()(n,e);var t=E(n);function n(){var e;o()(this,n);for(var r=arguments.length,a=new Array(r),l=0;l<r;l++)a[l]=arguments[l];return(e=t.call.apply(t,[this].concat(a))).state={lore:[]},e}return i()(n,[{key:"componentDidMount",value:function(){var e=this;fetch("/public/json/starter_lore.json").then((function(e){return e.json()})).then((function(t){e.setState({lore:t})})).catch((function(){e.setState({lore:[{block:"Unable to load lore...",text:[]}]})}))}},{key:"render",value:function(){return p.createElement("div",null,p.createElement("br",null),p.createElement("div",{className:"with-love"},p.createElement("div",null,"Welcome to the ",p.createElement(k,null),"."),p.createElement("span",null,"Built by fans for fans."),p.createElement("br",null),p.createElement("br",null),p.createElement("div",null,"Made with ",p.createElement("span",{className:"heart"},"♥")," by",p.createElement("br",null),"Danude Sandstorm (Project Lead)",p.createElement("br",null),"Chiodosin1 (Database Contributions)",p.createElement("br",null),"Afjak and Blitser (Art and Knowledge)"),p.createElement("div",null,"Do you like the site? You can donate to support it!"),p.createElement("div",{className:"donate"},p.createElement(v.U9,null)),p.createElement("div",{className:"lore"},"We were unsatisfied with the options on how to search for cards. I took the design of the old Chaotic website and added my own modernizations. With an extensive lists of search options in the ",p.createElement(b.rU,{to:"/collection"},"collection"),", you'll find deck building mores streamlined than ever before. Chaotic is full of rich lore, but unfortunately the best database of official lore disapeared when the ",p.createElement(b.rU,{to:"/portal"},"Portal to Perim")," disapeared along with the official site. You can again explore the official lore and information!"),p.createElement("br",null),this.state.lore.length>0?this.state.lore.map((function(e,t){return p.createElement(y,a()({key:t},e))})):"Loading lore entries..."))}}]),n}(p.Component)}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
89
package-lock.json
generated
89
package-lock.json
generated
|
|
@ -3208,6 +3208,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"@types/anymatch": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
|
||||
"integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/chai": {
|
||||
"version": "4.2.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.15.tgz",
|
||||
|
|
@ -3362,6 +3368,76 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
|
||||
"integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
|
||||
},
|
||||
"@types/source-list-map": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
|
||||
"integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/tapable": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz",
|
||||
"integrity": "sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/uglify-js": {
|
||||
"version": "3.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz",
|
||||
"integrity": "sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/webpack": {
|
||||
"version": "4.41.27",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz",
|
||||
"integrity": "sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/anymatch": "*",
|
||||
"@types/node": "*",
|
||||
"@types/tapable": "^1",
|
||||
"@types/uglify-js": "*",
|
||||
"@types/webpack-sources": "*",
|
||||
"source-map": "^0.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/webpack-sources": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz",
|
||||
"integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/source-list-map": "*",
|
||||
"source-map": "^0.7.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.20.0.tgz",
|
||||
|
|
@ -4875,6 +4951,16 @@
|
|||
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
|
||||
"dev": true
|
||||
},
|
||||
"clean-webpack-plugin": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
|
||||
"integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/webpack": "^4.4.31",
|
||||
"del": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"cliui": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||
|
|
@ -14826,7 +14912,8 @@
|
|||
"y18n": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
|
||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "13.3.2",
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@
|
|||
"babel-eslint": "^10.1.0",
|
||||
"babel-loader": "^8.2.2",
|
||||
"chai": "^4.3.4",
|
||||
"clean-webpack-plugin": "^3.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"css-loader": "^5.2.0",
|
||||
"css-minimizer-webpack-plugin": "^1.3.0",
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ export function Unique(props) {
|
|||
string = (string) ? ("Legendary, " + string) : "Legendary";
|
||||
}
|
||||
string = string.replace(/,\s+$/, "");
|
||||
return (
|
||||
<span style={{ fontWeight: "Bold" }}>{string}{string && <br />}</span>
|
||||
|
||||
if (string === "") return <></>;
|
||||
else return (
|
||||
<div style={{ fontWeight: "Bold" }}>{string}</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,15 +2,17 @@ import React from 'react';
|
|||
|
||||
export function Name(props) {
|
||||
const name = props.name.split(",");
|
||||
return (<span className="name">
|
||||
<span className="bigger">{name[0]}</span>
|
||||
{name.length > 1 &&
|
||||
<>
|
||||
<span style={{ opacity: "0" }}>,</span>
|
||||
<span className="subname">{name[1]}</span>
|
||||
</>
|
||||
}
|
||||
</span>);
|
||||
return (<div>
|
||||
<span className="name">
|
||||
<span className="bigger">{name[0]}</span>
|
||||
{name.length > 1 &&
|
||||
<>
|
||||
<span style={{ opacity: "0" }}>,</span>
|
||||
<span className="subname">{name[1]}</span>
|
||||
</>
|
||||
}
|
||||
</span>
|
||||
</div>);
|
||||
}
|
||||
|
||||
export function Mugic(props) {
|
||||
|
|
@ -35,3 +37,7 @@ export function Tribe(props) {
|
|||
export function Discipline(props) {
|
||||
return <img className={props.size || "icon16"} src={("/public/img/icons/disciplines/" + props.discipline + ".png").toLowerCase()} />;
|
||||
}
|
||||
|
||||
export function FlavorText({ flavortext }) {
|
||||
return (flavortext) ? <div className="flavortext">{flavortext}</div> : <></>;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,4 +35,4 @@
|
|||
font-size: 13px;
|
||||
padding-bottom: 4px;
|
||||
display: inherit;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,6 +125,10 @@
|
|||
padding-bottom: 6px;
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
||||
.right > *:not(:last-child) {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.creature .right {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import API from '../../SpreadsheetData';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
import { Rarity, Unique, Name, Element, Ability, AttackIcon } from '../../Snippets';
|
||||
import { FlavorText, Rarity, Unique, Name, Element, Ability, AttackIcon } from '../../Snippets';
|
||||
|
||||
@inject((stores, props, context) => props) @observer
|
||||
export default class Attack extends React.Component {
|
||||
|
|
@ -13,7 +13,7 @@ export default class Attack extends React.Component {
|
|||
<div className="card attack">
|
||||
<img className="thumb" src={API.base_image + (card.gsx$thumb||API.thumb_missing)} onClick={() => this.props.setImage(API.cardImage(card))} />
|
||||
<div className="left">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} /><br />
|
||||
<span><AttackIcon bp={card.gsx$bp} /> Attack - {card.gsx$bp}</span><br />
|
||||
<div>
|
||||
|
|
@ -28,7 +28,7 @@ export default class Attack extends React.Component {
|
|||
<div className="right" >
|
||||
<Ability ability={card.gsx$ability} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
<span className="flavortext">{card.gsx$flavortext}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
@ -36,13 +36,11 @@ export default class Attack extends React.Component {
|
|||
<div className="card attack">
|
||||
<div className="fullcard"><img src={API.cardImage(card)} /></div>
|
||||
<div className="right">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Ability ability={card.gsx$ability} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
{card.gsx$flavortext && <>
|
||||
<span className="flavortext">{card.gsx$flavortext}</span><br />
|
||||
</>}
|
||||
<span>Art By: {card.gsx$artist}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
<div>Art By: {card.gsx$artist}</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import API from '../../SpreadsheetData';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
import { Rarity, Unique, Name, Ability, BattlegearIcon } from '../../Snippets';
|
||||
import { FlavorText, Rarity, Unique, Name, Ability, BattlegearIcon } from '../../Snippets';
|
||||
|
||||
@inject((stores, props, context) => props) @observer
|
||||
export default class Battlegear extends React.Component {
|
||||
|
|
@ -13,14 +13,14 @@ export default class Battlegear extends React.Component {
|
|||
<div className="card battlegear">
|
||||
<img className="thumb" style={{ float: 'left' }} src={API.base_image + (card.gsx$thumb||API.thumb_missing)} onClick={() => this.props.setImage(API.cardImage(card))} />
|
||||
<div className="left">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} /><br />
|
||||
<span><BattlegearIcon /> Battlegear{card.gsx$types.length > 0 ? " - " + card.gsx$types : null}</span>
|
||||
</div>
|
||||
<div className="right" >
|
||||
<Ability ability={card.gsx$ability} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
<span className="flavortext">{card.gsx$flavortext}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
@ -28,13 +28,11 @@ export default class Battlegear extends React.Component {
|
|||
<div className="card battlegear">
|
||||
<div className="fullcard"><img src={API.cardImage(card)} /></div>
|
||||
<div className="right" >
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Ability ability={card.gsx$ability} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
{card.gsx$flavortext && <>
|
||||
<span className="flavortext">{card.gsx$flavortext}</span><br />
|
||||
</>}
|
||||
<span>Art By: {card.gsx$artist}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
<div>Art By: {card.gsx$artist}</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import API from '../../SpreadsheetData';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
import { Rarity, Unique, Name, Element, Mugic, Discipline, Ability, Tribe } from '../../Snippets';
|
||||
import { FlavorText, Rarity, Unique, Name, Element, Mugic, Discipline, Ability, Tribe } from '../../Snippets';
|
||||
|
||||
@inject((stores, props, context) => props) @observer
|
||||
export default class Creature extends React.Component {
|
||||
|
|
@ -47,7 +47,7 @@ export default class Creature extends React.Component {
|
|||
<div className="card creature">
|
||||
<img className="thumb" style={{ float: 'left' }} src={API.base_image + (card.gsx$thumb||API.thumb_missing)} onClick={() => this.props.setImage(API.cardImage(card))} />
|
||||
<div className="left">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} /><br />
|
||||
<TribeLine /><br />
|
||||
<div>
|
||||
|
|
@ -70,9 +70,9 @@ export default class Creature extends React.Component {
|
|||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary, tribe: card.gsx$tribe }} />
|
||||
{/*chieftain*/
|
||||
card.gsx$types.includes("Chieftain") &&
|
||||
<span className="chieftain">(Minions use Brainwashed text. Minions may only play Generic Mugic.)<br /></span>
|
||||
<div className="chieftain">(Minions use Brainwashed text. Minions may only play Generic Mugic.)</div>
|
||||
}
|
||||
<span className="flavortext">{card.gsx$flavortext}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
</div>
|
||||
<br />
|
||||
<div className="stats">
|
||||
|
|
@ -109,7 +109,7 @@ export default class Creature extends React.Component {
|
|||
</div>
|
||||
</div>
|
||||
<div className="right" >
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<span>{stat_range(card.gsx$courage, card.gsx$name)} <Discipline discipline="courage" /></span>
|
||||
<span>{stat_range(card.gsx$power, card.gsx$name)} <Discipline discipline="power" /></span>
|
||||
<span>{stat_range(card.gsx$wisdom, card.gsx$name)} <Discipline discipline="wisdom" /></span>
|
||||
|
|
@ -126,12 +126,10 @@ export default class Creature extends React.Component {
|
|||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary, tribe: card.gsx$tribe }} />
|
||||
{/*chieftain*/
|
||||
card.gsx$types.includes("Chieftain") &&
|
||||
<span className="chieftain">(Minions use Brainwashed text. Minions may only play Generic Mugic.)<br /></span>
|
||||
<div className="chieftain">(Minions use Brainwashed text. Minions may only play Generic Mugic.)</div>
|
||||
}
|
||||
{card.gsx$flavortext && <>
|
||||
<span className="flavortext">{card.gsx$flavortext}</span><br />
|
||||
</>}
|
||||
<span>Art By: {card.gsx$artist}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
<div>Art By: {card.gsx$artist}</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { inject, observer } from 'mobx-react';
|
||||
import React from 'react';
|
||||
|
||||
import { Ability, Initiative, LocationIcon, Name, Rarity, Unique } from '../../Snippets';
|
||||
import { Ability, FlavorText, Initiative, LocationIcon, Name, Rarity, Unique } from '../../Snippets';
|
||||
import API from '../../SpreadsheetData';
|
||||
|
||||
@inject((stores, props, context) => props) @observer
|
||||
|
|
@ -14,7 +14,7 @@ export default class Location extends React.Component {
|
|||
<div className="card location">
|
||||
<img className="thumb" style={{ float: 'left', width: '100px', height: '98px' }} src={API.base_image + (card.gsx$thumb||API.thumb_missing)} onClick={() => this.props.setImage(API.cardImage(card))} />
|
||||
<div className="left">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} /><br />
|
||||
<span><LocationIcon /> Location{card.gsx$types.length > 0 ? " - " + card.gsx$types : null}</span><br />
|
||||
<Initiative initiative={card.gsx$initiative} />
|
||||
|
|
@ -22,7 +22,7 @@ export default class Location extends React.Component {
|
|||
<div className="right">
|
||||
<Ability ability={card.gsx$ability} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
<span className="flavortext">{card.gsx$flavortext}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
@ -30,14 +30,12 @@ export default class Location extends React.Component {
|
|||
<div className="card location">
|
||||
<div className="fullcard"><img src={API.cardImage(card)} /></div>
|
||||
<div className="right">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Initiative initiative={card.gsx$initiative} />
|
||||
<Ability ability={card.gsx$ability} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
{card.gsx$flavortext && <>
|
||||
<span className="flavortext">{card.gsx$flavortext}</span><br />
|
||||
</>}
|
||||
<span>Art By: {card.gsx$artist}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
<div>Art By: {card.gsx$artist}</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import API from '../../SpreadsheetData';
|
||||
import { observer, inject } from 'mobx-react';
|
||||
import { Rarity, Unique, Name, Mugic, Ability, Tribe } from '../../Snippets';
|
||||
import { FlavorText, Rarity, Unique, Name, Mugic, Ability, Tribe } from '../../Snippets';
|
||||
import MugicPlay from '../../mugicplayer/playbutton.tsx';
|
||||
import { withRouter } from 'react-router';
|
||||
|
||||
|
|
@ -28,12 +28,12 @@ class Attack extends React.Component {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (this.props.ext == false) return (
|
||||
<div className="card mugic">
|
||||
<img className="thumb" style={{ float: 'left' }} src={API.base_image + (card.gsx$thumb||API.thumb_missing)} onClick={() => this.props.setImage(API.cardImage(card))} />
|
||||
<div className="left">
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Rarity set={card.gsx$set} rarity={card.gsx$rarity} /> <br />
|
||||
<Tribe size="icon16" tribe={card.gsx$tribe} /> Mugic - {card.gsx$tribe}<br />
|
||||
<span>{mugicCounters}</span><MugicPlay notes={card.gsx$shownotes?.length > 0 ? card.gsx$shownotes : card.gsx$notes}/><br />
|
||||
|
|
@ -42,7 +42,7 @@ class Attack extends React.Component {
|
|||
<div className="right" >
|
||||
<Ability ability={card.gsx$ability} tribe={card.gsx$tribe} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
<span className="flavortext">{card.gsx$flavortext}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
@ -50,13 +50,13 @@ class Attack extends React.Component {
|
|||
<div className="card mugic">
|
||||
<div className="fullcard"><img src={API.cardImage(card)} /></div>
|
||||
<div className="right" >
|
||||
<Name name={card.gsx$name} /><br />
|
||||
<Name name={card.gsx$name} />
|
||||
<Ability ability={card.gsx$ability} tribe={card.gsx$tribe} />
|
||||
<Unique data={{ unique: card.gsx$unique, loyal: card.gsx$loyal, legendary: card.gsx$legendary }} />
|
||||
{card.gsx$flavortext && <>
|
||||
<span className="flavortext">{card.gsx$flavortext}</span><br />
|
||||
</>}
|
||||
<span>Art By: {card.gsx$artist}</span>
|
||||
<FlavorText flavortext={card.gsx$flavortext} />
|
||||
<div>Art By: {card.gsx$artist}</div>
|
||||
<div>Notes: {card.gsx$notes}</div>
|
||||
<MugicPlay notes={card.gsx$shownotes?.length > 0 ? card.gsx$shownotes : card.gsx$notes}/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ const webpack = require('webpack');
|
|||
const TerserWebpackPlugin = require('terser-webpack-plugin');
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
||||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
||||
require('@babel/register');
|
||||
|
||||
module.exports = (env, argv) => {
|
||||
|
|
@ -126,6 +127,7 @@ module.exports = (env, argv) => {
|
|||
plugins: devMode
|
||||
? [
|
||||
] : [
|
||||
new CleanWebpackPlugin(),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
||||
}),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user