Quiero que mientras más  elementos tenga altars, más posibilidad haya de resurrección, eso se hace en AddSoldier

using System;
using System.Collections.Generic;
using Game.ImprovedAI;
using Game.Systems.Buildings;
using UnityEngine;

namespace Game.Systems
{
    public class ResurrectionManager : MonoBehaviour
    {
        public List<UnitBase> soldiers = new List<UnitBase>();
        public List<AltarOfTheFallen> altars = new List<AltarOfTheFallen>();

        private void Update()
        {
            if (soldiers.Count > 0)
            {
                foreach (var altar in altars)
                {
                    if (!altar.HasPendingResurrections())
                    {
                        altar.ResurrectSoldier(soldiers[0]);
                        soldiers.RemoveAt(0);
                        break;
                    }
                }
            }
            else
            {
                foreach (var altar in altars)
                {
                    altar.StopParticles(); 
                }
            }
        }
        
        public bool HasAltarsAvailable()
        {

            foreach (var altar in altars)
            {
                if (!altar.IsDestroyed)
                {
                    return true;
                }
            }
            
            return false;
        }

        public void ResurrectAllSoldiers()
        {
            
            foreach (var altar in altars)
            {
                altar.ImmediateResurrection = true;
            }

            // Check if we have altars to use 
            if (altars.Count == 0)
            {
                Debug.LogWarning("No altars available to resurrect soldiers!");
                return;
            }
            
            // Create soldiers queue copy to be distributed among altars
            Queue<UnitBase> soldiersQueue = new Queue<UnitBase>(soldiers);
            
            // Clear the original soldiers list
            soldiers.Clear();
            
            // Distribute soldiers among altars
            int altarIndex = 0;
            while (soldiersQueue.Count > 0)
            {
                altars[altarIndex % altars.Count].ResurrectSoldier(soldiersQueue.Dequeue());
                altarIndex++;
            }

        }

        public void AddSoldier(UnitBase villager)
        {
            //Con cada 
            if (UnityEngine.Random.Range(0, 2) != 0)
            {
                if (!soldiers.Contains(villager))
                {
                    soldiers.Add(villager);
                }
            }
            else
            {
                Destroy(villager.gameObject);
                GameManager.Instance.VillagerTracker.RemoveSoldier(villager);
                villager.DestroyHealthBar();
            }
            
        }
        
        public void AddAltar(AltarOfTheFallen altar)
        {
            if (!altars.Contains(altar))
            {
                altars.Add(altar);
            }
        }
        
        public void RemoveAltar(AltarOfTheFallen altar)
        {
            if (altars.Contains(altar))
            {
                altars.Remove(altar);
            }
        }
        
        
        
    }
}