Exemplo n.º 1
0
    protected override bool DoUse()
    {
        reviveTarget = null;

        List <GameObject> revivableCorpses = detectVolume.DetectedObjects;
        float             closestDist      = -1f;

        foreach (GameObject corpse in revivableCorpses)
        {
            UnitCorpse unitCorpse = corpse.GetComponent <UnitCorpse>();
            if (!unitCorpse.CanRevive)
            {
                continue;
            }

            float dist = Vector3.Distance(corpse.transform.position, transform.position);

            if (reviveTarget == null || dist < closestDist)
            {
                reviveTarget = unitCorpse;
                closestDist  = dist;
            }
        }

        if (reviveTarget != null)
        {
            return(MyUser.TryDrainMana(ManaCost));
        }

        return(false);
    }