New Team Travel System
Overview
The new travel system provides comprehensive map-based movement with realistic costs, pathfinding, and visual route planning. It integrates seamlessly with the existing MapMaker2 and SimpleTeamPlacement systems.
Features
Movement Costs by Terrain
- Plains: 1.0x (baseline movement cost)
- Forest: 2.0x (harder to navigate)
- Mountains: 4.0x (very difficult terrain)
- Roads: 0.5x (fast travel)
- Towns/Villages: 0.1x (almost instant travel inside settlements)
- Bridges: 0.6x (slightly slower than roads)
Special Travel Options
- Ferry: 0.7x movement + gold cost (fast water crossing)
- Tunnel (with torch): 0.8x movement + torch cost (fast mountain crossing)
- Tunnel (without torch): 3.0x movement (slow, dangerous)
Route Types
- Standard Route: Cheapest path (lowest movement cost)
- Road-Preferred Route: Uses roads when possible, even if slightly more expensive
- Special Route: Utilizes tunnels, ferries when beneficial
How to Use
Setup
- Add
TravelSystemSetup component to any GameObject in your map scene
- Configure movement costs and visual settings in the inspector
- The system will automatically setup all required components
Controls
- Left Click on Map: Plan travel to clicked location
- ESC: Cancel travel planning
- T Key: Show travel system info
- R Key: Randomly relocate team
- M Key: Show team marker info
Travel Planning Process
- Click on any tile on the map
- The system calculates multiple route options
- Travel UI shows the best route with costs and time
- Choose to start travel or cancel
Visual Feedback
- Blue Line: Standard/cheapest route
- Yellow Line: Alternative route (road-preferred)
- Red Line: Expensive route (special travel costs)
Integration with Existing Systems
SimpleTeamPlacement
- Automatically detects team position
- Updates team location during travel
- Saves/loads team position
MapMaker2
- Uses terrain and feature data for pathfinding
- Integrates with roads, bridges, tunnels, ferries
- Respects impassable terrain (water without bridges)
UI System
- Uses existing travel UI elements
- Shows route information, costs, and options
- Provides travel confirmation and cancellation
Technical Details
Pathfinding
- Uses A* algorithm for optimal route finding
- Considers terrain costs and feature modifiers
- Supports 8-directional movement
- Avoids impassable terrain
Route Calculation
- Cost: Total movement difficulty
- Distance: Number of tiles in path
- Time: Estimated travel duration
- Special Costs: Gold, torches, or other resources needed
Performance
- Efficient pathfinding with reasonable limits
- Path visualization using Unity LineRenderer
- Real-time route updates when destination changes
Configuration Options
Movement Costs (adjustable in inspector)
public float plainsMovementCost = 1f;
public float forestMovementCost = 2f;
public float mountainMovementCost = 4f;
public float roadMovementCost = 0.5f;
public float townMovementCost = 0.1f;
Special Travel Costs
public int ferryBaseCost = 25; // Gold
public int tunnelTorchCost = 10; // Torches
public float ferryMovementCost = 0.7f;
public float tunnelWithTorchCost = 0.8f;
Visual Settings
public Color standardPathColor = Color.blue;
public Color expensivePathColor = Color.red;
public float pathLineWidth = 0.2f;
Debug Features
Debug Keys
- C Key: Show movement cost information (when enabled)
- T Key: Show travel system status
Context Menu Options
- "Setup Travel System": Manually setup all components
- "Show Travel System Status": Check component availability
- "Test Travel Planning": Test with random destination
Debug Logs
Enable showDebugLogs in components for detailed information:
- Route calculation details
- Movement cost breakdowns
- UI interaction logs
- Travel execution progress
Troubleshooting
Common Issues
- No routes found: Check if destination is reachable (not surrounded by impassable terrain)
- UI not showing: Verify TravelUIController is attached to UI GameObject
- Pathfinding slow: Reduce map size or add movement cost limits
- Visual path not appearing: Check path material assignment and Z-offset
Component Dependencies
TeamTravelSystem: Core travel logic and pathfinding
TravelUIController: UI management and player interaction
SimpleTeamPlacement: Team position tracking
MapMaker2: Map data and terrain information
Future Enhancements
- Player inventory integration for resource checking
- Advanced route options (avoid enemies, prefer certain terrain)
- Time-based travel with day/night cycles
- Random encounters during travel
- Group travel with multiple units
- Travel fatigue and rest mechanics