Add initial romance game design data

This commit is contained in:
2026-06-11 22:34:07 +09:00
commit d6cfaaeabb
7 changed files with 1850 additions and 0 deletions

1440
data/characters.json Normal file

File diff suppressed because it is too large Load Diff

159
data/locations.json Normal file
View File

@@ -0,0 +1,159 @@
{
"version": "0.1.0",
"locations": [
{
"id": "downtown_cafe",
"name": "다운타운 카페",
"mood": "밝고 일상적인 첫 만남",
"time_slots": ["morning", "afternoon", "evening"],
"encounter_tags": ["casual", "conversation", "rainy_day"]
},
{
"id": "book_cafe",
"name": "북카페",
"mood": "조용한 대화와 취향 공유",
"time_slots": ["afternoon", "evening"],
"encounter_tags": ["quiet", "literary", "slow_burn"]
},
{
"id": "university_quarter",
"name": "대학가",
"mood": "활기찬 우연과 풋풋한 설렘",
"time_slots": ["morning", "afternoon", "evening"],
"encounter_tags": ["student", "festival", "street_food"]
},
{
"id": "riverside_park",
"name": "강변 공원",
"mood": "산책, 고백, 밤공기",
"time_slots": ["afternoon", "evening", "night"],
"encounter_tags": ["walk", "confession", "comfort"]
},
{
"id": "cooking_studio",
"name": "쿠킹 스튜디오",
"mood": "생활감 있는 다정함",
"time_slots": ["afternoon", "evening"],
"encounter_tags": ["homey", "class", "care"]
},
{
"id": "neighborhood_market",
"name": "동네 시장",
"mood": "현실적이고 따뜻한 일상",
"time_slots": ["morning", "afternoon"],
"encounter_tags": ["errand", "food", "local"]
},
{
"id": "office_district",
"name": "오피스 거리",
"mood": "바쁜 하루 속 짧은 마주침",
"time_slots": ["morning", "evening", "night"],
"encounter_tags": ["career", "stress", "after_work"]
},
{
"id": "rooftop_lounge",
"name": "루프탑 라운지",
"mood": "화려하고 긴장감 있는 야경",
"time_slots": ["evening", "night"],
"encounter_tags": ["night_view", "flirt", "tension"]
},
{
"id": "wine_bar",
"name": "와인바",
"mood": "성숙한 대화와 은근한 거리감",
"time_slots": ["evening", "night"],
"encounter_tags": ["mature", "private", "slow_tension"]
},
{
"id": "jazz_bar",
"name": "재즈바",
"mood": "어른스러운 여유와 낮은 조명",
"time_slots": ["evening", "night"],
"encounter_tags": ["music", "mature", "secret"]
},
{
"id": "amusement_street",
"name": "놀이 거리",
"mood": "즉흥적이고 발랄한 데이트",
"time_slots": ["afternoon", "evening", "night"],
"encounter_tags": ["playful", "festival", "arcade"]
},
{
"id": "fashion_street",
"name": "패션 거리",
"mood": "눈에 띄는 스타일과 시선",
"time_slots": ["afternoon", "evening"],
"encounter_tags": ["shopping", "style", "jealousy"]
},
{
"id": "boutique_studio",
"name": "부티크 스튜디오",
"mood": "촬영, 의상, 화려한 이미지",
"time_slots": ["afternoon", "evening"],
"encounter_tags": ["photo", "fashion", "public_image"]
},
{
"id": "fitness_center",
"name": "피트니스 센터",
"mood": "활동적이고 건강한 긴장감",
"time_slots": ["morning", "evening"],
"encounter_tags": ["training", "competition", "body_care"]
},
{
"id": "art_studio",
"name": "작업실 골목",
"mood": "감정적이고 예술적인 밤",
"time_slots": ["afternoon", "evening", "night"],
"encounter_tags": ["art", "melancholy", "late_night"]
},
{
"id": "old_bookstore",
"name": "헌책방",
"mood": "느린 시간과 숨은 취향",
"time_slots": ["afternoon", "evening"],
"encounter_tags": ["nostalgia", "quiet", "discovery"]
},
{
"id": "flower_shop",
"name": "꽃집",
"mood": "부드럽고 맑은 낮의 호감",
"time_slots": ["morning", "afternoon"],
"encounter_tags": ["gentle", "gift", "daylight"]
},
{
"id": "cinema",
"name": "영화관",
"mood": "어두운 객석과 가까운 거리",
"time_slots": ["afternoon", "evening", "night"],
"encounter_tags": ["date", "shared_emotion", "tension"]
},
{
"id": "police_box",
"name": "파출소 앞",
"mood": "책임감과 보호 본능",
"time_slots": ["morning", "evening", "night"],
"encounter_tags": ["duty", "safety", "incident"]
},
{
"id": "global_lounge",
"name": "글로벌 라운지",
"mood": "언어, 문화, 여행의 설렘",
"time_slots": ["afternoon", "evening", "night"],
"encounter_tags": ["foreign", "travel", "open_minded"]
},
{
"id": "apartment_complex",
"name": "아파트 단지",
"mood": "사적인 일상과 조심스러운 거리",
"time_slots": ["morning", "evening", "night"],
"encounter_tags": ["neighbor", "private", "comfort"]
},
{
"id": "lakeside_walk",
"name": "호숫가 산책로",
"mood": "회복, 고백, 조용한 위로",
"time_slots": ["afternoon", "evening", "night"],
"encounter_tags": ["healing", "confession", "mature"]
}
]
}

79
data/progression.json Normal file
View File

@@ -0,0 +1,79 @@
{
"version": "0.1.0",
"player": {
"age": 25,
"role": "male_protagonist"
},
"relationship_stages": [
{
"stage": 0,
"id": "stranger",
"name": "모르는 사이",
"requirements": []
},
{
"stage": 1,
"id": "acquaintance",
"name": "안면 있는 사이",
"requirements": ["first_encounter_complete"]
},
{
"stage": 2,
"id": "contact",
"name": "연락 가능한 사이",
"requirements": ["contact_exchanged", "affection >= 15"]
},
{
"stage": 3,
"id": "dating",
"name": "데이트 단계",
"requirements": ["trust >= 20", "date_invite_accepted"]
},
{
"stage": 4,
"id": "intimate_trust",
"name": "깊은 신뢰",
"requirements": ["date_stage_2_complete", "trust >= 45", "tension >= 25"]
},
{
"stage": 5,
"id": "lovers",
"name": "연인",
"requirements": ["date_stage_3_complete", "commitment >= 50", "confession_success"]
},
{
"stage": 6,
"id": "after_story",
"name": "애프터 스토리",
"requirements": ["lovers", "route_clear"]
}
],
"adult_event_requirements": {
"minimum_character_age": 19,
"required_flags": ["lovers", "consent_confirmed"],
"recommended_stats": ["trust >= 55", "commitment >= 45"],
"presentation_modes": ["suggestive_cg", "fade_to_black", "afterglow_dialogue"]
},
"date_result_rules": {
"great": {
"affection": 12,
"trust": 8,
"tension": 6
},
"good": {
"affection": 8,
"trust": 5,
"tension": 3
},
"awkward": {
"affection": 2,
"trust": -2,
"tension": 1
},
"failed": {
"affection": -5,
"trust": -8,
"tension": -3
}
}
}