87 lines
2.2 KiB
Plaintext
87 lines
2.2 KiB
Plaintext
scriptName dunFolgunthurCataLeverPuzzle extends ObjectReference Conditional
|
|
{Synchronized lever-and-portcullis puzzle in Folgunthur. Used to keep all the levers and gates in sync and more explicitly manage the puzzle.}
|
|
|
|
import debug
|
|
import utility
|
|
|
|
|
|
Action property animAction auto
|
|
Bool Property SingleUse auto
|
|
Bool Property HasBeenUsed auto Conditional
|
|
Bool Property InPushedPosition auto
|
|
int Property PuzzleLeverNumber auto
|
|
|
|
ObjectReference Property Lever1 auto
|
|
ObjectReference Property Lever2 auto
|
|
ObjectReference Property Lever3 auto
|
|
ObjectReference Property Lever4 auto
|
|
|
|
ObjectReference Property Gate1 auto
|
|
ObjectReference Property Gate2 auto
|
|
ObjectReference Property Gate3 auto
|
|
ObjectReference Property Gate4 auto
|
|
|
|
Bool Lever1Up = False
|
|
Bool Lever2Up = False
|
|
Bool Lever3Up = False
|
|
Bool Lever4Up = False
|
|
|
|
Auto STATE WaitingForPlayer
|
|
EVENT onActivate (objectReference triggerRef)
|
|
GoToState("WaitingForLever")
|
|
if (triggerRef == Lever1)
|
|
Gate1.Activate(Self)
|
|
Gate3.Activate(Self)
|
|
Gate4.Activate(Self)
|
|
if (Lever1Up)
|
|
Lever1Up = False
|
|
Lever1.playAnimationandWait("FullPull","FullPulledDown")
|
|
Else
|
|
Lever1Up = True
|
|
Lever1.playAnimationandWait("FullPush","FullPushedUp")
|
|
EndIf
|
|
GotoState("WaitingForPlayer")
|
|
ElseIf (triggerRef == Lever2)
|
|
Gate2.Activate(Self)
|
|
Gate3.Activate(Self)
|
|
if (Lever2Up)
|
|
Lever2Up = False
|
|
Lever2.playAnimationandWait("FullPull","FullPulledDown")
|
|
Else
|
|
Lever2Up = True
|
|
Lever2.playAnimationandWait("FullPush","FullPushedUp")
|
|
EndIf
|
|
GotoState("WaitingForPlayer")
|
|
ElseIf (triggerRef == Lever3)
|
|
Gate3.Activate(Self)
|
|
if (Lever3Up)
|
|
Lever3Up = False
|
|
Lever3.playAnimationandWait("FullPull","FullPulledDown")
|
|
Else
|
|
Lever3Up = True
|
|
Lever3.playAnimationandWait("FullPush","FullPushedUp")
|
|
EndIf
|
|
GotoState("WaitingForPlayer")
|
|
ElseIf (triggerRef == Lever4)
|
|
Gate1.Activate(Self)
|
|
Gate4.Activate(Self)
|
|
if (Lever4Up)
|
|
Lever4Up = False
|
|
Lever4.playAnimationandWait("FullPull","FullPulledDown")
|
|
Else
|
|
Lever4Up = True
|
|
Lever4.playAnimationandWait("FullPush","FullPushedUp")
|
|
EndIf
|
|
GotoState("WaitingForPlayer")
|
|
EndIf
|
|
EndEvent
|
|
EndState
|
|
|
|
STATE WaitingForLever
|
|
Event onActivate(objectReference triggerRef)
|
|
;Do Nothing
|
|
EndEvent
|
|
EndState
|
|
|
|
|