home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar 2006 April
/
Gamestar_83_2006-04_dvd.iso
/
Dema
/
keepsake_demo_en.exe
/
res
/
scripts
/
crescentCoastWaterway.tcl
< prev
next >
Wrap
Text File
|
2005-12-07
|
40KB
|
1,390 lines
################################################################################
# ##
# file crescentCoastWaterway.tcl ##
# brief Events for the Crescent Coast Waterway. ##
# ##
################################################################################
## ===================================================== ##
## Loading script from source ##
## ===================================================== ##
global SCRIPTS
source "$SCRIPTS/common.tcl"
source "[AUTO]/crescentCoastWaterway.mvwrap.tcl"
source "[PUZZLES]/crescentCoastWaterway.camera.tcl"
source "[PUZZLES]/crescentCoastWaterway.puzzle.tcl"
## ===================================================== ##
## Initialization ##
## ===================================================== ##
event "init" {
zakFollowDist 30
ozSet "crescentCoastWaterwayRoom" "visited"
SetAmbient 2d ambiance/basement "0 0 0" 0 0
SetAmbient 3d sfx/machineA "541.508 -17.481 274.492" 30 0 0.6
SetAmbient 3d sfx/machineB "584.563 22.187 323.312" 30 0 0.6
SetAmbient 3d sfx/machineC "634.052 22.187 318.092" 30 0 0.6
SetAmbient 3d sfx/machineD "589.581 -16.969 267.858" 30 0 0.6
SetAmbient 3d sfx/machineE "605.908 -30.502 304.112" 30 0 0.6
SetAmbient 3d sfx/fallsFar "1500 -27 -461" 10000 0
SetAmbient 3d sfx/millWheel "594.459 -21.683 372.964" 30 1 0.6
}
################################################################################
## ========================================================================== ##
## DOOR BLOCKING & PUZZLE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## use plants ##
## ===================================================== ##
event "usePlants" {
eventState [wizEventStart "usePlants"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityMove Zak "491.6 -6 391.9" "wait"
wizqEntityOrientation Zak 150
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia "498 -6.03 398" "crescentCoastWaterway.plantsBehavior" 2
wizqEventEnd "usePlants"
}
## ===================================================== ##
## Leaves ##
## ===================================================== ##
## trigger is when the player examine the leaves
event "plantsBehavior" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityMove Zak "491.6 -6 391.9" "wait"
wizqEntityOrientation Zak 150
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 170 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
if { [getVar "itemPagesYewlockLeaves"] == "pickedUp" } {
if { [getVar "potionMaking"] == "initiated" && [getVar "itemCirclet"] == "pickedUp" } {
chainEvent {
freezePlayer
wizDisableMouse
}
chainCallEvent "plantsZoomIn"
chainCallEvent "leafInitiated"
} elseif { [getVar "potionMaking"] == "initiated" && [getVar "itemCirclet"] == "pickedUp" && [getVar "itemNoteBook"] == "pickedUp" } {
chainEvent {
freezePlayer
wizDisableMouse
}
chainCallEvent "plantsZoomIn"
chainCallEvent "leafNeeded"
} elseif { [getVar "itemCirclet"] == "" && [getVar "itemNoteBook"] == "" } {
chainEvent {
freezePlayer
wizDisableMouse
}
chainCallEvent "plantsZoomIn"
chainCallEvent "leafDrawing"
} elseif { [getVar "itemCirclet"] == "pickedUp" || [getVar "itemNoteBook"] == "pickedUp" } {
chainEvent {
freezePlayer
wizDisableMouse
}
chainCallEvent "plantsZoomIn"
chainCallEvent "leafMightHelp"
}
} elseif { [getVar "leafDontCare"] == "" } {
callEvent "leafDontCare"
} elseif { [getVar "leafDontCare"] == "ok" } {
callEvent "leafDontNeed"
}
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
## ===================================================== ##
## use red plant ##
## ===================================================== ##
event "useRedPlant" {
ozSet "itemRedYewlock" "pickedUp"
ozSet "itemYewlockLeaf" "pickedUp"
ozqSound::NewFX "sound/sfx/yewlockPickup.ogg"
setCrossfadeCamera "redTakenPlants"
wizhCameraChange
chainEvent { delay 1000 }
chainCallEvent "plantsZoomOut"
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc yewlockLeavesRed
}
}
## ===================================================== ##
## use blue plant ##
## ===================================================== ##
event "useBluePlant" {
ozSet "itemBlueYewlock" "pickedUp"
ozSet "itemYewlockLeaf" "pickedUp"
ozqSound::NewFX "sound/sfx/yewlockPickup.ogg"
setCrossfadeCamera "blueTakenPlants"
wizhCameraChange
chainEvent { delay 1000 }
chainCallEvent "plantsZoomOut"
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc yewlockLeavesBlue
}
}
## ===================================================== ##
## use white plant ##
## ===================================================== ##
event "useWhitePlant" {
ozSet "itemWhiteYewlock" "pickedUp"
ozSet "itemYewlockLeaf" "pickedUp"
ozqSound::NewFX "sound/sfx/yewlockPickup.ogg"
setCrossfadeCamera "whiteTakenPlants"
wizhCameraChange
chainEvent { delay 1000 }
chainCallEvent "plantsZoomOut"
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc yewlockLeavesWhite
}
}
## ===================================================== ##
## use yellow plant ##
## ===================================================== ##
event "useYellowPlant" {
ozSet "itemYellowYewlock" "pickedUp"
ozSet "itemYewlockLeaf" "pickedUp"
ozqSound::NewFX "sound/sfx/yewlockPickup.ogg"
setCrossfadeCamera "yellowTakenPlants"
wizhCameraChange
chainEvent { delay 1000 }
chainCallEvent "plantsZoomOut"
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc yewlockLeavesYellow
}
}
## ===================================================== ##
## mill wheel Puzzle ##
## ===================================================== ##
event "useWheelPuzzleBehavior" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityWalk Zak "598.8 -16.9 426.1" "wait"
wizqEntityOrientation Zak 230 "wait"
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 270 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
if { [getVar "millWheelBig"] == "" } {
callEvent "millWheelBig"
} else {
wheelPuzzleZoomIn
}
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
################################################################################
## ========================================================================== ##
## MOVEMENT ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## To Elvandar Pathway ##
## ===================================================== ##
event "toElvandarPathway" {
setCamera "forest"
wizhCameraChange
wizqDisableMouse
chainEvent { standardFadeout }
chainEvent { wizEntitySetPositionRelative Lydia "787.6 -21.7 483" "794.6 -22.1 463" "4828.2 14.2 -201.8" "4849.2 11.4 -212.8" }
chainEvent { setScene "elvandarPathway" world }
chainEvent { wizEntitySetPosition Zak "4847.2 12.9 -194.8" }
chainEvent { wizEntitySetOrientation Zak 130 }
chainEvent { wizEntitySetOrientation Lydia 150 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent {delay 1}
chainEvent { standardFadein }
wizqEnableMouse
}
## ===================================================== ##
## transForest ##
## ===================================================== ##
event "transForest" {
wizEntityMoveXRelative Lydia 0.68 0.87 "810 -21.6 490" "810 -22.2 465.4"
}
## ===================================================== ##
## transWallCrack ##
## ===================================================== ##
event "transWallCrack" {
wizEntityMove Lydia "308.6 -6.03 466.9" "crescentCoastWaterway.toBasement" 2
}
## ===================================================== ##
## toBasement ##
## ===================================================== ##
event "toBasement" {
wizqDisableMouse
chainEvent { standardFadeout }
chainEvent { wizEntitySetPosition Lydia "285.1 16.8 496.5" }
chainEvent { wizEntitySetPosition Zak "281.1 16.8 496.5" }
chainEvent { setScene "basement" worldBottom }
chainEvent { wizEntitySetOrientation Lydia 180 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { wizEntitySetOrientation Zak 170 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { standardFadein }
wizqEnableMouse
}
## ===================================================== ##
## toMill ##
## ===================================================== ##
event "toMill" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityMove Zak "558.6 -16.9 353" "wait"
wizqEntityOrientation Zak 340
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 10 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
wizqDisableMouse
if { [getVar "puzzleMillTools"] == "" } {
callEvent "puzzleMillToolsBehavior"
} else {
eventState [wizEventStart "toMill"]
chainEvent { freezePlayer }
wizEntityOrientation Lydia 10
Play3DSound "characters/lydia/smallDoorUnlocked"
wizqEntityAction Lydia standOpenDoorLeftHand
chainEvent { delay 2200 }
chainEvent { standardFadeout }
chainEvent { delay 1000 }
chainEvent { wizEntitySetPosition Lydia "554.1 -16.2 326.3" }
chainEvent { wizEntitySetPosition Zak "561.1 -16.2 324.5" }
chainEvent { setScene "mill" worldDown }
chainEvent { wizEntitySetOrientation Lydia 20 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { standardFadein }
chainEvent { unfreezePlayer }
wizqEventEnd "toMill"
}
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
## ===================================================== ##
## transBarrel ##
## ===================================================== ##
event "transBarrel" {
eventState [wizEventStart "transBarrel"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityMove Zak "558.6 -16.9 353" "wait"
wizqEntityOrientation Zak 340
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia "552.6 -16.8 339" "crescentCoastWaterway.toMill" 2
wizqEventEnd "transBarrel"
}
## ===================================================== ##
## useWheelPuzzle ##
## ===================================================== ##
event "lookWheelPuzzle" {
eventState [wizEventStart "lookWheelPuzzle"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityWalk Zak "598.8 -16.9 426.1" "wait"
wizqEntityOrientation Zak 230 "wait"
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia "587.6 -16.9 438" "crescentCoastWaterway.useWheelPuzzleBehavior" 2
wizqEventEnd "lookWheelPuzzle"
}
## ===================================================== ##
## trans Mill Wheel ##
## ===================================================== ##
event "transMillWheel" {
wizEntityMove Lydia "544.6 -16.8 390"
}
## ===================================================== ##
## trans Gears ##
## ===================================================== ##
event "transGears" {
wizEntityMove Lydia "583.6 -16.9 423.9"
}
################################################################################
## ========================================================================== ##
## ANIMATION & SPECIAL CAMERA SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Pendant is breaking ##
## ===================================================== ##
event "pendantBreakingMovie" {
ozSet "puzzleBrokePendant" "complete"
chainEvent {
#all of this end in pendantBreak
freezePlayer
wizDisableMouse
wizEntityStopFollow Zak
wizEntitySetPosition Zak "311.6 -6.02 463.9"
wizEntitySetOrientation Zak 90
wizEntitySetPosition Lydia "317.8 -6 468.2"
chainEvent { oz'track::play $::music_track "sound/music/pendant.ogg" }
wizEntitySetOrientation Lydia 80
wizEntitySetCycle Lydia crouchCycleNormal
setScene "crescentCoastWaterway" world
setCamera "brokenWatch"
wizhCameraChange
hRemoveBack
wizEntityShow Lydia
wizEntityShow Zak
}
chainEvent { delay 1500 }
ozqSound::NewFX "/sound/sfx/lydiaFall.ogg"
chainEvent { oz'track::play $::music_track "sound/music/pendant.ogg" }
#chainEvent { delay 500 }
chainEvent { standardFadein }
chainCallEvent "pendantBreak"
}
## ===================================================== ##
## Moving the shovels ##
## ===================================================== ##
event "millToolsMovie" {
ozSet "puzzleMillTools" "complete"
chainEvent {delay 1}
chainEvent {standardFadeout}
chainEvent {
freezePlayer
wizDisableMouse
wizEntityStopFollow Zak
setCamera "barrelNoBlock"
wizhCameraChange
hRemoveBack
wizEntityShow Lydia
wizEntityShow Zak
}
Play3DSound "sfx/removeTools"
oz'event {oz'delay 3.0}
chainEvent {standardFadein}
chainEvent {
showInterface
showMouse
stopMovie
unfreezePlayer
wizEnableMouse
wizEntityResumeFollow Zak
}
}
## ===================================================== ##
## The wheel is turning! ##
## ===================================================== ##
event "millWheelSolvedMovie" {
chainEvent {
freezePlayer
wizDisableMouse
wizEntityStopFollow Zak
wizEntitySetPosition Zak "598.8 -16.9 426.1"
wizEntityLookAt Zak [wizEntityGetPosition Lydia]
wizEntitySetCycle Zak sitCycleNormal
setCamera "gears"
wizhCameraChange
hRemoveBack
wizEntityShow Lydia
wizEntityShow Zak
}
chainEvent {
showInterface
showMouse
unfreezePlayer
wizEnableMouse
wizEntityResumeFollow Zak
}
callEvent "millWheelSolved"
}
## ===================================================== ##
## Plants Zoom In ##
## ===================================================== ##
event "plantsZoomIn" {
wizqEntityChangeCycle Lydia crouchCycleNormal standToCrouch "wait"
wizqZoomIn "plantsCloseUp" "crescentCoastWaterway.plantsZoomOut"
}
## ===================================================== ##
## Pkants Zoom Out ##
## ===================================================== ##
event "plantsZoomOut" {
chainEvent {
freezePlayer
wizDisableMouse
hRemoveBack
}
wizqEntitySetCycle Lydia crouchCycleNormal
wizqZoomOut [cameraStairs]
chainEvent { hRemoveBack }
wizqDisableMouse
chainEvent { delay 100 }
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
chainEvent {
unfreezePlayer
wizEnableMouse
MainEnableSidebar
}
}
## ===================================================== ##
## use plants Stairs Camera proc ##
## ===================================================== ##
proc cameraStairs { } {
if { [getVar "itemBlueYewlock"] == "pickedUp" } {
return "blueTakenStairs"
}
if {[getVar "itemRedYewlock"] == "pickedUp" } {
return "redTakenStairs"
}
if {[getVar "itemWhiteYewlock"] == "pickedUp" } {
return "whiteTakenStairs"
}
if {[getVar "itemYellowYewlock"] == "pickedUp" } {
return "yellowTakenStairs"
}
return "stairs"
}
## ===================================================== ##
## Stairs Camera ##
## ===================================================== ##
event "stairs" {
setCamera [cameraStairs]
wizhCameraChange
}
## ===================================================== ##
## wall Crack camera ##
## ===================================================== ##
event "wallCrack" {
setCamera "wallCrack"
wizhCameraChange
if { [ozGet "puzzleBrokePendant"] == "complete" } {
wizEntityResumeFollow Zak
}
}
## ===================================================== ##
## barrel camera ##
## ===================================================== ##
event "barrel" {
if { [getVar "puzzleMillTools"] == "complete" } {
setCamera "barrelNoBlock"
wizhCameraChange
} else {
setCamera "barrel"
wizhCameraChange
}
}
## ===================================================== ##
## mill wheel camera ##
## ===================================================== ##
event "millWheel" {
if { [getVar "puzzleMillTools"] == "complete" } {
setCamera "millWheelNoBlock"
wizhCameraChange
} else {
setCamera "millWheel"
wizhCameraChange
}
}
## ===================================================== ##
## Wine Cave Puzzle Zoom In ##
## ===================================================== ##
proc wheelPuzzleZoomIn { } {
wizqZoomIn puzzleMillWeightCloseUp "crescentCoastWaterway.wheelPuzzleZoomOut"
}
## ===================================================== ##
## Wine Cave Puzzle Zoom Out ##
## ===================================================== ##
event "wheelPuzzleZoomOut" {
zq'reset 0
chainEvent {wizDisableMouse}
wizqZoomOut gears
chainEvent { hRemoveBack }
chainEvent {wizEnableMouse}
}
## ===================================================== ##
## door frame camera ##
## ===================================================== ##
event "doorFrame" {
wizEntityResumeFollow Zak
setCamera "doorFrame"
wizhCameraChange
}
## ===================================================== ##
## river camera ##
## ===================================================== ##
event "river" {
wizEntityResumeFollow Zak
setCamera "river"
wizhCameraChange
}
## ===================================================== ##
## forest camera ##
## ===================================================== ##
event "forest" {
setCamera "forest"
wizhCameraChange
if { [ozGet "minotaurMazeFigurines"] == "pickedUp" } {
ozSet "puzzleMustavioPathway" "complete"
wizEntityHide Npc
} else {
wizEntityHide Npc
}
}
################################################################################
## ========================================================================== ##
## NPC DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## FORCED DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Time Stop ##
## ===================================================== ##
## trigger is when the player enter the Crescent Coast
## Waterway for the first time
event "pendantBreak" {
checkConversation "pendantBreak" {
wizqEntityStopFollow Zak
# Block 1
wizqQueue 1 {
chainEvent { delay 2000 }
wizqZoomOut "wallCrack"
chainEvent { hRemoveBack }
wizqDisableMouse
Play3DSound "characters/lydia/lydiaPendantPickup"
wizqEntityAction Lydia "crouchTake" "wait"
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
}
# Block 1-B
wizqQueue 2 {
chainEvent { delay 2500 }
wizqEntityWalk Zak "320 -6 463.5" "wait"
chainEvent { wizEntityLookAt Zak "322.2 -6 468.2" }
ozqSound::NewFX "sound/characters/Zak/snif.ogg"
wizqEntityAction Zak standSniffing "wait"
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntitySetCycle Zak sitCycleNormal
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::pendantBreakL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakL1.ogg"
wizqTalkSay Zak $::lng::pendantBreakZ1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakZ1.ogg"
wizqTalkClose
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntityChangeWalkSpeed Zak 8
# Block 2
wizqQueue 1 {
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::pendantBreakL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakL2.ogg"
# Block 2-B
wizqQueue 2 {
chainEvent { delay 1000 }
wizqEntityAction Zak sitYes "wait"
}
wizqTalkSay Zak $::lng::pendantBreakZ2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakZ2.ogg"
# Wait for Block 2 & 2-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 3
wizqQueue 1 {
wizqEntityWalk Lydia "361.6 -6 453" "wait"
wizqEntityWalk Lydia "386.6 -6 432"
}
# Block 3-B
wizqQueue 2 {
wizqEntityWalk Zak "350.6 -6 451" "wait"
wizqEntityWalk Zak "380.6 -6 422"
}
wizqTalkSay Lydia $::lng::pendantBreakL3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakL3.ogg"
# Wait for Block 3 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 4
wizqQueue 1 {
wizqEntityWalk Lydia "386.6 -6 432" "wait"
wizqEntityWalk Lydia "389.6 -6 424" "wait"
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
}
# Block 4-B
wizqQueue 2 {
chainEvent { delay 1000 }
wizqEntityWalk Zak "380.6 -6 422" "wait"
wizqEntityWalk Zak "392 -6 409.4" "wait"
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
}
wizqTalkSay Zak $::lng::pendantBreakZ3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakZ3.ogg"
# Wait for Block 4 & 4-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 5
wizqQueue 1 {
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
wizqEntityAction Lydia standTalkHandHip "wait"
}
# Block 5-B
wizqQueue 2 {
chainEvent { delay 500 }
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
}
wizqTalkSay Lydia $::lng::pendantBreakL4 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakL4.ogg"
# Wait for Block 6
wizqWaitQueue 1
# Block 6
wizqQueue 1 {
wizqEntityAction Lydia standDisbelief "wait"
}
wizqTalkSay Lydia $::lng::pendantBreakL5 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakL5.ogg"
# Wait for Block 6 & 5-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntityChangeWalkSpeed Zak 16
# Block 7
wizqQueue 1 {
chainEvent { delay 1000 }
wizqEntityAction Lydia standArmCross "wait"
}
# Block 7-B
wizqQueue 2 {
chainEvent { delay 1500 }
wizqEntityAction Zak standYes "wait"
}
wizqTalkSay Zak $::lng::pendantBreakZ4 "sound/vo/$::LNG/scenes/crescentCoastWaterway/pendantBreakZ4.ogg"
wizqTalkClose
# Wait for Block 7 & 7-B
wizqWaitQueue 1
wizqWaitQueue 2
}
if { [getVar "specialPendant"] == "" } {
setEventPriority optionnalConversation.specialPendantBehavior long
ozSet "specialPendant" "initiated"
}
chainEvent {standardFadeout}
chainEvent {
set ::img1 [wq'widget::new "walkthru/[MODE]/img/thankyou.jpg" -alpha 1 -foreground -depth -0.965]
}
chainEvent {standardFadein}
chainEvent {oz'delay 5}
chainEvent {standardFadeout}
chainEvent {delete $::img1}
chainEvent {closeGameNoSave}
}
## ===================================================== ##
## Leaves needed ##
## ===================================================== ##
event "leafNeeded" {
checkConversation "leafNeeded" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::leafNeededL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededL1.ogg"
wizqTalkSay Lydia $::lng::leafNeededL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededL2.ogg"
wizqTalkSay Zak $::lng::leafNeededZ1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededZ1.ogg"
wizqTalkSay Lydia $::lng::leafNeededL3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededL3.ogg"
wizqTalkSay Zak $::lng::leafNeededZ2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededZ2.ogg"
wizqTalkClose
}
chainEvent {
MainDisableSidebar
MainDisableTalk
}
chainEvent {
unfreezePlayer
wizEnableMouse
}
}
## ===================================================== ##
## Leaves Initiated ##
## ===================================================== ##
event "leafInitiated" {
checkConversation "leafInitiated" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::leafNeededL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededL1.ogg"
wizqTalkSay Lydia $::lng::leafInitiatedL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafInitiatedL1.ogg"
wizqTalkSay Zak $::lng::leafNeededZ1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededZ1.ogg"
wizqTalkSay Lydia $::lng::leafNeededL3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededL3.ogg"
wizqTalkSay Zak $::lng::leafNeededZ2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafNeededZ2.ogg"
wizqTalkClose
}
chainEvent {
MainDisableSidebar
MainDisableTalk
}
chainEvent {
unfreezePlayer
wizEnableMouse
}
}
## ===================================================== ##
## Leaves Drawing ##
## ===================================================== ##
event "leafDrawing" {
checkConversation "leafDrawing" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::leafDrawingL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafDrawingL1.ogg"
wizqTalkSay Lydia $::lng::leafDrawingL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafDrawingL2.ogg"
wizqTalkClose
}
chainEvent {
MainDisableSidebar
MainDisableTalk
}
chainEvent {
unfreezePlayer
wizEnableMouse
}
}
## ===================================================== ##
## Leaves Might Help ##
## ===================================================== ##
event "leafMightHelp" {
checkConversation "leafMightHelp" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::leafMightHelpL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafMightHelpL1.ogg"
wizqTalkSay Lydia $::lng::leafMightHelpL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafMightHelpL2.ogg"
wizqTalkClose
}
chainEvent {
MainDisableSidebar
MainDisableTalk
}
chainEvent {
unfreezePlayer
wizEnableMouse
}
}
## ===================================================== ##
## Leaves don't care ##
## ===================================================== ##
event "leafDontCare" {
checkConversation "leafDontCare" {
wizqTalkOpen
wizqTalkSay Zak $::lng::leafDontCareZ1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafDontCareZ1.ogg"
wizqTalkSay Lydia $::lng::leafDontCareL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafDontCareL1.ogg"
wizqTalkClose
}
}
## ===================================================== ##
## Leaves don't need ##
## ===================================================== ##
event "leafDontNeed" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::leafDontNeedL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/leafDontNeedL1.ogg"
wizqTalkClose
}
## ===================================================== ##
## Mill Wheel too big ##
## ===================================================== ##
## trigger is when the player start to do the Mill Wheel
## puzzle for the first time
event "millWheelBig" {
checkConversation "millWheelBig" {
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
wizEntityStopFollow Zak
}
# Block 1
wizqQueue 1 {
chainEvent { delay 1000 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
}
# Block 1-B
wizqQueue 2 {
chainEvent { delay 500 }
wizqEntityAction Zak standNo "wait"
}
wizqTalkOpen
wizqTalkSay Zak $::lng::millWheelBigZ1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelBigZ1.ogg"
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 2
wizqQueue 1 {
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkSay Lydia $::lng::millWheelBigL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelBigL1.ogg"
# Block 2-B
wizqQueue 2 {
wizqEntityAction Zak standYes "wait"
}
wizqTalkSay Zak $::lng::millWheelBigZ2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelBigZ2.ogg"
# Wait for Block 2 & 2-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 3
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip
}
wizqTalkSay Lydia $::lng::millWheelBigL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelBigL2.ogg"
# Wait for Block 3
wizqWaitQueue 1
# Block 4
wizqQueue 1 {
wizqEntityAction Zak standLoseHope "wait"
}
# Block 4-B
wizqQueue 2 {
chainEvent { delay 1000 }
wizqEntityOrientation Lydia 270 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 1000 }
wheelPuzzleZoomIn
}
wizqTalkSay Lydia $::lng::millWheelBigL3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelBigL3.ogg"
wizqTalkClose
# Wait for Block 4 & 4-B
wizqWaitQueue 1
wizqWaitQueue 2
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
}
}
}
## ===================================================== ##
## Mill Wheel Solved ##
## ===================================================== ##
## trigger is when the player solve the Mill Wheel puzzle
event "millWheelSolved" {
ozSet "puzzleMillWheel" "complete"
ozSet "crescentCoastWaterway.lookWheelPuzzle" "false"
ozSet "crescentCoastWaterway.transWheelPuzzle" "false"
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
wizEntityStopFollow Zak
}
# Block 1
wizqQueue 1 {
chainEvent { delay 100 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
}
# Wait for Block 1
wizqWaitQueue 1
if { [ozGet "puzzleMill"] == "" } {
# Block 2
wizqQueue 1 {
Play3DSound characters/lydia/standHappy
wizqEntityAction Lydia standHappy "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::millWheelSolvedL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedL1.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
wizqEntitySetOrientationTarget Lydia Zak
}
# Block 3-B
wizqQueue 2 {
wizqEntityWalk Zak "596.6 -16.9 420" "wait"
wizqEntityOrientation Zak 350 "wait"
wizqEntitySetCycle Zak standCycleNormal
chainEvent { delay 2000 }
wizqEntityAction Zak standNo "wait"
}
wizqTalkSay Zak $::lng::millWheelSolvedZ1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedZ1.ogg"
# Wait for Block 3 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntitySetOrientationTarget Lydia None
# Block 4
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip
}
wizqTalkSay Lydia $::lng::millWheelSolvedL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedL2.ogg"
# Wait for Block 4
wizqWaitQueue 1
# Block 5
wizqQueue 1 {
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
chainEvent { delay 500 }
wizqEntityAction Zak standYes "wait"
}
# Block 5-B
wizqQueue 2 {
chainEvent { delay 1000 }
wizqEntityAction Lydia standHandOnChin "wait"
}
wizqTalkSay Zak $::lng::millWheelSolvedZ2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedZ2.ogg"
wizqTalkSay Lydia $::lng::millWheelSolvedL3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedL3.ogg"
wizqTalkClose
# Wait for Block 5 & 5-B
wizqWaitQueue 1
wizqWaitQueue 2
} else {
ozSet "puzzlePowerSurge" "complete"
ozSet "puzzleMill" "complete"
# Block 6
wizqQueue 1 {
wizqEntitySetOrientationTarget Lydia Zak
wizqEntityWalk Zak "592.6 -16.9 419" "wait"
wizqEntitySetOrientationTarget Lydia None
wizqEntityOrientation Zak 350 "wait"
wizqEntitySetCycle Zak standCycleNormal
}
wizqTalkOpen
wizqTalkSay Zak $::lng::millWheelSolvedZ3 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedZ3.ogg"
# Wait for Block 6
wizqWaitQueue 1
# Block 7
wizqQueue 1 {
wizqEntityAction Lydia standTalkTwoHands
}
wizqTalkSay Lydia $::lng::millWheelSolvedL4 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedL4.ogg"
# Wait for Block 7
wizqWaitQueue 1
# Block 8
wizqQueue 1 {
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
}
wizqTalkSay Zak $::lng::millWheelSolvedZ4 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedZ4.ogg"
# Wait for Block 8
wizqWaitQueue 1
# Block 9
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip "wait"
}
wizqTalkSay Lydia $::lng::millWheelSolvedL5 "sound/vo/$::LNG/scenes/crescentCoastWaterway/millWheelSolvedL5.ogg"
wizqTalkClose
# Wait for Block 9
wizqWaitQueue 1
}
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
wizEntityResumeFollow Zak
}
if { [getVar "lydiasPastConversation"] == "" } {
setEventPriority optionnalConversation.lydiasPastBehavior long
ozSet "lydiasPastConversation" "initiated"
}
}
## ===================================================== ##
## puzzle Mill Tools Behavior ##
## ===================================================== ##
event "puzzleMillToolsBehavior" {
if { [getVar "millDoorToWaterway"] == "initiated" } {
# Block 1
wizqQueue 1 {
chainEvent { delay 1500 }
chainEvent { wizEntityLookAt Lydia "551.1 -16.8 337.8" }
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::puzzleMillToolsBehaviorL1 "sound/vo/$::LNG/scenes/crescentCoastWaterway/puzzleMillToolsBehaviorL1.ogg"
wizqTalkClose
# Wait for Block 1
wizqWaitQueue 1
callEvent "millToolsMovie"
} else {
# Block 1
wizqQueue 1 {
chainEvent { delay 1500 }
chainEvent { wizEntityLookAt Lydia "551.1 -16.8 337.8" }
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::puzzleMillToolsBehaviorL2 "sound/vo/$::LNG/scenes/crescentCoastWaterway/puzzleMillToolsBehaviorL2.ogg"
wizqTalkClose
# Wait for Block 1
wizqWaitQueue 1
callEvent "millToolsMovie"
}
}
################################################################################
## ========================================================================== ##
## OPTIONNAL DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO ADD/ CORRECTIONS NEEDED ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO CHECK ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW