//This function makes an item fall to the floor when spawned
IfSpawned
  tmpargument = ACTIONJB
  DoAction
  KeepAction
IfDropped				// Make it lie on floor
  KeepAction
IfGrabbed				// Tell them what they've won, Johnny!
  SetTargetToWhoeverIsHolding
  IfTargetIsAPlayer
    tmpargument = 0
    SendMessageNear
IfHitGround
  tmpargument = 0
  tmpdistance = rand & 2047 + 8000
  PlaySound
  tmpargument = ACTIONDB
  DoAction
IfHeld			//Hide in hand
  tmpargument = 1
  SetState
Else
  tmpargument = 0
  SetState

//Spell stuff
IfUsed
  SetTargetToWhoeverIsHolding
  tmpargument = [HMAG]
  IfTargetHasSkillID				//Need divine spell skill
    GetContent
    tmpx = tmpargument
    tmpy = 1280					//Don't overcharge
    IfXIsLessThanY
      tmpy = targetmanaflow			//Enough spell power?
      IfYIsMoreThanX
        tmpargument = 5				//Mana cost
        CostTargetMana
          GetContent				  //Increase the charge
          tmpargument = tmpargument + 8 	//Casting Time
          SetContent
    // Spawn particles around target
    tmpargument = [NONE]
    tmpdistance = 5  // Dead friends
    SetTargetToNearestBlahID
    tmpx = targetdistance
    tmpy = 200
    IfXIsMoreThanY			//No target in range, select caster
      SetTargetToWhoeverIsHolding
    GetContent
    tmpx = tmpargument
    tmpy = 1200
    IfXIsMoreThanY		//Enough power to activate?
      tmpargument = 2		//Spawn charging particle
    Else
      tmpargument = 1		//Spawn finished charging particle
    tmpx = targetx
    tmpy = targety
    tmpdistance = targetz
    SpawnExactParticle
    tmpargument = YELLOW
    SparkleIcon

Else
  GetContent
  tmpx = tmpargument
  tmpy = 1200
  IfXIsMoreThanY		//Enough power to activate?
    IfTargetIsAlive		//The target is the caster!
      tmpargument = 4
      SendMessageNear
      tmpargument = 2
      tmpdistance = rand & 6000 + 11000
      PlaySound
      FlashTarget
    Else			//The target is a dead creature
      RespawnTarget
      tmpargument = 3
      SendMessageNear		//Tell what happened
      tmpargument = 1
      tmpdistance = rand & 6000 + 11000
      PlaySound
    tmpargument = 200		//Set cooldown time
    SetReloadTime

  Else				
    GetContent
    tmpx = tmpargument
    tmpy = 0
    IfXIsMoreThanY		//Only if there was a charge
      tmpargument = 1
      SendMessageNear		//Tell it didn't work
      tmpargument = 2
      tmpdistance = rand & 6000 + 11000
      PlaySound
  tmpargument = 0
  SetContent			//Reset counter
  UnsparkleIcon

  //Award xp and stuff for daring to do it
  IfNameIsKnown
    DoNothing
  Else
    tmpargument = 20
    tmpdistance = EXPDARE
    GiveExperienceToTarget
    MakeNameKnown
    MakeUsageKnown

// Put the little mana ball on the
// character's hand
GetContent
tmpx = tmpargument
tmpy = 0
IfXIsMoreThanY
  tmpturn = tmpargument < 3
  tmpdistance = SPAWNORIGIN
  tmpargument = 0
  SpawnAttachedSizedParticle

End					// All done
