home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CyberMycha 2006 April
/
SGP.iso
/
dema
/
Keepsake-Demo-en-li-v1.0.exe
/
res
/
puzzles
/
basement.puzzle.tcl
< prev
next >
Wrap
Text File
|
2005-10-29
|
6KB
|
181 lines
proc pzlLetterLogic { letter } {
set pzlBasementDoor [ozGet pzlBasementDoor]
set lastletter [ozGet pzlBasementLL]
switch -exact $letter {
B {
set pzlBasementDoor "X T R"
if {$lastletter == "M"} {ozSet pzlBasementLL "B"} else {ozSet pzlBasementLL ""}
}
F {
set pzlBasementDoor "R T C"
if {$lastletter == "T"} {ozSet pzlBasementLL "F"} else {ozSet pzlBasementLL ""}
}
X {
set pzlBasementDoor "M S K"
if {$lastletter == "C"} {ozSet pzlBasementLL "X"} else {ozSet pzlBasementLL ""}
}
M {
set pzlBasementDoor "C S B"
if {$lastletter == ""} {ozSet pzlBasementLL "M"} else {ozSet pzlBasementLL ""}
}
T {
set pzlBasementDoor "F M K"
if {$lastletter == "B"} {ozSet pzlBasementLL "T"} else {ozSet pzlBasementLL ""}
}
C {
set pzlBasementDoor "X M S"
if {$lastletter == "F"} {ozSet pzlBasementLL "C"} else {ozSet pzlBasementLL ""}
}
R {
set pzlBasementDoor "T F X"
ozSet pzlBasementLL ""
}
S {
set pzlBasementDoor "B R K"
ozSet pzlBasementLL ""
}
K {
set pzlBasementDoor "F C B"
ozSet pzlBasementLL ""
}
}
ozSet pzlBasementDoor $pzlBasementDoor
}
proc pzlInit { } {
if { [ozGet pzlBasementInit] == "ok" } { return }
ozSet pzlBasementInit "ok"
ozSet pzlBasementDoor "M S K"
ozSet pzlBasementLL ""
}
proc useBrick {side} {
pzlInit
set pzlBasementDoor [ozGet pzlBasementDoor]
set pBrickL [lindex $pzlBasementDoor 0]
set pBrickM [lindex $pzlBasementDoor 1]
set pBrickR [lindex $pzlBasementDoor 2]
set sname ""
switch -exact $side {
L {set sname Left}
M {set sname Middle}
R {set sname Right}
}
ozqSound::NewFX "/sound/puzzles/puzzleBrick/brickGlow.ogg"
wineCavePuzzleCloseUp::new [set pBrick${side}]${sname}Glow -play
oz'event {
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickL}LeftOutSt
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickM}MiddleOutSt
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickR}RightOutSt
}
ozqSound::NewFX "/sound/puzzles/puzzleBrick/brickPush.ogg"
wineCavePuzzleCloseUp::new ${pBrickL}LeftIn
wineCavePuzzleCloseUp::new ${pBrickM}MiddleIn
wineCavePuzzleCloseUp::new ${pBrickR}RightIn -play
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickL}LeftIn
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickM}MiddleIn
oz'event [subst {pzlLetterLogic [set pBrick${side}]}]
oz'event {
set pzlBasementDoor [ozGet pzlBasementDoor]
set pBrickL [lindex \$pzlBasementDoor 0]
set pBrickM [lindex \$pzlBasementDoor 1]
set pBrickR [lindex \$pzlBasementDoor 2]
wineCavePuzzleCloseUp::newSt \${pBrickL}LeftOutSt
wineCavePuzzleCloseUp::newSt \${pBrickM}MiddleOutSt
wineCavePuzzleCloseUp::newSt \${pBrickR}RightOutSt
}
chainEvent {
set pzlBasementDoor [ozGet pzlBasementDoor]
set pBrickL [lindex $pzlBasementDoor 0]
set pBrickM [lindex $pzlBasementDoor 1]
set pBrickR [lindex $pzlBasementDoor 2]
wineCavePuzzleCloseUp::new ${pBrickL}LeftOut
wineCavePuzzleCloseUp::new ${pBrickM}MiddleOut
wineCavePuzzleCloseUp::new ${pBrickR}RightOut -play
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickL}LeftOut
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickM}MiddleOut
}
chainEvent {
set pzlBasementDoor [ozGet pzlBasementDoor]
set pBrickL [lindex $pzlBasementDoor 0]
set pBrickM [lindex $pzlBasementDoor 1]
set pBrickR [lindex $pzlBasementDoor 2]
if {[ozGet pzlBasementLL] == "X"} {
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickL}LeftOutSt
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickM}MiddleOutSt
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickR}RightOutSt
callEvent "basement.wineCavePuzzleSolved"
}
}
}
event "useBrickLeft" {
useBrick L
}
event "useBrickMiddle" {
useBrick M
}
event "useBrickRight" {
useBrick R
}
proc useBrickReset {} {
pzlInit
set pzlBasementDoor [ozGet pzlBasementDoor]
set pBrickL [lindex $pzlBasementDoor 0]
set pBrickM [lindex $pzlBasementDoor 1]
set pBrickR [lindex $pzlBasementDoor 2]
wq'widget::fadeto [set wineCavePuzzleCloseUp::${pBrickL}LeftOutSt] 0
wq'widget::fadeto [set wineCavePuzzleCloseUp::${pBrickM}MiddleOutSt] 0
wq'widget::fadeto [set wineCavePuzzleCloseUp::${pBrickR}RightOutSt] 0
ozqSound::NewFX "/sound/puzzles/common/reset.ogg"
wineCavePuzzleCloseUp::new reset -play
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickL}LeftOutSt
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickM}MiddleOutSt
wq'widget::delete& wineCavePuzzleCloseUp::${pBrickR}RightOutSt
ozSet pzlBasementDoor "M S K"
ozSet pzlBasementLL ""
}
event "useBrickReset" {
useBrickReset
}