style
Browse files
src/lib/components/Pages/Pictuary.svelte
CHANGED
|
@@ -53,6 +53,9 @@
|
|
| 53 |
const canonicalCount = collectedPiclets.filter(p => p.isCanonical).length;
|
| 54 |
const variationCount = collectedPiclets.filter(p => !p.isCanonical).length;
|
| 55 |
|
|
|
|
|
|
|
|
|
|
| 56 |
// Calculate total rarity score
|
| 57 |
const rarityScore = collectedPiclets.reduce((sum, p) => {
|
| 58 |
const points = CanonicalService.calculateRarity(p.scanCount);
|
|
@@ -63,6 +66,7 @@
|
|
| 63 |
|
| 64 |
return {
|
| 65 |
totalDiscovered,
|
|
|
|
| 66 |
uniqueObjects,
|
| 67 |
canonicalCount,
|
| 68 |
variationCount,
|
|
@@ -110,8 +114,12 @@
|
|
| 110 |
<h1>Pictuary</h1>
|
| 111 |
<div class="stats">
|
| 112 |
<div class="stat-item">
|
| 113 |
-
<span class="stat-value"
|
| 114 |
-
<span class="stat-label">
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
</div>
|
| 116 |
<div class="stat-item">
|
| 117 |
<span class="stat-value">{stats.uniqueObjects}</span>
|
|
@@ -121,10 +129,6 @@
|
|
| 121 |
<span class="stat-value">{stats.canonicalCount}</span>
|
| 122 |
<span class="stat-label">Canonical</span>
|
| 123 |
</div>
|
| 124 |
-
<div class="stat-item">
|
| 125 |
-
<span class="stat-value">{stats.variationCount}</span>
|
| 126 |
-
<span class="stat-label">Variations</span>
|
| 127 |
-
</div>
|
| 128 |
<div class="stat-item">
|
| 129 |
<span class="stat-value">⭐{stats.rarityScore}</span>
|
| 130 |
<span class="stat-label">Score</span>
|
|
|
|
| 53 |
const canonicalCount = collectedPiclets.filter(p => p.isCanonical).length;
|
| 54 |
const variationCount = collectedPiclets.filter(p => !p.isCanonical).length;
|
| 55 |
|
| 56 |
+
// Calculate total scans
|
| 57 |
+
const totalScans = collectedPiclets.reduce((sum, p) => sum + (p.scanCount || 1), 0);
|
| 58 |
+
|
| 59 |
// Calculate total rarity score
|
| 60 |
const rarityScore = collectedPiclets.reduce((sum, p) => {
|
| 61 |
const points = CanonicalService.calculateRarity(p.scanCount);
|
|
|
|
| 66 |
|
| 67 |
return {
|
| 68 |
totalDiscovered,
|
| 69 |
+
totalScans,
|
| 70 |
uniqueObjects,
|
| 71 |
canonicalCount,
|
| 72 |
variationCount,
|
|
|
|
| 114 |
<h1>Pictuary</h1>
|
| 115 |
<div class="stats">
|
| 116 |
<div class="stat-item">
|
| 117 |
+
<span class="stat-value">📷 {stats.totalScans}</span>
|
| 118 |
+
<span class="stat-label">Scans</span>
|
| 119 |
+
</div>
|
| 120 |
+
<div class="stat-item">
|
| 121 |
+
<span class="stat-value">🔍 {stats.totalDiscovered}</span>
|
| 122 |
+
<span class="stat-label">Discovered</span>
|
| 123 |
</div>
|
| 124 |
<div class="stat-item">
|
| 125 |
<span class="stat-value">{stats.uniqueObjects}</span>
|
|
|
|
| 129 |
<span class="stat-value">{stats.canonicalCount}</span>
|
| 130 |
<span class="stat-label">Canonical</span>
|
| 131 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
<div class="stat-item">
|
| 133 |
<span class="stat-value">⭐{stats.rarityScore}</span>
|
| 134 |
<span class="stat-label">Score</span>
|
src/lib/components/Piclets/PicletCard.svelte
CHANGED
|
@@ -27,15 +27,11 @@
|
|
| 27 |
src={piclet.imageData || piclet.imageUrl}
|
| 28 |
alt={piclet.typeId || 'Piclet'}
|
| 29 |
class="piclet-image"
|
| 30 |
-
style="width: {size * 0.8}px; height: {size * 0.8}px;"
|
| 31 |
/>
|
| 32 |
</div>
|
| 33 |
|
| 34 |
<div class="details-section">
|
| 35 |
<p class="nickname">{piclet.nickname || piclet.objectName}</p>
|
| 36 |
-
<div class="info-row">
|
| 37 |
-
<span class="type-badge">{piclet.primaryType}</span>
|
| 38 |
-
</div>
|
| 39 |
</div>
|
| 40 |
|
| 41 |
<div class="tier-banner tier-{piclet.tier}">
|
|
@@ -81,8 +77,8 @@
|
|
| 81 |
top: 50%;
|
| 82 |
left: 50%;
|
| 83 |
transform: translate(-50%, -50%);
|
| 84 |
-
width:
|
| 85 |
-
height:
|
| 86 |
background-image: var(--type-logo);
|
| 87 |
background-size: contain;
|
| 88 |
background-repeat: no-repeat;
|
|
@@ -93,6 +89,8 @@
|
|
| 93 |
}
|
| 94 |
|
| 95 |
.piclet-image {
|
|
|
|
|
|
|
| 96 |
object-fit: contain;
|
| 97 |
position: relative;
|
| 98 |
z-index: 1;
|
|
@@ -146,30 +144,4 @@
|
|
| 146 |
white-space: nowrap;
|
| 147 |
color: #1a1a1a;
|
| 148 |
}
|
| 149 |
-
|
| 150 |
-
.info-row {
|
| 151 |
-
display: flex;
|
| 152 |
-
justify-content: center;
|
| 153 |
-
align-items: center;
|
| 154 |
-
gap: 6px;
|
| 155 |
-
}
|
| 156 |
-
|
| 157 |
-
.type-badge {
|
| 158 |
-
font-size: 9px;
|
| 159 |
-
padding: 2px 6px;
|
| 160 |
-
border-radius: 6px;
|
| 161 |
-
font-weight: 600;
|
| 162 |
-
text-transform: uppercase;
|
| 163 |
-
background: var(--type-color);
|
| 164 |
-
color: white;
|
| 165 |
-
}
|
| 166 |
-
|
| 167 |
-
.scan-count {
|
| 168 |
-
font-size: 9px;
|
| 169 |
-
font-weight: 600;
|
| 170 |
-
color: #666;
|
| 171 |
-
background: #f0f0f0;
|
| 172 |
-
padding: 2px 6px;
|
| 173 |
-
border-radius: 6px;
|
| 174 |
-
}
|
| 175 |
</style>
|
|
|
|
| 27 |
src={piclet.imageData || piclet.imageUrl}
|
| 28 |
alt={piclet.typeId || 'Piclet'}
|
| 29 |
class="piclet-image"
|
|
|
|
| 30 |
/>
|
| 31 |
</div>
|
| 32 |
|
| 33 |
<div class="details-section">
|
| 34 |
<p class="nickname">{piclet.nickname || piclet.objectName}</p>
|
|
|
|
|
|
|
|
|
|
| 35 |
</div>
|
| 36 |
|
| 37 |
<div class="tier-banner tier-{piclet.tier}">
|
|
|
|
| 77 |
top: 50%;
|
| 78 |
left: 50%;
|
| 79 |
transform: translate(-50%, -50%);
|
| 80 |
+
width: 100%;
|
| 81 |
+
height: 100%;
|
| 82 |
background-image: var(--type-logo);
|
| 83 |
background-size: contain;
|
| 84 |
background-repeat: no-repeat;
|
|
|
|
| 89 |
}
|
| 90 |
|
| 91 |
.piclet-image {
|
| 92 |
+
width: 120px;
|
| 93 |
+
height: 120px;
|
| 94 |
object-fit: contain;
|
| 95 |
position: relative;
|
| 96 |
z-index: 1;
|
|
|
|
| 144 |
white-space: nowrap;
|
| 145 |
color: #1a1a1a;
|
| 146 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
</style>
|