more deets
Browse files
src/lib/components/MonsterGenerator/MonsterGenerator.svelte
CHANGED
|
@@ -321,6 +321,8 @@ The output should be formatted as a JSON instance that conforms to the JSON sche
|
|
| 321 |
{
|
| 322 |
"properties": {
|
| 323 |
"rarity": {"type": "string", "enum": ["common", "uncommon", "rare", "legendary"], "description": "Rarity of the original object based on real-world availability and value"},
|
|
|
|
|
|
|
| 324 |
"HP": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Health/vitality stat (0=fragile, 100=incredibly tanky)"},
|
| 325 |
"defence": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Defensive/armor stat (0=paper thin, 100=impenetrable fortress)"},
|
| 326 |
"attack": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Physical attack power (0=harmless, 100=devastating force)"},
|
|
@@ -335,7 +337,7 @@ The output should be formatted as a JSON instance that conforms to the JSON sche
|
|
| 335 |
"specialActionName": {"type": "string", "description": "Name of the monster's ultimate move (one use per battle)"},
|
| 336 |
"specialActionDescription": {"type": "string", "description": "Describe this powerful finishing move and its dramatic effects in battle"}
|
| 337 |
},
|
| 338 |
-
"required": ["rarity", "HP", "defence", "attack", "speed", "specialPassiveTraitDescription", "attackActionName", "attackActionDescription", "buffActionName", "buffActionDescription", "debuffActionName", "debuffActionDescription", "specialActionName", "specialActionDescription"]
|
| 339 |
}
|
| 340 |
\`\`\`
|
| 341 |
|
|
@@ -388,7 +390,7 @@ Write your response within \`\`\`json\`\`\``;
|
|
| 388 |
const parsedStats = JSON.parse(cleanJson.trim());
|
| 389 |
|
| 390 |
// Remove any extra fields not in our schema
|
| 391 |
-
const allowedFields = ['rarity', 'HP', 'defence', 'attack', 'speed',
|
| 392 |
'specialPassiveTraitDescription', 'attackActionName', 'attackActionDescription',
|
| 393 |
'buffActionName', 'buffActionDescription', 'debuffActionName', 'debuffActionDescription',
|
| 394 |
'specialActionName', 'specialActionDescription', 'boostActionName', 'boostActionDescription',
|
|
|
|
| 321 |
{
|
| 322 |
"properties": {
|
| 323 |
"rarity": {"type": "string", "enum": ["common", "uncommon", "rare", "legendary"], "description": "Rarity of the original object based on real-world availability and value"},
|
| 324 |
+
"height": {"type": "number", "minimum": 0.1, "maximum": 50.0, "description": "Height of the piclet in meters (e.g., 1.2, 0.5, 10.0)"},
|
| 325 |
+
"weight": {"type": "number", "minimum": 0.1, "maximum": 10000.0, "description": "Weight of the piclet in kilograms (e.g., 25.4, 150.0, 0.8)"},
|
| 326 |
"HP": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Health/vitality stat (0=fragile, 100=incredibly tanky)"},
|
| 327 |
"defence": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Defensive/armor stat (0=paper thin, 100=impenetrable fortress)"},
|
| 328 |
"attack": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Physical attack power (0=harmless, 100=devastating force)"},
|
|
|
|
| 337 |
"specialActionName": {"type": "string", "description": "Name of the monster's ultimate move (one use per battle)"},
|
| 338 |
"specialActionDescription": {"type": "string", "description": "Describe this powerful finishing move and its dramatic effects in battle"}
|
| 339 |
},
|
| 340 |
+
"required": ["rarity", "height", "weight", "HP", "defence", "attack", "speed", "specialPassiveTraitDescription", "attackActionName", "attackActionDescription", "buffActionName", "buffActionDescription", "debuffActionName", "debuffActionDescription", "specialActionName", "specialActionDescription"]
|
| 341 |
}
|
| 342 |
\`\`\`
|
| 343 |
|
|
|
|
| 390 |
const parsedStats = JSON.parse(cleanJson.trim());
|
| 391 |
|
| 392 |
// Remove any extra fields not in our schema
|
| 393 |
+
const allowedFields = ['rarity', 'height', 'weight', 'HP', 'defence', 'attack', 'speed',
|
| 394 |
'specialPassiveTraitDescription', 'attackActionName', 'attackActionDescription',
|
| 395 |
'buffActionName', 'buffActionDescription', 'debuffActionName', 'debuffActionDescription',
|
| 396 |
'specialActionName', 'specialActionDescription', 'boostActionName', 'boostActionDescription',
|
src/lib/components/Piclets/PicletDetail.svelte
CHANGED
|
@@ -85,7 +85,7 @@
|
|
| 85 |
<div class="header-card">
|
| 86 |
<div class="card-background">
|
| 87 |
<!-- Faded Logo Background -->
|
| 88 |
-
<div class="logo-background"
|
| 89 |
|
| 90 |
<!-- Card Header -->
|
| 91 |
<div class="card-header">
|
|
@@ -326,11 +326,14 @@
|
|
| 326 |
position: absolute;
|
| 327 |
top: 50%;
|
| 328 |
left: 50%;
|
| 329 |
-
transform: translate(-50%, -50%)
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
|
|
|
|
|
|
|
|
|
| 334 |
pointer-events: none;
|
| 335 |
z-index: 1;
|
| 336 |
}
|
|
@@ -412,22 +415,18 @@
|
|
| 412 |
}
|
| 413 |
|
| 414 |
.large-image-container {
|
| 415 |
-
background: rgba(255, 255, 255, 0.9);
|
| 416 |
-
border-radius: 20px;
|
| 417 |
-
padding: 20px;
|
| 418 |
display: flex;
|
| 419 |
align-items: center;
|
| 420 |
justify-content: center;
|
| 421 |
-
|
| 422 |
-
|
| 423 |
-
height: 200px;
|
| 424 |
}
|
| 425 |
|
| 426 |
.large-piclet-image {
|
| 427 |
-
width:
|
| 428 |
-
height:
|
| 429 |
object-fit: contain;
|
| 430 |
-
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.
|
| 431 |
}
|
| 432 |
|
| 433 |
.card-title-section {
|
|
|
|
| 85 |
<div class="header-card">
|
| 86 |
<div class="card-background">
|
| 87 |
<!-- Faded Logo Background -->
|
| 88 |
+
<div class="logo-background"></div>
|
| 89 |
|
| 90 |
<!-- Card Header -->
|
| 91 |
<div class="card-header">
|
|
|
|
| 326 |
position: absolute;
|
| 327 |
top: 50%;
|
| 328 |
left: 50%;
|
| 329 |
+
transform: translate(-50%, -50%);
|
| 330 |
+
width: 200px;
|
| 331 |
+
height: 200px;
|
| 332 |
+
background-image: url('/assets/snap_logo.png');
|
| 333 |
+
background-size: contain;
|
| 334 |
+
background-repeat: no-repeat;
|
| 335 |
+
background-position: center;
|
| 336 |
+
opacity: 0.1;
|
| 337 |
pointer-events: none;
|
| 338 |
z-index: 1;
|
| 339 |
}
|
|
|
|
| 415 |
}
|
| 416 |
|
| 417 |
.large-image-container {
|
|
|
|
|
|
|
|
|
|
| 418 |
display: flex;
|
| 419 |
align-items: center;
|
| 420 |
justify-content: center;
|
| 421 |
+
width: 360px;
|
| 422 |
+
height: 360px;
|
|
|
|
| 423 |
}
|
| 424 |
|
| 425 |
.large-piclet-image {
|
| 426 |
+
width: 360px;
|
| 427 |
+
height: 360px;
|
| 428 |
object-fit: contain;
|
| 429 |
+
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
|
| 430 |
}
|
| 431 |
|
| 432 |
.card-title-section {
|