Scriptname CWCatapultStrikeScript extends ObjectReference  

;This script handles the "fallout 3 artillary" style catapult strike for use when the actual projectile firing catapults unload.


Explosion Property ExplosionObject	Auto
{BASEOBJECT: the explosion to use -> CWCatapultExp}

int deleteAfterTime = 10
bool dead = false ; If true, then we are dead and we shouldn't try to register for stuff

Event OnInit()
	Cell parentCell = GetParentCell()
	if !parentCell || !parentCell.IsAttached()
		dead = true
		Delete()
	EndIf
EndEvent

Event OnLoad()
	if !dead
		bool Registered = RegisterForAnimationEvent(self, "end")
; 		debug.trace(self + "OnLoad() successfully registered for event?:" + Registered)	
		
		RegisterForSingleUpdate(deleteAfterTime)
	EndIf
EndEvent

Event OnAnimationEvent(ObjectReference akSource, string asEventName)
; 	debug.trace(self + "OnAnimationEvent(:" + asEventName )
	
	if asEventName == "end"
		PlaceAtMe(ExplosionObject)
		UnregisterForAnimationEvent(self, "end")
		deleteMe()
	EndIf
EndEvent

Event OnUpdate()
	deleteMe()
EndEvent

Event OnAnimationEventUnregistered(ObjectReference akSource, string asEventName)
	deleteMe()
EndEvent 

Event deleteMe()
	dead = true
	UnregisterforUpdate()
	UnregisterForAnimationEvent(self, "end")
	Disable()
	Delete()
EndEvent