package world.items { import flash.display.Sprite; import flash.geom.Point; import creatures.*; import creatures.parts.*; import world.items.behaviors.*; public class ChupaovejaDweller extends Dweller { private static const STAND_CYCLE_FRAMES:int = 1; private static const STAND_CYCLE_LEGS:Array = [ [0,1,2,-2,-1], ]; private static const STAND_CYCLE_ARMS:Array = [ [0,1.6,-0.6,0.9], ]; private static const STAND_CYCLE_HEAD:Array = [ [0,-.25,1], ]; private static const WALK_CYCLE_FRAMES:int = 30; private static const WALK_CYCLE_LEGS:Array = [ [0,1.8,1.7,-1.6,-1.2], [0,1.3,2.5,-2.5,-1.2], [0,0.5,1.8,-1.7,-0.7], [0,1,2,-2,-1.1], ]; private static const WALK_CYCLE_ARMS:Array = [ [0,1.3,-1.0,0.6], [0,1.6,-0.6,0.9], [0,2.0,-1.0,1.3], [0,1.6,-0.8,1.2], ]; private static const WALK_CYCLE_HEAD:Array = [ [0,-.25,1], [0,0,.75], [0,-.25,1], [0,0,.75], ]; private static const ATTACK_CYCLE_FRAMES:int = 10; private static const ATTACK_CYCLE_LEGS:Array = [ [0,1,2,-2,-1], ]; private static const ATTACK_CYCLE_ARMS:Array = [ [0,1.3,-1.0,0.6], [0,2.0,-1.0,1.3], [0,1.3,-1.0,0.6], [0,2.0,-1.0,1.3], ]; private static const ATTACK_CYCLE_HEAD:Array = [ [0,-.5,.5], [0,.5,1], ]; public function ChupaovejaDweller(loc:Point = null) { _display = new Chupaoveja(); var chip:Chupaoveja = _display as Chupaoveja; walkSpeed = 5; size = 80; // create behavior setBehavior(new Hunter()); // create animations var anim:SkeletonAnimation; var segAnim:SegmentAnimation; // Stand cycle anim = new SkeletonAnimation(); segAnim = new SegmentAnimation(STAND_CYCLE_FRAMES, STAND_CYCLE_LEGS); anim.addSegmentAnimation(segAnim, "leftLeg"); anim.addSegmentAnimation(segAnim, "rightLeg"); segAnim = new SegmentAnimation(STAND_CYCLE_FRAMES, STAND_CYCLE_ARMS); anim.addSegmentAnimation(segAnim, "leftArm"); anim.addSegmentAnimation(segAnim, "rightArm"); segAnim = new SegmentAnimation(STAND_CYCLE_FRAMES, STAND_CYCLE_HEAD); anim.addSegmentAnimation(segAnim, "head"); addSkeletonAnimation(anim, Dweller.STAND_ANIM); // Walk cycle anim = new SkeletonAnimation(); segAnim = new SegmentAnimation(WALK_CYCLE_FRAMES, WALK_CYCLE_LEGS); anim.addSegmentAnimation(segAnim, "leftLeg"); anim.addSegmentAnimation(segAnim, "rightLeg", WALK_CYCLE_FRAMES/2); segAnim = new SegmentAnimation(WALK_CYCLE_FRAMES, WALK_CYCLE_ARMS); anim.addSegmentAnimation(segAnim, "leftArm"); anim.addSegmentAnimation(segAnim, "rightArm", WALK_CYCLE_FRAMES/2); segAnim = new SegmentAnimation(WALK_CYCLE_FRAMES, WALK_CYCLE_HEAD); anim.addSegmentAnimation(segAnim, "head"); addSkeletonAnimation(anim, Dweller.WALK_ANIM); // Attack cycle anim = new SkeletonAnimation(); segAnim = new SegmentAnimation(ATTACK_CYCLE_FRAMES, ATTACK_CYCLE_LEGS); anim.addSegmentAnimation(segAnim, "leftLeg"); anim.addSegmentAnimation(segAnim, "rightLeg"); segAnim = new SegmentAnimation(ATTACK_CYCLE_FRAMES, ATTACK_CYCLE_ARMS); anim.addSegmentAnimation(segAnim, "leftArm"); anim.addSegmentAnimation(segAnim, "rightArm", ATTACK_CYCLE_FRAMES/4); segAnim = new SegmentAnimation(ATTACK_CYCLE_FRAMES, ATTACK_CYCLE_HEAD); anim.addSegmentAnimation(segAnim, "head", ATTACK_CYCLE_FRAMES/2); addSkeletonAnimation(anim, Dweller.ATTACK_ANIM); // init loc if (loc) { location = loc; } } public override function clone():Dweller { var copy:ChupaovejaDweller = new ChupaovejaDweller(); return copy; } public override function toString():String { return "[Chupaoveja Dweller]"; } } }