Unit System
  • WELCOME
    • πŸ‘‹Hello
    • πŸ—ΊοΈRoadmap
    • ⛑️Support & Community
    • πŸŽ“Version - Changelog
  • Getting Started
    • πŸ”ŒImport Package
    • βš™οΈConfiguration
    • πŸ” Database
    • πŸͺŸManager Window
    • Creating a new Scene
      • Player Camera
      • Set up Player
      • Set up Player UI
      • Set up the Game World
    • Create Units
      • Resource (Crystal)
      • Research (Crystal age)
      • Resource node (Crystal Node)
      • Resource collector (Crystal)
      • Combat unit (Mage)
      • Production unit (Mage Tower)
      • Faction (Purple Cubes)
  • How it works
    • Overview
    • Modules
      • Resource
      • Production
      • Population
      • Garrison
      • Collection
  • Integration
    • Unit Selection
    • Unit Formation
    • Object Placement
Powered by GitBook
On this page
  • Key Features
  • Structure
  • Usage Examples
  1. How it works
  2. Modules

Collection

Key Features

  • Manages Player Collectors: Provides a list of available collectors, interface for searching nearby resource nodes or resource depots.

  • World Space Resource: Define resource nodes that produce valuable resources to players, frequent or scarce.

  • Depot Usage: Utilise resource depots to manage and store collected resources.

  • Flexible Collecting Types: Choose from various collection behaviours to fit your game design.

  • Event-Driven Updates: Triggers events for UI or gameplay reactions.


Structure

  • Collection Module - Easy access to available collectors, finding nearby nodes or depots.

  • Resource Collector Capability - Defines collectors capabilities like supported resources, collect interval, amount and collect type.

  • Collect Types:

    • RealtimeCollect - Collects resources directly into the player's resource pool without requiring transport or capacity management.

    • StackAndCollect - Collects resources into the collector's storage until capacity is reached, then automatically adds them to the player's resource pool without requiring transport.

    • GatherAndDeposit - Collects resources into the collector's storage and requires transporting them to a resource depot for depositing.

  • Resource Collector - Management of the collector's state and interactions.

  • Resource Depot Capability - Defines depot capabilities, specifies supported resources for depositing.

  • Resource Depot - Management of the depot's state and interactions. Can be moved on static or moving units.

  • Resource Node Capability - Defines the resource and amount that can be collected from the node.

  • Resource Node - Management of the node's state and interactions. When capability's amount is zero or negative, node is considered to have unlimited resource.

  • Collection Events - Global events for tracking collector, node states.


Usage Examples

Control Collectors

When you want to send collector to gather resources from a nearby node.

ResourceCollector collector = // Get collector reference
ResourceSO resource = // Get desired resource that collector supports.

// There are other ways to get collection module, but this is one way
// if you have only Unit reference.
if (collector.Owner.TryGetModule(out CollectionModule collectionModule) &&
    collectionModule.FindNearbyNode(collector.Position, resource, out IResourceNode node))
{
    collector.GoCollectResource(node);
}

When you want to send collector to deposit resources to a nearby depot.

if (collectionModule.FindNearestDepot(collector.Position, resourceToDeposit, out IResourceDepot depot))
{
    collector.GoDepositResource(depot)
}

Display Available Collectors

To show available collectors to player on UI, you can use module's interface.

// Get all idle collectors, with no active tasks.
IResourceCollector[] collectors = collectionModule.GetAvailableCollectors();

Deposit Resource Immediately

To deposit resources held by the collector directly to player with no deposit process.

collector.DepositResource()

Clearing Resource

To remove held resource by the collector.

collector.ClearResource()
PreviousGarrisonNextUnit Selection

Last updated 16 days ago