NEW_TRAVEL_SYSTEM_GUIDE.md 4.8 KB

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

  1. Standard Route: Cheapest path (lowest movement cost)
  2. Road-Preferred Route: Uses roads when possible, even if slightly more expensive
  3. Special Route: Utilizes tunnels, ferries when beneficial

How to Use

Setup

  1. Add TravelSystemSetup component to any GameObject in your map scene
  2. Configure movement costs and visual settings in the inspector
  3. 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

  1. Click on any tile on the map
  2. The system calculates multiple route options
  3. Travel UI shows the best route with costs and time
  4. 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

  1. No routes found: Check if destination is reachable (not surrounded by impassable terrain)
  2. UI not showing: Verify TravelUIController is attached to UI GameObject
  3. Pathfinding slow: Reduce map size or add movement cost limits
  4. 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