// BlueBug.java
// User-defined class BlueBug.java
// Subclass of Bug
// Shows dynamic method  binding and polymorphism
import java.awt.*;

public class BlueBug extends Bug {
        // instance variables
        private Triangle t;  // shape of body
        private int s;  // speed of crawl
        private int x, y;  // x and y coordinates of head
        private int w, h;  // body width and height
        private int l, f;  // leg and foot size

        // constructor
        public BlueBug( String name, int speed, Triangle tri, int leg, int foot ) {
                super( name );
                s = speed;
                t = tri;
                l = leg;
                f = foot;
        }

        public void draw( Graphics g ) {
                x = t.getX( );
                y = t.getY( );
                w = t.getW( );
                h = t.getH( );

                g.setColor( Color.black );

                for ( int i = 1; i <= 2; i ++ ) {
                        g.drawLine( x + i * w / 3 - f, y - i * h / 6 - l , x + i * w / 3, y - i * h / 6 - l );  // top foot
                        g.drawLine( x + i * w / 3, y - i * h / 6 - l , x + i * w / 3, y +  i * h / 6 + l );  // long line
                        g.drawLine( x + i * w / 3 - f, y + i * h / 6 + l , x + i * w / 3, y + i * h / 6 + l );  // bottom foot
                }
                
                g.drawLine( x - 3, y - 3, x, y );
                g.drawLine( x - 3, y + 3, x, y );
                g.setColor( Color.red );
                g.fillOval( x - 4, y - 4, 3, 3 );
                g.fillOval( x - 4, y + 4, 3, 3 );

                // draw body
                t.fill( g, Color.blue );

                g.setColor( Color.black );
        }

        public void crawl( ) {
                x = t.getX( );
                y = t.getY( );
                w = t.getW( );
                h = t.getH( );
                x -= s;
                t.setPointA( x, y );
                t.setPointB( x, y, w, h );
                t.setPointC( x, y, w, h );
        }

        public String toString( ) {
                return "The bluebug is named:  " + getBugName( );
        }
}