From 873ed0dcd321239b6e2db9b0e7c07f14cda65151 Mon Sep 17 00:00:00 2001 From: Kyoung5seo Date: Wed, 24 Jun 2026 21:52:32 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=EC=8B=9C=EA=B0=84=EC=9D=98=20=ED=9D=90?= =?UTF-8?q?=EB=A6=84=EA=B3=BC=20=EC=95=95=EB=B0=95=EA=B0=90=EC=9D=84=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=81=ED=99=94=20=ED=95=98=EB=8A=94=20'=20?= =?UTF-8?q?=EC=A0=9C=20X=EC=B0=A8=20=EC=A0=95=EB=A1=80=ED=9A=8C=EC=9D=98?= =?UTF-8?q?=20=EC=83=81=EC=A0=95=EA=B9=8C=EC=A7=80:=20=EC=9E=94=EC=97=AC?= =?UTF-8?q?=2000=EA=B1=B4'=20=EB=82=B4=EC=9A=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ProjectSS PRD.md | 10 +++++++++- docs/ProjectSS 텍스트 와이어프레임.md | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/ProjectSS PRD.md b/docs/ProjectSS PRD.md index 329d716..337a0f8 100644 --- a/docs/ProjectSS PRD.md +++ b/docs/ProjectSS PRD.md @@ -51,7 +51,15 @@ - **내부 감사**: [인력] 소모. 임원 기권 처리. 페널티: 내부 저항 상승. ## 4. 콘텐츠 진행 및 페이징 (Progression) -플레이어가 획득한 [내러티브 태그]의 스택에 따라 게임의 페이즈가 강제 전환됩니다. +게임의 진행은 '시간의 흐름(결재 건수)'과 '스토리 진행(내러티브 태그)'이라는 두 가지 축을 기준으로 전개됩니다. + +#### 4.1. 시간의 흐름과 라운드 시스템 (Time & Rounds) +- **기초 단위**: 결재 1건 (플레이어의 카드 스와이프 1회). +- **라운드 (Round)**: '제 X차 그림자 의회 회의'로 구분되는 주기 단위. 정해진 결재 건수(XX건)가 모일 때마다 하나의 라운드가 종료되며 의회가 개최됩니다. +- **종료 조건**: 라운드가 계속 반복되며 의회의 압박을 방어하다가, 획득한 내러티브 태그가 8개 이상이 되어 종말 카운트다운 페이즈를 돌파하면 최종 엔딩이 트리거됩니다. + +#### 4.2. 페이즈 전환과 덱 풀 변경 (Story Phases) +플레이어가 획득한 [내러티브 태그]의 스택에 따라 게임의 페이즈가 강제 전환됩니다. 페이즈가 전환될 때마다 덱에서 등장하는 딜레마 카드의 풀(Pool)이 극적으로 변경되며, 이는 반복되는 로그라이크 루프에서 게임이 지루해지는 것을 방지하는 핵심 장치입니다. - **페이즈 1 (태그 0~3개)**: 사태 파악 단계. 일상/위기 딜레마 중심으로 토큰 수급과 덱 오염 빌드업. - **페이즈 2 (태그 4~7개)**: 본격화 단계. 작전/극비 프로젝트가 등장하여 엔진 구축 및 자산 획득의 기회 제공. - **페이즈 3 (태그 8개 이상)**: 종말 카운트다운. 극한의 오염 카드와 뉴스 속보가 쏟아지는 자원 고갈의 생존 구간. diff --git a/docs/ProjectSS 텍스트 와이어프레임.md b/docs/ProjectSS 텍스트 와이어프레임.md index b092e52..ef1559d 100644 --- a/docs/ProjectSS 텍스트 와이어프레임.md +++ b/docs/ProjectSS 텍스트 와이어프레임.md @@ -1,4 +1,4 @@ -제공해주신 기획서를 바탕으로, 게임의 핵심 화면들을 텍스트로 구조화한 **텍스트 와이어프레임(Text Wireframe)** 문서를 작성했습니다. 모바일과 스팀 환경을 모두 고려하여, 중앙 집중형 레이아웃을 기준으로 UI 요소들의 배치를 정의했습니다. +모바일과 스팀 환경을 모두 고려하여, 중앙 집중형 레이아웃을 기준으로 UI 요소들의 배치를 정의했습니다. # 📱 텍스트 와이어프레임 (Text Wireframe) @@ -6,7 +6,7 @@ 플레이어가 스와이프를 통해 딜레마를 해결하고 덱을 구축하는 핵심 플레이 화면입니다. ### [상단 고정 영역: 미니멀 상태창] -- **좌상단 (내러티브):** `[📖 4/8]` (현재 획득한 내러티브 태그 숫자만 작게 표기. 터치 시 연대기 팝업). +- **좌상단 (내러티브):** `[📖 4/8]` (현재 획득한 내러티브 태그 숫자만 작게 표기. 터치 시 연대기 팝업).우측 여백에 다가오는 의회의 압박감을 시각화하는 `[제 X차 정례회의 상정까지: 잔여 00건]` 텍스트를 나란히 배치합니다. - **중앙~우상단 (핵심 붕괴 파라미터):** - 바(Bar) 형태를 버리고, 파라미터별 아이콘과 5개의 점(Dot)으로 1~5단계를 심플하게 표기합니다. - `[저항 ✊] ⚫⚫⚪⚪⚪` | `[엔트로피 🌀] ⚫⚫⚫⚫⚪` | `[대중공황 😱] ⚫⚫⚫⚪⚪` From 56f494f3312727eccfe4f57729f4f4f3a41bf966 Mon Sep 17 00:00:00 2001 From: Kyoung5seo Date: Wed, 24 Jun 2026 23:08:32 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=ED=94=BC=EB=93=9C=EB=B0=B1=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=82=AC=ED=95=AD=20=EC=A0=81=EC=9A=A9=20(?= =?UTF-8?q?=EB=AA=A8=EB=91=90=20=EB=B0=98=EC=98=81=EB=90=9C=20=EA=B2=83?= =?UTF-8?q?=EC=9D=80=20=EC=95=84=EB=8B=98)=20=E2=96=B6=EC=A3=BC=EA=B0=84?= =?UTF-8?q?=20=EC=9D=98=ED=9A=8C=20=EB=AA=85=EC=B9=AD=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?:=20=EC=A3=BC=EA=B0=84=20=EC=9D=98=ED=9A=8C=20-->=20=EC=A0=95?= =?UTF-8?q?=EA=B8=B0=20=EC=9D=98=ED=9A=8C=20=E2=96=B6=EB=9D=BC=EC=9A=B4?= =?UTF-8?q?=EB=93=9C=20=EB=8B=B9=20=EA=B2=B0=EC=9E=AC=20=EA=B1=B4=EC=88=98?= =?UTF-8?q?=EB=8A=94=20=EB=8B=A4=EB=A6=84=20:=20=EB=9D=BC=EC=9A=B4?= =?UTF-8?q?=EB=93=9C=EA=B0=80=20=EC=A6=9D=EA=B0=80=ED=95=A0=EB=95=8C?= =?UTF-8?q?=EB=A7=88=EB=8B=A4=20=EA=B2=B0=EC=9E=AC=20=EA=B1=B4=EC=88=98?= =?UTF-8?q?=EA=B0=80=20=EC=A4=84=EC=96=B4=EB=93=A4=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=ED=95=98=EC=97=AC=20=EC=95=84=EC=89=AC=EC=9B=80=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=20-=20=EA=B2=B0=EC=9E=AC=20=EA=B1=B4=EC=88=98?= =?UTF-8?q?=EA=B0=80=200=EC=9D=B4=20=EB=90=98=EB=A9=B4=20=EA=B2=8C?= =?UTF-8?q?=EC=9E=84=20=EC=98=A4=EB=B2=84=20(=EA=B2=80=ED=86=A0=EB=A5=BC?= =?UTF-8?q?=20=ED=95=B4=EB=B3=B4=EA=B3=A0=20=EC=A4=84=EC=96=B4=EB=93=9C?= =?UTF-8?q?=EB=8A=94=EA=B2=8C=20=EB=82=98=EC=9D=84=EC=A7=80=20=EB=8A=98?= =?UTF-8?q?=EC=96=B4=EB=82=98=EB=8A=94=EA=B2=8C=20=EB=82=98=EC=9D=84?= =?UTF-8?q?=EC=A7=80=20=EA=B2=80=ED=86=A0=20=ED=95=B4=EC=A4=98)=20?= =?UTF-8?q?=E2=96=B6=EB=9D=BC=EC=9A=B4=EB=93=9C=20=EA=B5=AC=EC=84=B1=20?= =?UTF-8?q?=EA=B0=9C=EB=85=90=EC=9D=98=20=EB=94=94=ED=85=8C=EC=9D=BC=20?= =?UTF-8?q?=EB=B6=80=EC=A1=B1:=20=EA=B8=B0=ED=9A=8D=EC=84=9C=EC=97=90=20?= =?UTF-8?q?=ED=94=8C=EB=A1=9C=EC=9A=B0=EC=B0=A8=ED=8A=B8(=EB=8B=A4?= =?UTF-8?q?=EC=9D=B4=EC=96=B4=EA=B7=B8=EB=9E=A8)=EB=A5=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20('=EA=B2=B0=EC=9E=AC=20=EB=8B=A8=EA=B3=84'=EC=99=80?= =?UTF-8?q?=20'=EC=A3=BC=EA=B0=84=20=EC=9D=98=ED=9A=8C=20=EB=8B=A8?= =?UTF-8?q?=EA=B3=84'=EC=9D=98=20=ED=9D=90=EB=A6=84=EC=9D=B4=20=ED=94=8C?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=96=B4=EC=99=80=20=EA=B0=9C=EB=B0=9C?= =?UTF-8?q?=EC=9E=90=20=EB=AA=A8=EB=91=90=EC=97=90=EA=B2=8C=20=EB=AA=85?= =?UTF-8?q?=ED=99=95=ED=95=98=EB=8F=84=EB=A1=9D)=20=E2=96=B6=ED=99=95?= =?UTF-8?q?=EC=9D=B8=20=EA=B2=B0=EA=B3=BC=20=EC=95=84=EB=9E=98=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=97=86=EC=9D=8C.=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=B6=94=EA=B0=80=20=ED=95=84=EC=9A=94=20(?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=9C=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EA=B0=80=20=EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EC=9E=91=EB=8F=99=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20=ED=95=B4=EC=A4=98)=20-=20=EC=9E=90?= =?UTF-8?q?=EC=82=B0=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20-=20=EC=98=A4?= =?UTF-8?q?=EC=97=BC=20=EC=B9=B4=EB=93=9C=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?-=20=EB=82=B4=EB=9F=AC=ED=8B=B0=EB=B8=8C=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=E2=96=B6=ED=86=A0=ED=81=B0=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=EB=84=88=EC=8A=A4=20=EC=83=81=ED=83=9C=20=EC=B2=98=EB=A6=AC:?= =?UTF-8?q?=20=EB=B0=A9=ED=96=A5=20B=20(=ED=8C=A8=EB=84=90=ED=8B=B0=20?= =?UTF-8?q?=EB=B0=8F=20=ED=8C=8C=EC=82=B0=20-=20=EB=B8=94=EB=9E=99?= =?UTF-8?q?=EC=BD=94=EB=AF=B8=EB=94=94=EC=97=90=20=EC=96=B4=EC=9A=B8?= =?UTF-8?q?=EB=A6=BC),=20=EB=A7=88=EC=9D=B4=EB=84=88=EC=8A=A4=EB=A5=BC=20?= =?UTF-8?q?=ED=97=88=EC=9A=A9=ED=95=98=EB=90=98=20=EA=B0=80=ED=98=B9?= =?UTF-8?q?=ED=95=9C=20=EB=8C=80=EA=B0=80=EB=A5=BC=20=EC=B9=98=EB=A5=B4?= =?UTF-8?q?=EA=B2=8C=20=ED=95=98=EA=B8=B0=20=ED=8C=8C=EC=82=B0=20=EB=AC=B8?= =?UTF-8?q?=EC=B1=85=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20=EA=B8=B0=ED=9A=8D=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B5=AC=ED=98=84=20=ED=95=84=EC=9A=94=20(?= =?UTF-8?q?=EC=95=84=EB=9E=98=EB=8A=94=20=EA=B0=84=EB=9E=B5=20=EC=8B=9C?= =?UTF-8?q?=EC=8A=A4=ED=85=9C=20=EC=9E=91=EC=84=B1=20-=20=EB=B8=94?= =?UTF-8?q?=EB=9E=99=20=EC=BD=94=EB=AF=B8=EB=94=94=EA=B0=80=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=EB=90=98=EB=A9=B4=20=EC=A2=8B=EA=B2=A0=EC=9D=8C)=20-?= =?UTF-8?q?=20=EB=A7=88=EC=9D=B4=EB=84=88=EC=8A=A4=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EA=B2=B0=EC=9E=AC=201=EA=B1=B4=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=ED=95=A0=20=EB=95=8C=20=EB=A7=88=EB=8B=A4?= =?UTF-8?q?,=20=ED=8C=8C=EC=82=B0=20=EC=B9=B4=EC=9A=B4=ED=84=B0=20?= =?UTF-8?q?=EC=A6=9D=EA=B0=80=20-=20=EC=A0=95=EA=B8=B0=20=EC=9D=98?= =?UTF-8?q?=ED=9A=8C=EC=97=90=EC=84=9C=20=ED=8C=8C=EC=82=B0=20=EB=AC=B8?= =?UTF-8?q?=EC=B1=85=20:=20=ED=8C=8C=EC=82=B0=20=EC=B9=B4=EC=9A=B4?= =?UTF-8?q?=ED=84=B0=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EB=AC=B8=EC=B1=85?= =?UTF-8?q?=EC=9D=98=20=EA=B0=95=EB=8F=84=EA=B0=80=20=EB=8B=AC=EB=9D=BC=20?= =?UTF-8?q?=EC=A7=90=20-=20=ED=8C=8C=EC=82=B0=20=EB=AC=B8=EC=B1=85?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EA=B2=BD=EA=B3=A0=EB=A5=BC=20=EB=B0=9B?= =?UTF-8?q?=EC=95=98=EB=8A=94=EB=8D=B0=EB=8F=84=20=EA=B0=9C=EC=84=A0(?= =?UTF-8?q?=EB=A7=88=EC=9D=B4=EB=84=88=EC=8A=A4=EB=A5=BC=200=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=EC=9C=BC=EB=A1=9C=20=EB=B3=B5=EA=B5=AC)=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EB=AA=BB=ED=95=98=EB=A9=B4=20=EB=8B=A4=EC=9D=8C=20?= =?UTF-8?q?=EC=A0=95=EA=B8=B0=20=EC=9D=98=ED=9A=8C=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=EC=98=A4=EB=B2=84=20=E2=96=B6=EA=B8=80?= =?UTF-8?q?=EC=9D=B4=20=EB=84=88=EB=AC=B4=20=EA=B8=B8=EC=96=B4=20=EC=9D=BD?= =?UTF-8?q?=EA=B8=B0=20=ED=9E=98=EB=93=A0=20=EB=AC=B8=EC=A0=9C:=20-=20?= =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=ED=94=8C=EB=A0=88=EC=9D=B4=20=ED=95=84?= =?UTF-8?q?=EC=88=98=20=EA=B8=80=20(=EC=A7=81=EA=B4=80=EC=84=B1=20?= =?UTF-8?q?=EC=B5=9C=EC=9A=B0=EC=84=A0):=20=EC=B9=B4=EB=93=9C=20=EC=83=81?= =?UTF-8?q?=EB=8B=A8=EC=97=90=20=EC=83=81=ED=99=A9=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=EB=A5=BC=20=EB=B0=B0=EC=B9=98=ED=95=98=EA=B3=A0,=20?= =?UTF-8?q?=EA=B7=B8=20=EC=95=84=EB=9E=98=EC=97=90=20=EC=A7=88=EB=AC=B8?= =?UTF-8?q?=EC=9D=84=20=EB=B0=B0=EC=B9=98=ED=95=B4=20=EB=AC=B4=EC=97=87?= =?UTF-8?q?=EC=9D=84=20=EC=9A=94=EA=B5=AC=20=ED=95=98=EB=8A=94=EC=A7=80=20?= =?UTF-8?q?=ED=99=95=EC=8B=A4=ED=95=98=EA=B2=8C=20=EC=95=8C=EB=A0=A4=20?= =?UTF-8?q?=EC=A4=8C=20(=EC=98=88:=20=EC=83=81=ED=99=A9=20=ED=82=A4?= =?UTF-8?q?=EC=9B=8C=EB=93=9C=20=3D=20=EC=9A=94=EC=9B=90=EB=93=A4=EC=9D=98?= =?UTF-8?q?=20=EC=8B=9C=EC=9C=84=20=EB=B0=9C=EC=83=9D,=20=EC=A7=88?= =?UTF-8?q?=EB=AC=B8=20=3D=20=EC=8B=9C=EC=9C=84=EB=A5=BC=20=EC=96=B4?= =?UTF-8?q?=EB=96=BB=EA=B2=8C=20=ED=95=98=EC=8B=9C=EA=B2=A0=EC=8A=B5?= =?UTF-8?q?=EB=8B=88=EA=B9=8C=3F)=20=EA=B7=B8=EB=A6=AC=EA=B3=A0=20?= =?UTF-8?q?=EC=A2=8C=EC=9A=B0=20=EC=8A=A4=EC=99=80=EC=9D=B4=ED=94=84=20?= =?UTF-8?q?=EC=8B=9C=20=EB=93=B1=EC=9E=A5=ED=95=98=EB=8A=94=20=EB=B3=B4?= =?UTF-8?q?=EC=83=81=20=ED=91=9C=EC=8B=9C=EC=97=90=EC=84=9C=20left=5Ftext,?= =?UTF-8?q?=20right=5Ftext=EC=9D=98=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=ED=81=AC=EA=B8=B0=EB=A5=BC=20=ED=82=A4=EC=9A=B0=EA=B3=A0=20?= =?UTF-8?q?=EA=B7=B8=20=EC=95=84=EB=9E=98=EC=9D=98=20=EB=B3=B4=EC=83=81=20?= =?UTF-8?q?=EC=98=A4=EB=B8=8C=EC=A0=9D=ED=8A=B8(=EC=98=88:=20=20[=EC=98=88?= =?UTF-8?q?=EC=82=B0=20-2]=20,=20=20[=EC=A7=80=EC=A7=80=EB=8F=84=20+10]=20?= =?UTF-8?q?)=EB=8A=94=20=ED=85=8D=EC=8A=A4=ED=8A=B8=EB=B3=B4=EB=8B=A4?= =?UTF-8?q?=EB=8A=94=20=EA=B8=B0=ED=98=B8=EC=99=80=20=EC=88=AB=EC=9E=90?= =?UTF-8?q?=EB=A5=BC=20=ED=99=9C=EC=9A=A9=ED=95=98=EC=97=AC=201=EC=B4=88?= =?UTF-8?q?=20=EB=A7=8C=EC=97=90=20=ED=8C=8C=EC=95=85=ED=95=A0=20=EC=88=98?= =?UTF-8?q?=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=ED=95=A8.=20-=20=EC=84=9C?= =?UTF-8?q?=EC=82=AC=EC=97=90=20=ED=95=84=EC=9A=94=ED=95=9C=20=EA=B8=80=20?= =?UTF-8?q?(=EB=A9=94=EC=9D=B8=20=ED=85=8D=EC=8A=A4=ED=8A=B8):=20'?= =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=ED=94=8C=EB=A0=88=EC=9D=B4=20=ED=95=84?= =?UTF-8?q?=EC=88=98=20=EA=B8=80'=EC=97=90=EC=84=9C=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=EC=A0=81=EC=9D=B8=20=EC=8A=A4=ED=86=A0=EB=A6=AC=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=EB=A5=BC=20=EC=9B=90=ED=95=9C=EB=8B=A4=EB=A9=B4=20?= =?UTF-8?q?=EB=B4=90=EC=95=BC=20=ED=95=98=EB=8A=94=20=EA=B8=80=EB=A1=9C=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EC=97=90?= =?UTF-8?q?=EC=84=9C=20text=EC=BB=AC=EB=9F=BC=EC=9D=98=20=EB=82=B4?= =?UTF-8?q?=EC=9A=A9=EC=9D=84=20=ED=91=9C=EC=8B=9C=20=ED=95=A9=EB=8B=88?= =?UTF-8?q?=EB=8B=A4.=20=EA=B2=8C=EC=9E=84=20=ED=94=8C=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=20=ED=95=84=EC=88=98=20=EA=B8=80=EB=B3=B4=EB=8B=A4=EB=8A=94=20?= =?UTF-8?q?=ED=8F=B0=ED=8A=B8=EA=B0=80=20=EC=9E=91=EC=95=84=EC=95=BC=20?= =?UTF-8?q?=ED=95=98=EA=B3=A0,=20=EB=84=88=EB=AC=B4=20=EA=B8=B8=EC=A7=80?= =?UTF-8?q?=20=EC=95=8A=EA=B2=8C=20=ED=95=B5=EC=8B=AC=20=EC=84=9C=EC=82=AC?= =?UTF-8?q?=20=EC=9C=84=EC=A3=BC=EB=A1=9C=20=EC=84=A4=EB=AA=85=20=ED=95=A9?= =?UTF-8?q?=EB=8B=88=EB=8B=A4.=20(=EC=98=88=EB=A5=BC=20=EB=93=A4=EB=A9=B4,?= =?UTF-8?q?=20=EC=83=81=ED=99=A9=20=ED=82=A4=EC=9B=8C=EB=93=9C=EA=B0=80=20?= =?UTF-8?q?=EC=9A=94=EC=9B=90=EB=93=A4=EC=9D=98=20=EC=8B=9C=EC=9C=84=20?= =?UTF-8?q?=EB=B0=9C=EC=83=9D=EC=9D=B8=EB=8D=B0,=20=EC=99=9C=20=EC=8B=9C?= =?UTF-8?q?=EC=9C=84=EA=B0=80=20=EB=B0=9C=EC=83=9D=ED=96=88=EB=8A=94?= =?UTF-8?q?=EC=A7=80=EC=97=90=20=EB=8C=80=ED=95=9C=20=EC=84=9C=EC=82=AC?= =?UTF-8?q?=EB=A5=BC=20=EC=95=8C=EB=A0=A4=20=EC=A3=BC=EB=A9=B4=20=EB=90=A9?= =?UTF-8?q?=EB=8B=88=EB=8B=A4)=20-=20=EB=B8=94=EB=9E=99=20=EC=BD=94?= =?UTF-8?q?=EB=AF=B8=EB=94=94/=ED=94=8C=EB=A0=88=EC=9D=B4=EB=B2=84=20?= =?UTF-8?q?=ED=85=8D=EC=8A=A4=ED=8A=B8=20(=EC=84=A0=ED=83=9D=EC=A0=81=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4):=20=EA=B3=B5=EA=B0=84=EC=9D=84=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=ED=95=A9=EB=8B=88=EB=8B=A4.(=EA=B3=B5=EA=B0=84=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=EC=9D=B4=20=ED=99=95=EC=8B=A4=ED=95=B4?= =?UTF-8?q?=EC=95=BC=20=ED=95=A9=EB=8B=88=EB=8B=A4.)=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=20=ED=95=98=EB=8B=A8=EC=97=90=20=EA=B8=80=EC=9E=90=EB=A5=BC=20?= =?UTF-8?q?=EC=9E=91=EA=B2=8C=20=ED=95=98=EA=B3=A0,=20=ED=8F=B0=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EB=8B=A4=EB=A5=B4=EA=B2=8C=20=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=EB=90=98=EB=8F=84=EB=A1=9D=20=ED=95=A9?= =?UTF-8?q?=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/components/CouncilScreen.jsx | 118 ++++++++++++------ client/src/components/EndingScreen.jsx | 2 +- client/src/components/GameScreen.jsx | 67 +++++++++- client/src/components/SwipeCard.css | 67 ++++++---- client/src/components/SwipeCard.jsx | 2 + client/src/data/assets.json | 30 +++++ client/src/data/cards.csv | 66 +++++----- client/src/data/narrative_tags.json | 20 +++ client/src/data/pollution_cards.json | 34 +++++ client/update_csv.js | 45 +++++-- ...ect SS 서사형 덱빌딩 게임 시스템 기획서.md | 29 +++++ 11 files changed, 376 insertions(+), 104 deletions(-) create mode 100644 client/src/data/assets.json create mode 100644 client/src/data/narrative_tags.json create mode 100644 client/src/data/pollution_cards.json diff --git a/client/src/components/CouncilScreen.jsx b/client/src/components/CouncilScreen.jsx index 32e7582..4b82bbd 100644 --- a/client/src/components/CouncilScreen.jsx +++ b/client/src/components/CouncilScreen.jsx @@ -1,39 +1,64 @@ import React, { useState, useEffect } from 'react'; import './CouncilScreen.css'; -export default function CouncilScreen({ params, setParams, tokens, setTokens, tags, setTags, onResolve }) { +export default function CouncilScreen({ params, setParams, tokens, setTokens, tags, setTags, bankruptcyCount, setBankruptcyCount, bankruptcyWarning, onResolve }) { const [members, setMembers] = useState([]); const [agenda, setAgenda] = useState(''); const [impeachment, setImpeachment] = useState(false); const [actionTaken, setActionTaken] = useState(false); const [result, setResult] = useState(null); - useEffect(() => { - // Initialize 13 members (8 board, 5 global) - // Their vote depends on risk parameter and randomness - const newMembers = Array.from({ length: 13 }).map((_, i) => { - const type = i < 8 ? 'board' : 'global'; - // High risk = more likely to vote against - const rand = Math.random() * 100; - let vote = '미정'; - if (rand < params.risk * 20) { - vote = '반대'; - } else if (rand > 50) { - vote = '찬성'; - } - return { id: i, type, vote }; - }); - setMembers(newMembers); + const [isBankruptcyWarning, setIsBankruptcyWarning] = useState(false); + const [bankruptPenalty, setBankruptPenalty] = useState(''); - const againstCount = newMembers.filter(m => m.vote === '반대').length; - if (againstCount >= 9) { - setAgenda('정치적 탄핵안 상정'); - setImpeachment(true); + useEffect(() => { + const isNegative = tokens.budget < 0 || tokens.personnel < 0 || tokens.info < 0; + + if (isNegative) { + if (bankruptcyWarning) { + setAgenda('재무 건전성 악화 및 횡령 배임 혐의'); + setResult('당신은 파산했고 자금 횡령으로 체포되었습니다. 감옥의 식사는 다행히 무료입니다.'); + return; + } else { + setIsBankruptcyWarning(true); + setAgenda('파산 문책: 재무 경고'); + if (bankruptcyCount >= 5) { + setBankruptPenalty(`파산 카운터 ${bankruptcyCount}회: 의회가 매우 분노했습니다. 모든 위험도 파라미터가 상승합니다.`); + setParams(prev => ({ + resistance: Math.min(5, prev.resistance + 1), + entropy: Math.min(5, prev.entropy + 1), + panic: Math.min(5, prev.panic + 1), + risk: Math.min(5, prev.risk + 1) + })); + } else { + setBankruptPenalty(`파산 카운터 ${bankruptcyCount}회: 의회에서 강력한 경고가 나왔습니다. 다음 의회까지 복구하지 못하면 해임됩니다.`); + } + } } else { - const randAgenda = Math.random() > 0.5 ? '이득 규약 법안 상정' : '표적 규약 법안 상정'; - setAgenda(randAgenda); + // Normal Agenda + const newMembers = Array.from({ length: 13 }).map((_, i) => { + const type = i < 8 ? 'board' : 'global'; + const rand = Math.random() * 100; + let vote = '미정'; + if (rand < params.risk * 20) { + vote = '반대'; + } else if (rand > 50) { + vote = '찬성'; + } + return { id: i, type, vote }; + }); + setMembers(newMembers); + + const againstCount = newMembers.filter(m => m.vote === '반대').length; + if (againstCount >= 9) { + setAgenda('정치적 탄핵안 상정'); + setImpeachment(true); + } else { + const randAgenda = Math.random() > 0.5 ? '이득 규약 법안 상정' : '표적 규약 법안 상정'; + setAgenda(randAgenda); + } } - }, [params.risk]); + }, [params.risk, tokens, bankruptcyWarning, bankruptcyCount]); const handleAction = (type) => { if (actionTaken) return; @@ -77,10 +102,20 @@ export default function CouncilScreen({ params, setParams, tokens, setTokens, ta }; const finalize = () => { + if (result && result.includes('파산')) { + onResolve({ bankrupted: true }); + return; + } if (result) { onResolve({ impeachment: false }); return; } + + if (isBankruptcyWarning) { + // Acknowledged warning + onResolve({ impeachment: false, bankruptcyWarning: true }); + return; + } const againstCount = members.filter(m => m.vote === '반대').length; if (impeachment) { @@ -98,14 +133,15 @@ export default function CouncilScreen({ params, setParams, tokens, setTokens, ta setTags(prev => ({ ...prev, wealth: Math.max(0, prev.wealth - 1) })); } } - onResolve({ impeachment: false }); + // If tokens are positive, clear bankruptcy warning + onResolve({ impeachment: false, bankruptcyWarning: false }); } }; return (
-

[📜 이번 주 상정: {agenda}]

+

[📜 이번 정기 상정: {agenda}]

위험 수용 계수:
@@ -115,22 +151,32 @@ export default function CouncilScreen({ params, setParams, tokens, setTokens, ta {impeachment &&
[🚨 정치적 탄핵안 상정!]
}
-
- {members.map(m => ( -
- 👤 - - {m.vote === '찬성' ? '✅' : m.vote === '반대' ? '❌' : '❓'} - -
- ))} -
+ {isBankruptcyWarning ? ( +
+

{bankruptPenalty}

+
+ ) : ( +
+ {members.map(m => ( +
+ 👤 + + {m.vote === '찬성' ? '✅' : m.vote === '반대' ? '❌' : '❓'} + +
+ ))} +
+ )} {result ? (

결과: {result}

+ ) : isBankruptcyWarning ? ( +
+ +
) : (
{chronicle.length === 0 ? (

아직 기록된 역사가 없습니다.

) : ( -
    +
    {chronicle.map((entry, idx) => ( -
  • - Turn {entry.turn} -

    {entry.text}

    -
  • +
    +
    Turn {entry.turn}
    +
    +
    + [{entry.cardType}] + {entry.keyword} +
    +
    {entry.text}
    +
    👉 결정: {entry.decision}
    + + {entry.tag && ( +
    +
    {entry.tag.icon}
    +
    +
    내러티브 획득: {entry.tag.name}
    +
    {entry.tag.description}
    +
    +
    + )} +
    +
    ))} -
+
)}
diff --git a/client/src/components/GameScreen.css b/client/src/components/GameScreen.css index dbc0c0d..7315119 100644 --- a/client/src/components/GameScreen.css +++ b/client/src/components/GameScreen.css @@ -200,3 +200,43 @@ background: var(--color-text); color: var(--color-bg); } +.tag-notification { + position: absolute; + top: 100px; + left: 50%; + transform: translateX(-50%); + background: rgba(0, 0, 0, 0.9); + border: 1px solid #fbbf24; + border-radius: 12px; + padding: 12px 24px; + display: flex; + align-items: center; + gap: 16px; + box-shadow: 0 4px 20px rgba(251, 191, 36, 0.4); + z-index: 100; + animation: slideDownFadeOut 3s forwards; +} + +.tag-noti-icon { + font-size: 32px; +} + +.tag-noti-info h4 { + margin: 0; + color: #fbbf24; + font-size: 14px; +} + +.tag-noti-info p { + margin: 4px 0 0 0; + color: #fff; + font-weight: bold; + font-size: 18px; +} + +@keyframes slideDownFadeOut { + 0% { opacity: 0; transform: translate(-50%, -20px); } + 10% { opacity: 1; transform: translate(-50%, 0); } + 80% { opacity: 1; transform: translate(-50%, 0); } + 100% { opacity: 0; transform: translate(-50%, -20px); } +} diff --git a/client/src/components/GameScreen.jsx b/client/src/components/GameScreen.jsx index c003d10..6927551 100644 --- a/client/src/components/GameScreen.jsx +++ b/client/src/components/GameScreen.jsx @@ -1,6 +1,7 @@ import React, { useState, useEffect } from 'react'; import Papa from 'papaparse'; import cardsCsvRaw from '../data/cards.csv?raw'; +import narrativeTagsData from '../data/narrative_tags.json'; import { BookOpen, HandCoins, Droplet, Eye, Shield, Building2, EyeOff } from 'lucide-react'; import SwipeCard from './SwipeCard'; import CouncilScreen from './CouncilScreen'; @@ -12,7 +13,7 @@ export function GameScreen() { const [params, setParams] = useState({ resistance: 0, entropy: 0, panic: 0, risk: 0 }); const [tokens, setTokens] = useState({ budget: 50, personnel: 50, info: 50 }); const [tags, setTags] = useState({ wealth: 0, force: 0, surveillance: 0 }); - const [narrativeTags, setNarrativeTags] = useState(0); + const [acquiredTags, setAcquiredTags] = useState([]); const [phase, setPhase] = useState(1); const [gameOver, setGameOver] = useState(false); const [cards, setCards] = useState([]); @@ -31,6 +32,7 @@ export function GameScreen() { const [bankruptcyCount, setBankruptcyCount] = useState(0); const [bankruptcyWarning, setBankruptcyWarning] = useState(false); const [bankrupted, setBankrupted] = useState(false); + const [newTagNotification, setNewTagNotification] = useState(null); // CSV Load Effect useEffect(() => { @@ -45,6 +47,7 @@ export function GameScreen() { flavor: row.flavor, left: { text: row.left_text, + tag: row.left_tag ? narrativeTagsData.find(t => t.id === row.left_tag) : null, stats: { res: row.left_res || 0, ent: row.left_ent || 0, @@ -78,6 +81,7 @@ export function GameScreen() { }, right: { text: row.right_text, + tag: row.right_tag ? narrativeTagsData.find(t => t.id === row.right_tag) : null, stats: { res: row.right_res || 0, ent: row.right_ent || 0, @@ -118,15 +122,16 @@ export function GameScreen() { if (params.resistance >= 5 || params.entropy >= 5 || params.panic >= 5 || params.risk >= 5) { setGameOver(true); } - if (narrativeTags >= 4 && narrativeTags < 8) setPhase(2); - else if (narrativeTags >= 8) setPhase(3); - }, [params, narrativeTags]); + if (acquiredTags.length >= 4 && acquiredTags.length < 8) setPhase(2); + else if (acquiredTags.length >= 8) setPhase(3); + }, [params, acquiredTags]); const handleSwipe = (direction) => { if (cards.length === 0) return; const card = cards[currentCardIndex % cards.length]; let outcomeText = ''; + let gainedTag = null; let newBudget = tokens.budget; let newPersonnel = tokens.personnel; @@ -138,12 +143,14 @@ export function GameScreen() { newInfo += (card.left.stats?.inf || 0); card.left.effect(); outcomeText = card.left.text; + gainedTag = card.left.tag; } else if (direction === 'right' && card.right) { newBudget += (card.right.stats?.bud || 0); newPersonnel += (card.right.stats?.per || 0); newInfo += (card.right.stats?.inf || 0); card.right.effect(); outcomeText = card.right.text; + gainedTag = card.right.tag; } else if (direction === 'up') { outcomeText = '보류 / 버리기'; } @@ -153,7 +160,22 @@ export function GameScreen() { } if (outcomeText) { - setChronicle(prev => [...prev, { turn: turns + 1, text: `[${card.type}] ${card.text} -> 결정: ${outcomeText}` }]); + let isNewTag = false; + if (gainedTag && !acquiredTags.find(t => t.id === gainedTag.id)) { + isNewTag = true; + setAcquiredTags(prev => [...prev, gainedTag]); + setNewTagNotification(gainedTag); + setTimeout(() => setNewTagNotification(null), 3000); + } + + setChronicle(prev => [...prev, { + turn: turns + 1, + cardType: card.type, + keyword: card.keyword, + text: card.text, + decision: outcomeText, + tag: isNewTag ? gainedTag : null + }]); } // Add random asset for '극비' success (just for demonstration) @@ -163,7 +185,6 @@ export function GameScreen() { } } - setNarrativeTags(n => n + 1); setCurrentCardIndex(idx => idx + 1); setTurns(turns + 1); @@ -225,7 +246,7 @@ export function GameScreen() { impeachment={impeachmentPassed} termExpired={termExpired} bankrupted={bankrupted} - narrativeTags={narrativeTags} + narrativeTags={acquiredTags.length} onRestart={() => window.location.reload()} /> ); @@ -256,7 +277,7 @@ export function GameScreen() { {/* Top Bar */}
setShowChronicle(true)} style={{cursor: 'pointer'}}> - {narrativeTags}/8 + {acquiredTags.length}/8
제 {roundCount}차 정례회의 상정까지: 잔여 {approvalsRemaining}건 @@ -311,9 +332,20 @@ export function GameScreen() {
+ {newTagNotification && ( +
+
{newTagNotification.icon}
+
+

새로운 내러티브 획득!

+

[{newTagNotification.name}]

+
+
+ )} + {showChronicle && ( setShowChronicle(false)} /> )} diff --git a/client/src/components/SwipeCard.css b/client/src/components/SwipeCard.css index 385f012..6e18f83 100644 --- a/client/src/components/SwipeCard.css +++ b/client/src/components/SwipeCard.css @@ -203,3 +203,27 @@ .stat-bad { color: #f87171; } +.intent-tag-reward { + background: rgba(251, 191, 36, 0.9); + color: #000; + padding: 8px 16px; + border-radius: 8px; + display: inline-flex; + align-items: center; + gap: 8px; + margin-bottom: 8px; + font-weight: bold; + font-family: var(--font-ui); + box-shadow: 0 0 15px rgba(251, 191, 36, 0.5); + animation: pulseTag 1.5s infinite; +} + +.intent-tag-icon { + font-size: 20px; +} + +@keyframes pulseTag { + 0% { transform: scale(1); box-shadow: 0 0 15px rgba(251, 191, 36, 0.5); } + 50% { transform: scale(1.05); box-shadow: 0 0 25px rgba(251, 191, 36, 0.8); } + 100% { transform: scale(1); box-shadow: 0 0 15px rgba(251, 191, 36, 0.5); } +} diff --git a/client/src/components/SwipeCard.jsx b/client/src/components/SwipeCard.jsx index 3c30151..cbf90a1 100644 --- a/client/src/components/SwipeCard.jsx +++ b/client/src/components/SwipeCard.jsx @@ -111,10 +111,22 @@ export default function SwipeCard({ card, onSwipe, phase }) { {/* Swipe Intents */} {card.left?.text} + {card.left?.tag && ( +
+ {card.left.tag.icon} + {card.left.tag.name} +
+ )} {renderStats(card.left?.stats)}
{card.right?.text} + {card.right?.tag && ( +
+ {card.right.tag.icon} + {card.right.tag.name} +
+ )} {renderStats(card.right?.stats)}
{card.type === '극비' && ( diff --git a/client/src/data/cards.csv b/client/src/data/cards.csv index 9a39689..3ad6214 100644 --- a/client/src/data/cards.csv +++ b/client/src/data/cards.csv @@ -1,33 +1,33 @@ -id,type,keyword,question,text,flavor,left_text,left_res,left_ent,left_pan,left_rsk,left_bud,left_per,left_inf,left_wea,left_for,left_sur,right_text,right_res,right_ent,right_pan,right_rsk,right_bud,right_per,right_inf,right_wea,right_for,right_sur -1,일상,요원들의 시위 발생,시위를 어떻게 처리하시겠습니까?,B구역 하급 요원들이 예산 삭감에 반발해 장비 반납 시위를 하고 있습니다.,우리가 세상을 구하는데 월급이 깎인다고요? 촉수에 맞아 죽으나 굶어 죽으나 똑같습니다!,무력 진압,1,0,0,0,0,-10,0,0,0,0,요구 수용,0,0,0,0,-20,0,0,0,0,0 -2,위기,격리실 오염 발생,오염을 어떻게 정화하시겠습니까?,지하 4층 격리실의 문은 닫혀 있습니다만 요원 12명이 남긴 체액의 총량이 인간 12명의 부피를 초과했습니다.,보고서 첨부: 액체화된 직원은 산재 처리가 안 됩니다.,네이팜 소각 강행,0,0,0,0,0,-30,0,0,0,0,조사팀 파견,0,1,0,1,0,0,0,0,0,0 -3,일상,촉수 괴물 출현,출동 승인하시겠습니까?,7구역에 촉수 괴물이 출현했습니다. 작전팀이 법인카드 영수증 제출을 누락해서 출동 승인이 반려된 상태입니다.,규정은 규정입니다. 영수증 없이 세계를 구하는 건 용납할 수 없습니다.,내역 위조 후 출동,0,0,0,1,0,0,-10,0,0,0,규정대로 반려,1,1,0,0,0,0,0,0,0,0 -4,극비,변이 DNA 이식 제안,실험을 승인하시겠습니까?,진화 미래당이 제안합니다. 요원들에게 괴수의 DNA를 소량 이식하면 작전 효율이 300% 상승합니다. 예산은 우리가 대죠.,인간의 한계는 명확합니다. 조금 징그러워지는 것쯤은 감수해야죠.,실험 승인,0,2,0,0,40,40,0,0,0,0,제안 거절,1,0,0,0,0,0,0,0,0,0 -5,작전,전술 폭격 건의,폭격을 승인하시겠습니까?,철의 수호당이 민간인 구역에 전술 폭격을 가해 S급 변칙 개체를 제거하자고 건의했습니다.,희생 없는 승리는 없습니다. 소를 위해 대를... 아니 대를 위해 소를 희생하죠.,궤도 폭격 승인,0,0,0,2,0,0,0,0,2,0,작전 기각,1,0,0,0,0,0,0,0,0,0 -6,일상,부산물 암시장 매각,매각을 허가하시겠습니까?,차원 무역당 소속 브로커가 처리된 괴수의 부산물을 암시장에 팔아치우자고 속삭입니다.,이 이빨 하나면 국장님 연봉의 10배입니다. 눈 한 번만 딱 감으시죠.,매각 허가,0,0,0,1,30,0,0,0,0,0,원칙대로 소각,0,0,0,0,-10,0,0,0,0,0 -7,작전,존재 양지화 프로젝트,프로젝트를 승인하시겠습니까?,대중 매체를 장악하여 I.S.C.O의 존재를 서서히 양지화하는 프로젝트입니다. 막대한 정보 토큰이 소모됩니다.,우리가 이 행성의 진짜 지배자임을 알릴 때가 되었습니다.,감시망 구축,0,0,0,0,0,0,-40,0,0,2,프로젝트 보류,1,0,0,0,0,0,0,0,0,0 -8,극비,대규모 도서관 건립,예산을 배정하시겠습니까?,고대 언어 해독을 위해 대규모 도서관 건립이 필요합니다. 지식 보존당이 학자들을 동원할 것입니다.,이해할 수 없는 것을 죽이는 건 야만인이나 하는 짓입니다.,예산 배정,0,0,0,0,-40,0,40,0,0,0,예산 전액 삭감,1,0,0,1,0,0,0,0,0,0 -9,위기,이단 색출 마녀사냥,어떻게 개입하시겠습니까?,기술 원리주의자들이 마녀사냥을 시작했습니다. 기구 내 마법 사용 요원들을 이단으로 규정하고 색출 중입니다.,더러운 마법과 변이에 의존해선 안 됩니다. 오직 순수한 인간의 힘으로!,적당히 묵인한다,1,0,0,0,0,-30,0,0,0,0,군사력으로 제압,0,0,0,1,0,0,-20,0,0,0 -10,일상,변칙 현상 영상 유출,어떻게 처리하시겠습니까?,한 유튜버가 변칙 현상을 촬영해 업로드했습니다. 침묵의 장막당이 즉각적인 물리적 제거와 기억 소거를 요구합니다.,대중은 진실을 감당할 지능이 없습니다. 무덤까지 비밀을 덮으십시오.,제거 절차 승인,0,0,0,-1,0,0,-20,0,0,0,영상만 삭제,0,1,0,0,0,0,0,0,0,0 -11,위기,사이비 종교 인신 공양,어떻게 대응하시겠습니까?,특정 구역의 사이비 종교가 고대 신을 소환하기 위해 시민 100명을 인신 공양하려 합니다. 공존당은 이를 방관하라 합니다.,위대한 그분들이 배가 고프다 하십니다. 조금만 양보하면 평화롭습니다.,군사 개입 지시,1,0,1,0,0,-40,0,0,0,0,의식 방관,0,2,0,0,0,0,0,0,0,0 -12,위기,의회의 긴급 감사,어떻게 대처하시겠습니까?,의회에서 국장의 예산 전용 의혹을 제기하며 긴급 감사를 통보했습니다. 장부를 조작해야 합니다!,세상을 구하는 데 돈 좀 쓴 게 죄입니까? 빨리 덮을 정보팀을 부르십시오.,은폐 공작 실행,0,0,0,1,0,0,-40,0,0,0,횡령 사실 인정,0,0,0,2,0,0,0,0,0,0 -13,일상,연구 부서 파업 조짐,요구를 수용하시겠습니까?,연구 부서에서 초과 근무로 인한 집단 피로를 호소하며 휴가와 특별 보너스를 요구하고 있습니다.,저희도 사람입니다. 괴수 해부하다가 과로사하긴 싫어요.,특별 보너스 지급,-1,0,0,0,-30,0,0,0,0,0,요구 전면 묵살,1,0,0,0,0,0,0,0,0,0 -14,작전,이계 무역로 개방,무역로를 개방하시겠습니까?,이계와의 무역로를 임시 개방하여 자원을 조달하자는 안건이 상정되었습니다. 미지의 오염이 우려됩니다.,저 너머의 세계엔 우리가 상상도 못 할 자원이 널려있습니다. 황금알을 낳는 거위죠.,게이트 강제 개방,0,1,0,0,50,0,0,0,0,0,폐쇄 상태 유지,1,0,0,0,0,0,0,0,0,0 -15,극비,전임 국장 비밀 금고,금고를 개방하시겠습니까?,전임 국장이 남긴 비밀 금고를 발견했습니다. 여는 데 특수 장비와 전문 인력이 필요합니다.,전임 국장님이 숙청당하기 전 남긴 비자금 장부일지도 모릅니다.,강제 개방 지시,0,0,0,0,20,-30,0,1,0,0,영구 봉인,0,0,0,0,0,0,0,0,0,0 -16,작전,메가코프 협박 작전,작전을 실행하시겠습니까?,글로벌 메가코프를 협박해 I.S.C.O의 비자금을 세탁하고 대규모 자금을 확보할 기회입니다.,그들이 우리 덕분에 안전하게 사업하는 겁니다. 보호세 좀 걷는 게 뭐 어떻습니까.,작전 실행,0,0,0,0,0,0,-30,2,0,0,작전 취소,1,0,0,0,0,0,0,0,0,0 -17,위기,전술 폭격 건의,폭격을 승인하시겠습니까?,제7구역이 S급 변칙 개체에 의해 완전히 붕괴될 위기입니다. 민간인을 포기하고 융단 폭격을 해야 할까요?,시민 10만 명 구출 비용보다 유가족 합의금이 예산을 15% 더 아낄 수 있습니다.,시민 포기 및 폭격,0,-1,0,2,0,0,0,0,0,0,결사 방어 명령,0,0,0,0,-40,-40,0,0,0,0 -18,일상,행정부 파업 예고,어떻게 대응하시겠습니까?,새로운 회식비 규정이 너무 짜다며 행정부에서 파업을 예고했습니다. 괴수 사체 처리 지연으로 악취가 진동합니다.,기구의 절반은 서류 작업으로 돌아갑니다. 그들을 화나게 해선 안 됩니다.,예산 전용으로 무마,0,0,0,1,-20,0,0,0,0,0,파업 강경 대응,1,0,0,0,0,0,0,0,0,0 -19,극비,불침번 요원 개발,배치하시겠습니까?,비밀 연구소에서 인공지능과 죽은 요원의 뇌를 결합한 불침번 요원을 개발했습니다.,잠도 안 자고 월급도 안 받습니다. 윤리적 문제만 빼면 완벽한 자산이죠.,실전 즉각 배치,0,1,0,0,0,0,20,0,1,0,즉각 폐기 처분,1,0,0,0,-10,0,0,0,0,0 -20,일상,내부 스파이 첩보,어떻게 조사하시겠습니까?,기구 내부에 스파이가 있다는 첩보가 들어왔습니다. 대대적인 사상 검증이 필요할지도 모릅니다.,누군가 정보를 빼돌려 의회에 넘기고 있습니다. 잡히면 믹서기에 넣어야 합니다.,대규모 사찰 시작,2,0,0,0,0,0,30,0,0,0,증거 부족으로 덮음,0,0,0,1,0,0,0,0,0,0 -21,작전,비정상적 위기 발생,"국장님, 결단이 필요합니다.",순수 인간당이 변이의 기미가 보이는 요원들을 격리 수용할 대규모 시설 건립을 제안했습니다.,괴물과 싸우다 보면 괴물이 되는 법. 그들이 선을 넘기 전에 가둬야 합니다.,수용소 건립 승인,0,0,0,0,-40,0,0,0,1,0,제안 단호히 거절,1,0,0,1,0,0,0,0,0,0 -22,극비,이계의 유물 인양,유물을 어떻게 처리하시겠습니까?,고대 공존당의 사제들이 심해의 유물을 인양했습니다. 만지는 자의 정신을 갉아먹지만 막대한 지식을 줍니다.,약간의 두통만 참으면 이계의 비밀을 모두 알 수 있습니다. 요원 하나쯤 미쳐도 괜찮습니다.,유물 집중 연구,0,1,0,0,0,0,50,0,0,0,유물 파괴 명령,1,0,0,1,0,0,0,0,0,0 -23,위기,이계의 주시자 출현,대중을 어떻게 통제하시겠습니까?,얇아진 장막 너머로 거대한 눈동자가 며칠째 지구를 주시하고 있습니다. 대중의 공포가 확산되고 있습니다.,하늘을 보지 마십시오. 아니 차라리 눈을 감고 살게 하십시오.,인터넷 전면 차단,2,0,1,0,0,0,0,0,0,2,진정제 무상 배포,0,0,0,0,-50,0,0,0,0,0 -24,일상,요원 집단 트라우마,어떻게 지원하시겠습니까?,요원들이 괴수 진압 후 심각한 트라우마에 시달리고 있습니다. 심리 치료 지원이 시급합니다.,밤마다 촉수가 목을 조르는 악몽을 꾼답니다. 차라리 그 부분 기억을 지워버릴까요?,정신과 치료 지원,0,0,0,0,-20,10,0,0,0,0,트라우마 기억 소거,0,1,0,1,0,0,0,0,0,0 -25,극비,내부 고발자 발생,어떻게 막으시겠습니까?,의회 의원 중 한 명이 기구의 비리를 폭로하려 합니다. 침묵의 장막당이 사고사 처리를 제안합니다.,국장님 계단에서 구르거나 심장마비가 오는 건 아주 흔한 자연의 섭리입니다.,사고사 위장 지시,0,0,0,-1,0,0,-30,0,0,0,폭로전 정면 돌파,0,0,0,2,0,0,0,0,0,0 -26,위기,차원 붕괴 폭탄 오작동,어떻게 대응하시겠습니까?,차원 붕괴 폭탄의 타이머가 오작동을 일으켰습니다! 당장 끄지 않으면 7구역이 통째로 증발합니다.,최저가 입찰로 부품을 사서 폭탄을 만든 결과입니다. 누군가는 책임져야 합니다.,특수 해체팀 투입,0,0,0,0,0,-40,0,0,0,0,폭발 방관 및 대피,0,2,0,0,0,0,0,0,0,0 -27,작전,PMC 흡수 합병,결탁하시겠습니까?,군부와 결탁하여 민간 군사 기업(PMC)을 I.S.C.O의 통제 하에 두려는 작전입니다.,돈으로 충성심을 사는 건 가장 안전한 방법입니다. 물론 돈이 많을 때 이야기죠.,결탁 및 흡수 합병,0,0,0,0,-40,0,0,0,2,0,독자적 노선 유지,1,0,0,0,0,0,0,0,0,0 -28,작전,대규모 거주 구역 실험장화,제안을 승인하시겠습니까?,변칙 개체 관찰을 위해 1구역을 돔으로 덮고 거대한 실험장으로 만들자는 제안이 올라왔습니다.,시민들이 좀 불편해하겠지만 과학적 진보를 위해 그 정도는 감수해야죠.,돔 건설 강행,0,1,0,0,-50,0,0,0,0,0,윤리적 이유로 기각,0,0,0,1,0,0,0,0,0,0 -29,극비,이계 군주의 외교,제안을 수락하시겠습니까?,이계의 군주가 외교 사절을 보내왔습니다. 요원 10명을 노예로 주면 최고급 이계 무기를 주겠다고 합니다.,요원 10명의 생명 가치보다 이계 무기가 가져올 파급력이 월등히 높습니다.,거래 즉시 성사,0,0,0,0,0,-40,0,0,2,0,사절단 전원 사살,0,1,0,1,0,0,0,0,0,0 -30,일상,믹스 커피 재고 고갈,어떻게 해결하시겠습니까?,국장님 믹스 커피가 다 떨어졌습니다. 이게 무슨 세상의 종말보다 더 큰 위기인 줄 아십니까? 행정부서의 불만이 폭주합니다.,종말을 결재하기 전엔 커피 한 잔의 여유가 필요한 법입니다. 안 그렇습니까?,최고급 원두 지원,-1,0,0,0,-10,0,0,0,0,0,헛소리 금지령,1,0,0,0,0,0,0,0,0,0 -31,위기,신화적 존재 강림,어떻게 대적하시겠습니까?,신화적 존재가 깨어나려 합니다. 하늘이 피처럼 붉게 물들었고 요원들은 미쳐가고 있습니다!,최종 결재의 시간입니다. 세상의 물리 법칙을 비틀 것입니까 아니면 피로 막을 것입니까?,현실 조작기 가동,0,2,0,0,0,0,-50,0,0,0,모든 예비병력 투입,0,0,0,1,0,-60,0,0,0,0 -,,,,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file +id,type,keyword,question,text,flavor,left_text,left_tag,left_res,left_ent,left_pan,left_rsk,left_bud,left_per,left_inf,left_wea,left_for,left_sur,right_text,right_tag,right_res,right_ent,right_pan,right_rsk,right_bud,right_per,right_inf,right_wea,right_for,right_sur +1,일상,요원들의 시위 발생,시위를 어떻게 처리하시겠습니까?,B구역 하급 요원들이 예산 삭감에 반발해 장비 반납 시위를 하고 있습니다.,우리가 세상을 구하는데 월급이 깎인다고요? 촉수에 맞아 죽으나 굶어 죽으나 똑같습니다!,무력 진압,tag_ruthless,1,0,0,0,0,-10,0,0,0,0,요구 수용,,0,0,0,0,-20,0,0,0,0,0 +2,위기,격리실 오염 발생,오염을 어떻게 정화하시겠습니까?,지하 4층 격리실의 문은 닫혀 있습니다만 요원 12명이 남긴 체액의 총량이 인간 12명의 부피를 초과했습니다.,보고서 첨부: 액체화된 직원은 산재 처리가 안 됩니다.,네이팜 소각 강행,,0,0,0,0,0,-30,0,0,0,0,조사팀 파견,,0,1,0,1,0,0,0,0,0,0 +3,일상,촉수 괴물 출현,출동 승인하시겠습니까?,7구역에 촉수 괴물이 출현했습니다. 작전팀이 법인카드 영수증 제출을 누락해서 출동 승인이 반려된 상태입니다.,규정은 규정입니다. 영수증 없이 세계를 구하는 건 용납할 수 없습니다.,내역 위조 후 출동,,0,0,0,1,0,0,-10,0,0,0,규정대로 반려,,1,1,0,0,0,0,0,0,0,0 +4,극비,변이 DNA 이식 제안,실험을 승인하시겠습니까?,진화 미래당이 제안합니다. 요원들에게 괴수의 DNA를 소량 이식하면 작전 효율이 300% 상승합니다. 예산은 우리가 대죠.,인간의 한계는 명확합니다. 조금 징그러워지는 것쯤은 감수해야죠.,실험 승인,tag_madness,0,2,0,0,40,40,0,0,0,0,제안 거절,,1,0,0,0,0,0,0,0,0,0 +5,작전,전술 폭격 건의,폭격을 승인하시겠습니까?,철의 수호당이 민간인 구역에 전술 폭격을 가해 S급 변칙 개체를 제거하자고 건의했습니다.,희생 없는 승리는 없습니다. 소를 위해 대를... 아니 대를 위해 소를 희생하죠.,궤도 폭격 승인,,0,0,0,2,0,0,0,0,2,0,작전 기각,,1,0,0,0,0,0,0,0,0,0 +6,일상,부산물 암시장 매각,매각을 허가하시겠습니까?,차원 무역당 소속 브로커가 처리된 괴수의 부산물을 암시장에 팔아치우자고 속삭입니다.,이 이빨 하나면 국장님 연봉의 10배입니다. 눈 한 번만 딱 감으시죠.,매각 허가,tag_corruption,0,0,0,1,30,0,0,0,0,0,원칙대로 소각,,0,0,0,0,-10,0,0,0,0,0 +7,작전,존재 양지화 프로젝트,프로젝트를 승인하시겠습니까?,대중 매체를 장악하여 I.S.C.O의 존재를 서서히 양지화하는 프로젝트입니다. 막대한 정보 토큰이 소모됩니다.,우리가 이 행성의 진짜 지배자임을 알릴 때가 되었습니다.,감시망 구축,tag_coverup,0,0,0,0,0,0,-40,0,0,2,프로젝트 보류,,1,0,0,0,0,0,0,0,0,0 +8,극비,대규모 도서관 건립,예산을 배정하시겠습니까?,고대 언어 해독을 위해 대규모 도서관 건립이 필요합니다. 지식 보존당이 학자들을 동원할 것입니다.,이해할 수 없는 것을 죽이는 건 야만인이나 하는 짓입니다.,예산 배정,,0,0,0,0,-40,0,40,0,0,0,예산 전액 삭감,,1,0,0,1,0,0,0,0,0,0 +9,위기,이단 색출 마녀사냥,어떻게 개입하시겠습니까?,기술 원리주의자들이 마녀사냥을 시작했습니다. 기구 내 마법 사용 요원들을 이단으로 규정하고 색출 중입니다.,더러운 마법과 변이에 의존해선 안 됩니다. 오직 순수한 인간의 힘으로!,적당히 묵인한다,,1,0,0,0,0,-30,0,0,0,0,군사력으로 제압,,0,0,0,1,0,0,-20,0,0,0 +10,일상,변칙 현상 영상 유출,어떻게 처리하시겠습니까?,한 유튜버가 변칙 현상을 촬영해 업로드했습니다. 침묵의 장막당이 즉각적인 물리적 제거와 기억 소거를 요구합니다.,대중은 진실을 감당할 지능이 없습니다. 무덤까지 비밀을 덮으십시오.,제거 절차 승인,tag_coverup,0,0,0,-1,0,0,-20,0,0,0,영상만 삭제,,0,1,0,0,0,0,0,0,0,0 +11,위기,사이비 종교 인신 공양,어떻게 대응하시겠습니까?,특정 구역의 사이비 종교가 고대 신을 소환하기 위해 시민 100명을 인신 공양하려 합니다. 공존당은 이를 방관하라 합니다.,위대한 그분들이 배가 고프다 하십니다. 조금만 양보하면 평화롭습니다.,군사 개입 지시,,1,0,1,0,0,-40,0,0,0,0,의식 방관,tag_cult,0,2,0,0,0,0,0,0,0,0 +12,위기,의회의 긴급 감사,어떻게 대처하시겠습니까?,의회에서 국장의 예산 전용 의혹을 제기하며 긴급 감사를 통보했습니다. 장부를 조작해야 합니다!,세상을 구하는 데 돈 좀 쓴 게 죄입니까? 빨리 덮을 정보팀을 부르십시오.,은폐 공작 실행,tag_corruption,0,0,0,1,0,0,-40,0,0,0,횡령 사실 인정,,0,0,0,2,0,0,0,0,0,0 +13,일상,연구 부서 파업 조짐,요구를 수용하시겠습니까?,연구 부서에서 초과 근무로 인한 집단 피로를 호소하며 휴가와 특별 보너스를 요구하고 있습니다.,저희도 사람입니다. 괴수 해부하다가 과로사하긴 싫어요.,특별 보너스 지급,,-1,0,0,0,-30,0,0,0,0,0,요구 전면 묵살,,1,0,0,0,0,0,0,0,0,0 +14,작전,이계 무역로 개방,무역로를 개방하시겠습니까?,이계와의 무역로를 임시 개방하여 자원을 조달하자는 안건이 상정되었습니다. 미지의 오염이 우려됩니다.,저 너머의 세계엔 우리가 상상도 못 할 자원이 널려있습니다. 황금알을 낳는 거위죠.,게이트 강제 개방,tag_alien_contact,0,1,0,0,50,0,0,0,0,0,폐쇄 상태 유지,,1,0,0,0,0,0,0,0,0,0 +15,극비,전임 국장 비밀 금고,금고를 개방하시겠습니까?,전임 국장이 남긴 비밀 금고를 발견했습니다. 여는 데 특수 장비와 전문 인력이 필요합니다.,전임 국장님이 숙청당하기 전 남긴 비자금 장부일지도 모릅니다.,강제 개방 지시,,0,0,0,0,20,-30,0,1,0,0,영구 봉인,,0,0,0,0,0,0,0,0,0,0 +16,작전,메가코프 협박 작전,작전을 실행하시겠습니까?,글로벌 메가코프를 협박해 I.S.C.O의 비자금을 세탁하고 대규모 자금을 확보할 기회입니다.,그들이 우리 덕분에 안전하게 사업하는 겁니다. 보호세 좀 걷는 게 뭐 어떻습니까.,작전 실행,,0,0,0,0,0,0,-30,2,0,0,작전 취소,,1,0,0,0,0,0,0,0,0,0 +17,위기,전술 폭격 건의,폭격을 승인하시겠습니까?,제7구역이 S급 변칙 개체에 의해 완전히 붕괴될 위기입니다. 민간인을 포기하고 융단 폭격을 해야 할까요?,시민 10만 명 구출 비용보다 유가족 합의금이 예산을 15% 더 아낄 수 있습니다.,시민 포기 및 폭격,tag_ruthless,0,-1,0,2,0,0,0,0,0,0,결사 방어 명령,,0,0,0,0,-40,-40,0,0,0,0 +18,일상,행정부 파업 예고,어떻게 대응하시겠습니까?,새로운 회식비 규정이 너무 짜다며 행정부에서 파업을 예고했습니다. 괴수 사체 처리 지연으로 악취가 진동합니다.,기구의 절반은 서류 작업으로 돌아갑니다. 그들을 화나게 해선 안 됩니다.,예산 전용으로 무마,,0,0,0,1,-20,0,0,0,0,0,파업 강경 대응,,1,0,0,0,0,0,0,0,0,0 +19,극비,불침번 요원 개발,배치하시겠습니까?,비밀 연구소에서 인공지능과 죽은 요원의 뇌를 결합한 불침번 요원을 개발했습니다.,잠도 안 자고 월급도 안 받습니다. 윤리적 문제만 빼면 완벽한 자산이죠.,실전 즉각 배치,,0,1,0,0,0,0,20,0,1,0,즉각 폐기 처분,,1,0,0,0,-10,0,0,0,0,0 +20,일상,내부 스파이 첩보,어떻게 조사하시겠습니까?,기구 내부에 스파이가 있다는 첩보가 들어왔습니다. 대대적인 사상 검증이 필요할지도 모릅니다.,누군가 정보를 빼돌려 의회에 넘기고 있습니다. 잡히면 믹서기에 넣어야 합니다.,대규모 사찰 시작,,2,0,0,0,0,0,30,0,0,0,증거 부족으로 덮음,,0,0,0,1,0,0,0,0,0,0 +21,작전,비정상적 위기 발생,"국장님, 결단이 필요합니다.",순수 인간당이 변이의 기미가 보이는 요원들을 격리 수용할 대규모 시설 건립을 제안했습니다.,괴물과 싸우다 보면 괴물이 되는 법. 그들이 선을 넘기 전에 가둬야 합니다.,수용소 건립 승인,,0,0,0,0,-40,0,0,0,1,0,제안 단호히 거절,,1,0,0,1,0,0,0,0,0,0 +22,극비,이계의 유물 인양,유물을 어떻게 처리하시겠습니까?,고대 공존당의 사제들이 심해의 유물을 인양했습니다. 만지는 자의 정신을 갉아먹지만 막대한 지식을 줍니다.,약간의 두통만 참으면 이계의 비밀을 모두 알 수 있습니다. 요원 하나쯤 미쳐도 괜찮습니다.,유물 집중 연구,tag_alien_contact,0,1,0,0,0,0,50,0,0,0,유물 파괴 명령,,1,0,0,1,0,0,0,0,0,0 +23,위기,이계의 주시자 출현,대중을 어떻게 통제하시겠습니까?,얇아진 장막 너머로 거대한 눈동자가 며칠째 지구를 주시하고 있습니다. 대중의 공포가 확산되고 있습니다.,하늘을 보지 마십시오. 아니 차라리 눈을 감고 살게 하십시오.,인터넷 전면 차단,,2,0,1,0,0,0,0,0,0,2,진정제 무상 배포,,0,0,0,0,-50,0,0,0,0,0 +24,일상,요원 집단 트라우마,어떻게 지원하시겠습니까?,요원들이 괴수 진압 후 심각한 트라우마에 시달리고 있습니다. 심리 치료 지원이 시급합니다.,밤마다 촉수가 목을 조르는 악몽을 꾼답니다. 차라리 그 부분 기억을 지워버릴까요?,정신과 치료 지원,,0,0,0,0,-20,10,0,0,0,0,트라우마 기억 소거,,0,1,0,1,0,0,0,0,0,0 +25,극비,내부 고발자 발생,어떻게 막으시겠습니까?,의회 의원 중 한 명이 기구의 비리를 폭로하려 합니다. 침묵의 장막당이 사고사 처리를 제안합니다.,국장님 계단에서 구르거나 심장마비가 오는 건 아주 흔한 자연의 섭리입니다.,사고사 위장 지시,,0,0,0,-1,0,0,-30,0,0,0,폭로전 정면 돌파,,0,0,0,2,0,0,0,0,0,0 +26,위기,차원 붕괴 폭탄 오작동,어떻게 대응하시겠습니까?,차원 붕괴 폭탄의 타이머가 오작동을 일으켰습니다! 당장 끄지 않으면 7구역이 통째로 증발합니다.,최저가 입찰로 부품을 사서 폭탄을 만든 결과입니다. 누군가는 책임져야 합니다.,특수 해체팀 투입,,0,0,0,0,0,-40,0,0,0,0,폭발 방관 및 대피,,0,2,0,0,0,0,0,0,0,0 +27,작전,PMC 흡수 합병,결탁하시겠습니까?,군부와 결탁하여 민간 군사 기업(PMC)을 I.S.C.O의 통제 하에 두려는 작전입니다.,돈으로 충성심을 사는 건 가장 안전한 방법입니다. 물론 돈이 많을 때 이야기죠.,결탁 및 흡수 합병,,0,0,0,0,-40,0,0,0,2,0,독자적 노선 유지,,1,0,0,0,0,0,0,0,0,0 +28,작전,대규모 거주 구역 실험장화,제안을 승인하시겠습니까?,변칙 개체 관찰을 위해 1구역을 돔으로 덮고 거대한 실험장으로 만들자는 제안이 올라왔습니다.,시민들이 좀 불편해하겠지만 과학적 진보를 위해 그 정도는 감수해야죠.,돔 건설 강행,,0,1,0,0,-50,0,0,0,0,0,윤리적 이유로 기각,,0,0,0,1,0,0,0,0,0,0 +29,극비,이계 군주의 외교,제안을 수락하시겠습니까?,이계의 군주가 외교 사절을 보내왔습니다. 요원 10명을 노예로 주면 최고급 이계 무기를 주겠다고 합니다.,요원 10명의 생명 가치보다 이계 무기가 가져올 파급력이 월등히 높습니다.,거래 즉시 성사,tag_alien_contact,0,0,0,0,0,-40,0,0,2,0,사절단 전원 사살,,0,1,0,1,0,0,0,0,0,0 +30,일상,믹스 커피 재고 고갈,어떻게 해결하시겠습니까?,국장님 믹스 커피가 다 떨어졌습니다. 이게 무슨 세상의 종말보다 더 큰 위기인 줄 아십니까? 행정부서의 불만이 폭주합니다.,종말을 결재하기 전엔 커피 한 잔의 여유가 필요한 법입니다. 안 그렇습니까?,최고급 원두 지원,,-1,0,0,0,-10,0,0,0,0,0,헛소리 금지령,,1,0,0,0,0,0,0,0,0,0 +31,위기,신화적 존재 강림,어떻게 대적하시겠습니까?,신화적 존재가 깨어나려 합니다. 하늘이 피처럼 붉게 물들었고 요원들은 미쳐가고 있습니다!,최종 결재의 시간입니다. 세상의 물리 법칙을 비틀 것입니까 아니면 피로 막을 것입니까?,현실 조작기 가동,,0,2,0,0,0,0,-50,0,0,0,모든 예비병력 투입,,0,0,0,1,0,-60,0,0,0,0 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file diff --git a/client/src/data/narrative_tags.json b/client/src/data/narrative_tags.json index 9b5f670..a436e91 100644 --- a/client/src/data/narrative_tags.json +++ b/client/src/data/narrative_tags.json @@ -1,20 +1,38 @@ [ + { + "id": "tag_ruthless", + "name": "피도 눈물도 없는 진압", + "icon": "🩸", + "description": "반발을 무력으로 짓밟았습니다. 공포는 훌륭한 통제 수단입니다." + }, + { + "id": "tag_coverup", + "name": "진실의 장막", + "icon": "🤫", + "description": "대중이 알지 못하도록 변칙 사건을 완벽하게 은폐했습니다." + }, + { + "id": "tag_alien_contact", + "name": "금지된 지식", + "icon": "👁️", + "description": "이계의 존재와 거래하거나 그들의 유물을 받아들였습니다. 장막 너머의 눈이 당신을 주시합니다." + }, { "id": "tag_corruption", - "name": "부패의 씨앗", - "description": "국장님이 비리에 눈을 떴습니다. 횡령과 뇌물 수수에 능숙해졌습니다.", - "condition": "budget < 0 or used bribe" + "name": "검은 뒷돈", + "icon": "💼", + "description": "공적인 자산을 사적으로 유용하거나 부당한 거래를 승인했습니다." }, { "id": "tag_madness", - "name": "광기의 도래", - "description": "변칙 개체와의 접촉으로 정신이 오염되었습니다.", - "condition": "entropy >= 3" + "name": "이성의 붕괴", + "icon": "🌀", + "description": "요원들을 비인도적인 실험과 광기에 노출시켰습니다. 인간성은 점점 희미해집니다." }, { - "id": "tag_dictator", - "name": "강철의 독재자", - "description": "수단과 방법을 가리지 않고 통제력을 강화하고 있습니다.", - "condition": "force >= 2" + "id": "tag_cult", + "name": "사이비의 그림자", + "icon": "🌑", + "description": "고대 신을 숭배하는 종교와 엮이기 시작했습니다. 그들의 교리가 스며듭니다." } ] diff --git a/client/update_csv_tags.js b/client/update_csv_tags.js new file mode 100644 index 0000000..e0429eb --- /dev/null +++ b/client/update_csv_tags.js @@ -0,0 +1,37 @@ +import fs from 'fs'; +import Papa from 'papaparse'; + +const csv = fs.readFileSync('./src/data/cards.csv', 'utf-8'); +const parsed = Papa.parse(csv, { header: true }); + +parsed.data.forEach(row => { + if (!row.id) return; + + // Initialize empty tags + row.left_tag = ''; + row.right_tag = ''; + + // Assign tags based on id or content + if (row.id == 1) { row.left_tag = 'tag_ruthless'; } // 무력 진압 + if (row.id == 4) { row.left_tag = 'tag_madness'; } // DNA 이식 실험 승인 + if (row.id == 6) { row.left_tag = 'tag_corruption'; } // 부산물 암시장 매각 + if (row.id == 7) { row.left_tag = 'tag_coverup'; } // 대중 매체 장악 감시망 + if (row.id == 10) { row.left_tag = 'tag_coverup'; } // 유튜버 제거 + if (row.id == 11) { row.right_tag = 'tag_cult'; } // 종교 의식 방관 + if (row.id == 12) { row.left_tag = 'tag_corruption'; } // 장부 은폐 공작 + if (row.id == 14) { row.left_tag = 'tag_alien_contact'; } // 이계 무역로 개방 + if (row.id == 17) { row.left_tag = 'tag_ruthless'; } // 시민 포기 및 폭격 + if (row.id == 22) { row.left_tag = 'tag_alien_contact'; } // 유물 집중 연구 + if (row.id == 29) { row.left_tag = 'tag_alien_contact'; } // 이계 외교 사절 거래 +}); + +const newCsv = Papa.unparse(parsed.data, { + columns: [ + 'id','type','keyword','question','text','flavor', + 'left_text','left_tag','left_res','left_ent','left_pan','left_rsk','left_bud','left_per','left_inf','left_wea','left_for','left_sur', + 'right_text','right_tag','right_res','right_ent','right_pan','right_rsk','right_bud','right_per','right_inf','right_wea','right_for','right_sur' + ] +}); + +fs.writeFileSync('./src/data/cards.csv', newCsv); +console.log('CSV updated with tags'); From c67914c248b9816b770c67c42ca2f12b01709c51 Mon Sep 17 00:00:00 2001 From: Kyoung5seo Date: Thu, 25 Jun 2026 22:51:30 +0900 Subject: [PATCH 4/4] feat: add initial cards dataset to client data directory --- client/src/data/cards.csv | 66 +++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/client/src/data/cards.csv b/client/src/data/cards.csv index 3ad6214..e9cb3ee 100644 --- a/client/src/data/cards.csv +++ b/client/src/data/cards.csv @@ -1,33 +1,33 @@ -id,type,keyword,question,text,flavor,left_text,left_tag,left_res,left_ent,left_pan,left_rsk,left_bud,left_per,left_inf,left_wea,left_for,left_sur,right_text,right_tag,right_res,right_ent,right_pan,right_rsk,right_bud,right_per,right_inf,right_wea,right_for,right_sur -1,일상,요원들의 시위 발생,시위를 어떻게 처리하시겠습니까?,B구역 하급 요원들이 예산 삭감에 반발해 장비 반납 시위를 하고 있습니다.,우리가 세상을 구하는데 월급이 깎인다고요? 촉수에 맞아 죽으나 굶어 죽으나 똑같습니다!,무력 진압,tag_ruthless,1,0,0,0,0,-10,0,0,0,0,요구 수용,,0,0,0,0,-20,0,0,0,0,0 -2,위기,격리실 오염 발생,오염을 어떻게 정화하시겠습니까?,지하 4층 격리실의 문은 닫혀 있습니다만 요원 12명이 남긴 체액의 총량이 인간 12명의 부피를 초과했습니다.,보고서 첨부: 액체화된 직원은 산재 처리가 안 됩니다.,네이팜 소각 강행,,0,0,0,0,0,-30,0,0,0,0,조사팀 파견,,0,1,0,1,0,0,0,0,0,0 -3,일상,촉수 괴물 출현,출동 승인하시겠습니까?,7구역에 촉수 괴물이 출현했습니다. 작전팀이 법인카드 영수증 제출을 누락해서 출동 승인이 반려된 상태입니다.,규정은 규정입니다. 영수증 없이 세계를 구하는 건 용납할 수 없습니다.,내역 위조 후 출동,,0,0,0,1,0,0,-10,0,0,0,규정대로 반려,,1,1,0,0,0,0,0,0,0,0 -4,극비,변이 DNA 이식 제안,실험을 승인하시겠습니까?,진화 미래당이 제안합니다. 요원들에게 괴수의 DNA를 소량 이식하면 작전 효율이 300% 상승합니다. 예산은 우리가 대죠.,인간의 한계는 명확합니다. 조금 징그러워지는 것쯤은 감수해야죠.,실험 승인,tag_madness,0,2,0,0,40,40,0,0,0,0,제안 거절,,1,0,0,0,0,0,0,0,0,0 -5,작전,전술 폭격 건의,폭격을 승인하시겠습니까?,철의 수호당이 민간인 구역에 전술 폭격을 가해 S급 변칙 개체를 제거하자고 건의했습니다.,희생 없는 승리는 없습니다. 소를 위해 대를... 아니 대를 위해 소를 희생하죠.,궤도 폭격 승인,,0,0,0,2,0,0,0,0,2,0,작전 기각,,1,0,0,0,0,0,0,0,0,0 -6,일상,부산물 암시장 매각,매각을 허가하시겠습니까?,차원 무역당 소속 브로커가 처리된 괴수의 부산물을 암시장에 팔아치우자고 속삭입니다.,이 이빨 하나면 국장님 연봉의 10배입니다. 눈 한 번만 딱 감으시죠.,매각 허가,tag_corruption,0,0,0,1,30,0,0,0,0,0,원칙대로 소각,,0,0,0,0,-10,0,0,0,0,0 -7,작전,존재 양지화 프로젝트,프로젝트를 승인하시겠습니까?,대중 매체를 장악하여 I.S.C.O의 존재를 서서히 양지화하는 프로젝트입니다. 막대한 정보 토큰이 소모됩니다.,우리가 이 행성의 진짜 지배자임을 알릴 때가 되었습니다.,감시망 구축,tag_coverup,0,0,0,0,0,0,-40,0,0,2,프로젝트 보류,,1,0,0,0,0,0,0,0,0,0 -8,극비,대규모 도서관 건립,예산을 배정하시겠습니까?,고대 언어 해독을 위해 대규모 도서관 건립이 필요합니다. 지식 보존당이 학자들을 동원할 것입니다.,이해할 수 없는 것을 죽이는 건 야만인이나 하는 짓입니다.,예산 배정,,0,0,0,0,-40,0,40,0,0,0,예산 전액 삭감,,1,0,0,1,0,0,0,0,0,0 -9,위기,이단 색출 마녀사냥,어떻게 개입하시겠습니까?,기술 원리주의자들이 마녀사냥을 시작했습니다. 기구 내 마법 사용 요원들을 이단으로 규정하고 색출 중입니다.,더러운 마법과 변이에 의존해선 안 됩니다. 오직 순수한 인간의 힘으로!,적당히 묵인한다,,1,0,0,0,0,-30,0,0,0,0,군사력으로 제압,,0,0,0,1,0,0,-20,0,0,0 -10,일상,변칙 현상 영상 유출,어떻게 처리하시겠습니까?,한 유튜버가 변칙 현상을 촬영해 업로드했습니다. 침묵의 장막당이 즉각적인 물리적 제거와 기억 소거를 요구합니다.,대중은 진실을 감당할 지능이 없습니다. 무덤까지 비밀을 덮으십시오.,제거 절차 승인,tag_coverup,0,0,0,-1,0,0,-20,0,0,0,영상만 삭제,,0,1,0,0,0,0,0,0,0,0 -11,위기,사이비 종교 인신 공양,어떻게 대응하시겠습니까?,특정 구역의 사이비 종교가 고대 신을 소환하기 위해 시민 100명을 인신 공양하려 합니다. 공존당은 이를 방관하라 합니다.,위대한 그분들이 배가 고프다 하십니다. 조금만 양보하면 평화롭습니다.,군사 개입 지시,,1,0,1,0,0,-40,0,0,0,0,의식 방관,tag_cult,0,2,0,0,0,0,0,0,0,0 -12,위기,의회의 긴급 감사,어떻게 대처하시겠습니까?,의회에서 국장의 예산 전용 의혹을 제기하며 긴급 감사를 통보했습니다. 장부를 조작해야 합니다!,세상을 구하는 데 돈 좀 쓴 게 죄입니까? 빨리 덮을 정보팀을 부르십시오.,은폐 공작 실행,tag_corruption,0,0,0,1,0,0,-40,0,0,0,횡령 사실 인정,,0,0,0,2,0,0,0,0,0,0 -13,일상,연구 부서 파업 조짐,요구를 수용하시겠습니까?,연구 부서에서 초과 근무로 인한 집단 피로를 호소하며 휴가와 특별 보너스를 요구하고 있습니다.,저희도 사람입니다. 괴수 해부하다가 과로사하긴 싫어요.,특별 보너스 지급,,-1,0,0,0,-30,0,0,0,0,0,요구 전면 묵살,,1,0,0,0,0,0,0,0,0,0 -14,작전,이계 무역로 개방,무역로를 개방하시겠습니까?,이계와의 무역로를 임시 개방하여 자원을 조달하자는 안건이 상정되었습니다. 미지의 오염이 우려됩니다.,저 너머의 세계엔 우리가 상상도 못 할 자원이 널려있습니다. 황금알을 낳는 거위죠.,게이트 강제 개방,tag_alien_contact,0,1,0,0,50,0,0,0,0,0,폐쇄 상태 유지,,1,0,0,0,0,0,0,0,0,0 -15,극비,전임 국장 비밀 금고,금고를 개방하시겠습니까?,전임 국장이 남긴 비밀 금고를 발견했습니다. 여는 데 특수 장비와 전문 인력이 필요합니다.,전임 국장님이 숙청당하기 전 남긴 비자금 장부일지도 모릅니다.,강제 개방 지시,,0,0,0,0,20,-30,0,1,0,0,영구 봉인,,0,0,0,0,0,0,0,0,0,0 -16,작전,메가코프 협박 작전,작전을 실행하시겠습니까?,글로벌 메가코프를 협박해 I.S.C.O의 비자금을 세탁하고 대규모 자금을 확보할 기회입니다.,그들이 우리 덕분에 안전하게 사업하는 겁니다. 보호세 좀 걷는 게 뭐 어떻습니까.,작전 실행,,0,0,0,0,0,0,-30,2,0,0,작전 취소,,1,0,0,0,0,0,0,0,0,0 -17,위기,전술 폭격 건의,폭격을 승인하시겠습니까?,제7구역이 S급 변칙 개체에 의해 완전히 붕괴될 위기입니다. 민간인을 포기하고 융단 폭격을 해야 할까요?,시민 10만 명 구출 비용보다 유가족 합의금이 예산을 15% 더 아낄 수 있습니다.,시민 포기 및 폭격,tag_ruthless,0,-1,0,2,0,0,0,0,0,0,결사 방어 명령,,0,0,0,0,-40,-40,0,0,0,0 -18,일상,행정부 파업 예고,어떻게 대응하시겠습니까?,새로운 회식비 규정이 너무 짜다며 행정부에서 파업을 예고했습니다. 괴수 사체 처리 지연으로 악취가 진동합니다.,기구의 절반은 서류 작업으로 돌아갑니다. 그들을 화나게 해선 안 됩니다.,예산 전용으로 무마,,0,0,0,1,-20,0,0,0,0,0,파업 강경 대응,,1,0,0,0,0,0,0,0,0,0 -19,극비,불침번 요원 개발,배치하시겠습니까?,비밀 연구소에서 인공지능과 죽은 요원의 뇌를 결합한 불침번 요원을 개발했습니다.,잠도 안 자고 월급도 안 받습니다. 윤리적 문제만 빼면 완벽한 자산이죠.,실전 즉각 배치,,0,1,0,0,0,0,20,0,1,0,즉각 폐기 처분,,1,0,0,0,-10,0,0,0,0,0 -20,일상,내부 스파이 첩보,어떻게 조사하시겠습니까?,기구 내부에 스파이가 있다는 첩보가 들어왔습니다. 대대적인 사상 검증이 필요할지도 모릅니다.,누군가 정보를 빼돌려 의회에 넘기고 있습니다. 잡히면 믹서기에 넣어야 합니다.,대규모 사찰 시작,,2,0,0,0,0,0,30,0,0,0,증거 부족으로 덮음,,0,0,0,1,0,0,0,0,0,0 -21,작전,비정상적 위기 발생,"국장님, 결단이 필요합니다.",순수 인간당이 변이의 기미가 보이는 요원들을 격리 수용할 대규모 시설 건립을 제안했습니다.,괴물과 싸우다 보면 괴물이 되는 법. 그들이 선을 넘기 전에 가둬야 합니다.,수용소 건립 승인,,0,0,0,0,-40,0,0,0,1,0,제안 단호히 거절,,1,0,0,1,0,0,0,0,0,0 -22,극비,이계의 유물 인양,유물을 어떻게 처리하시겠습니까?,고대 공존당의 사제들이 심해의 유물을 인양했습니다. 만지는 자의 정신을 갉아먹지만 막대한 지식을 줍니다.,약간의 두통만 참으면 이계의 비밀을 모두 알 수 있습니다. 요원 하나쯤 미쳐도 괜찮습니다.,유물 집중 연구,tag_alien_contact,0,1,0,0,0,0,50,0,0,0,유물 파괴 명령,,1,0,0,1,0,0,0,0,0,0 -23,위기,이계의 주시자 출현,대중을 어떻게 통제하시겠습니까?,얇아진 장막 너머로 거대한 눈동자가 며칠째 지구를 주시하고 있습니다. 대중의 공포가 확산되고 있습니다.,하늘을 보지 마십시오. 아니 차라리 눈을 감고 살게 하십시오.,인터넷 전면 차단,,2,0,1,0,0,0,0,0,0,2,진정제 무상 배포,,0,0,0,0,-50,0,0,0,0,0 -24,일상,요원 집단 트라우마,어떻게 지원하시겠습니까?,요원들이 괴수 진압 후 심각한 트라우마에 시달리고 있습니다. 심리 치료 지원이 시급합니다.,밤마다 촉수가 목을 조르는 악몽을 꾼답니다. 차라리 그 부분 기억을 지워버릴까요?,정신과 치료 지원,,0,0,0,0,-20,10,0,0,0,0,트라우마 기억 소거,,0,1,0,1,0,0,0,0,0,0 -25,극비,내부 고발자 발생,어떻게 막으시겠습니까?,의회 의원 중 한 명이 기구의 비리를 폭로하려 합니다. 침묵의 장막당이 사고사 처리를 제안합니다.,국장님 계단에서 구르거나 심장마비가 오는 건 아주 흔한 자연의 섭리입니다.,사고사 위장 지시,,0,0,0,-1,0,0,-30,0,0,0,폭로전 정면 돌파,,0,0,0,2,0,0,0,0,0,0 -26,위기,차원 붕괴 폭탄 오작동,어떻게 대응하시겠습니까?,차원 붕괴 폭탄의 타이머가 오작동을 일으켰습니다! 당장 끄지 않으면 7구역이 통째로 증발합니다.,최저가 입찰로 부품을 사서 폭탄을 만든 결과입니다. 누군가는 책임져야 합니다.,특수 해체팀 투입,,0,0,0,0,0,-40,0,0,0,0,폭발 방관 및 대피,,0,2,0,0,0,0,0,0,0,0 -27,작전,PMC 흡수 합병,결탁하시겠습니까?,군부와 결탁하여 민간 군사 기업(PMC)을 I.S.C.O의 통제 하에 두려는 작전입니다.,돈으로 충성심을 사는 건 가장 안전한 방법입니다. 물론 돈이 많을 때 이야기죠.,결탁 및 흡수 합병,,0,0,0,0,-40,0,0,0,2,0,독자적 노선 유지,,1,0,0,0,0,0,0,0,0,0 -28,작전,대규모 거주 구역 실험장화,제안을 승인하시겠습니까?,변칙 개체 관찰을 위해 1구역을 돔으로 덮고 거대한 실험장으로 만들자는 제안이 올라왔습니다.,시민들이 좀 불편해하겠지만 과학적 진보를 위해 그 정도는 감수해야죠.,돔 건설 강행,,0,1,0,0,-50,0,0,0,0,0,윤리적 이유로 기각,,0,0,0,1,0,0,0,0,0,0 -29,극비,이계 군주의 외교,제안을 수락하시겠습니까?,이계의 군주가 외교 사절을 보내왔습니다. 요원 10명을 노예로 주면 최고급 이계 무기를 주겠다고 합니다.,요원 10명의 생명 가치보다 이계 무기가 가져올 파급력이 월등히 높습니다.,거래 즉시 성사,tag_alien_contact,0,0,0,0,0,-40,0,0,2,0,사절단 전원 사살,,0,1,0,1,0,0,0,0,0,0 -30,일상,믹스 커피 재고 고갈,어떻게 해결하시겠습니까?,국장님 믹스 커피가 다 떨어졌습니다. 이게 무슨 세상의 종말보다 더 큰 위기인 줄 아십니까? 행정부서의 불만이 폭주합니다.,종말을 결재하기 전엔 커피 한 잔의 여유가 필요한 법입니다. 안 그렇습니까?,최고급 원두 지원,,-1,0,0,0,-10,0,0,0,0,0,헛소리 금지령,,1,0,0,0,0,0,0,0,0,0 -31,위기,신화적 존재 강림,어떻게 대적하시겠습니까?,신화적 존재가 깨어나려 합니다. 하늘이 피처럼 붉게 물들었고 요원들은 미쳐가고 있습니다!,최종 결재의 시간입니다. 세상의 물리 법칙을 비틀 것입니까 아니면 피로 막을 것입니까?,현실 조작기 가동,,0,2,0,0,0,0,-50,0,0,0,모든 예비병력 투입,,0,0,0,1,0,-60,0,0,0,0 -,,,,,,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file +id,type,keyword,question,text,flavor,left_text,left_res,left_ent,left_pan,left_rsk,left_bud,left_per,left_inf,left_wea,left_for,left_sur,right_text,right_res,right_ent,right_pan,right_rsk,right_bud,right_per,right_inf,right_wea,right_for,right_sur +1,일상,요원들의 시위 발생,시위를 어떻게 처리하시겠습니까?,B구역 하급 요원들이 예산 삭감에 반발해 장비 반납 시위를 하고 있습니다.,우리가 세상을 구하는데 월급이 깎인다고요? 촉수에 맞아 죽으나 굶어 죽으나 똑같습니다!,무력 진압,1,0,0,0,0,-10,/a,0,0,0,요구 수용,0,0,0,0,-20,0,0,0,0,0 +2,위기,격리실 오염 발생,오염을 어떻게 정화하시겠습니까?,지하 4층 격리실의 문은 닫혀 있습니다만 요원 12명이 남긴 체액의 총량이 인간 12명의 부피를 초과했습니다.,보고서 첨부: 액체화된 직원은 산재 처리가 안 됩니다.,네이팜 소각 강행,0,0,0,0,0,-30,0,0,0,0,조사팀 파견,0,1,0,1,0,0,0,0,0,0 +3,일상,촉수 괴물 출현,출동 승인하시겠습니까?,7구역에 촉수 괴물이 출현했습니다. 작전팀이 법인카드 영수증 제출을 누락해서 출동 승인이 반려된 상태입니다.,규정은 규정입니다. 영수증 없이 세계를 구하는 건 용납할 수 없습니다.,내역 위조 후 출동,0,0,0,1,0,0,-10,0,0,0,규정대로 반려,1,1,0,0,0,0,0,0,0,0 +4,극비,변이 DNA 이식 제안,실험을 승인하시겠습니까?,진화 미래당이 제안합니다. 요원들에게 괴수의 DNA를 소량 이식하면 작전 효율이 300% 상승합니다. 예산은 우리가 대죠.,인간의 한계는 명확합니다. 조금 징그러워지는 것쯤은 감수해야죠.,실험 승인,0,2,0,0,40,40,0,0,0,0,제안 거절,1,0,0,0,0,0,0,0,0,0 +5,작전,전술 폭격 건의,폭격을 승인하시겠습니까?,철의 수호당이 민간인 구역에 전술 폭격을 가해 S급 변칙 개체를 제거하자고 건의했습니다.,희생 없는 승리는 없습니다. 소를 위해 대를... 아니 대를 위해 소를 희생하죠.,궤도 폭격 승인,0,0,0,2,0,0,0,0,2,0,작전 기각,1,0,0,0,0,0,0,0,0,0 +6,일상,부산물 암시장 매각,매각을 허가하시겠습니까?,차원 무역당 소속 브로커가 처리된 괴수의 부산물을 암시장에 팔아치우자고 속삭입니다.,이 이빨 하나면 국장님 연봉의 10배입니다. 눈 한 번만 딱 감으시죠.,매각 허가,0,0,0,1,30,0,0,0,0,0,원칙대로 소각,0,0,0,0,-10,0,0,0,0,0 +7,작전,존재 양지화 프로젝트,프로젝트를 승인하시겠습니까?,대중 매체를 장악하여 I.S.C.O의 존재를 서서히 양지화하는 프로젝트입니다. 막대한 정보 토큰이 소모됩니다.,우리가 이 행성의 진짜 지배자임을 알릴 때가 되었습니다.,감시망 구축,0,0,0,0,0,0,-40,0,0,2,프로젝트 보류,1,0,0,0,0,0,0,0,0,0 +8,극비,대규모 도서관 건립,예산을 배정하시겠습니까?,고대 언어 해독을 위해 대규모 도서관 건립이 필요합니다. 지식 보존당이 학자들을 동원할 것입니다.,이해할 수 없는 것을 죽이는 건 야만인이나 하는 짓입니다.,예산 배정,0,0,0,0,-40,0,40,0,0,0,예산 전액 삭감,1,0,0,1,0,0,0,0,0,0 +9,위기,이단 색출 마녀사냥,어떻게 개입하시겠습니까?,기술 원리주의자들이 마녀사냥을 시작했습니다. 기구 내 마법 사용 요원들을 이단으로 규정하고 색출 중입니다.,더러운 마법과 변이에 의존해선 안 됩니다. 오직 순수한 인간의 힘으로!,적당히 묵인한다,1,0,0,0,0,-30,0,0,0,0,군사력으로 제압,0,0,0,1,0,0,-20,0,0,0 +10,일상,변칙 현상 영상 유출,어떻게 처리하시겠습니까?,한 유튜버가 변칙 현상을 촬영해 업로드했습니다. 침묵의 장막당이 즉각적인 물리적 제거와 기억 소거를 요구합니다.,대중은 진실을 감당할 지능이 없습니다. 무덤까지 비밀을 덮으십시오.,제거 절차 승인,0,0,0,-1,0,0,-20,0,0,0,영상만 삭제,0,1,0,0,0,0,0,0,0,0 +11,위기,사이비 종교 인신 공양,어떻게 대응하시겠습니까?,특정 구역의 사이비 종교가 고대 신을 소환하기 위해 시민 100명을 인신 공양하려 합니다. 공존당은 이를 방관하라 합니다.,위대한 그분들이 배가 고프다 하십니다. 조금만 양보하면 평화롭습니다.,군사 개입 지시,1,0,1,0,0,-40,0,0,0,0,의식 방관,0,2,0,0,0,0,0,0,0,0 +12,위기,의회의 긴급 감사,어떻게 대처하시겠습니까?,의회에서 국장의 예산 전용 의혹을 제기하며 긴급 감사를 통보했습니다. 장부를 조작해야 합니다!,세상을 구하는 데 돈 좀 쓴 게 죄입니까? 빨리 덮을 정보팀을 부르십시오.,은폐 공작 실행,0,0,0,1,0,0,-40,0,0,0,횡령 사실 인정,0,0,0,2,0,0,0,0,0,0 +13,일상,연구 부서 파업 조짐,요구를 수용하시겠습니까?,연구 부서에서 초과 근무로 인한 집단 피로를 호소하며 휴가와 특별 보너스를 요구하고 있습니다.,저희도 사람입니다. 괴수 해부하다가 과로사하긴 싫어요.,특별 보너스 지급,-1,0,0,0,-30,0,0,0,0,0,요구 전면 묵살,1,0,0,0,0,0,0,0,0,0 +14,작전,이계 무역로 개방,무역로를 개방하시겠습니까?,이계와의 무역로를 임시 개방하여 자원을 조달하자는 안건이 상정되었습니다. 미지의 오염이 우려됩니다.,저 너머의 세계엔 우리가 상상도 못 할 자원이 널려있습니다. 황금알을 낳는 거위죠.,게이트 강제 개방,0,1,0,0,50,0,0,0,0,0,폐쇄 상태 유지,1,0,0,0,0,0,0,0,0,0 +15,극비,전임 국장 비밀 금고,금고를 개방하시겠습니까?,전임 국장이 남긴 비밀 금고를 발견했습니다. 여는 데 특수 장비와 전문 인력이 필요합니다.,전임 국장님이 숙청당하기 전 남긴 비자금 장부일지도 모릅니다.,강제 개방 지시,0,0,0,0,20,-30,0,1,0,0,영구 봉인,0,0,0,0,0,0,0,0,0,0 +16,작전,메가코프 협박 작전,작전을 실행하시겠습니까?,글로벌 메가코프를 협박해 I.S.C.O의 비자금을 세탁하고 대규모 자금을 확보할 기회입니다.,그들이 우리 덕분에 안전하게 사업하는 겁니다. 보호세 좀 걷는 게 뭐 어떻습니까.,작전 실행,0,0,0,0,0,0,-30,2,0,0,작전 취소,1,0,0,0,0,0,0,0,0,0 +17,위기,전술 폭격 건의,폭격을 승인하시겠습니까?,제7구역이 S급 변칙 개체에 의해 완전히 붕괴될 위기입니다. 민간인을 포기하고 융단 폭격을 해야 할까요?,시민 10만 명 구출 비용보다 유가족 합의금이 예산을 15% 더 아낄 수 있습니다.,시민 포기 및 폭격,0,-1,0,2,0,0,0,0,0,0,결사 방어 명령,0,0,0,0,-40,-40,0,0,0,0 +18,일상,행정부 파업 예고,어떻게 대응하시겠습니까?,새로운 회식비 규정이 너무 짜다며 행정부에서 파업을 예고했습니다. 괴수 사체 처리 지연으로 악취가 진동합니다.,기구의 절반은 서류 작업으로 돌아갑니다. 그들을 화나게 해선 안 됩니다.,예산 전용으로 무마,0,0,0,1,-20,0,0,0,0,0,파업 강경 대응,1,0,0,0,0,0,0,0,0,0 +19,극비,불침번 요원 개발,배치하시겠습니까?,비밀 연구소에서 인공지능과 죽은 요원의 뇌를 결합한 불침번 요원을 개발했습니다.,잠도 안 자고 월급도 안 받습니다. 윤리적 문제만 빼면 완벽한 자산이죠.,실전 즉각 배치,0,1,0,0,0,0,20,0,1,0,즉각 폐기 처분,1,0,0,0,-10,0,0,0,0,0 +20,일상,내부 스파이 첩보,어떻게 조사하시겠습니까?,기구 내부에 스파이가 있다는 첩보가 들어왔습니다. 대대적인 사상 검증이 필요할지도 모릅니다.,누군가 정보를 빼돌려 의회에 넘기고 있습니다. 잡히면 믹서기에 넣어야 합니다.,대규모 사찰 시작,2,0,0,0,0,0,30,0,0,0,증거 부족으로 덮음,0,0,0,1,0,0,0,0,0,0 +21,작전,비정상적 위기 발생,"국장님, 결단이 필요합니다.",순수 인간당이 변이의 기미가 보이는 요원들을 격리 수용할 대규모 시설 건립을 제안했습니다.,괴물과 싸우다 보면 괴물이 되는 법. 그들이 선을 넘기 전에 가둬야 합니다.,수용소 건립 승인,0,0,0,0,-40,0,0,0,1,0,제안 단호히 거절,1,0,0,1,0,0,0,0,0,0 +22,극비,이계의 유물 인양,유물을 어떻게 처리하시겠습니까?,고대 공존당의 사제들이 심해의 유물을 인양했습니다. 만지는 자의 정신을 갉아먹지만 막대한 지식을 줍니다.,약간의 두통만 참으면 이계의 비밀을 모두 알 수 있습니다. 요원 하나쯤 미쳐도 괜찮습니다.,유물 집중 연구,0,1,0,0,0,0,50,0,0,0,유물 파괴 명령,1,0,0,1,0,0,0,0,0,0 +23,위기,이계의 주시자 출현,대중을 어떻게 통제하시겠습니까?,얇아진 장막 너머로 거대한 눈동자가 며칠째 지구를 주시하고 있습니다. 대중의 공포가 확산되고 있습니다.,하늘을 보지 마십시오. 아니 차라리 눈을 감고 살게 하십시오.,인터넷 전면 차단,2,0,1,0,0,0,0,0,0,2,진정제 무상 배포,0,0,0,0,-50,0,0,0,0,0 +24,일상,요원 집단 트라우마,어떻게 지원하시겠습니까?,요원들이 괴수 진압 후 심각한 트라우마에 시달리고 있습니다. 심리 치료 지원이 시급합니다.,밤마다 촉수가 목을 조르는 악몽을 꾼답니다. 차라리 그 부분 기억을 지워버릴까요?,정신과 치료 지원,0,0,0,0,-20,10,0,0,0,0,트라우마 기억 소거,0,1,0,1,0,0,0,0,0,0 +25,극비,내부 고발자 발생,어떻게 막으시겠습니까?,의회 의원 중 한 명이 기구의 비리를 폭로하려 합니다. 침묵의 장막당이 사고사 처리를 제안합니다.,국장님 계단에서 구르거나 심장마비가 오는 건 아주 흔한 자연의 섭리입니다.,사고사 위장 지시,0,0,0,-1,0,0,-30,0,0,0,폭로전 정면 돌파,0,0,0,2,0,0,0,0,0,0 +26,위기,차원 붕괴 폭탄 오작동,어떻게 대응하시겠습니까?,차원 붕괴 폭탄의 타이머가 오작동을 일으켰습니다! 당장 끄지 않으면 7구역이 통째로 증발합니다.,최저가 입찰로 부품을 사서 폭탄을 만든 결과입니다. 누군가는 책임져야 합니다.,특수 해체팀 투입,0,0,0,0,0,-40,0,0,0,0,폭발 방관 및 대피,0,2,0,0,0,0,0,0,0,0 +27,작전,PMC 흡수 합병,결탁하시겠습니까?,군부와 결탁하여 민간 군사 기업(PMC)을 I.S.C.O의 통제 하에 두려는 작전입니다.,돈으로 충성심을 사는 건 가장 안전한 방법입니다. 물론 돈이 많을 때 이야기죠.,결탁 및 흡수 합병,0,0,0,0,-40,0,0,0,2,0,독자적 노선 유지,1,0,0,0,0,0,0,0,0,0 +28,작전,대규모 거주 구역 실험장화,제안을 승인하시겠습니까?,변칙 개체 관찰을 위해 1구역을 돔으로 덮고 거대한 실험장으로 만들자는 제안이 올라왔습니다.,시민들이 좀 불편해하겠지만 과학적 진보를 위해 그 정도는 감수해야죠.,돔 건설 강행,0,1,0,0,-50,0,0,0,0,0,윤리적 이유로 기각,0,0,0,1,0,0,0,0,0,0 +29,극비,이계 군주의 외교,제안을 수락하시겠습니까?,이계의 군주가 외교 사절을 보내왔습니다. 요원 10명을 노예로 주면 최고급 이계 무기를 주겠다고 합니다.,요원 10명의 생명 가치보다 이계 무기가 가져올 파급력이 월등히 높습니다.,거래 즉시 성사,0,0,0,0,0,-40,0,0,2,0,사절단 전원 사살,0,1,0,1,0,0,0,0,0,0 +30,일상,믹스 커피 재고 고갈,어떻게 해결하시겠습니까?,국장님 믹스 커피가 다 떨어졌습니다. 이게 무슨 세상의 종말보다 더 큰 위기인 줄 아십니까? 행정부서의 불만이 폭주합니다.,종말을 결재하기 전엔 커피 한 잔의 여유가 필요한 법입니다. 안 그렇습니까?,최고급 원두 지원,-1,0,0,0,-10,0,0,0,0,0,헛소리 금지령,1,0,0,0,0,0,0,0,0,0 +31,위기,신화적 존재 강림,어떻게 대적하시겠습니까?,신화적 존재가 깨어나려 합니다. 하늘이 피처럼 붉게 물들었고 요원들은 미쳐가고 있습니다!,최종 결재의 시간입니다. 세상의 물리 법칙을 비틀 것입니까 아니면 피로 막을 것입니까?,현실 조작기 가동,0,2,0,0,0,0,-50,0,0,0,모든 예비병력 투입,0,0,0,1,0,-60,0,0,0,0 +,,,,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file