Commit Graph
100 Commits
Author SHA1 Message Date
Hide_D f58b8b2553 feat: remove VolunteerRecruit module and related imports 2026-01-02 18:35:58 +00:00
Hide_D 10ff64946e feat: add non-aggression proposal and acceptance actions with constraints 2026-01-02 18:33:24 +00:00
Hide_D cb86a47f94 feat: implement diplomacy system with state management and processing logic 2026-01-02 17:48:44 +00:00
Hide_D f137c5be65 Refactor action effects to use direct state mutations and logging
- Removed the use of createGeneralPatchEffect and createLogEffect in various action definitions.
- Replaced effects with direct mutations of the state for general and city entities.
- Updated logging to use context.addLog for better clarity and consistency.
- Ensured that all actions now return an empty effects array after processing.
2026-01-02 10:25:33 +00:00
Hide_D 18247eeff4 feat: add immer dependency and integrate draft handling in engine actions 2026-01-02 09:38:05 +00:00
Hide_D 56495c65e3 feat: add city, diplomacy, general, nation, and helper constraints
- Implemented various constraints for city management including occupied, supplied, and capacity checks.
- Added diplomacy constraints to manage relationships between nations.
- Introduced general constraints to validate general states and resources.
- Created helper functions for reading entities and resolving IDs.
- Enhanced the overall logic for managing game state and constraints.
2026-01-02 06:06:33 +00:00
Hide_D 6d421e81a0 feat: Refactor General and Nation Turn Command types and importers for improved structure and consistency 2026-01-01 19:12:50 +00:00
Hide_D bfbcb4472e feat: Implement general and nation turn commands with command specifications
- Added command specifications for various general turn commands including talent scouting, appointments, and military actions.
- Introduced command specifications for nation turn commands such as assignments and declarations of war.
- Created a command environment interface to encapsulate command-related parameters.
- Developed a command profile loader to manage default and custom command profiles.
- Established a reserved turn action context to facilitate command execution with necessary context data.
- Updated the default command profile JSON to include new commands and their configurations.
2026-01-01 15:17:30 +00:00
Hide_D 49942cea5e feat: Add WallRepairActionDefinition and enhance GatewayProfileClient for improved database interactions 2026-01-01 11:53:21 +00:00
Hide_D cce57d0fea feat: Add new general actions and constraints for game mechanics
- Introduced new general turn commands: 'che_거병', 'che_임관', 'che_건국', 'che_훈련', 'che_사기진작', 'che_요양', 'che_출병', 'che_주민선정', 'che_농지개간', 'che_기술연구', 'che_치안강화', 'che_수비강화', 'che_성벽보수'.
- Implemented action definitions for each new command, including constraints and resolution logic.
- Added new constraints: 'beNeutral', 'remainCityCapacityByMax', 'existsDestNation'.
- Enhanced city development actions for '농지개간', '성벽보수', and '수비강화'.
- Created a new action for declaring war: 'che_선전포고' with appropriate constraints.
- Updated existing action definitions to accommodate new game mechanics and ensure proper functionality.
2026-01-01 11:49:15 +00:00
Hide_D 8c9f61700e feat: Enhance Gateway Orchestrator with preopen and open scheduling, add error handling for paused states, and implement new profile management features 2026-01-01 11:27:10 +00:00
Hide_D e64962c3fd feat: Add Git workspace management for build profiles and implement workspace cleanup 2026-01-01 10:55:07 +00:00
Hide_D b46249dcbc feat: Implement admin router and orchestrator for managing profiles and builds
- Added `adminRouter` for handling profile management, including listing, upserting, and updating statuses.
- Introduced `BuildRunner` interface and `PnpmBuildRunner` class for executing build commands.
- Created `GatewayOrchestrator` to manage profile states, reconcile processes, and handle build queues.
- Implemented `Pm2ProcessManager` for managing processes using PM2.
- Developed `GatewayProfileRepository` for interacting with the database to manage profiles.
- Added utility functions for resolving workspace roots and managing process definitions.
- Included tests for profile reconciliation logic.
2026-01-01 10:38:28 +00:00
Hide_D 79819c4a1b feat: update documentation with current implementation details and planned monorepo layout 2025-12-30 13:39:43 +00:00
Hide_D f6fe5b0caf feat: update architecture TODOs with detailed implementation suggestions for turn engine and related systems 2025-12-30 13:33:16 +00:00
Hide_D cc78319948 feat: refactor database client types and update related logic across game engine modules 2025-12-30 12:40:55 +00:00
Hide_D 4de688d642 feat(battle-sim): add battle simulation scripts and refactor schemas 2025-12-30 11:27:37 +00:00
Hide_D 56e662a7db feat(battle-sim): implement battle simulation logic and metrics tracking
- Added WarBattleMetrics interface to track attacker and defender skills during battles.
- Enhanced WarUnit class with method to log activated skills.
- Introduced environment setup for battle simulation, including unit set loading and configuration resolution.
- Developed in-memory and Redis transport layers for handling battle simulation requests and results.
- Created types and interfaces for battle simulation payloads and responses.
- Implemented battle simulation processing logic, including logging and skill tracking.
- Added tests for battle simulation processor to ensure functionality and correctness.
2025-12-30 11:17:28 +00:00
Hide_D 97439f64a9 feat: add aftermath module with war aftermath logic and related types 2025-12-30 10:40:30 +00:00
Hide_D b0c4f84656 feat: implement war engine with unit types, battle mechanics, and logging
- Added types for war engine configuration, battle input, and outcomes.
- Implemented core war unit classes for generals and cities, including combat logic.
- Introduced utility functions for managing meta data and conflict resolution.
- Developed tests for war triggers and battle resolution scenarios.
2025-12-30 10:25:48 +00:00
Hide_D d599d94a7b feat: add atmos property to General entity and update related logic
- Added `atmos` property to the `General` interface in `entities.ts`.
- Initialized `atmos` to 0 in the `buildGeneralSeeds` function in `bootstrap.ts`.
- Updated exports in `index.ts` to include `unitSet.js`.
- Introduced new types for crew types and their requirements in `types.ts`.
- Implemented `unitSetLoader.ts` for loading unit set definitions from JSON files.
- Created `che_징병.ts` action for recruiting crew types with cost and training calculations.
- Developed `unitSet.ts` for handling crew type availability and requirements.
- Added tests for crew type availability and unit set parsing in `crewType.test.ts`.
2025-12-30 09:45:51 +00:00
Hide_D e3bbbd3718 feat: refactor DatabaseClient interface and add db module 2025-12-30 08:38:45 +00:00
Hide_D c5cba31418 feat: add siegetank unit set and implement messaging system
- Created a new unit set for "siegetank" with various crew types and their attributes.
- Implemented a messaging system with types, payloads, and storage functionality.
- Added tests for the messaging system to ensure correct behavior for different message types (private, national, public, diplomacy).
2025-12-30 08:19:10 +00:00
Hide_D 519a0a76cb feat: add troop model and integrate troop handling in game logic 2025-12-30 05:41:16 +00:00
Hide_D 648d186428 refactor: simplify imports for game session token and turn command modules 2025-12-30 04:54:39 +00:00
Hide_D 6fe6d54432 feat: add GeneralTurn and NationTurn models with CRUD operations
- Introduced GeneralTurn and NationTurn models in Prisma schema.
- Implemented reserved turns management in the game API, including loading, setting, and shifting turns for generals and nations.
- Created unit tests for reserved turns functionality to ensure correctness.
- Developed reserved turn handler to process actions based on reserved turns.
- Established in-memory storage for reserved turns with persistence to the database.
2025-12-30 04:45:07 +00:00
Hide_D e4c57e2467 feat: add date-fns library for improved date handling and validation 2025-12-30 04:05:12 +00:00
Hide_D 7b719f00de chore: update package dependencies for improved compatibility and performance 2025-12-30 03:58:18 +00:00
Hide_D f32f9b10c2 feat: add command table functionality and integrate logic for turn commands 2025-12-30 03:02:25 +00:00
Hide_D 0c1e27ee4a feat: integrate Kakao OAuth for user authentication and enhance user repository
- Added Kakao OAuth client implementation for handling authentication flows.
- Updated user repository to support OAuth-based user creation and retrieval.
- Introduced Redis-based session management for OAuth sessions.
- Enhanced in-memory user repository to handle OAuth user data.
- Updated environment configuration files to include new OAuth settings.
- Modified API routes to support Kakao login and registration flows.
- Added Prisma schema updates for user model to accommodate OAuth fields.
- Implemented tests for the new authentication flow and user repository methods.
2025-12-30 02:19:32 +00:00
Hide_D f01a21f2f0 feat: implement user session management with Redis and add game token verification 2025-12-30 01:55:40 +00:00
Hide_D 29523ef22f feat: implement Redis session management and user authentication flow 2025-12-30 01:38:09 +00:00
Hide_D 1688ca0d23 feat: implement game API with TRPC and Redis transport
- Added GameApiConfig interface and configuration resolver from environment variables.
- Created GameApiContext for managing database and transport dependencies.
- Implemented InMemoryTurnDaemonTransport for testing purposes.
- Developed RedisTurnDaemonTransport for command and status handling via Redis streams.
- Defined TurnDaemonStreamKeys for namespacing Redis streams by profile.
- Established TRPC router with endpoints for health check, world state retrieval, and turn daemon commands (run, pause, resume, status).
- Integrated Fastify server with TRPC and Redis transport.
- Added unit tests for router functionality and stream key generation.
- Configured Vitest for testing environment.
2025-12-30 01:04:52 +00:00
Hide_D d6c4a4ae25 docs: update README to clarify npm package version maintenance during initial development 2025-12-30 00:19:15 +00:00
Hide_D a650fc2daa feat: add JosaUtil for Korean grammatical handling in 의병모집 and 인재탐색 actions 2025-12-30 00:11:25 +00:00
Hide_D 30de11797b feat: update typecheck script for incremental compilation and add JosaUtil for Korean postposition handling 2025-12-29 12:50:45 +00:00
Hide_D cd43445e4b feat: add 발령 (Assignment) and 포상 (Award) actions for generals, and implement 휴식 (Rest) action 2025-12-29 12:26:58 +00:00
Hide_D 7f73110621 feat: update typecheck script to use incremental compilation 2025-12-29 12:11:10 +00:00
Hide_D 69be22749d feat: add 휴식 (Rest) action for generals 2025-12-29 12:11:05 +00:00
Hide_D 0e0ae82e03 feat: add 인재탐색 및 의병모집 기능 구현 2025-12-29 11:59:00 +00:00
Hide_D ee719df8fe feat: add 화계 (Fire Attack) action for generals
- Implemented the 화계 action in the general turn actions, allowing generals to perform sabotage on enemy cities.
- Created CommandResolver and ActionResolver classes to handle the logic and resolution of the action.
- Added necessary constraints to ensure valid conditions for executing the action, including checks for city occupation and resource requirements.
- Updated the general action index to include the new 화계 action.
- Introduced evaluation functions for constraints to manage action prerequisites effectively.
- Enhanced logging for successful and failed attempts of the 화계 action, providing detailed feedback on outcomes.
2025-12-29 09:38:32 +00:00
Hide_D 27cc016804 feat: 로그 시스템 구현 및 관련 클래스 추가 2025-12-29 08:40:01 +00:00
Hide_D e0eb768e2e feat: 턴 다이아몬드 CLI 추가 및 상태 관리 개선 2025-12-29 07:50:35 +00:00
Hide_D 86c5d5f111 feat: 턴 처리 및 데이터베이스 연동을 위한 새로운 클래스 및 인터페이스 추가 2025-12-29 07:41:43 +00:00
Hide_D b11a546ffa feat: 게임 엔진 리소스 복사 기능 추가 2025-12-29 06:13:07 +00:00
Hide_D 754089f69f feat: vitest를 사용하여 테스트 환경 설정 2025-12-29 06:08:26 +00:00
Hide_D 7a99fd2450 feat: add @types/pg dependency and update pnpm lockfile 2025-12-29 06:00:50 +00:00
Hide_D 124b070dc9 feat: add initial Pokémon map data and loader
- Introduced a new JSON file `map_pokemon_v1.json` containing detailed city data for the Pokémon map, including attributes like population, agriculture, commerce, and connections.
- Implemented a map loader in `mapLoader.ts` to read and parse map definitions from JSON files, allowing for dynamic loading of map data.
- Created a script `generate-map-data.mjs` to convert legacy PHP map data into the new JSON format, ensuring compatibility with the updated map system.
2025-12-29 05:59:15 +00:00
Hide_D 9fe4c8f96c feat: refactor database connection handling and add legacy map loading functionality
- Updated check-connections.mts to use Prisma with PostgreSQL adapter.
- Introduced databaseUrl.ts for resolving database URLs from environment variables.
- Added legacyMapLoader.ts to load and parse legacy map data.
- Implemented scenarioSeeder.ts to seed scenario data into the database.
- Created tests for scenario seeding in scenarioSeeder.test.ts.
- Configured Prisma datasource in prisma.config.ts to support dynamic database URLs.
2025-12-29 05:49:25 +00:00
Hide_D 7124483001 feat: 상업 투자 관련 로직 및 효과 추가, 엔진에서 더러운 상태 추적 기능 개선 2025-12-28 18:21:47 +00:00
Hide_D b927a30e97 feat: TurnDaemonLifecycle 및 관련 타입 개선, getNextTickTime 추가 2025-12-28 18:07:05 +00:00
Hide_D 87327cb5b5 feat: DomesticCommandLoader 및 GeneralAction 관련 타입 개선 2025-12-28 17:27:49 +00:00
Hide_D bfe28773e9 feat: 엔진 및 턴 스케줄 관련 인터페이스 및 로직 추가 2025-12-28 17:21:58 +00:00
Hide_D 8a2fc4fec5 feat: 일반 역할 및 슬롯 인터페이스 추가, 시나리오 파싱 및 부트스트랩 로직 개선 2025-12-28 17:11:05 +00:00
Hide_D 62c1c0f9c6 feat: vite-tsconfig-paths 추가로 타입 경로 설정 개선 2025-12-28 16:43:33 +00:00
Hide_D 45c238ab38 feat: crewTypeId 및 defaultCrewTypeId 추가로 시나리오 부트스트랩 개선 2025-12-28 16:40:28 +00:00
Hide_D f7d9d423fa feat: tsconfig 및 package.json 수정으로 타입 체크 및 빌드 설정 개선 2025-12-28 16:32:43 +00:00
Hide_D 54252dc6b4 feat: 월드 스냅샷 및 시나리오 부트스트랩 관련 타입 및 로더 구현 2025-12-28 15:26:25 +00:00
Hide_D a4c74b860e feat: 각 패키지에 타입 체크 스크립트 추가 및 빌드 스크립트 수정 2025-12-28 15:03:38 +00:00
Hide_D 66ebf6b76e feat: parseScenarioEnvironment에서 scenarioEffect를 조건부로 추가하도록 수정 2025-12-28 14:59:44 +00:00
Hide_D 174c171e10 feat: zod를 사용하여 외부 JSON 데이터 입력 검증 추가 및 스키마 리팩토링 2025-12-28 14:53:52 +00:00
Hide_D ed9ee671a7 Scenario 복사 2025-12-28 14:48:09 +00:00
Hide_D afe5cadd9f feat(wip): 시나리오 로더 및 파서 구현, 관련 타입 추가 2025-12-28 14:42:23 +00:00
Hide_D fab128943c feat: TurnDaemonLifecycle 테스트 추가 2025-12-28 14:24:30 +00:00
Hide_D 68e8a89c89 feat: runtime 문서에 tsdown 및 Vite 사용 추가 2025-12-28 13:18:09 +00:00
Hide_D e99c7b2c83 feat: update build and dev scripts to use tsdown; add tsdown config file
- Changed build script in packages/logic/package.json to use tsdown instead of tsc.
- Updated dev script in packages/logic/package.json to use tsdown with watch mode.
- Added tsdown as a devDependency in packages/logic/package.json.
- Updated pnpm-lock.yaml to include tsdown and its dependencies across various apps.
- Created a new tsdown.config.ts file to define build configuration for the workspace.
2025-12-28 13:16:07 +00:00
Hide_D 962b6dc15a fix: PrismaClientOptions 타입 참조 수정 및 RedisConnector의 client 타입 변경 2025-12-28 13:01:13 +00:00
Hide_D 4dbbcca9d9 feat: RNG 테스트 파일 추가 및 기존 테스트 파일 삭제 2025-12-28 12:51:57 +00:00
Hide_D cbea41ffbc feat: 게임 엔진에 Clock 인터페이스 및 관련 클래스 추가, 테스트 케이스 작성 2025-12-28 12:48:13 +00:00
Hide_D 4f69d31fb1 feat: 개발 체크리스트 추가 및 TypeScript 타입 검사 방법 명시 2025-12-28 12:40:01 +00:00
Hide_D 4cab4d55c5 feat: tsconfig 설정 개선 및 경로 추가 2025-12-28 12:37:49 +00:00
Hide_D fa22562bb1 refactor: migrate RNG and utility functions to common package
- Removed RNG interface and related utility classes from logic package.
- Added RNG interface and utility classes in common package.
- Implemented various RNG classes (ConstantRNG, MidpointRNG, SineRNG, SequenceRNG) in common package.
- Updated conversion utilities for BytesLike to ArrayBuffer and Uint8Array in common package.
- Adjusted tests to import RNG utilities from the new common package.
- Updated vitest configuration to resolve common package imports.
2025-12-28 12:27:47 +00:00
Hide_D 27b243b121 feat: infra 패키지 추가 및 PostgreSQL, Redis 커넥터 구현 2025-12-28 12:18:42 +00:00
Hide_D 77e5b251ef feat: TypeScript 타입 정의 추가 및 환경 파일 로드 기능 개선 2025-12-28 12:13:50 +00:00
Hide_D 04c250fed5 feat: 데이터베이스 및 Redis 연결 테스트 스크립트 추가 2025-12-28 12:10:39 +00:00
Hide_D 2caba52b7a feat: 환경 설정 파일 추가 및 docker-compose.yml 수정 2025-12-28 11:57:27 +00:00
Hide_D c4904e620b feat: docker-compose.yml에서 PostgreSQL 데이터 볼륨 이름 변경 2025-12-28 11:47:56 +00:00
Hide_D 0ef2b45523 feat: .gitignore에 docker-compose.override.yml 추가 및 .env.example과 docker-compose.yml 파일 생성 2025-12-28 11:34:20 +00:00
Hide_D 6a3578180a feat: .gitignore에 개발용 임시 코드 추가 2025-12-28 11:18:27 +00:00
Hide_D 05d8ebe3d3 feat: ManualClock 및 StepClock 클래스 추가와 관련 테스트 케이스 작성
feat: vitest를 devDependencies에 추가하고 테스트 스크립트 수정
docs: 테스트에서 제어 가능한 시계 사용에 대한 내용 추가
2025-12-28 11:14:34 +00:00
Hide_D d13898e486 feat: 게임 엔진 생명주기 및 스케줄링 관련 클래스 추가 2025-12-28 11:09:18 +00:00
Hide_D 50ef39be4e feat: TestRNG 클래스 추가 및 관련 테스트 케이스 작성 2025-12-28 11:02:45 +00:00
Hide_D dfad37536b feat: 테스트 정책 문서 추가 및 각 테스트 레이어에 대한 전략 정리 2025-12-27 13:26:54 +00:00
Hide_D 14a18cfb22 feat: 모든 패키지의 package.json에 "type": "module" 추가 및 tsconfig.base.json의 모듈 설정을 NodeNext로 변경 2025-12-27 05:49:00 +00:00
Hide_D 4eac1e45ba docs: AGENTS.md, README.md, and architecture documents 업데이트하여 서버+시나리오 프로파일 개념 정립 2025-12-27 05:46:15 +00:00
Hide_D 5666d705e7 docs: README.md 업데이트 및 프로젝트 목표 및 구조 설명 추가 2025-12-27 05:32:53 +00:00
Hide_D df5ce9a568 feat: pnpm-lock 및 pnpm-workspace 구성 업데이트를 통한 Prisma 및 Redis 의존성 추가 2025-12-27 05:29:11 +00:00
Hide_D d340a4cad1 feat: Prisma 및 Redis 클라이언트 연결을 위한 구성 및 커넥터 추가 2025-12-27 05:25:20 +00:00
Hide_D 5e1e6c51ed fix: 수정된 타입 정의 및 불필요한 제네릭 제거 2025-12-27 05:15:31 +00:00
Hide_D 297baea126 fix: 수정된 타입 정의 및 불필요한 캐스팅 제거 2025-12-27 05:11:46 +00:00
Hide_D 8b95824cb6 Refactor code structure for improved readability and maintainability 2025-12-27 05:09:15 +00:00
Hide_D 2d80d53b70 feat: Update module exports and enhance TypeScript configuration 2025-12-27 04:55:54 +00:00
Hide_D b3875a111f feat: Implement LiteHashDRBG and RNG utilities
- Added BytesLike type for handling various byte representations.
- Implemented LiteHashDRBG class for SHA-512 based deterministic random bit generator.
- Created RNG interface defining methods for random number generation.
- Developed RandUtil class providing utility functions for RNG operations.
- Added conversion functions for BytesLike to ArrayBuffer and Uint8Array.
- Implemented comprehensive tests for RNG functionality and expected behaviors.
- Configured Vitest for testing environment setup.
2025-12-27 04:45:59 +00:00
Hide_D 206aa64c64 트리거 시스템 및 랜덤 생성기 인터페이스 추가: 기본 구조 정의 2025-12-27 04:36:38 +00:00
Hide_D b42d87a51b 도메인 엔티티 및 포트 추가: 기본 모델 및 인터페이스 정의 2025-12-27 04:28:00 +00:00
Hide_D b445a6df68 프로젝트 초기 설정: 패키지 및 구성 파일 추가 2025-12-27 04:19:37 +00:00
Hide_D af35491b2d 문서 수정: Redis 통신 및 인증 관리에 대한 권장 사항 추가 2025-12-27 04:04:56 +00:00
Hide_D b7faa8436e 문서 추가: PostgreSQL 스키마 제안서 작성 및 메타 필드 정책 설명 2025-12-27 03:55:47 +00:00
Hide_D f1af2717c3 문서 수정: 레거시 엔진 문서에 aux 및 penalty 동작 관련 내용 추가 2025-12-27 03:49:08 +00:00
Hide_D ef07f7f7d7 문서 수정: 프로젝트 명명 규칙 추가 및 관련 정보 업데이트 2025-12-27 03:30:48 +00:00