package creatures { import flash.filters.DropShadowFilter; import flash.geom.Point; import creatures.parts.*; public class Sheep extends Creature { private var centerPlane:Plane; private var leftPlane:Plane; private var rightPlane:Plane; private var _torso:Appendage; private var _head:Appendage; private var _leftLeg:Appendage; private var _leftArm:Appendage; private var _rightLeg:Appendage; private var _rightArm:Appendage; public function get torso():Appendage { return _torso; } public function get head():Appendage { return _head; } public function get leftLeg():Appendage { return _leftLeg; } public function get leftArm():Appendage { return _leftArm; } public function get rightLeg():Appendage { return _rightLeg; } public function get rightArm():Appendage { return _rightArm; } public function Sheep() { super(); centerPlane = definePlane(new Plane(sideMatrix)); leftPlane = definePlane(new Plane(sideMatrix, new Point(0, 25))); rightPlane = definePlane(new Plane(sideMatrix, new Point(0, -25))); _torso = defineAppendage(new Appendage(), centerPlane); _head = defineAppendage(new Appendage(), centerPlane); _leftLeg = defineAppendage(new Appendage(), leftPlane); // puffy white body Segment.setNewStyle({backgroundColor:0xFFFFFF}); _torso.appendSegments([ new Segment(0, 0, 40), ]); // add inner shadow _torso.filters = [new DropShadowFilter(8, 225, 0xDDDDDD, 1, 0,0, 1, 1, true)]; // skin head Segment.setNewStyle({backgroundColor:0xEEDDB0}); _head.appendSegments([ new Segment(40, 20, 15), ]); // legs with black hooves var toeSegment:Segment = new Segment(5, 0, 5); toeSegment.setStyle({backgroundColor:0}); _leftLeg.appendSegments([ new Segment(-20, 15, 8), new Segment(20, 0, 5), toeSegment, ]); _rightLeg = defineAppendage(_leftLeg.clone(), rightPlane); _rightArm = defineAppendage(_leftLeg.clone(), rightPlane); _rightArm.getSegmentAt(0).x *= -1; _leftArm = defineAppendage(_rightLeg.clone(), leftPlane); _leftArm.getSegmentAt(0).x *= -1; body.y -= 24; // vertical offset to place feet on ground } public override function clone():Skeleton { var copy:Sheep = new Sheep(); return copy as Skeleton; } protected override function arrange():void { super.arrange(); // always force body to be placed over legs body.addChildAt(centerPlane, body.numChildren - 1); } } }