Skip to content

đŸ›Šī¸ Fly-in — Drone System Rules

📍 Zone System

Every map is composed of connected zones.

Each zone belongs to one of the following types:


Zone Type Description Movement Cost Special Rules
đŸŸĸ normal Default zone type 1 turn - Default capacity: 1 drone
- Drones may enter, leave and wait
🔴 restricted Sensitive or dangerous zone 2 turns - Drone occupies the connection during transit
- Drone MUST arrive next turn
- Cannot stop or wait mid-connection
- Movement should not start if destination becomes unavailable
🟡 priority Preferred routing zone 1 turn - Should be prioritized during pathfinding
- Behaves like a normal zone regarding occupancy
âšĢ blocked Inaccessible zone ❌ - Drones cannot enter
- Drones cannot cross
- Any route using it is invalid

đŸ“Ļ Zone Capacity Rules

Rule Description
Default capacity Every zone supports 1 drone unless specified otherwise
Custom capacity Zones may define max_drones=N
Capacity restriction A drone cannot enter a full zone
Simultaneous occupancy Allowed only if capacity permits

Example:

hub: corridorA 4 3 [max_drones=2]

Meaning:

Up to 2 drones may occupy the zone simultaneously.

✅ Special Zones

Zone Special Behaviour
start_hub Unlimited drones may occupy it initially
end_hub Unlimited drones may arrive and delivered drones stop being tracked

🔗 Connection Rules

Connections define possible movement paths.

Example:

connection: A-B

â†”ī¸ Bidirectional Connections

All connections are:

  • bidirectional

Meaning:

A-B

allows:

  • A → B
  • B → A

đŸšĢ Invalid Connections

Connections are invalid if:

  • one zone does not exist
  • duplicated connection exists
  • syntax is invalid

The following are duplicates:

A-B
B-A

đŸ“Ļ Connection Capacity

Connections may define:

[max_link_capacity=N]

Example:

connection: A-B [max_link_capacity=2]

Meaning:

Only 2 drones may traverse this connection simultaneously.

🚨 Connection Restrictions

A drone cannot use a connection if:

  • its capacity would be exceeded
  • another movement rule would be violated

âąī¸ Turn System

The simulation is turn-based.

At every turn, each drone may:

  • move
  • wait
  • continue restricted-zone transit

đŸšļ Movement Costs

Destination Zone Cost Notes
normal 1 turn Immediate movement
priority 1 turn Should be preferred during pathfinding
restricted 2 turns Drone occupies connection during transit
blocked ❌ Cannot be entered

đŸ›Ģ Restricted Movement Rules

Restricted movement behaves differently from normal movement.

Turn 1

The drone enters transit state.

Example:

D1-A-B

Turn 2

The drone MUST arrive at destination.

The drone cannot:

  • cancel movement
  • wait on the connection
  • pause transit

🔄 Simultaneous Movement Rules

Multiple drones may move during the same turn.

BUT:

  • zone capacities must be respected
  • connection capacities must be respected
  • collisions must not happen

🚨 Occupancy Rules

Two drones cannot:

  • enter the same zone simultaneously

unless:

max_drones > 1

🔓 Freeing Space

When a drone leaves a zone:

  • that space becomes available during the same turn

This means movement scheduling matters.


🧠 Pathfinding Logic Rules

The routing system must consider:

  • shortest paths
  • movement costs
  • restricted zones
  • priority zones
  • occupancy limits
  • connection limits
  • simultaneous drone movement

đŸšĢ Invalid Drone Behaviour

A drone must never:

  • enter blocked zones
  • exceed zone capacity
  • exceed connection capacity
  • remain inside restricted transit longer than allowed
  • teleport
  • skip turns illegally
  • use undefined connections

📄 Output Rules

Every line represents:

1 simulation turn

Format:

D<ID>-<destination>

Example:

D1-roof1 D2-corridorA

đŸ›Ģ Restricted Transit Output

While travelling toward restricted zones:

D<ID>-<connection>

may be displayed.

Example:

D1-A-B

🏁 End Conditions

Simulation ends only when:

  • every drone reaches end_hub

Delivered drones:

  • are removed from active simulation tracking.

đŸŽ¯ Optimization Goal

Main objective:

Minimize total simulation turns

The algorithm should:

  • maximize throughput
  • reduce waiting
  • avoid deadlocks
  • distribute drones efficiently across paths