Exemple #1
0
        public static void Update()
        {
            if (!CacheManager.Me.IsValid)
                return;

            using (new PerformanceLogger("UpdateCachedBuffsData"))
            {
                if (DateTime.UtcNow.Subtract(LastUpdated).TotalMilliseconds < 250)
                    return;

                Clear();

                foreach (var buff in ZetaDia.Me.GetAllBuffs())
                {
                    if (!buff.IsValid)
                        return;

                    var cachedBuff = new TrinityBuff(buff);

                    cachedBuff.VariantId = GetBuffVariantId((SNOPower) cachedBuff.Id);
                    cachedBuff.VariantName = GetBuffVariantName(cachedBuff);

                    // Convention of Elements
                    if (cachedBuff.Id == (int) SNOPower.P2_ItemPassive_Unique_Ring_038)
                    {
                        ConventionElement = (Element) cachedBuff.VariantId;
                    }

                    if (!_buffsById.ContainsKey(buff.SNOId))
                        _buffsById.Add(buff.SNOId, cachedBuff);

                    _buffs.Add(cachedBuff);

                    Logger.Log(TrinityLogLevel.Debug, LogCategory.CacheManagement,
                        "ActiveBuffs: Id={0} Name={1} Stacks={2} VariantId={3} VariantName={4}", cachedBuff.Id, cachedBuff.InternalName, cachedBuff.StackCount, cachedBuff.VariantId, cachedBuff.VariantName);
                }

                LastUpdated = DateTime.UtcNow;

                Logger.Log(TrinityLogLevel.Debug, LogCategory.CacheManagement,
                    "Refreshed Inventory: ActiveBuffs={0}", ActiveBuffs.Count);
            }

            // Bastians of Will
            HasBastiansWillSpenderBuff = HasBuff(SNOPower.ItemPassive_Unique_Ring_735_x1, 2);
            HasBastiansWillGeneratorBuff = HasBuff(SNOPower.ItemPassive_Unique_Ring_735_x1, 1);

            // Shrines
            HasBlessedShrine = HasBuff(30476); //Blessed (+25% defence)
            HasFrenzyShrine = HasBuff(30479); //Frenzy  (+25% atk speed)
            HasInvulnerableShrine = HasBuff(SNOPower.Pages_Buff_Invulnerable);
            HasCastingShrine = HasBuff(SNOPower.Pages_Buff_Infinite_Casting);
            HasConduitShrine = HasBuff(SNOPower.Pages_Buff_Electrified);
        }
Exemple #2
0
        public static string GetBuffVariantName(TrinityBuff buff)
        {
            switch (buff.Id)
            {
                case (int) SNOPower.ItemPassive_Unique_Ring_735_x1: // Bastians of Will
                    return ((ResourceEffectType) buff.VariantId).ToString();

                case (int) SNOPower.P2_ItemPassive_Unique_Ring_038: // Convention of Elements
                    return ((Element) buff.VariantId).ToString();
            }
            return string.Empty;
        }