# New Game Random Team Placement

## Overview
This feature ensures that when starting a new game, the TeamMarker is always randomly placed in a town/village, regardless of whether there are saved positions for the current map seed. The load functionality continues to work as before, preserving the player's saved team position.

## How It Works

### New Game Flow
1. Player clicks "New Game" on title screen
2. `GameStateManager.StartNewGame()` is called
3. The `isNewGame` flag is set to `true`
4. When the map scene loads, `SimpleTeamPlacement` checks this flag
5. If `isNewGame` is true, saved positions are ignored and team is randomly placed
6. After placement, the `isNewGame` flag is cleared
7. The new random position is saved for future loads

### Load Game Flow
1. Player clicks "Load Game" on title screen
2. `GameStateManager.LoadGame()` is called
3. The `isNewGame` flag is set to `false`
4. When the map scene loads, `SimpleTeamPlacement` loads the saved position
5. Team is placed at the previously saved location

## Key Features

### Random Placement Even for Same Seeds
- Even if a new game uses the same seed as a previous game, the team will be randomly placed
- This ensures true randomness for new games while preserving saved positions for loads

### Exploration System Support
- The feature works with both regular map mode and exploration system
- In exploration mode, new games will randomly select from available settlements
- Load games in exploration mode will use the saved position

### Debug Information
- Enhanced debug logs show whether placement is for a new game or loaded game
- Clear distinction in console output for troubleshooting

## Testing

### Manual Testing
1. Start a new game → Team should be randomly placed
2. Save the game and load it → Team should be at same position
3. Start another new game with same seed → Team should be at different random position
4. Load the saved game again → Team should be at original saved position

### Context Menu Testing
Right-click on `SimpleTeamPlacement` in Inspector and use:
- "Force New Game Random Placement" - Simulates new game behavior
- "Randomly Place Team" - Normal random placement
- "Show Marker Info" - Shows current team position details

## Technical Details

### Modified Files
- `GameStateManager.cs`: Added `isNewGame` flag and related methods
- `SimpleTeamPlacement.cs`: Added new game detection logic

### Key Methods
- `GameStateManager.IsNewGameForceRandom()`: Checks if random placement should be forced
- `GameStateManager.ClearNewGameFlag()`: Clears flag after initial placement
- `SimpleTeamPlacement.WaitAndPlaceTeam()`: Main placement logic with new game detection

### PlayerPrefs Impact
- Saved positions are still stored with map seed keys
- New games overwrite saved positions for their seed
- Load games continue to read from saved positions

## Backward Compatibility
- Existing save games continue to work exactly as before
- No changes to save/load data structures
- Feature is transparent to existing gameplay mechanics
