(version 2)
(include "sci.sh")
(exports
    0 rm400
    1 sleepScript
    2 proc400_2
)
(use "Main")
(use "TargFeature")
(use "n026")
(use "MChase")
(use "DIcon")
(use "PAvoider")
(use "Blink")
(use "PChase")
(use "Scaler")
(use "RandCycle")
(use "PolyPath")
(use "Polygon")
(use "Timer")
(use "Grooper")
(use "Sound")
(use "Cycle")
(use "Game")
(use "User")
(use "View")
(use "Obj")
(script 400)


(local
    theScaleX =     128
    local1 =     1
    local2
    local3
    newActor
    newActor_2
    local6
    local7
    local8
    newProp
    local10
    local11
    local12
    local13
    local14
    local15
    local16
    local17
    local18
    local19 =     340
    local20
    local21
    local22
    local23
    local24
    gOwnerX
    gOwnerY
    local27
    local28
    local29[2] = (400 405 )
    local31
    local32[4] = (160 -45 160 355 )
    local36[4] = (35 160 300 160 )
    local40
    itX
    itY
    local43
    theCel
    local45
    local46
    local47

)
(procedure public (proc400_2 param1)
    (self:)
    (super:doit(rest param1))
)


(procedure (localproc_32f4)
    (var temp0[2], temp2, temp3)
    = local28 (+ (+ local24 (* (+ gOwnerX 15) 3)) (* (+ gOwnerY 30) 2))
    = local31 (+ (<< (^ local28 local24) $0001) (& $0001 (+ gOwnerX gOwnerY)))
    = local27 (% (+ (+ local24 gOwnerX) gOwnerY) 2)
    (send global2:picture(local29[local27]))
    (switch (% (+ (+ local24 gOwnerX) gOwnerY) 4)
        (case 0
            = local43 1
        )
        (case 1
            = local43 0
        )
        (case 2
            = local43 1
        )
        (case 3
            = local43 0
        )
    )
    (if (gGQg3KDHandler)
        (send gGQg3KDHandler:
            eachElementDo(111)
            eachElementDo(81)
            release()
        )
    )
    (if (gOldATPs)
        (send gOldATPs:
            eachElementDo(111)
            eachElementDo(81)
            release()
        )
    )
    (if ((send global2:obstacles))
        (send ((send global2:obstacles)):
            eachElementDo(111)
            release()
        )
    )
    (send global2:
        curPic((send global2:picture))
        style(
            (if (local43)
                16393
            )(else
                9
            )
)
    )
    (if (local43)
        DrawPic((send global2:picture) 16393 dpCLEAR)
    )(else
        DrawPic((send global2:picture) dpCLOSEREOPEN_HCENTER dpCLEAR)
    )
    = temp2 0
    = temp3 1
    (while (< temp2 8)
        (if (& local31 temp3)
            (send (ScriptID(403 0)):init(temp2 local28 local43 gOwnerX gOwnerY local27))
        )
        ++temp2
        = temp3 (<< temp3 $0001)
    )
    DisposeScript(403)
    (if (local22)
        (fireWood:
            approachVerbs(19 4)
            approachX(176)
            approachY(170)
            init()
        )
    )
)


(procedure (localproc_3479 param1 param2 param3)
    (var temp0)
    = temp0 1
    (while (Message(0 gClientModNum param1 param2 param3 temp0))
        ++temp0
    )
    return --temp0
)


(procedure (localproc_3499 param1)
    (var temp0, temp1[2], temp3, temp4)
    = temp3 -100
    = temp0 0
    (while (<> temp3 30583)
        = temp3 proc999_6(param1 (* 2 temp0))
        ++temp0
    )
    return --temp0
)


(instance BookTo of Motion
    (properties)

    (method (init theClient theX theY theCaller)
        (var temp0[3], clientCycler)
        (if (>= paramTotal 1)
            = client theClient
            (if (>= paramTotal 2)
                = x theX
                (if (>= paramTotal 3)
                    = y theY
                    (if (>= paramTotal 4)
                        = caller theCaller
                    )
                )
            )
        )
        = yLast (= xLast (= completed 0))
        = {b-moveCnt} (+ (+ 1 (send client:moveSpeed)) gLastTicks)
        = clientCycler (send client:cycler)
        (if (clientCycler)
            (send (= clientCycler (send client:cycler)):cycleCnt({b-moveCnt}))
        )
    )


    (method (doit)
        (var temp0[6])
        (if (>= (send client:y) y)
            (self:moveDone())
        )(else
            (if (>= Abs((- gLastTicks {b-moveCnt})) (send client:moveSpeed))
                = {b-moveCnt} gLastTicks
                (send client:y((+ (send client:y) (send client:yStep))))
            )
            return 
        )
    )

)
(instance controls of Controls
    (properties)
)
(instance public rm400 of Rm
    (properties
        noun 17
        picture 400
        vanishingY 49
    )

    (method (init)
        (var temp0[2])
        = number gClientModNum
        = controls controls
        = gPicAngle picAngle
        (if (== gGClientModNum 550)
            = local2 1
            = local24 global417
            = gOwnerX gGOwnerX_2
            = gOwnerY gGOwnerY_2
            = gGClientModNum gGGClientModNum
            = local27 (& global418 $0001)
            localproc_32f4()
            (send gOwner:
                setScale(Scaler 127 30 189 70)
                x(160)
                y(146)
                normalize()
                init()
                noun(3)
            )
            (switch (global155)
                (case 0
                    (self:setScript(egoIsDead))
                )
                (case 1
                    = local15 1
                    (send gLongSong:
                        setLoop(-1)
                        changeTo(400)
                    )
                    (it:
                        x(190)
                        y(158)
                        init()
                    )
                    (it:setScript(monsterIsDead))
                )
                (case 2
                    (send gOwner:changeGait(1))
                    = local47 1
                    proc0_3()
                    (self:setScript(encounterScript))
                )
            )
        )(else
            = local47 0
            = local1 0
            (if (== global365 3)
                (send gLongSong:
                    setLoop(-1)
                    changeTo(407)
                )
            )(else
                (if (== global365 11)
                    (send gLongSong:
                        setLoop(-1)
                        changeTo(408)
                    )
                )(else
                    (send gLongSong:
                        setLoop(-1)
                        changeTo(400)
                    )
                )
            )
            = gGMonsterMonHP 0
            = global426 0
            = local24 Random(64 256)
            = gOwnerY Random(5 127)
            = gOwnerX gOwnerY
            (switch (global365)
                (case 2
                    = local24 90
                    (if (proc0_6(99))
                        = gOwnerX 52
                    )(else
                        = gOwnerX 50
                    )
                    = global418 (& global418 $fff7)
                    = gOwnerY 59
                    localproc_32f4()
                    (send gOwner:
                        setScale(Scaler 127 30 189 70)
                        x(
                            (if (proc0_6(99))
                                60
                            )(else
                                160
                            )
)
                        y(156)
                        normalize()
                        init()
                        noun(3)
                    )
                    (if (proc0_6(99))
                        (self:setScript(beeTree))
                    )(else
                        (self:setScript(encounterScript))
                    )
                    proc0_3()
                )
                (case 74
                    = local15 1
                    (send (ScriptID(705 0)):init(9 6 48))
                    (switch (gCursor)
                        (case 1
                            = local22 1
                        )
                        (case 2
                            0
                        )
                    )
                    = gOwnerY 128
                    = gOwnerX gOwnerY
                    = local24 192
                    = local23 0
                    localproc_32f4()
                    (send gOwner:
                        setScale(Scaler 127 30 189 70)
                        x(240)
                        y(156)
                        normalize()
                        init()
                        noun(3)
                    )
                    proc0_3()
                )
                (case 0
                    = gOwnerY 128
                    = gOwnerX gOwnerY
                    = local24 192
                    localproc_32f4()
                    (send gOwner:
                        x(160)
                        y(156)
                        setScale(Scaler 127 30 189 70)
                        normalize()
                        init()
                        noun(3)
                    )
                    proc0_3()
                    = local23 0
                    (self:setScript(encounterScript))
                    (send gGame:save(1))
                )
                (case 3
                    proc0_2()
                    DrawPic(400)
                    (send gOwner:
                        view(5)
                        loop(6)
                        cel(0)
                        x(125)
                        y(140)
                        setScale()
                        scaleX(155)
                        scaleY(155)
                        setMotion(0)
                        init()
                    )
                    (self:setScript(encounterScript))
                )
                (case 4
                    = local15 1
                    = local21 localproc_3479(6 1 29)
                    = gOwnerY 128
                    = gOwnerX gOwnerY
                    = local24 192
                    localproc_32f4()
                    (send gOwner:
                        x(160)
                        y(156)
                        setScale(Scaler 127 30 189 70)
                        normalize()
                        init()
                        noun(3)
                    )
                    = local23 0
                    (self:setScript(encounterScript))
                    proc0_3()
                )
                (case 5
                    = local15 1
                    = gOwnerY 128
                    = gOwnerX gOwnerY
                    = local24 192
                    localproc_32f4()
                    (send gOwner:
                        x(160)
                        y(156)
                        setScale(Scaler 127 30 189 70)
                        setAvoider(PAvoider)
                        normalize()
                        init()
                        noun(3)
                    )
                    = local23 0
                    (self:setScript(encounterScript))
                    proc0_3()
                )
                (default 
                    localproc_32f4()
                    (send gOwner:
                        setScale(Scaler 127 30 189 70)
                        x(160)
                        y(156)
                        normalize()
                        init()
                        noun(3)
                    )
                    (if (== global365 999)
                        = local15 1
                        = local23 0
                    )(else
                        (self:setScript(encounterScript))
                    )
                    proc0_3()
                )
            )
        )
        Animate((send gGQg3KDHandler:elements) 1)
    )


    (method (doit param1)
        (if (script)
            0
        )(else
            (if (local40)
                (if ((((< 8 (send gOwner:x)) and (< (send gOwner:x) 315)) and (< 80 (send gOwner:y))) and (< (send gOwner:y) 184))
                    = local40 0
                    proc0_3()
                )
            )(else
                (if (< (send gOwner:x) 6)
                    (if (not local23 or (== global365 2))
                        = gOwnerX -20
                        = gOwnerY (send gOwner:y)
                        (self:setScript(sExit))
                    )(else
                        (self:setScript(showNewRoom self 4))
                    )
                )(else
                    (if (> (send gOwner:y) 183)
                        (if (not local23 or (== global365 2))
                            = gOwnerX (send gOwner:x)
                            = gOwnerY 250
                            (self:setScript(sExit))
                        )(else
                            (self:setScript(showNewRoom self 3))
                        )
                    )(else
                        (if (> (send gOwner:x) 313)
                            (if (not local23)
                                = gOwnerX 330
                                = gOwnerY (send gOwner:y)
                                (self:setScript(sExit))
                            )(else
                                (self:setScript(showNewRoom self 2))
                            )
                        )(else
                            (if (< (send gOwner:y) 80)
                                (if (not local23 or (== global365 2))
                                    = gOwnerX (send gOwner:x)
                                    = gOwnerY (- (send gOwner:y) 10)
                                    (self:setScript(sExit))
                                )(else
                                    (self:setScript(showNewRoom self 1))
                                )
                            )
                        )
                    )
                )
            )
        )
        (super:doit(rest param1))
    )


    (method (dispose)
        (if (timer)
            (send timer:
                dispose()
                delete()
            )
        )
        (if (== global365 2)
            (send gLongSong2:stop())
        )
        = global461 0
        = global462 0
        (super:dispose())
    )


    (method (doVerb theVerb param2)
        return 
            (switch (theVerb)
                (case 65
                    (if (local23)
                        (send gQg3Messager:say(0 0 47))
                    )(else
                        (send (ScriptID(7 5)):init(global455))
                    )
                )
                (case 74
                    (if ((local15 and not local23) or (== global365 74))
                        = global365 74
                        (self:setScript(sleepScript 0 0))
                    )(else
                        (send gQg3Messager:say(9 6 37))
                    )
                )
                (case 84
                    (if ((send gOwner:castSpell(28)))
                        (send (ScriptID(31 0)):init((send gOwner:x) (+ (send gOwner:y) 1) 80))
                    )
                )
                (case 82
                    (if ((send gOwner:castSpell(26)))
                        (send gOwner:setScript(ScriptID(37 0)))
                        return 1
                    )
                )
                (case 40
                    (if ((== global365 2) and (== gOwnerX 52))
                        (if (& global418 $0002)
                            (if (& global418 $0004)
                                (super:doVerb(theVerb rest param2))
                            )(else
                                (send gQg3Messager:say(0 40 34))
                            )
                        )(else
                            (self:setScript(pourHoney))
                        )
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )
                (case 20
                    ++global426
                    (if (== global365 2)
                        (send gOwner:setScale())
                    )
                    (self:setScript(ScriptID(32 0) self 20))
                )
                (case 75
                    (if ((send gOwner:castSpell(19)))
                        proc0_14((send ((User:curEvent)):x) (send ((User:curEvent)):y))
                        (self:setScript(ScriptID(13)))
                    )
                )
                (case 81
                    (if ((send gOwner:castSpell(25)))
                        (if (== global365 2)
                            (send gOwner:setScale())
                        )
                        (self:setScript(ScriptID(32 0) self 81))
                    )
                )
                (case 83
                    (if ((send gOwner:castSpell(27)))
                        (if (== global365 2)
                            (send gOwner:setScale())
                        )
                        (self:setScript(ScriptID(32 0) self 83))
                    )
                )
                (case 88
                    (if ((send gOwner:castSpell(32)))
                        (if (== global365 2)
                            (send gOwner:setScale())
                        )
                        (self:setScript(ScriptID(32 0) self 88))
                    )
                )
                (case 80
                    (if ((send gOwner:castSpell(24)))
                        (send ((Timer:new())):setReal(self (/ gGOwnerMaxStamina[24] 10)))
                        (self:setScript(ScriptID(12 0) 0 80))
                        (if (local13)
                            (send newProp:
                                setScript(0)
                                dispose()
                            )
                            = newProp 0
                            = local13 0
                        )
                        = local3 1
                    )
                )
                (case -77
                    (if (== global365 5)
                        (if (local6)
                            (send gQg3Messager:say(0 0 2 1 0 12))
                        )(else
                            (genericProp:doVerb(4))
                        )
                        return 1
                    )(else
                        (send gQg3Messager:say(0 0 2 1 0 12))
                    )
                )
                (case -76
                    (send gQg3Messager:say(0 0 1 1 0 12))
                )
                (case -80
                    (send gQg3Messager:say(0 0 4 1 0 12))
                )
                (case 86
                    (if ((send gOwner:castSpell(30)))
                        (if (local23)
                            (send gQg3Messager:say(9 6 57))
                        )(else
                            (self:setScript(ScriptID(62 0)))
                        )
                    )
                )
                (case 78
                    (if ((send gOwner:castSpell(22)))
                        (send ((Timer:new())):setReal(self (/ gGOwnerMaxStamina[22] 10)))
                        (self:setScript(ScriptID(12 0) 0 78))
                    )
                )
                (case 77
                    (if ((send gOwner:castSpell(21)))
                        (if (== global365 5)
                            (self:setScript(ScriptID(12 0) 0 77))
                        )(else
                            (self:setScript(ScriptID(12 0) 0 77))
                        )
                    )
                )
                (case 33
                    (if (== global365 2)
                        (send gOwner:setScale())
                    )
                    (self:setScript(ScriptID(32 0) 0 33))
                )
                (case 87
                    (if ((send gOwner:castSpell(31)))
                        (self:setScript(ScriptID(46 0)))
                    )
                )
                (case 85
                    (if ((send gOwner:castSpell(29)))
                        (sFx:
                            number(943)
                            play()
                        )
                        (self:setScript(ScriptID(12 0) self 85))
                    )
                )
                (case 4
                    (if (> (send ((User:curEvent)):y) 100)
                        (self:setScript(getRocks))
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )
                (default 
                    (super:doVerb(theVerb rest param2))
                )
            )
    )


    (method (cue)
        (if (== global365 2)
            (send gOwner:setScale(Scaler 127 30 189 70))
        )(else
            (super:cue())
        )
    )

)
(instance egoIsDead of Script
    (properties)

    (method (changeState newState)
        (var temp0[2])
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:
                    view(43)
                    setLoop(Random(0 3))
                    cel(0)
                    cycleSpeed(10)
                    setCycle(End self)
                )
            )
            (case 1
                (switch (global365)
                    (case 565
                        proc26_0(41 400 707 End 152)
                    )
                    (case 560
                        proc26_0(42 400 633 End 158)
                    )
                    (case 585
                        proc26_0(43 400 455 End 155)
                    )
                )
            )
        )
    )

)
(instance monsterIsDead of Script
    (properties)

    (method (doit)
        (var gOwnerX, gOwnerY)
        = gOwnerY (send gOwner:y)
        = gOwnerX (send gOwner:x)
        (if (((((< gOwnerY 70) or (> gOwnerY 182)) or (< gOwnerX 10)) or (> gOwnerX 310)) and (== state 2))
            (self:dispose())
        )
        (super:doit())
    )


    (method (changeState newState)
        (var temp0[23], temp23, temp24)
        (switch (= state newState)
            (case 0
                proc0_2()
                (it:
                    approachVerbs(4)
                    approachX(/ (+ (it:nsLeft) (it:nsRight)) 2)
                    approachY(+ (/ (+ (it:nsTop) (it:nsBottom)) 2) 5)
                )
                = local23 0
                = local15 1
                = gGMonsterMonHP 0
                = local11 
                    (if (Random(0 1))
                        -10
                    )(else
                        10
                    )
                proc0_12(it (it:x) + (it:y) local11 self)
                (switch (global365)
                    (case 565
                        (send gOwner:solvePuzzle(293 2 9))
                    )
                    (case 585
                        (send gOwner:solvePuzzle(292 2 9))
                    )
                    (case 560
                        (send gOwner:solvePuzzle(294 2 9))
                    )
                )
            )
            (case 1
                = temp24 
                    (if (== global365 565)
                        153
                    )(else
                        (if (== global365 585)
                            156
                        )(else
                            (if (== global365 560)
                                159
                            )
                        )
                    )
                (send gLongSong:
                    setLoop(1)
                    changeTo(temp24 self)
                )
                (send gLongSong2:
                    number(931)
                    setLoop(1)
                    play()
                )
                (it:
                    loop(
                        (if (< local11 0)
                            1
                        )(else
                            0
                        )
)
                    cel(0)
                    setMotion(0)
                    init()
                    setCycle(End)
                )
            )
            (case 2
                = itX (it:x)
                = itY (it:y)
                (it:
                    approachVerbs(4)
                    approachX(/ (+ (it:nsLeft) (it:nsRight)) 2)
                    approachY(+ (/ (+ (it:nsTop) (it:nsBottom)) 2) 5)
                    stopUpd()
                )
                = temp0[0] (- (it:nsLeft) 3)
                = temp0[1] (- (/ (+ (it:nsTop) (it:nsBottom)) 2) 4)
                = temp0[2] (+ 3 (it:nsRight))
                = temp0[3] (- (/ (+ (it:nsTop) (it:nsBottom)) 2) 4)
                = temp0[4] (+ 3 (it:nsRight))
                = temp0[5] (+ 4 (it:nsBottom))
                = temp0[6] (- (it:nsLeft) 3)
                = temp0[7] (+ 4 (it:nsBottom))
                = temp0[8] 30583
                = temp0[9] 0
                (if ((send global2:obstacles))
                    = temp23 MergePoly(@temp0 (send ((send global2:obstacles)):elements) (send ((send global2:obstacles)):size))
                    (if (temp23)
                        (send ((send global2:obstacles)):add((send ((Polygon:new())):
                                points((= temp23 MergePoly(@temp0 (send ((send global2:obstacles)):elements) (send ((send global2:obstacles)):size))))
                                size(localproc_3499((= temp23 MergePoly(@temp0 (send ((send global2:obstacles)):elements) (send ((send global2:obstacles)):size)))))
                                type(2)
                                dynamic(1)
                                yourself()
                            )
))
                    )(else
                        (send ((send global2:obstacles)):add((send ((Polygon:new())):
                                points(@temp0)
                                size(4)
                                type(2)
                                dynamic(1)
                                yourself()
                            )
))
                    )
                )(else
                    (send global2:addObstacle((send ((Polygon:new())):
                            points(@temp0)
                            size(4)
                            type(2)
                            dynamic(1)
                            yourself()
                        )
))
                )
                = local12 1
                proc0_3()
                (send gLongSong:
                    number(400)
                    setLoop(-1)
                    play()
                )
                = seconds 20
            )
            (case 3
                (self:dispose())
            )
        )
    )

)
(instance getRocks of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (if (IsObject((send gOwner:looper)))
                    (send ((send gOwner:looper)):dispose())
                    (send gOwner:looper(0))
                )
                (send gOwner:
                    setMotion(0)
                    view(4)
                    loop(% (send gOwner:loop) 2)
                    setCycle(End self)
                )
                = register (Narrator:y)
            )
            (case 1
                (Narrator:y(20))
                (send gQg3Messager:say(9 6 45 0 self))
                (send gOwner:get(23 Random(2 5)))
            )
            (case 2
                (Narrator:y(register))
                (send gOwner:setCycle(Beg self))
            )
            (case 3
                (send gOwner:normalize())
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance doBattle of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (if (IsObject((send gOwner:looper)))
                    (send ((send gOwner:looper)):dispose())
                )
                (send gOwner:setMotion(0))
                = seconds 2
                (send gLongSong2:client(0))
            )
            (case 1
                (send gQg3Messager:say(9 6 44))
                = cycles 2
            )
            (case 2
                (if (< gGMonsterMonHP 2)
                    = gGMonsterMonHP 2
                )
                (send global2:newRoom(550))
            )
        )
    )

)
(instance searchMonster of Script
    (properties)

    (method (changeState newState)
        (var temp0[50])
        (switch (= state newState)
            (case 0
                proc0_2()
                (if (Random(0 1))
                    proc0_12(gOwner + (send gOwner:x) 10 (send gOwner:y) self)
                )(else
                    proc0_12(gOwner - (send gOwner:x) 10 (send gOwner:y) self)
                )
            )
            (case 1
                (send gOwner:
                    view(4)
                    setCycle(End self)
                )
            )
            (case 2
                = cycles 10
            )
            (case 3
                (if (register)
                    (if (== register -1)
                        (send gOwner:
                            get(22)
                            solvePuzzle(261 3 9)
                        )
                        (send gQg3Messager:say(9 6 38 0 self))
                    )(else
                        (send gOwner:get(0 register))
                        Message(0 400 9 6 39 1 @temp0)
                        (send gQg3Messager:sayFormat(99 @temp0 register))
                        = cycles 1
                    )
                )(else
                    (send gQg3Messager:say(9 6 40 0 self))
                )
            )
            (case 4
                (send gOwner:setCycle(Beg self))
            )
            (case 5
                (send gOwner:normalize())
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance beeTree of Script
    (properties)

    (method (changeState newState)
        (var temp0[2])
        (switch (= state newState)
            (case 0
                (if (not & global418 $0004)
                    (if (not & global418 $0010)
                        (it:init())
                    )
                    (if (& global418 $0002)
                        (genericProp:init())
                    )
                )
                (beeHandler:init())
                (send gLongSong2:
                    number(405)
                    setLoop(-1)
                    play()
                )
                = newActor (Actor:new())
                (send newActor:
                    view(402)
                    x(202)
                    y(13)
                    priority(1)
                    signal(16400)
                    setLoop(2)
                    noun(54)
                    setCycle(RandCycle)
                    init()
                )
                = newActor_2 (Actor:new())
                (send newActor_2:
                    view(402)
                    x(213)
                    y(29)
                    priority(11)
                    signal(16400)
                    setLoop(2)
                    noun(54)
                    setCycle(RandCycle)
                    init()
                )
                (self:dispose())
            )
        )
    )

)
(instance public sleepScript of Script
    (properties)

    (method (changeState newState)
        (var temp0, temp1, temp2, temp3)
        (switch (= state newState)
            (case 0
                proc0_2()
                = cycles 2
                = local1 0
            )
            (case 1
                (send gOwner:setMotion(PolyPath 165 135 self))
            )
            (case 2
                (send gOwner:
                    x(- (send gOwner:x) 25)
                    view(35)
                    loop(1)
                    cel(0)
                    setCycle(End self)
                )
                (send gLongSong:
                    setLoop(-1)
                    fade(127 1 30 0)
                    changeTo(927)
                )
            )
            (case 3
                = temp2 PalVary(pvGET_CURRENT_STEP)
                (if (temp2)
                    (if (< (= temp2 PalVary(pvGET_CURRENT_STEP)) 64)
                        PalVary(pvCHANGE_TICKS 3)
                    )
                )(else
                    PalVary(pvINIT 400 3)
                )
                = seconds 5
            )
            (case 4
                (if (not local12)
                    (if (local13 and proc0_6(32))
                        = temp3 Random(0 3)
                    )(else
                        = temp3 0
                    )
                    (if (not temp3)
                        (if (Random(0 1) and not proc0_6(32))
                            proc0_4(32)
                            = global365 1
                        )(else
                            (if ((<= 4 global123) and (<= global123 6))
                                (if (< Random(1 10) 5)
                                    = global365 585
                                )
                            )(else
                                (if (not Random(0 2))
                                    = global365 585
                                )
                            )
                        )
                        (if ((<> global365 74) and (<> global123 7))
                            = temp1 global120
                            (send (ScriptID(7 4)):init(3))
                            = temp0 (/ (% (- (+ global120 3600) temp1) 3600) 150)
                            (send gOwner:useStamina(neg (* temp0 2)))
                            (send gOwner:takeDamage(neg (* temp0 2)))
                            (send gOwner:useMana(neg (* temp0 2)))
                        )
                    )
                )
                (self:cue())
            )
            (case 5
                (switch (global365)
                    (case 74
                        = seconds 5
                    )
                    (case 1
                        (send gLongSong:
                            number(409)
                            setLoop(-1)
                            play()
                        )
                        (self:setScript(ScriptID(402 0) self))
                    )
                    (default 
                        = local22 0
                        = local13 0
                        (if (proc0_6(150))
                            = local1 1
                            (self:setScript(paladinHearsMonster self))
                        )(else
                            = seconds 2
                        )
                    )
                )
            )
            (case 6
                (if (<> global365 1)
                    (self:cue())
                )
            )
            (case 7
                (if (== global365 1)
                    (send ((send gOwner:actions)):dispose())
                    (send gOwner:actions(0))
                    (self:cue())
                )(else
                    (if (== global365 74)
                        PalVary(pvREVERSE 3)
                        proc0_5(81)
                        = seconds 4
                    )(else
                        (if (local1)
                            = seconds 3
                        )(else
                            (send gOwner:setCycle(Beg self))
                        )
                    )
                )
            )
            (case 8
                (if (<> global365 74)
                    (if (== global365 1)
                        proc0_3()
                        (self:dispose())
                    )(else
                        (if (local1)
                            = local12 1
                            (send client:setScript(encounterScript))
                            (self:dispose())
                        )(else
                            = local12 1
                            (send gOwner:x((+ (send gOwner:x) 25)))
                            (send client:setScript(encounterScript))
                            (self:dispose())
                        )
                    )
                )(else
                    (self:cue())
                )
            )
            (case 9
                (send (ScriptID(7 7)):init(5 40))
                = cycles 10
            )
            (case 10
                (send gOwner:setCycle(Beg self))
            )
            (case 11
                (send gOwner:
                    x(+ (send gOwner:x) 25)
                    normalize()
                )
                (send gLongSong:
                    setLoop(-1)
                    number(400)
                    play()
                )
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance sExit of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (if (global426 and not local17)
                    (send gQg3Messager:say(0 20 36 0 self))
                    (send gOwner:get(10 global426))
                )(else
                    (self:cue())
                )
            )
            (case 1
                (send gOwner:setMotion(PolyPath gOwnerX gOwnerY self))
            )
            (case 2
                (if (local13)
                    proc0_4(140)
                    proc26_0(48 400 415 End)
                    = cycles 10
                )(else
                    (self:cue())
                )
            )
            (case 3
                (send global2:newRoom(gGClientModNum))
            )
        )
    )

)
(instance pourHoney of Script
    (properties)

    (method (changeState newState)
        (var temp0[2])
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath 170 160 self))
            )
            (case 1
                (send gOwner:setHeading(90 self))
            )
            (case 2
                (send gOwner:
                    view(4)
                    loop(0)
                    setCycle(End self)
                )
            )
            (case 3
                = global418 (| global418 $0008)
                (genericProp:init())
                (send gQg3Messager:say(0 40 35 0 self))
            )
            (case 4
                (send gOwner:setCycle(Beg self))
            )
            (case 5
                (send gOwner:normalize())
                (send gOwner:drop(29 1))
                = global418 (| global418 $0002)
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance getFeather of Script
    (properties)

    (method (changeState newState)
        (var temp0[2])
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setHeading(90 self))
            )
            (case 1
                (send gOwner:
                    view(4)
                    loop(0)
                    setCycle(End self)
                )
            )
            (case 2
                (genericProp:
                    setCycle(End self)
                    noun(8)
                )
                proc0_5(99)
                (send gOwner:
                    get(30)
                    solvePuzzle(260 8)
                )
                = global418 (| global418 $0004)
            )
            (case 3
                (send gOwner:setCycle(Beg self))
            )
            (case 4
                (send gOwner:normalize())
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance paladinHearsMonster of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gOwner:
                    setLoop(3)
                    cel(0)
                    setCycle(End self)
                )
                = register (Narrator:y)
            )
            (case 1
                (Narrator:y(20))
                (send gQg3Messager:say(9 6 51))
                (send gOwner:
                    setLoop(5)
                    cel(3)
                    setCycle(End self)
                )
            )
            (case 2
                (Narrator:y(register))
                (send gOwner:
                    x(+ (send gOwner:x) 25)
                    normalize()
                )
                = cycles 10
            )
            (case 3
                (self:dispose())
            )
        )
    )

)
(instance castFire of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send ((User:curEvent)):
                    x(146)
                    y(160)
                )
                (self:setScript(ScriptID(32 0) self 81))
            )
            (case 1
                proc0_3()
                (send gOwner:normalize())
                = local13 1
                = newProp (Prop:new())
                (send newProp:
                    signal(20496)
                    view(400)
                    loop(6)
                    cel(0)
                    x(144)
                    y(149)
                    priority(13)
                    setScript(loopSound)
                    noun(20)
                    init()
                    setCycle(Fwd)
                )
                (self:dispose())
            )
        )
    )

)
(instance loopSound of Script
    (properties)

    (method (doit)
        (if ((<> (send gLongSong2:number) 913) and (== state 1))
            (self:cue())
        )(else
            (super:doit())
        )
    )


    (method (dispose)
        (send gLongSong2:
            client(0)
            stop()
        )
        (super:dispose())
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = ticks 120
            )
            (case 1
                (send gLongSong2:
                    number(913)
                    setLoop(-1)
                    play(self)
                )
            )
            (case 2
                (self:init())
            )
        )
    )

)
(instance kindleFire of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:
                    view(4)
                    loop(1)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 1
                (if (local13)
                    (self:cue())
                )(else
                    = seconds 5
                )
            )
            (case 2
                (if (local13)
                    = local13 0
                    (send newProp:
                        setScript(0)
                        dispose()
                    )
                    (send gQg3Messager:say(20 48 0))
                    = newProp 0
                )(else
                    = local13 1
                    = newProp (Prop:new())
                    (send newProp:
                        view(400)
                        loop(6)
                        cel(0)
                        x(144)
                        y(149)
                        priority(13)
                        signal(20496)
                        noun(20)
                        setScript(loopSound)
                        init()
                        setCycle(Fwd)
                    )
                )
                (send gOwner:setCycle(Beg self))
            )
            (case 3
                (send gOwner:normalize())
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance it of TargActor
    (properties
        view 0
        signal $7000
    )

    (method (init)
        (if (not (send gGQg3KDHandler:contains(self)))
            (super:init())
        )
        (if (local15)
            (self:approachVerbs(4))
        )
        (switch (global365)
            (case 2
                = noun 21
                (self:approachVerbs(4))
                (if ((proc0_6(99) and (> (send gOwner:x) 10)) and not (& global418 $0002))
                    (self:
                        view(402)
                        setLoop(4)
                        cel(0)
                        y(176)
                        z(150)
                        x(214)
                        cycleSpeed(3)
                        signal(| signal $0010)
                        moveSpeed(0)
                        priority(10)
                    )
                )(else
                    (if ((proc0_6(99) and (& global418 $0002)) and not (& global418 $0004))
                        (self:
                            view(402)
                            setLoop(0)
                            x(188)
                            y(180)
                            z(20)
                            cycleSpeed(3)
                            moveSpeed(2)
                            setCycle(RandCycle)
                        )
                    )(else
                        (self:
                            view(402)
                            setLoop(0)
                            z(0)
                            y(26)
                            x(50)
                            cycleSpeed(3)
                            moveSpeed(2)
                            setCycle(Walk)
                            signal(| signal $0010)
                            setMotion(MoveTo local19 26 self)
                            priority(10)
                        )
                    )
                )
                = approachX x
                = approachY y
            )
            (case 560
                (if (local15)
                    (self:
                        view(560)
                        setScale(160)
                        cycleSpeed(+ (send gOwner:cycleSpeed) 5)
                        noun(22)
                        setMotion(0)
                    )
                )(else
                    (self:
                        view(558)
                        origStep(4622)
                        setScale(160)
                        moveSpeed(+ (send gOwner:moveSpeed) 8)
                        cycleSpeed(+ (send gOwner:cycleSpeed) 10)
                        setCycle(Walk)
                        noun(23)
                        setMotion(MChase gOwner local45 self)
                    )
                )
            )
            (case 565
                (if (local15)
                    (self:
                        view(563)
                        setScale(160)
                        cycleSpeed(+ (send gOwner:cycleSpeed) 4)
                        noun(24)
                        setMotion(0)
                    )
                )(else
                    (self:
                        origStep(3598)
                        view(561)
                        setScale(160)
                        moveSpeed(+ (send gOwner:moveSpeed) 7)
                        cycleSpeed(+ (send gOwner:cycleSpeed) 8)
                        setCycle(Walk)
                        noun(25)
                        setMotion(MChase gOwner local45 self)
                    )
                )
            )
            (case 585
                (if (local15)
                    (self:
                        view(582)
                        setScale(160)
                        cycleSpeed(+ (send gOwner:cycleSpeed) 4)
                        noun(26)
                        setMotion(0)
                    )
                )(else
                    (self:
                        origStep(2570)
                        view(580)
                        setScale(160)
                        moveSpeed(+ (send gOwner:moveSpeed) 5)
                        cycleSpeed(+ (send gOwner:cycleSpeed) 6)
                        setCycle(Walk)
                        noun(27)
                        setMotion(MChase gOwner local45 self)
                    )
                )
            )
        )
    )


    (method (doit)
        (var temp0, theBrLeft, theBrRight, temp3, temp4, temp5, temp6)
        (if (script)
            (send script:doit())
        )
        (if (((local3 and local2) and (send global2:timer)) and not (send gOwner:script))
            = local3 0
            (send ((send global2:timer)):dispose())
            (send global2:timer(0))
            (send gQg3Messager:say(9 6 56))
        )
        return 
            (if (not local8)
                = signal (| signal $4000)
                (if ((mover and (send global2:timer)) and (<> global365 2))
                    (self:setMotion(0))
                    = local14 (send ((Polygon:new())):
                            type(2)
                            init((- nsLeft 6) (- nsBottom 5) (+ 6 nsRight) (- nsBottom 5) (+ 6 nsRight) (+ 3 nsBottom) (- nsLeft 6) (+ 3 nsBottom))
                            yourself()
                        )
                    (send global2:addObstacle(local14))
                )(else
                    (if (((((not local15 and not mover) and not (send global2:timer)) and not local40) and (<> global365 74)) and (<> global365 2))
                        (if (== global365 0)
                            (if ((== (charge:state) 6) and (<= y 300))
                                (if (IsObject(local14))
                                    (send ((send global2:obstacles)):delete(local14))
                                    (send local14:dispose())
                                )
                                (if (<> loop 1)
                                    (self:setMotion(BookTo 160 300 charge))
                                )
                            )
                        )(else
                            (if (IsObject(local14))
                                (send ((send global2:obstacles)):delete(local14))
                                (send local14:dispose())
                            )
                            (self:setMotion(MChase gOwner local45 self))
                        )
                    )
                )
                (if (== global365 560)
                    (if (<> cel theCel)
                        = theCel cel
                        (if ((== cel 1) or (== cel 5))
                            ShakeScreen(1)
                            (sFx:
                                setLoop(1)
                                number(404)
                                play()
                            )
                        )
                    )
                )(else
                    (if (== global365 0)
                        (if (<> cel theCel)
                            = theCel cel
                            (if ((== cel 0) or (== cel 2))
                                ShakeScreen(1)
                                (sFx:
                                    setLoop(1)
                                    number(404)
                                    play()
                                )
                            )
                        )
                        (if ((((<= nsLeft (send gOwner:x)) and (<= (send gOwner:x) nsRight)) and (< (send gOwner:y) y)) and not local46)
                            proc26_0(24 0 410)
                        )
                        (if (> y (send gOwner:y))
                            = local46 1
                        )
                    )(else
                        (if (== global365 2)
                            (if (((proc0_6(99) and (& global418 $0002)) and (== x 188)) and (> (send gOwner:x) 160))
                                (self:
                                    setCycle(Walk)
                                    setLoop(0)
                                    setMotion(MoveTo 340 100)
                                )
                                = global418 (| global418 $0010)
                                (genericProp:noun(19))
                            )(else
                                (if ((> (send gOwner:x) 200) and (== x 214))
                                    (self:
                                        setCycle(Walk)
                                        setLoop(0)
                                        setMotion(MoveTo 340 y)
                                    )
                                )
                            )
                        )(else
                            0
                        )
                    )
                )
                (if (& signal $8000)
                    return & signal $8000
                )
                (if ((& signal $0004) and not (& signal $0002))
                    return not & signal $0002
                )
                (if (scaler)
                    (send scaler:doit())
                )
                (if (> scaleX theScaleX)
                    = theScaleX scaleX
                )
                (if (< scaleX 0)
                    = scaleY (= scaleX theScaleX)
                )
                (if (& scaleSignal $0001)
                    = temp5 (>> origStep $0008)
                    = temp6 (& origStep $00ff)
                    (if ((((< y 0) or (< x -40)) or (> y 260)) or (> x 340))
                        = temp3 temp5
                        = temp4 temp6
                    )(else
                        (if (< y (send global2:vanishingY))
                            = temp3 (/ (- (send global2:vanishingY) y) temp5)
                            = temp4 (/ (- (send global2:vanishingY) y) temp6)
                        )(else
                            = temp3 (/ (* temp5 scaleX) 128)
                            = temp4 (/ (* temp6 scaleY) 128)
                        )
                        (if (temp3)
                            (if ((> temp3 temp5) or (< temp3 0))
                                = temp3 temp5
                            )
                        )(else
                            = temp3 1
                        )
                        (if (temp4)
                            (if ((> temp4 temp6) or (< temp4 0))
                                = temp4 temp6
                            )
                        )(else
                            = temp4 1
                        )
                    )
                    (if ((<> temp3 xStep) or (<> temp4 yStep))
                        (self:setStep(temp3 temp4 1))
                    )
                )
                (if (avoider)
                    (send avoider:doit())
                )(else
                    (if (mover)
                        (send mover:doit())
                    )
                )
                (if (cycler)
                    = theBrLeft brLeft
                    = theBrRight brRight
                    (send cycler:doit())
                    (if (baseSetter)
                        (send baseSetter:doit(self))
                    )(else
                        BaseSetter(self)
                    )
                    (if (((<> theBrLeft brLeft) or (<> theBrRight brRight)) and (self:cantBeHere()))
                        (self:findPosn())
                    )
                )
                = xLast x
                = yLast y
            )(else
                (if (== local8 1)
                    (switch (global365)
                        (case 565
                            (sFx:
                                setLoop(1)
                                number(904)
                                play()
                            )
                        )
                        (case 585
                            (sFx:
                                setLoop(1)
                                number(907)
                                play()
                            )
                        )
                        (case 560
                            (sFx:
                                setLoop(1)
                                number(903)
                                play()
                            )
                        )
                    )
                )
                --local8
            )
    )


    (method (doVerb theVerb param2)
        return 
            (switch (theVerb)
                (case 4
                    (if (== global365 2)
                        return 1
                    )(else
                        (if (local23)
                            (super:doVerb(theVerb rest param2))
                        )(else
                            (switch (global365)
                                (case 565
                                    (send gOwner:setScript(searchMonster 0 0))
                                )
                                (case 585
                                    (send gOwner:setScript(searchMonster 0 
                                        (if (local16)
                                            0
                                        )(else
                                            Random(2 5)
                                        )
))
                                )
                                (case 560
                                    (send gOwner:setScript(searchMonster 0 
                                        (if (local16)
                                            0
                                        )(else
                                            -1
                                        )
))
                                )
                                (default 
                                    (super:doVerb(theVerb rest param2))
                                )
                            )
                            = local16 1
                        )
                    )
                )
                (case 1
                    (if (== global365 2)
                        (if (not mover)
                            (if (loop)
                                (send gQg3Messager:say(21 1 59))
                            )(else
                                (send gQg3Messager:say(21 1 58))
                            )
                        )(else
                            (super:doVerb(theVerb rest param2))
                        )
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )
                (default 
                    (super:doVerb(theVerb rest param2))
                )
            )
    )


    (method (delete)
        = signal (& signal $ffdf)
        (super:delete())
    )


    (method (cue)
        (var temp0)
        (if (== global365 2)
            (self:
                loop(4)
                cel(0)
                y(176)
                z(150)
            )
        )(else
            (if (< (send gOwner:z) local45)
                (self:setMotion(0))
                (send gOwner:setMotion(0))
                = local23 0
                (if (< global461 global462)
                    = global417 local24
                    = gGOwnerX_2 gOwnerX
                    = gGOwnerY_2 gOwnerY
                    = gGGClientModNum gGClientModNum
                    (if (local27)
                        = global418 (& global418 $0001)
                    )(else
                        = global418 (^ global418 $0001)
                    )
                    (if (not local10)
                        = local10 1
                        = local8 10000
                        (self:setScript(doBattle))
                    )
                )(else
                    = gGMonsterMonHP 0
                    = local13 0
                    (send gQg3Messager:say(9 6 46))
                    = local15 1
                    = local17 1
                    (send global2:setScript(0))
                    (send gLongSong:
                        setLoop(-1)
                        changeTo(400)
                    )
                    (self:dispose())
                    proc0_3()
                )
            )(else
                (if (IsObject(cycler))
                    (send cycler:dispose())
                    = cycler 0
                )
            )
        )
    )


    (method (getHurt param1 param2)
        = local2 1
        (if ((send global2:timer))
            (send ((send global2:timer)):
                dispose()
                delete()
            )
        )
        (if (not script)
            (if (<> global365 2)
                (if (not local15)
                    = local8 10
                    (switch (global365)
                        (case 565
                            = gGMonsterMonHP (- gGMonsterMonHP param2)
                        )
                        (case 585
                            = gGMonsterMonHP (- gGMonsterMonHP param2)
                        )
                        (case 560
                            = gGMonsterMonHP (- gGMonsterMonHP param2)
                        )
                    )
                    (if (< gGMonsterMonHP 1)
                        = local10 0
                        (self:setScript(monsterIsDead))
                    )
                )
            )(else
                (self:
                    moveSpeed(0)
                    cycleSpeed(0)
                    setLoop(0)
                    setCycle(Walk)
                    setMotion(MoveTo 340 y)
                )
            )
        )
    )

)
(instance genericProp of Prop
    (properties)

    (method (init)
        (if (== global365 5)
            = view 401
            = loop Random(0 3)
            = x 148
            = y 137
            = noun 5
            = approachX x
            = approachY 147
        )(else
            (if (== global365 4)
                = view 400
                = loop 7
                = cel Random(0 3)
                = x 106
                = y 114
                = noun 6
                = local20 Random(1 local21)
            )(else
                = x 188
                = y 160
                = view 402
                = loop 3
                = cel 
                    (if (& global418 $0002)
                        0
                    )(else
                        1
                    )
                = priority 0
                = signal 20496
                = approachX 170
                = approachY 160
                (self:approachVerbs(4))
                (if (& global418 $0010)
                    = noun 19
                )(else
                    = noun 8
                )
                (send global2:addObstacle((send ((Polygon:new())):
                        type(2)
                        init(173 149 203 149 203 164 173 164)
                        yourself()
                    )
))
            )
        )
        (super:init())
    )


    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (if (== noun 5)
                    (if (((== loop 0) or (== loop 1)) or (== loop 3))
                        (if (== cel 0)
                            = local6 1
                            (self:setCycle(End self))
                            (send gLongSong2:
                                setLoop(1)
                                number(401)
                                play()
                            )
                            (send gOwner:addHonor(10))
                        )(else
                            (send gQg3Messager:say(5 6 31))
                        )
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )(else
                    (if (== noun 6)
                        (send gQg3Messager:say(6 4 30))
                    )(else
                        (if (not (& global418 $0008) and not (& global418 $0004))
                            (self:setScript(getFeather))
                        )(else
                            (super:doVerb(theVerb rest param2))
                        )
                    )
                )
            )
            (case 1
                (if (== noun 5)
                    (if (((== loop 0) or (== loop 1)) or (== loop 3))
                        (if (== cel 0)
                            (send gQg3Messager:say(5 6 32))
                        )(else
                            (send gQg3Messager:say(5 1 31))
                        )
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )(else
                    (if (== noun 6)
                        (send gQg3Messager:say(6 1 29 local20))
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )


    (method (cue)
        (if (== global365 5)
            (if (not local6 or local7)
                (self:doVerb(4))
            )(else
                = local7 1
                (send gQg3Messager:say(5 6 33))
            )
        )(else
            (super:cue())
        )
    )

)
(instance eggo of Actor
    (properties
        x -10
        y 160
        noun 7
        view 417
        signal $5000
    )

    (method (init)
        = origStep (send gOwner:origStep)
        (super:init())
        (self:
            setCycle(Walk)
            setLoop(Grooper)
            cycleSpeed((send gOwner:cycleSpeed))
            moveSpeed((send gOwner:moveSpeed))
            setScale(140)
            setMotion(PFollow gOwner 40)
        )
    )


    (method (doit)
        = approachX x
        = approachY (+ y 5)
        (super:doit())
    )


    (method (doVerb theVerb param2)
        (if (== theVerb 4)
            = local23 0
            (if (proc0_6(3))
                proc0_5(3)
            )(else
                proc0_5(2)
            )
            (self:dispose())
        )
        (super:doVerb(theVerb rest param2))
    )

)
(instance fireWood of View
    (properties
        x 146
        y 160
        noun 10
        view 400
        loop 8
        signal $4000
    )

    (method (init param1)
        (super:init(rest param1))
        (send global2:addObstacle((send ((Polygon:new())):
                type(2)
                init(129 155 163 155 163 171 129 171)
                yourself()
            )
))
    )


    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 81
                (if (not local13)
                    = noun 20
                    (send global2:setScript(castFire))
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (case 19
                (if (not local13)
                    = noun 20
                    (send global2:setScript(kindleFire))
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (case 4
                (if (local13)
                    = noun 10
                    (send global2:setScript(kindleFire))
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (case 48
                (if (local13)
                    = noun 10
                    (send gOwner:drop(37 1))
                    (send gOwner:get(15 1))
                    (send global2:setScript(kindleFire))
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance encounterScript of Script
    (properties)

    (method (changeState newState)
        (var temp0)
        (switch (= state newState)
            (case 0
                = ticks 20
            )
            (case 1
                (send gOwner:normalize())
                (switch (global365)
                    (case 565
                        = local45 35
                        = global462 600
                        (if (not gGMonsterMonHP)
                            = gGMonsterMonHP 150
                        )
                    )
                    (case 585
                        = local45 30
                        = global462 700
                        (if (not gGMonsterMonHP)
                            = gGMonsterMonHP 200
                        )
                    )
                    (case 560
                        = local45 40
                        (if (not gGMonsterMonHP)
                            = gGMonsterMonHP 320
                        )
                        = global462 1000
                    )
                    (case 0
                        = global462 1000
                        = local23 0
                        = gGMonsterMonHP 1000
                        (send client:setScript(charge))
                        (self:dispose())
                    )
                    (case 3
                        (send client:setScript(laurelAndHardy))
                        (self:dispose())
                    )
                    (case 4
                        = local23 0
                        (genericProp:init())
                        proc0_3()
                        (self:dispose())
                    )
                    (case 5
                        (genericProp:
                            approachVerbs(4)
                            init()
                        )
                        = local23 0
                        proc0_3()
                        (self:dispose())
                    )
                    (case 11
                        (eggo:
                            init()
                            approachVerbs(4)
                        )
                        = local23 1
                        proc0_3()
                        (self:dispose())
                    )
                )
                proc0_3()
                (self:cue())
            )
            (case 2
                = local15 0
                (if (== global365 2)
                    (it:init())
                )(else
                    (if (local47)
                        (it:
                            x(270)
                            y(140)
                            init()
                        )
                        (send gOwner:setMotion(PolyPath -10 (send gOwner:y)))
                    )(else
                        (if ((((<> global365 11) and proc0_6(150)) and not local1) and not local47)
                            = local1 1
                            (send gQg3Messager:say(9 6 51))
                        )
                        = temp0 Random(0 3)
                        (it:
                            x(local32[temp0])
                            y(local36[temp0])
                            init()
                        )
                    )
                )
                (if (local47)
                    (if (== global102 0)
                        (it:signal((& (it:signal) $bfff)))
                        = local8 200
                    )
                )(else
                    = local8 50
                )
                = local23 1
                (if ((<> (send gLongSong:number) 700) and (<> global365 2))
                    (send gLongSong:
                        setLoop(-1)
                        number(700)
                        play()
                    )
                )
                (self:dispose())
            )
        )
    )

)
(instance showNewRoom of Script
    (properties)

    (method (changeState newState)
        (var gOwnerX, gOwnerY, temp2)
        (switch (= state newState)
            (case 0
                proc0_2()
                (self:cue())
            )
            (case 1
                (switch (register)
                    (case 4
                        = gOwnerX -15
                        = gOwnerY (send gOwner:y)
                        (send gOwner:setMotion(PolyPath gOwnerX gOwnerY self))
                    )
                    (case 3
                        = gOwnerY 220
                        = gOwnerX (send gOwner:x)
                        (send gOwner:setMotion(PolyPath gOwnerX gOwnerY self))
                    )
                    (case 2
                        = gOwnerX 330
                        = gOwnerY (send gOwner:y)
                        (send gOwner:setMotion(PolyPath gOwnerX gOwnerY self))
                    )
                    (case 1
                        (self:cue())
                    )
                )
            )
            (case 2
                = local40 1
                (it:setMotion(0))
                (send gOwner:setMotion(0))
                = cycles 2
            )
            (case 3
                (switch (register)
                    (case 4
                        --gOwnerX
                        = gOwnerX 0
                        (if (== global365 11)
                            (eggo:x(330))
                        )(else
                            (it:x((+ 325 (- (it:x) (send gOwner:x)))))
                        )
                        (send gOwner:x(325))
                        = gOwnerY (send gOwner:y)
                    )
                    (case 3
                        ++gOwnerY
                        = gOwnerY 190
                        (if (== global365 11)
                            (eggo:y(80))
                        )(else
                            (it:y((- (it:y) (send gOwner:y))))
                        )
                        (send gOwner:y(80))
                        = gOwnerX (send gOwner:x)
                    )
                    (case 2
                        ++gOwnerX
                        = gOwnerX 320
                        = gOwnerY (send gOwner:y)
                        (if (== global365 11)
                            (eggo:x(-10))
                        )(else
                            (if (== global365 2)
                                (if (== gOwnerX 52)
                                    = local19 214
                                    proc0_4(99)
                                    proc0_5(83)
                                )
                            )(else
                                (it:x((+ -5 (- (it:x) (send gOwner:x)))))
                            )
                        )
                        (send gOwner:x(-5))
                    )
                    (case 1
                        --gOwnerY
                        = gOwnerX (send gOwner:x)
                        = gOwnerY 79
                        (if (== global365 11)
                            (eggo:y(225))
                        )(else
                            (it:y((+ 265 (- (it:y) (send gOwner:y)))))
                        )
                        (send gOwner:y(195))
                    )
                )
                localproc_32f4()
                (send gOwner:
                    normalize()
                    init()
                    setScale(Scaler 127 30 189 70)
                    setMotion(PolyPath gOwnerX gOwnerY)
                )
                (if (== global365 11)
                    (eggo:init())
                )(else
                    (it:init())
                    (if ((== global365 2) and (== gOwnerX 52))
                        = local23 0
                        (send gLongSong2:
                            number(405)
                            setLoop(-1)
                            play()
                        )
                        (beeHandler:init())
                        = newActor (Actor:new())
                        (send newActor:
                            view(402)
                            x(202)
                            y(13)
                            priority(1)
                            signal(16400)
                            setLoop(2)
                            noun(54)
                            setCycle(Fwd)
                            init()
                        )
                        = newActor_2 (Actor:new())
                        (send newActor_2:
                            view(402)
                            x(213)
                            y(29)
                            priority(11)
                            signal(16400)
                            setLoop(2)
                            noun(54)
                            setCycle(Fwd)
                            init()
                        )
                    )
                )
                = cycles 15
            )
            (case 4
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance charge of Script
    (properties)

    (method (changeState newState)
        (var temp0[2])
        (switch (= state newState)
            (case 0
                (it:
                    view(497)
                    init()
                    loop(1)
                    setMotion(0)
                    cel(0)
                    x(150)
                    y(59)
                )
                (send gMainIconBar:curIcon((send gMainIconBar:at(1))))
                (if (not HaveMouse())
                    (send gGame:setCursor(gCursorNumber 1 310 155))
                )(else
                    (send gGame:setCursor(gCursorNumber 1))
                )
                proc0_12(gOwner it self)
            )
            (case 1
                = cycles 2
            )
            (case 2
                (send gQg3Messager:say(9 6 24 0 self))
            )
            (case 3
                (it:setCycle(End self))
            )
            (case 4
                (send gQg3Messager:say(9 6 49 0 self))
            )
            (case 5
                = seconds 2
            )
            (case 6
                (it:
                    setLoop(0)
                    origStep(3341)
                    maxScale(3200)
                    setScale(Scaler 150 7 180 50)
                    moveSpeed(6)
                    cycleSpeed(5)
                    setCycle(Walk)
                    setMotion(BookTo 160 300 self)
                )
            )
            (case 7
                (send gQg3Messager:say(9 6 50 0 self))
            )
            (case 8
                = local23 0
                (it:dispose())
                (self:dispose())
            )
        )
    )

)
(instance laurelAndHardy of Script
    (properties)

    (method (changeState newState)
        (var temp0[2])
        (switch (= state newState)
            (case 0
                (self:setScript(ScriptID(401 0) self))
            )
            (case 1
                (send global2:newRoom(gGClientModNum))
            )
        )
    )

)
(instance killerBees of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(0))
                = cycles 20
            )
            (case 1
                (send gLongSong2:
                    number(406)
                    setLoop(-1)
                    play()
                )
                (send gQg3Messager:say(54 6 55 0 self))
            )
            (case 2
                (send newActor:
                    cycleSpeed(0)
                    moveSpeed(0)
                    priority(14)
                    setMotion(MoveTo - (send gOwner:x) 10 - (send gOwner:y) 25 self)
                )
                (send newActor_2:
                    cycleSpeed(0)
                    moveSpeed(0)
                    priority(14)
                    setMotion(MoveTo - (send gOwner:x) 7 - (send gOwner:y) 40)
                )
            )
            (case 3
                (send gOwner:
                    view(11)
                    loop(1)
                    cycleSpeed(0)
                    setCycle(Fwd)
                )
                = seconds 4
            )
            (case 4
                (send gLongSong2:stop())
                proc26_0(54)
            )
        )
    )

)
(instance beeHandler of TargFeature
    (properties
        x 210
        y 60
        noun 54
        nsTop 10
        nsLeft 193
        nsBottom 52
        nsRight 238
    )

    (method (init)
        (send gTheDoits:add(self))
        (super:init())
    )


    (method (doit)
        (if ((<> (send gLongSong2:number) 405) and (== (send gLongSong2:prevSignal) -1))
            (send gLongSong2:
                number(405)
                setLoop(-1)
                play()
            )
        )
        (super:doit())
    )


    (method (getHurt)
        (send newActor:setScript(killerBees))
    )

)
(instance sFx of Sound
    (properties)
)
