Scriptname _00E_ClosedChestAlias extends ReferenceAlias  

Int Property LOCK_LEVEL_NOVICE 	   = 1 AutoReadOnly
Int Property LOCK_LEVEL_APPRENTICE = 25 AutoReadOnly
Int Property LOCK_LEVEL_ADEPT 	   = 50 AutoReadOnly
Int Property LOCK_LEVEL_EXPERT 	   = 75 AutoReadOnly
Int Property LOCK_LEVEL_MASTER     = 254 AutoReadOnly

Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)

	ObjectReference hitRef = GetReference()

	If akAggressor != PlayerREF || hitRef.IsLocked() == False
		Return
	EndIf

	Int projectileLevel = 0

	If akProjectile == _00E_UnlockProjectile_Novice
		projectileLevel = LOCK_LEVEL_NOVICE
	ElseIf akProjectile == _00E_UnlockProjectile_Apprentice
		projectileLevel = LOCK_LEVEL_APPRENTICE
	ElseIf akProjectile == _00E_UnlockProjectile_Adept
		projectileLevel = LOCK_LEVEL_ADEPT
	ElseIf akProjectile == _00E_UnlockProjectile_Expert
		projectileLevel = LOCK_LEVEL_EXPERT
	ElseIf akProjectile == _00E_UnlockProjectile_Master
		projectileLevel = LOCK_LEVEL_MASTER
	ElseIf akSource
		Formlist unlockSpells = _00E_ChestAndDoorUnlockScript_UnlockSpells
		If unlockSpells.HasForm(akSource)
			If akSource == unlockSpells.GetAt(0) as Explosion
				projectileLevel = LOCK_LEVEL_APPRENTICE
			ElseIf akSource == unlockSpells.GetAt(1) as Explosion
				projectileLevel = LOCK_LEVEL_ADEPT
			ElseIf akSource == unlockSpells.GetAt(2) as Explosion
				projectileLevel = LOCK_LEVEL_EXPERT
			ElseIf akSource == unlockSpells.GetAt(3) as Explosion
				projectileLevel = LOCK_LEVEL_MASTER
			EndIf
		EndIf
	EndIf

	If projectileLevel > 0
		Int lockLevel = hitRef.GetLockLevel()
		If lockLevel > LOCK_LEVEL_MASTER
			_00E_sDoorLocked.Show()
			WPNTG06ControlStaffShootFailM.Play(hitRef)
		ElseIf projectileLevel >= lockLevel
			; Unlock
			hitRef.Lock(False)
			_00E_UILockpickingUnlockM.Play(hitRef)
			_00E_Ability_Antimagic_FXSShader.Play(hitRef)
			hitRef.PlaceAtMe(_00E_UnlockLockExplosion, 1)
		EndIf
	EndIf

EndEvent

Projectile Property _00E_UnlockProjectile_Novice Auto
Projectile Property _00E_UnlockProjectile_Apprentice Auto
Projectile Property _00E_UnlockProjectile_Adept Auto
Projectile Property _00E_UnlockProjectile_Expert Auto
Projectile Property _00E_UnlockProjectile_Master Auto

Message Property _00E_sDoorLocked Auto

Sound Property _00E_UILockpickingUnlockM Auto
Sound Property WPNTG06ControlStaffShootFailM Auto

EffectShader Property _00E_Ability_Antimagic_FXSShader Auto
Explosion Property _00E_UnlockLockExplosion Auto

FormList Property _00E_UnlockScrolls  Auto  
FormList Property _00E_ChestAndDoorUnlockScript_UnlockSpells Auto

Actor Property PlayerREF Auto