private void JoinRunningCarriers()
    {
        headCarrier        = headCarrierRunning;
        subCarrier         = subCarrierRunning;
        headCarrierRunning = null;
        subCarrierRunning  = null;

        headCarrier.JoinPipeOfSatan(headTrigger.transform);
        subCarrier.JoinPipeOfSatan(subTrigger.transform);
    }
 private void DisbandCarriers()
 {
     if (headCarrier != null)
     {
         headCarrier.DisjoinPipeOfSatan();
         headCarrier = null;
     }
     if (subCarrier != null)
     {
         subCarrier.DisjoinPipeOfSatan();
         subCarrier = null;
     }
 }
    private void CallCarriers()
    {
        if (headCarrierRunning.Is() && subCarrierRunning.Is())
        {
            UpdateRunningDestination();
            return;
        }

        var minions = Unit.GetInRadius <MinionPiper>(transform.position, minionCallRadius, minionLayerMask)
                      .Where(m => m != headCarrierRunning && m != subCarrierRunning);

        if (!headCarrierRunning.Is())
        {
            headCarrierRunning = minions.ClosestTo(headTrigger.transform.position);
        }
        if (!subCarrierRunning.Is())
        {
            subCarrierRunning = minions.ClosestTo(subTrigger.transform.position);
        }
        UpdateRunningDestination();
    }
 protected override void Awake()
 {
     base.Awake();
     minion    = GetComponent <MinionPiper>();
     maxHealth = minion.maxHealth;
 }