← スキル一覧に戻る

conflict-game
by rshaham
⭐ 0🍴 0📅 2026年1月24日
SKILL.md
name: conflict-game description: "Game design rules, mechanics, and conventions for the Conflict: Middle East Political Simulator remake" globs:
- "src/engine/**/*.ts"
- "src/store/**/*.ts"
- "data/*.yaml"
- "src/types/**/*.ts"
Conflict Game Design Skill
This skill provides context for working on the Conflict remake project. Always consult the design documents in /mnt/user-data/outputs/ for authoritative details.
Core Documents
| Document | Purpose |
|---|---|
docs\conflict-remake-gdd-v2.md | Complete game design, all systems |
docs\conflict-remake-tech-spec.md | Technical architecture, types |
docs\conflict-remake-weapons-detail.md | 26 weapons with 3D specs |
docs\conflict-remake-art-assets.md | Visual/audio requirements |
docs\conflict-remake-research.md | Original game research |
Architecture Rules
Engine Purity (CRITICAL)
All code in src/engine/ MUST be:
- Pure TypeScript with NO React dependencies
- Pure functions:
(state, action) => newState - No side effects, no async operations
- No imports from
src/components/orsrc/screens/
// ✅ CORRECT - Pure engine function
export function calculateDiplomaticShift(
current: RelationshipLevel,
action: DiplomaticAction,
leaderTraits: LeaderTraits
): RelationshipLevel {
// Pure calculation
}
// ❌ WRONG - React dependency in engine
import { useGameStore } from '../store/gameStore'; // NEVER DO THIS
Data-Driven Design
Game rules live in YAML files, not hardcoded:
data/countries.yaml- Country definitions, borders, starting statesdata/weapons.yaml- All 26 weapons with stats, countersdata/enums.yaml- Relationship levels, stability levels, etc.data/combat.yaml- Combat resolution tablesdata/leaders.yaml- Leader personalities and traits
When adding new mechanics, prefer YAML configuration over code changes.
Game Mechanics Quick Reference
Relationship Levels (9 total, best → worst)
military_pact- Can coordinate military actionsprofitable- Trade bonusesbeneficial- Minor bonusesfavourable- Neutral positivesatisfactory- True neutralcool- Neutral negativelamentable- Trade penaltieshostile- War possiblewar- Active conflict
Stability Levels (6 total)
very_solid- Maximum stabilitysolid- Normal operationsgood- Minor concernsweak- Extreme measures availablecritical- Collapse imminentcollapse- Country defeated
Countries
- Player: Israel
- Neighbors (must defeat): Egypt, Syria, Jordan, Lebanon
- Regional: Iraq, Iran, Libya
- Superpowers (not directly in game): USA, USSR
Win/Lose Conditions
- Win: All 4 neighbors reach
collapsestability - Lose: Israel collapses, nuclear holocaust, impeachment (Knesset ≥10), assassination
Turn Phases
- News (AI headlines)
- Events (if triggered)
- Diplomatic
- Intelligence
- Military (point of no return)
- End Turn → Resolution
Combat System
Weapon Categories
infantry- Basic ground forceslight_armor- M60, Chieftain, AMX-30, T-62main_battle_tank- M1A1, Challenger, Leclerc, T-72attack_helicopter- Apache, Lynx, Tiger, Hindsam_battery- Patriot, Rapier, Crotale, S-300fighter- F-15, F-16, Mirage 2000, MiG-29sead- F-4G Wild Weasel, Su-24M
Combat Resolution (4 Phases)
- Air Superiority - Fighters vs fighters
- SEAD - Suppress enemy SAMs
- Close Air Support - Attack helicopters vs ground
- Ground Battle - Armor vs armor with infantry
Rock-Paper-Scissors Counters
- SAMs counter aircraft
- SEAD counters SAMs
- Fighters counter SEAD
- Attack helicopters counter armor
- Main battle tanks counter light armor
TypeScript Conventions
Type Definitions
// Use union types for enums
type CountryId = 'israel' | 'egypt' | 'syria' | 'jordan' | 'lebanon' | 'iraq' | 'iran' | 'libya';
type RelationshipLevel = 'military_pact' | 'profitable' | ... | 'war';
// Use interfaces for state objects
interface CountryState {
id: CountryId;
stability: StabilityLevel;
leader: LeaderState;
military: MilitaryState;
}
Zustand Store Pattern
// Actions are thin wrappers around engine functions
endTurn: async () => {
const newState = GameEngine.resolveTurn(get().gameState);
set({ gameState: newState });
}
Common Mistakes to Avoid
- Don't hardcode game values - Put them in YAML
- Don't add React to engines - Keep them pure
- Don't skip validation - Use Zod for AI responses
- Don't forget mobile - Design portrait-first
- Don't over-format - Keep UI minimal, not cluttered
Testing Requirements
- Unit tests for all engine functions
- Test combat resolution edge cases
- Validate YAML schemas on load
- Mock AI service for deterministic tests
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です