public static void GetElementalDamages( BaseWeapon weapon, bool randomizeOrder ) { int fire, phys, cold, nrgy, pois; weapon.GetDamageTypes( null, out phys, out fire, out cold, out pois, out nrgy ); int totalDamage = phys; AosElementAttribute[] attrs = new AosElementAttribute[] { AosElementAttribute.Cold, AosElementAttribute.Energy, AosElementAttribute.Fire, AosElementAttribute.Poison }; if( randomizeOrder ) { for( int i = 0; i < attrs.Length; i++ ) { int rand = Utility.Random( attrs.Length ); AosElementAttribute temp = attrs[i]; attrs[i] = attrs[rand]; attrs[rand] = temp; } } /* totalDamage = AssignElementalDamage( weapon, AosElementAttribute.Cold, totalDamage ); totalDamage = AssignElementalDamage( weapon, AosElementAttribute.Energy, totalDamage ); totalDamage = AssignElementalDamage( weapon, AosElementAttribute.Fire, totalDamage ); totalDamage = AssignElementalDamage( weapon, AosElementAttribute.Poison, totalDamage ); weapon.AosElementDamages[AosElementAttribute.Physical] = 100 - totalDamage; * */ for( int i = 0; i < attrs.Length; i++ ) totalDamage = AssignElementalDamage( weapon, attrs[i], totalDamage ); //Order is Cold, Energy, Fire, Poison -> Physical left //Cannot be looped, AoselementAttribute is 'out of order' weapon.Hue = weapon.GetElementalDamageHue(); }
private static int GetElementAttributeValue(BaseWeapon weapon, AosElementAttribute element) { int phys, fire, cold, pois, nrgy, chao, direct; weapon.GetDamageTypes(null, out phys, out fire, out cold, out pois, out nrgy, out chao, out direct); switch (element) { case AosElementAttribute.Physical: return phys; case AosElementAttribute.Fire: return fire; case AosElementAttribute.Cold: return cold; case AosElementAttribute.Poison: return pois; case AosElementAttribute.Energy: return nrgy; case AosElementAttribute.Direct: return direct; } return -1; }
public static void RemoveElementDamages( BaseWeapon weapon, int cold, int nrgy, int fire, int pois, int chaos, int direct ) { int weapPhys, weapCold, weapNrgy, weapFire, weapPois, weapChaos, weapDirect; weapon.GetDamageTypes( null, out weapPhys, out weapFire, out weapCold, out weapPois, out weapNrgy, out weapChaos, out weapDirect ); // Remove the element damages in reverse order they were applied in. weapPhys = weapon.RemoveAttributeElementDamage( direct, ref weapDirect, weapPhys ); weapPhys = weapon.RemoveAttributeElementDamage( chaos, ref weapChaos, weapPhys ); weapPhys = weapon.RemoveAttributeElementDamage( pois, ref weapPois, weapPhys ); weapPhys = weapon.RemoveAttributeElementDamage( fire, ref weapFire, weapPhys ); weapPhys = weapon.RemoveAttributeElementDamage( nrgy, ref weapNrgy, weapPhys ); weapPhys = weapon.RemoveAttributeElementDamage( cold, ref weapCold, weapPhys ); weapon.AosElementDamages.Physical = weapPhys; weapon.AosElementDamages.Cold = weapCold; weapon.AosElementDamages.Energy = weapNrgy; weapon.AosElementDamages.Fire = weapFire; weapon.AosElementDamages.Poison = weapPois; weapon.AosElementDamages.Chaos = weapChaos; weapon.AosElementDamages.Direct = weapDirect; }
public static void AssignElementalDamage( BaseWeapon weapon, ElementAttribute attr ) { int fire, phys, cold, nrgy, pois; weapon.GetDamageTypes( null, out phys, out fire, out cold, out pois, out nrgy ); AssignElementalDamage( weapon, attr, phys ); weapon.Hue = weapon.GetElementalDamageHue(); }
public static void ApplyElementDamages( BaseWeapon weapon, int cold, int nrgy, int fire, int pois, int chaos, int direct ) { int weapPhys, weapCold, weapNrgy, weapFire, weapPois, weapChaos, weapDirect; weapon.GetDamageTypes( null, out weapPhys, out weapFire, out weapCold, out weapPois, out weapNrgy, out weapChaos, out weapDirect ); weapPhys = weapon.ApplyAttributeElementDamage( cold, ref weapCold, weapPhys ); weapPhys = weapon.ApplyAttributeElementDamage( nrgy, ref weapNrgy, weapPhys ); weapPhys = weapon.ApplyAttributeElementDamage( fire, ref weapFire, weapPhys ); weapPhys = weapon.ApplyAttributeElementDamage( pois, ref weapPois, weapPhys ); weapPhys = weapon.ApplyAttributeElementDamage( chaos, ref weapChaos, weapPhys ); weapPhys = weapon.ApplyAttributeElementDamage( direct, ref weapDirect, weapPhys ); weapon.AosElementDamages.Physical = weapPhys; weapon.AosElementDamages.Cold = weapCold; weapon.AosElementDamages.Energy = weapNrgy; weapon.AosElementDamages.Fire = weapFire; weapon.AosElementDamages.Poison = weapPois; weapon.AosElementDamages.Chaos = weapChaos; weapon.AosElementDamages.Direct = weapDirect; }