commit 5c097caee1a4053748b0d522ec66e8a11f033a6b Author: moranzhi Date: Fri Oct 9 02:04:12 2026 +0800 约定仓库忽略构建产物,并固定代理协作边界。 核心不得依赖引擎界面,随机数走统一入口,避免规则写进表现层。 Co-authored-by: Cursor diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3855e80 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +bin/ +obj/ +.vs/ +.idea/ +*.user +*.suo +*.userosscache +[Dd]ebug/ +[Rr]elease/ +_doc_extract/ +*.DotSettings.user +.godot/ +*.import diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..25244f4 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,15 @@ +# Agent rules + +Read `docs/FOUNDATION.md` and `docs/ARCHITECTURE.md` before large refactors. + +- `Game.Core` must not depend on Godot. +- All randomness must go through `GameRng`. Simulation and presentation share one rules engine. +- UI must not implement game rules. Presentation renders `GameState` and plays `GameEvent`s. +- Adding or changing core rules requires adding or updating tests. +- Ordinary cards should use standard effects. Do not invent a general-purpose scripting language. +- Changing the content schema requires updating the validator and `docs/CONTENT_SCHEMA.md`. +- Changing event resolution order requires checking related tests. +- Do not create a global rule for a single card. +- Prefer the smallest working implementation. Do not optimize until there is a measured bottleneck. +- Freeze the 11 core actions in `docs/RULES.md`. New “archetypes” are combinations, conditions, or keywords — not new primitive events. +- Card packs are **in-run only**. Unlock state must reset with the run. Do not add cross-run / meta unlocks. diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..d87aacf --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,10 @@ + + + net8.0 + enable + enable + latest + true + true + + diff --git a/global.json b/global.json new file mode 100644 index 0000000..4e550c1 --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "8.0.400", + "rollForward": "latestMinor" + } +}