(include "sci.sh")
(use "Main")
(use "rm201")
(use "eureka")
(use "Scaler")
(use "Osc")
(use "Rev")
(use "ScaleTo")
(use "Sound")
(use "Cycle")
(use "View")
(use "Obj")
(script 221)


(local
    local0
    local1
    local2

)
(procedure (localproc_7999)
)


(instance staticSound of Sound
    (properties
        number 222
    )
)
(instance public sInTheAsteroids of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= seconds 2 (send gSQ5:handsOff())  )
            )
            (case 1
                (= global142 2 = seconds 1  )
            )
            (case 2
                (proc201_6(self)  )
            )
            (case 3
                (= cycles 2  )
            )
            (case 4
                ((send gTestMessager:say(17 0 16 1 self 202))  )
            )
            (case 5
                ((self:setScript(ScriptID(201 4) self))  )
            )
            (case 6
                ((self:setScript(ScriptID(209 0) self 204)) (send gSq5Music1:
                    number(35)
                    loop(-1)
                    play()
                )
  )
            )
            (case 7
                ((send gTestMessager:say(17 0 0 0 self 202))  )
            )
            (case 8
                ((self:setScript(ScriptID(209 1) self))  )
            )
            (case 9
                ((send gSq5Music1:
                    number(101)
                    loop(-1)
                    play(127)
                )
 = seconds 3  )
            )
            (case 10
                ((send (ScriptID(202 13)):init()) = cycles 1  )
            )
            (case 11
                ((send gTestMessager:say(18 0 0 0 self 202))  )
            )
            (case 12
                ((send (ScriptID(202 13)):dispose()) = seconds 4  )
            )
            (case 13
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 14
                ((staticSound:stop()) (send gTestMessager:say(18 0 17 1 self 202))  )
            )
            (case 15
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 16
                ((staticSound:stop()) = seconds 3  )
            )
            (case 17
                ((send gSq5Music2:
                    number(233)
                    setLoop(1)
                    play(self)
                )
  )
            )
            (case 18
                ((send gSq5Music2:stop()) (staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 19
                ((staticSound:stop()) (send gTestMessager:say(18 0 17 2 self 202)) = register 5  )
            )
            (case 20
                (= cycles 1  )
            )
            (case 21
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 22
                ((staticSound:stop()) (send gSq5Music2:
                    number(232)
                    loop(-1)
                    play()
                )
 = seconds 3  )
            )
            (case 23
                ((send gSq5Music2:stop()) (staticSound:
                    loop(1)
                    play()
                )
 = ticks 20  )
            )
            (case 24
                ((staticSound:stop()) (send gTestMessager:say(18 0 17 3 self 202))  )
            )
            (case 25
                (= cycles 1  )
            )
            (case 26
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 27
                ((staticSound:stop()) (send gSq5Music2:
                    number(230)
                    setLoop(-1)
                    play()
                )
 = seconds 4  )
            )
            (case 28
                ((send gSq5Music2:stop()) (staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 29
                ((staticSound:stop()) (send gTestMessager:say(18 0 17 4 self 202)) Palette(4 0 255 50) = register 10  )
            )
            (case 30
                (= cycles 1  )
            )
            (case 31
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 32
                ((staticSound:stop()) (send gSq5Music2:
                    number(231)
                    loop(-1)
                    play()
                )
 = seconds 3  )
            )
            (case 33
                ((send gSq5Music2:stop()) (staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 34
                ((staticSound:stop()) (send gTestMessager:say(18 0 17 5 self 202)) Palette(4 1 255 100)  )
            )
            (case 35
                (= cycles 1  )
            )
            (case 36
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 37
                ((staticSound:stop()) (send gTestMessager:say(18 0 17 6 self 202))  )
            )
            (case 38
                (= cycles 1  )
            )
            (case 39
                ((staticSound:
                    loop(1)
                    play()
                )
 = ticks 10  )
            )
            (case 40
                (ShakeScreen(3 1) (staticSound:dispose()) (send gSq5Music2:
                    number(233)
                    setLoop(1)
                    play()
                )
 (eureka:
                    damaged(0)
                    hits(0)
                )
 = global130 0 = cycles 1  )
            )
            (case 41
                ((send gSq5Music1:
                    number(101)
                    loop(-1)
                    play()
                )
 = cycles 1  )
            )
            (case 42
                ((send gSq5Music2:
                    number(206)
                    loop(-1)
                    play()
                )
 (cliffy:
                    init()
                    setMotion(MoveTo 133 79 self)
                )
  )
            )
            (case 43
                ((cliffy:dispose()) proc201_7(self)  )
            )
            (case 44
                ((send gTestMessager:say(18 0 59 0 self 202))  )
            )
            (case 45
                ((self:setScript(ScriptID(201 8) self))  )
            )
            (case 46
                ((send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance public sGoliathAttacks of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gSq5Music1:
                    number(38)
                    loop(-1)
                    play()
                )
 = cycles 1  )
            )
            (case 1
                ((goliath:setScript(sGoliathFires self))  )
            )
            (case 2
                (0  )
            )
            (case 3
                (
                (if (== (eureka:hits) 1)
                    (self:setScript(sGoliathComments self))
                )(else
                    (if ((== (eureka:hits) 2) and proc0_1(40))
                        = cycles 1
                    )(else
                        (send gRoom:setScript(ScriptID(210 3) 0 12))
                        (self:dispose())
                    )
                )
 )
            )
            (case 4
                ((eureka:setScript(0)) (eureka:setScript(ScriptID(210 1) 0 30)) (send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance sGoliathComments of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (proc201_6(self)  )
            )
            (case 1
                ((send gTestMessager:say(13 0 13 1 self 202))  )
            )
            (case 2
                ((self:setScript(ScriptID(201 4) self)) proc201_7()  )
            )
            (case 3
                ((send gTestMessager:say(13 0 6 0 self 202))  )
            )
            (case 4
                ((self:setScript(ScriptID(201 8) self))  )
            )
            (case 5
                ((self:dispose()) )
            )
        )
    )

)
(instance sGoliathFires of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((goliath:
                    init()
                    setScale(ScaleTo 127 4 self)
                )
 (torpedo:
                    init()
                    hide()
                )
  )
            )
            (case 1
                ((torpedo:setScript(sFireBall sGoliathAttacks)) = cycles 2  )
            )
            (case 2
                ((goliath:
                    setScale(0)
                    setCycle(End self)
                )
  )
            )
            (case 3
                ((goliath:
                    moveSpeed(0)
                    setMotion(MoveTo 110 40 self)
                )
  )
            )
            (case 4
                ((goliath:dispose()) (self:dispose()) )
            )
        )
    )

)
(instance sFireBall of Script
    (properties)

    (method (doit param1)
        (switch (state)
            (case 2
                (
                (if (>= register 100)
                    (self:cue())
                )
 )
            )
            (case 3
                (
                (if (<= register 0)
                    (self:cue())
                )
 )
            )
        )
        (super:doit(rest param1))
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((torpedo:
                    show()
                    setMotion(MoveTo 246 27 self)
                )
 = cycles 2  )
            )
            (case 1
                ((send gSq5Music2:
                    number(657)
                    setLoop(1)
                    play()
                )
 (fireBall:init())  )
            )
            (case 2
                (= register 65516 (while (<= register 100)Palette(4 236 255 register) = register (+ register 40)  ) ShakeScreen(3 3) (send gSq5Music2:
                    number(202)
                    setLoop(1)
                    play()
                )
  )
            )
            (case 3
                (= register 100 (while (>= register 0)Palette(4 236 255 register) = register (- register 20)  ) )
            )
            (case 4
                ((eureka:
                    damaged(1)
                    hits(+ (eureka:hits) 1)
                )
 (torpedo:dispose()) (fireBall:dispose()) (self:dispose()) )
            )
        )
    )

)
(instance public asteroids of View
    (properties
        view 224
        loop 2
        priority 5
        signal 16400
    )

    (method (init param1)
        (switch ((eureka:state))
            (case 2
                (= local0 45 = local1 10 (self:
                    x(+ 130 local0)
                    y(+ 75 local1)
                )
  )
            )
            (case 3
                (= local1 20 = local0 90 
                (if (== gEurekaCurLocation 16)
                    (self:
                        x(+ -252 local0)
                        y(+ 58 local1)
                    )
                )(else
                    (self:
                        x(+ 48 local0)
                        y(+ 58 local1)
                    )
                )
 )
            )
        )
        (self:
            setLoop(2)
            setCel(0)
            scaleSignal(1)
            scaleX((send (ScriptID(201 9)):scaleX))
            scaleY((send (ScriptID(201 9)):scaleY))
            maxScale((send (ScriptID(201 9)):maxScale))
            signal(24592)
        )
        (super:init(rest param1))
    )


    (method (doit param1)
        (self:
            x(+ (send (ScriptID(201 9)):x) local0)
            y(+ (send (ScriptID(201 9)):y) local1)
            scaleX((send (ScriptID(201 9)):scaleX))
            scaleY((send (ScriptID(201 9)):scaleY))
            maxScale((send (ScriptID(201 9)):maxScale))
        )
        (super:doit(rest param1))
    )

)
(instance public asteroid1 of Actor
    (properties
        x 94
        y 87
        view 220
        priority 5
        signal 16400
    )

    (method (init param1)
        (self:
            setCycle(Fwd)
            cycleSpeed(18)
        )
        (super:init(rest param1))
    )


    (method (doit param1)
        (self:x((+ (send (ScriptID(201 9)):x) 40)))
        (super:doit(rest param1))
    )

)
(instance public asteroid2 of Actor
    (properties
        x 233
        y 74
        view 220
        loop 1
        cel 7
        priority 5
        signal 16400
    )

    (method (init param1)
        (self:
            setCycle(Rev)
            cycleSpeed(16)
        )
        (super:init(rest param1))
    )


    (method (doit param1)
        (self:x((+ (send (ScriptID(201 9)):x) 185)))
        (super:doit(rest param1))
    )


    (method (dispose param1)
        (send gSq5Music2:stop())
        (super:dispose(rest param1))
    )

)
(instance public asteroid3 of Actor
    (properties
        x 166
        y 95
        view 220
        loop 2
        cel 7
        priority 5
        signal 16400
    )

    (method (doit param1)
        (self:
            x(+ (send (ScriptID(201 9)):x) 118)
            cel((asteroid2:cel))
        )
        (super:doit(rest param1))
    )

)
(instance public asteroid4 of Actor
    (properties
        x 208
        y 103
        view 220
        loop 3
        cel 8
        priority 5
        signal 16400
    )

    (method (doit param1)
        (self:
            x(+ (send (ScriptID(201 9)):x) 160)
            cel((asteroid1:cel))
        )
        (super:doit(rest param1))
    )

)
(instance fireBall of View
    (properties
        x 183
        y 39
        view 224
        loop 5
        priority 5
        signal 16401
    )

    (method (init param1)
        (super:init(rest param1))
        Palette(4 236 255 0)
    )

)
(instance torpedo of Actor
    (properties
        view 224
        loop 4
        priority 6
        signal 16400
    )

    (method (init param1)
        (self:
            setLoop(4)
            setCel(0)
            x(148)
            y(67)
            scaleSignal(1)
            setStep(20 20)
            moveSpeed(0)
            ignoreActors(1)
            setScale(Scaler 20 100 67 37)
        )
        (super:init(rest param1))
    )

)
(instance cliffy of Actor
    (properties
        view 2201
        signal 24592
    )

    (method (init param1)
        (self:
            setLoop(4)
            x(56)
            y(187)
            setPri(5)
            setCycle(Osc)
            setSpeed(7)
            setScale(Scaler 100 5 134 79)
        )
        (super:init(rest param1))
    )

)
(instance goliath of Actor
    (properties
        view 224
        loop 3
        priority 5
        signal 24592
    )

    (method (init param1)
        (self:
            x(135)
            y(65)
            setLoop(3)
            setSpeed(2)
            setStep(10 10)
            ignoreActors(1)
            scaleSignal(1)
            scaleX(8)
            scaleY(8)
            maxScale(8)
        )
        (super:init(rest param1))
    )

)
