public double GetBuffedDoubleValueKey(DoubleValueKey key, double defaultValue)
        {
            if (!gameItemInfo.KeyExistsDouble((int)key))
            {
                return(defaultValue);
            }

            double value = gameItemInfo.GetValueDouble(key, defaultValue);

            for (int i = 0; i < gameItemInfo.Spells.Count; i++)
            {
                int spellId = gameItemInfo.Spells[i].Id;

                if (DoubleValueKeySpellEffects.ContainsKey(spellId) && DoubleValueKeySpellEffects[spellId].Key == key && DoubleValueKeySpellEffects[spellId].Bonus != 0)
                {
                    if ((int)DoubleValueKeySpellEffects[spellId].Change == 1)
                    {
                        value *= DoubleValueKeySpellEffects[spellId].Bonus;
                    }
                    else
                    {
                        value += DoubleValueKeySpellEffects[spellId].Bonus;
                    }
                }
            }

            return(value);
        }
Example #2
0
        /// <summary>
        /// Converts a decal specific IntValueKey to the actual IntValueKey.
        /// If this is not an IntValueKey, 0 will be returned.
        /// </summary>
        public static uint ConvertToDouble(DoubleValueKey input)
        {
            if (input == DoubleValueKey.SlashProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsSlash);
            }
            if (input == DoubleValueKey.PierceProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsPierce);
            }
            if (input == DoubleValueKey.BludgeonProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsBludgeon);
            }
            if (input == DoubleValueKey.AcidProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsAcid);
            }
            if (input == DoubleValueKey.LightningProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsElectric);
            }
            if (input == DoubleValueKey.FireProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsFire);
            }
            if (input == DoubleValueKey.ColdProt_Decal)
            {
                return((int)DoubleValueKey.ArmorModVsCold);
            }

            if (input == DoubleValueKey.ApproachDistance_Decal)
            {
                return((int)DoubleValueKey.UseRadius);
            }
            if (input == DoubleValueKey.Scale_Decal)
            {
                return((int)DoubleValueKey.DefaultScale);
            }
            if (input == DoubleValueKey.Variance_Decal)
            {
                return((int)DoubleValueKey.DamageVariance);
            }
            if (input == DoubleValueKey.AttackBonus_Decal)
            {
                return((int)DoubleValueKey.WeaponOffense);
            }
            ;
            if (input == DoubleValueKey.Range_Decal)
            {
                return((int)DoubleValueKey.MaximumVelocity);
            }
            if (input == DoubleValueKey.DamageBonus_Decal)
            {
                return((int)DoubleValueKey.DamageMod);
            }

            return(0);
        }
Example #3
0
        public double Values(DoubleValueKey key, double defaultValue = 0)
        {
            if (DoubleValues.ContainsKey((int)key))
            {
                return(DoubleValues[(int)key]);
            }

            return(defaultValue);
        }
        public static bool IsIDProperty(DoubleValueKey vk)
        {
            switch (vk)
            {
            case DoubleValueKey.ApproachDistance: return(false);

            case DoubleValueKey.SalvageWorkmanship: return(false);

            default: return(true);
            }
        }
 public double Values(DoubleValueKey index)
 {
     return this.Values(index, 0.0);
 }
 public bool Exists(DoubleValueKey index)
 {
     return this._doubleValues.ContainsKey((int)index);
 }
Example #7
0
 public static int IndexFromDVK(DoubleValueKey k)
 {
     return DVKOptions.IndexOf(k);
 }
 public bool Exists(DoubleValueKey index)
 {
     return _wo.Exists(index);
 }
 public double Values(DoubleValueKey key)
 {
     KeyDouble findkey = DoubleVals.Where(x => x.Key == (int)key).FirstOrDefault();
         if(findkey != null) {return findkey.Val;}
         else{return 0;}
 }
 public double Values(DoubleValueKey index, double defaultValue)
 {
     throw new NotImplementedException();
 }
 public double Values(DoubleValueKey index)
 {
     throw new NotImplementedException();
 }
 public double GetBuffedDoubleValueKey(DoubleValueKey key)
 {
     return(GetBuffedDoubleValueKey(key, 0d));
 }
        public bool TryGetValue(DoubleValueKey index, out double value)
        {
            if (_wo.Exists(index))
            {
                value = _wo.Values(index);
                return true;
            }

            value = 0.0;
            return false;
        }
 public double Values(DoubleValueKey index, double defaultValue)
 {
     return _wo.Values(index, defaultValue);
 }
 public double Values(DoubleValueKey index)
 {
     return _wo.Values(index);
 }
        public double Values(DoubleValueKey index, double defaultValue)
        {
            double value;
            if (this._doubleValues.TryGetValue((int)index, out value))
            {
                return value;
            }

            return defaultValue;
        }
 public bool TryGetValue(DoubleValueKey index, out double value)
 {
     return this._doubleValues.TryGetValue((int)index, out value);
 }
 public bool TryGetValue(DoubleValueKey index, out double value)
 {
     throw new NotImplementedException();
 }
Example #19
0
 public static int IndexFromDVK(DoubleValueKey k)
 {
     return(DVKOptions.IndexOf(k));
 }
 public bool Exists(DoubleValueKey index)
 {
     throw new NotImplementedException();
 }
 public double GetValueDouble(DoubleValueKey key, double defaultvalue)
 {
     return(this.GetValueDouble((int)key, defaultvalue));
 }
Example #22
0
 public static void DumpWorldObject(WorldObject obj)
 {
     try
     {
         Utility.AddChatText("--- DEFIANCE Dump ---", 6);
         using (FileStream fileStream = File.Create(GetDumpFolder() + DateTime.Now.Ticks + ".xml"))
         {
             using (XmlWriter xmlWriter = XmlWriter.Create(fileStream, new XmlWriterSettings
             {
                 Encoding = new UTF8Encoding(false),
                 ConformanceLevel = ConformanceLevel.Document,
                 Indent = true
             }))
             {
                 xmlWriter.WriteStartDocument();
                 xmlWriter.WriteStartElement("WorldObject");
                 Utility.AddChatText(string.Format("ID: {0}", obj.Id), 0);
                 xmlWriter.WriteStartElement("ID");
                 xmlWriter.WriteString(obj.Id.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("Name: {0}", obj.Name), 0);
                 xmlWriter.WriteStartElement("Name");
                 xmlWriter.WriteString(string.Format("Name: {0}", obj.Name ?? string.Empty));
                 xmlWriter.WriteEndElement();
                 if (obj.ActiveSpellCount > 0)
                 {
                     xmlWriter.WriteStartElement("ActiveSpells");
                     Utility.AddChatText("***ActiveSpells***", 6);
                     for (int i = 0; i < obj.ActiveSpellCount; i++)
                     {
                         Utility.AddChatText(string.Format("Spell: {0}", obj.ActiveSpell(i)), 0);
                         xmlWriter.WriteStartElement("Spell");
                         xmlWriter.WriteString(obj.ActiveSpell(i).ToString());
                         xmlWriter.WriteEndElement();
                     }
                     xmlWriter.WriteEndElement();
                 }
                 Utility.AddChatText(string.Format("Behavior: {0}", obj.Behavior), 0);
                 xmlWriter.WriteStartElement("Behavior");
                 xmlWriter.WriteString(obj.Behavior.ToString());
                 xmlWriter.WriteEndElement();
                 if (obj.BoolKeys.Count > 0)
                 {
                     xmlWriter.WriteStartElement("BoolKeys");
                     Utility.AddChatText("***BoolKeys***", 6);
                     foreach (int num in obj.BoolKeys)
                     {
                         Utility.AddChatText(string.Format("Key: {0}, {1}", (BoolValueKey)num, obj.Values((BoolValueKey)num, false)), 0);
                         xmlWriter.WriteStartElement("Key");
                         xmlWriter.WriteStartElement("Bool");
                         XmlWriter    xmlWriter2   = xmlWriter;
                         BoolValueKey boolValueKey = (BoolValueKey)num;
                         xmlWriter2.WriteString(boolValueKey.ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteStartElement("Value");
                         xmlWriter.WriteString(obj.Values((BoolValueKey)num, false).ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteEndElement();
                     }
                     xmlWriter.WriteEndElement();
                 }
                 Utility.AddChatText(string.Format("Category: {0}", obj.Category), 0);
                 xmlWriter.WriteStartElement("Category");
                 xmlWriter.WriteString(obj.Category.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("Container: {0}", obj.Container), 0);
                 xmlWriter.WriteStartElement("Container");
                 xmlWriter.WriteString(obj.Container.ToString());
                 xmlWriter.WriteEndElement();
                 xmlWriter.WriteStartElement("Coordinates");
                 Utility.AddChatText("***Coordinates***", 6);
                 Utility.AddChatText(string.Format("EastWest: {0}", obj.Coordinates().EastWest), 0);
                 xmlWriter.WriteStartElement("EastWest");
                 xmlWriter.WriteString(obj.Coordinates().EastWest.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("NorthSouth: {0}", obj.Coordinates().NorthSouth), 0);
                 xmlWriter.WriteStartElement("NorthSouth");
                 xmlWriter.WriteString(obj.Coordinates().NorthSouth.ToString());
                 xmlWriter.WriteEndElement();
                 xmlWriter.WriteEndElement();
                 if (obj.DoubleKeys.Count > 0)
                 {
                     xmlWriter.WriteStartElement("DoubleKeys");
                     Utility.AddChatText("***DoubleKeys***", 6);
                     foreach (int num2 in obj.DoubleKeys)
                     {
                         Utility.AddChatText(string.Format("Key: {0}, {1}", (DoubleValueKey)num2, obj.Values((DoubleValueKey)num2, -1.0)), 0);
                         xmlWriter.WriteStartElement("Key");
                         xmlWriter.WriteStartElement("Double");
                         XmlWriter      xmlWriter3     = xmlWriter;
                         DoubleValueKey doubleValueKey = (DoubleValueKey)num2;
                         xmlWriter3.WriteString(doubleValueKey.ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteStartElement("Value");
                         xmlWriter.WriteString(obj.Values((DoubleValueKey)num2, -1.0).ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteEndElement();
                     }
                     xmlWriter.WriteEndElement();
                 }
                 Utility.AddChatText(string.Format("GameDataFlags1: {0}", obj.GameDataFlags1), 0);
                 xmlWriter.WriteStartElement("GameDataFlags1");
                 xmlWriter.WriteString(obj.GameDataFlags1.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("HasIdData: {0}", obj.HasIdData), 0);
                 xmlWriter.WriteStartElement("HasIdData");
                 xmlWriter.WriteString(obj.HasIdData.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("Icon: {0}", obj.Icon), 0);
                 xmlWriter.WriteStartElement("Icon");
                 xmlWriter.WriteString(obj.Icon.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("LastIdTime: {0}", obj.LastIdTime), 0);
                 xmlWriter.WriteStartElement("LastIdTime");
                 xmlWriter.WriteString(obj.LastIdTime.ToString());
                 xmlWriter.WriteEndElement();
                 if (obj.LongKeys.Count > 0)
                 {
                     xmlWriter.WriteStartElement("LongKeys");
                     Utility.AddChatText("***LongKeys***", 6);
                     foreach (int num3 in obj.LongKeys)
                     {
                         Utility.AddChatText(string.Format("Key: {0}, {1}", (LongValueKey)num3, obj.Values((LongValueKey)num3, -1)), 0);
                         xmlWriter.WriteStartElement("Key");
                         xmlWriter.WriteStartElement("Long");
                         XmlWriter    xmlWriter4   = xmlWriter;
                         LongValueKey longValueKey = (LongValueKey)num3;
                         xmlWriter4.WriteString(longValueKey.ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteStartElement("Value");
                         xmlWriter.WriteString(obj.Values((LongValueKey)num3, -1).ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteEndElement();
                     }
                     xmlWriter.WriteEndElement();
                 }
                 Utility.AddChatText(string.Format("PhysicsDataFlags: {0}", obj.PhysicsDataFlags), 0);
                 xmlWriter.WriteStartElement("PhysicsDataFlags");
                 xmlWriter.WriteString(obj.PhysicsDataFlags.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("ObjectClass: {0}", obj.ObjectClass), 0);
                 xmlWriter.WriteStartElement("ObjectClass");
                 xmlWriter.WriteString(obj.ObjectClass.ToString());
                 xmlWriter.WriteEndElement();
                 xmlWriter.WriteStartElement("RawCoordinates");
                 Utility.AddChatText("***RawCoordinates***", 6);
                 Utility.AddChatText(string.Format("X: {0}", obj.RawCoordinates().X), 0);
                 xmlWriter.WriteStartElement("X");
                 xmlWriter.WriteString(obj.RawCoordinates().X.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("Y: {0}", obj.RawCoordinates().Y), 0);
                 xmlWriter.WriteStartElement("Y");
                 xmlWriter.WriteString(obj.RawCoordinates().Y.ToString());
                 xmlWriter.WriteEndElement();
                 Utility.AddChatText(string.Format("Z: {0}", obj.RawCoordinates().Z), 0);
                 xmlWriter.WriteStartElement("Z");
                 xmlWriter.WriteString(obj.RawCoordinates().Z.ToString());
                 xmlWriter.WriteEndElement();
                 xmlWriter.WriteEndElement();
                 if (obj.StringKeys.Count > 0)
                 {
                     xmlWriter.WriteStartElement("StringKeys");
                     Utility.AddChatText("***StringKeys***", 6);
                     foreach (int num4 in obj.StringKeys)
                     {
                         Utility.AddChatText(string.Format("Key: {0}, {1}", (StringValueKey)num4, obj.Values((StringValueKey)num4, string.Empty)), 0);
                         xmlWriter.WriteStartElement("Key");
                         xmlWriter.WriteStartElement("String");
                         XmlWriter      xmlWriter5     = xmlWriter;
                         StringValueKey stringValueKey = (StringValueKey)num4;
                         xmlWriter5.WriteString(stringValueKey.ToString());
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteStartElement("Value");
                         xmlWriter.WriteString(obj.Values((StringValueKey)num4, string.Empty) ?? string.Empty);
                         xmlWriter.WriteEndElement();
                         xmlWriter.WriteEndElement();
                     }
                     xmlWriter.WriteEndElement();
                 }
                 if (obj.SpellCount > 0)
                 {
                     xmlWriter.WriteStartElement("SpellCount");
                     Utility.AddChatText("***SpellCount***", 6);
                     for (int j = 0; j < obj.SpellCount; j++)
                     {
                         Utility.AddChatText(string.Format("Spell: {0}", obj.Spell(j)), 0);
                         xmlWriter.WriteStartElement("Spell");
                         xmlWriter.WriteString(obj.Spell(j).ToString());
                         xmlWriter.WriteEndElement();
                     }
                     xmlWriter.WriteEndElement();
                 }
                 Utility.AddChatText(string.Format("Type: {0}", obj.Type), 0);
                 xmlWriter.WriteStartElement("Type");
                 xmlWriter.WriteString(obj.Type.ToString());
                 xmlWriter.WriteEndElement();
                 xmlWriter.WriteEndElement();
                 xmlWriter.WriteEndDocument();
             }
         }
     }
     catch (Exception ex) { Repo.RecordException(ex); }
 }