A Short Document On Using Health. (health.inc v2.10)
First, the damage functions used by the move scripts:



//ApplyHitPrimary( who, attacker := 0, weapon := 0, location := 0, accuracy := 0, criticalChance := 0 )

Parameters:
  who		        The person receiving damage (opponent)
  attacker	        The person dealing damage (not required, and not used as of yet - but may be used later for accuracy, etc)
  weapon                The weapon that the attacker is using
  location	        The preferred location to hit (string for a validy location key from locations.cfg)
  		          If '0' is passed, then a random top-level location is chosen
  	        	  If location is an array, then a random location is chosen from that array
          		  If location is a string, then an accuracy check is made:
  	        	    If (RandomInt(100) > accuracy), then a random top-level location (excluding the passed location) is chosen
          		      If this fails, then 'location' is set as the hitLocation
  		            If (RandomInt(100) < accuracy), then 'location' is set as the hitLocation
  accuracy              Percentage Integer 0-100.
  criticalChance        Percentage Integer 0-100 that the hit will be critical.

Returns 'details' struct, with the following members:
  .bodyType		The type of body of 'who' (the person receiving damage) [string]
  .hitLocation		The location that has been chosen to hit on 'who' [string]
  .accuracy		The originally passed accuracy. (for my own personal satisfaction)
  .armour		The items of armour that have an effect (ie. coverage) on the current hitLocation. [array of objrefs]
  .attacker		The mobileref passed for attacker
  .weapon               The itemref of the weapon passed
  .weaponType           The type of weapon passed
  .criticalChance	The criticalChance that was passed earlier
  .critical		Is this hit critical? 1/0

Notes on editing the current details struct:
  'bodyType' must be a valid element key from bodytypes.cfg in the health package.
  'hitLocation' must be a valid location key from locations.cfg in the health package.
    -it doesn't have to be a part of the specified bodyType, but it should be
    -if you change the hitLocation, you'll have to recalculate the armour manually. to do this, use the following:
      details.armour := GetItemsCovering( who, details.hitLocation );



//ApplyHitSecondary( who, rating, stamina, details )

Parameters:
  who		The person receiving damage (opponent)
  rating	Raw HP Damage rating
  stamina	Raw Stamina Damage rating
  details	The details struct originally returned from "ApplyHitPrimary()"

Returns modified 'details' struct, with the following additional/changed members:
  .rating		HP damage rating after armour saturation. [integer]
  .stamina		Stamina rating [integer]
  .injuryConfig		CfgRef to injuries.cfg in health package. [cfgref]
  .injuries		An array of injury keys that have a chance of being applied to 'who' [array of strings]
  .preRating            The HP damage rating before armour saturation, but after location modifiers. [integer]
  .preStamina           The Stamina rating before armour saturation, but after location modifiers. [integer]

Notes on editing the current details struct:
  'rating' may be freely edited, but the armour has already been damaged. any rating changes now will not affect the armour.
  'stamina' may be freely edited. (at this stage, armour has no affect on stamina damage)
  'injuryConfig' should not be touched.
  'injuries' may be edited, but they must be valid element keys from injuries.cfg in the health package.
  'preRating' and 'preStamina' are no longer used by the core. Editing them will have no effect.



//ApplyHitTertiary( who, details, injuryCount := 1 )

Parameters:
  who		The person receiving damage (opponent)
  details	The details struct returned from "ApplyHitSecondary()"
  injuryCount	Number of injuries from the injury array to apply to the person. '-1' will apply all injuries.

Returns modified 'details' struct with the following additional members.
  .trueHitPointDamage		return value of DamageHp()
  .trueStaminaDamage		return value of DamageStamina()