Phase C: 냥코인 경제 — 장터·창고 상한·입양 비용·즉시 완공
- 냥코인(🪙) 재화 + HUD 표시, 복덩이 패시브 실효과(일하는 중 평균 100초당 1) - 장터 건물(목재 120, 회관 Lv2): 판매 품목 선택 → 분당 5개 자동 판매 가격: 생선 1·목재 2·돌 3·구이 4·훈제 10 — 가공할수록 이득 - 창고 상한: 자원별 기본 500, 창고 건물(+500)로 확장. 가득 차면 회수 차단 (부분 회수·"창고 가득" 피드백), 건물 적재도 150 한도로 생산 정지 - 입양 비용: 3마리째부터 100+(n-2)×50, 모달에 비용 표시. 재추첨 🎲 30코인 - 즉시 완공: 건설 중 패널에서 남은 10초당 1코인 - 요리 판매는 부엌 선반에서 차감 — "먹일까 팔까" 선택 완성 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
이 커밋은 다음에 포함됨:
+44
-1
@@ -123,6 +123,8 @@ export const FOOTPRINTS: Record<string, { w: number; h: number }> = {
|
||||
kitchen: { w: 2, h: 2 },
|
||||
cat_house: { w: 2, h: 2 },
|
||||
sun_deck: { w: 2, h: 2 },
|
||||
market: { w: 2, h: 2 },
|
||||
warehouse: { w: 2, h: 2 },
|
||||
};
|
||||
export const footprintOf = (type: string) => FOOTPRINTS[type] ?? { w: 1, h: 1 };
|
||||
|
||||
@@ -149,7 +151,15 @@ export const APT_POINT_EVERY = 3; // 3레벨마다 적성 포인트 1
|
||||
|
||||
export interface BuildDef {
|
||||
id: string; // 건물 인스턴스 id (단일 건설)
|
||||
type: "dock" | "lumberyard" | "quarry" | "kitchen" | "cat_house" | "sun_deck";
|
||||
type:
|
||||
| "dock"
|
||||
| "lumberyard"
|
||||
| "quarry"
|
||||
| "kitchen"
|
||||
| "cat_house"
|
||||
| "sun_deck"
|
||||
| "market"
|
||||
| "warehouse";
|
||||
kind?: "work" | "passive"; // passive: 고양이 배치 없음 (기본 work)
|
||||
name: string;
|
||||
emoji: string;
|
||||
@@ -193,6 +203,16 @@ export const BUILD_DEFS: BuildDef[] = [
|
||||
aptitude: "grooming", maxSlots: 0, cost: { wood: 120, stone: 40 }, reqHallLv: 3, buildTime: 90,
|
||||
desc: "따끈한 햇살 아래 뒹굴뒹굴. 마을 전체의 행복도 회복이 1.5배 빨라집니다.",
|
||||
},
|
||||
{
|
||||
id: "market_1", type: "market", name: "장터", emoji: "🏪", kind: "passive",
|
||||
aptitude: "crafting", maxSlots: 0, cost: { wood: 120 }, reqHallLv: 2, buildTime: 60,
|
||||
desc: "자원과 요리를 냥코인으로 바꿔줍니다. 판매 품목을 정하면 분당 5개씩 자동 판매!",
|
||||
},
|
||||
{
|
||||
id: "warehouse_1", type: "warehouse", name: "창고", emoji: "📦", kind: "passive",
|
||||
aptitude: "crafting", maxSlots: 0, cost: { wood: 200, stone: 100 }, reqHallLv: 3, buildTime: 120,
|
||||
desc: "자원 보관 상한을 +500 늘려줍니다. 꽉 찬 창고는 생산을 멈추게 해요.",
|
||||
},
|
||||
];
|
||||
|
||||
// ---------- 꾸미기 (바닥 장식) ----------
|
||||
@@ -249,6 +269,29 @@ export const mealCap = (kitchenLv: number) =>
|
||||
export const EAT_THRESHOLD = 65; // 이 포만도 이하면 먹으러 감
|
||||
export const FULLNESS_DECAY_PER_SEC = 0.03; // × 식욕 수치
|
||||
|
||||
// ---------- 경제 (Phase C) ----------
|
||||
|
||||
// 판매가 (개당 냥코인)
|
||||
export const SELL_PRICES: Record<string, number> = {
|
||||
fish: 1,
|
||||
wood: 2,
|
||||
stone: 3,
|
||||
};
|
||||
// 요리 판매가 (레시피 키 기준)
|
||||
export const MEAL_PRICES: Record<string, number> = {
|
||||
grilled_fish: 4,
|
||||
smoked_fish: 10,
|
||||
};
|
||||
export const MARKET_RATE_PER_SEC = 5 / 60; // 분당 5개 판매
|
||||
export const BASE_STORAGE = 500; // 자원별 기본 보관 상한
|
||||
export const WAREHOUSE_STORAGE = 500; // 창고 1채당 추가 상한
|
||||
export const BUILDING_STORE_CAP = 150; // 건물별 산출물 적재 한도 (가득 차면 생산 정지)
|
||||
export const ADOPT_FREE_CATS = 2; // 처음 2마리는 무료
|
||||
export const ADOPT_BASE_COST = 100;
|
||||
export const ADOPT_COST_PER_CAT = 50;
|
||||
export const REROLL_COST = 30; // 입양 재추첨
|
||||
export const RUSH_COST_PER_10S = 1; // 즉시 완공: 남은 10초당 1코인
|
||||
|
||||
// ---------- 체력·행복도 (Phase B) ----------
|
||||
|
||||
export const ENERGY_DRAIN_PER_SEC = 2 / 60; // 작업 중 체력 소모 (분당 2)
|
||||
|
||||
새 이슈에서 참조
사용자 차단