//----------------------//------------------------// public override void initialize() { var texture = entity.scene.content.Load <Texture2D>(Content.Characters.player); _animationMap = new Dictionary <Animations, string> { { Animations.Stand, "stand" }, { Animations.Walking, "walking" }, { Animations.JumpPreparation, "jumpPreparation" }, { Animations.JumpUpwards, "jumpUpwards" }, { Animations.JumpFalling, "jumpFalling" }, { Animations.JumpLanding, "jumpLanding" }, { Animations.AttackOne, "attack1" }, { Animations.AttackTwo, "attack2" }, { Animations.SlidingWall, "slidingWall" }, { Animations.Rolling, "rolling" }, { Animations.Hit, "jumpLanding" }, { Animations.Dying, "dying" }, }; var am = _animationMap; sprite = entity.addComponent(new AnimatedSprite(texture, am[Animations.Stand])); sprite.CreateAnimation(am[Animations.Stand], 0.1f); sprite.AddFrames(am[Animations.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 Rectangle(256, 0, 64, 64), new Rectangle(320, 0, 64, 64), }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9 }); sprite.CreateAnimation(am[Animations.Walking], 0.1f); sprite.AddFrames(am[Animations.Walking], 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 Rectangle(256, 64, 64, 64), new Rectangle(320, 64, 64, 64), }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9 }); sprite.CreateAnimation(am[Animations.JumpPreparation]); sprite.AddFrames(am[Animations.JumpPreparation], new List <Rectangle>() { new Rectangle(0, 128, 64, 64), }, new int[] { 0 }, new int[] { -9 }); sprite.CreateAnimation(am[Animations.JumpUpwards]); sprite.AddFrames(am[Animations.JumpUpwards], new List <Rectangle>() { new Rectangle(0, 128, 64, 64), }, new int[] { 0 }, new int[] { -9 }); sprite.CreateAnimation(am[Animations.JumpFalling]); sprite.AddFrames(am[Animations.JumpFalling], new List <Rectangle>() { new Rectangle(0, 128, 64, 64), }, new int[] { 0 }, new int[] { -9 }); sprite.CreateAnimation(am[Animations.JumpLanding]); sprite.AddFrames(am[Animations.JumpLanding], new List <Rectangle>() { new Rectangle(0, 128, 64, 64), }, new int[] { 0 }, new int[] { -9 }); sprite.CreateAnimation(am[Animations.AttackOne], 0.08f, false); sprite.AddFrames(am[Animations.AttackOne], new List <Rectangle> { new Rectangle(128, 128, 64, 64), new Rectangle(192, 128, 64, 64), new Rectangle(256, 128, 64, 64), new Rectangle(320, 128, 64, 64), }, new [] { 0, 0, 0, 0 }, new[] { -9, -9, -9, -9 }); sprite.AddAttackCollider(am[Animations.AttackOne], new List <List <Rectangle> > { new List <Rectangle>() { }, new List <Rectangle>() { new Rectangle(0, -10, 34, 29) }, new List <Rectangle>() { new Rectangle(4, -9, 29, 25) }, new List <Rectangle>() { new Rectangle(5, -10, 16, 11) }, }); sprite.AddFramesToAttack(am[Animations.AttackOne], 1, 2, 3); sprite.CreateAnimation(am[Animations.AttackTwo], 0.08f, false); sprite.AddFrames(am[Animations.AttackTwo], new List <Rectangle> { new Rectangle(0, 192, 64, 64), new Rectangle(64, 192, 64, 64), new Rectangle(128, 192, 64, 64), new Rectangle(192, 192, 64, 64), }, new int[] { 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9 }); sprite.AddAttackCollider(am[Animations.AttackTwo], new List <List <Rectangle> > { new List <Rectangle>() { new Rectangle(5, -10, 16, 11) }, new List <Rectangle>() { new Rectangle(-20, -8, 55, 24) }, new List <Rectangle>() { new Rectangle(-22, -14, 45, 28) }, new List <Rectangle>() { new Rectangle(-22, -14, 22, 20) }, }); sprite.AddFramesToAttack(am[Animations.AttackTwo], 0, 1, 2, 3); sprite.CreateAnimation(am[Animations.SlidingWall], 0.1f, false); sprite.AddFrames(am[Animations.SlidingWall], new List <Rectangle>() { new Rectangle(320, 192, 64, 64), }, new int[] { 0 }, new int[] { -9 }); sprite.CreateAnimation(am[Animations.Rolling], 0.05f, false); sprite.AddFrames(am[Animations.Rolling], new List <Rectangle>() { new Rectangle(256, 256, 64, 64), new Rectangle(320, 256, 64, 64), new Rectangle(0, 320, 64, 64), new Rectangle(64, 320, 64, 64), new Rectangle(128, 320, 64, 64), new Rectangle(192, 320, 64, 64), new Rectangle(256, 320, 64, 64), }, new int[] { 0, 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9, -9 }); sprite.CreateAnimation(am[Animations.Hit], 0.1f, false); sprite.AddFrames(am[Animations.Hit], new List <Rectangle>() { new Rectangle(0, 256, 64, 64), new Rectangle(64, 256, 64, 64), new Rectangle(128, 256, 64, 64), }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9 }); sprite.CreateAnimation(am[Animations.Dying], 0.2f, false); sprite.AddFrames(am[Animations.Dying], new List <Rectangle>() { new Rectangle(0, 384, 64, 64), new Rectangle(64, 384, 64, 64), new Rectangle(128, 384, 64, 64), new Rectangle(192, 384, 64, 64), new Rectangle(256, 384, 64, 64), new Rectangle(320, 384, 64, 64), new Rectangle(0, 448, 64, 64), new Rectangle(64, 448, 64, 64), new Rectangle(128, 448, 64, 64), new Rectangle(192, 448, 64, 64), new Rectangle(256, 448, 64, 64), new Rectangle(256, 448, 64, 64), new Rectangle(256, 448, 64, 64), new Rectangle(256, 448, 64, 64), new Rectangle(256, 448, 64, 64), new Rectangle(256, 448, 64, 64), }, new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9 }); // Create the core sprite var coreTexture = entity.scene.content.Load <Texture2D>(Content.Characters.core); coreSprite = entity.addComponent(new AnimatedSprite(coreTexture, am[Animations.Stand])); coreSprite.CloneAnimationsFrom(sprite, coreTexture); coreSprite.setEnabled(false); // init fsm _fsm = new FiniteStateMachine <PlayerState, PlayerComponent>(this, new StandState()); // init effects _wallSlideEffectTexture = entity.scene.content.Load <Texture2D>(Content.Effects.wallSlideEffect); _jumpEffectTexture = entity.scene.content.Load <Texture2D>(Content.Effects.jumpEffect); _rollEffectTexture = entity.scene.content.Load <Texture2D>(Content.Effects.rollEffect); // Set player manager playerManager = Core.getGlobalManager <PlayerManager>(); //playerManager.HoldingCore = true; }
//----------------------//------------------------// public override void initialize() { var texture = entity.scene.content.Load <Texture2D>(Content.Characters.player); _animationMap = new Dictionary <Animations, string> { { Animations.Stand, "stand" }, { Animations.Walking, "walking" }, { Animations.Jumping, "jumping" }, { Animations.Fist1, "fist1" }, { Animations.Fist2, "fist2" }, { Animations.Fist3, "fist3" }, { Animations.Sword1, "sword1" }, { Animations.Sword2, "sword2" }, { Animations.Sword3, "sword3" }, { Animations.Quarterstaff1, "quarterstaff1" }, { Animations.Quarterstaff2, "quarterstaff2" }, { Animations.Quarterstaff3, "quarterstaff3" }, { Animations.Pistol1, "pistol1" }, { Animations.Pistol2, "pistol2" }, { Animations.Pistol3, "pistol3" }, { Animations.Hit, "hit" }, { Animations.Dying, "dying" }, }; LinkableFrames = new Dictionary <Animations, int[]>(); var am = _animationMap; sprite = entity.addComponent(new AnimatedSprite(texture, am[Animations.Stand])); // == GENERAL ANIMATIONS == #region General Animations sprite.CreateAnimation(am[Animations.Stand], 0.1f); sprite.AddFrames(am[Animations.Stand], new List <Rectangle>() { new Rectangle(0, 0, 100, 100), new Rectangle(100, 0, 100, 100), new Rectangle(200, 0, 100, 100), new Rectangle(300, 0, 100, 100), new Rectangle(400, 0, 100, 100), new Rectangle(500, 0, 100, 100), new Rectangle(600, 0, 100, 100), new Rectangle(700, 0, 100, 100), }); sprite.CreateAnimation(am[Animations.Walking], 0.08f); sprite.AddFrames(am[Animations.Walking], new List <Rectangle>() { new Rectangle(700, 800, 100, 100), new Rectangle(0, 900, 100, 100), new Rectangle(100, 900, 100, 100), new Rectangle(200, 900, 100, 100), new Rectangle(300, 900, 100, 100), new Rectangle(400, 900, 100, 100), new Rectangle(500, 900, 100, 100), new Rectangle(600, 900, 100, 100), }); sprite.CreateAnimation(am[Animations.Jumping], 0.1f); sprite.AddFrames(am[Animations.Jumping], new List <Rectangle>() { new Rectangle(300, 700, 100, 100), }); sprite.CreateAnimation(am[Animations.Hit], 0.09f, false); sprite.AddFrames(am[Animations.Hit], new List <Rectangle>() { new Rectangle(400, 700, 100, 100), new Rectangle(500, 700, 100, 100), }); sprite.CreateAnimation(am[Animations.Dying], 0.09f, false); sprite.AddFrames(am[Animations.Dying], new List <Rectangle>() { new Rectangle(700, 700, 100, 100), new Rectangle(0, 800, 100, 100), new Rectangle(100, 800, 100, 100), new Rectangle(200, 800, 100, 100), new Rectangle(300, 800, 100, 100), new Rectangle(400, 800, 100, 100), new Rectangle(500, 800, 100, 100), new Rectangle(600, 800, 100, 100), }); #endregion // == FIRST ATTACKS == #region Fist Animations sprite.CreateAnimation(am[Animations.Fist1], 0.09f, false); sprite.AddFrames(am[Animations.Fist1], new List <Rectangle>() { new Rectangle(100, 100, 100, 100), new Rectangle(200, 100, 100, 100), new Rectangle(300, 100, 100, 100), new Rectangle(400, 100, 100, 100), new Rectangle(500, 100, 100, 100), }); sprite.AddAttackCollider(am[Animations.Fist1], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -10, 34, 18) }, }); sprite.AddFramesToAttack(am[Animations.Fist1], 1); LinkableFrames[Animations.Fist1] = new[] { 2, 3 }; sprite.CreateAnimation(am[Animations.Fist2], 0.09f, false); sprite.AddFrames(am[Animations.Fist2], new List <Rectangle>() { new Rectangle(700, 100, 100, 100), new Rectangle(0, 200, 100, 100), new Rectangle(100, 200, 100, 100), new Rectangle(200, 200, 100, 100), new Rectangle(300, 200, 100, 100), new Rectangle(400, 200, 100, 100), new Rectangle(500, 200, 100, 100), }); sprite.AddAttackCollider(am[Animations.Fist2], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle>(), new List <Rectangle> { new Rectangle(-0, -14, 26, 18) }, }); sprite.AddFramesToAttack(am[Animations.Fist2], 2); LinkableFrames[Animations.Fist2] = new[] { 3, 4 }; sprite.CreateAnimation(am[Animations.Fist3], 0.09f, false); sprite.AddFrames(am[Animations.Fist3], new List <Rectangle>() { new Rectangle(700, 200, 100, 100), new Rectangle(0, 300, 100, 100), new Rectangle(100, 300, 100, 100), new Rectangle(200, 300, 100, 100), new Rectangle(300, 300, 100, 100), new Rectangle(400, 300, 100, 100), new Rectangle(500, 300, 100, 100), }); sprite.AddAttackCollider(am[Animations.Fist3], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle>(), new List <Rectangle> { new Rectangle(-2, -10, 24, 29) }, }); sprite.AddFramesToAttack(am[Animations.Fist3], 2); LinkableFrames[Animations.Fist3] = new[] { 3, 4 }; #endregion // == SWORD ATTACKS == #region Sword Animations sprite.CreateAnimation(am[Animations.Sword1], 0.09f, false); sprite.AddFrames(am[Animations.Sword1], new List <Rectangle>() { new Rectangle(700, 300, 100, 100), new Rectangle(0, 400, 100, 100), new Rectangle(100, 400, 100, 100), new Rectangle(200, 400, 100, 100), new Rectangle(300, 400, 100, 100), }); sprite.AddAttackCollider(am[Animations.Sword1], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -10, 44, 29) }, }); sprite.AddFramesToAttack(am[Animations.Sword1], 1); LinkableFrames[Animations.Sword1] = new[] { 2, 3 }; sprite.CreateAnimation(am[Animations.Sword2], 0.09f, false); sprite.AddFrames(am[Animations.Sword2], new List <Rectangle>() { new Rectangle(500, 400, 100, 100), new Rectangle(600, 400, 100, 100), new Rectangle(700, 400, 100, 100), new Rectangle(0, 500, 100, 100), new Rectangle(100, 500, 100, 100), new Rectangle(200, 500, 100, 100), }); sprite.AddAttackCollider(am[Animations.Sword2], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -12, 48, 33), new Rectangle(-4, -24, 42, 12) }, }); sprite.AddFramesToAttack(am[Animations.Sword2], 1); LinkableFrames[Animations.Sword2] = new[] { 2, 3 }; sprite.CreateAnimation(am[Animations.Sword3], 0.09f, false); sprite.AddFrames(am[Animations.Sword3], new List <Rectangle>() { new Rectangle(400, 500, 100, 100), new Rectangle(500, 500, 100, 100), new Rectangle(600, 500, 100, 100), new Rectangle(700, 500, 100, 100), new Rectangle(0, 600, 100, 100), new Rectangle(100, 600, 100, 100), new Rectangle(200, 600, 100, 100), new Rectangle(300, 600, 100, 100), }); sprite.AddAttackCollider(am[Animations.Sword3], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle>(), new List <Rectangle>(), new List <Rectangle> { new Rectangle(6, -46, 34, 68) }, }); sprite.AddFramesToAttack(am[Animations.Sword3], 3); LinkableFrames[Animations.Sword3] = new[] { 4, 5 }; #endregion // == QUARTERSTAFF ATTACKS == #region Quarterstaff Animations sprite.CreateAnimation(am[Animations.Quarterstaff1], 0.09f, false); sprite.AddFrames(am[Animations.Quarterstaff1], new List <Rectangle>() { new Rectangle(0, 1000, 100, 100), new Rectangle(200, 1000, 100, 100), new Rectangle(300, 1000, 100, 100), new Rectangle(400, 1000, 100, 100), new Rectangle(500, 1000, 100, 100), }); sprite.AddAttackCollider(am[Animations.Quarterstaff1], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(1, -23, 46, 48) }, new List <Rectangle> { new Rectangle(1, -23, 46, 48) }, }); sprite.AddFramesToAttack(am[Animations.Quarterstaff1], 1, 2); LinkableFrames[Animations.Quarterstaff1] = new[] { 2, 3 }; sprite.CreateAnimation(am[Animations.Quarterstaff2], 0.1f, false); sprite.AddFrames(am[Animations.Quarterstaff2], new List <Rectangle>() { new Rectangle(0, 1000, 100, 100), new Rectangle(200, 1000, 100, 100), new Rectangle(300, 1000, 100, 100), new Rectangle(400, 1000, 100, 100), new Rectangle(500, 1000, 100, 100), }); sprite.AddAttackCollider(am[Animations.Quarterstaff2], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(1, -23, 46, 48) }, new List <Rectangle> { new Rectangle(1, -23, 46, 48) }, }); sprite.AddFramesToAttack(am[Animations.Quarterstaff2], 1, 2); LinkableFrames[Animations.Quarterstaff2] = new[] { 2, 3 }; sprite.CreateAnimation(am[Animations.Quarterstaff3], 0.1f, false); sprite.AddFrames(am[Animations.Quarterstaff3], new List <Rectangle>() { new Rectangle(700, 1000, 100, 100), new Rectangle(0, 1100, 100, 100), new Rectangle(100, 1100, 100, 100), new Rectangle(200, 1100, 100, 100), new Rectangle(300, 1100, 100, 100), new Rectangle(400, 1100, 100, 100), new Rectangle(500, 1100, 100, 100), }); sprite.AddAttackCollider(am[Animations.Quarterstaff3], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle>(), new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -10, 54, 18) }, }); sprite.AddFramesToAttack(am[Animations.Quarterstaff3], 3); LinkableFrames[Animations.Quarterstaff3] = new[] { 3, 4 }; #endregion // == PISTOL ATTACKS == #region Pistol Animations sprite.CreateAnimation(am[Animations.Pistol1], 0.07f, false); sprite.AddFrames(am[Animations.Pistol1], new List <Rectangle>() { new Rectangle(500, 600, 100, 100), new Rectangle(600, 600, 100, 100), new Rectangle(700, 600, 100, 100), new Rectangle(0, 700, 100, 100), new Rectangle(100, 700, 100, 100), }); sprite.AddAttackCollider(am[Animations.Pistol1], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -10, 148, 29) }, }); sprite.AddFramesToAttack(am[Animations.Pistol1], 1); LinkableFrames[Animations.Pistol1] = new[] { 3, 4 }; sprite.CreateAnimation(am[Animations.Pistol2], 0.07f, false); sprite.AddFrames(am[Animations.Pistol2], new List <Rectangle>() { new Rectangle(500, 600, 100, 100), new Rectangle(600, 600, 100, 100), new Rectangle(700, 600, 100, 100), new Rectangle(0, 700, 100, 100), new Rectangle(100, 700, 100, 100), }); sprite.AddAttackCollider(am[Animations.Pistol2], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -14, 148, 29) }, }); sprite.AddFramesToAttack(am[Animations.Pistol2], 1); LinkableFrames[Animations.Pistol2] = new[] { 3, 4 }; sprite.CreateAnimation(am[Animations.Pistol3], 0.07f, false); sprite.AddFrames(am[Animations.Pistol3], new List <Rectangle>() { new Rectangle(500, 600, 100, 100), new Rectangle(600, 600, 100, 100), new Rectangle(700, 600, 100, 100), new Rectangle(0, 700, 100, 100), new Rectangle(100, 700, 100, 100), }); sprite.AddAttackCollider(am[Animations.Pistol3], new List <List <Rectangle> > { new List <Rectangle>(), new List <Rectangle> { new Rectangle(0, -14, 148, 29) }, }); sprite.AddFramesToAttack(am[Animations.Pistol3], 1); LinkableFrames[Animations.Pistol3] = new[] { 3, 4 }; #endregion // init fsm _fsm = new FiniteStateMachine <PlayerState, PlayerComponent>(this, new StandState()); // init effects _jumpEffectTexture = entity.scene.content.Load <Texture2D>(Content.Effects.jump_effect); // misc _damageScalingStreak = 10; velocityMultiplier = 1; }