updates to card json. cards render photos
This commit is contained in:
@@ -8,14 +8,12 @@ const { buyCard, tooExpensive } = buyCardActions;
|
|||||||
|
|
||||||
export default function Card({ data, state, setState }: CardProps) {
|
export default function Card({ data, state, setState }: CardProps) {
|
||||||
const currentPlayer = useCurrentPlayer(state);
|
const currentPlayer = useCurrentPlayer(state);
|
||||||
|
|
||||||
if (!data) return <div className="card"></div>;
|
if (!data) return <div className="card"></div>;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="card" key={v4()}>
|
<div className="card" key={v4()} style={{backgroundImage: `url(${data.image})`}}>
|
||||||
<p>Counts as: {data.gemValue}</p>
|
<p>Counts as: {data.gemValue}</p>
|
||||||
<p>Point value: {data.points || 0}</p>
|
{ (data.points && data.points > 0) ? <p>{data.points} points</p> : null }
|
||||||
<p>Cost:</p>
|
|
||||||
<div className="total-card-cost">
|
<div className="total-card-cost">
|
||||||
{
|
{
|
||||||
Object.keys(data.resourceCost).map((key: keyof ResourceCost | string) => {
|
Object.keys(data.resourceCost).map((key: keyof ResourceCost | string) => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
@import "../../sass/helper/mixins";
|
@import "../../sass/helper/mixins";
|
||||||
@import "../../sass/helper/placeholders";
|
@import "../../sass/helper/variables";
|
||||||
|
|
||||||
.card-row {
|
.card-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -12,35 +12,45 @@
|
|||||||
flex-flow: row nowrap;
|
flex-flow: row nowrap;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
}
|
|
||||||
|
.card {
|
||||||
|
width: 25%;
|
||||||
|
min-height: 24vh;
|
||||||
|
border: 2px solid black;
|
||||||
|
|
||||||
|
.total-card-cost {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
.card {
|
@include map-gem-values(".card-cost");
|
||||||
width: 25%;
|
|
||||||
border: 2px solid black;
|
|
||||||
> * {
|
|
||||||
margin: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.total-card-cost {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
@include map-gem-values(".card-cost");
|
|
||||||
p {
|
|
||||||
@extend %chip-design;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> * {
|
||||||
|
margin: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
background-color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-count {
|
||||||
|
background-color: black;
|
||||||
|
color: white;
|
||||||
|
width: 25%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.tier-1 {
|
.tier-1 {
|
||||||
background-color: rgb(9, 67, 9);
|
background-color: rgb(23, 73, 23);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tier-2 {
|
.tier-2 {
|
||||||
background-color: rgb(174, 174, 32);
|
background-color: rgb(174, 174, 32);
|
||||||
color: black;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tier-3 {
|
.tier-3 {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export default function CardRow({tier, state, setState}: CardRowProps) {
|
|||||||
<div className={`card-row tier-${tier}`}>
|
<div className={`card-row tier-${tier}`}>
|
||||||
<p>Tier: {tier}</p>
|
<p>Tier: {tier}</p>
|
||||||
<div className="card-row-cards-visible">
|
<div className="card-row-cards-visible">
|
||||||
<div className="card card-count">
|
<div className="card-count">
|
||||||
<p>Remaining: {state.gameboard.deck[typedTier].length}</p>
|
<p>Remaining: {state.gameboard.deck[typedTier].length}</p>
|
||||||
</div>
|
</div>
|
||||||
{ cards && cards.map((cardData: CardData) => {
|
{ cards && cards.map((cardData: CardData) => {
|
||||||
|
|||||||
@@ -1,18 +1,26 @@
|
|||||||
|
@import "../../sass/helper/mixins";
|
||||||
|
|
||||||
.nobles-panel {
|
.nobles-panel {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: column nowrap;
|
flex-flow: column nowrap;
|
||||||
background-color: rgb(240, 236, 225);
|
background-color: rgb(240, 236, 225);
|
||||||
padding: 1.5rem;
|
|
||||||
color: black;
|
color: black;
|
||||||
|
padding: 1.5rem;
|
||||||
|
|
||||||
|
.all-nobles {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row nowrap;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
.noble-card {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
|
||||||
|
.mapped-noble-costs {
|
||||||
|
display: flex;
|
||||||
|
@include map-gem-values(".noble-cost");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.all-nobles {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row nowrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noble-card {
|
|
||||||
display: inline-flex;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
}
|
|
||||||
@@ -21,14 +21,20 @@ export default function Nobles({ state }: StateProps) {
|
|||||||
state && state.gameboard.nobles.map((noble: NobleData) => {
|
state && state.gameboard.nobles.map((noble: NobleData) => {
|
||||||
return (
|
return (
|
||||||
<div className="noble-card" key={v4()}>
|
<div className="noble-card" key={v4()}>
|
||||||
<p>Points: {noble.points}</p>
|
<p>{noble.points} points</p>
|
||||||
<p>Cost:</p>
|
<p>Cost:</p>
|
||||||
|
<div className="mapped-noble-costs">
|
||||||
{
|
{
|
||||||
Object.keys(noble.resourceCost).map((each) => {
|
Object.keys(noble.resourceCost).map((each) => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
return (noble.resourceCost[each as keyof ResourceCost] > 0) && <p key={v4()}>{each}: {noble.resourceCost[each as keyof ResourceCost]}</p>
|
return (noble.resourceCost[each as keyof ResourceCost] > 0) && (
|
||||||
|
<p key={v4()} className={`noble-cost-${each}`}>
|
||||||
|
{noble.resourceCost[each as keyof ResourceCost]}
|
||||||
|
</p>
|
||||||
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -18,9 +18,6 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@include map-gem-values(".player-chip");
|
@include map-gem-values(".player-chip");
|
||||||
p {
|
|
||||||
@extend %chip-design;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2265
src/data/cards.json
2265
src/data/cards.json
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,5 @@
|
|||||||
|
@import "./placeholders";
|
||||||
|
|
||||||
@mixin map-gem-values($parentClass) {
|
@mixin map-gem-values($parentClass) {
|
||||||
#{$parentClass} {
|
#{$parentClass} {
|
||||||
&-emerald {
|
&-emerald {
|
||||||
@@ -24,6 +26,16 @@
|
|||||||
background-color: gold;
|
background-color: gold;
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
@extend %chip-design;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin get-random-image($targetList) {
|
||||||
|
$idx: random(6);
|
||||||
|
$nth: nth($targetList, $idx);
|
||||||
|
|
||||||
|
background-image: url($nth);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
$emerald-images:
|
||||||
|
"src/assets/img/SUCCULENT-angele-kamp-unsplash.jpg",
|
||||||
|
"src/assets/img/SUCCULENT-annie-spratt-unsplash.jpg",
|
||||||
|
"src/assets/img/SUCCULENT-calle-macarone-unsplash.jpg",
|
||||||
|
"src/assets/img/SUCCULENT-edgar-castrejon-unsplash.jpg",
|
||||||
|
"src/assets/img/SUCCULENT-jacalyn-beales-unsplash.jpg",
|
||||||
|
"src/assets/img/SUCCULENT-tim-mossholder-unsplash.jpg"
|
||||||
|
;
|
||||||
@@ -88,6 +88,7 @@ export interface CardData {
|
|||||||
tier: number
|
tier: number
|
||||||
points?: number
|
points?: number
|
||||||
resourceCost: ResourceCost
|
resourceCost: ResourceCost
|
||||||
|
image: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ResourceCost {
|
export interface ResourceCost {
|
||||||
|
|||||||
Reference in New Issue
Block a user