//----------------------//------------------------// 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(); }
//----------------------//------------------------// 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; }