Garrison
Key Features
Easy Garrison Access: Provides easy access to garrisons and garrisonable units.
Entrance Positioning: Defines specific entry points for units to move to before entering a garrison.
Capacity & Eligibility: Controls how many units and which unit is eligible for entering based on predefined rules.
Unit Garrisoning & Exiting: Allows units to enter, exit garrisons.
Event-Driven Updates: Triggers events when unit enters or exits garrison for easier UI updates or gameplay logic.
Seamless Integration: Works alongside unit interactions, combat, and production systems.
Structure
Garrison Module - Manages list of garrisons and garrisonable units foe easier access, along with convenience methods. This module is completely optional, everything works if its not present on player.
Garrison Unit Capability - Defines unit garrison capabilities, amount and rules for entering.
Garrisonable Unit Capability - Defines a unit which can enter a garrison on data level.
Garrison Unit - Behaviour component for managing current of garrisoned units, adding, removing and spawning them.
Garrisonable Unit - Behaviour component for managing entering and exiting states of the object.
Garrison Events - Global events invoked for use like UI updates
Garrison Spawn Point - Additionally garrison will utilise spawn point if present on the unit. This will make units exit garrison in specific position, regardless where they entered it.
Usage Examples
Garrisoning a Soldier
When a unit needs to enter a garrison.
When unit is out of range and requires movement before entering. Validations are done as part of the EnterGarrisonTask
.
Auto-Garrison Nearby Units
To call nearby soldiers into a bunker:
Garrison automatically gathers nearby idle soldiers.
When cancel active tasks parameter is set to
true
, it will take any soldier in range, cancel their active tasks and clear the task queue before moving to garrison.
Empty a Garrison
To release all soldiers from a bunker.
All units will exit and reappear in the game world.
Preventing Ineligible Units from Entering
This can be done as part of the unit capability configuration.
Last updated