Ejemplo n.º 1
0
 private void OnCastingValidityUpdated(EventCategory category)
 {
     if (m_spellsPerCategoryInvalidatingStatus.TryGetValue(category, out List <int> value))
     {
         foreach (int item in value)
         {
             if (m_playerStatus.TryGetSpell(item, out SpellStatus spellStatus))
             {
                 SpellStatusData data = default(SpellStatusData);
                 CastValidityHelper.RecomputeSpellCost(spellStatus, ref data);
                 CastValidityHelper.RecomputeSpellCastValidity(spellStatus.ownerPlayer, spellStatus, ref data);
                 EnqueueSpellStatusData(spellStatus.instanceId, data);
             }
         }
     }
 }
Ejemplo n.º 2
0
        public void RefreshUsability(PlayerStatus status, bool recomputeCosts)
        {
            List <int> list = new List <int>();
            IEnumerator <SpellStatus> spellStatusEnumerator = status.GetSpellStatusEnumerator();

            while (spellStatusEnumerator.MoveNext())
            {
                SpellStatus current = spellStatusEnumerator.Current;
                if (current != null)
                {
                    SpellStatusData data = default(SpellStatusData);
                    CastValidityHelper.RecomputeSpellCastValidity(current.ownerPlayer, current, ref data);
                    CastValidityHelper.RecomputeSpellCost(current, ref data);
                    EnqueueSpellStatusData(current.instanceId, data);
                    list.Add(current.instanceId);
                }
            }
            m_refreshUsabilityQueue.Enqueue(list);
        }
Ejemplo n.º 3
0
        public void AddSpellStatus(SpellStatus spellStatus)
        {
            SpellStatusData data = default(SpellStatusData);

            CastValidityHelper.RecomputeSpellCastValidity(spellStatus.ownerPlayer, spellStatus, ref data);
            CastValidityHelper.RecomputeSpellCost(spellStatus, ref data);
            EnqueueSpellStatusData(spellStatus.instanceId, data);
            HashSet <EventCategory> hashSet = new HashSet <EventCategory>();

            foreach (EventCategory item in spellStatus.definition.eventsInvalidatingCost)
            {
                hashSet.Add(item);
            }
            foreach (EventCategory item2 in spellStatus.definition.eventsInvalidatingCasting)
            {
                hashSet.Add(item2);
            }
            AddFightEventListeners(spellStatus, hashSet, status: true);
        }