Scriptname _00E_TreasureMarkerScript extends ObjectReference Import Utility ;===================================================================================== ; EVENTS ;===================================================================================== Auto State Waiting Event OnLoad() Self.BlockActivation() endEvent Event OnActivate (ObjectReference akActionRef) If akActionRef.GetItemCount(ShovelKeyword) > 0 TreasureDigger = akActionRef as Actor if TreasureDigger.IsInCombat() _00E_TreasureMarkerScript_sCannotDigInCombat.Show() Else GoToState("CurrentlyDigging") EndIf Else _00E_TreasureMarkerScript_sShovelNeeded.Show() EndIf EndEvent EndState State CurrentlyDigging Event OnBeginState() Form[] equippedTorches = New Form[2] Bool isFirstPerson = False ; Start digging If TreasureDigger == PlayerREF Game.SetPlayerAIDriven() Game.DisablePlayerControls(true, true, true, true, true, true, true, true) isFirstPerson = PlayerREF.GetAnimationVariableBool("IsFirstPerson") Game.ForceThirdPerson() EndIf ; TreasureDigger.PathToReference(Self, 1.0) If TreasureDigger == PlayerREF Bool torchesUnequipping = (PlayerREF as _00E_PlayerFunctions).UnequipTorches(equippedTorches) If TreasureDigger.IsWeaponDrawn() ; Sheathe the weapon TreasureDigger.PlayIdle(DefaultSheathe) Wait(2) ElseIf isFirstPerson ; Give some time for the camera to settle on switch to 3p Wait(0.5) ElseIf torchesUnequipping ; Give some time for torch unequip animations to settle Wait(0.25) EndIf EndIf Debug.SendAnimationEvent(TreasureDigger, "IdleSmelterEnter") Wait(5.0) ; Stop digging Debug.SendAnimationEvent(TreasureDigger, "IdleForceDefaultState") If TreasureDigger == PlayerREF Game.SetPlayerAIDriven(false) Game.EnablePlayerControls() (PlayerREF as _00E_PlayerFunctions).ReequipTorches(equippedTorches) Else (TreasureDigger as Actor).EvaluatePackage() EndIf Wait(1) If TreasureDigger == PlayerREF && isFirstPerson == True Game.ForceFirstPerson() EndIf Self.BlockActivation(False) Self.Activate(TreasureDigger) GoToState("Alldone") EndEvent EndState State AllDone Event OnBeginState() ;Nothing to do here EndEvent ;Nothing to do here EndState ;===================================================================================== ; PROPERTIES ;===================================================================================== Actor TreasureDigger Message Property _00E_TreasureMarkerScript_sCannotDigInCombat Auto Message Property _00E_TreasureMarkerScript_sShovelNeeded Auto Keyword Property ShovelKeyword Auto Actor Property PlayerREF Auto Idle Property DefaultSheathe Auto