public void UnsubscribeStaticAbility(StaticAbility ability)
 {
     ability.RemoveAll();
     foreach (Zone zone in ability.GetAffectedZones())
     {
         affected_zones_to_abilities[zone].Remove(ability);
     }
 }
    public void SubscribeStaticAbility(StaticAbility ability)
    {
        foreach (Zone zone in ability.GetAffectedZones())
        {
            affected_zones_to_abilities[zone].Add(ability);

            // Check Zone For Card that will be affected
            foreach (Player player in GameManager.players)
            {
                foreach (Card card in player.GetContainer(zone).cards)
                {
                    ability.AddPossible(card);
                }
            }
        }
    }