# Agent Skills for Perfect World Unity C++ to C# Conversion This folder contains comprehensive skills and guidelines for AI agents working on the Perfect World Unity C++ to C# conversion project. ## Skills Index ### Core Conversion Skills 1. **[Naming Conventions](./01-naming-conventions.md)** - Maintain C++ naming exactly (CGfxMoveBase, m_bOneOfCluser, etc.) 2. **[Type Mappings](./02-type-mappings.md)** - C++ to C# type conversions (DWORD→uint, A3DVECTOR3→Vector3, etc.) 3. **[Code Patterns](./03-code-patterns.md)** - Common C++ patterns and their C# equivalents ### Architecture & Understanding 4. **[Architecture Understanding](./04-architecture-understanding.md)** - System structure, flow, and relationships 5. **[Skill GFX System Deep Dive](./05-skill-gfx-deep-dive.md)** - Detailed GFX system architecture ### Quality & Validation 6. **[Testing & Validation](./06-testing-validation.md)** - How to verify conversions are correct 7. **[Common Pitfalls](./07-common-pitfalls.md)** - Mistakes to avoid during conversion 8. **[Best Practices](./08-best-practices.md)** - Recommended approaches and patterns ### Reference 9. **[C++ Source Reference](./09-cpp-source-reference.md)** - Key C++ files and their locations 10. **[Unity C# Reference](./10-unity-csharp-reference.md)** - Key Unity C# files and their locations 11. **[GFX to Particle System](./11-gfx-to-particle-system.md)** - GFX→ParticleSystem conversion, why scale is not needed 12. **[Prefer UniTask Over Task](./12-prefer-unitask-over-task.md)** - Use UniTask for all Unity async operations ## Quick Start When starting a conversion task: 1. Read [Naming Conventions](./01-naming-conventions.md) - **CRITICAL** - Never change C++ names unnecessarily 2. Check [Type Mappings](./02-type-mappings.md) for type conversions 3. Review [Common Pitfalls](./07-common-pitfalls.md) before coding 4. Use [Testing & Validation](./06-testing-validation.md) to verify your work 5. For async code: Use [UniTask Over Task](./12-prefer-unitask-over-task.md) - Prefer UniTask for Unity async operations ## Priority Rules 1. **Preserve C++ naming** - If C++ has `CGfxMoveBase`, use `CGfxMoveBase` (not `IGfxMovement`) 2. **Match C++ behavior exactly** - Don't "improve" logic unless explicitly requested 3. **Maintain field names** - Even typos like `m_bOneOfCluser` must be preserved 4. **Verify against C++ source** - Always check the actual C++ implementation ## Project Context - **Source:** `perfect-world-source/` - Original C++ codebase - **Target:** `perfect-world-unity/Assets/` - Unity C# project - **Main Plan:** `SKILL_GFX_CONVERSION_PLAN.md` - Overall conversion strategy - **Quick Guide:** `SKILL_GFX_QUICK_START.md` - Fast implementation guide