(version 2)
(include "sci.sh")
(exports
    0 rm93
)
(use "Main")
(use "Class_255_0")
(use "TrashBasket")
(use "Timer")
(use "Sound")
(use "Cycle")
(use "Game")
(use "Feature")
(use "Obj")
(script 93)



(instance public rm93 of Rm
    (properties
        picture 93
        style 0
        east 94
        south 91
    )

    (method (init)
        (super:init())
        (self:setRegions(702))
        Load(128 131)
        Load(128 132)
        Load(128 133)
        Load(132 54)
        (send global10:add(prog01 prog02 prog03 prog04 prog05 prog06 prog07 prog08 prog09 prog10 prog11 prog12 prog13 prog14 prog15 prog16 prog17 prog18 prog19 prog20 prog21 prog22 prog23 prog24 prog25 prog26))
        (send global10:doit())
        (rick:init())
        (ken:init())
        (trash1:init())
        (send gEgo:init())
        (if (global232)
            = global232 0
            (trash1:myNerd(0))
            (if ((send ((send global9:at(11))):ownedBy(global11)))
                (keycard:init())
            )
        )(else
            = global232 1
            (elmo:init())
            (trash1:setCel((= global567[0] 0)))
            (trash1:vaporized(0))
        )
        (self:setScript(rmScript))
    )


    (method (handleEvent pEvent)
        (if ((send pEvent:claimed))
            return 
        )
        (switch ((send pEvent:type))
            (case 128
                (if (Said('look[/area]'))
                    (if (global232)
                        proc255_0(93 0)
                    )(else
                        proc255_0(93 1)
                    )
                )(else
                    (if (Said('look/man,boss'))
                        (if (global232 and (send gEgo:inRect(225 86 320 149)))
                            proc255_0(93 2)
                        )(else
                            proc255_0(93 3)
                        )
                    )(else
                        (if (Said('*/complex'))
                            proc255_0(93 4)
                        )(else
                            (if (Said('converse/man,boy,elmo,boss,bystander'))
                                (if (global232 and (send gEgo:inRect(225 86 320 149)))
                                    proc255_0(93 5)
                                )(else
                                    proc255_0(93 6)
                                )
                            )(else
                                (if (Said('look,open,explore,unlock/desk,drawer'))
                                    (if ((send gEgo:inRect(225 86 320 149)))
                                        (if (global232)
                                            proc255_0(93 7)
                                        )(else
                                            (if ((send ((send global9:at(11))):ownedBy(global11)))
                                                proc255_0(93 8)
                                            )(else
                                                proc255_0(93 9)
                                            )
                                        )
                                    )(else
                                        proc255_0(93 10)
                                    )
                                )(else
                                    (if (Said('get/key,card'))
                                        (if (global232)
                                            proc255_0(93 11)
                                        )(else
                                            (if ((send ((send global9:at(11))):ownedBy(global11)))
                                                (if ((send gEgo:inRect(275 89 300 104)))
                                                    (send gEgo:get(11))
                                                    (keycard:dispose())
                                                    proc255_0(93 12)
                                                    (send global1:changeScore(5))
                                                )(else
                                                    proc255_0(93 13)
                                                )
                                            )(else
                                                (if ((send gEgo:has(11)))
                                                    proc255_0(93 14)
                                                )(else
                                                    proc255_0(93 15)
                                                )
                                            )
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )


    (method (newRoom newRoomNumber)
        (if (== newRoomNumber 94)
            (send gLongSong:stop())
        )
        (send global7:eachElementDo(91 84))
        (super:newRoom(newRoomNumber))
    )

)
(instance rmScript of Script
    (properties)

    (method (init param1)
        (super:init(rest param1))
        (if (== gNorth 94)
            (send gEgo:
                posn(318 65)
                view(113)
            )
        )
        (send gEgo:init())
        (if (== gNorth 94)
            (send gEgo:setMotion(MoveTo 288 65 self))
        )
    )


    (method (doit)
        (super:doit())
        (if (not global233)
            (if (((== (ken:loop) 0) and (< (rick:loop) 2)) and (== 10 Random(1 20)))
                (if (== (kenScript:state) 1)
                    (kenScript:start(1))
                )(else
                    (kenScript:start(0))
                )
                (ken:setScript(kenWhip))
            )
            (if (((== (rick:loop) 0) and (< (ken:loop) 2)) and (== 10 Random(1 20)))
                (if (== (rickScript:state) 0)
                    (rickScript:start(0))
                )(else
                    (rickScript:start(1))
                )
                (rick:setScript(rickWhip))
            )
        )
    )

)
(instance trash1 of TrashBasket
    (properties
        nearWest 225
        nearNorth 86
        nearEast 320
        nearSouth 149
    )

    (method (init)
        (super:init())
        (self:
            posn(256 103)
            myNerd(elmo)
        )
    )

)
(instance elmo of Nerd
    (properties)

    (method (init)
        (super:init())
        (self:
            view(115)
            setLoop(8)
            posn(263 84)
            setPri(6)
            speakX(167)
            speakY(75)
            speakCel(0)
        )
    )

)
(instance keycard of View
    (properties)

    (method (init)
        (self:
            view(115)
            setLoop(9)
            setCel(1)
            setPri(6)
            posn(285 92)
        )
        (super:init())
    )

)
(class ProgPri14 of PV
    (properties
        y 0
        x 0
        z 0
        heading 0
        view 133
        loop 0
        cel 0
        priority 14
        signal 16384
    )
)
(class ProgPri4 of PV
    (properties
        y 0
        x 0
        z 0
        heading 0
        view 133
        loop 0
        cel 1
        priority 4
        signal 16384
    )
)
(class ProgPri2 of PV
    (properties
        y 0
        x 0
        z 0
        heading 0
        view 133
        loop 0
        cel 1
        priority 2
        signal 16384
    )
)
(instance prog01 of ProgPri14
    (properties
        y 181
        x 176
    )
)
(instance prog02 of ProgPri14
    (properties
        y 150
        x 175
    )
)
(instance prog03 of ProgPri14
    (properties
        y 118
        x 173
    )
)
(instance prog04 of ProgPri14
    (properties
        y 87
        x 171
    )
)
(instance prog05 of ProgPri14
    (properties
        y 54
        x 170
    )
)
(instance prog06 of ProgPri14
    (properties
        y 24
        x 170
    )
)
(instance prog07 of ProgPri14
    (properties
        y 181
        x 134
    )
)
(instance prog08 of ProgPri14
    (properties
        y 150
        x 138
    )
)
(instance prog09 of ProgPri14
    (properties
        y 118
        x 140
    )
)
(instance prog10 of ProgPri14
    (properties
        y 87
        x 141
    )
)
(instance prog11 of ProgPri14
    (properties
        y 55
        x 141
    )
)
(instance prog12 of ProgPri14
    (properties
        y 24
        x 143
    )
)
(instance prog13 of ProgPri4
    (properties
        y 181
        x 56
    )
)
(instance prog14 of ProgPri4
    (properties
        y 150
        x 63
    )
)
(instance prog15 of ProgPri4
    (properties
        y 118
        x 70
    )
)
(instance prog16 of ProgPri4
    (properties
        y 87
        x 78
    )
)
(instance prog17 of ProgPri4
    (properties
        y 55
        x 88
    )
)
(instance prog18 of ProgPri4
    (properties
        y 24
        x 96
    )
)
(instance prog19 of ProgPri2
    (properties
        y 181
        x 16
    )
)
(instance prog20 of ProgPri2
    (properties
        y 150
        x 26
    )
)
(instance prog21 of ProgPri2
    (properties
        y 118
        x 37
    )
)
(instance prog22 of ProgPri2
    (properties
        y 87
        x 48
    )
)
(instance prog23 of ProgPri2
    (properties
        y 55
        x 59
    )
)
(instance prog24 of ProgPri2
    (properties
        y 24
        x 72
    )
)
(instance prog25 of ProgPri2
    (properties
        y 24
        x 26
    )
)
(instance prog26 of ProgPri2
    (properties
        y 56
        x 10
    )
)
(instance rick of Act
    (properties)

    (method (init)
        (self:
            ignoreHorizon(1)
            view(131)
            x(116)
            y(-5)
            setPri(14)
            setCycle(Fwd)
            setStep(1 1)
            ignoreActors(1)
            ignoreControl(-1)
            setScript(rickScript)
        )
        (super:init())
    )

)
(instance rickScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (rick:
                    setLoop(0)
                    setMotion(MoveTo 97 148 self)
                )
            )
            (case 1
                (rick:
                    setLoop(1)
                    setMotion(MoveTo 116 -5 self)
                )
            )
            (case 2
                (self:init())
            )
        )
    )

)
(instance ken of Act
    (properties)

    (method (init)
        (self:
            ignoreHorizon(1)
            view(132)
            x(-11)
            y(136)
            setPri(14)
            setCycle(Fwd)
            setStep(1 1)
            ignoreActors(1)
            ignoreControl(-1)
            setScript(kenScript)
        )
        (super:init())
    )

)
(instance kenScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (ken:
                    setLoop(1)
                    setMotion(MoveTo 48 -5 self)
                )
            )
            (case 1
                (ken:
                    setLoop(0)
                    setMotion(MoveTo -11 136 self)
                )
            )
            (case 2
                (kenScript:start(0))
                (self:init())
            )
        )
    )

)
(instance rickWhip of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (rick:
                    setLoop(
                        (if (<= 5 Random(1 10))
                            2
                        )(else
                            3
                        )
)
                    setCel(0)
                    setMotion(0)
                    setCycle(End self)
                )
                (whipSound:play())
            )
            (case 1
                (if (<> (whipSound:prevSignal) -1)
                    --state
                    (Timer:setCycle(self 3))
                )(else
                    (rick:
                        setCycle(Fwd)
                        setLoop(0)
                        setScript(rickScript)
                    )
                )
            )
            (default 
                (self:init())
            )
        )
    )

)
(instance kenWhip of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (ken:
                    setLoop(2)
                    setCel(0)
                    setMotion(0)
                    setCycle(End self)
                )
                (whipSound:play())
            )
            (case 1
                (if (<> (whipSound:prevSignal) -1)
                    --state
                    (Timer:setCycle(self 3))
                )(else
                    (ken:
                        setCycle(Fwd)
                        setLoop(0)
                        setScript(kenScript)
                    )
                )
            )
            (default 
                (self:init())
            )
        )
    )

)
(instance whipSound of Sound
    (properties
        number 54
        priority 1
    )
)
