/// <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); }