Thanks. It might be best to wait for next version, because things will be much easier.WOW, this looks incredible.
*cough* let me showcase it
Code:
// Create a new 'Earth' Element, the CreateElement method returns the type of the newly added element.
// If something went wrong, it will return -1
int earth = ElementalFramework.CreateElement(this, "Earth", Color.RosyBrown);
myElements.Add(earth); // add our index so we can use it in other classes such as our accessory
// Add our custom behaviour to our element
ElementalFramework.CreateOnHitBehaviour(earth, new ElementalFramework.Behaviour.OnHitNPC(EarthOnHitNPC), null, new ElementalFramework.Behaviour.ProjectileOnHitNPC(EarthProjectileOnHitNPC));
// Add our custom damage calculation to our element
ElementalFramework.ModifyDamage(earth, new ElementalFramework.Info.CalculateDamage(EarthDamageCalc));
// Misc
ElementalFramework.SetWeight(earth, 200); // Our element has twice the chance to roll (default weight: 100)
ElementalFramework.CreateDisplayName(earth, "earth"); // just to showcase this method :P