Beispiel #1
0
        /// <summary>
        /// Handles organizing triggers so future activation is quicker.
        /// </summary>
        /// <param name="perk">The perk to cache triggers for.</param>
        private static void CacheTriggers(PerkDetail perk)
        {
            // Equipped Triggers: Fires when an item is equipped.
            if (perk.EquippedTriggers.Count > 0)
            {
                if (!_equipTriggers.ContainsKey(perk.Type))
                {
                    _equipTriggers[perk.Type] = new List <PerkTriggerEquippedAction>();
                }

                _equipTriggers[perk.Type].AddRange(perk.EquippedTriggers);
            }

            // Unequipped Triggers: Fires when an item is unequipped.
            if (perk.UnequippedTriggers.Count > 0)
            {
                if (!_unequipTriggers.ContainsKey(perk.Type))
                {
                    _unequipTriggers[perk.Type] = new List <PerkTriggerUnequippedAction>();
                }

                _unequipTriggers[perk.Type].AddRange(perk.UnequippedTriggers);
            }

            // Purchased Triggers: Fires when a perk is purchased.
            if (perk.PurchasedTriggers.Count > 0)
            {
                if (!_purchaseTriggers.ContainsKey(perk.Type))
                {
                    _purchaseTriggers[perk.Type] = new List <PerkTriggerPurchasedRefundedAction>();
                }

                _purchaseTriggers[perk.Type].AddRange(perk.PurchasedTriggers);
            }

            // Refunded Triggers: Fires when a perk is refunded.
            if (perk.PurchasedTriggers.Count > 0)
            {
                if (!_refundTriggers.ContainsKey(perk.Type))
                {
                    _refundTriggers[perk.Type] = new List <PerkTriggerPurchasedRefundedAction>();
                }

                _refundTriggers[perk.Type].AddRange(perk.RefundedTriggers);
            }
        }
 public RecipePerkRequirement(PerkType perk, int requiredLevel)
 {
     _perk          = perk;
     _requiredLevel = requiredLevel;
     _perkDetail    = Perk.GetPerkDetails(_perk);
 }