public Snake(Vector2 position, int spriteIndex) : base(position, new Box(position, new Vector2(8, 8)), spriteIndex)
        {
            //
            // Add animator
            //

            var anim = new P8TopDownAnimator(P8TopDownAnimator.AnimationMode.SIDES_ONLY);

            anim.RunLeft  = new SpriteAnimation(new P8Sprite(19), 2, 0.3f + (float)GameManager.random.NextDouble() * 0.3f);
            anim.IdleLeft = anim.RunLeft;

            anim.RunRight  = new SpriteAnimation(new P8Sprite(19, 1, 1, true, false), 2, 0.3f + (float)GameManager.random.NextDouble() * 0.3f);
            anim.IdleRight = anim.RunRight;

            AddComponent(anim);

            //
            // Add physics
            //

            AddComponent(new TopDownPhysics(0, 0, 0.94f));

            //
            // Adjust life time ( 1 hit kill )
            //

            lifeTime = 5 + GameManager.random.NextDouble() * 5;

            AddComponent(new FillBar(new Vector2(0, -2), 8, 0, lifeTime));
        }
Example #2
0
        public Goose(Vector2 position, int spriteIndex) : base(position, new Box(position, new Vector2(8, 8)), spriteIndex)
        {
            gooseStateMachine = new GooseStateMachine(this);

            List <P8Sprite> spriteListLeft = new List <P8Sprite>();

            spriteListLeft.Add(new P8StrechedSprite(42, 12, 8));
            spriteListLeft.Add(new P8StrechedSprite(92, 16, 12, 8));
            spriteListLeft.Add(new P8StrechedSprite(58, 12, 8));
            spriteListLeft.Add(new P8StrechedSprite(92, 24, 12, 8));

            List <P8Sprite> spriteListRight = new List <P8Sprite>();

            spriteListRight.Add(new P8StrechedSprite(42, 12, 8, 12, 8, true, false));
            spriteListRight.Add(new P8StrechedSprite(92, 16, 12, 8, 12, 8, true, false));
            spriteListRight.Add(new P8StrechedSprite(58, 12, 8, 12, 8, true, false));
            spriteListRight.Add(new P8StrechedSprite(92, 24, 12, 8, 12, 8, true, false));

            var anim = new P8TopDownAnimator(P8TopDownAnimator.AnimationMode.SIDES_ONLY);

            anim.RunLeft  = new SpriteAnimation(spriteListLeft, 0.1f);
            anim.IdleLeft = new SpriteAnimation(new List <P8Sprite>()
            {
                new P8StrechedSprite(104, 22, 10, 10)
            }, 0);

            anim.RunRight  = new SpriteAnimation(spriteListRight, 0.1f);
            anim.IdleRight = new SpriteAnimation(new List <P8Sprite>()
            {
                new P8StrechedSprite(104, 22, 10, 10, 10, 10, true, false)
            }, 0);

            AddComponent(anim);
            AddComponent(new TopDownPhysics(15, 5, 0.9999f));

            doesDamage = false;

            AddComponent(new FillBar(new Vector2(0, -2), 8, 0, lifeTime));

            var newTags = tags;

            newTags.Remove("enemy");
            tags = newTags;
        }
        public OldMan(Vector2 position, int spritePosition, List <string> messages) : base(position, new Box(position, new Vector2(8, 8)), spritePosition)
        {
            AddComponent(new TopDownPhysics(0, 0, 0.95f));
            var graphics = new P8TopDownAnimator(P8TopDownAnimator.AnimationMode.SIDES_ONLY);

            AddComponent(graphics);
            graphics.RunLeft   = new SpriteAnimation(new P8Sprite(0, 1, 1, true, false), 3, 0.4f);
            graphics.IdleLeft  = graphics.RunLeft;
            graphics.RunRight  = new SpriteAnimation(new P8Sprite(0, 1, 1, false, false), 3, 0.4f);
            graphics.IdleRight = graphics.RunRight;

            doesDamage = false;

            if (messages != null && messages.Count != 0)
            {
                var dialoguePos = position - new Vector2(8, 0);
                GameObjectManager.AddObject(new DialogueArea(dialoguePos, new Box(dialoguePos, new Vector2(24, 16)), this, messages));
            }
        }
Example #4
0
        public Tortuga(Vector2 position, int spriteIndex) : base(position, new Box(position, new Vector2(8, 8)), spriteIndex)
        {
            AddComponent(new TopDownPhysics(10, 10));

            var anim = new P8TopDownAnimator(P8TopDownAnimator.AnimationMode.SIDES_ONLY);

            anim.RunRight  = new SpriteAnimation(new P8Sprite(22), 4, _animationLength);
            anim.IdleRight = new SpriteAnimation(new P8Sprite(21), 1, _animationLength);

            anim.RunLeft  = new SpriteAnimation(new P8Sprite(22, 1, 1, true, false), 4, _animationLength);
            anim.IdleLeft = new SpriteAnimation(new P8Sprite(21, 1, 1, true, false), 1, _animationLength);

            AddComponent(anim);

            _tortugaStateMachine = new TortugaStateMachine(this);
            _tortugaStateMachine.Init(TortugaStates.Wondering);

            lifeTime = 200;
        }
Example #5
0
        public Blob(Vector2 position, int spriteIndex) : base(position, new Box(position, new Vector2(7, 4), false, new Vector2(0, 4)), spriteIndex)
        {
            var physics = new TopDownPhysics(baseSpeed, baseSpeed / 2, 0.97f);

            AddComponent(physics);

            var anim = new P8TopDownAnimator(P8TopDownAnimator.AnimationMode.SIDES_ONLY);

            anim.RunLeft   = new SpriteAnimation(new P8Sprite(7), 3, 0.3f);
            anim.RunRight  = anim.RunLeft;
            anim.IdleLeft  = new SpriteAnimation(new P8Sprite(7), 1, 0.3f);
            anim.IdleRight = anim.IdleLeft;
            AddComponent(anim);

            targetPosition = Vector2.Zero;

            InitState("Still");

            AddComponent(new FillBar(new Vector2(0, -2), 8, 0, lifeTime));
        }