(version 2)
(include "sci.sh")
(exports
    0 gargoyleMonster
)
(use "Main")
(use "CombatIcon")
(use "Cycle")
(use "Obj")
(script 855)



(instance public gargoyleMonster of Monster
    (properties
        x 174
        y 136
        view 851
        roar 933
        primDamage 25
        secDamage 15
        armorValue 17
        monHP 280
        spellHitX 164
        spellHitY 61
        mustFight 1
    )

    (method (init param1)
        = gGMonsterMonHP 280
        (send global2:picture(550))
        (super:init(rest param1))
        (self:setScript(sFight))
    )


    (method (getHurt)
        (self:setScript(sReact))
        (super:getHurt())
    )


    (method (defenseLevel)
        return 150
    )

)
(instance sFight of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = ticks (/ Random(45 180) global209)
            )
            (case 1
                (if (== (= register Random(2 3)) 2)
                    (send gMonster:
                        x(154)
                        setLoop(2)
                        setCycle(CT 1 1 self)
                    )
                )(else
                    (send gMonster:
                        setLoop(3)
                        setCycle(End self)
                    )
                )
            )
            (case 2
                (send gWarriorObj:autoDodge())
                (if (not 
                (if ((== (send gWarriorObj:view) 26) or (== (send gWarriorObj:view) 27))
                )(else
                    == (send gWarriorObj:view) 555
                )
)
                    (if (== register 2)
                        (send gWarriorObj:getHurt((send gMonster:primDamage)))
                    )(else
                        (send gWarriorObj:getHurt((send gMonster:secDamage)))
                    )
                )(else
                    (if (== register 3)
                        (send gLongSong2:
                            number(940)
                            play()
                        )
                    )
                )
                (if (== register 2)
                    (send gMonster:
                        x(174)
                        y(136)
                        whimper()
                        setCycle(End self)
                    )
                )(else
                    = cycles (+ (/ 3 global209) 1)
                )
            )
            (case 3
                (send gMonster:
                    x(174)
                    y(136)
                    setLoop(0)
                    setCel(0)
                    stopUpd()
                )
                (self:init())
            )
        )
    )

)
(instance sReact of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gMonster:
                    setLoop(1)
                    setCel(0)
                    setCycle(End)
                )
                = ticks 35
            )
            (case 1
                (send gMonster:whimper())
                = ticks (- (/ Random(45 180) global209) 14)
            )
            (case 2
                (send gMonster:setScript(sFight))
            )
        )
    )

)
