private void ModifyWeaponDamage(WeaponOverrideData weaponOverride, Item item) { OLogger.Log("ModifyWeaponDamage(): Updating Weapon Damage"); WeaponStats weaponStatComponent = item.GetComponent <WeaponStats>(); float damageAmount = weaponOverride.Value; DamageType damageType = new DamageType(weaponOverride.DmgType, damageAmount); weaponStatComponent.BaseDamage.Add(damageType); SetAttackStepDamage(weaponStatComponent.Attacks, damageAmount); }
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 ParseWeaponChanges(WeaponOverrideData weaponOverride, Item item) { var weaponStatComponent = item.GetComponent <WeaponStats>(); switch (weaponOverride.WeaponStatType) { case WeaponStatType.NONE: break; case WeaponStatType.DAMAGE: OLogger.Log("ParseWeaponChanges(): Updating Damage Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); ModifyWeaponDamage(weaponOverride, item); break; case WeaponStatType.IMPACT: OLogger.Log("ParseWeaponChanges(): Updating Impact Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); weaponStatComponent.Impact = weaponOverride.Value; break; case WeaponStatType.STAMINA_COST: OLogger.Log("ParseWeaponChanges(): Updating Stamina Cost Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); weaponStatComponent.StamCost = weaponOverride.Value; break; case WeaponStatType.REACH: OLogger.Log("ParseWeaponChanges(): Updating Weapon Reach Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); weaponStatComponent.Reach = weaponOverride.Value; break; case WeaponStatType.SPEED: OLogger.Log("ParseWeaponChanges(): Updating Weapon Attack Speed Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); weaponStatComponent.AttackSpeed = weaponOverride.Value; break; case WeaponStatType.HEALTH_BONUS: OLogger.Log("ParseWeaponChanges(): Updating Weapon Health Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var hpBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_maxHealthBonus"); OLogger.Log("Max HP bonus before " + hpBonus); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_maxHealthBonus"); hpBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_maxHealthBonus"); OLogger.Log("Max HP bonus after " + hpBonus); break; case WeaponStatType.POUCH_BONUS: OLogger.Log("ParseWeaponChanges(): Updating Weapon Pouch Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var pouchBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_pouchCapacityBonus"); OLogger.Log("Pouch Bonus before " + pouchBonus); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_pouchCapacityBonus"); pouchBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_pouchCapacityBonus"); OLogger.Log("Pouch Bonus after " + pouchBonus); break; case WeaponStatType.HEAT_PROTECTION: OLogger.Log("ParseWeaponChanges(): Updating Weapon Heat Protection Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var heatProtection = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_heatProtection"); OLogger.Log("Heat Protection before " + heatProtection); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_heatProtection"); heatProtection = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_heatProtection"); OLogger.Log("Heat Protection after " + heatProtection); break; case WeaponStatType.COLD_PROTECTION: OLogger.Log("ParseWeaponChanges(): Updating Weapon Cold Protection Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var coldBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_coldProtection"); OLogger.Log("Cold Protection Bonus before " + coldBonus); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_coldProtection"); coldBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_coldProtection"); OLogger.Log("ParseWeaponChanges(): Cold Protection Bonus after " + coldBonus); break; case WeaponStatType.IMPACT_PROTECTION: OLogger.Log("ParseWeaponChanges(): Updating Weapon Impact Resistance Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var impactRes = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_impactResistance"); OLogger.Log("Impact Resistance Bonus before " + impactRes); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_impactResistance"); impactRes = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_impactResistance"); OLogger.Log("Impact Resistance Bonus after " + impactRes); break; case WeaponStatType.CORRUPTION_PROTECTION: OLogger.Log("ParseWeaponChanges(): Updating Weapon Corruption Protection Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var corruptionProtection = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_corruptionProtection"); OLogger.Log("Corruption Protection Bonus before " + corruptionProtection); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_corruptionProtection"); corruptionProtection = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_corruptionProtection"); OLogger.Log("Corruption Protection Bonus after " + corruptionProtection); break; case WeaponStatType.WATER_PROOF: OLogger.Log("ParseWeaponChanges(): Updating Weapon Water Proofness(?) Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var waterproofBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_waterproof"); OLogger.Log("Water Proofness(?) Bonus before " + waterproofBonus); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_waterproof"); waterproofBonus = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_waterproof"); OLogger.Log("Water Proofness(?) Bonus after " + waterproofBonus); break; case WeaponStatType.MOVEMENT_PENALTY: OLogger.Log("ParseWeaponChanges(): Updating Weapon Movement Penalty Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var movementPenalty = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_movementPenalty"); OLogger.Log("Movement Penalty Bonus before " + movementPenalty); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_movementPenalty"); movementPenalty = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_movementPenalty"); OLogger.Log("Movement Penalty Bonus after " + movementPenalty); break; case WeaponStatType.STAMINA_USE_PENALTY: OLogger.Log("ParseWeaponChanges(): Updating Weapon Stamina Use Penalty Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var staminaPenalty = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_staminaUsePenalty"); OLogger.Log("Stamina Use Penalty Bonus before " + staminaPenalty); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_staminaUsePenalty"); staminaPenalty = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_staminaUsePenalty"); OLogger.Log("Stamina Use Penalty Bonus after " + staminaPenalty); break; case WeaponStatType.HEAT_REGEN_PENALTY: OLogger.Log("ParseWeaponChanges(): Updating Weapon Heat Regen Penalty Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var heatRegenPenalty = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_heatRegenPenalty"); OLogger.Log("Heat Regen Penalty Bonus before " + heatRegenPenalty); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_heatRegenPenalty"); heatRegenPenalty = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_heatRegenPenalty"); OLogger.Log("Heat Regen Penalty Bonus after " + heatRegenPenalty); break; case WeaponStatType.MANA_USE_MODIFIER: OLogger.Log("ParseWeaponChanges(): Updating Weapon Mana Reduction Bonus Stat for Item ID : " + item.ItemID + " to " + weaponOverride.Value); var manaReductionModified = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_manaUseModifier"); OLogger.Log("Mana Reduction Bonus before " + manaReductionModified); ReflectionTools.ReflectionSetValue(weaponOverride.Value, typeof(EquipmentStats), weaponStatComponent, "m_manaUseModifier"); manaReductionModified = ReflectionTools.ReflectionGetValue(typeof(EquipmentStats), weaponStatComponent, "m_manaUseModifier"); OLogger.Log("Mana Reduction Bonus after " + manaReductionModified); break; default: OLogger.Log("UH OH WEAPON PARSE FAILURE"); break; } OLogger.Log("Parsing item id: " + item.ItemID + " , Complete"); OLogger.Log("------------------------------------"); }