(version 2)
(include "sci.sh")
(exports
    0 leopardmanMonster
)
(use "Main")
(use "CombatIcon")
(use "Cycle")
(use "View")
(use "Obj")
(script 595)



(instance public leopardmanMonster of Monster
    (properties
        x 165
        y 145
        roar 909
        primDamage 20
        secDamage 8
        tertDamage 8
        armorValue 4
        monHP 180
        spellHitX 165
        spellHitY 90
    )

    (method (init param1)
        (if (== gGClientModNum 650)
            = view 655
            (send global2:picture(550))
            = mustFight 1
        )(else
            = view 591
            (send global2:picture(555))
            (send gLongSong:
                setLoop(-1)
                changeTo(154)
            )
        )
        (super:init(rest param1))
        (self:setScript(sFight))
        (leopSpell:
            init()
            hide()
        )
    )


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


    (method (defenseLevel)
        return 200
    )

)
(instance leopSpell of Actor
    (properties
        x 160
        y 90
        yStep 15
        view 22
        priority 11
        signal $4810
        cycleSpeed 5
        xStep 15
        moveSpeed 0
    )

    (method (cue)
        (if ((> x -20) and (< loop 3))
            (send gWarriorObj:autoDodge())
            (if (not 
            (if ((== (send gWarriorObj:view) 26) or (== (send gWarriorObj:view) 27))
            )(else
                == (send gWarriorObj:view) 555
            )
)
                (if (not > gGGOwnerMaxStamina 0)
                    (send gWarriorObj:getHurt((send gMonster:primDamage)))
                )
                (self:
                    setCel(0)
                    setLoop(
                        (if (% loop 2)
                            4
                        )(else
                            3
                        )
)
                    setCycle(End self)
                )
            )(else
                (send gLongSong2:
                    number(940)
                    play()
                )
                (self:setMotion(MoveTo -20 90 self))
            )
        )(else
            (self:hide())
        )
    )

)
(instance sFight of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = ticks (/ Random(60 150) global209)
            )
            (case 1
                (send gMonster:
                    setLoop(Random(0 2))
                    setCel(0)
                    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
                )
)
                    (send gWarriorObj:getHurt((send gMonster:secDamage)))
                )(else
                    (if (< (send gMonster:loop) 2)
                        (send gLongSong2:
                            number(940)
                            play()
                        )
                    )
                )
                (send gMonster:setCel(0))
                = ticks (/ Random(60 150) global209)
            )
            (case 3
                = start 0
                = global432 (- global432 5)
                (if (> global432 4)
                    (send gMonster:
                        setLoop(3)
                        setCycle(End self)
                    )
                )(else
                    (self:
                        start(0)
                        init()
                    )
                )
            )
            (case 4
                (leopSpell:
                    show()
                    cel(0)
                    loop(Random(0 2))
                    x(160)
                    y(90)
                    setCycle(Fwd)
                    setMotion(MoveTo 105 90 leopSpell)
                )
                (self:
                    start(0)
                    init()
                )
            )
        )
    )

)
(instance sReact of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gMonster:
                    x(165)
                    y(145)
                    setCel(0)
                    setLoop(1)
                    setCycle(CT 2 1)
                )
                = ticks 60
            )
            (case 1
                (send gMonster:whimper())
                = ticks (- (/ Random(90 120) global209) 29)
            )
            (case 2
                (if (Random(0 1))
                    (sFight:start(3))
                )
                (send gMonster:setScript(sFight))
            )
        )
    )

)
