private void CreateDefaultOverrides() { try { // Creates an instance of the XmlSerializer class; // specifies the type of object to serialize. XmlSerializer serializer = new XmlSerializer(typeof(OutwardItemOverrides)); TextWriter writer = new StreamWriter(Path.Combine(basePath, "Default.xml")); OutwardItemOverrides po = new OutwardItemOverrides(); // Creates an ItemOverride. ItemOverride i1 = new ItemOverride(); i1.ItemID = 2000090; // Creates an WeaponOverrideData WeaponOverrideData o1 = new WeaponOverrideData(); o1.OverrideType = OverrideType.WEAPON; o1.WeaponStatType = WeaponStatType.DAMAGE; o1.DmgType = DamageType.Types.Fire; o1.Value = 200; // Creates an ItemOverrideData ItemOverrideData o2 = new ItemOverrideData(); o2.OverrideType = OverrideType.ITEMSTAT; o2.ItemStatType = ItemStatType.MAXDURABILITY; o2.Value = 25.0f; // Add them to the list of overrides i1.Data = new List <OverrideData>(); i1.Data.Add(o1); i1.Data.Add(o2); // Inserts the item into the array. po.ItemOverrides = i1; // Set DebugMode to default OFF po.DebugMode = false; // Serializes the WeaponOverrideData, and closes the TextWriter. serializer.Serialize(writer, po); writer.Close(); } catch (Exception e) { throw e; } }
private void ParseItemStatChanges(ItemOverrideData itemOverride, Item item) { var itemStatComponent = item.GetComponent <ItemStats>(); switch (itemOverride.ItemStatType) { case ItemStatType.MAXDURABILITY: OLogger.Log("ParseItemStatChanges(): Durability before " + itemStatComponent.MaxDurability); itemStatComponent.MaxDurability = (int)itemOverride.Value; OLogger.Log("ParseItemStatChanges(): Durability after " + itemStatComponent.MaxDurability); break; case ItemStatType.RAWWEIGHT: OLogger.Log("ParseItemChanges(): Updating Item RawWeight Stat for Item ID : " + item.ItemID + " to " + itemOverride.Value); var rawWeight = ReflectionTools.ReflectionGetValue(typeof(ItemStats), itemStatComponent, "m_rawWeight"); OLogger.Log("Raw weight before " + rawWeight); ReflectionTools.ReflectionSetValue(itemOverride.Value, typeof(ItemStats), itemStatComponent, "m_rawWeight"); rawWeight = ReflectionTools.ReflectionGetValue(typeof(ItemStats), itemStatComponent, "m_rawWeight"); OLogger.Log("Raw weight after " + rawWeight); break; case ItemStatType.BASEVALUE: // TODO: Does not seem to work at the moment OLogger.Log("ParseItemChanges(): Updating Item BaseValue Stat for Item ID : " + item.ItemID + " to " + itemOverride.Value); var baseValue = ReflectionTools.ReflectionGetValue(typeof(ItemStats), itemStatComponent, "m_baseValue"); OLogger.Log("BaseValue before " + baseValue); ReflectionTools.ReflectionSetValue(itemOverride.Value, typeof(ItemStats), itemStatComponent, "m_baseValue"); baseValue = ReflectionTools.ReflectionGetValue(typeof(ItemStats), itemStatComponent, "m_baseValue"); OLogger.Log("BaseValue after " + baseValue); break; default: OLogger.Log("UH OH ITEMSTAT PARSE FAILURE"); break; } OLogger.Log("Parsing item id: " + item.ItemID + " , Complete"); OLogger.Log("------------------------------------"); }