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
|
||
|
|
||
|
|