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



(instance public dewormMonster of Monster
    (properties
        x 166
        y 128
        view 586
        loop 1
        roar 908
        primDamage 30
        secDamage 20
        armorValue 10
        monHP 200
        spellHitX 166
        spellHitY 78
    )

    (method (init param1)
        (send global2:picture(550))
        (super:init(rest param1))
        (self:setScript(sFight))
        (armFront:init())
        (armBack:
            init()
            hide()
        )
        (send gLongSong:
            setLoop(-1)
            changeTo(154)
        )
    )


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


    (method (defenseLevel)
        return 200
    )

)
(instance armFront of MonsterProp
    (properties
        x 195
        y 130
        view 586
        priority 11
    )

    (method (cue)
        (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
            (send gLongSong2:
                number(940)
                play()
            )
        )
        (self:setCycle(Beg))
    )

)
(instance armBack of MonsterProp
    (properties
        x 143
        y 105
        view 586
        priority 4
    )

    (method (cue)
        (if (> cel 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
                (send gLongSong2:
                    number(940)
                    play()
                )
            )
            (self:setCycle(CT Random(0 2) -1 self))
        )(else
            (self:hide())
        )
    )

)
(instance sFight of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = ticks (/ Random(45 180) global209)
            )
            (case 1
                (send gMonster:
                    setCel(0)
                    x(166)
                    y(128)
                    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:primDamage)))
                )
                (dewormMonster:setCycle(CT Random(0 3) -1 self))
            )
            (case 3
                (if (Random(0 1))
                    (armFront:setCycle(End armFront))
                    = ticks (/ 180 global209)
                )
                (if (Random(0 1))
                    (armBack:
                        show()
                        setCycle(End armBack)
                    )
                    = ticks (/ 180 global209)
                )
                (if (not ticks)
                    = ticks (/ 18 global209)
                )
            )
            (case 4
                (self:init())
            )
        )
    )

)
(instance sReact of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gMonster:
                    setCel(0)
                    setCycle(CT 2 1)
                )
                = ticks 60
            )
            (case 1
                (send gMonster:whimper())
                = ticks (- (/ Random(180 360) global209) 59)
            )
            (case 2
                (send gMonster:setScript(sFight))
            )
        )
    )

)
