Ejemplo n.º 1
0
        //----------------------//------------------------//

        public SniperPig(Texture2D texture) : base(texture)
        {
            _enemyType = EnemyType.SniperPig;

            // Stand
            CharacterSprite.CreateFrameList("stand", 150);
            CharacterSprite.AddCollider("stand", new Rectangle(4, -2, 26, 34));
            CharacterSprite.AddFrames("stand", new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
                new Rectangle(64, 0, 64, 64),
                new Rectangle(128, 0, 64, 64),
                new Rectangle(192, 0, 64, 64)
            }, new int[] { 0, 0, 0, 0 }, new int[] { -32, -32, -32, -32 });

            // Alert
            CharacterSprite.CreateFrameList("alert", 120);
            CharacterSprite.AddCollider("alert", new Rectangle(4, -2, 26, 34));
            CharacterSprite.AddFrames("alert", new List <Rectangle>()
            {
                new Rectangle(0, 64, 64, 64),
                new Rectangle(64, 64, 64, 64),
                new Rectangle(128, 64, 64, 64),
                new Rectangle(192, 64, 64, 64)
            }, new int[] { 0, 0, 0, 0 }, new int[] { -32, -32, -32, -32 });

            // Attack shot
            CharacterSprite.CreateFrameList("attack_shot", 120);
            CharacterSprite.AddCollider("attack_shot", new Rectangle(4, -2, 26, 34));
            CharacterSprite.AddFrames("attack_shot", new List <Rectangle>()
            {
                new Rectangle(0, 128, 64, 64),
                new Rectangle(64, 128, 64, 64),
                new Rectangle(128, 128, 64, 64)
            }, new int[] { 0, 0, 0 }, new int[] { -32, -32, -32 });
            CharacterSprite.AddFramesToAttack("attack_shot", 1);

            // Jumping
            CharacterSprite.CreateFrameList("jumping", 0);
            CharacterSprite.AddCollider("jumping", new Rectangle(3, 0, 25, 32));
            CharacterSprite.AddFrames("jumping", new List <Rectangle>()
            {
                new Rectangle(0, 32, 32, 32)
            }, new int[] { 0 }, new int[] { 0 });

            // Damage
            CharacterSprite.CreateFrameList("damage", 0);
            CharacterSprite.AddCollider("damage", new Rectangle(4, -2, 26, 34));
            CharacterSprite.AddFrames("damage", new List <Rectangle>()
            {
                new Rectangle(0, 192, 64, 64)
            }, new int[] { 0 }, new int[] { -32 });

            // Dying
            CharacterSprite.CreateFrameList("dying", 0);
            CharacterSprite.AddCollider("dying", new Rectangle(4, -2, 26, 34));
            CharacterSprite.AddFrames("dying", new List <Rectangle>()
            {
                new Rectangle(0, 192, 64, 64)
            }, new int[] { 0 }, new int[] { -32 });

            // Attacks setup
            _attackFrameList = new string[]
            {
                "attack_shot"
            };

            // Combat system init
            _hp             = 2;
            _viewRangeSize  = new Vector2(300, 20);
            _alertAnimation = false;
            _shot           = false;
            _damage         = 2;

            // SE init
            _hitSe = SoundManager.LoadSe("PigHit");

            CreateViewRange();
        }
Ejemplo n.º 2
0
        //----------------------//------------------------//

        public Player(Texture2D texture) : base(texture)
        {
            // Stand
            CharacterSprite.CreateFrameList("stand", 120);
            CharacterSprite.AddCollider("stand", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFrames("stand", new List <Rectangle>()
            {
                new Rectangle(0, 0, 32, 32)
            });

            // Walking
            CharacterSprite.CreateFrameList("walking", 120);
            CharacterSprite.AddCollider("walking", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFrames("walking", new List <Rectangle>()
            {
                new Rectangle(32, 0, 32, 32),
                new Rectangle(64, 0, 32, 32),
                new Rectangle(96, 0, 32, 32),
                new Rectangle(128, 0, 32, 32)
            });

            // Jumping up
            CharacterSprite.CreateFrameList("jumping", 60, false);
            CharacterSprite.AddCollider("jumping", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFrames("jumping", new List <Rectangle>()
            {
                new Rectangle(0, 128, 32, 32),
                new Rectangle(32, 128, 32, 32)
            });

            // Jumping apex
            CharacterSprite.CreateFrameList("jumping_apex", 120, false);
            CharacterSprite.AddCollider("jumping_apex", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFrames("jumping_apex", new List <Rectangle>()
            {
                new Rectangle(64, 128, 32, 32),
                new Rectangle(96, 128, 32, 32)
            });

            // Jumping falling
            CharacterSprite.CreateFrameList("jumping_impact", 30, false);
            CharacterSprite.AddCollider("jumping_impact", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFrames("jumping_impact", new List <Rectangle>()
            {
                new Rectangle(128, 128, 32, 32),
                new Rectangle(160, 128, 32, 32)
            });

            // Recharging
            CharacterSprite.CreateFrameList("recharging", 120);
            CharacterSprite.AddCollider("recharging", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFrames("recharging", new List <Rectangle>()
            {
                new Rectangle(0, 64, 64, 32),
                new Rectangle(64, 64, 32, 32),
                new Rectangle(96, 64, 64, 32),
                new Rectangle(160, 64, 32, 32)
            }, new int[] { 0, 0, -32, 0 }, new int[] { 0, 0, 0, 0 });

            // Shot
            CharacterSprite.CreateFrameList("attack_shot", 80, false);
            CharacterSprite.AddCollider("attack_shot", new Rectangle(6, 2, 16, 30));
            CharacterSprite.AddFramesToAttack("attack_shot", 0);
            CharacterSprite.AddFrames("attack_shot", new List <Rectangle>()
            {
                new Rectangle(0, 32, 64, 32),
                new Rectangle(64, 32, 64, 32),
                new Rectangle(128, 32, 32, 32),
                new Rectangle(160, 33, 32, 31)
            }, new int[] { 0, 0, 0, 0 }, new int[] { 0, 0, 0, 1 });

            SetupBottomSprite(texture);

            Position = new Vector2(32, 160);

            // Attacks setup
            _attackFrameList = new string[]
            {
                "attack_shot"
            };
            AttackCooldown = 300f;

            _ammo = MaxAmmo;

            // Particles init
            var particleTexture = new Texture2D(SceneManager.Instance.GraphicsDevice, 1, 1);

            particleTexture.SetData(new[] { Color.White });
            ParticlesInit(new TextureRegion2D(particleTexture));

            // SEs init
            var shotSe = SoundManager.LoadSe("Shot");

            _shotSei        = shotSe.CreateInstance();
            _shotSei.Volume = 0.7f;
            var footstepSe = SoundManager.LoadSe("Footstep");

            _footstepSei        = footstepSe.CreateInstance();
            _footstepSei.Volume = 0.8f;
            var vacuumSe = SoundManager.LoadSe("Vacuum");

            _vacuumSei        = vacuumSe.CreateInstance();
            _vacuumSei.Volume = 0.4f;
        }