# McRogueFace API Test Findings
*Generated by Frack, January 14, 2026*

## Summary

Tested code snippets from docs site against actual runtime API.
Tests created in `/tests/docs/` with screenshots in `/tests/docs/screenshots/`.

---

## Entity Constructor

**Correct:**
```python
entity = mcrfpy.Entity(grid_pos=(10, 7), texture=texture, sprite_index=84)
```

**Wrong:**
```python
entity = mcrfpy.Entity(pos=(10, 7), ...)  # FAILS - no 'pos' kwarg
entity = mcrfpy.Entity(grid_x=10, grid_y=7, ...)  # FAILS - no separate kwargs
```

---

## Scene API

**Modern (WORKS):**
```python
scene = mcrfpy.Scene("name")
scene.children.append(frame)
scene.on_key = handler
scene.activate()
```

**Deprecated → Modern:**
```python
# OLD                          → NEW
mcrfpy.createScene("name")     → scene = mcrfpy.Scene("name")
mcrfpy.sceneUI("name")         → scene.children
mcrfpy.setScene("name")        → scene.activate()
mcrfpy.keypressScene(fn)       → scene.on_key = fn
mcrfpy.currentScene()          → mcrfpy.current_scene  # property, not function!
```

---

## Grid.at() Signature

Both work:
```python
point = grid.at((x, y))  # Tuple - documented
point = grid.at(x, y)    # Separate args - also works!
```

---

## Animation System

**Works:**
- `x`, `y`, `w`, `h` properties animate correctly
- Callbacks fire as expected
- Multiple simultaneous animations work
- Easing functions work

**Does NOT work:**
- `opacity` - property exists, can set directly, but animation ignores it

---

## Timer API

**Modern:**
```python
timer = mcrfpy.Timer("name", callback, seconds)
# Callback signature: def callback(timer, runtime):
```

**Deprecated:**
```python
mcrfpy.setTimer("name", callback, milliseconds)  # Wrong signature too
```

---

## Color API

Always use `mcrfpy.Color()`:
```python
frame.fill_color = mcrfpy.Color(255, 0, 0)     # CORRECT
frame.fill_color = mcrfpy.Color(255, 0, 0, 128)  # With alpha
```

Tuples no longer work:
```python
frame.fill_color = (255, 0, 0)  # FAILS
```

---

## Available Globals

**All exist:**
- `mcrfpy.default_texture` - Texture for kenney_tinydungeon.png
- `mcrfpy.default_font` - Font for JetBrains Mono
- `mcrfpy.default_fov` - (default FOV settings)

---

## Files Requiring Updates

1. `quickstart.md` - All 4 code blocks use deprecated API
2. `features/scenes.md` - "Procedural API" section entirely deprecated
3. `features/animation.md` - opacity examples don't work
4. Any file using `setTimer`, `createScene`, `sceneUI`, `setScene`, `keypressScene`

---

## Test Files Created

| Test | Status | Notes |
|------|--------|-------|
| test_quickstart_simple_scene.py | PASS | |
| test_quickstart_main_menu.py | PASS | |
| test_quickstart_entities.py | PASS | Uses grid_pos= |
| test_quickstart_sprites.py | PASS | |
| test_features_animation.py | PASS | opacity test skipped |
| test_features_scenes.py | PASS | Documents deprecated API |
| test_entity_api.py | INFO | Verifies grid_pos= works |
