示例#1
0
        private static void SetFlaskInfo()
        {
            _info = new FlaskInfo();

            foreach (var flask in FlaskHud.InventoryControl.Inventory.Items)
            {
                foreach (var stat in flask.LocalStats.Keys)
                {
                    if (stat == Constants.AntiFreezeStat)
                    {
                        _info.HasAntiFreeze = true;
                    }

                    else if (stat == Constants.AntiIgniteStat)
                    {
                        _info.HasAntiIgnite = true;
                    }

                    else if (stat == Constants.AntiShockStat)
                    {
                        _info.HasAntiShock = true;
                    }

                    else if (stat == Constants.AntiPoisonStat)
                    {
                        _info.HasAntiPoison = true;
                    }

                    else if (stat == Constants.AntiCurseStat)
                    {
                        _info.HasAntiCurse = true;
                    }

                    else if (stat == Constants.AntiBleedStat)
                    {
                        _info.HasAntiBleed = true;
                    }
                }

                if (flask.Name == FlaskNames.Quicksilver)
                {
                    _info.HasQsilverFlask = true;
                    continue;
                }

                var c = flask.Class;
                if (c == ItemClasses.LifeFlask)
                {
                    _info.HasLifeFlask = true;
                    continue;
                }
                if (c == ItemClasses.ManaFlask)
                {
                    _info.HasManaFlask = true;
                    continue;
                }

                var fullName = flask.FullName;
                if (c == ItemClasses.HybridFlask && fullName != FlaskNames.DivinationDistillate)
                {
                    _info.HasLifeFlask = true;
                    _info.HasManaFlask = true;
                    continue;
                }
                if (fullName == FlaskNames.KiaraDetermination)
                {
                    _info.HasAntiFreeze = true;
                    _info.HasAntiCurse  = true;
                }

                var name = flask.ProperName();

                var triggers = AutoFlaskSettings.Instance.GetFlaskTriggers(name);
                if (triggers == null)
                {
                    Log.Warn($"[Autoflask] \"{name}\" is unknown and will not be used.");
                    continue;
                }
                if (triggers.Count == 0)
                {
                    Log.Warn($"[Autoflask] \"{name}\" has no assigned triggers and will not be used.");
                    continue;
                }

                var effect = Flasks.GetEffect(name);
                if (effect == null)
                {
                    Log.Warn($"[Autoflask] \"{name}\" has unknown effect and will not be used.");
                    continue;
                }
                _info.AddTriggerFlask(flask.LocationTopLeft.X, name, effect, triggers);
                _info.HasTriggerFlask = true;
            }

            _info.Log();
        }