(include "sci.sh")
(use "Main")
(use "Class_255_0")
(use "Extra")
(use "Sound")
(use "Cycle")
(use "Game")
(use "User")
(use "PV")
(use "Obj")
(script 690)


(local
    newExtra
    newAct_3
    newAct
    local3
    newAct_2
    newProp_2
    newProp
    newProp_3
    newView
    newProp_4
    newProp_5

)
(instance wave1 of Prop
    (properties)
)
(instance wave2 of Prop
    (properties)
)
(instance fairyCage of Cage
    (properties
        top 52
        left 101
        bottom 92
        right 228
    )
)
(instance public Room690 of Rm
    (properties
        picture 40
        horizon 98
    )

    (method (init)
        (super:init())
        = global22 global23
        (wave1:
            view(664)
            loop(3)
            cel(0)
            posn(40 178)
            setPri(0)
            ignoreActors()
            cycleSpeed(4)
            setCycle(Fwd)
            init()
        )
        (wave2:
            view(664)
            loop(4)
            cel(2)
            posn(280 178)
            setPri(0)
            ignoreActors()
            cycleSpeed(4)
            setCycle(Fwd)
            init()
        )
        = newProp (Prop:new())
        (send newProp:
            view(650)
            loop(2)
            cel(2)
            posn(61 85)
            setPri(0)
            ignoreActors()
            setCycle(Fwd)
            init()
        )
        (send ((View:new())):
            view(613)
            loop(1)
            cel(0)
            posn(156 78)
            setPri(2)
            init()
            addToPic()
        )
        (send ((Act:new())):
            view(114)
            illegalBits(0)
            posn(110 60)
            setCycle(Walk)
            setMotion(Wander)
            setPri(3)
            observeBlocks(fairyCage)
            moveSpeed(2)
            ignoreHorizon()
            init()
        )
        (send ((Act:new())):
            view(110)
            illegalBits(0)
            posn(190 80)
            setCycle(Walk)
            setMotion(Wander)
            setPri(3)
            observeBlocks(fairyCage)
            moveSpeed(2)
            ignoreHorizon()
            init()
        )
        (send gEgo:
            view(106)
            posn(158 130)
            setLoop(5)
            cel(0)
            setScript(egoActions)
            init()
        )
        = global205 1
    )


    (method (dispose)
        DisposeScript(988)
        (super:dispose())
    )

)
(instance egoActions of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((User:
                    canControl(0)
                    canInput(0)
                )
 (send gEgo:setCycle(End self)) 
                (if ((send gEgo:has(25)) and (send gEgo:has(33)))
                    (send ((Sound:new())):
                        number(201)
                        play()
                    )
                )(else
                    (if ((send gEgo:has(25)))
                        (send ((Sound:new())):
                            number(200)
                            play()
                        )
                    )(else
                        (if ((send gEgo:has(33)))
                            (send ((Sound:new())):
                                number(203)
                                play()
                            )
                        )(else
                            (send ((Sound:new())):
                                number(202)
                                play()
                            )
                        )
                    )
                )
 )
            )
            (case 1
                (= newAct (Act:new()) (send newAct:
                    posn(185 130)
                    view(106)
                    setLoop(4)
                    cel(0)
                    init()
                    setCycle(End self)
                )
  )
            )
            (case 2
                (= global120 Print(690 0 134 -1 10 172) = seconds 5  )
            )
            (case 3
                (proc0_23() 
                (if ((send gEgo:has(33)))
                    (self:changeState(10))
                )(else
                    (self:changeState(4))
                )
 )
            )
            (case 4
                (
                (if ((send gEgo:has(25)))
                    (self:changeState(20))
                )(else
                    (self:changeState(100))
                )
 )
            )
            (case 10
                (= global120 Print(690 1 134 -1 20 160 "Genesta" 166 172) = seconds 6  )
            )
            (case 11
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send gEgo:
                    view(106)
                    setLoop(1)
                    cel(0)
                    cycleSpeed(1)
                    setCycle(End self)
                )
  )
            )
            (case 12
                ((send newAct:
                    setLoop(0)
                    cel(0)
                    setCycle(End self)
                )
 (send gEgo:
                    setLoop(5)
                    cel(5)
                )
 (send gGame:changeScore(2))  )
            )
            (case 13
                ((send newAct:
                    loop(2)
                    cycleSpeed(1)
                    setCycle(Fwd)
                )
 = global120 Print(690 2 134 -1 10 172) = seconds 8  )
            )
            (case 14
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 3 134 -1 20 160 "Genesta" 172) = seconds 6  )
            )
            (case 15
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newAct:
                    setLoop(3)
                    cel(0)
                    setCycle(CT 3 1 self)
                )
  )
            )
            (case 16
                ((send newAct:setCycle(End)) = newAct_2 (Act:new()) (send newAct_2:
                    view(360)
                    xStep(1)
                    yStep(1)
                    cycleSpeed(3)
                    posn((send newAct:x()) + (send newAct:y()) 6)
                    moveSpeed(3)
                    setCycle(Walk)
                    setMotion(Wander)
                    illegalBits(65534)
                    init()
                )
 = seconds 4  )
            )
            (case 17
                ((send newAct:cycleSpeed(0)) (self:changeState(4))  )
            )
            (case 20
                (= global120 Print(690 4 134 -1 20 160 "Genesta" 172) = seconds 15  )
            )
            (case 21
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 5 134 -1 10 172) = seconds 6  )
            )
            (case 22
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 6 134 -1 20 160 "Genesta" 172) = seconds 10  )
            )
            (case 23
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newAct:
                    view(755)
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 24
                (= newProp_2 (Prop:new()) (send newProp_2:
                    view(680)
                    cel(0)
                    posn((send gEgo:x()) (send gEgo:y()))
                    setPri(+ (send gEgo:priority()) 1)
                    setCycle(CT 5 1 self)
                    init()
                )
  )
            )
            (case 25
                ((send gEgo:
                    view(757)
                    loop(0)
                    cel(1)
                )
 (send newProp_2:setCycle(End self))  )
            )
            (case 26
                ((send newProp_2:hide()) = global120 Print(690 7 134 -1 20 160 "Genesta" 172) (send newAct:
                    loop(3)
                    setCycle(Fwd)
                )
 = seconds 10  )
            )
            (case 27
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newAct:
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 28
                (= newAct_3 (Act:new()) (send newAct_3:
                    view(107)
                    posn(136 131)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                    init()
                )
  )
            )
            (case 29
                ((send gEgo:cel(0)) (send newAct_3:
                    loop(1)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 30
                (= global120 Print(690 8 134 -1 20 160 "Genesta" 172) = seconds 8 (send newAct:
                    loop(3)
                    setCycle(Fwd)
                )
  )
            )
            (case 31
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newAct:
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 32
                ((send newAct_3:
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
 (send newAct:
                    setLoop(-1)
                    loop(3)
                    setCycle(Fwd)
                )
  )
            )
            (case 33
                (= seconds 4  )
            )
            (case 34
                ((send newAct_3:
                    view(108)
                    loop(0)
                    cel(0)
                    cycleSpeed(3)
                    setCycle(CT 3 1 self)
                )
  )
            )
            (case 35
                ((send gCast:eachElementDo(256)) (send global2:drawPic(696)) (send (= newProp_3 (Prop:new())):
                    view(787)
                    loop(0)
                    cel(0)
                    posn(84 128)
                    ignoreActors()
                    init()
                )
 = newProp_4 (Prop:new()) = newProp_5 (Prop:new()) (send newProp_4:
                    view(787)
                    loop(4)
                    cel(1)
                    posn(17 112)
                    setPri(0)
                    cycleSpeed(4)
                    setCycle(Fwd)
                    init()
                )
 (send newProp_5:
                    view(787)
                    loop(5)
                    cel(3)
                    posn(126 95)
                    setPri(0)
                    cycleSpeed(4)
                    setCycle(Fwd)
                    init()
                )
 (send (= newExtra (Extra:new())):
                    view(787)
                    loop(3)
                    cel(2)
                    posn(180 55)
                    setPri(13)
                    pauseCel(0)
                    minPause(30)
                    maxPause(30)
                    minCycles(4)
                    maxCycles(4)
                    init()
                )
 = global120 Print(690 9 134 -1 10 172) = seconds 6  )
            )
            (case 36
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newProp_3:
                    cycleSpeed(5)
                    setCycle(End self)
                )
 = global120 Print(690 10 134 -1 20 160 "Edgar" 172) (send (= newView (View:new())):
                    view(787)
                    loop(2)
                    cel(0)
                    posn(92 193)
                    setPri(14)
                    init()
                )
  )
            )
            (case 37
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 11 134 -1 10 172) = seconds 5  )
            )
            (case 38
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 12 134 -1 10 172) = seconds 5  )
            )
            (case 39
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 13 134 -1 10 172) = seconds 3  )
            )
            (case 40
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 14 134 -1 20 160 "Rosella" 172) (send newProp_3:
                    view(787)
                    loop(1)
                    cel(0)
                    posn(72 158)
                    setPri(14)
                )
 (send newView:dispose()) = seconds 7  )
            )
            (case 41
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newProp_3:dispose()) (send newExtra:dispose()) = global120 Print(690 15 134 -1 20 160 "Rosella" 172) = seconds 4  )
            )
            (case 42
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newProp_4:dispose()) (send newProp_5:dispose()) (Timer:setCycle(self 2))  )
            )
            (case 43
                ((send global2:drawPic(40)) (send gCast:eachElementDo(354)) (send ((View:new())):
                    view(613)
                    loop(1)
                    cel(0)
                    posn(156 78)
                    setPri(2)
                    init()
                    addToPic()
                )
 (send gEgo:cel(1)) (send newAct_3:setCycle(End)) = global120 Print(690 16 134 -1 20 160 "Genesta" 172) = seconds 6  )
            )
            (case 44
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 17 134 -1 20 160 "Genesta" 172) = seconds 5  )
            )
            (case 45
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newAct:
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 46
                (= newProp_2 (Prop:new()) (send newProp_2:
                    view(680)
                    loop(0)
                    cel(0)
                    posn((send gEgo:x()) (send gEgo:y()))
                    setPri(+ (send gEgo:priority()) 1)
                    setCycle(CT 5 1 self)
                    init()
                )
  )
            )
            (case 47
                ((send gEgo:hide()) (send newProp_2:setCycle(End self))  )
            )
            (case 48
                ((send global2:newRoom(693))  )
            )
            (case 100
                ((send newAct:
                    view(755)
                    setLoop(3)
                    cel(8)
                )
 = global120 Print(690 18 134 -1 20 160 "Genesta" 172) = seconds 15  )
            )
            (case 101
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 19 134 -1 10 172) = seconds 8  )
            )
            (case 102
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = global120 Print(690 20 134 -1 20 160 "Genesta" 172) = seconds 10  )
            )
            (case 103
                ((send newAct:
                    setLoop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 104
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = newProp_2 (Prop:new()) (send newProp_2:
                    view(680)
                    cel(0)
                    posn((send gEgo:x()) (send gEgo:y()))
                    setPri(+ (send gEgo:priority()) 1)
                    setCycle(CT 5 1 self)
                    init()
                )
  )
            )
            (case 105
                ((send gEgo:
                    view(757)
                    loop(0)
                    cel(1)
                )
 (send newProp_2:setCycle(End self))  )
            )
            (case 106
                ((send newProp_2:hide()) = global120 Print(690 21 134 -1 20 160 "Genesta" 172) = seconds 10  )
            )
            (case 107
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send newProp_2:
                    cel(0)
                    show()
                    setCycle(CT 5 1 self)
                )
  )
            )
            (case 108
                ((send gEgo:hide()) (send newProp_2:setCycle(End self))  )
            )
            (case 109
                ((send newProp_2:dispose()) (send global2:newRoom(693)) )
            )
        )
    )

)
