31 Commits

Author SHA1 Message Date
a65ed32501 Rework C0907 baseline material damage 2026-06-11 04:13:20 +09:00
613e781cd8 Rework C0907 material damage 2026-06-11 02:13:12 +09:00
231ca1ba6f Add C0907 complete card art 2026-06-11 00:09:23 +09:00
8e8e68f17c Complete C0908 card art 2026-06-10 22:54:51 +09:00
dc1f0b931d Add C0908 heavy damage art 2026-06-10 21:39:08 +09:00
306799f985 Add C0908 medium damage art 2026-06-10 21:35:09 +09:00
6d7ffd6946 Add C0908 light damage art 2026-06-10 21:29:38 +09:00
9b7753b146 Add C0908 base art 2026-06-10 21:24:36 +09:00
34fec432bb Add C0909 final damage art 2026-06-10 21:18:32 +09:00
a2747a0b27 Add C0909 heavy damage art 2026-06-10 21:14:48 +09:00
d00f882069 Add C0909 medium damage art 2026-06-10 21:04:05 +09:00
4a30ff70c1 Add C0909 light damage art 2026-06-10 20:45:10 +09:00
0a82010d31 Add C0909 base art 2026-06-10 20:45:10 +09:00
23294dfa1d Add C0910 defeated art 2026-06-10 20:45:10 +09:00
1e37913f0e Add C0910 heavy damage art 2026-06-10 20:45:10 +09:00
8022aa359c Add C0910 medium damage art 2026-06-10 20:45:10 +09:00
88285fdf9b Add C0910 light damage art 2026-06-10 20:45:09 +09:00
f639347d75 Add C0910 base art 2026-06-10 20:45:09 +09:00
3b8f845fea Strengthen damage intensity guidance 2026-06-10 18:34:04 +09:00
4c184fe017 Add cumulative low-noise damage guidance 2026-06-10 17:54:18 +09:00
e349be8bd6 Add C0006 medium damage art 2026-06-10 17:25:06 +09:00
2f5d4a2794 Add C0006 light damage art 2026-06-10 17:15:41 +09:00
e46e0900f9 Add C0006 base cyberpunk art 2026-06-10 15:20:43 +09:00
5480a67db3 Add C0005 defeated art 2026-06-10 15:12:25 +09:00
9b3d554a69 Add C0005 heavy damage art 2026-06-10 15:01:20 +09:00
b4ddaf909c Add C0005 medium damage art 2026-06-10 14:41:53 +09:00
c841625497 Add C0005 light damage art 2026-06-10 14:31:31 +09:00
5326544557 Add C0005 base idol art 2026-06-10 14:03:51 +09:00
6bfcc39f5f Add C0004 defeated art 2026-06-10 13:38:44 +09:00
8c646beffb Add C0004 heavy damage art 2026-06-10 13:22:08 +09:00
8f62be9f85 Increase battle damage exposure direction 2026-06-10 12:47:18 +09:00
39 changed files with 5573 additions and 5427 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

View File

@@ -13,10 +13,10 @@ assets/cards/C0001/damage-4.png
With 1000 all-female characters and 5 damage stages, final production requires 5000 image files.
- `damage-0.png`: intact armor/clothing
- `damage-1.png`: light outerwear or armor damage
- `damage-2.png`: moderate armor cracks and torn outer garments
- `damage-3.png`: heavy armor destruction and shredded outer layers
- `damage-4.png`: defeated state with broken equipment
- `damage-1.png`: light outerwear or armor damage with small visible exposure
- `damage-2.png`: moderate armor cracks, torn outer garments, and obvious shoulder/side/abdomen/thigh exposure
- `damage-3.png`: heavy armor destruction, shredded outer layers, and maximum non-sexual battle-damage exposure
- `damage-4.png`: defeated state with broken equipment and maximum permitted adult battle-damage exposure
The game art direction is adult-oriented multi-world pinup:
@@ -26,6 +26,11 @@ The game art direction is adult-oriented multi-world pinup:
- Every character should have a distinct appearance DNA: face shape, eye shape, nose, lips, skin tone, hair, body proportions, bust shape, and overall presence. Avoid generating the same default pretty face and same body repeatedly.
- Every character should also have a distinct combat identity and pose language: weapon or equipment handling, stance, posture, balance, hand placement, and silhouette should vary so the 1000-character roster does not feel like one model in different costumes.
- Damage-state art should adapt to the character's world: armor destruction, torn modern clothing, damaged stage outfits, cracked sci-fi suits, broken sports gear, snapped belts, damaged bracers, dust, scorch marks, and defeated poses.
- Damage intensity should be strong and physically convincing. Avoid damage that looks like mild fashion distressing only; from `damage-2` onward, show bent plates, snapped straps, split seams, fractured bracers, damaged boots, broken fasteners, disabled weapon parts, and poses that clearly communicate forceful combat impact. `damage-4` should look like the character can no longer keep fighting, while still avoiding gore and explicit sexual framing.
- Keep visual noise controlled. Avoid dense tiny sparkles, glitter, particle clutter, micro-shards, and confetti-like debris that make the card tiring to read. Prefer a few larger readable elemental effects, strong silhouettes, and clean focal areas.
- Exposure is a core adult-game reward. From `damage-2` onward, damaged clothing/gear should visibly reveal shoulders, side torso, abdomen, hips, upper thighs, back, or mature bust silhouette; `damage-3` and `damage-4` should push to the maximum permitted non-sexual battle-damage exposure for that character's outfit and world.
- Damage should be distributed across the whole outfit and armor system. High-damage and defeated cards should show damage on headgear or hair accessories, shoulders, chest armor or bodice, back or cloak, sleeves, gloves, abdomen, waist, hips, thighs, knees, boots, and weapon accessories as appropriate. Do not leave a major region pristine while only one area is destroyed; keep opaque remnants over intimate areas so the image stays combat-damage focused.
- Damage must be cumulative across stages. A tear, crack, missing plate, exposed non-intimate area, broken weapon part, or damaged accessory shown in `damage-1` must still be present in `damage-2`, `damage-3`, and `damage-4`, with additional damage layered on top. Later stages must never repair, clean up, replace, or re-cover a previously damaged zone.
- Defeated and high-damage stages should show emotional defeat: frustrated tears, resentful grimaces, clenched teeth, wet eyes, and expressions that feel unfair or humiliating rather than calm dignity.
- Medium through defeated stages may show clear combat-pain reactions from abdominal hits: gasping open mouth, hunched posture, labored breathing, tears, and small saliva/drool details. These must read as combat injury reactions, not sexual acts or fetish framing.
- High-damage stages should make the combat feel intense through missing or destroyed hand, foot, shoulder, abdomen, hip, and torso armor/clothing. Adult nudity or body exposure may be used as part of the battle-damage presentation.

View File

@@ -1,9 +1,9 @@
{
"schemaVersion": 1,
"generatedAt": "2026-06-10T03:28:39.370Z",
"generatedAt": "2026-06-10T09:28:54.455Z",
"expectedImageCount": 5000,
"completedImageCount": 17,
"completedCharacterCount": 4,
"completedImageCount": 30,
"completedCharacterCount": 6,
"assets": [
{
"characterId": "C0001",
@@ -123,6 +123,97 @@
"path": "assets/cards/C0004/damage-1.png",
"bytes": 2865018,
"updatedAt": "2026-06-10T03:27:53.820Z"
},
{
"characterId": "C0004",
"damageStage": 2,
"path": "assets/cards/C0004/damage-2.png",
"bytes": 2884874,
"updatedAt": "2026-06-10T03:36:34.178Z"
},
{
"characterId": "C0004",
"damageStage": 3,
"path": "assets/cards/C0004/damage-3.png",
"bytes": 3098645,
"updatedAt": "2026-06-10T04:20:03.378Z"
},
{
"characterId": "C0004",
"damageStage": 4,
"path": "assets/cards/C0004/damage-4.png",
"bytes": 3089288,
"updatedAt": "2026-06-10T04:33:49.840Z"
},
{
"characterId": "C0005",
"damageStage": 0,
"path": "assets/cards/C0005/damage-0.png",
"bytes": 3133806,
"updatedAt": "2026-06-10T04:47:18.278Z"
},
{
"characterId": "C0005",
"damageStage": 1,
"path": "assets/cards/C0005/damage-1.png",
"bytes": 3229892,
"updatedAt": "2026-06-10T05:27:04.938Z"
},
{
"characterId": "C0005",
"damageStage": 2,
"path": "assets/cards/C0005/damage-2.png",
"bytes": 3295307,
"updatedAt": "2026-06-10T05:36:59.310Z"
},
{
"characterId": "C0005",
"damageStage": 3,
"path": "assets/cards/C0005/damage-3.png",
"bytes": 3397270,
"updatedAt": "2026-06-10T05:47:27.439Z"
},
{
"characterId": "C0005",
"damageStage": 4,
"path": "assets/cards/C0005/damage-4.png",
"bytes": 3108524,
"updatedAt": "2026-06-10T06:10:22.527Z"
},
{
"characterId": "C0006",
"damageStage": 0,
"path": "assets/cards/C0006/damage-0.png",
"bytes": 2988237,
"updatedAt": "2026-06-10T06:17:43.648Z"
},
{
"characterId": "C0006",
"damageStage": 1,
"path": "assets/cards/C0006/damage-1.png",
"bytes": 2965903,
"updatedAt": "2026-06-10T08:11:41.833Z"
},
{
"characterId": "C0006",
"damageStage": 2,
"path": "assets/cards/C0006/damage-2.png",
"bytes": 2968354,
"updatedAt": "2026-06-10T08:21:07.377Z"
},
{
"characterId": "C0006",
"damageStage": 3,
"path": "assets/cards/C0006/damage-3.png",
"bytes": 2957248,
"updatedAt": "2026-06-10T08:48:50.277Z"
},
{
"characterId": "C0006",
"damageStage": 4,
"path": "assets/cards/C0006/damage-4.png",
"bytes": 3104139,
"updatedAt": "2026-06-10T09:27:07.447Z"
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

24
main.js
View File

@@ -113,7 +113,7 @@ const WORLD_ARCHETYPES = [
weapon: "자성 나노드론과 손목 해킹덱",
origin: "지하 데이터 시장 출신",
pose: "한 손으로 홀로그램을 조작하고 다른 손으로 금속 드론을 날리는 자세",
scene: "rainy neon alley, hologram billboards, magnetic drones, chrome sparks, metal elemental atmosphere",
scene: "rainy neon alley, hologram billboards, magnetic drones, subtle chrome reflections, metal elemental atmosphere",
lighting: "rainy early-evening neon with readable face light and wet reflections",
costume: "sleek cyber jacket, reflective bodysuit panels, utility belt, visor, exposed cable ornaments",
style: "cyberpunk TCG key art, neon reflections, chrome detail, high contrast rain lighting",
@@ -128,7 +128,7 @@ const WORLD_ARCHETYPES = [
weapon: "중력 앵커 부츠와 궤도 링",
origin: "달 궤도 정비국 출신",
pose: "무중력에서 몸을 비틀며 중력장을 접는 자세",
scene: "space station observation deck, Earth below, floating debris, gravity lensing, earth elemental atmosphere",
scene: "space station observation deck, Earth below, large floating debris, gravity lensing, earth elemental atmosphere",
lighting: "brilliant orbital daylight through station glass, Earth-reflected blue-white light, crisp sci-fi visibility",
costume: "fitted space suit with armored collar, utility harness, magnetic boots, translucent pressure cape",
style: "space opera fantasy card art, cinematic starfield, polished sci-fi armor, orbital lighting",
@@ -146,7 +146,7 @@ const WORLD_ARCHETYPES = [
scene: "dusty desert highway, wrecked vehicles, orange sunset, engine flames, fire elemental atmosphere",
lighting: "low sunset daylight with hard orange sun and dust glare",
costume: "racing leather, armored crop jacket, reinforced boots, torn scarf, heat-resistant plates",
style: "post-apocalyptic action card art, dust, sparks, speed lines, hard sunlight",
style: "post-apocalyptic action card art, dust trails, speed lines, hard sunlight",
damageProfile: "라이더 재킷, 무릎 보호대, 부츠, 목 스카프가 타고 찢어진다",
bias: { hp: 1.02, atk: 1.12, def: 0.96 },
},
@@ -203,7 +203,7 @@ const WORLD_ARCHETYPES = [
weapon: "암석 스파이크 글러브와 코트 라인 결계",
origin: "프로 배구 이능 리그 출신",
pose: "점프 스파이크 직전 공중에서 암석장을 만드는 자세",
scene: "indoor sports arena, court lights, cheering screens, floating stone fragments, earth elemental atmosphere",
scene: "indoor sports arena, court lights, cheering screens, large floating stone plates, earth elemental atmosphere",
lighting: "bright indoor arena lighting like a televised daytime sports match",
costume: "adult pro athlete uniform, compression gear, knee pads, team jacket, reinforced sneakers",
style: "dynamic sports anime trading card art, arena lighting, motion blur, collectible finish",
@@ -233,7 +233,7 @@ const WORLD_ARCHETYPES = [
weapon: "초침 레이피어와 시간 톱니",
origin: "멈춘 시계탑 출신",
pose: "공중의 톱니를 밟고 초침 검을 찌르는 자세",
scene: "fractured clock tower outside time, floating gears, frozen glass shards, metal elemental atmosphere",
scene: "fractured clock tower outside time, floating gears, large frozen glass panels, metal elemental atmosphere",
lighting: "surreal golden noon frozen in time, bright highlights on gears and glass",
costume: "clockwork bodice armor, capelet, thigh boots, gear halo, ornate gloves",
style: "chrono fantasy TCG key art, suspended motion, gold and silver gears, surreal lighting",
@@ -266,7 +266,7 @@ const WORLD_ARCHETYPES = [
scene: "polar research base, aurora, ice core machines, snowstorm, water elemental atmosphere",
lighting: "cold polar morning with pale sun through snow and faint aurora color",
costume: "thermal research suit, fur-trim hood, harness, insulated boots, cracked goggles",
style: "arctic science fantasy card art, aurora lighting, snow particles, crisp detail",
style: "arctic science fantasy card art, aurora lighting, soft snow haze, crisp detail",
damageProfile: "방한복, 고글, 하네스, 부츠, 장갑이 찢어지고 얼음 조각이 박힌다",
bias: { hp: 1.1, atk: 1, def: 1.04 },
},
@@ -323,10 +323,10 @@ const WORLD_ARCHETYPES = [
weapon: "빛의 컨트롤러 블레이드와 데이터 방패",
origin: "프로 VR 아레나 출신",
pose: "컨트롤러 블레이드를 교차하며 관중석을 향해 도발하는 자세",
scene: "virtual esports arena, pixel particles, giant screens, data shields, metal elemental atmosphere",
scene: "virtual esports arena, clean data panels, giant screens, data shields, metal elemental atmosphere",
lighting: "bright virtual arena lighting with white LED panels and colorful UI glow",
costume: "streamer performance suit, LED jacket, headset, fingerless gloves, hologram belt",
style: "neon esports fantasy card art, digital particles, energetic streaming-stage composition",
style: "neon esports fantasy card art, clean digital effects, energetic streaming-stage composition",
damageProfile: "LED 재킷, 헤드셋, 장갑, 홀로그램 벨트와 데이터 방패가 깨진다",
bias: { hp: 0.94, atk: 1.1, def: 1 },
},
@@ -1074,10 +1074,10 @@ function stageExpressionText(stage) {
function stageDamageFocus(stage) {
return [
"모든 갑주와 의상이 온전함",
"장갑, 망토 끝, 어깨 끈 일부 손상",
"손·팔·어깨·복부 외피가 일부 사라짐",
"손·발·어깨·복부 갑주가 크게 파괴",
"손·발·어깨·복부 보호구 대부분 파손",
"장갑, 재킷 끝, 어깨 끈 손상과 쇄골·허리선 일부 노출",
"손·팔·어깨·옆구리·복부·허벅지 외피가 분명하게 사라짐",
"어깨·등·복부·힙라인·허벅지 노출이 크게 드러나는 장비 파괴",
"패배 상태에서 허용선 내 최대 노출과 보호구 대부분 파손",
][stage];
}

View File

@@ -45,59 +45,89 @@ function damageSpec(stage) {
{
label: "normal",
visual: "intact armor and clothing, pristine battle-ready silhouette",
impactIntensity:
"no impact damage yet; the card should look fully prepared before combat",
exposure:
"no battle-damage exposure yet; mature silhouette is visible through intact adult outfit design",
poseNote: "confident ready stance",
expression:
"controlled confident expression, eyes focused, no distress",
missingArmor:
"no missing armor or clothing; all equipment is intact",
damageCoverage:
"all outfit and armor zones are intact and clean; no damage distribution is needed at this stage",
camera:
"front or three-quarter front view for clear character identity",
},
{
label: "light-damage",
visual:
"light battle damage: scratched armor, torn cloak edges, scuffed gloves, one shoulder guard loosened, intact modest underlayers",
"light battle damage from a clear opening hit: scratched and lightly dented armor or modern gear, torn jacket or cloak edges, scuffed gloves, one shoulder strap loosened, cracked small accessory or visor edge, small visible exposure around collarbone, shoulder edge, forearm, waistline, or upper thigh",
impactIntensity:
"light damage must still look like a real strike landed: include visible scuffs, dents, loosened straps, and at least one broken small accessory, while keeping the character mostly combat-ready",
exposure:
"low but noticeable battle-damage exposure: collarbone, shoulder edge, forearm, waistline, or upper thigh should be visible from damaged outer layers",
poseNote: "still composed but reacting to an opening exchange",
expression:
"annoyed grimace, narrowed eyes, clenched jaw, clearly frustrated by the first hit",
missingArmor:
"minor loss of outer accessories only: torn glove edge, loosened shoulder strap, scuffed boot armor",
damageCoverage:
"light damage should be distributed across at least three visible zones, such as a shoulder strap, sleeve or glove, waist edge, thigh guard, boot guard, visor, or small accessory, so no single isolated tear carries the whole stage",
camera:
"three-quarter front view or slight side angle, enough to show both face and first armor damage",
},
{
label: "medium-damage",
visual:
"moderate battle damage: cracked shoulder armor, torn outer sleeves, loosened belts, damaged protective plates, exposed forearms, one bare shoulder or torn shoulder covering, partially exposed abdomen or side through broken outer armor, intact modest underlayers",
"moderate battle damage from repeated heavy hits: cracked shoulder armor or protective gear, bent plates, torn outer sleeves, loosened or snapped belts, damaged protective plates, exposed forearms, one bare shoulder, torn neckline or side seam, clearly exposed abdomen or side torso, exposed upper thigh or hip line through broken outer layers",
impactIntensity:
"medium damage must read stronger than cosmetic tearing: show bent metal, snapped straps, cracked guards, separated seams, bruising-free impact marks on gear, and a posture that clearly reacts to forceful combat impact",
exposure:
"clear adult battle-damage exposure: one bare shoulder, side torso, abdomen, upper thigh, hip line, and emphasized mature bust silhouette should be obvious, not hidden by intact modest underlayers",
poseNote: "strained but still fighting with focus",
expression:
"painful frown, wet eyes, anger and disbelief, trying not to cry while staying in the fight; if hit in the abdomen, show a gasping open mouth and strained breathing",
missingArmor:
"visible loss around hands, forearms, one shoulder, boot guards, and side-abdomen armor; damage suggests repeated heavy impacts",
damageCoverage:
"medium damage should visibly affect upper body, arms, abdomen or waist, hips or thighs, and at least one boot or leg guard; do not leave a major clothing or armor region looking untouched",
camera:
"side view or strong three-quarter side view, body twisted from impact so shoulder and abdomen damage are visible",
},
{
label: "heavy-damage",
visual:
"heavy battle damage: broken outer armor, shredded mantle, fractured bracers, missing glove armor, damaged boots or bare foot/ankle on one side, exposed shoulders, abdomen/midriff, hips, and torn costume layers through destroyed outer armor",
"heavy battle damage after a brutal exchange: broken and warped outer armor or modern gear, shredded mantle/jacket/stage outfit, fractured bracers, missing glove armor, crushed or split waist plates, damaged boots or bare foot/ankle on one side, heavily exposed shoulders, back, abdomen/midriff, hips, upper thighs, and torn costume layers through destroyed outer armor",
impactIntensity:
"heavy damage should look severe and unmistakable: armor plates bent out of shape, straps snapped, seams split open, bracers fractured, boots damaged, weapon accessories partly broken, and the character's balance visibly failing from repeated impacts",
exposure:
"push to maximum allowed non-sexual battle-damage exposure: exposed shoulders, back, cleavage or side-bust silhouette, abdomen, hips, upper thighs, and torn outfit remnants should make the impact feel severe",
poseNote: "wounded, guarded, barely keeping balance after a brutal exchange",
expression:
"tearful angry grimace, trembling lower lip, brows pinched, resentful eyes that show she hates losing; abdominal-hit reaction such as open mouth, gasping, hunched posture, and a small non-erotic saliva strand is allowed",
missingArmor:
"major loss around hands, feet, shoulders, abdomen, waist plates, and bracers; broken pieces scattered nearby",
damageCoverage:
"heavy damage must be full-body and balanced: headgear or visor, shoulders, chest armor or bodice, back or cloak, sleeves, gloves, abdomen, waist, hips, thighs, knees, boots, and weapon accessories should all show cracks, tears, missing outer plates, scuffs, or deformation; avoid leaving any major region pristine while another region is over-destroyed",
camera:
"dramatic side view, rear three-quarter view, or over-the-shoulder angle while keeping face partially visible",
},
{
label: "defeated",
visual:
"defeated state: kneeling, collapsed, or sitting back after battle, broken armor pieces around them, torn outer garment layers, missing hand and foot armor, bare shoulders or one exposed shoulder, exposed abdomen/midriff, hips, and torn costume layers through destroyed outer armor",
"defeated state after overwhelming combat: kneeling, collapsed, or sitting back after battle, armor system barely holding together, broken armor pieces around them, torn outer garment layers, missing hand and foot armor, shattered shoulder or waist plates, bare shoulders, exposed back or side-back, exposed abdomen/midriff, hips, upper thighs, and torn costume remnants through destroyed outer armor",
impactIntensity:
"defeated damage should be the strongest non-gore stage: the outfit and armor should look comprehensively wrecked by combat, with collapsed straps, broken fasteners, crushed guards, missing outer plates, disabled weapon pieces, and a posture that clearly communicates she can no longer keep fighting",
exposure:
"maximum permitted adult battle-damage exposure for the defeated card: broad exposed shoulder/back/side torso/abdomen/hip/thigh areas, dramatic torn costume remnants, and emphasized mature silhouette while staying framed as combat defeat rather than a sexual act",
poseNote: "battle-worn, emotionally overwhelmed, clearly defeated, no gore",
expression:
"frustrated tears, unfair-loss expression, clenched teeth or trembling open mouth, tear tracks, angry shame rather than calm dignity; defeated abdominal-hit pain reaction with open mouth, drool/saliva at the lip, and labored breathing is allowed when framed as combat pain",
missingArmor:
"the most intense equipment loss: shattered shoulder plates, missing bracers and glove armor, broken boot guards, torn waist and abdomen armor, scattered fragments",
damageCoverage:
"defeated damage must read across the entire outfit and armor system: damaged headgear, shoulders, chest armor or bodice, back or cloak, sleeves, gloves, abdomen, waist, hips, thighs, knees, boots, and weapon accessories; every major zone should show battle damage while opaque remnants still cover intimate areas",
camera:
"rear three-quarter, side-back, or low side view; show back/shoulder/cloak damage while keeping enough face profile to read pain",
},
@@ -131,8 +161,13 @@ function promptFor(character, stage) {
`Adult visual appeal: ${character.appealFocus}; ${adultAppeal}.`,
`Scene/backdrop: ${character.scene}; ${elementName} elemental atmosphere; no other characters.`,
`Style/medium: ${character.style}, portrait card composition.`,
"Visual noise control: keep tiny sparkles, glitter, particle clutter, micro-shards, and confetti-like debris sparse; use a few large readable elemental shapes and clear silhouettes instead of dense shimmering detail that makes the card hard to look at.",
"Composition/framing: full body or knees-up character centered, strong silhouette, vertical card art, cinematic but readable.",
`Damage state: ${spec.visual}.`,
`Impact intensity: ${spec.impactIntensity}. Make the damage feel forceful and physically convincing, not like mild fashion distressing.`,
`Damage coverage: ${spec.damageCoverage}. Damage must feel physically consistent across the whole outfit and armor system, while avoiding sexual posing or explicit intimate exposure.`,
"Cumulative damage continuity: each later damage stage must preserve every visible tear, crack, missing armor plate, damaged accessory, and exposed non-intimate area established in earlier stages, then add new damage on top. Never repair, clean up, replace, or re-cover a previously damaged zone as the stage number increases.",
`Battle-damage exposure direction: ${spec.exposure}. The card should not look modest or fully covered after impact; exposure is part of the adult card-game reward while remaining non-sexual combat damage.`,
`Missing gear/clothing emphasis: ${spec.missingArmor}. Emphasize battle intensity through missing or damaged hand, foot, shoulder, abdomen, hip, and torso gear where appropriate, adapting the damage to this character's era and outfit.`,
`Continuity: keep this character's face, body type, race, weapon/equipment, world/era, costume silhouette, color motif, and elemental identity consistent across all five damage stages.`,
"Constraints: all characters are adults; adult-oriented multi-world card art; sensual silhouette, nudity, and body exposure are allowed when framed as battle damage or defeat; pain expressions, tears, gasping, and small saliva/drool details must read as combat injury reactions; no sexual act; no penetration; no gore; no text; no logo; no watermark.",