约定仓库忽略构建产物,并固定代理协作边界。

核心不得依赖引擎界面,随机数走统一入口,避免规则写进表现层。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-09 02:04:12 +08:00
co-authored by Cursor
commit 5c097caee1
4 changed files with 44 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
bin/
obj/
.vs/
.idea/
*.user
*.suo
*.userosscache
[Dd]ebug/
[Rr]elease/
_doc_extract/
*.DotSettings.user
.godot/
*.import
+15
View File
@@ -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.
+10
View File
@@ -0,0 +1,10 @@
<Project>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Deterministic>true</Deterministic>
</PropertyGroup>
</Project>
+6
View File
@@ -0,0 +1,6 @@
{
"sdk": {
"version": "8.0.400",
"rollForward": "latestMinor"
}
}